GBA Homebrew Development
Game
Piano on GBA
Piano on GBA is a piano emulator on Game Boy Advance.


| Demo | Source Code |
Engine
GBALVNS
GBALVNS is a Visual Novel / AVG / ADV / Galgame engine on Game Boy Advance.






| Demo | Source Code |
SS6PlayerForGBA
SS6PlayerForGBA is a 2D skeletal animation engine on Game Boy Advance. It works with OPTPiX SpriteStudio 6.


| Demo | Source Code |
Library
libsavgba
libsavgba is a library to access backup media on Game Boy Advance. It supports all save types and works with flashcarts and emulators.
| Save Type | SRAM | EEPROM(512B) | EEPROM(8KB) | Flash(64KB) | Flash(128KB) |
|---|---|---|---|---|---|
| EZ-FLASH OMEGA | ✔ | ✔ | ✔ | ✔ | ✔ |
| EverDrive-GBA X5 | ✔ | ✔ | ✘ | ✔ | ✔ |
| SuperCard MINI SD | ✔ | ✘ | ✘ | ✘ | ✘ |
| mGBA | ✔ | ✔ | ✔ | ✔ | ✔ |
| VisualBoyAdvance-M | ✔ | ✔ | ✔ | ✔ | ✔ |
| NanoBoyAdvance | ✔ | ✔ | ✔ | ✔ | ✔ |
| No$GBA | ✔ | ✔ | ✔ | ✔ | ✔ |
| VisualBoyAdvance | ✔ | ✔ | ✔ | ✔ | ✔ |
| Download | Documentation | Source Code |
libgbabackup
libgbabackup is a library to access backup media on Game Boy Advance. It supports all save types and works with flashcarts and emulators.
| Devices | EZ-FLASH OMEGA | EverDrive-GBA X5 | SuperCard MINI SD | mGBA | visualboyadvance-m | NO$GBA | VisualBoyAdvance | NanoBoyAdvance |
|---|---|---|---|---|---|---|---|---|
| sram | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| sram(fast) | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
| flash(512k) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| flash(1m) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| eeprom(4k) | ✅ | ✅ | ❌ | ✅ | ✅ | ✅ | ✅ | ✅ |
| eeprom(64k) | ✅ | ❌ | ❌ | ✅ | ❌ | ✅ | ✅ | ✅ |
| Download | Source Code |
libsysgba
libsysgba is a library to implement standard system calls to support C/C++ standard library functions such as file I/O and fstream. It can also access backup media as a file.
int fd = open("xxx.txt", O_RDONLY);
read(fd, dest, size);
int i, j;
FILE *fp = fopen("xxx.txt", "r");
fscanf(fp, "%d %d", &i, &j);
std::ifstream fs("xxx.txt");
std::stringstream ss;
ss << fs.rdbuf();
int fd = open("sram:", O_RDWR);
int fd = open("eeprom:", O_RDWR);
FILE *fp = fopen("sram:", "r+");
FILE *fp = fopen("eeprom:", "r+");
| Download | Source Code |
Kernel
omega-kernel
omega-kernel is a custom EZ-FLASH OMEGA Kernel with new features such as running ELF and debug print.
| Download | Source Code |
Toolchain
build-your-own-gba-toolchain
🤓 Build your own toolchain for GBA homebrew development!
| Download | Source Code |
Tool
detect-save-type
detect-save-type is a tool to detect backup media type.




| Download | Source Code |
Tutorial
gba-dev-best-practice
gba-dev-best-practice is a series of videos to share best practice for GBA homebrew development.
| Read | Source Code |
Resource
gba-free-fonts
gba-free-fonts is a series of easy-to-use free fonts for GBA homebrew development.



| Download | Repo |