Gameboy Advance Resources

Here you can find various programs I've written for the Gameboy Advance. There's my general library, a compacting VRAM memory manager and some demos. There's a convertor to get xpm files into GBA tile format, and there's also instructions and binaries for a toolchain similar to the one I use for development. Below, there's also tips for optimising your code.

My stuff was first compiled using the Norcroft ARM compilers from Acorn. My earlier stuff worked with the time trial version ARM SDT but I've moved back to Linux so it's all GNU now.

25-Jun-2003 00:44

It's been ages since an update so here's a snapshot of something I'm working on. It's a rotating texture-mapped cube, with full source (mostly in C). It has 3 textures, one static and 2 generated, and manages a steady 60FPS in Mode 4 with no pixel-doubling tricks. The Readme.txt is here and a screenshot is here. Enjoy!
25-Apr-2003 22:17
All my libraries updated to be consistent with recent (!) demos. It also appears I never uploaded libfont, used in my VRAM memory manager example - sorry, my bad.
13-Aug-2002 21:03
A quick hack at a graphics library for stretched mode 5. It includes a Bresenham line plotter, and midpoint circle and ellipse plotters (filled and wireframe) with a scanline plotter. It's missing a triangle plotter and it's C not ARM but it's a start...
09-Aug-2002 21:07
A quick demo I knocked up to demonstrate how a mode 5 screen may be rotated and scaled to fill the screen. In combination with a new graphics library (coming soon ;) this allows framebuffer graphics with 15/16bpp and 2 screen banks to be used. See the Readme.
09-Aug-2002 21:03
Work based on Jeff Frohwein's JPEG decoder library. This one's a bit smaller and a bit faster - see the Readme.
09-Aug-2002 20:59
Dodgy port hack of Marc Espie's tracker-4.3-linux.tar.gz to work on GBA. View the Readme.
18-May-2002 04:12
Updated version of my project template. Now interrupts are in C and files can be specified to be compiled as ARM, THUMB or default (whatever you choose that is).
12-Mar-2002 22:09

Well I found the first (only? ;) bug - vram_load()s from non-word aligned addresses was broken. Grab this latest version, or the patch - sorry...
12-Mar-2002 17:27

New demo showing how to use the VRAM manager library. See the Readme.
12-Mar-2002 17:24
My compacting VRAM manager library - see the Readme.
12-Mar-2002 17:21

Latest version of my GBA library - here's the Readme.
HowTo.tar.bz2 Instructions and support files for those wishing to build their own GBA development environment similar to 'devkit-advance' from source under Linux.
gba.tar.bz2 Precompiled version of above - create a new user 'gba' and un tar-bzip this to install in /home/gba/usr - now you can just add 'export PATH=/home/gba/usr/bin:$PATH' to the .profile and 'su - gba' to develop :)

Update: the previous version had broken interwork libraries - seems I was a bit too optimistic during file culling trying to get the size down - sorry :( My newest demo, playing with bitmap and sprite priorites and using my new one-shot/looped sound playing routines (piccy). Quickly hacked convertors to generate raw palette and sprite files for 16 colour xpm files that are multiples of 8 pixels wide and high. Example template of a bare bones project ready to use my friendly Makefile and gba library routines (well hopefully ;). Latest version of my library including IWRAM poly routines and one-shot/looping sound players. Release of the old library required to build my early demos made using Acorn's C/C++ tools. Release of one of my early demos made using Acorn's C/C++ tools.
ISTR this only ran on iGBA, and not much else... My latest demo of some bezier curve wireframe shapes spinning in 3D (piccy). Latest version of my library - now GNU source. My latest demo of some spaceships spinning (piccy). Not VGBA. ARM SDT to GAS format converter (try ./ < arm_file.s > gnu_file.s). Another GBA library - ARM SDT source of the library used in my demos. Raster demo - binary and source example of interrupts. Has problems on flash carts :( Cube demo - includes cube.gba, cube.mb and source (piccy).

There's also a few tips and tricks I thought people might like - comments welcome.

dooby @ bits . bris . ac . uk