Files
pmd-sky/include/main_020327CC.h
cecilarmitais c61f8ec2d7 Decomp 49 functions in five groups
Eighth 5x10 batch; 49 of 50 matched at score 0 and land here.

  overlay_11_022FAC54  LiveObject accessors
  overlay_11_022E46FC  coroutine table and special recruitment
  main_020325AC        further inventory-menu paging
  overlay_17_0238A754  menu state setters
  main_0201BAC8        OAM attribute copying

New placeholder structs: unk_022FD1A0, unk_02324FA0, unk_02320904,
unk_C_ROUTINES, unk_0238BE00, unk_0201BCCC with unk_oam_sub and unk_oam_elem.
struct unk_020332AC gains field_0xBC and field_0xD0, splitting two byte arrays
without changing its size; no already-landed function changes.

GetCoroutineInfo is NOT here. It reaches 30 -- two rows, a register swap between
the base pointer and the record pointer, with every instruction otherwise
identical. Eight structural variants and six declaration orderings were tried;
restructuring around a record pointer took it from 500 to 30 and nothing since
has moved it. It stays as assembly.

Two matching findings, both in docs/MATCHING_TIPS.md. A switch needs a fourth
case before MWCC emits a binary split rather than a flat compare chain, which is
now the second batch where that closed a function. And x == 4 || x == 5 folds
into a range test at every width tried, where the target keeps cmp/cmpne; the
double negation !(x != 4 && x != 5) blocks the fold and keeps the arm order.

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>
2026-08-20 23:04:46 -07:00

18 lines
559 B
C

#ifndef PMDSKY_MAIN_020327CC_H
#define PMDSKY_MAIN_020327CC_H
#include "main_020332AC.h"
void sub_020327CC(struct unk_020332AC *m, s32 a, s32 b);
void sub_020327E4(struct unk_020332AC *m);
void sub_0203280C(struct unk_020332AC *m);
void sub_0203282C(struct unk_020332AC *m);
void sub_02032864(struct unk_020332AC *m);
void sub_02032894(struct unk_020332AC *m, s32 a);
s32 GetPageItemYOffset(struct unk_020332AC *m, s32 i);
s32 sub_020328F4(struct unk_020332AC *m);
s32 sub_02032918(struct unk_020332AC *m);
s32 sub_0203293C(struct unk_020332AC *m);
#endif