Installation
Set up your build environment on Windows, macOS, or Linux and clone the repository.
Building
Compile pokeemerald.gba and verify it matches the original ROM checksum.
Project Structure
Navigate the source tree — src/, asm/, data/, include/, and the build toolchain.
Battle System
Explore the battle engine, AI, animations, and the Battle Frontier subsystem.
Scripting Guide
Write and modify event scripts, specials, and map scripts using the script engine.
Contributing
Learn the decompilation standards and how to submit clean, matching contributions.
Get up and running
1
Install dependencies
Install
build-essential, binutils-arm-none-eabi, git, and libpng-dev for your platform. See Installation for platform-specific instructions covering Windows (WSL1/msys2/Cygwin), macOS, and Linux.2
Clone and install agbcc
3
Build the ROM
pokeemerald.gba in the project root.4
Verify the ROM
pokeemerald.gba: OKWhat’s inside
Pokémon data
Base stats, moves, abilities, experience tables, and the GetMonData/SetMonData API.
World and maps
Map layouts, metatile behaviors, field effects, events, and the overworld engine.
Graphics and audio
GBA graphics pipeline, sprite/tileset rules, and the M4A audio engine.
Save system
Flash sector layout, SaveBlock structures, and save/load mechanics.
pokeemerald is a decompilation project — it is not affiliated with Nintendo or Game Freak. You need a legal copy of the original Pokémon Emerald ROM to verify your build. Distributing the compiled ROM is not permitted.