My efforts to create the "President" engine got sidetracked so many times that I've lost count. But last night, I had a conversation with ShaneM, famous around here for his massive SMB1/SMB2J bug fix patch, about creating a homebrew platformer engine by rewriting Super Mario Bros. in a Ship of Theseus manner.
One would have to do at least these:
The result would look and feel like a total conversion of SMB1 but be an original program with original characters that can be used as the basis for a means of making creating a homebrew platformer as easy as ROM hacking. Take the example of Erockbrox, who suggested to ROM-hack Super Mario World into a fan sequel to Kid Icarus.
Practical or no?
One would have to do at least these:
- Rewrite SMB1 a subroutine at a time, replacing each subroutine with equivalent original code. This is how LAME was bootstrapped from the ISO MP3 encoder over the course of two years (mid-1998 to May 2000). It also gives a chance to optimize the engine's RAM use.
- Leave NROM behind, allowing data to be split across banks and enemies to be replaced in CHR RAM between scenes.
- Replace the level designs.
- Replace the graphics. For the hero you could find all sorts of pixel artists, and the animation could be made more intricate by streaming tiles to UNROM. For the enemies, NovaSquirrel and I would probably be willing to let you use the enemies we designed for DABG.
- Replace the music and sound effects. At this point, the decision to leave NROM behind would allow use of FamiTone or another homebrew music engine, so long as the replacement subroutines leave enough RAM free for other things.
The result would look and feel like a total conversion of SMB1 but be an original program with original characters that can be used as the basis for a means of making creating a homebrew platformer as easy as ROM hacking. Take the example of Erockbrox, who suggested to ROM-hack Super Mario World into a fan sequel to Kid Icarus.
Practical or no?