The project is to make a sequel to SML2 that plays on the original Gameboy hardware.
To do this I am making an editor for SML2 / 3 that can extract and modify levels, then patches the ROM. Once the editor is done, anyone can submit their level designs and I will bundle them into a sequel!
Full alpha source is now available at github. Please try and help improve it :).
The biggest hurdle on supporting SML3 has been completed; auto tile-set (and sprite) changing.
SML3 added that each level can have multiple tile-sets that change when you go through doorways, to support this I added that it simulates playing the level and figures out where you can go, then changes the tile-sets accordingly. It works almost perfectly!
I haven't yet got it changing the sprites too, although I have the data.
the colours are different paths being traced in debug mode.
I have made some progress, I finished the Gameboy processor emulator and got it to correctly pass all the test ROMs, and integrated it to extract the SML3 sprites properly from the ROM. Also I have finally added the static bonus sprites for power ups.
So the next stage is finishing the tile-set switcher (which works by simulating player movement across the level to decide which doorway was been used then applying the correct tile-set. This is practically completed already.
The editor is now nearly feature complete as a viewer, adding the editing after isn't actually a big deal, as all the hard work of figuring out how to do this has been done in the previous version before the rewrite.
I have spend a couple of weeks dealing with the odd way SML3 handles sprites, unlike SML2 it does this with code instead of tables. So I wrote a Z80 emulator to follow the code then extract the needed info.
Also SML3 has multiple tilesets per level, and switches them arbitrarily when passing through doorways, so I wrote a smart way of automatically detecting which tileset is used by each part of the level. This works by flood filling from the doorway then assuming all of those blocks use the same tileset (simulating Wario travelling around).
Due to work I need to take a few weeks of from the project, which is a shame as the editor is really close to being completed. I'll be back though :)
made good progress, the currently unreleased rewrite now uses the headers for SML2 and SML3 to load all resources unlike the older version that was half hard-coded. I also found a missing header for SML2 that defines the tiles for each level finally!