Case study
UltraSunnyMoon: a partial, REA-led Pokémon Ultra Sun reconstruction
The author uses a pinned REA build with Ghidra to analyze a user-supplied Pokémon Ultra Sun base executable, rebuild it byte for byte from split objects, and swap in two small compiled C runtime routines. Both replacements are behavior-tested but nonmatching and every other byte stays original; one recorded input movie drives the original and hybrid builds to the same bedroom movement in the Azahar emulator. Retail compiler identity, exact matching, module loading and broader gameplay remain open.
Requirements and limitations
- README reports that the original and combined rebuilt games reproduce controllable bedroom gameplay, that both C replacements are behavior-tested but nonmatching, and that no completion percentage is claimed. STATUS.md (updated 2026-10-12) lists an unchanged main executable and one CRO module rebuilt byte for byte, the integrated __aeabi_vec_ctor_nocookie_nodtor helper and a 36-byte startup BSS clearer. The hybrid builds still contain mostly original code and assets and need a 3DS runtime; a native PC port is a later phase.
- Requires the user’s own Ultra Sun base version 0 container (title 00040000001b5000, product code CTR-P-A2AA) kept locally; the v1.2 update stays a separate comparison input. TARGET.md records the author’s base container SHA-256 3bb3b4eb0d17f18875d8b847c871dc97a172beeda03ce99e59e62a78ed5c1a53 and notes that these hashes identify the supplied dumps, not every copy. Retail containers, extracted code, raw REA dossiers, game frames and emulator logs stay in ignored private directories.
- SETUP.md uses Ubuntu WSL on Windows with Node.js 22, Python 3, GCC and readelf. Its bootstrap builds REA from source revision 7ae3c50a9d49c480035855de9fcc4484befacd92 (package version 6.4.0) and runs it with Ghidra 12.1.4 and Temurin JDK 21, with Capstone 5.0.7 as an independent decoder. Rebuilds use a pinned 3DS Decomp Pipeline revision, the C replacements were compiled with Ubuntu’s gcc-arm-none-eabi (GCC 10.3.1), and runtime checks use Azahar 2126.2 and its RPC interface.
- The project reports independent byte checks of the unchanged rebuilds, isolated behavior tests and live RPC readbacks for the replaced routines, and 60 passing source-owned tests. Runtime evidence is a bounded startup, setup and bedroom comparison under one input movie; routine execution counts, battles, overworld coverage, full-movie completion and timing determinism remain unverified. The tests use source-owned fixtures, not retail bytes; this collection ran neither the tools nor the game.
- README directs agent-accessible analysis through REA and Ghidra and requires AI-assisted reconstructions to be reviewed against binary evidence; AGENTS.md and HANDOFF.md are written for continuing agent sessions, and RUNTIME.md records frame review by an independent reviewing agent. The repository has no license file and GitHub detects none; it describes itself as an independent fan project unaffiliated with Nintendo, Game Freak or The Pokémon Company. No runtime reproduction is claimed.
About this entry
- Type
- Case study
- Category
- Community REA investigations
- Relationship
- Author-reported mixed workflow
- Targets
- Game
Sources reviewed
The description was reviewed against primary sources. This does not establish runtime testing, security auditing or verified compatibility.
Primary sources
- README.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/STATUS.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/SETUP.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/TARGET.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/DECOMP_WORKFLOW.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/MAIN_REBUILD.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/REBUILD.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/FIRST_SOURCE.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/STARTUP_BSS.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- docs/RUNTIME.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- AGENTS.md GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- tools/rea.sh GitHub · tylergraydev/UltraSunnyMoon · Revision 913eed4
- https://github.com/morluto/rea/tree/7ae3c50a9d49c480035855de9fcc4484befacd92