Two months of work have certainly paid off. While I haven’t gotten the firmware completely under control, I have accomplished something equally exciting: getting to the title screen of my first commercial game.
Digimon World Dusk: a childhood game of mine. Perhaps not the highest quality title for the DS, but it’s pretty decent. I chose this game (as well as a couple of others) due to its relative simplicity, in that it doesn’t use 3D graphics or any stupid tricks in order to play correctly; it just so happened that this was the first to boot successfully.
Make no mistake, however: CorgiDS is in no condition to be released in the foreseeable future. The emulation speed is horrible, only a small subset of the graphical features are in place, and certain bugs are still lingering about. For instance, Harvest Moon DS refuses to boot at all, and the firmware immediately skips to the boot menu without displaying the health and safety screen.
So, where to go from here? First I want to fix the remaining bugs so that my sizable game/homebrew library will be completely functional. Next I’ll work on implementing rotation and scaling for the 2D engine, and maybe along the way adding some much needed optimization. There’s some other 2D features I’ll need to add, but I’ll just implement those as needed.
After that, however? It’ll be time to start work on the 3D GPU, probably the most difficult part to get working. If you follow melonDS, you already know that this is also the weirdest part of the DS. Even now no emulator handles all of its edge cases correctly, and some of its more obscure features still need to be reverse-engineered. It should be a lot of fun. 🙂