GBA game development!

GameBoy Advance: The powerful new game handheld made by Nintendo.
And YOU can make games for it too... I welcome you to the GBA game development scene!
Bookmark this site to start your yourney after getting the required hardware...

My games/demos were tested on the real thing... so I can't guarantee they work fine on emulators.
Happy browsing & good luck with programming!


32-Bit ARM7 CPU with embedded memory
2.9 inch TFT Color LCD Screen (non-backlit)
240x160 resolution
40.8mm x 61.2mm screen size
32,768 possible colors
511 simultaneous colors in character mode
32,768 simultaneous colors in bitmap mode
Size 144w x 82h x 25d (mm)
Weight 140g
Power 2 AA batteries
Battery Life 15 hours


Want to use GCC (you should because it's free) or compile some of my source codes?
Get the following files and read MyLib.txt.

MyLib.txt - DevKitAdvance and MyLib installation readme - My common makefile, crt0, linker script, GBA.h - Newer MyLib. Get as new example project. - The other GBA include files - v1.03 - fixes a GBA rom file - see toolbox - convert binary to object file

After your installation, download SpriteTest, Particles, GccTest or other compatible demo to get going.

Other tools (see toolbox page) - Debug console output for Boycott Advance and other emulators that do not have one by default. Get for the needed debug libraries. - Example .gba rom + source that writes to EmuDebug console. - v1.01 - Adds simple loader to roms to make them run on visoly carts without fixing the header. Also prevents the rom from running in emulators. - v1.01 - convert wave file to binary suited for GBA - v1.71 - Jeff Frohwein's GBA FLinker tool compiled for W32 & GIVEIO - GIVEIO driver

[more tools on my toolbox page!!]


That's right... Nintendo didn't protect the BIOS very well... and my hack doesn't use DMA tricks, so maybe you can make a nice tiny intro that uses the built-in sin/cos tables. - sourcecode + binary of BIOS -> backup ram dumper.
dumprom.cpp - GBA BIOS dumper. I just tried until I found the right bios call :-)
GBA.ROM.FastBoot.ips - little patch to skip the startup animation.
"" - The GBA BIOS for the ones who can't dump it themselves.

Gba(Sio)Tool / UART cable

These tools allow you to upload data, images, multiboot files to the GBA and debug programs by using a simple UART (normal serial port) cable (maybe MBV2 too). Note: Did is not a multiboot cable and you still need a cartridge. Look for "XBoo" on internet.

uart.txt - 'simple howto' of how to built a UART cable using a free sample of MAX3222...
UART.gif - the long awaited schematics... let me know if it contains any bugs :) - PC-side file upload tool / terminal for use with a UART cables.... (hmm fixed to COM 1) - Sourcecode (VC++)

GbaTool can be seen as the newer GbaSioTool (GBA-side), but now features a menu to choose from several multiboot roms on 1 flashcard so this tool can also be used for non UART-cable users.
screenshot - testbinary - v1.03 - latest binary + full source.


Mode 7 tutorial.txt - v1.01 - Mode 7 tutorial
cartridge.txt - cartridge pin-out
EFA-linker.txt - EFA-linker flashcard information

DirectSound - sourcecode of directsound test that doesn't use the BIOS calls. (uses MyLib3) - Some very nice music using direct sound, 21KHz, stereo. Needs 64mbit flash cart. (music title: Tristania - Angina) - sourcecode (bins included with source cut down to 1 second due to limited server space)

Mod-player menu

Thanks to Silpheed / Hitmen, we have access to a nice MOD player library.
(See links section for their URL)
And so I tried it and here is the result... a nice MOD selection menu.
screenshot - binary of menu with 40 mod's - sourcecode of menu

Sprite test

A simple background & sprite test program.
You can toggle double-size mode and see the clipping & wrap-around problem.
screenshot - binary - sourcecode

Software rendered perspective view

Software rotation & scaling (mode 7) using optimized assembly and 15 bit color mode.
This could actually be used for some game as it's really fast and allows rendering of polygons on the whole screen.
- binary - sourcecode (for ARM SDT !)

Hardware perspective view

Another perspective view, but this time using mode 2 (256 colors) and the rotation/scaling hardware registers.
You can see the mirroring as I do not check for the horizon here.
screenshot - binary - source code


A simple particle system using the 128 available sprites.
Intensity of particles fall-off in time.
screenshot - binary - Source code


A mode 4 rotating background with XOR-pattern rotating palette and a textscroller with rotating letters waving up and down.
screenshot - binary - sourcecode

"All GBA turn on"

A fake raytracer using smart & optimized blitting techniques.
Idea came from the PC demo 'Second Reality' (that sword-like thing).
screenshot - binary - sourcecode.

3D Thing

okay okay... little bugs.... it was supposed to be a Descent-style game.
grmbl... project was written for SDT first etc.. and it got out-of-sync with my 3D lib.
Should be able to fix it someday and get those nice gouraud shaded / textured cubes back.
screenshot - still nothing yet

The following picture viewed with 3DWin shows the output of my RDL file read/converter I intend to use.
(Descent I, level 1)
PC screenshot

A wolf-3D-style raycaster

Wolf 3D-syle raycaster including some half-life textures and depth lightshading. ASM-optimized etc...
Now it needs some software sprites and floor/ceiling texture...

screenshot - binary


A simple puzzle game where you must swap the objects to make 3 in-a-row. Actually a bejewelled clone, I you know that one and probably got addicted for a while :P
screenshot - binary - because you might want to change the goal of the puzzle, here is the source code.


A math-correct (matrices) 'mode 7' graphics engine...
This could become a race game or any other flat-groundplane game.
Here is a demo with a race track ripped from Mario Karts...
Currently working on dynamic map/tiles updates and other effects.
screenshot - test binary (slow version ofcourse ;)

Links (msg me with updated URL if links are broken)

Lik-Sang - Here you can get games & hardware !

Ziegler - Info on visoly cartridges and other GBA hardware !
No-cash multiboot - GBA-xboo is a cheap multiboot cable alternative. - The dumb multiboot cable - Webserver / TCP/IP using UART cable!
XPort - turns GBA into a complete embedded development system :)

Mappy VM - Nice emu with cool debugging options
Creem - Opensource emulator
AGD - Emulator with debugging
BATGBA - Another emu
BoycottAdvance - Another emu
BoycottAdvance SDL - SDL version
BoycottAdvance online - Yet another online GBA emu
DreamGBA - Another emu
EloGBA - Another emu
iGBA - Another emu
VisualBoy Advance - Another emu
GBAEmu - News about GBA emulation

The SGADE - A pretty complete 3D library for the GBA.
bit-bank - GBA PhotoShop Module Format (mode 4)
gfx2gba - A nice graphics tile/map converter by Markus G
Pin-eight GBA dev - Display gamma test, text techniques

BoyScout - BoyScout music tracker
Replayer - Another music player
Hitmen Console - A great MOD player for GBA !

Devkit Advance - A good precompiled GCC 3 (remember to delete/rename crt0.o's)
GCCGBA - Another precompiled GCC 3
Pocket-dev - Some french site
Goldroad - Some GBA assembler, emu
Warder1's dev site - Warder1's website including a forum and PocketNES !
QLand - QDisAss Arm7 Disassembler
Kojotes homepage - Public Domain rom site
fl0w's GBA dev site - More GBA projects
The letter M - Some more games (incl. an RPG) & demos
GBA Dev'rs - Jeff's GBA site (get his crt0 & linker script if you're going to use GCC)
GBA dev FAQs - Jeff's GBA FAQ's
Binutils docs - Some online docs about GCC's binutils
GBA development - Good news/demo site
Rinen Studios - Nokturn's demos
ThePERNProject - Some demos and tutorials (uses homebrew header files though)
rE Ejected - Nice ARM/thumb reference sheet
gbadev yahoogroup - The GBA-dev mailing list
EndWorld GBA forum - Discussion forums for all games currently in creation by EndWorld Development

(C) Copyright by Dark Fader