I worked yesterday and today on getting the IDE and development system for the GB emulator project up and running, and am now starting to look into what exactly I’m going to need to build. This goes together with defining a first milestone to be reached after the first week. The major part of this Milestone will be a rudimentary disassembler for the instruction set of the GB CPU, to be used as a tool for visualizing what’s happening in the emulator and a way of checking the correctness of the emulator. The good thing about this is that it requires looking into the exact structure of ROM images and the instruction set and should prove useful during writing the rest of the emulator.
Besides the disassembler, I’m going to investigate the possible architectural choices and patterns that can be used when writing an emulator and describe them. I’ll upload any resources I find to the project’s resource post, which will be updated regularly during the project. The results of the first week will therefore be:
A disassembler for .GB ROMS
Architecture of the emulator and early implementation
After that, I’m going to have to see how realistic the first schedule was and update goals accordingly. I guess at least the second week will be all about getting all instructions of the GB implemented, and week 3 roughly about input, with the remaining time going into finishing touches.
I decided on the public domain ROM “Downhill Ski” by John Pericos as the main ROM to use for testing. It is a meager 512 Kb large (the smallest size of GB ROMS), but quite nice and fits well with the 2010 Olympic Games just around the corner. For a screenshot taken in VisualBoy Advance, see the top of the post.