mirror of
https://github.com/Druthulu/BFM-decomp
synced 2026-10-06 09:06:04 -04:00
feat(phase-30 S38/S1a): lift 895 local types to engine_types.h — kills the type-scope sweep class
The free-sweep "wall" was a C parse error: a remapped member body names the EXEMPLAR's TU-local types, which are undeclared in the sibling's TU, so gcc-2.7.2 parses the declarator as an expression and dies before ever reaching codegen. extract_unit does carry typedefs, but only ones immediately preceding the function in the preamble — types declared elsewhere in the exemplar's TU are missed. Rather than patch the scanner per-family, remove the class: lift every liftable local type into the shared header once. 895 types lifted, 6,196 local definitions stripped across 1,259 files. R22 clean-fleet 140/140. EXCLUDED s8/s16/s32/u8/u16/u32/f32/s64/u64/f64 — lift_types classified those common.h scalars as liftable and lifting them would have been actively harmful. The tool's own visibility guard kept 8 local defs in src/ov_SC01_077/ov_SC01_077_o0.c, which does not include engine_types.h (stripping a type out of a TU that cannot see the replacement DELETES it, and the link error that follows names an unrelated data symbol). Mechanism proven before scaling: lifting just 3 types took 0x801833f0's family from 0/6 to 6/6.
This commit is contained in:
@@ -386,10 +386,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -756,12 +752,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -338,7 +338,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1212,21 +1212,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1445,7 +1430,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1519,7 +1504,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2075,17 +2059,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -596,7 +592,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2474,7 +2469,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2638,7 +2632,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_8017F1D8[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1111,11 +1111,6 @@ s16 n;
|
||||
extern s16 D_8017FF98[];
|
||||
extern u16 D_8017FAA8;
|
||||
extern u16 D_8017FAAA;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2590,7 +2581,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3786,22 +3786,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2908,8 +2908,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2954,8 +2954,8 @@ s32 func_80175820(void)
|
||||
* matching func_80175820 / func_801759D8 exactly (same idiom, different slot/offsets).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801758FC; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801758FC; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801758FC(void)
|
||||
{
|
||||
@@ -2990,8 +2990,8 @@ s32 func_801758FC(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -3037,7 +3037,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3123,7 +3123,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3147,14 +3147,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3308,7 +3300,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -3274,9 +3274,6 @@ void func_8017D1B4(void *a0) {
|
||||
|
||||
|
||||
/* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */
|
||||
typedef struct {
|
||||
s16 v[4];
|
||||
} Blk8_80126940_8017D1F0;
|
||||
|
||||
extern u16 func_80148800(s32 *a0);
|
||||
extern void func_8017D290(s32 param_1, s16 *param_2);
|
||||
|
||||
@@ -783,8 +783,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801A57C0[];
|
||||
|
||||
D_801A57C0[a0].f0 = 1;
|
||||
@@ -799,20 +797,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801A57C0[];
|
||||
|
||||
D_801A57C0[idx].f0 = 1;
|
||||
@@ -823,7 +807,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801A57C0[];
|
||||
D_801A57C0[a0].f0 = 0; }
|
||||
@@ -842,16 +826,7 @@ extern s32 D_801A5878;
|
||||
extern s32 D_801A58DC;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A57C0");
|
||||
extern s32 D_801A585C;
|
||||
extern s32 D_801A5860;
|
||||
@@ -941,7 +916,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -988,17 +962,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1064,11 +1027,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -388,10 +388,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -758,12 +754,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -338,7 +338,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1212,21 +1212,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1445,7 +1430,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1519,7 +1504,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2075,17 +2059,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2444,7 +2439,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2608,7 +2602,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_80183E28[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1111,11 +1111,6 @@ s16 n;
|
||||
extern s16 D_80184BE8[];
|
||||
extern u16 D_801846F8;
|
||||
extern u16 D_801846FA;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2603,7 +2594,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_001/nonmatchings/ov_SC01_001_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2946,7 +2946,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3032,7 +3032,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3056,14 +3056,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3217,7 +3209,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -3277,9 +3277,6 @@ void func_8017D060(void *a0) {
|
||||
|
||||
|
||||
/* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */
|
||||
typedef struct {
|
||||
s16 v[4];
|
||||
} Blk8_80126940_8017D09C;
|
||||
|
||||
extern u16 func_80148800(s32 *a0);
|
||||
extern void func_8017D13C(s32 param_1, s16 *param_2);
|
||||
|
||||
@@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801F30A0[];
|
||||
|
||||
D_801F30A0[a0].f0 = 1;
|
||||
@@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801F30A0[];
|
||||
|
||||
D_801F30A0[idx].f0 = 1;
|
||||
@@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801F30A0[];
|
||||
D_801F30A0[a0].f0 = 0; }
|
||||
@@ -843,16 +827,7 @@ extern s32 D_801F3158;
|
||||
extern s32 D_801F31BC;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801F30A0");
|
||||
extern s32 D_801F313C;
|
||||
extern s32 D_801F3140;
|
||||
@@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -388,10 +388,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -759,12 +755,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -340,7 +340,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1447,7 +1432,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_8017F7EC[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1111,11 +1111,6 @@ s16 n;
|
||||
extern s16 D_801805AC[];
|
||||
extern u16 D_801800BC;
|
||||
extern u16 D_801800BE;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_004/nonmatchings/ov_SC01_004_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2946,7 +2946,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3032,7 +3032,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3056,14 +3056,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3217,7 +3209,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -3412,7 +3412,6 @@ void func_8017D4A4(void) {
|
||||
/* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the
|
||||
fixed-address D_80115126 load may hoist above it (sched.c true_dependence
|
||||
escape: /s + varying vs non-/s + fixed). */
|
||||
struct Hd4a4 { s16 h; };
|
||||
|
||||
u8 *base;
|
||||
u16 *q;
|
||||
@@ -3732,13 +3731,7 @@ s32 func_8017DC38(void) {
|
||||
|
||||
void func_8017DF18(void) {
|
||||
|
||||
typedef struct {
|
||||
s32 f0; /* 0x00 */
|
||||
u32 *f4; /* 0x04 == D_800AE7BC */
|
||||
s32 f8; /* 0x08 */
|
||||
s32 fC; /* 0x0C */
|
||||
s32 f10; /* 0x10 */
|
||||
} Rec20_8017DF18; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
|
||||
extern s32 D_801151D0;
|
||||
extern s32 D_80115134;
|
||||
@@ -3870,24 +3863,7 @@ void func_8017DF18(void) {
|
||||
* through a local instead) were all tried and all leave the 22-diff swap.
|
||||
*/
|
||||
|
||||
typedef struct Prim4_8017E978_8017E1D4 {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
} Prim4_8017E978_8017E1D4;
|
||||
|
||||
typedef struct Panel_8017E978_8017E1D4 {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
void *f4; /* 0x04 */
|
||||
void *f8; /* 0x08 */
|
||||
s16 fC; /* 0x0C */
|
||||
s16 fE; /* 0x0E */
|
||||
s16 f10; /* 0x10 */
|
||||
s16 f12; /* 0x12 */
|
||||
void *f14; /* 0x14 */
|
||||
Prim4_8017E978_8017E1D4 *f18; /* 0x18 */
|
||||
void *f1C; /* 0x1C */
|
||||
} Panel_8017E978_8017E1D4;
|
||||
|
||||
|
||||
extern void func_80024054(void *a0, void *a1);
|
||||
@@ -4058,10 +4034,7 @@ s32 *func_8017E804(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) {
|
||||
extern u16 D_8011511A;
|
||||
extern u16 D_8018BE9A;
|
||||
extern u16 D_8018BEAE;
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_8017EFA8_8017E804; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_8017EFA8_8017E804 D_800AE7BC[];
|
||||
|
||||
register s32 zr __asm__("$0");
|
||||
|
||||
@@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801902A8[];
|
||||
|
||||
D_801902A8[a0].f0 = 1;
|
||||
@@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801902A8[];
|
||||
|
||||
D_801902A8[idx].f0 = 1;
|
||||
@@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801902A8[];
|
||||
D_801902A8[a0].f0 = 0; }
|
||||
@@ -843,16 +827,7 @@ extern s32 D_80190360;
|
||||
extern s32 D_801903C4;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801902A8");
|
||||
extern s32 D_80190344;
|
||||
extern s32 D_80190348;
|
||||
@@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -389,10 +389,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -759,12 +755,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -341,7 +341,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1215,21 +1215,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1448,7 +1433,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1522,7 +1507,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2078,17 +2062,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -338,10 +338,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -583,7 +579,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2436,7 +2431,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2600,7 +2594,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1049,12 +1049,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_80182980[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1112,11 +1112,6 @@ s16 n;
|
||||
extern s16 D_80183740[];
|
||||
extern u16 D_80183250;
|
||||
extern u16 D_80183252;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3785,22 +3785,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC01_005/nonmatchings/ov_SC01_005_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2947,7 +2947,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3033,7 +3033,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3057,14 +3057,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3218,7 +3210,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -3429,7 +3429,6 @@ void func_8017DC48(void) {
|
||||
/* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the
|
||||
fixed-address D_80115126 load may hoist above it (sched.c true_dependence
|
||||
escape: /s + varying vs non-/s + fixed). */
|
||||
struct Hd4a4_8017DC48 { s16 h; };
|
||||
|
||||
u8 *base;
|
||||
u16 *q;
|
||||
@@ -3743,13 +3742,7 @@ s32 func_8017E3DC(void) {
|
||||
|
||||
void func_8017E6BC(void) {
|
||||
|
||||
typedef struct {
|
||||
s32 f0; /* 0x00 */
|
||||
u32 *f4; /* 0x04 == D_800AE7BC */
|
||||
s32 f8; /* 0x08 */
|
||||
s32 fC; /* 0x0C */
|
||||
s32 f10; /* 0x10 */
|
||||
} Rec20_8017DF18_8017E6BC; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
|
||||
extern s32 D_801151D0;
|
||||
extern s32 D_80115134;
|
||||
@@ -3881,24 +3874,7 @@ void func_8017E6BC(void) {
|
||||
* through a local instead) were all tried and all leave the 22-diff swap.
|
||||
*/
|
||||
|
||||
typedef struct Prim4_8017E978 {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
} Prim4_8017E978;
|
||||
|
||||
typedef struct Panel_8017E978 {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
void *f4; /* 0x04 */
|
||||
void *f8; /* 0x08 */
|
||||
s16 fC; /* 0x0C */
|
||||
s16 fE; /* 0x0E */
|
||||
s16 f10; /* 0x10 */
|
||||
s16 f12; /* 0x12 */
|
||||
void *f14; /* 0x14 */
|
||||
Prim4_8017E978 *f18; /* 0x18 */
|
||||
void *f1C; /* 0x1C */
|
||||
} Panel_8017E978;
|
||||
|
||||
extern u16 D_8011511A;
|
||||
|
||||
@@ -4067,10 +4043,7 @@ extern s16 D_800B9A02;
|
||||
extern s16 func_8014168C(s16 a0);
|
||||
|
||||
s32 *func_8017EFA8(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) {
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_8017EFA8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_8017EFA8 D_800AE7BC[];
|
||||
|
||||
register s32 zr __asm__("$0");
|
||||
|
||||
@@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801CDF08[];
|
||||
|
||||
D_801CDF08[a0].f0 = 1;
|
||||
@@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801CDF08[];
|
||||
|
||||
D_801CDF08[idx].f0 = 1;
|
||||
@@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801CDF08[];
|
||||
D_801CDF08[a0].f0 = 0; }
|
||||
@@ -844,16 +828,7 @@ extern s32 D_801CDFC0;
|
||||
extern s32 D_801CE024;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801CDF08");
|
||||
extern s32 D_801CDFA4;
|
||||
extern s32 D_801CDFA8;
|
||||
@@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -389,10 +389,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -759,12 +755,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -341,7 +341,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1215,21 +1215,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1448,7 +1433,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1522,7 +1507,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2078,17 +2062,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -338,10 +338,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -583,7 +579,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2436,7 +2431,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2600,7 +2594,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1049,12 +1049,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_80182980[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1112,11 +1112,6 @@ s16 n;
|
||||
extern s16 D_80183740[];
|
||||
extern u16 D_80183250;
|
||||
extern u16 D_80183252;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3785,22 +3785,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC01_006/nonmatchings/ov_SC01_006_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2947,7 +2947,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3033,7 +3033,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3057,14 +3057,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3218,7 +3210,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -3430,7 +3430,6 @@ void func_8017DC48(void) {
|
||||
/* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the
|
||||
fixed-address D_80115126 load may hoist above it (sched.c true_dependence
|
||||
escape: /s + varying vs non-/s + fixed). */
|
||||
struct Hd4a4_8017DC48 { s16 h; };
|
||||
|
||||
u8 *base;
|
||||
u16 *q;
|
||||
@@ -3744,13 +3743,7 @@ s32 func_8017E3DC(void) {
|
||||
|
||||
void func_8017E6BC(void) {
|
||||
|
||||
typedef struct {
|
||||
s32 f0; /* 0x00 */
|
||||
u32 *f4; /* 0x04 == D_800AE7BC */
|
||||
s32 f8; /* 0x08 */
|
||||
s32 fC; /* 0x0C */
|
||||
s32 f10; /* 0x10 */
|
||||
} Rec20_8017DF18_8017E6BC; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
|
||||
extern s32 D_801151D0;
|
||||
extern s32 D_80115134;
|
||||
@@ -3881,24 +3874,7 @@ void func_8017E6BC(void) {
|
||||
* through a local instead) were all tried and all leave the 22-diff swap.
|
||||
*/
|
||||
|
||||
typedef struct Prim4_8017E978_8017E978 {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
} Prim4_8017E978_8017E978;
|
||||
|
||||
typedef struct Panel_8017E978_8017E978 {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
void *f4; /* 0x04 */
|
||||
void *f8; /* 0x08 */
|
||||
s16 fC; /* 0x0C */
|
||||
s16 fE; /* 0x0E */
|
||||
s16 f10; /* 0x10 */
|
||||
s16 f12; /* 0x12 */
|
||||
void *f14; /* 0x14 */
|
||||
Prim4_8017E978_8017E978 *f18; /* 0x18 */
|
||||
void *f1C; /* 0x1C */
|
||||
} Panel_8017E978_8017E978;
|
||||
|
||||
|
||||
extern void func_80024054(void *a0, void *a1);
|
||||
@@ -4069,10 +4045,7 @@ s32 *func_8017EFA8(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) {
|
||||
extern u16 D_8011511A;
|
||||
extern u16 D_801BB61E;
|
||||
extern u16 D_801BB632;
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_8017EFA8_8017EFA8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_8017EFA8_8017EFA8 D_800AE7BC[];
|
||||
|
||||
register s32 zr __asm__("$0");
|
||||
|
||||
@@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801CDF08[];
|
||||
|
||||
D_801CDF08[a0].f0 = 1;
|
||||
@@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801CDF08[];
|
||||
|
||||
D_801CDF08[idx].f0 = 1;
|
||||
@@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801CDF08[];
|
||||
D_801CDF08[a0].f0 = 0; }
|
||||
@@ -844,16 +828,7 @@ extern s32 D_801CDFC0;
|
||||
extern s32 D_801CE024;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801CDF08");
|
||||
extern s32 D_801CDFA4;
|
||||
extern s32 D_801CDFA8;
|
||||
@@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -388,10 +388,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -759,12 +755,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -340,7 +340,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1447,7 +1432,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_8017FD60[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1111,11 +1111,6 @@ s16 n;
|
||||
extern s16 D_80180B20[];
|
||||
extern u16 D_80180630;
|
||||
extern u16 D_80180632;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_008/nonmatchings/ov_SC01_008_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2946,7 +2946,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3032,7 +3032,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3056,14 +3056,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3217,7 +3209,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -3407,7 +3407,6 @@ void func_8017D5DC(void) {
|
||||
/* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the
|
||||
fixed-address D_80115126 load may hoist above it (sched.c true_dependence
|
||||
escape: /s + varying vs non-/s + fixed). */
|
||||
struct Hd4a4_8017D5DC { s16 h; };
|
||||
|
||||
u8 *base;
|
||||
u16 *q;
|
||||
@@ -3729,13 +3728,7 @@ s32 func_8017DD70(void) {
|
||||
|
||||
void func_8017E050(void) {
|
||||
|
||||
typedef struct {
|
||||
s32 f0; /* 0x00 */
|
||||
u32 *f4; /* 0x04 == D_800AE7BC */
|
||||
s32 f8; /* 0x08 */
|
||||
s32 fC; /* 0x0C */
|
||||
s32 f10; /* 0x10 */
|
||||
} Rec20_8017DF18_8017E050; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
|
||||
extern s32 D_801151D0;
|
||||
extern s32 D_80115134;
|
||||
@@ -3866,24 +3859,7 @@ void func_8017E050(void) {
|
||||
* through a local instead) were all tried and all leave the 22-diff swap.
|
||||
*/
|
||||
|
||||
typedef struct Prim4_8017E978_8017E30C {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
} Prim4_8017E978_8017E30C;
|
||||
|
||||
typedef struct Panel_8017E978_8017E30C {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
void *f4; /* 0x04 */
|
||||
void *f8; /* 0x08 */
|
||||
s16 fC; /* 0x0C */
|
||||
s16 fE; /* 0x0E */
|
||||
s16 f10; /* 0x10 */
|
||||
s16 f12; /* 0x12 */
|
||||
void *f14; /* 0x14 */
|
||||
Prim4_8017E978_8017E30C *f18; /* 0x18 */
|
||||
void *f1C; /* 0x1C */
|
||||
} Panel_8017E978_8017E30C;
|
||||
|
||||
|
||||
extern void func_80024054(void *a0, void *a1);
|
||||
@@ -4054,10 +4030,7 @@ s32 *func_8017E93C(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) {
|
||||
extern u16 D_8011511A;
|
||||
extern u16 D_8019EBFA;
|
||||
extern u16 D_8019EC0E;
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_8017EFA8_8017E93C; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_8017EFA8_8017E93C D_800AE7BC[];
|
||||
|
||||
register s32 zr __asm__("$0");
|
||||
|
||||
@@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801A34B8[];
|
||||
|
||||
D_801A34B8[a0].f0 = 1;
|
||||
@@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801A34B8[];
|
||||
|
||||
D_801A34B8[idx].f0 = 1;
|
||||
@@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801A34B8[];
|
||||
D_801A34B8[a0].f0 = 0; }
|
||||
@@ -843,16 +827,7 @@ extern s32 D_801A3570;
|
||||
extern s32 D_801A35D4;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801A34B8");
|
||||
extern s32 D_801A3554;
|
||||
extern s32 D_801A3558;
|
||||
@@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -388,10 +388,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -759,12 +755,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -340,7 +340,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1447,7 +1432,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1056,12 +1056,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_80182F48[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1111,11 +1111,6 @@ s16 n;
|
||||
extern s16 D_80183D08[];
|
||||
extern u16 D_80183818;
|
||||
extern u16 D_8018381A;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2587,7 +2578,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_009/nonmatchings/ov_SC01_009_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2946,7 +2946,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3032,7 +3032,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3056,14 +3056,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3217,7 +3209,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -3366,7 +3366,6 @@ void func_8017D47C(void) {
|
||||
/* COMPONENT_REF -> unconditional MEM_IN_STRUCT_P on the base store, so the
|
||||
fixed-address D_80115126 load may hoist above it (sched.c true_dependence
|
||||
escape: /s + varying vs non-/s + fixed). */
|
||||
struct Hd4a4_8017D47C { s16 h; };
|
||||
|
||||
u8 *base;
|
||||
u16 *q;
|
||||
@@ -3688,13 +3687,7 @@ s32 func_8017DC10(void) {
|
||||
|
||||
void func_8017DEF0(void) {
|
||||
|
||||
typedef struct {
|
||||
s32 f0; /* 0x00 */
|
||||
u32 *f4; /* 0x04 == D_800AE7BC */
|
||||
s32 f8; /* 0x08 */
|
||||
s32 fC; /* 0x0C */
|
||||
s32 f10; /* 0x10 */
|
||||
} Rec20_8017DF18_8017DEF0; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
|
||||
extern s32 D_801151D0;
|
||||
extern s32 D_80115134;
|
||||
@@ -3825,24 +3818,7 @@ void func_8017DEF0(void) {
|
||||
* through a local instead) were all tried and all leave the 22-diff swap.
|
||||
*/
|
||||
|
||||
typedef struct Prim4_8017E978_8017E1AC {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
} Prim4_8017E978_8017E1AC;
|
||||
|
||||
typedef struct Panel_8017E978_8017E1AC {
|
||||
s16 f0; /* 0x00 */
|
||||
s16 f2; /* 0x02 */
|
||||
void *f4; /* 0x04 */
|
||||
void *f8; /* 0x08 */
|
||||
s16 fC; /* 0x0C */
|
||||
s16 fE; /* 0x0E */
|
||||
s16 f10; /* 0x10 */
|
||||
s16 f12; /* 0x12 */
|
||||
void *f14; /* 0x14 */
|
||||
Prim4_8017E978_8017E1AC *f18; /* 0x18 */
|
||||
void *f1C; /* 0x1C */
|
||||
} Panel_8017E978_8017E1AC;
|
||||
|
||||
|
||||
extern void func_80024054(void *a0, void *a1);
|
||||
@@ -4013,10 +3989,7 @@ s32 *func_8017E7DC(s32 *ot, void *a1p, s32 idx, void *a3p, s32 tag) {
|
||||
extern u16 D_8011511A;
|
||||
extern u16 D_801E8C4E;
|
||||
extern u16 D_801E8C62;
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_8017EFA8_8017E7DC; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_8017EFA8_8017E7DC D_800AE7BC[];
|
||||
|
||||
register s32 zr __asm__("$0");
|
||||
|
||||
@@ -784,8 +784,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801F3338[];
|
||||
|
||||
D_801F3338[a0].f0 = 1;
|
||||
@@ -800,20 +798,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801F3338[];
|
||||
|
||||
D_801F3338[idx].f0 = 1;
|
||||
@@ -824,7 +808,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801F3338[];
|
||||
D_801F3338[a0].f0 = 0; }
|
||||
@@ -843,16 +827,7 @@ extern s32 D_801F33F0;
|
||||
extern s32 D_801F3454;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801F3338");
|
||||
extern s32 D_801F33D4;
|
||||
extern s32 D_801F33D8;
|
||||
@@ -942,7 +917,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -989,17 +963,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1065,11 +1028,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -388,10 +388,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -759,12 +755,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -340,7 +340,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1447,7 +1432,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_8017EBC8[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1112,11 +1112,6 @@ s16 n;
|
||||
extern s16 D_8017F988[];
|
||||
extern u16 D_8017F498;
|
||||
extern u16 D_8017F49A;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_074/nonmatchings/ov_SC01_074_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2946,7 +2946,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3032,7 +3032,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3056,14 +3056,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3217,7 +3209,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_8019BC48[];
|
||||
|
||||
D_8019BC48[a0].f0 = 1;
|
||||
@@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_8019BC48[];
|
||||
|
||||
D_8019BC48[idx].f0 = 1;
|
||||
@@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_8019BC48[];
|
||||
D_8019BC48[a0].f0 = 0; }
|
||||
@@ -844,16 +828,7 @@ extern s32 D_8019BD00;
|
||||
extern s32 D_8019BD64;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_8019BC48");
|
||||
extern s32 D_8019BCE4;
|
||||
extern s32 D_8019BCE8;
|
||||
@@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -2353,11 +2353,6 @@ s32 *ot;
|
||||
s16 i;
|
||||
s16 n;
|
||||
{
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -2577,13 +2572,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -3864,7 +3855,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -429,10 +429,6 @@ DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
#include "common.h"
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc;
|
||||
|
||||
extern s16 D_80186DCC[];
|
||||
extern CdFileLoc cdFileLocTable[];
|
||||
@@ -845,12 +841,6 @@ extern s16 D_80126CAE;
|
||||
|
||||
void func_8012A328(void)
|
||||
{
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -370,7 +370,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1345,21 +1345,6 @@ extern s32 func_80029178(s32);
|
||||
extern u8 D_801202A0[];
|
||||
|
||||
s32 func_8014A738(void *arg0) {
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1700,7 +1685,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1771,7 +1756,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2356,17 +2340,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -410,10 +410,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -707,7 +703,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2753,7 +2748,6 @@ extern u8 D_80126BE0[];
|
||||
|
||||
void func_80132F40(s32 arg0)
|
||||
{
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2902,7 +2896,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L;
|
||||
|
||||
extern u8 D_80126B5C; /* canonical decl (engine_core.h DEFINE_func_8012BD14) */
|
||||
extern s32 D_80126B5C_w __asm__("D_80126B5C"); /* same symbol, s32 view */
|
||||
|
||||
@@ -1135,12 +1135,6 @@ s32 func_8013A8FC(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_801870EC[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -3956,22 +3956,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -3070,8 +3070,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -3111,8 +3111,8 @@ INCLUDE_ASM("asm/ov_SC01_077/nonmatchings/ov_SC01_077_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -3201,7 +3201,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3292,7 +3292,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
extern u8 D_8011F7F0;
|
||||
extern u8 D_800B9A13;
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
extern u16 D_8018A1DC[];
|
||||
@@ -3313,14 +3313,6 @@ extern void func_800183E0(s32 a0);
|
||||
void func_80175DA8(param_1)
|
||||
u16 param_1;
|
||||
{
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3475,7 +3467,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -388,10 +388,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -759,12 +755,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -340,7 +340,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1447,7 +1432,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_80183B28[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1112,11 +1112,6 @@ s16 n;
|
||||
extern s16 D_801848E8[];
|
||||
extern u16 D_801843F8;
|
||||
extern u16 D_801843FA;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2604,7 +2595,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3784,22 +3784,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2858,8 +2858,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2899,8 +2899,8 @@ INCLUDE_ASM("asm/ov_SC01_080/nonmatchings/ov_SC01_080_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2946,7 +2946,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3032,7 +3032,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3056,14 +3056,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3217,7 +3209,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801C7E28[];
|
||||
|
||||
D_801C7E28[a0].f0 = 1;
|
||||
@@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801C7E28[];
|
||||
|
||||
D_801C7E28[idx].f0 = 1;
|
||||
@@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801C7E28[];
|
||||
D_801C7E28[a0].f0 = 0; }
|
||||
@@ -844,16 +828,7 @@ extern s32 D_801C7EE0;
|
||||
extern s32 D_801C7F44;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C7E28");
|
||||
extern s32 D_801C7EC8;
|
||||
extern s32 D_801C7ECC;
|
||||
@@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -388,10 +388,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -759,12 +755,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -340,7 +340,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1447,7 +1432,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2445,7 +2440,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2609,7 +2603,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1057,12 +1057,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_80186E1C[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1112,11 +1112,6 @@ s16 n;
|
||||
extern s16 D_80187BDC[];
|
||||
extern u16 D_801876EC;
|
||||
extern u16 D_801876EE;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1255,13 +1250,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2588,7 +2579,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
@@ -3785,22 +3785,7 @@ void func_8016EC0C(s32 a0, s32 a1)
|
||||
/* §100 draft-LOCAL type: a file-scope typedef is an EXEMPLAR-ONLY bank — extract_unit/
|
||||
remap_hseq carry only the BODY, so every sibling fails `T8016EC0C undeclared`
|
||||
(measured on ov_SC01_000). Block scope travels with the body; byte-neutral. */
|
||||
typedef struct {
|
||||
/* 0x00 */ s16 x;
|
||||
/* 0x02 */ s16 y;
|
||||
/* 0x04 */ s32 u04;
|
||||
/* 0x08 */ s16 u08;
|
||||
/* 0x0A */ s16 u0A;
|
||||
/* 0x0C */ s16 u0C;
|
||||
/* 0x0E */ s16 u0E;
|
||||
/* 0x10 */ u8 r;
|
||||
/* 0x11 */ u8 g;
|
||||
/* 0x12 */ u8 b;
|
||||
/* 0x13 */ u8 pad13;
|
||||
/* 0x14 */ s32 u14;
|
||||
/* 0x18 */ u8 u18;
|
||||
/* 0x19 */ u8 pad19[3];
|
||||
} T8016EC0C; /* 0x1C */
|
||||
/* 0x1C */
|
||||
T8016EC0C s;
|
||||
u16 *p;
|
||||
s32 x;
|
||||
|
||||
@@ -2859,8 +2859,8 @@ DEFINE_func_801757E0() /* dedup: shared engine-core @0x801757E0 (src/shared) */
|
||||
* shared `la $v1,D_8011F7A8` + 0x18/0x20 displacements).
|
||||
*/
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_80175820_80175820; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80175820_80175820; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_80175820(void)
|
||||
{
|
||||
@@ -2900,8 +2900,8 @@ INCLUDE_ASM("asm/ov_SC01_084/nonmatchings/ov_SC01_084_jr_801734BC", func_801758F
|
||||
|
||||
|
||||
|
||||
typedef struct { u32 *f0; s32 pad[4]; } S_AE7BC_801759D8; /* size 0x14 */
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_801759D8; /* size 0x0C */
|
||||
/* size 0x14 */
|
||||
/* size 0x0C */
|
||||
|
||||
s32 func_801759D8(void)
|
||||
{
|
||||
@@ -2947,7 +2947,7 @@ s32 func_801759D8(void)
|
||||
void func_80175AB8(param_1)
|
||||
s16 param_1;
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern S_AF634 D_800AF634[];
|
||||
extern S_AF634 D_800AF638[];
|
||||
|
||||
@@ -3033,7 +3033,7 @@ void func_80175AB8(param_1)
|
||||
|
||||
|
||||
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
|
||||
extern s32 func_8005A600(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4);
|
||||
extern void func_800183E0(s32 a0);
|
||||
@@ -3057,14 +3057,6 @@ void func_80175DA8(param_1)
|
||||
extern u8 D_800D43D4;
|
||||
extern u8 D_800D4414;
|
||||
extern u8 D_800D45D4;
|
||||
typedef struct {
|
||||
u32 tag; /* 0x00 */
|
||||
u32 code; /* 0x04 */
|
||||
u16 x; /* 0x08 */
|
||||
u16 y; /* 0x0A */
|
||||
u32 uv; /* 0x0C */
|
||||
u32 wh; /* 0x10 */
|
||||
} Sp_80175DA8;
|
||||
|
||||
u8 *base = &D_8011F7F0;
|
||||
u8 *s = base - 0x48;
|
||||
@@ -3218,7 +3210,7 @@ void func_80175DA8(param_1)
|
||||
|
||||
void func_80176144(s32 a0)
|
||||
{
|
||||
typedef struct { s32 g0; s32 pad[2]; } S_AF634_80176144; /* size 0x0C */
|
||||
/* size 0x0C */
|
||||
/* §37 asm-label alias: private C names, canonical relocations. */
|
||||
extern S_AF634_80176144 aAF634[] __asm__("D_800AF634");
|
||||
extern S_AF634_80176144 aAF638[] __asm__("D_800AF638");
|
||||
|
||||
@@ -3389,17 +3389,6 @@ void func_8017BF84(int param_1)
|
||||
* 0x2C u16 sound id passed to func_80147324 (lhu)
|
||||
* 0x30 s32 suppress flag
|
||||
*/
|
||||
typedef struct Ent_8017BFE0 {
|
||||
u8 pad00[2]; /* 0x00 */
|
||||
u16 f02; /* 0x02 */
|
||||
u8 pad04[0x18];/* 0x04 */
|
||||
s32 f1c; /* 0x1C */
|
||||
u8 pad20[0xA]; /* 0x20 */
|
||||
u16 f2a; /* 0x2A */
|
||||
u16 f2c; /* 0x2C */
|
||||
u8 pad2e[2]; /* 0x2E */
|
||||
s32 f30; /* 0x30 */
|
||||
} Ent_8017BFE0;
|
||||
|
||||
extern void func_80147324(s32 arg0);
|
||||
extern void func_8017C218(int);
|
||||
@@ -3506,24 +3495,11 @@ DEFINE_func_8017C1CC() /* dedup: shared engine-core @0x8017C1CC (src/shared) */
|
||||
* (10 x stride-4, 20 x stride-2, 20 x stride-2 guarded by the s16 @0x2A).
|
||||
*/
|
||||
|
||||
typedef struct {
|
||||
s16 vx, vy, vz, pad;
|
||||
} SVec8_8017C218;
|
||||
|
||||
typedef struct {
|
||||
u8 r, g, b, cd;
|
||||
} CVec4_8017C218;
|
||||
|
||||
typedef struct {
|
||||
SVec8_8017C218 v[4]; /* 0x00 */
|
||||
CVec4_8017C218 c[4]; /* 0x20 */
|
||||
s32 code; /* 0x30 */
|
||||
} Prim_8017C218; /* 0x34 */
|
||||
/* 0x34 */
|
||||
|
||||
typedef struct {
|
||||
s16 m[3][3];
|
||||
s32 t[3];
|
||||
} Mtx_8017C218; /* 0x20 */
|
||||
/* 0x20 */
|
||||
|
||||
extern u16 D_800B99DA;
|
||||
extern u8 D_8018A238[];
|
||||
@@ -3853,10 +3829,6 @@ DEFINE_func_8017C8B4() /* dedup: shared engine-core @0x8017C8B4 (src/shared) */
|
||||
|
||||
void func_8017C910(void *a0)
|
||||
{
|
||||
typedef struct { s16 x; s16 y; s16 z; s16 pad; } SVec_8017C910;
|
||||
typedef struct { u8 r; u8 g; u8 b; u8 pad; } Clr_8017C910;
|
||||
typedef struct { SVec_8017C910 v[2]; Clr_8017C910 col[2]; s32 tag; s32 pad; } Prim_8017C910;
|
||||
typedef struct { s32 w[8]; } Mtx8_8017C910;
|
||||
extern Mtx8_8017C910 aD800AE620 __asm__("D_800AE620");
|
||||
extern void aFunc80016A5C(void *arg0, void *arg1) __asm__("func_80016A5C");
|
||||
Prim_8017C910 prim;
|
||||
|
||||
@@ -785,8 +785,6 @@ void func_8013B568(s32 arg0) {
|
||||
* 66/66 instructions byte-identical (match_one --o0).
|
||||
*/
|
||||
void func_8013B598(s32 a0, u16 *a1) {
|
||||
typedef struct { u16 f0; u16 f2; u16 f4; } Src_8013B598_8013B598;
|
||||
typedef struct { s32 f0; u16 f4; u16 f6; u16 f8; u16 fA; s32 fC; u8 pad[0xC]; } Spr_8013B598_8013B598;
|
||||
extern Spr_8013B598_8013B598 D_801C7788[];
|
||||
|
||||
D_801C7788[a0].f0 = 1;
|
||||
@@ -801,20 +799,6 @@ void func_8013B598(s32 a0, u16 *a1) {
|
||||
|
||||
void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
{
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[0xC];
|
||||
} Ent_8013B6A0_8013B6A0;
|
||||
typedef struct {
|
||||
u16 f0;
|
||||
u16 f2;
|
||||
u16 f4;
|
||||
} Src_8013B6A0_8013B6A0;
|
||||
extern Ent_8013B6A0_8013B6A0 D_801C7788[];
|
||||
|
||||
D_801C7788[idx].f0 = 1;
|
||||
@@ -825,7 +809,7 @@ void func_8013B6A0(s32 idx, u16 *src, s32 val)
|
||||
}
|
||||
|
||||
|
||||
typedef struct { s32 f0; u8 pad[0x18]; } E_3B7AC_8013B7AC; /* sizeof 0x1C stride */
|
||||
/* sizeof 0x1C stride */
|
||||
void func_8013B7AC(int a0) {
|
||||
extern E_3B7AC_8013B7AC D_801C7788[];
|
||||
D_801C7788[a0].f0 = 0; }
|
||||
@@ -844,16 +828,7 @@ extern s32 D_801C7B88;
|
||||
extern s32 D_801C7BEC;
|
||||
|
||||
void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct {
|
||||
s32 f0;
|
||||
u16 f4;
|
||||
u16 f6;
|
||||
u16 f8;
|
||||
u16 fA;
|
||||
s32 fC;
|
||||
u8 pad[8];
|
||||
s32 f18;
|
||||
} Ent_8013B83C; /* sizeof 0x1C */
|
||||
/* sizeof 0x1C */
|
||||
extern Ent_8013B83C D_801DAA08_e[] __asm__("D_801C7788");
|
||||
extern s32 D_801C7824;
|
||||
extern s32 D_801C7828;
|
||||
@@ -943,7 +918,6 @@ void func_8013B83C(s32 a0, s32 a1, s32 a2) {
|
||||
}
|
||||
|
||||
|
||||
typedef struct { char pad_8013BC7C[0x68]; s32 f68; } S_8013BC7C_8013BC7C;
|
||||
|
||||
|
||||
void func_8013BC7C(void *arg0) {
|
||||
@@ -990,17 +964,6 @@ void func_8013BD74(void *a0, s32 a1) {
|
||||
file-scope E_13BD74 banks the exemplar and then fails every sibling with `E_13BD74'
|
||||
undeclared (the §94 type-carry class, measured on ov_SC01_000). Block scope travels with the
|
||||
body and is byte-neutral (a type emits no code). */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13BD74;
|
||||
typedef struct {
|
||||
u8 pad0[3];
|
||||
u8 code;
|
||||
s32 f4;
|
||||
s32 f8;
|
||||
} P_13BD74;
|
||||
s32 *q;
|
||||
s32 *p;
|
||||
s32 i;
|
||||
@@ -1066,11 +1029,6 @@ void func_8013C08C(void *a0, void *a1) {
|
||||
* failure until proven otherwise). Declared here, it is part of the unit by construction.
|
||||
* NB no brace characters in this comment on purpose - extract_unit's forward brace-scan does
|
||||
* not strip comments, so a brace in a comment truncates the extracted unit. */
|
||||
typedef struct {
|
||||
u8 pad0[8];
|
||||
void *f8;
|
||||
void *fC;
|
||||
} E_13C08C_8013C08C;
|
||||
|
||||
void *p = a1;
|
||||
|
||||
|
||||
@@ -388,10 +388,6 @@ void func_80128AF4(void) {
|
||||
DEFINE_func_80128C14() /* dedup: shared engine-core @0x80128C14 (src/shared) */
|
||||
|
||||
|
||||
typedef struct {
|
||||
s32 word0;
|
||||
s32 word4;
|
||||
} CdFileLoc_80128C98;
|
||||
|
||||
extern CdFileLoc_80128C98 cdFileLocTable[];
|
||||
extern void func_8001ABBC(s32 a0, s32 a1, void *a2, s32 a3, s32 a4);
|
||||
@@ -758,12 +754,6 @@ void func_8012A328(void)
|
||||
extern s16 D_80126944;
|
||||
extern s16 D_80127080;
|
||||
extern s16 D_80126CAE;
|
||||
typedef struct {
|
||||
u8 pad[0x154];
|
||||
u16 f154;
|
||||
s16 f156;
|
||||
u16 f158;
|
||||
} Obj_80126B58;
|
||||
Obj_80126B58 *p = (Obj_80126B58 *)&D_80126B58;
|
||||
s16 *q;
|
||||
s32 a, b;
|
||||
|
||||
@@ -340,7 +340,7 @@ void func_80146360(void)
|
||||
|
||||
|
||||
|
||||
typedef struct { char _b[8]; } Blk8_801463A0; /* size 8, align 1 -> unaligned block move */
|
||||
/* size 8, align 1 -> unaligned block move */
|
||||
|
||||
extern void func_8014C6F4();
|
||||
extern void func_80155150(s32 a0);
|
||||
@@ -1214,21 +1214,6 @@ extern s32 func_80029178(s32);
|
||||
s32 func_8014A738(void *arg0) {
|
||||
|
||||
extern u8 D_801202A0[];
|
||||
typedef struct {
|
||||
s16 vx;
|
||||
s16 vy;
|
||||
s16 vz;
|
||||
s16 pad;
|
||||
} Vec_8014A738;
|
||||
typedef struct {
|
||||
u8 pad0[6];
|
||||
u16 x;
|
||||
u8 pad8[6];
|
||||
u16 z;
|
||||
u8 pad10[0xB1];
|
||||
u8 state;
|
||||
u8 padC2[0x4A];
|
||||
} Ent_801202A0;
|
||||
Vec_8014A738 d;
|
||||
u32 i;
|
||||
Ent_801202A0 *base;
|
||||
@@ -1447,7 +1432,7 @@ s32 a2;
|
||||
s16 *a3;
|
||||
u16 a4;
|
||||
{
|
||||
typedef struct { u16 a, b, c, d; } V4U_8014C4AC; /* block-scope: no file-scope conflict (§100) */
|
||||
/* block-scope: no file-scope conflict (§100) */
|
||||
extern s32 D_80126CD0;
|
||||
extern u16 D_8012693A;
|
||||
extern u16 D_801152B8;
|
||||
@@ -1521,7 +1506,6 @@ DEFINE_func_8014C6E0() /* dedup: shared engine-core @0x8014C6E0 (src/shared) */
|
||||
// the preceding insns, reproducing `beqz $v0,.L8014C7F4 / addiu $a1,$zero,0x22` and leaving
|
||||
// the loop-back delay slot a nop. `want` needs no pin — gcc lands it in $a1 on its own.
|
||||
|
||||
typedef struct { char _b[8]; } M8_8014C6F4;
|
||||
|
||||
void func_8014C6F4(u8 *a) {
|
||||
extern u8 D_80078E78[];
|
||||
@@ -2077,17 +2061,6 @@ s32 func_8014D820(s32 a0, u16 *a1, u16 *a2x)
|
||||
u16 z;
|
||||
u16 w;
|
||||
} V4;
|
||||
typedef struct
|
||||
{
|
||||
u16 x;
|
||||
u16 y;
|
||||
u16 z;
|
||||
u16 w;
|
||||
s32 pad[4];
|
||||
s32 f18;
|
||||
s32 f1C;
|
||||
s32 f20;
|
||||
} Desc;
|
||||
typedef struct EntD820
|
||||
{
|
||||
u16 f0;
|
||||
|
||||
@@ -340,10 +340,6 @@ extern s32 func_8004787C(s32 a0); /* rcos-like: angle (0..0xFFF) -> 1.12 fixed *
|
||||
* A `struct { s16 lo, hi; }` has align 2 -> BLKmode-ish handling: gcc spills it to the stack
|
||||
* and stores it with lwl/lwr + swl/swr (54 ins, 53 mismatched). Two 16-bit BITFIELDS in a
|
||||
* u32 container give the SImode, align-4 struct gcc keeps in a register. */
|
||||
typedef struct {
|
||||
u32 lo : 16;
|
||||
u32 hi : 16;
|
||||
} Ang2_8012B77C_8012B77C;
|
||||
|
||||
/* a0 = destination packed-angle word, a1 = "from" entity, a2 = "to" entity.
|
||||
* Both entities carry 16.16 fixed-point x/y/z at +0/+4/+8; the s16 reads at +2/+6/+0xA are
|
||||
@@ -588,7 +584,6 @@ extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
|
||||
* Two 8-byte s16 vectors live at sp+0x10 and sp+0x18 and are passed by address; the second one
|
||||
* is written back to the entity's hi-16 fixed-point position after the offset is removed. */
|
||||
s32 func_8012CC88(s32 a0, s32 a1, s32 a2) {
|
||||
typedef struct { s16 vx, vy, vz, pad; } SV3_8012CC88;
|
||||
SV3_8012CC88 sp10;
|
||||
SV3_8012CC88 sp18;
|
||||
s32 v0;
|
||||
@@ -2444,7 +2439,6 @@ void func_80132F40(s32 arg0)
|
||||
{
|
||||
|
||||
extern u8 D_80126BE0[];
|
||||
typedef struct { u16 vx, vy, vz, pad; } Svec_80132F40;
|
||||
|
||||
Svec_80132F40 v[4];
|
||||
register Svec_80132F40 *q __asm__("$17");
|
||||
@@ -2608,7 +2602,6 @@ void func_801330E0(param_1, param_2, param_3)
|
||||
* struct-fold) instead of 8 serial lw/sw pairs. Locally named (engine_types.h's
|
||||
* identical `Blk32` is an anonymous-tag typedef -> a same-name redefinition here
|
||||
* is a C89 error in the real TU). */
|
||||
typedef struct { s32 w[8]; } Blk32L_80133298;
|
||||
|
||||
|
||||
extern void func_8012F0BC(s32 *a0, s32 *a1, s32 *a2);
|
||||
|
||||
@@ -1048,12 +1048,6 @@ extern s32 func_80139BE0(s32);
|
||||
|
||||
s32 func_80138C60(s32 arg0)
|
||||
{
|
||||
typedef struct {
|
||||
u8 b0;
|
||||
u8 b1;
|
||||
u8 b2;
|
||||
u8 b3;
|
||||
} Q_80138C60;
|
||||
extern Q_80138C60 D_8018B1CC[];
|
||||
u16 t;
|
||||
u8 b;
|
||||
|
||||
@@ -1111,11 +1111,6 @@ s16 n;
|
||||
extern s16 D_8018BF8C[];
|
||||
extern u16 D_8018BA9C;
|
||||
extern u16 D_8018BA9E;
|
||||
typedef struct
|
||||
{
|
||||
u32 *ot;
|
||||
u32 pad[4];
|
||||
} Env_80140958;
|
||||
extern Env_80140958 D_800AE7BC[];
|
||||
Prim4 *p;
|
||||
s16 t;
|
||||
@@ -1254,13 +1249,9 @@ s32 *func_80140D68(out, src, idx, dx, ofs)
|
||||
NOT file-scope typedefs — so a file-scope Env_800D29F8 is silently dropped from every
|
||||
sibling and the family sweeps 0/137. Body-local typedefs DO survive (PTag_80140D68 below
|
||||
is the proof), so it lives here. */
|
||||
typedef struct {
|
||||
u32 *ot; /* 0x00 */
|
||||
u32 pad[4]; /* 0x04..0x13 */
|
||||
} Env_800D29F8; /* 0x14 stride */
|
||||
/* 0x14 stride */
|
||||
extern Env_800D29F8 D_800AE7BC[];
|
||||
|
||||
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80140D68;
|
||||
|
||||
register u32 mhi __asm__("$8");
|
||||
s16 *q;
|
||||
@@ -2603,7 +2594,6 @@ DEFINE_func_80144AEC() /* dedup: shared engine-core @0x80144AEC (src/shared) */
|
||||
|
||||
extern int func_80013294(void *a0, void *a1);
|
||||
|
||||
typedef struct { short vx, vy, vz, pad; } Vec;
|
||||
|
||||
int func_80144B14(int param_1) {
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user