Tonc is my reasonably successful tutorial on GBA programming, covering most aspects of the hardware in all its technical glory. Tonc explains the GBA hardware in detail, and how you should and should not work with it. Prior programming knowledge is required, an affinity for mathematics is also recommended.
1.4 is the final version, but I will try to fix errors when they are found. Look in the errata for details.
(2018-06-24) A recent change in devkitArm (probably 48?) changed the way ctype.h works, resulting in a broken libtonc.a. To fix it, recompile libtonc manually. Go to the tonclib folder and do `make clean` and `make`. That should do it.
(2013-03-24) fixed for change in DKA r41 prefix (the arm-none-eabi thing).
(2012-05-20) alright, 1.4 was supposed the final version, but GCC 4.7 requires an extra line for assembly routines, so I had to check and fix a number of things. Code's at 1.4.1 now and the rest will follow soon (hopefully).
Current (and final) version: v1.4 / v1.4.2
- 20130324: example binaries (v1.4.2): tonc-bin.zip
- 20130324: example code (v1.4.2): tonc-code.zip
- 20130324: main text (v1.4.2): tonc-text.zip
- 20080818: the main text as chm (v1.4): tonc.chm
- 20130324: the main text as PDF (v1.4.2): tonc.pdf
- 20080818: example binaries (v1.4.1): tonc-bin.zip
- 20120520: example code (v1.4.1): tonc-code.zip
- 20111119: main text (v1.4): tonc-text.zip
- 20070217: example binaries: tonc-bin-1.3b.zip
- 20070217: example code: tonc-code-1.3b.zip
- 20070217: main text: tonc-text-1.3b.zip
- 20070217: the main text as chm: tonc-1.3b.chm
- 20070217: the main text as PDF: tonc-1.3b.pdf
NOTE. I've had a report a while back that the CHM version didn't work. The reason seems to be the silly security settings in Windows that block downloaded CHM files to open properly. If you get this too, open the file's properties and click `
Unblock' (Thanks for pointing this out, Kevin.)