Gameboys are awesome

So I’ll start my blog thing by talking about Gameboys.

I was playing Kirby’s Dreamland 2 on Gameboy and decided that the game is amazing and almost like a perfect game. Great tileset, story, sounds, music and really nice world. Because the main characters and art style were created in Kirby’s Dreamland (the first one) the art style suits the gameboy really well compared to other games like Donkey Kong which used bad looking 3D models converted into sprites. Kirby is basically just a circle with eyes and round legs: easy to draw.

So, I looked at the graphics and tried to figure out how the tile-set worked and what they probably did to draw everything. I then recorded the sound directly from the emulator and ha da look at it in Sound Forge. The sound and music is really interesting. The sounds in the gameboy seem to have the volume of the waveforms locked on to about 7 levels and whne there’s no volume at all, the soundwave is right at the bottom of the negative part of the waveform. So I assume this is because they preogrammed the waveforms so they would have an offset of -7 db or something and then from that, use a single 3 bit number to push the wave higher. This also means the DC offset is wrong and when the sound starts and ends, because the wave is pushed down to the negative when there’s 0 volume, there is that pop noise. I assume this is what caused the tiny pop sound when you turned a gameboy on when having headphones plugged in.

With the graphics, I magined that most of the tiles were flipped and rotated with algorithms. This would save memory and it got me excited because I do enjoy compression and low-level programming with pixels. It’s just so simple compared to these day’s graphics.

Then it got me thinking, would it be as hard to make a Gameboy game as it was to make a Sega Megadrive game? Could I make it work on an emulator or even a real Gameboy?

Apparently not hard.

I looked up a bunch of sites, most of which were made around the year 2000, so a lot of the links didn’t work.. but I managed to download a C compiler for the Gameboy that outputs a .gb file that you could put in an emulator and run! Awesome!

So I played around with this, trying to get Notepad++ to compile it and managed to do this with a .bat file that ran the compiler and some variables that get get parsed into it. I assigned a button in Notepad++ that would compile the code with the compiler and run the game in anĀ emulator.

This was awesome, but how do I do this in Vidsual Studio 2010?

No idea.

I managed to learn from teachers that I could set up Visual Studio to use Makefile settings and do it that way. Challenge accepted.