[11SEP2011]  Updated Debugger Tutorial for BGB.More…
Duo's GameBoy ASMSchool
What is ASMSchool?ASMSchool is a set of lessons and other articles that can help you dive into the world of programming the GameBoy/Color in assembly language. Just because the GameBoy itself is a simple-looking machine and is not the highest powered portable game device ever created doesn't mean that its easy to program for. If you've never programmed anything in your life, this would be a bad place to start.
Other Note:I DO NOT CONDONE VIDEO GAME PIRACY. As a coder I can understand the amount of effort put into most video games. If you like a game, BUY IT.
- Introduction: What is the GameBoy? History and Details!
- Lesson 1: CPU basics and moving data around
- Lesson 2: Arithmetic and Logical operations
- Lesson 3: General Purpose Arithmetic and more!
- Lesson 4: Program flow control
- Lesson 5: GameBoy Hardware
- Lesson 6: Tools of the Trade
- Lesson 7: What the hell is RGBDS and WLA?
- Lesson 8: First things first
- Lesson 9: Our First Program (Hello World!) (source here)
- Lesson 10: (NOT FINISHED) Our Second Program (Displaying a picture and panning)
- Lesson 11: (NOT FINISHED) What's a Sprite?
- Lesson 12: (NOT FINISHED) Beep Beep?
- Lesson 13: (NOT FINISHED) Intro to Color GameBoy
- Lesson 14: (NOT FINISHED) Libraries
- Lesson 15: How to use the BGB debugger/emulator
- Instruction Set Reference
- Visual Memory Map
- Jeff's Include Files - A definate MUST
Why disassemble? Well there's a wealth of information and techniques to learn from. I've chosen a few different game types to get a good idea of how the different types of games are structured. I also chose the games based on the small size and AGE, since Nintendo doesn't really promote these games actively. I will be using the most excellent debugger BGB, written and maintained by beware. I suggest using this emulator/debugger for Gameboy development as it is highly accurate and actively maintained. NOTE: I will NOT post the "roms" to these games. What I will be posting is (legally) reverse-engineered source code with comments by me, for the pure and simple purpose of education.
Disassembly 2: Disassembly of AlleywayThis lesson, when completed, will analyze an action-puzzle type game with some ingenious collision detection ideas. (on a more personal note, I think that the Super Breakout game for GBC has pathetic physics and gameplay compared to this awesome 1989 original)
Articles written by various coders
- The Infamous Pan Doc =) - by Pan/Anthrox
- Zelda GBC on a GBA - by Duo
- DMA Ideas - by The ZenPsycho
- Jump Table Ideas - by The ZenPsycho
- Look Up Table Ideas - by The ZenPsycho
- 2x Speed Sprite Problems - by Jan-Lieuwe Koopmans
- LCD Status Register - by Martin Korth
- CPU Timing Overview - by Groepaz/Hitmen
- General Memory Map - by Groepaz/Hitmen
- LCD Timing Diagram - by Groepaz/Hitmen
- How to use Common Interrupts - by Groepaz/Hitmen
- DMA Transfers - by Groepaz/Hitmen
- Intro to the GBC video system - by Jason
- Timer Interrupt - by Jonathan Waugh
- Spare Sprite RAM - by GeeBee
- SGB Commands - by kOOPa
- Link Port Notes - by Ian (James?)
- Tips for getting your programs to run on a real GB - by kOOPa
- Commonly used acronyms for GameBoy Development - by GeeBee and Jason
- Fast 2-player ideas - by GeeBee and Otaku
- Animated Water - by Marc Gale
- ASM Coding tips - by GeeBee
- Using the MBC3 - by bRILLO hEAD
- CPU Mnemonic comparison table - by Groepaz/Hitmen
- Game Genie code format - by Unknown
- Making your first GameBoy Game - by Mike Mika of Genetic Fantasia (very outdated document)