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 :: Day 1 :: GBA Hardware


I won't go into too much detail here as there are already quite a few web pages and tutorials dedicated to the GBA hardware. I will give you a quick overview of the system, however, as it is necessary to understand some of the content covered in this tutorial.



  • 32bit ARM7TDMI CPU running on RISC architecture (16.78 MHz)

  • 96 KB of video memory, 32KB of internal ram and 256KB of external ram

  • 6 screen modes (max resolution: 240x160); up to four backgrounds (or layers or planes); some backgrounds can be rotated and scaled; all can be scrolled, mosaic, faded in or out and alpha blended

Video Modes

  • Mode 0 - tile mode; screen is composed of 8x8 pixel squares; all 4 backgrounds; no rotation or scaling

  • Mode 1 - tile mode; screen is composed of 8x8 pixel squares; BGs 0,1, and 2; BG 2 can rotate/scale

  • Mode 2 - tile mode; screen is composed of 8x8 pixel squares; BGs 2 and 3; both can rotate/scale

  • Mode 3 - bitmap mode; linear buffer of 16 bit pixels; NO double-buffering

  • Mode 4 - bitmap mode; linear buffer of 8 bit pixels with a 16 bit palette; double-buffering; palettized diplay mode

  • Mode 5 - bitmap mode; linear buffer of 16 bit pixels; double-buffering; 160x128 pixels


NOTE: 8 bit = 256 colors, 16 bit = 65,536 colors.

When operating in tile mode, you can use up to four backgrounds each controlled independently using different maps and tiles. By default they are rendered 3,2,1,0 meaning that background 0 would be displayed over 3.


The GBA supports hardware rendered sprites that can either share one 256 color palette or there can be up to 16 different 16 color palettes that a sprite can use. Sprite palettes are separate from the screen palette. There can be up to 128 different sprites ranging in size from 8x8 to 64x64 pixels. Modes 0,1,2 have 32 KB of sprite memory while Modes 3,4,5 have 16 KB.


The GBA has 6 sound channels. 4 are standard music channels similar to the GB/GBC. The other two are allow direct sound sampling.

I recommend you go to The Audio Advance for more info on the GBA sound system.

Well, that's it for Day 1. We didn't go into too much detail on the hardware. Again, I will cover what is necessary as we go through the tutorial.

For more information on GBA hardware, I would recommend you check out the following sites:
CowBite Virtual Hardware Specifications
Mappy VM SDK 0.1

Discuss Day 1