English Amiga Board


Go Back   English Amiga Board > Coders > Coders. Language > Coders. C/C++

 
 
Thread Tools
Old 17 August 2017, 01:58   #201
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Quote:
Originally Posted by emufan View Post
there is still some unused code left in the source, loading ROMs from files.
dunno if it's worth enabling it.

#1) wincompat.h does those type definitions: are those defintions valid for 68k Amiga OS?
attached wincompat.h.
I think maybe adding ROM external may solve this..maybe the rom that is build internally is defective...or something or it is looking for something in the code that you guys deleted because it wasn't compiling...anything is possible.
xboxown is offline  
Old 17 August 2017, 21:00   #202
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
there are some odd patching of some rom code, so i'm not sure if we should touch this section.
there were no modifications made to the build in roms.

#1) i could "fix" the SDL_ERROR NULL mutex, it is triggered by the CPU initialize routine,
using "g_bCritSectionValid = true;" - cpu.cpp:
Code:
...

static bool g_bCritSectionValid = false;	// Deleting CritialSection when not valid causes crash on Win98
//static CRITICAL_SECTION g_CriticalSection;	// To guard /g_bmIRQ/ & /g_bmNMI/

// NOVA_CODER - pthread_mutex_t g_CriticalSection = PTHREAD_MUTEX_INITIALIZER;
SDL_mutex *g_CriticalSection = NULL;

...

void CpuInitialize ()
{
	CpuDestroy();
	regs.a = regs.x = regs.y = regs.ps = 0xFF;
	regs.sp = 0x01FF;
	CpuReset();	// Init's ps & pc. Updates sp

//	InitializeCriticalSection(&g_CriticalSection);
//	g_CriticalSection = PTHREAD_MUTEX_INITIALIZER;
////    g_bCritSectionValid = true;
	printf("CPU: CpuInitialize --> _all_ SDL_ERROR (NULL mutex) eliminated \n");	
	CpuIrqReset();
	CpuNmiReset();
}
another thing is the benchmark (cmdline option -b), it triggers an error, when going outside
a test range - no new bug, did it right from the begining.
code in Video.cpp - shell output:
Code:
PC: $030C.
PC: $030C.
PC: $1003.
The emulator experienced an error 27 clock cycles into the CPU benchmark.
Prior to the error, the program counter was at $030C.
 After the error, it had jumped to $1003.
zoned: updated AmiApple-WIP-src_bin.lha ( src and build binary)

Last edited by emufan; 17 August 2017 at 21:19.
emufan is offline  
Old 17 August 2017, 22:16   #203
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Quote:
Originally Posted by emufan View Post
there are some odd patching of some rom code, so i'm not sure if we should touch this section.
there were no modifications made to the build in roms.

#1) i could "fix" the SDL_ERROR NULL mutex, it is triggered by the CPU initialize routine,
using "g_bCritSectionValid = true;" - cpu.cpp:
Code:
...

static bool g_bCritSectionValid = false;	// Deleting CritialSection when not valid causes crash on Win98
//static CRITICAL_SECTION g_CriticalSection;	// To guard /g_bmIRQ/ & /g_bmNMI/

// NOVA_CODER - pthread_mutex_t g_CriticalSection = PTHREAD_MUTEX_INITIALIZER;
SDL_mutex *g_CriticalSection = NULL;

...

void CpuInitialize ()
{
	CpuDestroy();
	regs.a = regs.x = regs.y = regs.ps = 0xFF;
	regs.sp = 0x01FF;
	CpuReset();	// Init's ps & pc. Updates sp

//	InitializeCriticalSection(&g_CriticalSection);
//	g_CriticalSection = PTHREAD_MUTEX_INITIALIZER;
////    g_bCritSectionValid = true;
	printf("CPU: CpuInitialize --> _all_ SDL_ERROR (NULL mutex) eliminated \n");	
	CpuIrqReset();
	CpuNmiReset();
}
another thing is the benchmark (cmdline option -b), it triggers an error, when going outside
a test range - no new bug, did it right from the begining.
code in Video.cpp - shell output:
Code:
PC: $030C.
PC: $030C.
PC: $1003.
The emulator experienced an error 27 clock cycles into the CPU benchmark.
Prior to the error, the program counter was at $030C.
 After the error, it had jumped to $1003.
zoned: updated AmiApple-WIP-src_bin.lha ( src and build binary)
Does that mean it is working?
xboxown is offline  
Old 18 August 2017, 13:29   #204
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
Quote:
Originally Posted by xboxown View Post
Does that mean it is working?
no, no prgress with AmiApple, but what about kegs

#1) but Kegs is already on aminet, same version using sdl. :/

#2) just for the record: using gcc from AmiDevCPP package - build to use ixemul.library.
Attached Thumbnails
Click image for larger version

Name:	kegs.png
Views:	96
Size:	4.9 KB
ID:	54252  

Last edited by emufan; 18 August 2017 at 13:45.
emufan is offline  
Old 18 August 2017, 17:07   #205
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Quote:
Originally Posted by emufan View Post
no, no prgress with AmiApple, but what about kegs

#1) but Kegs is already on aminet, same version using sdl. :/

#2) just for the record: using gcc from AmiDevCPP package - build to use ixemul.library.


K here is the deal. Two issues with kegs if you can fix...done...forget lineapple.

A) Refuses to boot any apple // program (8 bit software)
B) Problem with kegs pointer sycnhing correctly with the Amiga mouse.

If you can fix this...then we Say quitt for applewin/lineapple and release kegs to aminet correctly.


So i was thinking if you are going to tackle it...why not use keg32 for porting at least i have windows and menu or the latest version of kegs.

Last edited by xboxown; 18 August 2017 at 17:19.
xboxown is offline  
Old 18 August 2017, 18:46   #206
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Seriously @emufan it have issues running Apple // games 8-bit and issue with mouse point synch. I really consider porting the latest kegs maybe this will fix it? Please consider it.
xboxown is offline  
Old 18 August 2017, 18:51   #207
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
Quote:
Originally Posted by xboxown View Post
So i was thinking if you are going to tackle it...why not use keg32 for porting at least i have windows and menu or the latest version of kegs.
the only possibility, for me at least, are those SDL based packages.
those native win32 apps are much harder to port.

well, i've tested some 140kb images in slot s5 and s6.
I guess i'm missing prodos (!?), CATALOG for example gives syntax error.
140kb dsk in s5 gets converted to 800kb image.

can u give an example of how this should work?


#2) zone: kegs-WIP.lha
in the shell use: kegs --arate 10240

otherwise it does not find correct audio rate.

Last edited by emufan; 18 August 2017 at 19:00.
emufan is offline  
Old 18 August 2017, 18:57   #208
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Simple...in the confi file you put test.dsk under s6d1

So it would be like this

s6d1=test.dsk

then you in the control panel you say boot on slot 6...slot 6 is the disk drive thing...just from scan to slot 6 so it defaults to slot 6 directly.

OBSERVE...whatever disk file that boots in any emulator including apple 2000e and you know for a fact it works and healthy disk image...WILL FAIL with kegs

because it results in assembly error and you cannot boot

BBBBBUUUT take this disk image that doesn't work in this amiga kegs and take it under windows kegs.....SURPRISE...IT BOOOOOOOOOOOOOOOOOOOOOOOOTTTTTTTTTTTTSSSSSSSSSSSSS!!

Take the same disk image that failed to boot in this kegs and take it to the same kegs .64 version of windows...and poof

it fails there


but it worked in the newer version of kegs and it worked under applewin or lineapple or apple 2000e

so this version of kegs is bad.


Can I tell you something? If this kegs in this Amiga version you are talking about actually worked, I wouldn't have opened this topic from the 1st and have went through 11 pages just to come back to where I would have started. I would have being playing apple // games in my Amiga right now and you wouldn't be any wiser.
xboxown is offline  
Old 18 August 2017, 19:12   #209
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
Quote:
Originally Posted by xboxown View Post
Simple...in the confi file you put test.dsk under config_panel
does the amiga version allows config only using the config file, or is there a config menu in the program?
Quote:
I would have being playing apple // games in my Amiga right now and you wouldn't be any wiser.
thats fine with me -I learned a bit and you got a chance for something working
emufan is offline  
Old 18 August 2017, 19:17   #210
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Quote:
Originally Posted by emufan View Post
does the amiga version allows config only using the config file, or is there a config menu in the program?

thats fine with me -I learned a bit and you got a chance for something working
Well I think there is a config menu..but you need key combination I don't recall. Let me see:


http://kegs.sourceforge.net/README.kegs.txt
xboxown is offline  
Old 18 August 2017, 19:51   #211
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
Quote:
Originally Posted by xboxown View Post
Well I think there is a config menu..but you need key combination I don't recall. Let me see:

http://kegs.sourceforge.net/README.kegs.txt
rather strange combination, TAb and some alt && ctrl keys, doesnt work here, have to look into the src.
F6 -F11 do work, but that menu wont open
I have a non windows keyboard on my win box, maybe thats an issue, but not sure.

#1) btw, the Kegs aminet release is for ppc system, so there is a need for a 68k port


which amiga version did you use, or have tested ?
emufan is offline  
Old 18 August 2017, 19:57   #212
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
I am using my Amiga 500+v500 v2+ ApolloOS configuration. The Amiga version of kegs is .64 which is old. I was hoping we can port version .9x I am positive this version of kegs fixed the bug that the .64 have when it comes to mouse and point interaction and when using System gs/os. By the way, chances are the combination doesn't work because you have an older version which is 0.64 which lacks features...ever more reason why we should port 0.9x version instead.
xboxown is offline  
Old 18 August 2017, 20:26   #213
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
the CHANGES file of sdl 0.64 refers to 0.91:
- Integrated some patches from KEGS 0.91.

so i guess it's close to offcial 0.91. from what i saw, there is no sdl support in real 0.91.
this would make things alot troublesome.

#1) menu now at F1, but damn thing just closes as soon as it appears

#2) fixed the config menu, now I can navigate within the menu,
changing values not yet working, but saves when quiting

Last edited by emufan; 18 August 2017 at 22:14.
emufan is offline  
Old 18 August 2017, 22:24   #214
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Did you get an apple // game working? If you do that..then we are done! The goal is officially reached!
xboxown is offline  
Old 18 August 2017, 22:36   #215
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
Quote:
Originally Posted by xboxown View Post
Did you get an apple // game working? If you do that..then we are done! The goal is officially reached!
not yet tested. the damn none working menu made me mad.
will try a game disk later, or tomorrow
emufan is offline  
Old 20 August 2017, 04:19   #216
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Any update?
xboxown is offline  
Old 20 August 2017, 16:04   #217
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
Quote:
Originally Posted by xboxown View Post
Any update?
not much, I cannot boot a 140kb, amikegs or kegs32.
adding in config: sXd1,140 = test.dsk is accepted -list 140kb image, but it goes into debugger mode.
GS games will play in amikegs aswell, tested marble madness - with 2mg disk.

so went back to linapple, restarted building with fresh src from linapple-pie,
compared the content of the build in ROMs - which are the same
and will get choosen accordingly to entries in config ( computer = 0,1,2,3)

what i wanna try is to enable the assert checking, but it does fail with the ___efprintf,
added eprint.cpp with content of eprintf.c,
as adviced by alkis, but i cannot compile it:
Code:
#include <stdlib.h>
#include <stdio.h>

//void __eprintf (format, file, line, expression)
void __eprintf (const char *, const char *, unsigned int, const char *)
     const char *format;
     const char *file;
     unsigned int line;
     const char *expression;
{
  (void) fiprintf (stderr, format, file, line, expression);
  abort ();
  /*NOTREACHED*/
}
gives:
Code:
m68k-amigaos-g++.exe -c src/Eprint.cpp -o objects/Eprint.o
-I"/AmiDevCpp/usr/local/amiga/m68k-amigaos/sys-include" -I"../SDL/include"  -m68040  

src/Eprint.cpp:6: error: expected init-declarator before "char"
src/Eprint.cpp:6: error: expected `,' or `;' before "char"
src/Eprint.cpp:10: error: expected unqualified-id before '{' token
src/Eprint.cpp:10: error: expected `,' or `;' before '{' token
mingw32-make.exe: *** [objects/Eprint.o] Error 1
original went bad with undeclared line file format expression ...

attached: /AmiDevCpp/usr/local/amiga/m68k-amigaos/include/assert.h

can anyone fix this?
Attached Files
File Type: txt assert.h.txt (1.4 KB, 49 views)

Last edited by emufan; 20 August 2017 at 16:13.
emufan is offline  
Old 20 August 2017, 16:42   #218
alkis
Registered User
 
Join Date: Dec 2010
Location: Athens/Greece
Age: 53
Posts: 719
try

Code:
#include <stdlib.h>
#include <stdio.h>

void __eprintf (const char *format, const char *file, unsigned int line, const char *expression)
{
  (void) fiprintf (stderr, format, file, line, expression);
  abort ();
  /*NOTREACHED*/
}
if it fails, replace fiprintf with fprintf.
alkis is offline  
Old 20 August 2017, 17:36   #219
emufan
Registered User
 
Join Date: Feb 2012
Location: #DrainTheSwamp
Posts: 4,545
thanks alkis, but this is some mad issue: after fixing fiprintf to fprintf, we again get
Code:
m68k-amigaos-g++.exe objects/6821.o objects/Applewin.o objects/AY8910.o objects/CPU.o
objects/Debug.o objects/Disk.o objects/DiskChoose.o objects/DiskFTP.o objects/DiskImage.o
objects/Frame.o objects/ftpparse.o objects/Harddisk.o objects/Joystick.o objects/Keyboard.o
objects/Log.o objects/Memory.o objects/Mockingboard.o objects/MouseInterface.o
objects/ParallelPrinter.o objects/Registry.o objects/Riff.o objects/SaveState.o
objects/SerialComms.o objects/SoundCore.o objects/Speaker.o objects/stretch.o
objects/Video.o objects/wwrapper.o objects/eprintf.o -o "linapple-RTG_noixemul_off.exe"
-L"../AmiDevCpp/usr/local/amiga/m68k-amigaos/lib"
-L"../AmiDevCpp/usr/local/amiga/m68k-amigaos/lib/libb/libnix" ../SDL/lib/libSDL_image.a
../SDL/lib/libz.a ../SDL/lib/libSDL.a   
objects/CPU.o(.text+0x25508):objects/CPU.o: undefined reference to `___eprintf'
objects/CPU.o(.text+0x2556e):objects/CPU.o: 
   more undefined references to `___eprintf' follow
collect2: ld returned 1 exit status
mingw32-make.exe: *** [bin/linapple-RTG_noixemul_off.exe] Error 1
Code:
$ hexdump.exe -C ../objects/eprintf.o
00000000  00 02 01 07 00 00 00 30  00 00 00 00 00 00 00 00  |.......0........|
00000010  00 00 00 30 00 00 00 00  00 00 00 18 00 00 00 00  |...0............|
00000020  48 55 2a 4f 2f 2d 00 14  2f 2d 00 10 2f 2d 00 0c  |HU*O/-../-../-..|
00000030  2f 2d 00 08 20 79 00 00  00 00 50 88 2f 10 61 ff  |/-.. y....P./.a.|
00000040  ff ff ff e0 de fc 00 14  61 ff ff ff ff d6 4e 71  |........a.....Nq|
00000050  00 00 00 16 00 00 01 50  00 00 00 20 00 00 02 d0  |.......P... ....|
00000060  00 00 00 2a 00 00 03 d0  00 00 00 04 05 00 00 00  |...*............|
00000070  00 00 00 00 00 00 00 1c  01 00 00 00 00 00 00 00  |................|
00000080  00 00 00 22 01 00 00 00  00 00 00 00 00 00 00 2b  |..."...........+|
00000090  01 00 00 00 00 00 00 00  00 00 00 32 5f 5f 5a 39  |...........2__Z9|
000000a0  5f 5f 65 70 72 69 6e 74  66 50 4b 63 53 30 5f 6a  |__eprintfPKcS0_j|
000000b0  53 30 5f 00 5f 5f 5f 73  46 00 5f 66 70 72 69 6e  |S0_.___sF._fprin|
000000c0  74 66 00 5f 61 62 6f 72  74 00                    |tf._abort.|
000000ca
already linked with -lgcc, without success but, in assert.h they write about libgcc.a,
while AmiDevCpp used "-L" pathes to libnix, is this an issue?
Code:
ar -t /cygdrive/d/4444/AmiDevCpp/usr/local/amiga/lib/gcc/m68k-amigaos/3.4.0/libgcc.a
...
unwind-c.o
_eprintf.o
__gcc_bcmp.o
but libnix got both correct __eprintf and fprintf
Code:
ar -t /AmiDevCpp/usr/local/amiga/m68k-amigaos/lib/libb/libnix/libnix.a
__eprintf.o
...
fprintf.o
...
#2) do we need to add some extern void __eprintf ... somewhere?

Last edited by emufan; 20 August 2017 at 17:56.
emufan is offline  
Old 20 August 2017, 17:51   #220
xboxown
Registered User
 
Join Date: Dec 2012
Location: Vancouver/Canada
Posts: 676
Quote:
Originally Posted by emufan View Post
not much, I cannot boot a 140kb, amikegs or kegs32.
adding in config: sXd1,140 = test.dsk is accepted -list 140kb image, but it goes into debugger mode.
GS games will play in amikegs aswell, tested marble madness - with 2mg disk.

Thank you!!! That is what I have being saying all along! No matter how hard I try and put an apple // disk image 140 KB in keg itself it doesn't boot it and goes in debugger mode or assembly mode or whatever you call it. This is why I started the entire topic with lineapple from the 1st place.

I am so happy you noticed the bug too and tackling it

I am wondering if it is because it did not change the variables in the configuration menu even though it looks changed and stored and it is still attempting to boot from serial port even after you selected s6d1 or something.
xboxown is offline  
 


Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
 
Thread Tools

Similar Threads
Thread Thread Starter Forum Replies Last Post
Porting SDL2 to Amiga copse request.Other 3 30 November 2017 17:46
Porting an Amiga game to PC CYBER_SLUNK Coders. General 4 31 January 2017 19:14
Porting Photoshop to Amiga KONEY Coders. General 25 29 December 2016 23:49
Porting PhotoChrome ST/e to Amiga. pandy71 request.Other 0 09 February 2015 15:12
Porting Qt Framework to Amiga OS enviroments Pyromania Coders. General 2 24 July 2013 06:42

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +2. The time now is 20:49.

Top

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.
Page generated in 0.10255 seconds with 14 queries