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
gbalib.zip
Texture.zip

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
gbalib.zip
libfont.zip
libjpeg.zip
libvram.zip
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
Mode5lib-0.01.zip
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
Mode5ex.zip
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
libjpeg.zip
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
protracker.zip
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
Project.zip
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
libvram.zip

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
testvram.zip

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

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 :(

sprites.zip My newest demo, playing with bitmap and sprite priorites and using my new one-shot/looped sound playing routines (piccy).
xpm2gba.zip Quickly hacked convertors to generate raw palette and sprite files for 16 colour xpm files that are multiples of 8 pixels wide and high.
Project.zip Example template of a bare bones project ready to use my friendly Makefile and gba library routines (well hopefully ;).
gbalib.zip Latest version of my library including IWRAM poly routines and one-shot/looping sound players.
norgba.zip Release of the old library required to build my early demos made using Acorn's C/C++ tools.
demo07.zip Release of one of my early demos made using Acorn's C/C++ tools.
ISTR this only ran on iGBA, and not much else...
bezier.zip My latest demo of some bezier curve wireframe shapes spinning in 3D (piccy).
gbalib.zip Latest version of my library - now GNU source.
l33t.zip My latest demo of some spaceships spinning (piccy). Not VGBA.
arm2gnu.sh ARM SDT to GAS format converter (try ./arm2gnu.sh < arm_file.s > gnu_file.s).
gba.zip Another GBA library - ARM SDT source of the library used in my demos.
Raster.zip Raster demo - binary and source example of interrupts. Has problems on flash carts :(
Cube.zip 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