I had fun making my CHIP-8 emulator, so I decided to try another emulation project--this time, the Game Boy.
Needless to say, this one was a lot harder. Not so much to code, per se, but because it's hard to find accurate info on the hardware (a problem that plagues pretty much every emu developer, I imagine).
There were many bugs that took a long time to hunt down. Some were due to docs (as I mentioned), some were because I read too fast, and, in one instance, the bug was a problem within the game I was trying to emulate, not my emulator >_<.
Anyways, I've somehow managed to fix all the major problems within the last week, allowing me to finally release it so far.
There are still a lot of missing features, though. At the moment, it only supports regular Game Boy games, NOT Game Boy Color. It also doesn't support the MBC3 mapper, which means you'll have to wait a little longer before you can play Pokemon (but not too much longer, I'm going to start working on that next!). Also, it's missing a fancy Windows interface, so you'll have to load ROMs through the command line, set custom controls in a text file, etc. And, of course, no sound or link cable support yet.
Also, the code is a mess. After the MBC3 update, I'm going to begin a massive code reorganization, which will probably delay the missing features listed above.
As with all my stuff, the zip comes with the source, a dev-cpp project file, and a Windows executable. You'll also need SDL to compile it.
Now, unlike my CHIP-8 emu, where I provided plenty of games with the download, I am not providing any games this time. However, I found a site during development,
Public Domain ROMs, which has plenty of freeware/homebrew/legal ROMs that you can use with the emulator.
Don't ask me for commercial ROMs. Google is your friend.Read the readme!
Version 2 now released:
Download (196.0 KB, Box.net)Changelog:
- Version 2 (10/16/09)
- Added save state support.
- Fixed a bug with sprite drawing priorities.
- Disabled ROM bank switching via $4000-$5FFF due to problems with a few games