mirror of
https://github.com/pret/pmd-sky.git
synced 2026-09-27 20:57:49 -05:00
Ninth 5x10 batch; 48 of 50 matched at score 0 and land here. overlay_11_022FD308 LivePerformer accessors main_0204CF9C GLOBAL_PROGRESS_PTR bit-array accessors main_020022C4 string, thread and card initialisation overlay_11_022E9D6C screen-fade queries main_0203C774 state-machine steps New placeholder structs: unk_022FE490, unk_022FE498, unk_020AFE60, unk_020AFE70, unk_0209C7F4, unk_0238916C, unk_0229B004, unk_0229AFC0. The overlay_11 fade group reuses unk_02388FC0 and unk_023890A0 unchanged. Two are NOT here. SetPositionInitialLivePerformer sits at 225, where an address computation is scheduled earlier than the target places it; six variants moved nothing. sub_020024E4 sits at 35, a two-register swap in a zero-fill loop, after both declaration orderings, a block scope, an extra temporary and a while form. Both stay as assembly. Matching finding, now in docs/MATCHING_TIPS.md: a two-word struct copy emits the same four instructions as two field assignments but schedules both loads first, which is what the target has. Writing the fields separately interleaves load and store, and hoisting them into locals merges the stores into an stm. The OS wrappers drop their local declarations of nitro functions, which reach every translation unit through the prefix header and disagreed on return type. OS_ResetSystem keeps its extern; it is declared in no reachable header. 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>
30 lines
556 B
C
30 lines
556 B
C
#ifndef PMDSKY_MAIN_0200238C_H
|
|
#define PMDSKY_MAIN_0200238C_H
|
|
|
|
struct unk_0229B004 {
|
|
OSThread *field_0x0;
|
|
s32 field_0x4;
|
|
s32 field_0x8;
|
|
s32 field_0xC;
|
|
s32 field_0x10;
|
|
s32 field_0x14;
|
|
};
|
|
|
|
struct unk_0229AFC0 {
|
|
s32 field_0x0;
|
|
s32 field_0x4;
|
|
s32 field_0x8;
|
|
};
|
|
|
|
s8 sub_0200238C(s8 c);
|
|
void sub_020023A8(s8 *dst, s8 *src, s32 n);
|
|
s32 sub_020023F8(s8 *a, s8 *b, s32 n);
|
|
void WaitForever(void);
|
|
void sub_02002448(u32 a);
|
|
s32 sub_020024A0(void);
|
|
void sub_020024B0(void);
|
|
void sub_020024C0(void);
|
|
s32 sub_020024D4(void);
|
|
|
|
#endif
|