mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-29 05:41:47 -05:00
7f1656cfc907729acde8d37efd28b1db687914f9
Each was verified at score 0 against its NORTH_AMERICA, EUROPE and JAPAN targets before landing, with the address walk closing exactly in each region, and by a matching US build after. overlay_29_0231E9F0.c InitMoveWrapper, MoveIsNotPhysical, CategoryIsNotPhysical overlay_29_022E45B8.c ov29_022E45CC, ov29_022E45D0 overlay_29_022F0590.c UnfreezeAnim overlay_29_02311010.c TickNoSlipCap dungeon_logic_6.c ov29_022EFB84 main_02062A58.c sub_02062AD0 main_0200224C.c AddFixedPoint64 main_0202A66C.c CreateParentMenuFromStringIds All eleven merge into an adjacent source file; no assembly file is split. Two of them were bought cheaply: InitMoveWrapper is four instructions and clearing it puts MoveIsNotPhysical and CategoryIsNotPhysical at the file head, and ov29_022E45CC is a single instruction standing in front of ov29_022E45D0. TickNoSlipCap needed a repair the compiler could not report. extract_function.py placed its generated placeholder immediately after a pre-existing `#ifdef EUROPE` in overlay_29_02311010.c, so the definition existed only in EU builds: every object compiled and the failure appeared at the link step as `Undefined : "TickNoSlipCap"`, referenced from ActivateEndOfTurnEffects in the same object. Moving it out of the block then exposed two of its own declarations that had been invisible while the region never compiled it. main.lsf confirms the merge target itself was right -- asm/overlay_29_0230F9A4.o is immediately followed by src/overlay_29_02311010.o, and the function sat at the tail of the former. build-tools/check_landed_guards.py now reports any definition at conditional depth > 0; it is clean across every function landed so far. Twelve call-site declarations are replaced by an include of the owning header. CreateParentMenuFromStringIds had THREE mutually contradictory ones -- (void*, u32, void*, void*), (u32*, u32, struct struct_2*, u32*), and the matching signature -- which could coexist only while the function had no header. Its body indexes the fourth argument as struct unk_0202A5CC throughout, so the two call sites are cast rather than the parameter weakened to void*, which would only move the casts inside. Authored by Claude (Opus 5) under human direction. Confirmed by a matching build: build/pmdsky.us/pmdsky.us.nds: OK. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…
…
…
…
…
…
…
Pokémon Mystery Dungeon: Explorers of Sky
This is a WIP disassembly of Pokémon Mystery Dungeon: Explorers of Sky. For instructions on how to set up the repository, please read INSTALL.md. For information on how to contribute changes, see CONTRIBUTING.md.
This repository builds the following ROMs:
- pmdsky.us.nds
sha1: 5fa96ca8d8dd6405d6cd2bad73ed68bc73a9d152 - pmdsky.eu.nds
sha1: c838a5adf1ed32d2da8454976e5b1a1aa189c139 - pmdsky.jp.nds
sha1: 7785138dd343b6f2d0f2c9cadc26b4aa927161d7
For contacts and other pret projects, see pret.github.io.
Description
Languages
Assembly
66.3%
C
18%
C++
7.1%
Boogie
4.3%
sed
1.5%
Other
2.8%