Escape Obliterizer DX for the Game Boy Color
The ROM is now available for download at: https://tangiblegames.itch.io/escape-obliterizer-dx
Developing for a retro console always poses some limitations and I sure have felt them, mostly in terms of ROM space. Exceeding 32kb of ROM size would imply including ROM banking into the code, which I have not accounted for when I started this project. Implementing ROM banking would probably mean redoing all of the code. For that reason, there's no music in the game. Implementing music features would probably take most space in bank 1, so I decided to keep that out. On the other hand, I have also managed to include new things that the original game didn't have, like a skin selection menu, credits, noticeable incremental difficulty, a death animation, etc (hence the DX terminology). Please note that this was my first contact with the C language and Game Boy programming in general, so the code might not be the best of examples.
The game was developed in C using the Game Boy Development Kit. If you'd like to compile the code yourself, you first need to download and setup the last available version of GBDK on your machine. Then, clone this repo, run the build.bat script, and it should build a playable .GB file into the build folder. The most current build of the game can be found in the exact same folder. I've also included a task in the .vscode folder for Visual Studio Code to make your life easier. It automates the building script to run automatically every time you make changes to any .c, .h or .s files (requires the Trigger Task On Save extension).
If you'd like to play the game on real hardware, you can flash it onto chinese bootleg carts using specific hardware. I'm personally using GBxCartRW 1.3 without any hassle, but you can also use Bennvenn's Joey-Joebags or equivalent. The ROM specifications are as follows (or you can just check the lcc flags on the build.bat script):
- MBC type: MBC1+RAM+BATTERY (battery for saving highscores)
- ROM: 32KB (no ROM banking)
- RAM: 8KB (1 bank)
I've playtested it thoroughly and I've also got some people on Reddit and Instagram to play it! Have had around 30 downloads since I put it up on itch.io, and very few bug reports have been filled. It has been tested in a couple of different emulators for the Web (VaporBoy), Android (My OldBoy!), Windows (BGB and Visual Boy Advance) and PSP (MasterBoy), as well as on real hardware (Game Boy Advance SP models 001 and 101, classic Game Boy Advance and Game Boy Color, both using flashed carts and using a GB Everdrive X3).
🐞 Known bugs
- The colors are way too dark when played using a classic Game Boy Advance. That's due to the way the GBA translates Game Boy Color palettes. The current colors have been balanced to fit GBA SPs without washing out the GBCs' colors too much, so playing it on an SP (001 or 101) or Game Boy Color fixes it;
- Not a bug but some people denoted the lack of contrast between text and background, I'll see what I can do.
📔 Invaluable Resources
- Everything about the Game Boy Hardware: The Ultimate Game Boy Talk / Official Nintendo Documentation
- GBDK Documentation: GBDK Libraries Documentation
- GBDK Programming Guidelines: GBDK Programming Guidelines
- Sound FX: The Skinny on GB Sound / Game Boy Sound Operation / GBSoundDemo
- Saving to RAM - GB Save Ram
- Useful demos - GBDK Playground
- Tools for Game Boy Color Development - Robert Ramey Software Development
- Beginner Tutorials - GamingMonsters Youtube Channel
🍻 Special Thanks
A special thanks is due to everyone at the GBDev Community Discord server, whom have answered all my questions and taught me the intricacies of developing for the Game Boy. These are the people who are keeping these consoles alive today and they sure deserve our appreciation. Also thanks to everyone on /r/GameBoy and on my Instagram page who have taken some of their time to playtest this really small and silly game.