cecilarmitais e865b69791 Decomp 49 functions in five themed groups
Second 5x10 batch: located as five groups of ten before any matching, then all
matched, then one build, then one commit.

  inventory menu window accessors    10   ov10_022BCC7C .. ov10_022BCDBC
  file/ROM transfer + bag init       10   FileRom_StopDataTransfer .. sub_0200CAE4
  overlay_16 + secret bazaar         10   ov16_0238CC94 .. TalkToSecretBazaarNpcWithYesNoMenu
  Gt2 socket/connection accessors    10   Gt2GetConnectionState .. Gt2SetConnectionData
  forwarding veneers at +4            9   sub_0202613C .. sub_020261E4

Each group is a contiguous run, which costs one .s split apiece rather than one
per function: after the first extraction the next function is at the head of the
remainder and merges into the source just created. None of the 49 carries a
region conditional -- checked per function, not per file -- so US alone verifies.

GetDamageSource returns s16. The lsl #16 / asr #16 before its return is the
return conversion, not a cast in the body; s16 return with an s32 parameter
scores 0, while returning s32 and casting scores 510 in the shape the target
does not use.

ov29_022F05B4 needed its two arms in the other source order -- the fourth
instance of MWCC letting the first arm written fall through.

TalkToSecretBazaarNpcStandard and ov29_022F0618 differ only by `mov r3, #0`
versus `mov ip, #0`. r3 is the fourth argument register: the Standard variant
passes 0 for it, the other forwards its own. Same callee, different arity.

IsInventoryMenuActive returns s32, not bool8 -- bool8 adds an and #0xff the
target lacks.

struct unk_0202AAA8's field_0xA4[0xF4] is split to expose field_0xF8. New
placeholder structs: unk_020AF360, unk_0238CE40, unk_02026130, unk_0230E3E8 and
unk_0230E420 (the Gt2 connection and socket are distinct types -- remote IP sits
at offset 0, local IP at 4).

A fiftieth was prepared and not landed: sub_0202614C stands at 300. The target
materialises &v into r3 before the first store and moves it to r1; six spellings
(struct by value, a pointer local, storing through the pointer, an array, a
reversed store order, a hoisted destination) all compute the address after the
stores instead.

Authored by Claude (Opus 5) under human direction. All 49 verified at score 0.
Confirmed by a matching build: build/pmdsky.us/pmdsky.us.nds: OK.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-19 23:42:03 -07:00
…
2026-08-01 12:46:55 -04: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%