Files
pmd-sky/include/main_020027E8.h
cecilarmitais 090d9f3159 Decomp 50 functions in five groups
Sixth 5x10 batch; all fifty matched at score 0 and landed.

  overlay_29_022DC694  HEAD  team-stats forwarders, a 10-argument forwarder,
                             and a 22-entry table search
  overlay_29_022E4714  HEAD  PlayEffectAnimationEntity wrappers
  overlay_29_022E37DC  TAIL  same family, merging into overlay_29_022E406C.c
  overlay_18           mid   LINK_SHOP_PTR state setters
  main_020022C4        mid   Nitro OS thread and mutex wrappers

New placeholder structs: unk_022DC694, unk_02353518, unk_0238C950,
unk_020027E8, unk_0229B0E0. The OS wrappers use nitro's own OSThread and
OSMutex types, which every translation unit already has through the prefix
header, rather than private tags.

Two spellings a reviewer should weigh, both recorded in the note:
_0229B0E0 is declared volatile because the target reloads it where any
ordinary spelling is common-subexpression-eliminated, and ov29_022DC78C
matches in byte-offset form rather than array indexing because the target
keeps the offset live in a separate mul.

Group selection now rejects malformed disassembly: 0.4% of asm blocks end
without a return (a .global mid-body split one function in two) and 6.5% are
several functions merged into one block (no .global marks the later entry
points). Neither is decompilable as written.

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 15:09:01 -07:00

29 lines
621 B
C

#ifndef PMDSKY_MAIN_020027E8_H
#define PMDSKY_MAIN_020027E8_H
#include "util.h"
struct unk_020027E8 {
OSThread *field_0x0;
u8 field_0x4[0x10];
s32 field_0x14;
};
struct unk_0229B0E0 {
s32 field_0x0;
s32 field_0x4;
};
void sub_020027E8(struct unk_020027E8 *p);
u32 sub_020027F8(struct unk_020027E8 *p, u32 prio);
u32 sub_02002824(u32 prio);
void sub_02002858(struct unk_020027E8 *p, s32 v);
s32 sub_02002860(struct unk_020027E8 *p);
bool8 sub_02002878(s32 v);
void sub_020028AC(void);
void sub_020028B0(OSMutex *mutex);
void sub_020028F8(OSMutex *mutex);
void sub_02002904(OSMutex *mutex);
#endif