What's new

IGS PGM Frog Feast on real hardware...

Fluffy

Champion
Joined
Dec 15, 2018
Messages
1,037
Reaction score
1,974
Location
Germany
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.

IMG_20210529_165158.jpg


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:
Fluffy, try writing 007b to b0e000 at the end of your sprite list building function. Writing just 1 will buffer the sprite list. It may help with the vblank too. (Most games alternate between 7a and 7b iirc).

I'm the guy working on the custom pgm bios. I've found a lot of things that are not documented in mame/finalburn neo and am still finding things.
 
Last edited:
Just tried it, and no sprites, and it hangs if I don't call the bios vblank handler. There is probably some other setup still missing in Frog Feast. And maybe there is another register to acknowledge IRQs...
ROM.zip - rom files that can be copied over orlegend in Mame, and in theory burned into EPROMs.
PgmSrc_Tmp.zip - fixed source files - I am using the FrogDebug.mak make file
PgmTools_tmp.zip - restored the missing PcxPGM tool for font conversion, updated project files to Visual Studio 2017
 

Attachments

I also tried if 0x7a/0x7B are some kind of lock/unlock combination - no difference. Of course, there could be other problems with my setup.
 
Back
Top