Day 1
GBA Hardware

Day 2
"Hello, World!"

Day 3

Day 4
Backgrounds -
  Bitmapped Modes

Day 5

Day 6
Backgrounds -
  Tile Modes

Day 7
Project 1 -

Quiz - Week 1

Day 8
Sprites #2 -

Day 9

Day 10
Sprites #3 -
  Animation #2

Day 11
Backgrounds -

Day 12
Sprites #4 -

Version History




Graphics FAQ

GFX2GBA Readme





HAM Tutorial :: Introduction


by Aaron Rogers


Version 2.1.0


Don't speak English? Click HERE!

Want to view any or all of the tutorials OFFLINE?! Click HERE!


NOTE: Be sure to look at the History page for the latest changes.


The purpose of this document is to teach you how to use HAM to create your own video games for the Gameboy Advance. HAM is really quite simple to use and takes most of the work out of GBA programming.

I would especially like to thank tubooboo for creating this wonderful development environment.

I also need to thank The PERN Project for inspiration, ideas and information about the GBA as well as the many developers out there who open the source code to their demos and programs. Without them, this would not be possible.

Finally, I should mention a few sites out there that provide tons of resources related to GBA developement.


NOTE: This tutorial is currently geared towards development in a Windows enviroment. Before HAM 2.50, there was no Linux support. I have not tested the tutorials in Linux yet.

Of course, you need to have HAM installed. If not, go here and get it. The current version is 2.8 and all of these tutorials work with it.

I expect that you have at least a beginner's knowledge of C/C++ programming.

You'll also need your favorite text editor or IDE. As of version 2.7, HAM comes with one of the best IDEs out there - VisualHAM. You should go to the VisualHAM homepage and grab the latest version, however.

Finally, you'll need a way to test your compiled code. I would recommend an emulator (vba comes with HAM), a Flash Advance kit or if your demo is under 256 KB, you can use an MBV2 or MBV3 cable.

Emulators: VisualBoy Advance, Boycott Advance
Flash Advance: (buy one)
MBV2 Cable: (buy one), FAQ

I put together a quick install guide but I can't help you if you have problems. The install is very straightforward and any problems with it should be directed to the author tubooboo. Make sure to check the forums first.

I also highly recommend that you join hamdev on While you are at it, check out gbadev for general GBA development. One more general GBA development forum worth checking out is on

If you have any questions, suggestions or comments about this tutorial, please email me. I would really appreciate it!

Also, if you wanna mention that you learned from here how to program your GBA demo/game/etc, please do so!