• Home
  • News
  • Software
  • Articles / Guides
  • Forums
  • Links
  • ...back
    Category: Software

    HAM Gameboy Advance Development Kit 12 Apr 2008

    hamlogo-new.jpgWelcome to HAM, the free Gameboy Advance development kit

    btype2.gifrex2.gifobjrot01.png

    A brief history of HAM:

    Before HAM was originally released in 2001, Gameboy Advance development was limited to a handful of people who could be bothered to custom compile their own development toolchains, had inside knowledge of how binaries needed to be linked together to produce working ROMs that will run on real hardware, and were fluent in operating even the most ghastly compiler switches of the GCC compiler.

    I had gained a lot of knowledge on these tools during my active Dreamcast homebrew development activity, and envisioned that it would not be too hard to create a flexible, yet easy-to-use toolchain for starting Gameboy Advance developers. The initial idea was to integrate all the needed tools in a single package, support the automatic conversion of file types into formats suitable to the GBA (mostly graphics and sound data), and take off the burden of knowing the linking / compiler internals in order to write code. In short: I wanted people to install the package, write a hello world app with only a few lines of code, and press a button - et voila - it should come up on the emulator, or, if available, be transferred to a Multiboot-enabled GBA or Flash cartridge.

    All of the above was accomplished in the initial HAM release 1.0, released in late Summer 2001. In addition to the above, the first release of HAM contained an extensive header file contianing well over 1000 parametrized hardware macros, including setup macros for the GBA Sprite, BG, Sound, and many other subsystems.

    HAM 2.0 saw the release of the widely-used HAMlib - a thin C-based library (total of 80kb unpacked) , which introduced a well laid out set of hardware abstraction functions to make it easier getting to grips with the GBA hardware. The initial release covered almost every hardware feature of the GBA system, and the library has been improved and extended since.

    These days, HAM is widely known in the commercial games industry. Also, HAMlib is currently used in several commercial GBA Cartridges (e.g. "Franklin the Turtle") - and therefore also has passed the Nintendo quality lot check (version 2.8).

    HAM's Mission:

    • Create a GBA development kit that is trivially easy to set up - More so than Visual Studio.
    • Tightly integrate the tool chain with helper applications.
    • Make the kit simple and transparent to the end user, but flexible enough for power users.
    • Work to high quality standards in terms of performance, memory footprint and stability

    What's in the package:

    • Full GCC based toolchain optimized for the GBA processor (ARM7TDMI)
    • GNU Debugger with Insight GUI - Emulator<->debugger connection is prescripted for easy access
    • Prescripted Makefile for all relevant output targets (compilation, debugging, graphics conversion, sound conversion, sending to development hardware, starting in emulator, etc). Easy access through including into a simple user makefile.
    • Emulators, Graphics converters, Sound Converters
    • Extensive list of hardware macros for low level hardware access
    • Fully documented user-library (HAMLib) for rapid game creation.
    • Custom-designed, graphical IDE (Windows version only) VisualHAM
    • Over 50 source code examples running out of the box on emulators and GBA hardware.
    • Exe-Installer / Installer script (Windows / Linux)

    arkanoid2.pngthegame2.gifPuzzleDungeon2.png

    HAMlib Rapid Development Library:

    HAMlib has been the most complex part of the HAM development kit. Maintained and updated for well over three years, it is one of the most complete GBA library solutions available today. HAMlib is supplied free of charge with the Freeware distribution of HAM. There are no licensing restrictions as to its use, apart from removing the forced 3 second HAM intro screen displayed on ROM startup.

    HAMlib includes the following services:

    • Tile mode based display support , including custom memory manager for Tile RAM (Maps and BG Tiles)
    • Background scaling and rotation (aka Mode7) support in all possible hardware modes
    • Sprite system with custom Sprite RAM memory manager. Vast range of Sprite functions are available, including scaling, moving, rotation, cloning, graphics updates, and much more.
    • Interrupt Control functions for all hardware- and software supported Interrupts.
    • Color Palette Management functions for both 16 / 256 color modes, both in Sprite and Background areas.
    • Direct Sound control functions, including mixer.
    • SRAM loading/saving for binary data streams and/or character data
    • Control Pad management functions
    • Window / Overlay / Alpha Blending support
    • Text output system (onscreen debug / serial console output)
    • On screen notification of critical system events (debug version only)

    HAMlib licensing:

    HAMlib is bundled with the Freeware HAM IDE, and can be used free of charge for both non-commercial and commercial software. The copyright notice and the HAM intro screen shown on ROM startup must not be removed from the freeware version of HAMlib. Also, the Freeware version of HAMlib is a "debug" version, which runs slightly slower than the release builds, and also adds roughly 30kBytes of overhead in ROM space.

    Should you require a release build, you will need to register HAM.

    The registered version of HAM includes the following benefits:

    • Intro screen is not shown - nobody will note that you are using HAMlib
    • In addition to a registered Debug library, you will also get a registered Release library
    • Release library is ~20% smaller and ~10% faster (depends on functions used)
    • A good feeling of supporting a long-maintained community project ;-)

    The registered version is priced at only 29 US$ and is delivered via EMail (the attachement will include the two registered library files and installation instructions).

    You can register right now via the following online services:

    cc-buy.gif Share-It (Credit Card, Direct Debit)

    paypal.gif PayPal

     Download HAM 2.80 Freeware Edition for Windows 2000/XP here

    KomandorGonzo02.pngobj01.pngTurtle01.png

    (Tags: )
    User Comments on this article

    No Comments on this article so far. Be the first to comment!
    Write a new comment

    (no markup is supported whatsoever)
    Your Name:
    Post Title:
    Comment:
    Are you real?
    Advertisement

    © 2002-2008 Emanuel Schleussinger. Built with InfoStore and Wicket