Analysis updated 2026-05-18
Run the Pokemon Emerald decompilation natively on Windows, Linux, or Android instead of in an emulator.
Study how an existing game decompilation gets ported and patched for new platforms.
Play with a controller or touchscreen using the added input support.
Customize the game's display with border artwork, background images, and scaling options.
| gradengnostic/pokeemerald-multiplatform | ar0x4/tunnel-vision-toolkit | cemsina/fasttextembed | |
|---|---|---|---|
| Stars | 30 | 30 | 30 |
| Language | C | C | C |
| Setup difficulty | hard | hard | easy |
| Complexity | 4/5 | 5/5 | 2/5 |
| Audience | developer | researcher | developer |
Figures from each repo's GitHub metadata at analysis time.
Requires the original Pokemon Emerald decompilation source plus platform-specific toolchains (MinGW, multilib Linux SDL2, or Android SDK/NDK).
pokeemerald-multiplatform is an experimental port of the Pokemon Emerald decompilation project to Windows, Linux, and Android. It builds on an existing community project that rewrote the original Game Boy Advance game's code so it can be compiled from source rather than run inside an emulator. This repository takes that decompiled source code and gets it running natively on desktop and mobile platforms. It does not include a copy of the actual game ROM, and it is not affiliated with Nintendo, Creatures, or GAME FREAK, who own the Pokemon trademarks. The Windows build works through the SDL2 library and produces a runnable executable, the Linux build is a native 32-bit SDL2 build since the game's internal data uses 32-bit pointers, and the Android build is an experimental ARMv7 version built with SDL2 and Gradle. Beyond just getting the game to compile and run, the project describes a long list of fixes and additions: repairing the game's original music and sound mixing code, cleaning up bad audio samples that caused buzzing, adding proper save file support through a pokeemerald.sav file, adding aspect-ratio-preserving rendering with customizable background artwork around the game screen, and adding controller support alongside keyboard controls. On Android specifically, the project adds touch controls with a labeled on-screen overlay for all the original Game Boy Advance buttons, along with app lifecycle handling and private storage for save data. Each platform has its own build instructions in the README. Windows requires a 32-bit MinGW toolchain, SDL2, and ImageMagick, and can also be launched on Linux through Wine. Native Linux needs a multilib toolchain and 32-bit SDL2 development files. Android requires Android SDK 36, a specific NDK version, CMake, and a compatible JDK, plus initializing a bundled SDL2 submodule and applying a patch before building through Gradle. The project includes an in-game display settings menu for things like fullscreen, window size, and background selection, with the same border artwork shared across all three platforms. The scoped license included in the repository only covers the original modifications made for this multiplatform port, and does not relicense the upstream decompiled code, third-party components, or any copyrighted game assets.
An experimental Windows, Linux, and Android port of the Pokemon Emerald decompilation, with fixed audio, save support, and touch controls.
Mainly C. The stack also includes C, SDL2, Gradle.
A scoped license covers only this project's own multiplatform-port code changes, it does not grant rights to the upstream decompiled game code or any copyrighted game assets.
Setup difficulty is rated hard, with roughly 1h+ to a first successful run.
Mainly developer.
This repo across BitVibe Labs
Verify against the repo before relying on details.