GBA Homebrew Development
Game
Piano on GBA
Piano on GBA is a piano emulator on Game Boy Advance.
Engine
GBALVNS
GBALVNS is a Visual Novel / AVG / ADV / Galgame engine on Game Boy Advance.
SS6PlayerForGBA
SS6PlayerForGBA is a 2D skeletal animation engine on Game Boy Advance. It works with OPTPiX SpriteStudio 6 .
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.
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)
✅
❌
❌
✅
❌
✅
✅
✅
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+");
Kernel
omega-kernel
omega-kernel is a custom EZ-FLASH OMEGA Kernel with new features such as running ELF and debug print.
🤓 Build your own toolchain for GBA homebrew development!
detect-save-type
detect-save-type is a tool to detect backup media type.
Tutorial
gba-dev-best-practice
gba-dev-best-practice is a series of videos to share best practice for GBA homebrew development.
Resource
gba-free-fonts
gba-free-fonts is a series of easy-to-use free fonts for GBA homebrew development.