Game Boy Emulator

 

About

"CricketFighter 2k" is a Nintendo Game Boy emulator I've been working on in my spare time for the past year and a half or so. The name's origin stems from the simple fact that there are approximately 9 trillion Game Boy emulators that have been written to date, and they all have names that somehow (cleverly, of course) incorporate either "Game" or "Boy" or the letters "G" and "B". So, it was decided among a gang of my cohorts, that my emulator should not have anything to do with the actual name of the system it's emulating. (Though it does have a "G" in it). The name itself was chosen from a scene in the movie Shower, in which there is, in fact, a cricket fight of one sort or another. Pretty good movie, too.

I started writing this at the end of the fall semester of my sophomore year, after taking a course in assembly language (we learned assembly for the UltraSPARC processors in our Sun workstations). Ever since I had first used an emulator (wayyy back in high school, ironically enough for a Game Boy -- which I believe is the first console ever to be emulated, though I could be wrong) I had wanted to write my own emulator, though I really had no clue as to how it was done. Well, after I took this aseembly language course, it struck me that I now knew what I previously didn't know... and so I rode off into the sunset and began coding a Z80 CPU emulator in C++. I wrote about half of it, then grew disenchanted with it and so the code sat around for about a 8 months before I picked it up again, rewrote it twice, and started actually writing the whole emulator. My original intent was to write an emulator that would play "Tetris." I figured that was a pretty good milestone. Well, it does play "Tetris," and now my goal is to have it play all Game Boy games, perfectly. That's a ways away right now. But I'm working on it.

CricketFighter 2k is written entirely in C++, using MFC for the interface, DirectInput for keyboard routines, and DirectSound for, you guessed it, the sound. Here's a basic rundown of what's completed:

My plans for the future are to add Color Game Boy support once I've worked out the major bugs in what I have so far.

Download:

Well, why not. Here's a more or less current build of the emulator. It has some timing problems, there's some weird CPU bug (check out any of the Megaman games). But, the voluntary waveform channel now works almost perfectly. Eventually, when I have a chance to clean up the source and make it look pretty, I'll also put the source code up.

Download CricketFighter 2k Now!

The keys are currently hard-coded in, redefinable keys are going to be added very soon. For now, the keys are as follows:

PC Keyboard
Game Boy
A
A
Z
B
S
Select
X

Start

Arrows
D-Pad

 

Note: There are no ROM files included with this emulator. If you want ROMs, they are probably among the easiest things to find on the Internet right now using a search engine. Consider thyself warned: If you e-mail me asking for ROM files, you will be entering a world of pain.

Screenshots:

Here are some obligatory screen shots of my marvy emulator in action! You can barely restrain yourself, you're so excited.

Back to Projects