- HAM development kit Features:
-
- the only free GBA devkit that works by just installing using a simple Setup.exe (or a simple shell script on Linux)
- automated/simplified makefiles make expanding your program a snap.
- everything included, complete GCC toolchain, GFX converter, emulator, MBV2 send program and so on
- supports testing the same code directly (all builds/sending tools automated) via either VisualBoyAdvance , \MBV2 (in internal GBA RAM) , FlashAdvance-Linker , GNU-Debugger/VBA , and more...
- C++, direct sound etc supported (now also includes the great Krawall sound system by Sebastian Kienzl)
- full documentation (you are reading it)
- full support for source level debugging (Insight/GDB) without messy setups. It just works for you, for all your programs.
- auto-detects your source file types, and auto converts soundfiles etc into the appropiate GBA formats
- full Krawall tool integration, using Krawall has never been easier.
- now also sports a (externally developed) Visual IDE called VisualHAM. go to http://visualham.console-dev.de for details.
- HAMlib v2 function library features:
-
- all functions are 100% compatible with real Gameboy Advance Hardware.
- fully automatic Hardware setup for BG, OBJ, Sound and Interrupts, by calling a simple initialization function.
- automatic memory-allocation and management for BG (Tiled background modes) and OBJ (Sprite graphics)
- BG Memory manager supports all tiled BG Modes, including Rotation BGs
- BG Map manager, supporting all map sizes, incl rotation maps
- Map manager also supports copying arbitrary rectangles of maps (so-called map fragments) in ROM/RAM into a BG map of your choice
- Map manager automatically determines the location of tiles in memory, and adjusts map indices accordingly if you want it to. You can also override this for speed.
- OBJ Memory allocator supports all BG Modes (0-5)
- OBJ manager supports cloning of sprites, changing graphics slots on the fly, reassigning palettes and graphics amongst sprites, while maintaining a healthy memory management in OBJ VRAM.
- Needless to say, both 16, 256 and high color modes are supported in both OBJ/BG.
- Direct Sound Support, including configurable Mixer and resampling for easily playing any WAV. (note: functional but deprecated, please use Krawall)
- Lots of Sprite control functions ( ham_SetObjXY() etc) are available
- Full windowing support for Window 0,1,and OBJ window.
- Palette manager allows reloading/fading both BG and OBJ palettes, as well as a single color.
- Rotation functions are available for all Rotation BGs and OBJs
- Direct access to BG and OBJ objects still possible, giving you the freedom of creating your own functions to modify them
- Setting up an Interrupt is now as simple as a single function call
- Full printf functionality, either on a MBV2 debugging console or right on the GBA screen (in tiled modes only)
- extended debugging facilities, such as routine input error checking via ASSERTs, alarms displayed right on the GBA screen (supports all BG modes), and a heavily improved MBV2 machine monitor
- Lightweight: the whole HAMlib including the debugging font is pretty tiny, and can mostly be run from ROM.
- Fast: While you will see some improvments in future versions, the memory manager and most other tools in HAMlib are coded not only flexible, but also pretty fast.
- HAM macro language features:
-
- Direct hardware access at blazing speeds, without the complexity of juggling with unreadable register names / return codes. M_BG1CNT_MOSAIC_SET_OFF just makes more sense than *(u16*) 0x040000A0 &= 0xFFBF;
- Absolutely minimal memory impact. Only the macros used get allocated in memory.
- Already around and kickin since v 1.4, and proven successful.
- hundreds and hundreds of useful Macros for you to enjoy, covering about every aspect of the GBA hardware.
- Strict naming convention has been enforced on all HAM macros. F_ macros always return a value , M_ macros do something on their own , and many more.... see the related documentation on this.
Documentation Homepage |
HAMLib reference |
Back to HAM Homepage