After adding colour support to Neo Geo initially, the code was a bit of a dog's breakfast. Today whilst working on allegro and amigaos ports, I managed to tidy up the colour support quite a bit, simplifying it in the process.
The other change I made was to re-organise the font data, so that the C code could simply print ASCII strings directly, rather than having to map each character to the original Z80 font codes. The up-side of this was the removal of two OS-dependent print routines, further simplifying the platform-specific modules. There's remarkably very little code for each port now!
So what I have left to complete on the C ports are:
Long-standing game play bug(s) when stepping onto collapsing block
- Initialisation of missing data structures (neogeo)
- Z-order sprite sorting (neogeo)
Game over to return properly to main menu
- (Possibly) display loading screen (amigaos)
- (Possibly) add directional control game play option
- (Possibly) add sound to some ports
I'm hoping to have the C ports complete sometime in the next week or so. I'll then release the C project in its entirety and then get started on what was the original goal - a TRS-80 Color Computer 3 (Coco3) port. Not a C port (though I'm curious to know if it would run on a 25MHz Coco3FPGA), but rather re-coding the entire game in 6809 assembler for eventual release on cartridge.