I experimented a bit with the IGS PGM version of Frog Feast:
http://frogfeast.rastersoft.net/PGM.html
http://frogfeast.rastersoft.net/PGMSrc.html
I didn't get the NeoDev compiler to work, it just hangs indefinitely. I think I used a gcc built with the script from http://www.aaldert.com/outrun/sdk.html , but I used so many different GCC-68k cross compilers over the years, and bootstrapped it several times myself, that am not sure which one I have installed right now...
I did use the libraries and linker scripts from the NeoDev package, though.
I had to fix up the 8x8 font converter, and fix up all project files for Visual Studio 2017.
Changes so far:
- I had to fix up a handful of tools that had fallen off the internet, though they were easy enough to replace with modern tools
- I had to make sure graphics data is aligned to 16 bit to avoid bus errors
- I removed the various exception handlers - it looks like if you have a 0 in the exception vector table it falls back to the BIOS exception handler
- The function that was installing the Z80 driver was clobbering A2, that resulted in a crash
- after burning lots of ROMs and doing a binary search by inserting trap instructions I found that it crashed directly after enabling interrupts. It looks like the vblank routine was hanging. Right now my workaround is to jump into the BIOS vblank handler
TODO:
- sprites don't display, yet. Not sure why, they work in MAME. Maybe there is a specific timing to follow?
- does the vblank handler need to clear some interrupt flag? The original handler works in MAME, so there may be some difference between hardware and emulation...
(Why Frog Feast? It's an existing bit of homebrew that already works in MAME, getting this to work on real hardware may allow porting of more interesting games, and maybe help fixing some differences between emulation and real hardware.)
http://frogfeast.rastersoft.net/PGM.html
http://frogfeast.rastersoft.net/PGMSrc.html
I didn't get the NeoDev compiler to work, it just hangs indefinitely. I think I used a gcc built with the script from http://www.aaldert.com/outrun/sdk.html , but I used so many different GCC-68k cross compilers over the years, and bootstrapped it several times myself, that am not sure which one I have installed right now...
I did use the libraries and linker scripts from the NeoDev package, though.
I had to fix up the 8x8 font converter, and fix up all project files for Visual Studio 2017.
Changes so far:
- I had to fix up a handful of tools that had fallen off the internet, though they were easy enough to replace with modern tools
- I had to make sure graphics data is aligned to 16 bit to avoid bus errors
- I removed the various exception handlers - it looks like if you have a 0 in the exception vector table it falls back to the BIOS exception handler
- The function that was installing the Z80 driver was clobbering A2, that resulted in a crash
- after burning lots of ROMs and doing a binary search by inserting trap instructions I found that it crashed directly after enabling interrupts. It looks like the vblank routine was hanging. Right now my workaround is to jump into the BIOS vblank handler
TODO:
- sprites don't display, yet. Not sure why, they work in MAME. Maybe there is a specific timing to follow?
- does the vblank handler need to clear some interrupt flag? The original handler works in MAME, so there may be some difference between hardware and emulation...
(Why Frog Feast? It's an existing bit of homebrew that already works in MAME, getting this to work on real hardware may allow porting of more interesting games, and maybe help fixing some differences between emulation and real hardware.)
Last edited: