From GameBrew

AuthorDamian Yerrick
Last Updated2006/08/15
TypeOther Apps

GBFS is an alternative to the hassle of the various "incbin" hacks (such as bin2h, b2x, objcopyroda/interflip, etc) used to put binary data (such as graphics, text, maps, and sounds) into a Game Boy Advance or Nintendo DS program.

It also has the advantage that artists and musicians will be able to see the effects of revisions to their work immediately on the emulator without having to recompile the program. It's analogous to the "appended datafile" method used in some PC games, especially those that use the Allegro library.

Release 20060815 updates the sample program's build script for devkitARM R19b, increases the number of files that can be put into a GBFS archive, and adds notes in the manual about issues related to the Nintendo DS.

User guide

GBFS comes with four utility programs for the host system and a small library for the target system for accessing GBFS files. A demonstration program is included that rolls credits based on a font and text file both stored in a GBFS file.

Use the included tools to put all your media into a GBFS file (an archive similar to a zip file but not compressed) and simply concatenate the program binary to the GBFS file containing the data. Then use the library to find binary objects by name.



  • Added Nintendo DS compatibility information.
  • Updated to build on more recent devkitARM.


  • Maxim <[email protected]> pointed out via e-mail that `gbfs' wasn't closing its input files. Fixed.


  • Sped up find_first_gbfs_file() for multiboot programs that read GBFS files in ROM; now the search skips 0x02040000 to 0x08000000, speeding up DKA R5b3 multiboot programs' searches.
  • Changed to fix a compilation problem on a Mac compiler (reported by Jason Kim).
  • Added gbfs_copy_obj() to make it easier to dump graphics to VRAM.
  • Added gbfs_count_objs() and gbfs_get_nth_obj().
  • Included bin2s so that GBFS archives can be compiled to .elf for debugging support.
  • Replaced DOS executables with Windows ones because so many of us have moved on to Windows 2000 and XP.


  • Added exception to the tools' licenses to allow them to be used in Photoshop plug-ins.
  • Clarified license of manual.
  • Fiied warnings about missing strcmp() prototype.
  • Worked around MinGW's fclose(NULL) behavior, which crashes instead of doing nothing.
  • Recompiled the included binaries with a more recent version of MinGW.
  • Changed padbin.exe to pad with 0xff instead of 0x00 for faster flash writing.
  • Added a compile time option to libgbfs.c to make find_first_gbfs_file() use an alignment of any power of 2. I normally use a 256-byte alignment, which provides a reasonably fast search of the 32 MB cart address space.


  • Changed upper bound on find_first_gbfs_file() in libgbfs.c to the end of ROM rather than the end of EWRAM to make libgbfs compatible with ROM-based programs.
  • Added skip_gbfs_file() to find the end of a GBFS file.
  • Clarified license of gbfs.h.


  • initial release.

External links