HAM Documentation

Home · Downloads · Your Account · Submit News

Documentation Homepage HAMLib reference Back to HAM Homepage |

## Features

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
documentation created with Doxygen