{
  "added_at": "2026-10-18",
  "additional_evidence_urls": [
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/STATUS.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/SETUP.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/TARGET.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/DECOMP_WORKFLOW.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/MAIN_REBUILD.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/REBUILD.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/FIRST_SOURCE.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/STARTUP_BSS.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/docs/RUNTIME.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/AGENTS.md",
    "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/tools/rea.sh",
    "https://github.com/morluto/rea/tree/7ae3c50a9d49c480035855de9fcc4484befacd92"
  ],
  "category": "community-case-studies",
  "description_en": "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.",
  "description_zh": "作者使用固定版本的 REA 与 Ghidra，分析使用者自备的《宝可梦 究极之日》基础版可执行文件，由拆分出的对象逐字节重建该文件，并替换进两个编译后的小型 C 运行时例程。两处替换均经行为测试但与原字节不一致，其余字节均保持原样；同一段录制输入在 Azahar 模拟器中让原版与混合构建到达相同的卧室移动场景。零售编译器识别、精确匹配、模块加载及更广泛的游戏行为仍待解决。",
  "entry_url": "https://awesomerea.org/resources/ultrasunnymoon-rea-case/",
  "entry_url_zh": "https://awesomerea.org/zh/resources/ultrasunnymoon-rea-case/",
  "evidence_url": "https://github.com/tylergraydev/UltraSunnyMoon/blob/913eed4969163ea15e354dacb8e2bfe0a2439de5/README.md",
  "group": "rea",
  "id": "ultrasunnymoon-rea-case",
  "json_url": "https://awesomerea.org/resources/ultrasunnymoon-rea-case/record.json",
  "kind": "case-study",
  "markdown_url": "https://awesomerea.org/resources/ultrasunnymoon-rea-case/index.md",
  "markdown_url_zh": "https://awesomerea.org/zh/resources/ultrasunnymoon-rea-case/index.md",
  "name": "UltraSunnyMoon: a partial, REA-led Pokémon Ultra Sun reconstruction",
  "name_zh": "UltraSunnyMoon：以 REA 主导的部分《宝可梦 究极之日》重建",
  "reconstruction_method": "decompilation",
  "record_type": "resource",
  "relationship": "community-reported-mixed-workflow",
  "requirement_facets": [
    "scope",
    "prerequisites",
    "prerequisites",
    "testing",
    "attribution"
  ],
  "requirements": [
    "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.",
    "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."
  ],
  "requirements_zh": [
    "README 报告原版与组合重建版都能重现可操作的卧室场景游玩，两处 C 替换均经行为测试但与原字节不一致，且不主张任何完成百分比。STATUS.md（2026-10-12 更新）列出：未改动的主可执行文件和一个 CRO 模块已逐字节重建，已集成 __aeabi_vec_ctor_nocookie_nodtor 辅助函数和一个 36 字节的启动 BSS 清零例程。混合构建仍主要由原始代码和素材组成，需要 3DS 运行环境；原生 PC 移植属于后续阶段。",
    "需使用者自备《宝可梦 究极之日》基础版 0 容器（title 00040000001b5000，产品代码 CTR-P-A2AA）并保存在本地；v1.2 更新仅作为单独的比较输入。TARGET.md 记录作者基础容器的 SHA-256 为 3bb3b4eb0d17f18875d8b847c871dc97a172beeda03ce99e59e62a78ed5c1a53，并说明这些哈希只标识所用转储，而非所有副本。零售容器、提取的代码、原始 REA 档案、游戏画面和模拟器日志均保存在被忽略的私有目录中。",
    "SETUP.md 在 Windows 的 Ubuntu WSL 中使用 Node.js 22、Python 3、GCC 和 readelf。引导脚本从源码修订 7ae3c50a9d49c480035855de9fcc4484befacd92（包版本 6.4.0）构建 REA，并搭配 Ghidra 12.1.4 与 Temurin JDK 21 运行，另用 Capstone 5.0.7 作为独立解码器。重建使用固定修订的 3DS Decomp Pipeline，C 替换以 Ubuntu 的 gcc-arm-none-eabi（GCC 10.3.1）编译，运行检查使用 Azahar 2126.2 及其 RPC 接口。",
    "项目报告对未改动重建做了独立字节核对，对替换例程做了隔离行为测试与运行时 RPC 回读，并有 60 项源码自带测试通过。运行证据只是同一段录制输入下有限的启动、设置与卧室场景对比；例程执行次数、战斗、野外地图覆盖、完整录像播放和时序确定性仍未验证。测试使用项目自有的样例数据而非零售字节。",
    "README 规定通过 REA 与 Ghidra 进行可供代理访问的分析，并要求 AI 辅助的重建必须依据二进制证据审查；AGENTS.md 和 HANDOFF.md 面向继续工作的代理会话编写，RUNTIME.md 记录了由独立审查代理检查画面的过程。仓库没有许可证文件，GitHub 也未识别出许可证；项目自称是与 Nintendo、Game Freak 及 The Pokémon Company 无关的独立爱好者研究。"
  ],
  "targets": [
    "game"
  ],
  "url": "https://github.com/tylergraydev/UltraSunnyMoon",
  "verification": "source-reviewed",
  "verified_at": "2026-10-18"
}
