After working on the GUI and fixing several mysterious bugs that only appeared after the migration (in particular a nasty buffer overflow), I can say that CorgiDS is growing at a nice rate. Check it out:
Before you ask, no, CorgiDS isn’t magical enough to render this in 0 ms. The “time taken” works on DeSmuME, so I have no idea why it doesn’t on CorgiDS. Issues with the Real Time Clock might be a possibility, but it’s not exactly concerning me right now.
While the bottom screen in this demo only uses the simple “frame buffer” mode, the top screen makes use of one of the tiled background modes based upon the GBA hardware. If you’re aware of how the Game Boy draws things, the way the DS/GBA handles this is surprisingly similar. Unfortunately this is one of the simpler modes that commercial games and more sophisticated homebrew don’t make use of; I’ve yet to get into affine backgrounds or sprites, and all sorts of crazy things like rotation and scaling can be applied to those.
The GUI is much more advanced now and despite not having many options, feels almost complete. You can load a ROM, choose where the emulator looks for the BIOS and firmware images, and even save a screenshot; in fact I used that last feature for the above image. The best part is thanks to Qt, everything should not only be cross-platform, but also have a native appearance. I’ve kept my GUI code as separate as possible from the emulator code so adding new frontends, if needed, will be pretty painless. This may all seem like small stuff to be writing about, but a large number of emulators – not necessarily in the DS scene – have obtuse and complicated interfaces that scare away beginners, and it’s one of my goals to have an intuitive, easy to use GUI for CorgiDS.
My next big goal, assuming no major setbacks, will be to load the firmware and get the graphics from that displaying. This makes use of the aforementioned affine backgrounds and sprites, so this ought to keep me occupied for a while. Until next time!
Homebrew location: http://www.gamebrew.org/wiki/Mandelbrot_Fractal