cecilarmitais 1bcd98523f Decomp the eight stat helpers deferred last batch; make StatIndex globals const
The previous commit dropped eight functions whose only difference from the
target was instruction order: retail loads the stat global before materialising
the constant destined for the stack, the candidate after. The cause is aliasing.
Declared as plain externs, MWCC must assume the stores to [sp] can affect the
global, so the load cannot move above them. Declaring the globals const frees
it, and all eight match:

DoMoveGrowl, DoMoveLowerDefense1, DoMoveFeatherDance, DoMoveFakeTears,
DoMoveMetalSound, DoMoveScreech, DoMoveCharm and DoMoveHealOrder. Also
LogMessageQuiet and LogMessageWithPopup, which pass FALSE/TRUE to LogMessage.

Every existing `extern struct StatIndex` in src/ is const-ified to match, since
the globals cannot be const in one translation unit and not another. Thirteen
files touched; the functions already landed against them still match, which is
independent confirmation of the reading.

DoMoveMetalSound lowers by 3 stages, not the 2 assumed when it was first
written; the asm says `mov r3, #3`.

Authored by Claude (Opus 5) under human direction. All ten verified at score 0.
Confirmed by a matching build: build/pmdsky.us/pmdsky.us.nds: OK. None carries a
region conditional, so US alone is sufficient.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 17:19:14 -07:00
…
…
…
…
…
…
…

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:

For contacts and other pret projects, see pret.github.io.

Description
Decompilation of Pokémon Mystery Dungeon: Explorers of Sky
Readme 335 MiB
Languages
Assembly 66.3%
C 18%
C++ 7.1%
Boogie 4.3%
sed 1.5%
Other 2.8%