cecilarmitais 92774e8a2b Decompile the head of overlay_11_023090DC; type the parent-menu tables
Five functions, the head of asm/overlay_11_023090DC.s, all merging into
src/overlay_11_02307334.c beside their only caller ov11_02307334:

  ov11_023090DC   809 insn (NA/EU), 807 (JAPAN)
  ov11_02309DAC    18
  ov11_02309DF8    10
  ov11_02309E24     8
  ov11_02309E48    39

ov11_023090DC is the largest function landed on this branch. It reached
STRUCT 0 -- every instruction, immediate and branch target correct -- while a
single register permutation over 35 rows held it at score 230. The rule that
closed it: MWCC colours the locals living across a call in case-scope
declaration order, lowest free register first, and a local assigned only inside
a loop body does not join that group from case scope. Four qualifying locals
therefore reach only r4-r7; the target needs one on r8, so a fifth member has to
exist. Hoisting e, move_id, k and q into the case's declaration list supplies it.
No statement moved and no type changed.

struct unk_02324D90 gains 22 offsets, replacing padding. Size and every
pre-existing offset are unchanged in all three regions, checked by compiling
sizeof/offsetof comparisons against the previous layout with the real compiler
and reading the folded constant back out.

The parent-menu tables are typed from their data rather than from the weakest
prototype that accepted them. asm/overlay_11_022ECD24_data.s shows each as a run
of 8-byte entries -- u16 string id, 2 bytes padding, s32 value -- i.e.
struct unk_0202A5CC, which include/main_0202A66C.h already declares and which
CreateParentMenuFromStringIds already takes. Four were declared extern s32 as
scalars (hence the & at every call site), one duplicated the struct under a
second name, and this file carried its own void*-taking prototype that let all
of it compile. Seven globals are now struct unk_0202A5CC[], the duplicate
struct unk_02322D38 is gone, the local prototype yields to the header, and five
redundant & are dropped. Byte-neutral: &scalar and array yield the same address.

Authored by Claude (Opus 5) under human direction. All five measured at
decomp.me score 0 in all three regions and re-measured independently. Confirmed
by matching builds of all three regions: build/pmdsky.us/pmdsky.us.nds: OK,
build/pmdsky.eu/pmdsky.eu.nds: OK, build/pmdsky.jp/pmdsky.jp.nds: OK.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-18 23:13:38 -07:00
2026-04-08 09:53:43 +02:00
2024-04-17 23:52:39 -04:00
2026-08-22 20:45:50 -04:00
2023-11-20 17:24:08 -06:00
2024-06-23 16:59:48 -05:00
2023-08-13 23:03:51 -04:00
2024-12-28 02:25:07 -06:00
2026-08-01 12:46:55 -04:00
2023-06-28 23:35:19 -04:00
2023-06-28 23:35:19 -04:00
2023-06-28 23:35:19 -04:00
2026-09-04 13:13:23 -07:00
2026-07-16 07:36:58 -07:00
2025-06-10 23:35:01 -04:00
2023-08-20 22:43:00 -04:00
2023-08-14 00:17:21 -04:00
2023-11-01 18:44:19 -04:00
2024-04-17 23:52:39 -04:00
2023-08-28 00:09:02 -04:00
2024-04-17 23:52:40 -04:00
2023-08-08 00:17:03 -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%