T5.c1: fleet lift 1308 types to engine_types.h; lift_types file-scope/common.h/local-.h guards

This commit is contained in:
Drew T
2026-09-29 23:45:59 -06:00
parent 6e3fae9a14
commit 907138d267
290 changed files with 4278 additions and 6930 deletions
-5
View File
@@ -1053,7 +1053,6 @@ void func_8012BF4C(s32 *a0, s32 a1) {
#include "../shared/ov/func_8012C820.h" #include "../shared/ov/func_8012C820.h"
typedef struct { s8 c[8]; } Blk8_8012C890;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (149 ins). Counter (*(u16 *)&D_801270C4): gcc CSE's the two reads (store to // @unstuck(P36): none — MATCH (149 ins). Counter (*(u16 *)&D_801270C4): gcc CSE's the two reads (store to
@@ -1376,7 +1375,6 @@ void func_8012E284(void) {
#include "../shared/ov/func_8012E32C.h" #include "../shared/ov/func_8012E32C.h"
typedef struct { s8 c[8]; } Blk8_8012E364;
/* func_8012E364 (ov_SC01_077_jr_8012ACE0) — MATCH, 67/67 ins, 0 mismatched (reloc-masked). /* func_8012E364 (ov_SC01_077_jr_8012ACE0) — MATCH, 67/67 ins, 0 mismatched (reloc-masked).
* *
@@ -1597,7 +1595,6 @@ void func_8012E9C0(int param_1)
#include "../shared/ov/func_8012EF70.h" #include "../shared/ov/func_8012EF70.h"
typedef struct { s8 c[8]; } Blk8_8012EFB8;
/* §37/§124 asm-label alias: the fleet canon declares this `extern void /* §37/§124 asm-label alias: the fleet canon declares this `extern void
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in * func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
@@ -1716,7 +1713,6 @@ void func_8012F8C8(int param_1)
#include "../shared/ov/func_8012FCA4.h" #include "../shared/ov/func_8012FCA4.h"
typedef struct { s8 c[8]; } Blk8_8012FCC4;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (57 ins), byte-exact via rtu_match on the real TU. // @unstuck(P36): none — MATCH (57 ins), byte-exact via rtu_match on the real TU.
@@ -2020,7 +2016,6 @@ extern s32 func_8012BCCC(s32 a0);
extern s32 func_80131A34(s32, s32); extern s32 func_80131A34(s32, s32);
extern s32 func_80131AC8(void *a0); extern s32 func_80131AC8(void *a0);
extern void func_80131B14(void); extern void func_80131B14(void);
typedef struct { s8 c[8]; } Blk8_80131170;
// @class: loop-guard // @class: loop-guard
@@ -532,7 +532,6 @@ extern void func_80131170(s32 p, s32 b, s32 c);
extern s32 func_801312D0(s32 param_1, void *param_2); extern s32 func_801312D0(s32 param_1, void *param_2);
typedef struct { s8 c[8]; } Blk8_80131340;
// @class: plumbing // @class: plumbing
@@ -874,7 +873,6 @@ extern void func_8012B23C(s32 a0);
extern void func_8012B2CC(s32 a0); extern void func_8012B2CC(s32 a0);
extern void func_8016AA50(int, int); extern void func_8016AA50(int, int);
extern s32 func_8016B428(s32); extern s32 func_8016B428(s32);
typedef struct { s8 c[8]; } Blk8_80131B14;
// @class: regalloc-order // @class: regalloc-order
// @unstuck(P36): none — MATCH (89 ins). Reconcile: TU canonical decl is `void func_80131B14(void)` // @unstuck(P36): none — MATCH (89 ins). Reconcile: TU canonical decl is `void func_80131B14(void)`
@@ -946,7 +944,6 @@ void func_80131B14(void) {
#include "../shared/ov/func_80131C78.h" #include "../shared/ov/func_80131C78.h"
typedef struct { s8 c[8]; } Blk8_80131CA8;
/* func_80131CA8 — RECONCILE (§37/§124 asm-label alias) /* func_80131CA8 — RECONCILE (§37/§124 asm-label alias)
* *
@@ -976,7 +973,6 @@ extern s32 func_80131CF4(); // K&R: 1/2 of 2 args (P37 unalias t4_ua6)
#include "../shared/ov/func_80131CA8.h" #include "../shared/ov/func_80131CA8.h"
typedef struct { s8 c[8]; } Blk8_80131CF4;
/* func_80131CF4 — table lookup: walk (key, value) pairs; key 0xD chains to the /* func_80131CF4 — table lookup: walk (key, value) pairs; key 0xD chains to the
@@ -1247,7 +1243,6 @@ void func_8013277C(void) {
#include "../shared/ov/func_80132EF4.h" #include "../shared/ov/func_80132EF4.h"
typedef struct { s8 c[8]; } Blk8_80132F40;
/* func_80132F40 — ov_SC01_077 (jr_8012ACE0 region), 72 ins, -O2. *** MATCH *** /* func_80132F40 — ov_SC01_077 (jr_8012ACE0 region), 72 ins, -O2. *** MATCH ***
* *
@@ -2028,7 +2023,6 @@ int func_80134A74(int param_1, s16 param_2, s16 param_3, int param_4)
} }
typedef struct { s8 c[8]; } Blk8_80134C20;
// @class: regalloc-order // @class: regalloc-order
// @try: variant B — direct pins m=$s5($21), c=$s6($22) // @try: variant B — direct pins m=$s5($21), c=$s6($22)
@@ -2121,7 +2115,6 @@ block_14:
#include "../shared/ov/func_80134FB8.h" #include "../shared/ov/func_80134FB8.h"
typedef struct { s8 c[8]; } Blk8_80135004;
// @class: plumbing // @class: plumbing
// @stuck: MATCH (89 ins). To BANK: retype aD8017E914_80135004 + aD8017E910_80135004 (u8 -> s16*) in sibling func_80135168's externs (src/ov_SC01_077/ov_SC01_077_a.c ~L1879); they hold pointers double-referenced across a call, so only a 4-byte/pointer decl folds %lo (u8 &-cast CSE's the address into a saved reg). Retype is byte-NEUTRAL for the sibling (verified: identical objdump bytes u8 vs s16*). // @stuck: MATCH (89 ins). To BANK: retype aD8017E914_80135004 + aD8017E910_80135004 (u8 -> s16*) in sibling func_80135168's externs (src/ov_SC01_077/ov_SC01_077_a.c ~L1879); they hold pointers double-referenced across a call, so only a 4-byte/pointer decl folds %lo (u8 &-cast CSE's the address into a saved reg). Retype is byte-NEUTRAL for the sibling (verified: identical objdump bytes u8 vs s16*).
@@ -2232,7 +2225,6 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
} }
typedef struct { s8 c[8]; } Blk8_80135260;
/* func_80135260 — "is <target> reachable/hittable" gate (136 ins, ov_SC01_077 jr_8012ACE0). /* func_80135260 — "is <target> reachable/hittable" gate (136 ins, ov_SC01_077 jr_8012ACE0).
-29
View File
@@ -1525,13 +1525,6 @@ void aF80146A6C(s16 a0, s32 a1, s16 a2, s16 a3, u16 a4, s32 a5, s32 a6) __asm__(
extern s32 func_80146B9C(void * arg0); extern s32 func_80146B9C(void * arg0);
typedef struct
{
u16 x;
u16 y;
u16 z;
u16 w;
} V4_80146AFC;
/* func_80146AFC — ASCENDING twin of the byte-proven DEFINE_func_80146B9C() /* func_80146AFC — ASCENDING twin of the byte-proven DEFINE_func_80146B9C()
* in src/shared/engine_core.h (cookbook §71: find the already-matched sibling first). * in src/shared/engine_core.h (cookbook §71: find the already-matched sibling first).
@@ -2351,13 +2344,6 @@ s32 func_80149FB0(s32 a0) {
#include "../shared/ov/func_8014A71C.h" #include "../shared/ov/func_8014A71C.h"
typedef struct
{
u16 x;
u16 y;
u16 z;
u16 w;
} V4_8014A738;
@@ -2915,14 +2901,6 @@ void func_8014D738(void)
#include "../shared/ov/func_8014D790.h" #include "../shared/ov/func_8014D790.h"
typedef Unkstruct_800B5CB8 Ent_8014D820;
typedef struct
{
u16 x;
u16 y;
u16 z;
u16 w;
} V4_8014D820;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (304/304), symcheck SYMS-OK 12/12, and the whole-TU cc1 stage now compiles CLEAN // @unstuck(P36): none — MATCH (304/304), symcheck SYMS-OK 12/12, and the whole-TU cc1 stage now compiles CLEAN
@@ -3814,13 +3792,6 @@ s32 func_801506A4(s32 arg0, s32 arg1) {
#include "../shared/ov/func_801508F8.h" #include "../shared/ov/func_801508F8.h"
typedef struct
{
u16 x;
u16 y;
u16 z;
u16 w;
} V4_8015094C;
extern s32 func_80021174(s32 a0, s32 a1); extern s32 func_80021174(s32 a0, s32 a1);
-19
View File
@@ -8241,25 +8241,6 @@ void func_80168D94(int a0) {
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
extern s32 func_80016A5C(); extern s32 func_80016A5C();
-19
View File
@@ -1,25 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
-61
View File
@@ -1,25 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -2971,12 +2952,6 @@ LOOP:
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (94/94 ins, match_one relocation-masked) // @unstuck(P36): none — MATCH (94/94 ins, match_one relocation-masked)
@@ -3098,12 +3073,6 @@ int func_8016B834(int param_1, int param_2) {
#include "../shared/ov/func_8016B984.h" #include "../shared/ov/func_8016B984.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
// @class: regalloc-order // @class: regalloc-order
// @unstuck(P36): none — MATCH (result is func_8012EFB8's return saved in $s0 across the func_80015954 call; the save-move fills the 2nd call's delay slot. func_80015954's return is discarded.) // @unstuck(P36): none — MATCH (result is func_8012EFB8's return saved in $s0 across the func_80015954 call; the save-move fills the 2nd call's delay slot. func_80015954's return is discarded.)
@@ -3451,12 +3420,6 @@ void func_8016C188(s32 param)
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (44 ins; pins $s0/$s1 + hoist call-arg into a temp so its load fills the buf-store delay slot) // @unstuck(P36): none — MATCH (44 ins; pins $s0/$s1 + hoist call-arg into a temp so its load fills the buf-store delay slot)
@@ -3672,12 +3635,6 @@ void func_8016CB84(void *a0) {
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017758(void *a0, void *a1);
short func_8016CBC0(void) short func_8016CBC0(void)
@@ -4598,12 +4555,6 @@ void func_8016EAC0(Wave *param_1)
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
// @class: loose-typing // @class: loose-typing
// @unstuck(P36): none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff) // @unstuck(P36): none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
@@ -4650,12 +4601,6 @@ void func_8016EBA8(u8 *param_1)
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
extern void func_80017B98(void *a0); extern void func_80017B98(void *a0);
@@ -4785,12 +4730,6 @@ void func_8016ED6C(void) {
#include "../shared/ov/func_8016F1AC.h" #include "../shared/ov/func_8016F1AC.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH // @unstuck(P36): none — MATCH
-97
View File
@@ -1,68 +1,7 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -4150,12 +4089,6 @@ void func_80175AB8(param_1)
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80175DA8;
/* size 0x0C */ /* size 0x0C */
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
@@ -4291,12 +4224,6 @@ void func_80175DA8(param_1)
#include "../shared/ov/func_80176144.h" #include "../shared/ov/func_80176144.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176218;
// @class: regalloc-order // @class: regalloc-order
@@ -4532,12 +4459,6 @@ L63C:
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176734;
void func_80176734(s32 param_1) void func_80176734(s32 param_1)
{ {
@@ -4819,12 +4740,6 @@ Ltail:
#include "../shared/ov/func_80177AD4.h" #include "../shared/ov/func_80177AD4.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177B5C;
/* func_80177B5C - MATCH (147/147 ins), wave23. /* func_80177B5C - MATCH (147/147 ins), wave23.
* *
@@ -4985,12 +4900,6 @@ s16 y;
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177DA8;
void func_80177DA8(p, v, idx) void func_80177DA8(p, v, idx)
@@ -5120,12 +5029,6 @@ void func_80178840(int param_1)
#include "../shared/ov/func_801788B8.h" #include "../shared/ov/func_801788B8.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80178970;
// @class: regalloc-order // @class: regalloc-order
// @stuck: none — MATCH (result pinned to $v0 forces call-result copy to $v1 + delay-slot zero) // @stuck: none — MATCH (result pinned to $v0 forces call-result copy to $v1 + delay-slot zero)
-104
View File
@@ -1,104 +1,7 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80175DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176218;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176734;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177B5C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80178970;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -4956,7 +4859,6 @@ void func_8017A4AC(void) {
#include "../shared/ov/func_8017AE08.h" #include "../shared/ov/func_8017AE08.h"
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974;
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2); extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
extern void func_8012B178(s32 a0, s32 a1); extern void func_8012B178(s32 a0, s32 a1);
@@ -5103,7 +5005,6 @@ void func_8017B1D8(void) {
extern void func_8012A018(s32 a, s32 b); extern void func_8012A018(s32 a, s32 b);
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017B238;
// @class: regalloc-order — simplified sibling of matched func_8017B614. // @class: regalloc-order — simplified sibling of matched func_8017B614.
// @unstuck(P36): none. Block-moves are align-1 struct-assigns (u8[8]) -> emit_block_move // @unstuck(P36): none. Block-moves are align-1 struct-assigns (u8[8]) -> emit_block_move
@@ -5461,9 +5362,6 @@ void func_8017B940(void)
} }
typedef struct { s16 vx, vy; } DVEC2_C974_8017BA3C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BA3C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C974_8017BA3C;
// @class: struct // @class: struct
@@ -5517,7 +5415,6 @@ void func_8017BA3C(s32 param_1, s32 param_2)
extern void func_8004914C(void *a0); extern void func_8004914C(void *a0);
extern void func_800491AC(void *a0); extern void func_800491AC(void *a0);
extern void func_80049CAC(s32 a0, s32 a1); extern void func_80049CAC(s32 a0, s32 a1);
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BB34;
@@ -5914,7 +5811,6 @@ void func_8017C268(void)
} }
typedef struct { s8 c[8]; } Blk8_8012C890_8017C348;
/* func_8017C348 @ 0x8017C24C -- ov_MAIN_012 (7 ins). /* func_8017C348 @ 0x8017C24C -- ov_MAIN_012 (7 ins).
* *
-103
View File
@@ -1,110 +1,7 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80175DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176218;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176734;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177B5C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80178970;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017B238;
typedef struct { s16 vx, vy; } DVEC2_C974_8017BA3C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BA3C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C974_8017BA3C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BB34;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
+1 -104
View File
@@ -1,110 +1,7 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80175DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176218;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176734;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177B5C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80178970;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017B238;
typedef struct { s16 vx, vy; } DVEC2_C974_8017BA3C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BA3C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C974_8017BA3C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BB34;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -3709,7 +3606,7 @@ extern void func_8017C364(void);
* `/s` grant, applied to a STORE for the first time — every prior citation was load-side). * `/s` grant, applied to a STORE for the first time — every prior citation was load-side).
*/ */
typedef struct { u32 *ot; u32 pad[4]; } Env_8017CA18; /* 0x14 stride, per func_8017DD28 */ /* 0x14 stride, per func_8017DD28 */
extern s32 D_801151D0; extern s32 D_801151D0;
extern s16 D_8011512C; extern s16 D_8011512C;
-108
View File
@@ -1,110 +1,7 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80175DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176218;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176734;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177B5C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80178970;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017B238;
typedef struct { s16 vx, vy; } DVEC2_C974_8017BA3C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BA3C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C974_8017BA3C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BB34;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -4030,9 +3927,6 @@ void func_8017D2A4(void) {
* (cookbook 160a). * (cookbook 160a).
*/ */
typedef struct {
char c[3];
} Blk3_8017D730;
extern char *strcpy(char *, const char *); extern char *strcpy(char *, const char *);
extern u32 func_8017DC48(s32 a0, s32 a1); extern u32 func_8017DC48(s32 a0, s32 a1);
@@ -4369,9 +4263,7 @@ void func_8017DF18(void)
/* 152-byte engine block, copied whole (struct assignment -> 9x16B block move + 8B tail). /* 152-byte engine block, copied whole (struct assignment -> 9x16B block move + 8B tail).
* Uniquely suffixed: the host TU already sees `Blk152` from engine_types.h, and a C89 * Uniquely suffixed: the host TU already sees `Blk152` from engine_types.h, and a C89
* re-typedef of a visible name is a redefinition error. Same layout, same codegen. */ * re-typedef of a visible name is a redefinition error. Same layout, same codegen. */
typedef struct { u32 w[38]; } Blk152_8017DF40;
/* ALIGN-1 4-byte element => lwl/lwr + swl/swr (cookbook §160a); a u32[] loop is wrong. */ /* ALIGN-1 4-byte element => lwl/lwr + swl/swr (cookbook §160a); a u32[] loop is wrong. */
typedef struct { u8 b[4]; } Blk4_8017DF40;
extern u8 D_80078E78[]; /* live: 152-byte block (host TU declares this identically) */ extern u8 D_80078E78[]; /* live: 152-byte block (host TU declares this identically) */
extern u16 D_800A6588[]; /* live: u16[64] */ extern u16 D_800A6588[]; /* live: u16[64] */
@@ -3435,12 +3435,6 @@ void func_8017DD04(s32 arg0, s32 arg1)
* the zero-byte dial (§349/§350 "a second assignment to a pseudo is a * the zero-byte dial (§349/§350 "a second assignment to a pseudo is a
* first-class dial"), here reached by plain variable reuse — no asm re-tie. * first-class dial"), here reached by plain variable reuse — no asm re-tie.
*/ */
typedef struct {
s16 x; /* 0x00 — source point */
s16 y; /* 0x02 */
s16 sx; /* 0x04 — scaled result */
s16 sy; /* 0x06 */
} Pt_8017E1A8;
void func_8017E1A8(Pt_8017E1A8 *p, s32 arg1, s32 arg2, s32 arg3) { void func_8017E1A8(Pt_8017E1A8 *p, s32 arg1, s32 arg2, s32 arg3) {
s32 i; s32 i;
-11
View File
@@ -6056,9 +6056,6 @@ void func_80181A4C(void)
/* §246-2: every parallel global spelled as an array of one 0x50-byte record type so /* §246-2: every parallel global spelled as an array of one 0x50-byte record type so
* gcc fuses all their address computations onto ONE scaled-offset giv. §200 aliases * gcc fuses all their address computations onto ONE scaled-offset giv. §200 aliases
* keep the TU's own `extern s32 D_801EDA4C[]` spellings untouched. */ * keep the TU's own `extern s32 D_801EDA4C[]` spellings untouched. */
typedef struct { u32 addr:24; u32 len:8; } PTag_80181E04;
typedef struct { s32 v; u8 pad[0x4C]; } W50_80181E04;
typedef struct { u16 h; u8 pad[0x4E]; } H50_80181E04;
extern W50_80181E04 wD801EDA44[] __asm__("D_801EDA44"); extern W50_80181E04 wD801EDA44[] __asm__("D_801EDA44");
extern W50_80181E04 wD801EDA48[] __asm__("D_801EDA48"); extern W50_80181E04 wD801EDA48[] __asm__("D_801EDA48");
@@ -6225,13 +6222,6 @@ extern s32 aD_801EDA34 __asm__("D_801EDA34");
purpose: gcc-2.7.2's alias oracle (alias.c true_/output_dependence) disambiguates a purpose: gcc-2.7.2's alias oracle (alias.c true_/output_dependence) disambiguates a
MEM_IN_STRUCT_P + varying-address reference against a fixed-address non-struct global, which MEM_IN_STRUCT_P + varying-address reference against a fixed-address non-struct global, which
is what lets the `D_801F3044` store schedule up into the `lhu` shadow, ahead of the `sh 0xC`. */ is what lets the `D_801F3044` store schedule up into the `lhu` shadow, ahead of the `sh 0xC`. */
typedef struct {
s32 unk0; /* 0x0 */
u32 unk4; /* 0x4 */
u16 unk8; /* 0x8 */
u16 unkA; /* 0xA */
u16 unkC; /* 0xC */
} Obj_80182284;
s32 func_80182284(void) { s32 func_80182284(void) {
s32 i; s32 i;
@@ -6351,7 +6341,6 @@ s32 func_80182284(void) {
* its `void func_8001D074(s32,s32)` prototype stay untouched. * its `void func_8001D074(s32,s32)` prototype stay untouched.
*/ */
typedef struct { u8 d[4]; } Blk4_801EC660;
extern u32 aD801F2A44[][19] __asm__("D_801F2A44"); extern u32 aD801F2A44[][19] __asm__("D_801F2A44");
extern u32 aD801F2A48[][19] __asm__("D_801F2A48"); extern u32 aD801F2A48[][19] __asm__("D_801F2A48");
@@ -2712,12 +2712,6 @@ extern s32 *func_8017E804(s32 *, void *, s32, void *, s32);
extern s32 func_8017E3A0(void *arg0, s32 arg1, s32 arg2, s32 arg3, s32 *arg4); extern s32 func_8017E3A0(void *arg0, s32 arg1, s32 arg2, s32 arg3, s32 *arg4);
extern s32 * func_8017E1D4(s32 *ot, Panel_8017E978_8017E1D4 *w0, s16 idx); extern s32 * func_8017E1D4(s32 *ot, Panel_8017E978_8017E1D4 *w0, s16 idx);
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017E5B8;
/* func_8017E5B8 (ov_SC01_005 / ov_SC01_005_jr_8017C340, 147 ins) -- MATCH /* func_8017E5B8 (ov_SC01_005 / ov_SC01_005_jr_8017C340, 147 ins) -- MATCH
* *
-18
View File
@@ -3224,7 +3224,6 @@ extern s32 func_8012C51C(void *, s32);
extern void func_80028394(s32, s32, s32, s32); extern void func_80028394(s32, s32, s32, s32);
extern void func_80028428(s32, s32, s32, s32); extern void func_80028428(s32, s32, s32, s32);
typedef struct { s16 f10, f12, f14, f16, f18, f1A, f1C, f1E; s32 f20; } PrimF790;
s32 func_8017F790(s32 a0) { s32 func_8017F790(s32 a0) {
u8 c; u8 c;
@@ -3419,19 +3418,6 @@ void func_8017FBCC(s32 arg0) {
} }
typedef struct { u32 addr : 24; u32 len : 8; } PTag_8017FD50;
typedef struct { u32 *ot; u32 pad[4]; } Env_8017FD50;
typedef struct {
u32 tag;
u8 r0, g0, b0, code;
s16 x0, y0;
u8 r1, g1, b1, p1;
s16 x1, y1;
u8 r2, g2, b2, p2;
s16 x2, y2;
u8 r3, g3, b3, p3;
s16 x3, y3;
} PG4_8017FD50;
extern void *func_80010A08(s32); extern void *func_80010A08(s32);
extern s16 D_800B9A02; extern s16 D_800B9A02;
@@ -3569,7 +3555,6 @@ extern void func_80178D18(void);
extern void func_801746A4(void); extern void func_801746A4(void);
extern void func_800D1724(s32); extern void func_800D1724(s32);
typedef struct { s16 a; s16 b; s16 c; } Trio;
void func_801800C0(s32 arg0) void func_801800C0(s32 arg0)
{ {
@@ -3998,7 +3983,6 @@ void func_801809F4(s32 *a0) {
extern s32 func_8012C51C(void *, s32); extern s32 func_8012C51C(void *, s32);
typedef struct { s16 f10, f12, f14, f16, f18, f1A, f1C, f1E; s32 f20; } Prim80180A38;
void func_80180A38(s32 a0) void func_80180A38(s32 a0)
{ {
@@ -4896,8 +4880,6 @@ void func_8018203C(s32 a0, s32 a1) {
} }
typedef struct { u8 b[12]; } Blk12_820F8;
typedef struct { u8 b[8]; } Blk8_820F8;
extern s32 D_801C36F8[]; extern s32 D_801C36F8[];
extern s32 D_801CDD30; extern s32 D_801CDD30;
@@ -2704,12 +2704,6 @@ extern s32 *func_8017E93C(s32 *, void *, s32, void *, s32);
extern s32 func_8017E4D8(void *, s32, s32, s32, s32 *); extern s32 func_8017E4D8(void *, s32, s32, s32, s32 *);
extern s32 * func_8017E30C(s32 *ot, Panel_8017E978_8017E30C *w0, s16 idx); extern s32 * func_8017E30C(s32 *ot, Panel_8017E978_8017E30C *w0, s16 idx);
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017E6F0;
/* func_8017E6F0 (ov_SC01_005 / ov_SC01_005_jr_8017C340, 147 ins) -- MATCH /* func_8017E6F0 (ov_SC01_005 / ov_SC01_005_jr_8017C340, 147 ins) -- MATCH
* *
-17
View File
@@ -2694,12 +2694,6 @@ extern s32 *func_8017E7DC(s32 *, void *, s32, void *, s32);
extern s32 func_8017E378(void *, s32, s32, s32, s32 *); extern s32 func_8017E378(void *, s32, s32, s32, s32 *);
extern s32 * func_8017E1AC(s32 *ot, Panel_8017E978_8017E1AC *w0, s16 idx); extern s32 * func_8017E1AC(s32 *ot, Panel_8017E978_8017E1AC *w0, s16 idx);
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017E590;
/* func_8017E590 (ov_SC01_005 / ov_SC01_005_jr_8017C340, 147 ins) -- MATCH /* func_8017E590 (ov_SC01_005 / ov_SC01_005_jr_8017C340, 147 ins) -- MATCH
* *
@@ -3458,17 +3452,6 @@ void func_8017F360(void *a0) {
extern s32 func_8012C51C(void *a0, s32 a1); extern s32 func_8012C51C(void *a0, s32 a1);
struct Rec8017F39C {
s16 f00;
s16 f02;
s16 f04;
s16 f06;
s16 f08;
s16 f0A;
s16 f0C;
s16 f0E;
s32 f10;
};
void func_8017F39C(s32 arg0) void func_8017F39C(s32 arg0)
{ {
@@ -2810,10 +2810,6 @@ extern u8 D_801EE4F8[], D_801EE528[], D_801EE580[], D_801EE6B8[];
#define H70(p) (*(s16 *)((s32)(p) + 0x70)) #define H70(p) (*(s16 *)((s32)(p) + 0x70))
#define H108(p) (*(s16 *)((s32)(p) + 0x108)) #define H108(p) (*(s16 *)((s32)(p) + 0x108))
typedef struct {
s16 a, b, c, d, e, f, g, h;
s32 w;
} Blk8018057C;
u8 *func_8018057C(void *arg0) { u8 *func_8018057C(void *arg0) {
Blk8018057C blk; Blk8018057C blk;
@@ -3682,7 +3682,6 @@ extern s32 D_801269E4;
extern s16 D_80126940; extern s16 D_80126940;
extern s16 D_801274E8; extern s16 D_801274E8;
typedef struct { s16 v[4]; } Blk8_dc3c;
void func_8017DC3C(void) { void func_8017DC3C(void) {
D_80126954 = 0x190; D_80126954 = 0x190;
@@ -3712,7 +3711,6 @@ void func_8017DD1C(void *a0) {
#include "common.h" #include "common.h"
typedef struct { s16 v[4]; } Blk8_dd58;
extern void func_8017DE88(s32 param_1, s16 *param_2); extern void func_8017DE88(s32 param_1, s16 *param_2);
extern s16 D_80126940; extern s16 D_80126940;
@@ -3836,7 +3834,6 @@ extern s32 func_8012AD50(void *a0);
own-address-tag convention for the identical reason (see its comment). own-address-tag convention for the identical reason (see its comment).
Same layout, disjoint name -> no clash either standalone (match_one) or Same layout, disjoint name -> no clash either standalone (match_one) or
in-TU. */ in-TU. */
typedef struct { short vx, vy, vz, pad; } SVEC_8017E07C;
extern SVEC_8017E07C D_8019A8B0; extern SVEC_8017E07C D_8019A8B0;
extern SVEC_8017E07C D_8019A8B8; extern SVEC_8017E07C D_8019A8B8;
@@ -3876,7 +3873,6 @@ void func_8017E07C(s32 param_1) {
/* identical layout to SVECTOR_8016E7C8 (src/shared/engine_types.h); /* identical layout to SVECTOR_8016E7C8 (src/shared/engine_types.h);
own tag so this draft compiles standalone via match_one (no shared TU). */ own tag so this draft compiles standalone via match_one (no shared TU). */
typedef struct { short vx, vy, vz, pad; } SVEC_8017E158;
void func_8017E158(SVEC_8017E158 *p0, SVEC_8017E158 *p1) { void func_8017E158(SVEC_8017E158 *p0, SVEC_8017E158 *p1) {
/* conform to the sibling TU's canon (`extern void func_8012EF70(s32, s32);`) /* conform to the sibling TU's canon (`extern void func_8012EF70(s32, s32);`)
-58
View File
@@ -3535,13 +3535,11 @@ void func_8017C18C(s32 a0) {
#include "../shared/ov/func_8017C230.h" #include "../shared/ov/func_8017C230.h"
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017C66C(u16 *a0, void *a1); extern void func_8017C66C(u16 *a0, void *a1);
@@ -3582,16 +3580,7 @@ extern void func_8017C908(s32 a0, s32 a1);
* cell $t3 naturally once the bbox block allocates right. * cell $t3 naturally once the bbox block allocates right.
*/ */
typedef struct { u32 w0, w1, w2; } PrimC974;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimC974 *prim, *end; } CellC974;
typedef struct { s16 vx, vy; } DVEC2_C974;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C974;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C974;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C974;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C974;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C974;
@@ -4124,53 +4113,7 @@ s32 func_8017DACC(s32 a0) {
// Decls are the TU canon: u16 globals (s16 would be `conflicting types`), s32 // Decls are the TU canon: u16 globals (s16 would be `conflicting types`), s32
// func_80012C6C via the (s16 (*)()) call-site cast, s32 func_8017DAEC(s32). // func_80012C6C via the (s16 (*)()) call-site cast, s32 func_8017DAEC(s32).
typedef struct {
s8 pad00[8];
s16 f08;
s16 pad0a;
s16 f0c;
s16 pad0e;
s16 f10;
s16 pad12;
s16 f14;
s16 pad16;
s16 f18;
s16 f1a;
s16 f1c;
s8 pad1e[2];
s16 f20;
s16 f22;
s16 f24;
s8 pad26[2];
s16 f28;
s16 f2a;
s16 f2c;
s16 f2e;
s16 f30;
s16 f32;
s8 pad34[8];
s32 f3c;
s32 f40;
s32 f44;
s32 f48;
s32 f4c;
s32 f50;
} St_8017DAEC;
typedef struct {
s8 pad00[0x14];
s32 t0;
s32 t1;
s32 t2;
s16 z0;
s16 z1;
s16 v;
s16 pad36;
s16 o0;
s16 o1;
s16 o2;
s16 pad3e;
} Loc_8017DAEC;
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s16 func_80012ABC(s32 a0, s32 a1, s32 a2); extern s16 func_80012ABC(s32 a0, s32 a1, s32 a2);
@@ -4451,7 +4394,6 @@ s32 func_8017E210(u8 *a0) {
return v; return v;
} }
typedef struct { u8 c[8]; } Blk8_8017E224;
void func_8017E224(s32 param_1) void func_8017E224(s32 param_1)
{ {
@@ -3083,7 +3083,6 @@ extern u8 D_801B0E48[];
extern s32 D_801B0D50; extern s32 D_801B0D50;
extern char D_801AFFC0[]; extern char D_801AFFC0[];
struct PrimBE4 { s16 f0, f2, f4, f6, f8, fA, fC, fE; s32 f10; };
void func_80181BE4(s32 p) void func_80181BE4(s32 p)
{ {
@@ -40,7 +40,6 @@ typedef struct {
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
struct vec; struct vec;
struct PrimBE4 { s16 f0, f2, f4, f6, f8, fA, fC, fE; s32 f10; };
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
-11
View File
@@ -3730,7 +3730,6 @@ void func_80184BB4(int param_1)
// @class: struct // @class: struct
// @unstuck(P36): none — MATCH (array-of-struct %lo-fold for &D_8018AEB8[idx], stride 0x34) // @unstuck(P36): none — MATCH (array-of-struct %lo-fold for &D_8018AEB8[idx], stride 0x34)
typedef struct { unsigned char b[0x34]; } S_8018AEB8;
extern S_8018AEB8 D_8018AEB8[]; extern S_8018AEB8 D_8018AEB8[];
extern unsigned char D_8018AF20[]; extern unsigned char D_8018AF20[];
extern u8 D_8019731C; extern u8 D_8019731C;
@@ -4472,7 +4471,6 @@ extern void func_8012A828(s32 a0, void *a1);
extern void func_8012B21C(void *a0); extern void func_8012B21C(void *a0);
extern s32 rand(void); extern s32 rand(void);
typedef struct { u8 b[12]; } Blk12_80185E68;
void func_80185E68(s32 arg0) { void func_80185E68(s32 arg0) {
@@ -4545,7 +4543,6 @@ extern void func_8012C218(void *a0);
extern s32 func_8012C588(s32 a0, s32 a1); extern s32 func_8012C588(s32 a0, s32 a1);
extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern void func_8012F214(s32 a0, s32 a1, s32 a2);
extern void func_80186330(void *arg0); extern void func_80186330(void *arg0);
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C59C_80186078;
void func_80186078(s32 arg0) { void func_80186078(s32 arg0) {
@@ -4758,14 +4755,6 @@ void func_80186574(int param_1)
} }
} }
typedef struct { s16 vx, vy; } DVEC2_C59C_801865EC;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C_801865EC;
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_801865EC;
/* Declarations copied verbatim from src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c (law 2) */ /* Declarations copied verbatim from src/ov_SC01_080/ov_SC01_080_jr_8017AE2C.c (law 2) */
extern s32 rand(void); extern s32 rand(void);
+2 -51
View File
@@ -3309,7 +3309,6 @@ void func_8017BE60(void *a0) {
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017C294(u16 *a0, void *a1); extern void func_8017C294(u16 *a0, void *a1);
@@ -3349,16 +3348,7 @@ extern void func_8017C530(s32 a0, s32 a1);
* cell $t3 naturally once the bbox block allocates right. * cell $t3 naturally once the bbox block allocates right.
*/ */
typedef struct { u32 w0, w1, w2; } PrimC59C;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimC59C *prim, *end; } CellC59C;
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
@@ -3833,7 +3823,6 @@ extern s32 rand(void);
/* §160a: the lwl/lwr + swl/swr 12-byte block move is an ALIGN-1 struct /* §160a: the lwl/lwr + swl/swr 12-byte block move is an ALIGN-1 struct
* assignment. A u32/u16 copy loop gives aligned lw/sw and is wrong. */ * assignment. A u32/u16 copy loop gives aligned lw/sw and is wrong. */
typedef struct { char c[12]; } Blk12_801C5A30;
void func_8017D72C(s32 arg0) { void func_8017D72C(s32 arg0) {
@@ -4640,8 +4629,8 @@ extern u16 D_80126B5E;
extern u16 D_80126B62; extern u16 D_80126B62;
extern u16 D_80126B66; extern u16 D_80126B66;
typedef struct { s16 m[3][3]; s32 t[3]; } Mtx_8017E8A0; /* 0x20; .t @ +0x14 */ /* 0x20; .t @ +0x14 */
typedef struct { s16 vx, vy, vz, pad; } Sv_8017E8A0; /* 0x08 */ /* 0x08 */
void func_8017E8A0(s32 param_1, s32 param_2) void func_8017E8A0(s32 param_1, s32 param_2)
{ {
@@ -5309,13 +5298,6 @@ void func_8017F7D0(s32 arg0) {
#include "common.h" #include "common.h"
typedef struct {
u8 pad0[8];
s32 f08;
s32 f0C;
u8 pad10[0x20];
s16 f30;
} Work_80126948;
extern Blk8 D_801C46E8; extern Blk8 D_801C46E8;
extern u8 D_80126948[]; extern u8 D_80126948[];
extern s32 D_8012718C; extern s32 D_8012718C;
@@ -5514,17 +5496,6 @@ void func_8017FCFC(u16 *a0) {
* D_801C7600 is declared with the TU's own file-scope spelling (`u16 []`, :5486) and cast; * D_801C7600 is declared with the TU's own file-scope spelling (`u16 []`, :5486) and cast;
* a block-scope `SVEC_FD64 []` re-declaration would be a hard C89 conflict there. * a block-scope `SVEC_FD64 []` re-declaration would be a hard C89 conflict there.
*/ */
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_FD64;
typedef struct { u16 vx, vy, vz; s16 pad; } SVEC_FD64;
typedef struct { u32 addr : 24; u32 len : 8; } P_TAG_FD64;
typedef struct {
u8 b0, b1, b2, len;
u8 r, g, b, code;
u16 x0, y0; u32 uv0;
u16 x1, y1; u32 uv1;
u16 x2, y2; u32 uv2;
u16 x3, y3; u32 uv3;
} PFT4_FD64;
@@ -6686,7 +6657,6 @@ void func_801816E4(void *a0)
} }
typedef struct { s32 q[16]; } Str_801C5B00;
extern Str_801C5B00 D_801C5B00[]; extern Str_801C5B00 D_801C5B00[];
extern void func_801292C8(u8 *arg0); extern void func_801292C8(u8 *arg0);
@@ -6809,7 +6779,6 @@ void func_80181918(s32 arg0) {
extern void func_800D20C0(void *a0, void *a1, s32 a2); extern void func_800D20C0(void *a0, void *a1, s32 a2);
extern void func_800D23D0(void *a0); extern void func_800D23D0(void *a0);
typedef struct { u8 b[8]; } Copy8;
void func_801819D0(s32 a0) { void func_801819D0(s32 a0) {
u16 sp10[3]; u16 sp10[3];
@@ -6966,10 +6935,6 @@ void func_80181CA4(void)
* asm/ov_SC01_080/data/tail.data.s). `dist` is read three ways -- lh for the * asm/ov_SC01_080/data/tail.data.s). `dist` is read three ways -- lh for the
* sentinel (combine folds (s16)u16 -> lh), lhu+sll/sra for the slt against * sentinel (combine folds (s16)u16 -> lh), lhu+sll/sra for the slt against
* D_801270D0, and lhu again for the +0x500 store (the call kills the CSE). */ * D_801270D0, and lhu again for the +0x500 store (the call kills the CSE). */
typedef struct {
u16 dist;
s16 kind;
} SpotDef_8018A278;
extern s32 D_80126D50; extern s32 D_80126D50;
extern u16 D_80126B66; extern u16 D_80126B66;
@@ -7419,7 +7384,6 @@ void func_801827B4(void *a0) {
} }
typedef struct { u16 x, y, z, w; } V4_8018287C;
extern s32 D_80126B58; extern s32 D_80126B58;
extern s32 D_8018A30C[][2]; extern s32 D_8018A30C[][2];
@@ -7568,23 +7532,12 @@ void func_80182B30(int param_1)
* "gate" table: index i and index (i+1)&3 must both be non-zero before the * "gate" table: index i and index (i+1)&3 must both be non-zero before the
* record at index i is forwarded to func_80182CB8. */ * record at index i is forwarded to func_80182CB8. */
typedef struct {
u8 raw[8];
} S8Blob;
typedef struct {
S8Blob a;
S8Blob b;
} Entry16;
extern Entry16 D_8018A414[]; extern Entry16 D_8018A414[];
extern s32 D_801C7550[]; extern s32 D_801C7550[];
extern void func_80182CB8(void *a0, S8Blob *a1, S8Blob *a2, s16 a3, s16 a4); extern void func_80182CB8(void *a0, S8Blob *a1, S8Blob *a2, s16 a3, s16 a4);
typedef union {
s32 plain;
struct { s32 idx : 15; } bf;
} LoopVar;
void func_80182B90(void *a0, s32 a1, s16 a2) { void func_80182B90(void *a0, s32 a1, s16 a2) {
LoopVar i; LoopVar i;
@@ -7621,8 +7574,6 @@ void func_80182B90(void *a0, s32 a1, s16 a2) {
// func_8004787C(angle<<9) / 4096, and pushes the previous/current joint pair into the global // func_8004787C(angle<<9) / 4096, and pushes the previous/current joint pair into the global
// prim D_801C7560 as two quads (±10 in y) through func_80017758. a4 is passed by // prim D_801C7560 as two quads (±10 in y) through func_80017758. a4 is passed by
// func_80182B90 but never read. // func_80182B90 but never read.
typedef struct { s16 vx, vy, vz, pad; } SV_80182CB8;
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_80182CB8;
extern void func_80017D98(void *a0); extern void func_80017D98(void *a0);
extern s32 rand(void); extern s32 rand(void);
+2 -2
View File
@@ -2979,8 +2979,8 @@ void func_8017DE84(s32 param_1) {
* Uniquely named on purpose (§183.1 law 8): match_one's standalone -Iinclude compile cannot * Uniquely named on purpose (§183.1 law 8): match_one's standalone -Iinclude compile cannot
* reach src/shared/, and the destination TU already pulls the canonical typedefs in via * reach src/shared/, and the destination TU already pulls the canonical typedefs in via
* "../shared/engine_core.h" — identical layout, so keeping our own name collides with nothing. */ * "../shared/engine_core.h" — identical layout, so keeping our own name collides with nothing. */
typedef struct { short m[3][3]; long t[3]; } Mtx_8017DECC; /* 0x20; .t @ +0x14 */ /* 0x20; .t @ +0x14 */
typedef struct { short vx, vy, vz, pad; } Sv_8017DECC; /* 0x08 */ /* 0x08 */
/* TU-verified declarations (src/ov_SC01_084/ov_SC01_084_jr_8017CA80.c) */ /* TU-verified declarations (src/ov_SC01_084/ov_SC01_084_jr_8017CA80.c) */
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
+6 -11
View File
@@ -10,8 +10,8 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { short m[3][3]; long t[3]; } Mtx_8017DECC; /* 0x20; .t @ +0x14 */ /* 0x20; .t @ +0x14 */
typedef struct { short vx, vy, vz, pad; } Sv_8017DECC; /* 0x08 */ /* 0x08 */
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -2969,8 +2969,8 @@ void func_8017FBD4(void *a0) {
* house style at func_8017DECC (§183.1 law 8): match_one's standalone compile * house style at func_8017DECC (§183.1 law 8): match_one's standalone compile
* cannot reach src/shared/, so keep uniquely-named local structs of the same * cannot reach src/shared/, so keep uniquely-named local structs of the same
* layout instead of colliding with the TU's real typedef names. */ * layout instead of colliding with the TU's real typedef names. */
typedef struct { short m[3][3]; long t[3]; } Mtx_8017FC10; /* 0x20; .t @ +0x14 */ /* 0x20; .t @ +0x14 */
typedef struct { short vx, vy, vz, pad; } Sv_8017FC10; /* 0x08 */ /* 0x08 */
/* TU-verified declarations (src/ov_SC01_084/ov_SC01_084_jr_8017CA80.c) */ /* TU-verified declarations (src/ov_SC01_084/ov_SC01_084_jr_8017CA80.c) */
extern s32 ratan2(s32 a0, s32 a1); extern s32 ratan2(s32 a0, s32 a1);
@@ -3621,14 +3621,9 @@ s32 func_801807D8(s16 *arg0) {
* (position in the source is irrelevant — verified at 4 sites). * (position in the source is irrelevant — verified at 4 sites).
*/ */
typedef struct { s32 a; s32 b[4]; } OtBlk_801809C4; /* 0x14 stride */ /* 0x14 stride */
typedef struct { s16 x, y, z, pad; } SVec_801809C4; /* 0x08 stride */ /* 0x08 stride */
typedef struct {
s16 unk0; /* 0x00 — the shared vy of every generated vertex */
s16 unk2; /* 0x02 — base angle */
u32 unk4; /* 0x04 — packed colour (b in bits 16..23) */
} Obj_801809C4;
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3); extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
extern void func_8012E32C(void); extern void func_8012E32C(void);
+13 -65
View File
@@ -1094,22 +1094,11 @@ void func_80183D38(void *a0) {
* lhu/addu/sh-clut/sh-tpage quartet. The reverse source order flips that pair. * lhu/addu/sh-clut/sh-tpage quartet. The reverse source order flips that pair.
*/ */
typedef struct { s32 a; s32 b[4]; } OtBlk_80183DA4; /* 0x14 stride */ /* 0x14 stride */
typedef struct { u16 vx, vy, vz, pad; } SVec_80183DA4; /* 0x08 stride */ /* 0x08 stride */
typedef struct { u16 vx, vy; } DVec_80183DA4; /* read through a cast */ /* read through a cast */
typedef struct { /* 0x28 */
u32 tag; /* 0x00 */
u8 r0, g0, b0, code; /* 0x04 */
s16 x0, y0; /* 0x08 */
u8 u0, v0; u16 clut; /* 0x0C */
s16 x1, y1; /* 0x10 */
u8 u1, v1; u16 tpage; /* 0x14 */
s16 x2, y2; /* 0x18 */
u8 u2, v2; u16 pad2; /* 0x1C */
s16 x3, y3; /* 0x20 */
u8 u3, v3; u16 pad3; /* 0x24 */
} Ft4_80183DA4; /* 0x28 */
extern u16 D_801270C0; extern u16 D_801270C0;
extern u8 D_800AF648; extern u8 D_800AF648;
@@ -1262,22 +1251,11 @@ void func_801840FC(void *a0) {
* the one true loop.c movable, landing last. * the one true loop.c movable, landing last.
*/ */
typedef struct { s32 a; s32 b[4]; } OtBlk_80184138; /* 0x14 stride */ /* 0x14 stride */
typedef struct { u16 vx, vy, vz, pad; } SVec_80184138; /* 0x08 stride */ /* 0x08 stride */
typedef struct { u16 vx, vy; } DVec_80184138; /* read through a cast */ /* read through a cast */
typedef struct { /* 0x28 */
u32 tag; /* 0x00 */
u8 r0, g0, b0, code; /* 0x04 */
s16 x0, y0; /* 0x08 */
u8 u0, v0; u16 clut; /* 0x0C */
s16 x1, y1; /* 0x10 */
u8 u1, v1; u16 tpage; /* 0x14 */
s16 x2, y2; /* 0x18 */
u8 u2, v2; u16 pad2; /* 0x1C */
s16 x3, y3; /* 0x20 */
u8 u3, v3; u16 pad3; /* 0x24 */
} Ft4_80184138; /* 0x28 */
extern void func_8004914C(void *a0); extern void func_8004914C(void *a0);
@@ -1520,8 +1498,6 @@ void func_801845A0(void *arg0) {
} }
struct S845EC_in { s16 f00, f02, f04, f06, f08, f0A, f0C, f0E; s32 f10; };
struct S845EC_out { s16 a, b, c; };
extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern void func_8012F214(s32 a0, s32 a1, s32 a2);
extern s32 func_8012C51C(void *a0, s32 a1); extern s32 func_8012C51C(void *a0, s32 a1);
@@ -1569,12 +1545,7 @@ s32 func_801845EC(s32 a0, s32 a1)
* re-declared locally here per the md_SC07_003.c precedent since this standalone * re-declared locally here per the md_SC07_003.c precedent since this standalone
* draft can't reach the src/shared/ include path. */ * draft can't reach the src/shared/ include path. */
struct S80190C84_846B4 {
s16 f0, f2, f4, f6, f8, fA, fC, fE;
s32 f10;
};
typedef struct { short a, b, c; } SV3_846B4;
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3); extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
extern s32 func_8012B8E4(s32 arg0, s32 arg1); extern s32 func_8012B8E4(s32 arg0, s32 arg1);
@@ -2646,38 +2617,15 @@ extern s16 D_8018AC6C; /* vert2 .vz */
typedef struct { /* 0x08 */
s16 x; /* +0x0 */
s16 y; /* +0x2 */
s16 c; /* +0x4 */
s16 pad; /* +0x6 */
} Vtx_80185C0C; /* 0x08 */
typedef struct { /* 0x28 */
Vtx_80185C0C v[3]; /* +0x00 +0x08 +0x10 */
u8 r0, g0, b0, code; /* +0x18 .. +0x1B */
u8 r1, g1, b1, pad1; /* +0x1C .. +0x1F */
u8 r2, g2, b2, pad2; /* +0x20 .. +0x23 */
u32 color; /* +0x24 */
} Prim_80185C0C; /* 0x28 */
typedef struct { /* 0x06 -> 8-byte frame stride, §193-I */
u16 x; /* +0x0 */
u16 y; /* +0x2 */
u16 z; /* +0x4 */
} Pos_80185C0C; /* 0x06 -> 8-byte frame stride, §193-I */
typedef struct { /* 0x08 */
u16 vx; /* +0x0 */
u16 vy; /* +0x2 */
u16 vz; /* +0x4 */
u16 pad; /* +0x6 */
} Sxy_80185C0C; /* 0x08 */
typedef struct { /* 0x20 */
s16 m[3][3]; /* +0x00, padded to 0x14 */
s32 t[3]; /* +0x14 +0x18 +0x1C */
} Mtx_80185C0C; /* 0x20 */
void func_80185C0C(s32 arg0) void func_80185C0C(s32 arg0)
{ {
-11
View File
@@ -3666,13 +3666,11 @@ extern void func_80146C3C(); // K&R: ? of 1 args (P37 rung D t4_D22)
#include "../shared/ov/func_8017CDF4__8ccdd4a3.h" #include "../shared/ov/func_8017CDF4__8ccdd4a3.h"
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017D230(u16 *a0, void *a1); extern void func_8017D230(u16 *a0, void *a1);
@@ -3843,16 +3841,7 @@ void func_8017D4CC(s32 a0, s32 a1) {
* cell $t3 naturally once the bbox block allocates right. * cell $t3 naturally once the bbox block allocates right.
*/ */
typedef struct { u32 w0, w1, w2; } PrimD538;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimD538 *prim, *end; } CellD538;
typedef struct { s16 vx, vy; } DVEC2_D538;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_D538;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_D538;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_D538;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_D538;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_D538;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_D538;
-65
View File
@@ -2915,8 +2915,6 @@ void func_80181DE8(s32 param_1)
} }
typedef struct { short m[3][3]; long t[3]; } Mtx_8017DECC;
typedef struct { short vx, vy, vz, pad; } Sv_8017DECC;
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
extern s32 func_80012ABC(s32, s32, s32); extern s32 func_80012ABC(s32, s32, s32);
@@ -3348,9 +3346,6 @@ void func_80182B74(s32 param_1) {
extern u8 D_80126948[]; extern u8 D_80126948[];
extern s32 D_80126E60[]; extern s32 D_80126E60[];
typedef struct {
s32 w[0x29];
} Blk_0xA4;
void func_80182BD0(u8 *a0) { void func_80182BD0(u8 *a0) {
u8 *t0 = D_80126948; u8 *t0 = D_80126948;
@@ -3540,7 +3535,6 @@ void func_80183018(u8 *a0) {
} }
typedef struct { u8 b[8]; } St_801E6C9C;
extern St_801E6C9C D_801E6C9C; extern St_801E6C9C D_801E6C9C;
extern void func_801473EC(s32 *a0); extern void func_801473EC(s32 *a0);
extern void func_80147460(s32 a0); extern void func_80147460(s32 a0);
@@ -3930,9 +3924,6 @@ void func_80183C9C(s32 a0) {
} }
typedef struct {
void (*fn[3])(void *);
} Tbl_801E6CA4;
extern Tbl_801E6CA4 D_801E6CA4; extern Tbl_801E6CA4 D_801E6CA4;
@@ -4036,10 +4027,6 @@ extern s16 D_800B9A0E;
extern s32 D_801E8010; extern s32 D_801E8010;
extern s32 D_801E8820; extern s32 D_801E8820;
typedef struct {
s16 f0;
s16 f1, f2, f3, f4, f5;
} Elem_8018F086;
extern Elem_8018F086 D_8018F086[]; extern Elem_8018F086 D_8018F086[];
extern u8 D_801AF280[]; extern u8 D_801AF280[];
@@ -4120,7 +4107,6 @@ void func_80183FC8(s32 param_1) {
#include "common.h" #include "common.h"
typedef struct { s16 vx, vy, vz, pad; } SVEC_80184358;
extern void func_8012B2CC(s32 a0); extern void func_8012B2CC(s32 a0);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2); extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
@@ -4189,8 +4175,6 @@ void func_80184358(s32 p) {
} }
typedef struct { u16 x, y, z, w; } Blk8_8018453C;
typedef struct { s32 f0, f1, f2, f3, f4, f5, f6, f7; } Blk32_801E8788;
extern s32 D_801E8738; extern s32 D_801E8738;
extern void (*D_8018F044)(void); extern void (*D_8018F044)(void);
@@ -4290,10 +4274,6 @@ void func_801847B8(s32 a0) {
/* Same layout as the shared `struct S80190C84` (src/shared/engine_types.h) — kept as a /* Same layout as the shared `struct S80190C84` (src/shared/engine_types.h) — kept as a
uniquely-named local typedef so banking cannot redefine that tag. */ uniquely-named local typedef so banking cannot redefine that tag. */
typedef struct {
s16 f0, f2, f4, f6, f8, fA, fC, fE;
s32 f10;
} S80190C84_8018483C;
extern s32 D_801E86BC; extern s32 D_801E86BC;
extern s16 D_801E87B2; extern s16 D_801E87B2;
@@ -4407,7 +4387,6 @@ void func_8018483C(s32 a0) {
#include "common.h" #include "common.h"
typedef struct { s16 vx, vy, vz, pad; } SVEC_84BD8;
extern s32 D_801E873C; extern s32 D_801E873C;
extern s32 D_801E874C; extern s32 D_801E874C;
@@ -4709,7 +4688,6 @@ void func_8018545C(s32 a0) {
#include "common.h" #include "common.h"
typedef struct { s16 vx, vy, vz, pad; } SVEC_801855D4;
extern void func_8012B2CC(s32 a0); extern void func_8012B2CC(s32 a0);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2); extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
@@ -4839,7 +4817,6 @@ void func_80185840(s32 param_1) {
typedef struct { u32 addr:24; u32 len:8; } PTAG_85910;
extern s32 D_800A5E60; extern s32 D_800A5E60;
extern u8 D_800AF648[]; extern u8 D_800AF648[];
@@ -4966,7 +4943,6 @@ void func_80185BF0(int param_1) {
#include "common.h" #include "common.h"
typedef struct { s16 x, y, z, pad; } Vec3s16;
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
@@ -5095,21 +5071,9 @@ extern s32 func_8012E504(s32 a0, s32 a1);
extern s32 func_8012C51C(void *a0, s32 a1); extern s32 func_8012C51C(void *a0, s32 a1);
typedef struct {
s16 f0;
s16 f2;
s16 f4;
s16 f6;
s16 f8;
s16 flag;
} Entry8018F07C;
extern Entry8018F07C D_8018F07C[26]; extern Entry8018F07C D_8018F07C[26];
typedef struct {
s16 f0, f2, f4, f6, f8, fA, fC, fE;
s32 f10;
} S80190C84;
void func_80185F8C(s32 a0) { void func_80185F8C(s32 a0) {
u32 i; u32 i;
@@ -5170,17 +5134,6 @@ void func_8018618C(s32 param_1)
} }
typedef struct {
short f0;
short f2;
short f4;
short f6;
short f8;
short fa;
short fc;
short fe;
int f10;
} Sprite8_801861D8;
extern s32 func_8012C51C(void *a0, s32 a1); extern s32 func_8012C51C(void *a0, s32 a1);
@@ -5217,17 +5170,6 @@ extern s32 ratan2(s32 a0, s32 a1);
extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3); extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
extern s32 func_8012C51C(void *a0, s32 a1); extern s32 func_8012C51C(void *a0, s32 a1);
typedef struct {
s16 f0;
s16 f1;
s16 f2;
s16 f3;
s16 f4;
s16 f5;
s16 f6;
s16 f7;
s32 f8;
} Pkt_8018626C;
void func_8018626C(void) { void func_8018626C(void) {
s32 *ctr = &D_801270D0; s32 *ctr = &D_801270D0;
@@ -5484,18 +5426,11 @@ extern s32 func_8012BD14(s32 a0);
/* the 0x10C-byte entity-table record type (only the two u16 fields this function /* the 0x10C-byte entity-table record type (only the two u16 fields this function
actually touches are named; matches the D_801202A0..D_80126720 table walked by actually touches are named; matches the D_801202A0..D_80126720 table walked by
the sibling MATCHed loop in ov_SC03_099_after.c). */ the sibling MATCHed loop in ov_SC03_099_after.c). */
typedef struct {
u16 f0;
u16 f2;
} Ent_80186AE4;
/* the 0x254-byte struct snapshot copied from D_80126B58 to D_801E801C /* the 0x254-byte struct snapshot copied from D_80126B58 to D_801E801C
(aligned 4-word block copy, see cookbook: "aligned 16-byte field-block copy (aligned 4-word block copy, see cookbook: "aligned 16-byte field-block copy
-> one struct assignment"; here the struct is bigger than one Blk16, so gcc -> one struct assignment"; here the struct is bigger than one Blk16, so gcc
emits the movstrsi loop: 37 x 16-byte chunks + a 4-byte remainder = 0x254). */ emits the movstrsi loop: 37 x 16-byte chunks + a 4-byte remainder = 0x254). */
typedef struct {
s32 w[0x95];
} Blk254_80186AE4;
void func_80186AE4(s32 self) void func_80186AE4(s32 self)
{ {
+1 -102
View File
@@ -9,67 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { short m[3][3]; long t[3]; } Mtx_8017DECC;
typedef struct { short vx, vy, vz, pad; } Sv_8017DECC;
typedef struct {
s32 w[0x29];
} Blk_0xA4;
typedef struct { u8 b[8]; } St_801E6C9C;
typedef struct {
void (*fn[3])(void *);
} Tbl_801E6CA4;
typedef struct {
s16 f0;
s16 f1, f2, f3, f4, f5;
} Elem_8018F086;
typedef struct { s16 vx, vy, vz, pad; } SVEC_80184358;
typedef struct { u16 x, y, z, w; } Blk8_8018453C;
typedef struct { s32 f0, f1, f2, f3, f4, f5, f6, f7; } Blk32_801E8788;
typedef struct {
s16 f0, f2, f4, f6, f8, fA, fC, fE;
s32 f10;
} S80190C84_8018483C;
typedef struct { s16 vx, vy, vz, pad; } SVEC_84BD8;
typedef struct { s16 vx, vy, vz, pad; } SVEC_801855D4;
typedef struct { u32 addr:24; u32 len:8; } PTAG_85910;
typedef struct { s16 x, y, z, pad; } Vec3s16;
typedef struct {
s16 f0;
s16 f2;
s16 f4;
s16 f6;
s16 f8;
s16 flag;
} Entry8018F07C;
typedef struct {
short f0;
short f2;
short f4;
short f6;
short f8;
short fa;
short fc;
short fe;
int f10;
} Sprite8_801861D8;
typedef struct {
s16 f0;
s16 f1;
s16 f2;
s16 f3;
s16 f4;
s16 f5;
s16 f6;
s16 f7;
s32 f8;
} Pkt_8018626C;
typedef struct {
u16 f0;
u16 f2;
} Ent_80186AE4;
typedef struct {
s32 w[0x95];
} Blk254_80186AE4;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -3475,7 +3414,7 @@ extern void func_8012AD44(s32 *a0, s16 a1);
* ==================================================================== */ * ==================================================================== */
/* == engine_types.h:472 */ /* == engine_types.h:472 */
typedef struct { s32 f0, f1, f2; } Rec12_801888F4; /* 12-byte stride */ /* 12-byte stride */
extern Blk20 D_800AE620; extern Blk20 D_800AE620;
extern Rec12_801888F4 D_8018F560[]; extern Rec12_801888F4 D_8018F560[];
@@ -4222,26 +4161,11 @@ void func_80189A00(s32 param_1) {
typedef struct {
s16 f0;
s16 f1;
s16 f2;
s16 f3;
s16 f4;
s16 f5;
s16 f6;
s16 f7;
s32 f8;
} Pkt_801861D8;
typedef struct {
s16 start;
s16 end;
} Range_80189A70;
extern u8 D_8018F71C[]; extern u8 D_8018F71C[];
extern s16 D_8018F71E; extern s16 D_8018F71E;
@@ -4275,23 +4199,7 @@ void func_80189A70(s32 *a0)
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
s16 start;
s16 end;
} Range_80189B1C;
typedef struct {
SVECTOR t0;
SVECTOR t1;
SVECTOR v0;
SVECTOR v1;
void *p0;
void *p1;
s32 zero1;
s32 zero2;
s32 tag;
u8 pad[16];
} LinePrim_80189B1C;
extern u16 D_801E82A0[]; extern u16 D_801E82A0[];
extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017758(void *a0, void *a1);
@@ -4702,16 +4610,7 @@ void func_8018A3C8(void *arg0) {
} }
typedef struct {
s16 unk00;
} Sub_8018A3FC;
typedef struct {
s16 unk00;
s16 unk02;
s16 unk04[8];
Sub_8018A3FC *unk14[8];
} S_8018A3FC;
void func_8018A3FC(S_8018A3FC *arg0) { void func_8018A3FC(S_8018A3FC *arg0) {
s32 i; s32 i;
-10
View File
@@ -3308,7 +3308,6 @@ void func_8017BE60(void *a0) {
#include "common.h" #include "common.h"
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017C294(u16 *a0, void *a1); extern void func_8017C294(u16 *a0, void *a1);
@@ -3348,16 +3347,7 @@ extern void func_8017C530(s32 a0, s32 a1);
* cell $t3 naturally once the bbox block allocates right. * cell $t3 naturally once the bbox block allocates right.
*/ */
typedef struct { u32 w0, w1, w2; } Prim59C;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; Prim59C *prim, *end; } Cell59C;
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
@@ -3776,13 +3776,11 @@ void func_8017C41C(void *a0) {
} }
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017CC88(u16 *a0, void *a1); extern void func_8017CC88(u16 *a0, void *a1);
-12
View File
@@ -2703,16 +2703,8 @@ extern void func_8017CF24(s32 a0, s32 a1);
* cell $t3 naturally once the bbox block allocates right. * cell $t3 naturally once the bbox block allocates right.
*/ */
typedef struct { u32 w0, w1, w2; } PrimCF90;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimCF90 *prim, *end; } CellCF90;
typedef struct { s16 vx, vy; } DVEC2_CF90;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_CF90;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_CF90; typedef struct { s16 m[3][3]; s32 t[3]; } MTX_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_CF90;
@@ -3858,8 +3850,6 @@ extern void func_80012558(s32 a0, s32 a1);
extern void func_800126C4(s32 a0, s32 a1); extern void func_800126C4(s32 a0, s32 a1);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2); extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_EDF8;
typedef struct { s16 vx, vy, vz, pad; } SVEC_EDF8;
void func_8017EDF8(s32 param_1, s32 param_2) void func_8017EDF8(s32 param_1, s32 param_2)
{ {
@@ -4593,7 +4583,6 @@ void func_8017FF8C(void *a0) {
} }
typedef struct { u8 b[8]; } Blk8x;
void func_8017FFF0(s32 arg0) { void func_8017FFF0(s32 arg0) {
extern Blk8x D_801E2DE8; extern Blk8x D_801E2DE8;
@@ -5207,7 +5196,6 @@ void func_80180DB8(void *a0) {
} }
typedef struct { u8 b[8]; } Blk8_E08;
extern s32 D_80126950; extern s32 D_80126950;
extern s32 D_80126954; extern s32 D_80126954;
-12
View File
@@ -9,19 +9,7 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { u32 w0, w1, w2; } PrimCF90;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimCF90 *prim, *end; } CellCF90;
typedef struct { s16 vx, vy; } DVEC2_CF90;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_CF90;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_CF90; typedef struct { s16 m[3][3]; s32 t[3]; } MTX_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_CF90;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_EDF8;
typedef struct { s16 vx, vy, vz, pad; } SVEC_EDF8;
typedef struct { u8 b[8]; } Blk8x;
typedef struct { u8 b[8]; } Blk8_E08;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
-19
View File
@@ -13,15 +13,7 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { u32 w0, w1, w2; } PrimCF90;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimCF90 *prim, *end; } CellCF90;
typedef struct { s16 vx, vy; } DVEC2_CF90;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_CF90;
/* MTX_CF90 moved to ov_SC02_005_shared.h (S74 §431 split). */ /* MTX_CF90 moved to ov_SC02_005_shared.h (S74 §431 split). */
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_CF90;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -4300,7 +4292,6 @@ void func_80183D90(void *arg0) {
#include "common.h" #include "common.h"
typedef struct { u8 b[4]; } Blk4_80183FCC;
extern void func_8001C924(s32 a0, void *a1); extern void func_8001C924(s32 a0, void *a1);
extern void func_80132784(s32 a0, s32 a1, u32 a2); extern void func_80132784(s32 a0, s32 a1, u32 a2);
@@ -4554,8 +4545,6 @@ void func_801844D4(s32 arg0) {
/* File-local mirror types: match_one compiles standalone with -Iinclude /* File-local mirror types: match_one compiles standalone with -Iinclude
* only, so the TU's real Blk20 (src/shared/engine_types.h) is not * only, so the TU's real Blk20 (src/shared/engine_types.h) is not
* reachable here. These mirror its exact byte layout. */ * reachable here. These mirror its exact byte layout. */
typedef struct { s32 w[8]; } Blk20_8018454C;
typedef struct { s16 vx, vy, vz, pad; } SVec3_8018454C;
extern Blk20 D_800AE620; extern Blk20 D_800AE620;
extern void func_80132784(s32 a0, s32 a1, u32 a2); extern void func_80132784(s32 a0, s32 a1, u32 a2);
@@ -4710,11 +4699,7 @@ void func_801846CC(void *a0)
*/ */
#include "common.h" #include "common.h"
typedef struct {
s16 vx, vy, vz, pad;
} SVec_80184828;
struct S0E_80184828 { s16 v; };
extern void func_8012AD80(s32 a0); extern void func_8012AD80(s32 a0);
extern s32 func_80187508(s32 param_1); extern s32 func_80187508(s32 param_1);
@@ -4835,7 +4820,6 @@ extern void func_8012AD44(s32 *a0, s16 a1);
extern void func_8012B200(u8 *a0); extern void func_8012B200(u8 *a0);
extern s32 D_801963FC; extern s32 D_801963FC;
struct S34_80184A8C { u16 v; };
void func_80184A8C(void *a0) { void func_80184A8C(void *a0) {
s32 s0; s32 s0;
@@ -5052,9 +5036,6 @@ extern s32 func_8012AD50(void *a0);
extern u16 D_80195B4C[]; extern u16 D_80195B4C[];
extern u16 D_80195B68[]; extern u16 D_80195B68[];
typedef struct {
u8 pad[0x34];
} D_80195D74_Entry;
extern D_80195D74_Entry D_80195D74[]; extern D_80195D74_Entry D_80195D74[];
extern void (*D_80196490[])(void); extern void (*D_80196490[])(void);
-71
View File
@@ -137,12 +137,6 @@ s32 func_801860F4(s16 *arg0) {
} }
typedef struct {
s16 f0;
s16 f1;
s16 f2;
s16 f3;
} TBL_80186144;
extern TBL_80186144 D_80195AF8[]; extern TBL_80186144 D_80195AF8[];
@@ -592,12 +586,6 @@ extern u16 D_80195B4C[];
extern s32 D_801961B8; extern s32 D_801961B8;
extern s32 D_801961E0; extern s32 D_801961E0;
typedef struct {
s16 f0;
s16 f2;
s16 f4;
s16 val;
} Entry_80186A04;
void func_80186A04(s32 arg0) { void func_80186A04(s32 arg0) {
s16 idx; s16 idx;
@@ -735,10 +723,6 @@ void func_80186C0C(void *a0) {
} }
typedef struct {
u8 pad[0x5C];
u16 f5C;
} F5C_S;
extern F5C_S *D_801E43CC[]; extern F5C_S *D_801E43CC[];
@@ -951,10 +935,6 @@ extern void func_8018A7D8(u16 *a0, u16 *a1, s16 *a2, s32 a3);
* function indexes each with a 16-byte runtime stride (sll ...,4). Model each as an array * function indexes each with a 16-byte runtime stride (sll ...,4). Model each as an array
* of a 16-byte-stride row so gcc emits the shift and keeps the relocation on the symbol * of a 16-byte-stride row so gcc emits the shift and keeps the relocation on the symbol
* itself rather than folding an offset into a neighbour's %lo. */ * itself rather than folding an offset into a neighbour's %lo. */
typedef struct {
s16 v;
u8 pad[14];
} Row16_t;
extern Row16_t D_80195B78[]; extern Row16_t D_80195B78[];
extern Row16_t D_80195B7A[]; extern Row16_t D_80195B7A[];
extern Row16_t D_80195B7C[]; extern Row16_t D_80195B7C[];
@@ -1116,12 +1096,6 @@ void func_80187348(s32 a0, s32 a1) {
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2); extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
typedef struct {
u16 x;
u16 y;
u16 z;
u16 w;
} Vec4h_801873FC;
s32 func_801873FC(s32 a0) { s32 func_801873FC(s32 a0) {
Vec4h_801873FC p1; Vec4h_801873FC p1;
@@ -1177,12 +1151,6 @@ s32 func_80187508(s32 param_1)
#include "common.h" #include "common.h"
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_80187560;
extern s32 func_8012DF34(s32 a0, s32 a1, s32 a2); extern s32 func_8012DF34(s32 a0, s32 a1, s32 a2);
@@ -1223,7 +1191,6 @@ save:
extern void func_8018B16C(s32 a0, s32 a1, s32 a2); extern void func_8018B16C(s32 a0, s32 a1, s32 a2);
typedef struct { char b[8]; } Blob8_80187664;
extern Blob8_80187664 D_801E2EF0; extern Blob8_80187664 D_801E2EF0;
@@ -1241,7 +1208,6 @@ void func_80187664(s32 arg0)
/* D_801E2EF8: 8-byte, alignment-1 blob -- copied with lwl/lwr + swl/swr /* D_801E2EF8: 8-byte, alignment-1 blob -- copied with lwl/lwr + swl/swr
* (gcc's emit_block_move for align < 4), same idiom as the banked twin * (gcc's emit_block_move for align < 4), same idiom as the banked twin
* func_8018A47C's D_801E2F28. */ * func_8018A47C's D_801E2F28. */
typedef struct { char b[8]; } Blob8_801876B0;
extern Blob8_801876B0 D_801E2EF8; extern Blob8_801876B0 D_801E2EF8;
extern u8 D_801202A0[]; extern u8 D_801202A0[];
@@ -2536,7 +2502,6 @@ extern void func_8012F214(s32 a0, s32 a1, s32 a2);
extern s32 func_80135260(s32 arg0, s32 arg1, s16 *arg2, s16 *arg3); extern s32 func_80135260(s32 arg0, s32 arg1, s16 *arg2, s16 *arg3);
extern void func_8002D4C8(s32 a0, s32 a1); extern void func_8002D4C8(s32 a0, s32 a1);
typedef struct { s16 a, b, c, d; } SV892CC;
s32 func_801892CC(s32 arg0) s32 func_801892CC(s32 arg0)
{ {
@@ -2762,7 +2727,6 @@ extern void func_80189B30(s32 a0);
extern u8 D_801E44F0[]; extern u8 D_801E44F0[];
extern u8 D_801E44F8[]; extern u8 D_801E44F8[];
typedef struct { u32 w[8]; } Blk32_801898F4;
void func_801898F4(void *a0) { void func_801898F4(void *a0) {
s32 i; s32 i;
@@ -3007,7 +2971,6 @@ extern void func_80129350(s32 a0, s32 a1);
extern void RotMatrixY(s32 a0, void *a1); extern void RotMatrixY(s32 a0, void *a1);
extern void func_800484EC(s32 a0, s32 a1, s32 a2); extern void func_800484EC(s32 a0, s32 a1, s32 a2);
typedef struct { s32 w[4]; } Blk16_801E2F08;
extern Blk16_801E2F08 D_801E2F08; extern Blk16_801E2F08 D_801E2F08;
extern Blk20 D_800AE620; extern Blk20 D_800AE620;
@@ -3087,7 +3050,6 @@ void func_8018A174(s32 arg0) {
* against the pinned cc1). canon_sig_reconcile strips a draft typedef whose * against the pinned cc1). canon_sig_reconcile strips a draft typedef whose
* name AND body match engine_types.h, so the duplicate definition disappears * name AND body match engine_types.h, so the duplicate definition disappears
* at bank time and the ambient Blk20 is used. */ * at bank time and the ambient Blk20 is used. */
typedef struct { s32 w[4]; } Blk16_8018A1D8;
extern Blk16_8018A1D8 D_801E2F18; extern Blk16_8018A1D8 D_801E2F18;
@@ -3194,14 +3156,11 @@ void func_8018A47C(s32 a0) {
/* D_801E2F30: 8-byte, alignment-1 blob -- copied with lwl/lwr + swl/swr /* D_801E2F30: 8-byte, alignment-1 blob -- copied with lwl/lwr + swl/swr
* (gcc's emit_block_move for align < 4). Holds 3 x u16 (+ pad). */ * (gcc's emit_block_move for align < 4). Holds 3 x u16 (+ pad). */
typedef struct { char b[8]; } Blob8_8018A4C4;
/* D_801E2F38: 16-byte, word-aligned blob -- copied with plain lw/sw. */ /* D_801E2F38: 16-byte, word-aligned blob -- copied with plain lw/sw. */
typedef struct { s32 w[4]; } Blk16_8018A4C4;
/* (*(Blk20_8018A4C4 *)&D_800AE620): 32-byte MATRIX-shaped blob (9 x s16 rot + pad + 3 x s32 trans), /* (*(Blk20_8018A4C4 *)&D_800AE620): 32-byte MATRIX-shaped blob (9 x s16 rot + pad + 3 x s32 trans),
* copied with plain lw/sw -- same shape as the TU's existing Blk20. */ * copied with plain lw/sw -- same shape as the TU's existing Blk20. */
typedef struct { s32 w[8]; } Blk20_8018A4C4;
extern Blob8_8018A4C4 D_801E2F30; extern Blob8_8018A4C4 D_801E2F30;
extern Blk16_8018A4C4 D_801E2F38; extern Blk16_8018A4C4 D_801E2F38;
@@ -3344,17 +3303,6 @@ extern s16 D_80195AC6[];
extern u16 D_80195AD6; extern u16 D_80195AD6;
extern s32 D_801E4A58[]; extern s32 D_801E4A58[];
typedef struct {
s16 field_0;
s16 field_2;
s16 field_4;
s16 field_6;
s16 field_8;
s16 field_A;
s16 field_C;
s16 field_E;
s32 field_10;
} LocalStruct_8018A968;
/* register pins reproduce the target's density-priority regalloc order (cookbook, banked /* register pins reproduce the target's density-priority regalloc order (cookbook, banked
* twin md_SC07_004:func_801AD7EC): pos/idx are read+written every iteration (highest density) * twin md_SC07_004:func_801AD7EC): pos/idx are read+written every iteration (highest density)
@@ -3671,8 +3619,6 @@ void func_8018AEB4(s32 a0, s32 a1)
/* Local idiom types (mirrors the TU's own MTX_CF90 pattern / shared Vec32, /* Local idiom types (mirrors the TU's own MTX_CF90 pattern / shared Vec32,
* kept file-local since match_one compiles standalone with -Iinclude only). */ * kept file-local since match_one compiles standalone with -Iinclude only). */
typedef struct { s16 m[3][3]; s32 t[3]; } Mtx8_8018AF58;
typedef struct { s32 vx, vy, vz, pad; } Vec32_8018AF58;
extern Blk20 D_800AE620; extern Blk20 D_800AE620;
extern Blk16_801E2F08 D_801E2F08; extern Blk16_801E2F08 D_801E2F08;
@@ -3712,12 +3658,10 @@ void func_8018AF58(s32 a0)
* globals (func_8018A4C4's D_801E2F30). Holds 3 x s16 angle (+ pad); the * globals (func_8018A4C4's D_801E2F30). Holds 3 x s16 angle (+ pad); the
* middle field is overwritten right after the copy and re-biased each * middle field is overwritten right after the copy and re-biased each
* loop iteration below. */ * loop iteration below. */
typedef struct { char b[8]; } Blob8_8018B058;
extern Blob8_8018B058 D_801E2F00; extern Blob8_8018B058 D_801E2F00;
/* Vec32-shape local (matches the TU's Vec32_8018AF58 pattern): 3 x s32 + /* Vec32-shape local (matches the TU's Vec32_8018AF58 pattern): 3 x s32 +
* pad, passed by address to func_800484EC as its translation-vector arg. */ * pad, passed by address to func_800484EC as its translation-vector arg. */
typedef struct { s32 vx, vy, vz, pad; } Vec32_8018B058;
extern u8 D_80196870[]; extern u8 D_80196870[];
@@ -4362,7 +4306,6 @@ extern u8 D_801E2F54;
/* align-1 4-byte block: lowers via emit_block_move (unaligned lwl/lwr + swl/swr) /* align-1 4-byte block: lowers via emit_block_move (unaligned lwl/lwr + swl/swr)
* with ZERO memcpy-symbol reference (house idiom, cf. func_8018CE04) */ * with ZERO memcpy-symbol reference (house idiom, cf. func_8018CE04) */
typedef struct { u8 b[4]; } Blk4_8018BDD0;
void func_8018BDD0(s32 param_1) void func_8018BDD0(s32 param_1)
{ {
@@ -5057,7 +5000,6 @@ extern void func_8012C218(void *a0);
#include "common.h" #include "common.h"
typedef struct { u8 b[4]; } Blk4_8018CC28;
/* ---- externs ------------------------------------------------------------ */ /* ---- externs ------------------------------------------------------------ */
extern void func_8001CD50(s32 a0, s32 a1); extern void func_8001CD50(s32 a0, s32 a1);
@@ -5450,7 +5392,6 @@ extern u16 D_800B99DA;
extern s32 D_801270C8; extern s32 D_801270C8;
extern void MoveImage(void *a0, s32 a1, s32 a2); extern void MoveImage(void *a0, s32 a1, s32 a2);
struct imgrect { u16 x; u16 y; u16 w; u16 h; };
void func_8018D4D8(void *param_1) void func_8018D4D8(void *param_1)
{ {
@@ -5508,17 +5449,6 @@ void func_8018D574(void *a0)
extern s32 func_8012C750(s32 a0); extern s32 func_8012C750(s32 a0);
extern s32 func_8012C51C(void *a0, s32 a1); extern s32 func_8012C51C(void *a0, s32 a1);
typedef struct {
s16 field_0;
s16 field_2;
s16 field_4;
s16 field_6;
s16 field_8;
s16 field_A;
s16 field_C;
s16 field_E;
s32 field_10;
} LocalStruct;
void func_8018D608(s32 a0) void func_8018D608(s32 a0)
{ {
@@ -6236,7 +6166,6 @@ extern u32 D_801F01D4[];
extern u8 D_801F0220[]; extern u8 D_801F0220[];
extern u8 D_80196C00[]; extern u8 D_80196C00[];
typedef struct { u32 f0; u32 f4; } E8_8018E450;
extern E8_8018E450 D_801E499C[]; extern E8_8018E450 D_801E499C[];
extern E8_8018E450 D_801E4998[]; extern E8_8018E450 D_801E4998[];
-90
View File
@@ -28,101 +28,13 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { u32 w0, w1, w2; } PrimCF90;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimCF90 *prim, *end; } CellCF90;
typedef struct { s16 vx, vy; } DVEC2_CF90;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_CF90;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_CF90; typedef struct { s16 m[3][3]; s32 t[3]; } MTX_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_CF90;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_CF90;
typedef struct { u8 b[4]; } Blk4_80183FCC;
typedef struct { s32 w[8]; } Blk20_8018454C;
typedef struct { s16 vx, vy, vz, pad; } SVec3_8018454C;
typedef struct { typedef struct {
s16 f0; s16 f0;
s16 f2; s16 f2;
s16 f4; s16 f4;
s16 f6; s16 f6;
} D_80195AF4_t; } D_80195AF4_t;
typedef struct {
s16 vx, vy, vz, pad;
} SVec_80184828;
struct S0E_80184828 { s16 v; };
struct S34_80184A8C { u16 v; };
typedef struct {
u8 pad[0x34];
} D_80195D74_Entry;
typedef struct {
s16 f0;
s16 f1;
s16 f2;
s16 f3;
} TBL_80186144;
typedef struct {
s16 f0;
s16 f2;
s16 f4;
s16 val;
} Entry_80186A04;
typedef struct {
u8 pad[0x5C];
u16 f5C;
} F5C_S;
typedef struct {
s16 v;
u8 pad[14];
} Row16_t;
typedef struct {
u16 x;
u16 y;
u16 z;
u16 w;
} Vec4h_801873FC;
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_80187560;
typedef struct { char b[8]; } Blob8_80187664;
typedef struct { char b[8]; } Blob8_801876B0;
typedef struct { s16 a, b, c, d; } SV892CC;
typedef struct { s32 w[4]; } Blk16_801E2F08;
typedef struct { s32 w[4]; } Blk16_8018A1D8;
typedef struct { char b[8]; } Blob8_8018A4C4;
typedef struct { s32 w[4]; } Blk16_8018A4C4;
typedef struct { s32 w[8]; } Blk20_8018A4C4;
typedef struct {
s16 field_0;
s16 field_2;
s16 field_4;
s16 field_6;
s16 field_8;
s16 field_A;
s16 field_C;
s16 field_E;
s32 field_10;
} LocalStruct_8018A968;
typedef struct { s16 m[3][3]; s32 t[3]; } Mtx8_8018AF58;
typedef struct { s32 vx, vy, vz, pad; } Vec32_8018AF58;
typedef struct { char b[8]; } Blob8_8018B058;
typedef struct { s32 vx, vy, vz, pad; } Vec32_8018B058;
typedef struct { u8 b[4]; } Blk4_8018BDD0;
typedef struct { u8 b[4]; } Blk4_8018CC28;
struct imgrect { u16 x; u16 y; u16 w; u16 h; };
typedef struct {
s16 field_0;
s16 field_2;
s16 field_4;
s16 field_6;
s16 field_8;
s16 field_A;
s16 field_C;
s16 field_E;
s32 field_10;
} LocalStruct;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -4397,7 +4309,6 @@ void func_8018FB8C(void *a0) {
* which defines `struct B16 { s32 w[4]; };` at line 295, so a file-scope `struct B16` * which defines `struct B16 { s32 w[4]; };` at line 295, so a file-scope `struct B16`
* contributed by this draft is a hard "redefinition of `struct B16'" at cc1. A unique * contributed by this draft is a hard "redefinition of `struct B16'" at cc1. A unique
* per-function tag is the sanctioned spelling. */ * per-function tag is the sanctioned spelling. */
struct B16_8018FC38 { s32 w[4]; };
/* §183 TYPE-adopted-TU: the destination TU already declares this symbol /* §183 TYPE-adopted-TU: the destination TU already declares this symbol
* `extern s32 D_800A5E88;` at file scope ABOVE this insertion offset (the * `extern s32 D_800A5E88;` at file scope ABOVE this insertion offset (the
@@ -4874,7 +4785,6 @@ extern s32 func_80146A6C(s32 a0, void *a1, s32 a2, s32 a3, s32 a4, s32 a5, s32 a
extern void func_80165718(s32 a0); extern void func_80165718(s32 a0);
extern s32 D_801270C8; extern s32 D_801270C8;
typedef struct { s32 vx, vy, vz, pad; } Vec_80190538;
void func_80190538(s32 arg0) { void func_80190538(s32 arg0) {
s32 s0 = arg0; s32 s0 = arg0;
-20
View File
@@ -5720,7 +5720,6 @@ void func_8017F2F0(void *a0) {
* may DROP this local typedef and reuse the TU's own `B4` when banking into the host TU. * may DROP this local typedef and reuse the TU's own `B4` when banking into the host TU.
*/ */
typedef struct { u8 d[4]; } Blk4_8017CE90_8017F32C;
extern void func_801465C0(void); extern void func_801465C0(void);
extern void func_8001CD04(void *a0, void *a1); extern void func_8001CD04(void *a0, void *a1);
@@ -5857,13 +5856,6 @@ void func_8017F630(void *a0) {
} }
typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017F67C;
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017F67C;
@@ -6285,7 +6277,6 @@ void func_8017FE64(s32 a0) {
} }
typedef struct { s16 m[4]; } S8_FF34;
void func_8017FF34(s16 a0, void *a1, void *a2) { void func_8017FF34(s16 a0, void *a1, void *a2) {
extern s16 D_80126B30; extern s16 D_80126B30;
@@ -7097,14 +7088,6 @@ void func_80180E74(void *a0)
* local typedefs can be dropped. * local typedefs can be dropped.
*/ */
typedef struct { s16 vx, vy; } DVEC80180FE4;
typedef struct { s16 vx, vy, vz, pad; } SVEC80180FE4;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX80180FE4;
typedef struct { u32 xx, yy, zz; u32 nprim; u32 *prim; } Part80180FE4;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1;
s16 x2, y2; u16 uv2, p2; } PolyFT3_80180FE4;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1;
s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PolyFT4_80180FE4;
@@ -7867,9 +7850,6 @@ extern s16 D_80126940;
extern s16 D_801274E8; extern s16 D_801274E8;
extern s16 D_801269E8; extern s16 D_801269E8;
typedef struct {
s16 x0, x1, x2, x3;
} UnalignedShortBlock;
void func_80182488(void) { void func_80182488(void) {
D_80126954 = 0x190; D_80126954 = 0x190;
-21
View File
@@ -27,15 +27,7 @@ extern void func_80178D18(void);
extern void func_80184918(s32 arg0, s32 arg1); extern void func_80184918(s32 arg0, s32 arg1);
typedef struct Sub83178 {
char pad0[0x10];
s16 unk10;
} Sub83178;
typedef struct Ent83178 {
char pad0[0x20];
Sub83178 *unk20;
} Ent83178;
void func_80183178(s32 a0) { void func_80183178(s32 a0) {
@@ -1113,7 +1105,6 @@ void func_80184C0C(s32 param_1) {
} }
typedef struct { s16 a, b, c; } SV3_80184C98;
extern void func_8012B23C(s32 a0); extern void func_8012B23C(s32 a0);
extern void func_80185098(s32 a0, s32 a1); extern void func_80185098(s32 a0, s32 a1);
extern void func_8012B14C(s32 a0, s32 a1); extern void func_8012B14C(s32 a0, s32 a1);
@@ -1141,7 +1132,6 @@ void func_80184C98(s32 param_1) {
} }
typedef struct { s16 a, b, c; } SV3_80184D50;
extern u16 D_80126B5E; extern u16 D_80126B5E;
extern u16 D_80126B62; extern u16 D_80126B62;
@@ -1183,7 +1173,6 @@ void func_80184D50(s32 param_1) {
/* match_one's standalone common.h does not reach src/shared/engine_types.h, where the /* match_one's standalone common.h does not reach src/shared/engine_types.h, where the
* real TU's SV3 {short a,b,c} lives (via ../shared/engine_core.h). Function-scoped local * real TU's SV3 {short a,b,c} lives (via ../shared/engine_core.h). Function-scoped local
* name so it collides with nothing; integrator may drop this and reuse the TU's own SV3. */ * name so it collides with nothing; integrator may drop this and reuse the TU's own SV3. */
typedef struct { s16 a, b, c; } SV3_80184E00;
extern u16 D_80126B5E; extern u16 D_80126B5E;
extern u16 D_80126B62; extern u16 D_80126B62;
@@ -1240,7 +1229,6 @@ void func_80184E00(s32 param_1)
} }
typedef struct { s16 a, b, c; } SV3_80184F48;
extern u8 D_801957DC; extern u8 D_801957DC;
extern void func_80185098(s32 a0, s32 a1); extern void func_80185098(s32 a0, s32 a1);
extern s32 func_8012CBCC(s32 a0); extern s32 func_8012CBCC(s32 a0);
@@ -3156,10 +3144,6 @@ L_end:
#include "common.h" #include "common.h"
/* Packed struct to trigger lwl/lwr unaligned block copy */ /* Packed struct to trigger lwl/lwr unaligned block copy */
typedef struct {
u32 field0;
u32 field1;
} __attribute__((packed, aligned(1))) BlockData;
extern u8 func_8014BF6C(void); extern u8 func_8014BF6C(void);
extern void func_8012B23C(s32 a0); extern void func_8012B23C(s32 a0);
@@ -3208,8 +3192,6 @@ void func_80187614(s32 a0) {
#include "common.h" #include "common.h"
typedef struct { s16 m[3][3]; s32 t[3]; } Mtx32_80187654;
typedef struct { s16 a, b, c; } SV3_80187654;
extern s32 *D_80126B78; extern s32 *D_80126B78;
extern s32 D_80195DB0[]; extern s32 D_80195DB0[];
@@ -4004,9 +3986,6 @@ extern void func_8012A828(s32 a0, void *a1);
extern void Square0(s32 *a0, s32 *a1); extern void Square0(s32 *a0, s32 *a1);
extern u8 D_801D3CBC[]; extern u8 D_801D3CBC[];
typedef struct {
s32 vx, vy, vz;
} Vec3_1887F8;
void func_801887F8(s32 a0) { void func_801887F8(s32 a0) {
Vec3_1887F8 d; Vec3_1887F8 d;
+4 -15
View File
@@ -171,7 +171,6 @@ void func_801890C8(s32 a0) {
/* match_one's standalone common.h does not reach src/shared/engine_types.h where the /* match_one's standalone common.h does not reach src/shared/engine_types.h where the
* real TU's SV3 {short a,b,c} lives (via ../shared/engine_core.h); function-local name. */ * real TU's SV3 {short a,b,c} lives (via ../shared/engine_core.h); function-local name. */
typedef struct { s16 a, b, c; } SV3_801891E8;
extern u16 D_80126B5E; extern u16 D_80126B5E;
extern u16 D_80126B66; extern u16 D_80126B66;
@@ -250,9 +249,6 @@ extern void (*D_80196058[])(void);
extern short D_801D3B74; extern short D_801D3B74;
extern u8 D_801D3CBC[]; extern u8 D_801D3CBC[];
typedef struct {
s32 vx, vy, vz;
} Vec3_189324;
void func_80189324(s32 a0) { void func_80189324(s32 a0) {
s32 idx; s32 idx;
@@ -886,7 +882,6 @@ extern s32 D_801269E4;
void func_8018A284(void *a0); void func_8018A284(void *a0);
typedef struct { u16 a, b, c, d; } __attribute__((aligned(2))) DataBlock;
void func_8018A1A4(void *a0) { void func_8018A1A4(void *a0) {
u8 *s1; u8 *s1;
@@ -4730,16 +4725,10 @@ extern u32 D_801DF7F8[];
extern u8 D_801DF85C[]; extern u8 D_801DF85C[];
typedef struct { s16 vx, vy, vz, pad; } SVec8_8018E8A0; /* 0x08 */ /* 0x08 */
typedef struct { s32 vx, vy, vz, pad; } Vec16_8018E8A0; /* 0x10 */ /* 0x10 */
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } Mtx_8018E8A0; /* 0x20 */ /* 0x20 */
typedef struct { s16 f[0x86]; } Cnt_8018E8A0; /* 0x38 */
typedef struct {
SVec8_8018E8A0 v[4]; /* 0x00 */
u32 c[4]; /* 0x20 */
s32 code; /* 0x30 */
s32 pad; /* 0x34 */
} Prim_8018E8A0; /* 0x38 */
void func_8018E8A0(void *a0) void func_8018E8A0(void *a0)
{ {
+5 -36
View File
@@ -3552,8 +3552,6 @@ void func_8017D500(void *a0) {
* therefore already has the real MATRIX/SVECTOR in scope; these local names exist ONLY to let this * therefore already has the real MATRIX/SVECTOR in scope; these local names exist ONLY to let this
* file compile standalone under match_one and carry zero risk of colliding with the host's globals * file compile standalone under match_one and carry zero risk of colliding with the host's globals
* at integration time). Layout: m[3][3] (18B) + 2B pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */ * at integration time). Layout: m[3][3] (18B) + 2B pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */
typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX_8017D5C8;
typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8017D5C8;
extern s32 D_80126B58; extern s32 D_80126B58;
extern s16 D_80181CEC[]; extern s16 D_80181CEC[];
@@ -3638,12 +3636,6 @@ void func_8017D7E0(s32 param_1) {
#include "common.h" #include "common.h"
/* 4 bytes, alignment 1 -> struct assignment lowers to lwl/lwr + swl/swr */ /* 4 bytes, alignment 1 -> struct assignment lowers to lwl/lwr + swl/swr */
typedef struct {
u8 r;
u8 g;
u8 b;
u8 cd;
} Col4_8017D878;
extern s32 func_8012EFB8(void *param_1, void *param_2); extern s32 func_8012EFB8(void *param_1, void *param_2);
extern void func_80015954(s32 a0, s32 a1); extern void func_80015954(s32 a0, s32 a1);
@@ -3799,38 +3791,15 @@ extern void func_8001739C(void *a0);
typedef struct { /* 0x08 */
s16 x; /* +0x0 */
s16 y; /* +0x2 */
s16 c; /* +0x4 */
s16 pad; /* +0x6 */
} Vtx_8017DC24; /* 0x08 */
typedef struct { /* 0x28 */
Vtx_8017DC24 v[3]; /* +0x00 +0x08 +0x10 */
u8 r0, g0, b0, code; /* +0x18 .. +0x1B */
u8 r1, g1, b1, pad1; /* +0x1C .. +0x1F */
u8 r2, g2, b2, pad2; /* +0x20 .. +0x23 */
u32 color; /* +0x24 */
} Prim_8017DC24; /* 0x28 */
typedef struct { /* 0x06 -> 8-byte frame stride */
u16 x; /* +0x0 */
u16 y; /* +0x2 */
u16 z; /* +0x4 */
} Pos_8017DC24; /* 0x06 -> 8-byte frame stride */
typedef struct { /* 0x08 */
u16 vx; /* +0x0 */
u16 vy; /* +0x2 */
u16 vz; /* +0x4 */
u16 pad; /* +0x6 */
} Sxy_8017DC24; /* 0x08 */
typedef struct { /* 0x20 */
s16 m[3][3]; /* +0x00, padded to 0x14 */
s32 t[3]; /* +0x14 +0x18 +0x1C */
} Mtx_8017DC24; /* 0x20 */
extern u16 D_80181D9C[]; extern u16 D_80181D9C[];
extern s16 D_80181DA0; extern s16 D_80181DA0;
@@ -4046,7 +4046,6 @@ void func_801802C8(u8 *a0, u8 *a1) {
typedef struct { s16 a, b, c; } SV3_80184C98;
/* func_8018035C -- same-class neighbour push-away over the 0x60-entry / /* func_8018035C -- same-class neighbour push-away over the 0x60-entry /
* 0x10C-stride entity table D_801202A0. Banked twin: ov_SC06_018:func_80187320 * 0x10C-stride entity table D_801202A0. Banked twin: ov_SC06_018:func_80187320
@@ -3139,9 +3139,6 @@ extern u8 D_80078EB1;
extern short D_801AF9CC; extern short D_801AF9CC;
extern u8 D_801AFB14[]; extern u8 D_801AFB14[];
typedef struct {
s32 vx, vy, vz;
} Vec3_1818F8;
void func_801818F8(s32 a0) { void func_801818F8(s32 a0) {
s32 idx; s32 idx;
-19
View File
@@ -4158,12 +4158,6 @@ extern s32 D_8018E338[];
* a0+0xFC is actually 4-aligned at runtime -- codegen goes off the type's * a0+0xFC is actually 4-aligned at runtime -- codegen goes off the type's
* declared alignment, not the runtime address; cookbook §48-C2). Same * declared alignment, not the runtime address; cookbook §48-C2). Same
* pattern as ov_SC03_029:func_80182744's Rec80182744. */ * pattern as ov_SC03_029:func_80182744's Rec80182744. */
struct Rec801806C8_s {
s32 f0;
s32 f1;
s32 f2;
} __attribute__((packed, aligned(1)));
typedef struct Rec801806C8_s Rec801806C8;
extern Rec801806C8 D_8018E344[]; extern Rec801806C8 D_8018E344[];
void func_801806C8(void *a0) { void func_801806C8(void *a0) {
@@ -4204,9 +4198,6 @@ extern s32 func_8018096C(); // K&R: 0 of 1 args (P37 rung D t4_D1)
extern void func_8012B2CC(s32 a0); extern void func_8012B2CC(s32 a0);
extern Rec801806C8 D_8018E344[]; extern Rec801806C8 D_8018E344[];
typedef struct {
u16 x, y, z, w;
} Blk8_801807DC;
void func_801807DC(int param_1) void func_801807DC(int param_1)
{ {
@@ -5248,8 +5239,6 @@ s32 func_80181E98_impl(void *arg)
} }
typedef struct { s16 vx, vy, vz, pad; } SV_8018209C;
typedef struct { s16 x, y; s32 flag; } RES_8018209C;
extern u8 D_800AF648; extern u8 D_800AF648;
@@ -5545,7 +5534,6 @@ extern s32 func_8018287C(); // K&R: 0/1 of 1 args (P37 rung D t4_D1)
} }
typedef struct { u8 b[8]; } Blk8_801827C4;
extern Blk8_801827C4 D_801EE3F4; extern Blk8_801827C4 D_801EE3F4;
extern u16 D_800B99DA; extern u16 D_800B99DA;
@@ -5580,8 +5568,6 @@ void func_80182844(s32 a0) {
} }
typedef struct { s16 a, b, c; } SV3_8018287C;
typedef struct { s32 w[8]; } Blk32_8018287C;
extern u8 D_8018E61C[]; extern u8 D_8018E61C[];
extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern void func_8012F214(s32 a0, s32 a1, s32 a2);
@@ -5606,8 +5592,6 @@ s32 func_8018287C(void *param_1)
} }
typedef struct { s16 m[3][3]; s32 t[3]; } Mtx32_80182938;
typedef struct { s16 a, b, c; } SV3_80182938;
extern s32 *D_80126B78; extern s32 *D_80126B78;
extern u8 D_8018E61C[]; extern u8 D_8018E61C[];
@@ -6927,7 +6911,6 @@ void func_801846B8(void *arg0)
* ov_SC03_089:func_80184E54 (0.6883 sim) which uses the identical * ov_SC03_089:func_80184E54 (0.6883 sim) which uses the identical
* `{s16 a,b,c,d;}` 8-byte struct-copy idiom for the lwl/lwr blocks. */ * `{s16 a,b,c,d;}` 8-byte struct-copy idiom for the lwl/lwr blocks. */
typedef struct { s16 a, b, c, d; } SV4x_80184754;
extern void func_8012C218(void *a0); extern void func_8012C218(void *a0);
extern void func_80132288(s32 *param_1, s32 *param_2, s32 param_3); extern void func_80132288(s32 *param_1, s32 *param_2, s32 param_3);
@@ -7009,8 +6992,6 @@ void func_801848B4(s32 param_1) {
#include "common.h" #include "common.h"
typedef struct { s16 a, b, c; } SV3_8018495C;
typedef struct { u8 b[8]; } Blk8_8018495C;
extern void func_8012C218(void *a0); extern void func_8012C218(void *a0);
extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern void func_8012F214(s32 a0, s32 a1, s32 a2);
-31
View File
@@ -9,25 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
struct Rec801806C8_s {
s32 f0;
s32 f1;
s32 f2;
} __attribute__((packed, aligned(1)));
typedef struct Rec801806C8_s Rec801806C8;
typedef struct {
u16 x, y, z, w;
} Blk8_801807DC;
typedef struct { s16 vx, vy, vz, pad; } SV_8018209C;
typedef struct { s16 x, y; s32 flag; } RES_8018209C;
typedef struct { u8 b[8]; } Blk8_801827C4;
typedef struct { s16 a, b, c; } SV3_8018287C;
typedef struct { s32 w[8]; } Blk32_8018287C;
typedef struct { s16 m[3][3]; s32 t[3]; } Mtx32_80182938;
typedef struct { s16 a, b, c; } SV3_80182938;
typedef struct { s16 a, b, c, d; } SV4x_80184754;
typedef struct { s16 a, b, c; } SV3_8018495C;
typedef struct { u8 b[8]; } Blk8_8018495C;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -3465,15 +3446,6 @@ extern s16 D_801E1264;
extern s16 D_801E1AFC; extern s16 D_801E1AFC;
extern s16 D_801E11DC; extern s16 D_801E11DC;
typedef struct {
u16 x;
u16 pad0;
u16 z;
u16 pad1;
s32 vx;
s32 vy;
s32 vz;
} D_87298;
void func_80187298(s32 a0) { void func_80187298(s32 a0) {
D_87298 d; D_87298 d;
@@ -3576,9 +3548,6 @@ extern void (*D_801D6158[])(void);
extern short D_801E0FEC; extern short D_801E0FEC;
extern short D_801E1134; extern short D_801E1134;
typedef struct {
s32 vx, vy, vz;
} Vec3_874E8;
void func_801874E8(s32 a0) { void func_801874E8(s32 a0) {
s32 idx; s32 idx;
@@ -2835,8 +2835,6 @@ void func_8017D500(void *a0) {
* therefore already has the real MATRIX/SVECTOR in scope; these local names exist ONLY to let this * therefore already has the real MATRIX/SVECTOR in scope; these local names exist ONLY to let this
* file compile standalone under match_one and carry zero risk of colliding with the host's globals * file compile standalone under match_one and carry zero risk of colliding with the host's globals
* at integration time). Layout: m[3][3] (18B) + 2B pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */ * at integration time). Layout: m[3][3] (18B) + 2B pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */
typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX_8017D5C8_8017D5C8;
typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8017D5C8_8017D5C8;
extern u16 func_80148800(s32 *a0); extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
@@ -3461,12 +3459,6 @@ s32 func_8017E4DC(s32 arg0, s32 arg1, s32 *arg2)
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2); extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
typedef struct {
u16 x; /* 0x0 */
u16 y; /* 0x2 */
u16 z; /* 0x4 */
u16 w; /* 0x6 */
} Vec4h_8017E608;
s32 func_8017E608(s32 a0, s32 a1, s16 a2) { s32 func_8017E608(s32 a0, s32 a1, s16 a2) {
Vec4h_8017E608 p1; Vec4h_8017E608 p1;
@@ -9,14 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX_8017D5C8_8017D5C8;
typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8017D5C8_8017D5C8;
typedef struct {
u16 x; /* 0x0 */
u16 y; /* 0x2 */
u16 z; /* 0x4 */
u16 w; /* 0x6 */
} Vec4h_8017E608;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
+7 -61
View File
@@ -9,14 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX_8017D5C8_8017D5C8;
typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8017D5C8_8017D5C8;
typedef struct {
u16 x; /* 0x0 */
u16 y; /* 0x2 */
u16 z; /* 0x4 */
u16 w; /* 0x6 */
} Vec4h_8017E608;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -3001,18 +2993,7 @@ void func_8017F264(s32 a0)
} }
typedef struct {
u8 r; /* 0x00 */
u8 g; /* 0x01 */
u8 b; /* 0x02 */
u8 cd; /* 0x03 */
} Col4_8017F2FC;
typedef struct {
s32 unk0; /* 0x00 */
s16 unk4; /* 0x04 */
s16 unk6; /* 0x06 */
} Gte8_8017F2FC;
extern s32 func_8012EFB8(void *param_1, void *param_2); extern s32 func_8012EFB8(void *param_1, void *param_2);
extern void func_80015954(s32 a0, s32 a1); extern void func_80015954(s32 a0, s32 a1);
@@ -3123,20 +3104,8 @@ void func_8017F5CC(void *a0) {
} }
typedef struct { /* 0x08 */
u16 vx; /* +0x0 */ /* 0x08 */
u16 vy; /* +0x2 */
u16 vz; /* +0x4 */
u16 pad; /* +0x6 */
} Sxy_8017DC24; /* 0x08 */
typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8017D5C8;
typedef struct {
s16 x; /* +0x0 */
s16 y; /* +0x2 */
s16 c; /* +0x4 */
s16 pad; /* +0x6 */
} Vtx_8017DC24; /* 0x08 */
typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX_8017D5C8;
extern void func_8017F6A8(s32); extern void func_8017F6A8(s32);
@@ -3191,38 +3160,15 @@ extern s16 D_80183968;
typedef struct { /* 0x08 */
s16 x; /* +0x0 */
s16 y; /* +0x2 */
s16 c; /* +0x4 */
s16 pad; /* +0x6 */
} Vtx_8017F6A8; /* 0x08 */
typedef struct { /* 0x28 */
Vtx_8017F6A8 v[3]; /* +0x00 +0x08 +0x10 */
u8 r0, g0, b0, code; /* +0x18 .. +0x1B */
u8 r1, g1, b1, pad1; /* +0x1C .. +0x1F */
u8 r2, g2, b2, pad2; /* +0x20 .. +0x23 */
u32 color; /* +0x24 */
} Prim_8017F6A8; /* 0x28 */
typedef struct { /* 0x06 -> 8-byte frame stride */
u16 x; /* +0x0 */
u16 y; /* +0x2 */
u16 z; /* +0x4 */
} Pos_8017F6A8; /* 0x06 -> 8-byte frame stride */
typedef struct { /* 0x08 */
u16 vx; /* +0x0 */
u16 vy; /* +0x2 */
u16 vz; /* +0x4 */
u16 pad; /* +0x6 */
} Sxy_8017F6A8; /* 0x08 */
typedef struct { /* 0x20 */
s16 m[3][3]; /* +0x00, padded to 0x14 */
s32 t[3]; /* +0x14 +0x18 +0x1C */
} Mtx_8017F6A8; /* 0x20 */
void func_8017F6A8(s32 arg0) void func_8017F6A8(s32 arg0)
{ {
+1 -39
View File
@@ -3171,11 +3171,6 @@ Lend:
} }
typedef struct { u8 b[8]; } Blk8_8017DAB8;
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244_8017DAB8;
/* Sibling shape in the SAME TU: func_80182244 (already banked, line ~3980) /* Sibling shape in the SAME TU: func_80182244 (already banked, line ~3980)
* uses the identical idiom for the same actor kind: void *a0, raw * uses the identical idiom for the same actor kind: void *a0, raw
@@ -3315,22 +3310,11 @@ s32 func_8017DD84(s32 a0)
#include "common.h" #include "common.h"
/* 8-byte, align-4 pair record: the per-index slot pair at D_801D0120/D_801D0124 */ /* 8-byte, align-4 pair record: the per-index slot pair at D_801D0120/D_801D0124 */
typedef struct {
s32 a; /* 0x00 -> D_801D0120 */
s32 b; /* 0x04 -> D_801D0124 */
} Pair8_8017DDC4;
/* 8-byte, align-2 record: forces move_by_pieces onto the lwl/lwr + swl/swr /* 8-byte, align-2 record: forces move_by_pieces onto the lwl/lwr + swl/swr
* unaligned block-move path (cookbook §48-C2) for the 0x10..0x18 copy. */ * unaligned block-move path (cookbook §48-C2) for the 0x10..0x18 copy. */
typedef struct {
u16 x, y, z;
s16 w;
} Rec8_8017DDC4;
/* 16-byte stride table indexed by *(s16*)(obj+0x70) */ /* 16-byte stride table indexed by *(s16*)(obj+0x70) */
typedef struct {
s32 w[4];
} Rec16_8017DDC4;
extern Pair8_8017DDC4 D_801D0120[]; extern Pair8_8017DDC4 D_801D0120[];
extern Rec16_8017DDC4 D_801A42B8[]; extern Rec16_8017DDC4 D_801A42B8[];
@@ -3577,7 +3561,6 @@ extern u8 D_801A9C08[];
extern u8 D_801A50F4[]; extern u8 D_801A50F4[];
extern u8 D_801A5104[]; extern u8 D_801A5104[];
typedef struct { u8 b[8]; } Blk8_func_8017E3AC;
void func_8017E3AC(s32 a0) { void func_8017E3AC(s32 a0) {
Blk8_func_8017E3AC sp10; Blk8_func_8017E3AC sp10;
@@ -3688,14 +3671,6 @@ s32 a0;
} }
typedef struct { u8 b[8]; } Blk8_8017E72C;
typedef struct {
u8 c[8];
} Blk8_80186594_8017E72C;
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244_8017E72C;
/* func_8017E72C -- ov_SC02_027, subseg ov_SC02_027_jr_8017D898 (106 ins). /* func_8017E72C -- ov_SC02_027, subseg ov_SC02_027_jr_8017D898 (106 ins).
* Mass-lane fresh crack. Nearest exemplar ov_SC02_026:func_8017E72C is still * Mass-lane fresh crack. Nearest exemplar ov_SC02_026:func_8017E72C is still
@@ -4025,11 +4000,6 @@ void func_8017ED80(void *a0) {
typedef struct { u8 c[8]; } Blk8_801859DC;
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244;
extern void func_8012C1B8(void); extern void func_8012C1B8(void);
@@ -4037,9 +4007,6 @@ extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1); extern void func_8001C214(s32 a0, s32 a1);
extern u8 D_801A8938; extern u8 D_801A8938;
typedef struct {
u16 a, b, c, d;
} Rec8_801863EC;
void func_8017EDBC(s32 a0) void func_8017EDBC(s32 a0)
{ {
@@ -4547,7 +4514,7 @@ extern void func_800484EC(s32 a0, s32 a1, s32 a2);
extern s32 rand(void); extern s32 rand(void);
extern s32 D_801A5488[]; extern s32 D_801A5488[];
typedef struct { s32 w[8]; } Blk32_8017F76C; /* 32 bytes, align 4 */ /* 32 bytes, align 4 */
extern Blk32_8017F76C D_800AE620; extern Blk32_8017F76C D_800AE620;
s32 func_8017F76C(s16 *a0, s32 a1, s32 a2, s32 a3) { s32 func_8017F76C(s16 *a0, s32 a1, s32 a2, s32 a3) {
@@ -6526,11 +6493,6 @@ extern void func_80182DBC(s32 a0);
extern s32 func_8012C51C(void *a0, s32 a1); extern s32 func_8012C51C(void *a0, s32 a1);
extern void func_801292C8(u8 *a0); extern void func_801292C8(u8 *a0);
typedef struct {
u16 vx, vy, vz;
u16 f6, f8, fA, fC, fE;
s32 f10;
} SV3L2;
void func_80182AF4(s32 a0) { void func_80182AF4(s32 a0) {
SV3L2 sp10; SV3L2 sp10;
+1 -1
View File
@@ -2927,7 +2927,7 @@ extern void func_80185404(void *a0);
// body) using a locally-named struct type — block-scope externs don't collide with another // body) using a locally-named struct type — block-scope externs don't collide with another
// function's block-scope externs for the same symbol (§S38/D2). // function's block-scope externs for the same symbol (§S38/D2).
typedef struct { s32 w[4]; } LBlk16; /* 16-byte record, block-scoped local name only */ /* 16-byte record, block-scoped local name only */
void func_80185440(void *a0) void func_80185440(void *a0)
{ {
+1 -106
View File
@@ -3278,7 +3278,6 @@ void func_8017F27C(void *a0) {
/* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */
typedef struct { s16 v[4]; } Blk8_80126940_8017D6D0_8017F2B8;
extern u16 func_80148800(s32 *a0); extern u16 func_80148800(s32 *a0);
extern void func_8017F918(s32 param_1, s16 *param_2); extern void func_8017F918(s32 param_1, s16 *param_2);
@@ -3353,7 +3352,6 @@ void func_8017F3E8(s32 a0) {
/* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */ /* 8 bytes, align 2 -> lwl/lwr/swl/swr copy (cookbook §48-C2) */
typedef struct { s16 v[4]; } Blk8_80126940_8017D6D0_8017F498;
extern u16 func_80148800(s32 *a0); extern u16 func_80148800(s32 *a0);
extern void func_8017F918(s32 param_1, s16 *param_2); extern void func_8017F918(s32 param_1, s16 *param_2);
@@ -3457,7 +3455,6 @@ void func_8017F624(s32 a0) {
} }
typedef struct { s16 v[4]; } Blk8_80126940_8017D6D0_8017F6D4;
void func_8017F6D4(s32 a0) { void func_8017F6D4(s32 a0) {
@@ -3832,7 +3829,6 @@ extern void func_8012F568(s32 a0, s32 a1, s32 a2, s32 a3, s32 a4, s32 a5);
extern s32 func_8014A454(s32 a0); extern s32 func_8014A454(s32 a0);
extern void func_8012F038(int param_1, short *param_2, short *param_3); extern void func_8012F038(int param_1, short *param_2, short *param_3);
typedef struct { s32 w[8]; } Mtx32_80180088;
void func_80180088(s32 param_1) void func_80180088(s32 param_1)
@@ -4071,7 +4067,6 @@ extern void func_800484EC(s32 a0, s32 a1, s32 a2);
extern void RotMatrixY(s32 a0, void *a1); extern void RotMatrixY(s32 a0, void *a1);
extern void func_80180A54(void *a0, s32 a1, s32 a2); extern void func_80180A54(void *a0, s32 a1, s32 a2);
typedef struct { s32 w[8]; } Blk32_80180770;
s32 func_80180770(void *a0) s32 func_80180770(void *a0)
{ {
@@ -4136,7 +4131,6 @@ void func_801808CC(void *a0) {
} }
typedef struct { s32 w[8]; } Blk32_80180908;
void func_80180908(s32 *a0) { void func_80180908(s32 *a0) {
extern u8 D_801DA130[]; extern u8 D_801DA130[];
@@ -4175,16 +4169,6 @@ void func_801809A8(void) {
} }
typedef struct {
s16 id;
s16 flag;
s16 x;
s16 y;
s16 size;
s16 pad;
s32 param;
s32 ptr;
} Sub_80180A54;
void func_80180A54(void *a0, s32 a1, s32 a2) void func_80180A54(void *a0, s32 a1, s32 a2)
{ {
@@ -4223,25 +4207,6 @@ epilogue:
/* Blk32_80180908 is already declared in this TU (ov_SC02_027_jr_8017D898.c:4623). */ /* Blk32_80180908 is already declared in this TU (ov_SC02_027_jr_8017D898.c:4623). */
typedef struct { u32 addr : 24; u32 len : 8; } PTag_80180B3C;
typedef struct {
PTag_80180B3C tag;
u8 r0, g0, b0, code;
u16 x0, y0;
u8 u0, v0;
u16 clut;
u16 x1, y1;
u8 u1, v1;
u16 tpage;
u16 x2, y2;
u8 u2, v2;
u16 pad2;
u16 x3, y3;
u8 u3, v3;
u16 pad3;
} Ft4_80180B3C;
typedef struct { s16 vx, vy, vz, pad; } SV_80180B3C;
typedef struct { s16 vx, vy; } DV_80180B3C;
#define ADDPRIM_80180B3C(o, p) \ #define ADDPRIM_80180B3C(o, p) \
(((PTag_80180B3C *)(p))->addr = ((PTag_80180B3C *)(o))->addr, \ (((PTag_80180B3C *)(p))->addr = ((PTag_80180B3C *)(o))->addr, \
@@ -4429,15 +4394,6 @@ void func_8018102C(void *a0)
} }
typedef struct {
u8 pad0[0x20];
s32 f20;
u8 pad24[0x10];
u16 f34;
u8 pad36[0xC6];
s16 fFC;
s16 fFE;
} W_801810A0;
extern s32 func_8012BDBC(s32 a0, s32 a1); extern s32 func_8012BDBC(s32 a0, s32 a1);
extern s32 func_8018152C(s32 a0, s16 a1); extern s32 func_8018152C(s32 a0, s16 a1);
@@ -4733,7 +4689,6 @@ void func_801815E8(s32 a0)
} }
typedef struct { u16 x, y, z, pad; } SV_80181740;
extern s32 *D_80126B78; extern s32 *D_80126B78;
extern u8 D_8018F458[]; extern u8 D_8018F458[];
@@ -5192,22 +5147,11 @@ s32 func_80182204(u8 *a0)
/* 8-byte, align-4 pair record: the per-index slot pair at D_801DA750/D_801DA754 */ /* 8-byte, align-4 pair record: the per-index slot pair at D_801DA750/D_801DA754 */
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244;
/* 8-byte, align-2 record: forces move_by_pieces onto the lwl/lwr + swl/swr /* 8-byte, align-2 record: forces move_by_pieces onto the lwl/lwr + swl/swr
* unaligned block-move path (cookbook §48-C2) for the 0x10..0x18 copy. */ * unaligned block-move path (cookbook §48-C2) for the 0x10..0x18 copy. */
typedef struct {
u16 x, y, z;
s16 w;
} Rec8_8017DDC4_80182244;
/* 16-byte stride table indexed by *(s16*)(obj+0x70) */ /* 16-byte stride table indexed by *(s16*)(obj+0x70) */
typedef struct {
s32 w[4];
} Rec16_8017DDC4_80182244;
extern void func_8012C1B8(void); extern void func_8012C1B8(void);
@@ -5461,8 +5405,6 @@ void func_80182828(void) {
* this function; each is a SEPARATE relocation symbol in the target .s * this function; each is a SEPARATE relocation symbol in the target .s
* (D_801AB670/672/674/676 are 2/4/6/8 bytes apart but referenced as four * (D_801AB670/672/674/676 are 2/4/6/8 bytes apart but referenced as four
* independently-based arrays, never as one array + constant offset). */ * independently-based arrays, never as one array + constant offset). */
typedef struct { u16 v; u16 pad[3]; } Stride8_u16_80182868;
typedef struct { s16 v; s16 pad[3]; } Stride8_s16_80182868;
void func_80182868(void *a0) void func_80182868(void *a0)
{ {
@@ -6040,12 +5982,6 @@ void func_8018339C(s32 s0) {
} }
typedef struct {
u16 x; /* 0x00 */
u16 y; /* 0x02 */
u16 z; /* 0x04 */
u16 w; /* 0x06 */
} V4_8017FAC0_80183418;
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2); extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
@@ -7521,7 +7457,6 @@ extern u8 D_801B4380;
extern u8 D_801AF86C[]; extern u8 D_801AF86C[];
extern u8 D_801AF87C[]; extern u8 D_801AF87C[];
typedef struct { u8 c[8]; } Blk8_801859DC;
void func_801859DC(s32 a0) { void func_801859DC(s32 a0) {
s16 buf[3]; s16 buf[3];
@@ -7931,36 +7866,6 @@ s32 func_801862A8(s32 arg0)
} }
typedef struct {
u8 pad00[0x02];
u16 f02;
u8 pad04[0x02];
u16 f06;
u8 pad08[0x02];
u16 f0A;
u8 pad0C[0x02];
u16 f0E;
u8 pad10[0x08];
u16 f18;
u16 f1A;
u16 f1C;
u8 pad1E[0x02];
void *f20;
u8 pad24[0x08];
u16 f2C;
u8 pad2E[0x2E];
u16 f5C;
u8 pad5E[0x12];
u16 f70;
u8 pad72[0x06];
void *f78;
u8 pad7C[0x0C];
u16 f88;
u16 f8A;
u16 f8C;
u8 pad8E[0x72];
u16 f100;
} Str_8018633C;
void func_8018633C(Str_8018633C *arg0) { void func_8018633C(Str_8018633C *arg0) {
u16 a; u16 a;
@@ -8007,9 +7912,6 @@ extern void func_8012CAE4(void *a0);
extern void func_8001C214(s32 a0, s32 a1); extern void func_8001C214(s32 a0, s32 a1);
extern u8 D_801B30B0; extern u8 D_801B30B0;
typedef struct {
u16 a, b, c, d;
} Rec8_801863EC;
void func_801863EC(s32 a0) void func_801863EC(s32 a0)
{ {
@@ -8167,9 +8069,6 @@ void func_8018675C(s32 a0)
} }
typedef struct {
s32 w[4];
} Rec16_8017DDC4_801867AC;
/* func_801867AC -- ov_SC02_026, subseg ov_SC02_026_jr_8017C180 (133 ins). */ /* func_801867AC -- ov_SC02_026, subseg ov_SC02_026_jr_8017C180 (133 ins). */
@@ -8400,10 +8299,6 @@ s32 a1;
} }
typedef struct {
s32 a; /* 0x00 -> D_801D0120 */
s32 b; /* 0x04 -> D_801D0124 */
} Pair8_8017DDC4_80186D9C;
/* func_80186D9C (ov_SC02_026, 154 ins) — spawns a type-0x3B object at *a0, /* func_80186D9C (ov_SC02_026, 154 ins) — spawns a type-0x3B object at *a0,
* seeds its sub-record (0x20 handler table / 0x27 / 0x28 / 0x2A), picks a * seeds its sub-record (0x20 handler table / 0x27 / 0x28 / 0x2A), picks a
@@ -8520,7 +8415,7 @@ extern void func_80049CAC(s32 a0, s32 a1);
extern void func_800484EC(s32 a0, s32 a1, s32 a2); extern void func_800484EC(s32 a0, s32 a1, s32 a2);
extern s32 rand(void); extern s32 rand(void);
typedef struct { s32 w[8]; } Blk32_8017F76C_80186D9C; /* 32 bytes, align 4 */ /* 32 bytes, align 4 */
s32 func_80186D9C(s16 *a0, s32 a1, s32 a2, s32 a3) { s32 func_80186D9C(s16 *a0, s32 a1, s32 a2, s32 a3) {
+1 -1
View File
@@ -2915,7 +2915,7 @@ extern void func_8018A528(void *a0);
// body) using a locally-named struct type — block-scope externs don't collide with another // body) using a locally-named struct type — block-scope externs don't collide with another
// function's block-scope externs for the same symbol (§S38/D2). // function's block-scope externs for the same symbol (§S38/D2).
typedef struct { s32 w[4]; } LBlk16; /* 16-byte record, block-scoped local name only */ /* 16-byte record, block-scoped local name only */
void func_8018A564(void *a0) void func_8018A564(void *a0)
{ {
-46
View File
@@ -3399,7 +3399,6 @@ extern u16 func_80148800(s32 *a0);
extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_80012F74(s32 a0, s32 a1, s32 a2, s32 a3);
extern void func_8017F9AC(s32 param_1, s16 *param_2); extern void func_8017F9AC(s32 param_1, s16 *param_2);
typedef struct { s16 v[4]; } Blk8_80126940_8017F608;
void func_8017F608(void *arg0) { void func_8017F608(void *arg0) {
extern s32 D_80126B58; extern s32 D_80126B58;
@@ -3799,11 +3798,6 @@ s32 func_8017FFC8(void) {
typedef struct { u8 b[8]; } Blk8_80180040;
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244_80180040;
/* Sibling shape in the SAME TU: func_80182244 (already banked, line ~3980) /* Sibling shape in the SAME TU: func_80182244 (already banked, line ~3980)
* uses the identical idiom for the same actor kind: void *a0, raw * uses the identical idiom for the same actor kind: void *a0, raw
@@ -3948,22 +3942,11 @@ s32 func_8018030C(u8 *a0)
/* 8-byte, align-4 pair record: the per-index slot pair at D_801D30D8/D_801D30DC */ /* 8-byte, align-4 pair record: the per-index slot pair at D_801D30D8/D_801D30DC */
typedef struct {
s32 a; /* 0x00 -> D_801D30D8 */
s32 b; /* 0x04 -> D_801D30DC */
} Pair8_8017DDC4_8018034C;
/* 8-byte, align-2 record: forces move_by_pieces onto the lwl/lwr + swl/swr /* 8-byte, align-2 record: forces move_by_pieces onto the lwl/lwr + swl/swr
* unaligned block-move path (cookbook §48-C2) for the 0x10..0x18 copy. */ * unaligned block-move path (cookbook §48-C2) for the 0x10..0x18 copy. */
typedef struct {
u16 x, y, z;
s16 w;
} Rec8_8017DDC4_8018034C;
/* 16-byte stride table indexed by *(s16*)(obj+0x70) */ /* 16-byte stride table indexed by *(s16*)(obj+0x70) */
typedef struct {
s32 w[4];
} Rec16_8017DDC4_8018034C;
extern void func_8012C1B8(void); extern void func_8012C1B8(void);
@@ -4220,18 +4203,11 @@ void func_80180930(void) {
} }
typedef struct { u8 b[8]; } Blk8_80180970;
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244_80180970;
/* stride-8 tables, only the field-0 short of each record is ever read by /* stride-8 tables, only the field-0 short of each record is ever read by
* this function; each is a SEPARATE relocation symbol in the target .s * this function; each is a SEPARATE relocation symbol in the target .s
* (D_801A4D0C/672/674/676 are 2/4/6/8 bytes apart but referenced as four * (D_801A4D0C/672/674/676 are 2/4/6/8 bytes apart but referenced as four
* independently-based arrays, never as one array + constant offset). */ * independently-based arrays, never as one array + constant offset). */
typedef struct { u16 v; u16 pad[3]; } Stride8_u16_80182868_80180970;
typedef struct { s16 v; s16 pad[3]; } Stride8_s16_80182868_80180970;
void func_80180970(void *a0) void func_80180970(void *a0)
{ {
@@ -4940,14 +4916,6 @@ void func_801817B8(void *arg0)
} }
typedef struct { u8 b[8]; } Blk8_80181824;
typedef struct {
u8 c[8];
} Blk8_80186594_80181824;
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244_80181824;
/* Declarations copied VERBATIM from the destination TU /* Declarations copied VERBATIM from the destination TU
* (src/ov_SC02_027/ov_SC02_027_jr_8017D898.c): * (src/ov_SC02_027/ov_SC02_027_jr_8017D898.c):
@@ -5284,7 +5252,6 @@ extern s32 func_8012AD50(void *a0);
* matches the sibling idiom at ov_SC02_005:func_8018CE04). */ * matches the sibling idiom at ov_SC02_005:func_8018CE04). */
/* 4-byte, align-4 unaligned block: forces lwl/lwr + swl/swr (cookbook §48-C2 / /* 4-byte, align-4 unaligned block: forces lwl/lwr + swl/swr (cookbook §48-C2 /
* matches the sibling idiom at ov_SC02_005:func_8018CE04). */ * matches the sibling idiom at ov_SC02_005:func_8018CE04). */
typedef struct { u8 b[4]; } Blk4_80181EDC;
extern u8 D_801A4E3C; extern u8 D_801A4E3C;
extern u8 D_801A4E70; extern u8 D_801A4E70;
@@ -5477,8 +5444,6 @@ void func_80182060(void *a0)
extern s32 rand(void); extern s32 rand(void);
extern void func_80183AA0(void *a0, void *a1, void *a2); extern void func_80183AA0(void *a0, void *a1, void *a2);
typedef struct { u8 b[4]; } Blk4_80182194;
typedef struct { u16 f00, f02, f04, f06; } Args_80182194;
extern Blk4_80182194 D_801D1A94; extern Blk4_80182194 D_801D1A94;
extern Blk4_80182194 D_801D1A98; extern Blk4_80182194 D_801D1A98;
@@ -5620,17 +5585,6 @@ s32 func_80182438(s32 a0) {
* then a trailing s32 "extra" field copied out of *(a0+0xDC). §193-I: this aggregate's frame * then a trailing s32 "extra" field copied out of *(a0+0xDC). §193-I: this aggregate's frame
* slot rounds up to 24 (ceil(20,8)), which is exactly the 4-byte gap between it and `vec` * slot rounds up to 24 (ceil(20,8)), which is exactly the 4-byte gap between it and `vec`
* below in the target's stack layout (sp+0x24-0x27 unused). */ * below in the target's stack layout (sp+0x24-0x27 unused). */
typedef struct {
s16 x;
s16 y;
s16 z;
s16 type;
s16 sub;
s16 pad1;
s16 flag;
s16 pad2;
s32 extra;
} Msg_8018248C;
extern void RotMatrixY(s32 a0, void *a1); extern void RotMatrixY(s32 a0, void *a1);
extern void ApplyMatrixSV(void *a0, void *a1, void *a2); extern void ApplyMatrixSV(void *a0, void *a1, void *a2);
+1 -21
View File
@@ -3736,14 +3736,6 @@ void func_80186668(s32 a0)
} }
typedef struct { u8 b[8]; } Blk8_80186740;
typedef struct {
u8 c[8];
} Blk8_80186594_80186740;
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244_80186740;
/* func_80186740 -- ov_SC02_027, subseg ov_SC02_027_jr_8017D898 (106 ins). /* func_80186740 -- ov_SC02_027, subseg ov_SC02_027_jr_8017D898 (106 ins).
* Mass-lane fresh crack. Nearest exemplar ov_SC02_026:func_8017E72C is still * Mass-lane fresh crack. Nearest exemplar ov_SC02_026:func_8017E72C is still
@@ -4243,9 +4235,6 @@ void func_80187140(s32 a0) {
} }
typedef struct {
s32 w[4];
} Rec16_8017DDC4_80187190;
/* func_80187190 -- ov_SC02_026, subseg ov_SC02_026_jr_8017C180 (133 ins). */ /* func_80187190 -- ov_SC02_026, subseg ov_SC02_026_jr_8017C180 (133 ins). */
@@ -4487,10 +4476,6 @@ void func_801876C4(void *a0, s32 a1) {
} }
typedef struct {
s32 a; /* 0x00 -> D_801D0120 */
s32 b; /* 0x04 -> D_801D0124 */
} Pair8_8017DDC4_80187780;
/* func_80187780 (ov_SC02_026, 154 ins) — spawns a type-0x3B object at *a0, /* func_80187780 (ov_SC02_026, 154 ins) — spawns a type-0x3B object at *a0,
* seeds its sub-record (0x20 handler table / 0x27 / 0x28 / 0x2A), picks a * seeds its sub-record (0x20 handler table / 0x27 / 0x28 / 0x2A), picks a
@@ -4607,7 +4592,7 @@ extern void func_80049CAC(s32 a0, s32 a1);
extern void func_800484EC(s32 a0, s32 a1, s32 a2); extern void func_800484EC(s32 a0, s32 a1, s32 a2);
extern s32 rand(void); extern s32 rand(void);
typedef struct { s32 w[8]; } Blk32_8017F76C_80187780; /* 32 bytes, align 4 */ /* 32 bytes, align 4 */
s32 func_80187780(s16 *a0, s32 a1, s32 a2, s32 a3) { s32 func_80187780(s16 *a0, s32 a1, s32 a2, s32 a3) {
@@ -4818,11 +4803,6 @@ void func_80187C6C(void *arg0) {
} }
typedef struct { u8 b[8]; } Blk8_80187DE4;
typedef struct {
s32 a; /* 0x00 -> D_801DA750 */
s32 b; /* 0x04 -> D_801DA754 */
} Pair8_8017DDC4_80182244_80187DE4;
/* func_80187DE4 — ov_SC02_027 / ov_SC02_027_jr_8017D898.c MATCH (249 ins) /* func_80187DE4 — ov_SC02_027 / ov_SC02_027_jr_8017D898.c MATCH (249 ins)
* *
+1 -2
View File
@@ -4976,7 +4976,7 @@ void func_8018AF0C(void *a0) {
// body) using a locally-named struct type — block-scope externs don't collide with another // body) using a locally-named struct type — block-scope externs don't collide with another
// function's block-scope externs for the same symbol (§S38/D2). // function's block-scope externs for the same symbol (§S38/D2).
typedef struct { s32 w[4]; } LBlk16; /* 16-byte record, block-scoped local name only */ /* 16-byte record, block-scoped local name only */
void func_8018AF48(void *a0) void func_8018AF48(void *a0)
{ {
@@ -5064,7 +5064,6 @@ void func_8018B13C(s32 a0) {
#include "common.h" #include "common.h"
typedef struct { s32 w[4]; } B16_local;
extern Blk16_8018B13C D_800A5EA8; extern Blk16_8018B13C D_800A5EA8;
extern B16_local D_801D0358; extern B16_local D_801D0358;
+1 -28
View File
@@ -6332,8 +6332,6 @@ void func_80181378(s32 param_1)
* therefore already has the real MATRIX/SVECTOR in scope; these local names exist ONLY to let this * therefore already has the real MATRIX/SVECTOR in scope; these local names exist ONLY to let this
* file compile standalone under match_one and carry zero risk of colliding with the host's globals * file compile standalone under match_one and carry zero risk of colliding with the host's globals
* at integration time). Layout: m[3][3] (18B) + 2B pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */ * at integration time). Layout: m[3][3] (18B) + 2B pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */
typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX_8017D5C8_801814E4;
typedef struct { s16 vx, vy, vz, pad; } SVECTOR_8017D5C8_801814E4;
extern u16 func_80148800(s32 *a0); extern u16 func_80148800(s32 *a0);
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
@@ -6554,7 +6552,6 @@ void func_80181A44(void) {
} }
typedef struct { s32 w[8]; } Copy32;
extern s16 D_80126CB4; extern s16 D_80126CB4;
@@ -6614,7 +6611,6 @@ void func_80181BB4(void *a0) {
} }
typedef struct { u8 c[4]; } W4;
extern s32 func_80181EF0(void); extern s32 func_80181EF0(void);
extern void func_8002D4C8(s32 a0, s32 a1); extern void func_8002D4C8(s32 a0, s32 a1);
@@ -6705,18 +6701,8 @@ void func_80181DEC(s16 *param_1) {
extern void func_80016A3C(void *a0); extern void func_80016A3C(void *a0);
typedef struct { u8 c[4]; } W4_80181E88;
typedef struct { /* 0x1c */
W4_80181E88 f00; /* 0x00 */
u16 f04; /* 0x04 */
u16 f06; /* 0x06 */
W4_80181E88 f08; /* 0x08 */
u32 f0c; /* 0x0c */
u32 f10; /* 0x10 */
u32 f14; /* 0x14 */
u32 f18; /* 0x18 */
} Prim_80181E88; /* 0x1c */
void func_80181E88(void *a0) { void func_80181E88(void *a0) {
Prim_80181E88 p; Prim_80181E88 p;
@@ -7047,7 +7033,6 @@ ret0:
extern s32 func_80132EF4(s32 a0, s32 a1); extern s32 func_80132EF4(s32 a0, s32 a1);
typedef struct { u16 x, y, z, w; } Vec8_80182674;
void func_80182674(s32 a0, s16 *vec, s32 count, s32 flag) { void func_80182674(s32 a0, s16 *vec, s32 count, s32 flag) {
s32 i; s32 i;
@@ -7092,12 +7077,6 @@ void func_80182674(s32 a0, s16 *vec, s32 count, s32 flag) {
} }
typedef struct {
s16 f0;
s16 f1;
s16 f2;
s16 f3;
} Spawn8_80182848;
void func_80182848(void *a0, u8 *a1, s32 a2, s32 a3, s32 a4) { void func_80182848(void *a0, u8 *a1, s32 a2, s32 a3, s32 a4) {
Spawn8_80182848 sp; Spawn8_80182848 sp;
@@ -7957,12 +7936,6 @@ void func_80183D84(void *a0) {
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80183DC0;
extern void func_8012931C(struct vec *a0); extern void func_8012931C(struct vec *a0);
extern void func_801292C8(u8 *a0); extern void func_801292C8(u8 *a0);
extern s32 func_8012EFB8(void *param_1, void *param_2); /* TU spelling (line 329) — cast at use */ extern s32 func_8012EFB8(void *param_1, void *param_2); /* TU spelling (line 329) — cast at use */
-13
View File
@@ -4724,13 +4724,6 @@ s32 func_80182318_def(s32 a0, s32 a1)
extern s32 func_8012CC88(s32 a0, s32 a1, s32 a2); extern s32 func_8012CC88(s32 a0, s32 a1, s32 a2);
typedef struct {
s32 w[4];
} Rec16_8017DDC4_8018023C;
typedef struct {
u16 x, y, z;
s16 w;
} Rec8_8017DDC4_8018023C;
/* func_8018023C -- ov_SC02_026 / ov_SC02_026_jr_8017C180 /* func_8018023C -- ov_SC02_026 / ov_SC02_026_jr_8017C180
* Same TU declares this at line 4712 (extern void func_8018023C(s32 a0);) and * Same TU declares this at line 4712 (extern void func_8018023C(s32 a0);) and
@@ -5049,11 +5042,6 @@ extern void func_80180C10(s32 a0);
extern s32 func_8012C51C(void *a0, s32 a1); extern s32 func_8012C51C(void *a0, s32 a1);
extern void func_801292C8(u8 *a0); extern void func_801292C8(u8 *a0);
typedef struct {
u16 vx, vy, vz;
u16 f6, f8, fA, fC, fE;
s32 f10;
} SV3L2;
void func_80180948(s32 a0) { void func_80180948(s32 a0) {
SV3L2 sp10; SV3L2 sp10;
@@ -5121,7 +5109,6 @@ s32 func_801809E4(s32 a0, s32 a1, s32 a2) {
} }
typedef struct { s32 w[8]; } Blk20_80180B38;
extern s32 func_8012B6D4(s16 *a0, s16 *a1); extern s32 func_8012B6D4(s16 *a0, s16 *a1);
extern void RotMatrixY(s32 a0, void *a1); extern void RotMatrixY(s32 a0, void *a1);
+1 -2
View File
@@ -2876,7 +2876,7 @@ extern void func_80183F98(void *a0);
// body) using a locally-named struct type — block-scope externs don't collide with another // body) using a locally-named struct type — block-scope externs don't collide with another
// function's block-scope externs for the same symbol (§S38/D2). // function's block-scope externs for the same symbol (§S38/D2).
typedef struct { s32 w[4]; } LBlk16; /* 16-byte record, block-scoped local name only */ /* 16-byte record, block-scoped local name only */
void func_80183FD4(void *a0) void func_80183FD4(void *a0)
{ {
@@ -2962,7 +2962,6 @@ void func_801841C8(void *a0) {
#include "common.h" #include "common.h"
typedef struct { s32 w[4]; } B16_local;
extern struct B16_801841C8 D_800A5EA8; extern struct B16_801841C8 D_800A5EA8;
extern B16_local D_801BBE1C; extern B16_local D_801BBE1C;
-5
View File
@@ -1041,7 +1041,6 @@ void func_8012BF4C(s32 *a0, s32 a1) {
#include "../shared/ov/func_8012C820.h" #include "../shared/ov/func_8012C820.h"
typedef struct { s8 c[8]; } Blk8_8012C890;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (149 ins). Counter (*(u16 *)&D_801270C4): gcc CSE's the two reads (store to // @unstuck(P36): none — MATCH (149 ins). Counter (*(u16 *)&D_801270C4): gcc CSE's the two reads (store to
@@ -1366,7 +1365,6 @@ void func_8012E284(void) {
#include "../shared/ov/func_8012E32C.h" #include "../shared/ov/func_8012E32C.h"
typedef struct { s8 c[8]; } Blk8_8012E364;
/* func_8012E364 (ov_SC01_077_jr_8012ACE0) — MATCH, 67/67 ins, 0 mismatched (reloc-masked). /* func_8012E364 (ov_SC01_077_jr_8012ACE0) — MATCH, 67/67 ins, 0 mismatched (reloc-masked).
* *
@@ -1579,7 +1577,6 @@ void func_8012E9C0(int param_1)
#include "../shared/ov/func_8012EF70.h" #include "../shared/ov/func_8012EF70.h"
typedef struct { s8 c[8]; } Blk8_8012EFB8;
/* §37/§124 asm-label alias: the fleet canon declares this `extern void /* §37/§124 asm-label alias: the fleet canon declares this `extern void
* func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in * func_8012EFB8(s32 a0);` inside the DEFINE_func_* macros in
@@ -1698,7 +1695,6 @@ void func_8012F8C8(int param_1)
#include "../shared/ov/func_8012FCA4.h" #include "../shared/ov/func_8012FCA4.h"
typedef struct { s8 c[8]; } Blk8_8012FCC4;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (57 ins), byte-exact via rtu_match on the real TU. // @unstuck(P36): none — MATCH (57 ins), byte-exact via rtu_match on the real TU.
@@ -2004,7 +2000,6 @@ extern s32 func_8012BCCC(s32 a0);
extern s32 func_80131A34(s32, s32); extern s32 func_80131A34(s32, s32);
extern s32 func_80131AC8(void *a0); extern s32 func_80131AC8(void *a0);
extern void func_80131B14(void); extern void func_80131B14(void);
typedef struct { s8 c[8]; } Blk8_80131170;
// @class: loop-guard // @class: loop-guard
@@ -531,7 +531,6 @@ extern void func_80131170(s32 p, s32 b, s32 c);
extern s32 func_801312D0(s32 param_1, void *param_2); extern s32 func_801312D0(s32 param_1, void *param_2);
typedef struct { s8 c[8]; } Blk8_80131340;
// @class: plumbing // @class: plumbing
@@ -873,7 +872,6 @@ extern void func_8012B23C(s32 a0);
extern void func_8012B2CC(s32 a0); extern void func_8012B2CC(s32 a0);
extern void func_8016AA50(int, int); extern void func_8016AA50(int, int);
extern s32 func_8016B428(s32); extern s32 func_8016B428(s32);
typedef struct { s8 c[8]; } Blk8_80131B14;
// @class: regalloc-order // @class: regalloc-order
// @unstuck(P36): none — MATCH (89 ins). Reconcile: TU canonical decl is `void func_80131B14(void)` // @unstuck(P36): none — MATCH (89 ins). Reconcile: TU canonical decl is `void func_80131B14(void)`
@@ -945,7 +943,6 @@ void func_80131B14(void) {
#include "../shared/ov/func_80131C78.h" #include "../shared/ov/func_80131C78.h"
typedef struct { s8 c[8]; } Blk8_80131CA8;
/* func_80131CA8 — RECONCILE (§37/§124 asm-label alias) /* func_80131CA8 — RECONCILE (§37/§124 asm-label alias)
* *
@@ -975,7 +972,6 @@ extern s32 func_80131CF4(); // K&R: 1/2 of 2 args (P37 unalias t4_ua6)
#include "../shared/ov/func_80131CA8.h" #include "../shared/ov/func_80131CA8.h"
typedef struct { s8 c[8]; } Blk8_80131CF4;
/* func_80131CF4 — table lookup: walk (key, value) pairs; key 0xD chains to the /* func_80131CF4 — table lookup: walk (key, value) pairs; key 0xD chains to the
@@ -1246,7 +1242,6 @@ void func_8013277C(void) {
#include "../shared/ov/func_80132EF4.h" #include "../shared/ov/func_80132EF4.h"
typedef struct { s8 c[8]; } Blk8_80132F40;
/* func_80132F40 — ov_SC01_077 (jr_8012ACE0 region), 72 ins, -O2. *** MATCH *** /* func_80132F40 — ov_SC01_077 (jr_8012ACE0 region), 72 ins, -O2. *** MATCH ***
* *
@@ -2029,7 +2024,6 @@ int func_80134A74(int param_1, s16 param_2, s16 param_3, int param_4)
} }
typedef struct { s8 c[8]; } Blk8_80134C20;
// @class: regalloc-order // @class: regalloc-order
// @try: variant B — direct pins m=$s5($21), c=$s6($22) // @try: variant B — direct pins m=$s5($21), c=$s6($22)
@@ -2122,7 +2116,6 @@ block_14:
#include "../shared/ov/func_80134FB8.h" #include "../shared/ov/func_80134FB8.h"
typedef struct { s8 c[8]; } Blk8_80135004;
// @class: plumbing // @class: plumbing
// @stuck: MATCH (89 ins). To BANK: retype aD801841A0_80135004 + aD8018419C_80135004 (u8 -> s16*) in sibling func_80135168's externs (src/ov_SC01_077/ov_SC01_077_a.c ~L1879); they hold pointers double-referenced across a call, so only a 4-byte/pointer decl folds %lo (u8 &-cast CSE's the address into a saved reg). Retype is byte-NEUTRAL for the sibling (verified: identical objdump bytes u8 vs s16*). // @stuck: MATCH (89 ins). To BANK: retype aD801841A0_80135004 + aD8018419C_80135004 (u8 -> s16*) in sibling func_80135168's externs (src/ov_SC01_077/ov_SC01_077_a.c ~L1879); they hold pointers double-referenced across a call, so only a 4-byte/pointer decl folds %lo (u8 &-cast CSE's the address into a saved reg). Retype is byte-NEUTRAL for the sibling (verified: identical objdump bytes u8 vs s16*).
@@ -2233,7 +2226,6 @@ int func_80135168(u16 arg0, u16 *p1, u16 *p2)
} }
typedef struct { s8 c[8]; } Blk8_80135260;
/* func_80135260 — "is <target> reachable/hittable" gate (136 ins, ov_SC01_077 jr_8012ACE0). /* func_80135260 — "is <target> reachable/hittable" gate (136 ins, ov_SC01_077 jr_8012ACE0).
-43
View File
@@ -1534,13 +1534,6 @@ void aF80146A6C(s16 a0, s32 a1, s16 a2, s16 a3, u16 a4, s32 a5, s32 a6) __asm__(
extern s32 func_80146B9C(void * arg0); extern s32 func_80146B9C(void * arg0);
typedef struct
{
u16 x;
u16 y;
u16 z;
u16 w;
} V4_80146AFC;
/* func_80146AFC — ASCENDING twin of the byte-proven DEFINE_func_80146B9C() /* func_80146AFC — ASCENDING twin of the byte-proven DEFINE_func_80146B9C()
* in src/shared/engine_core.h (cookbook §71: find the already-matched sibling first). * in src/shared/engine_core.h (cookbook §71: find the already-matched sibling first).
@@ -2332,16 +2325,6 @@ extern s32 func_80135260(s32 arg0, s32 arg1, s16 *arg2, s16 *arg3);
extern void func_8014A1B0(s32 a0, s32 a1); extern void func_8014A1B0(s32 a0, s32 a1);
extern u8 D_801202A0[]; extern u8 D_801202A0[];
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
#include "../shared/ov/func_8014A048.h" #include "../shared/ov/func_8014A048.h"
@@ -2400,13 +2383,6 @@ typedef struct {
#include "../shared/ov/func_8014A71C.h" #include "../shared/ov/func_8014A71C.h"
typedef struct
{
u16 x;
u16 y;
u16 z;
u16 w;
} V4_8014A738;
@@ -2969,14 +2945,6 @@ void func_8014D738(void)
#include "../shared/ov/func_8014D790.h" #include "../shared/ov/func_8014D790.h"
typedef Unkstruct_800B5CB8 Ent_8014D820;
typedef struct
{
u16 x;
u16 y;
u16 z;
u16 w;
} V4_8014D820;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (304/304), symcheck SYMS-OK 12/12, and the whole-TU cc1 stage now compiles CLEAN // @unstuck(P36): none — MATCH (304/304), symcheck SYMS-OK 12/12, and the whole-TU cc1 stage now compiles CLEAN
@@ -3872,13 +3840,6 @@ s32 func_801506A4(s32 arg0, s32 arg1) {
#include "../shared/ov/func_801508F8.h" #include "../shared/ov/func_801508F8.h"
typedef struct
{
u16 x;
u16 y;
u16 z;
u16 w;
} V4_8015094C;
extern s32 func_80021174(s32 a0, s32 a1); extern s32 func_80021174(s32 a0, s32 a1);
@@ -4596,10 +4557,6 @@ extern void *memcpy(void *dst, const void *src, u32 n);
extern s32 func_80133784(s32 arg0, void *arg1, s32 arg2); extern s32 func_80133784(s32 arg0, void *arg1, s32 arg2);
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
#include "../shared/ov/func_801539F8.h" #include "../shared/ov/func_801539F8.h"
-14
View File
@@ -1,20 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
-14
View File
@@ -1,20 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
-14
View File
@@ -1,20 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
-14
View File
@@ -1,20 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
-14
View File
@@ -1,20 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
-33
View File
@@ -1,20 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -8306,25 +8292,6 @@ void func_80168D94(int a0) {
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
extern s32 func_80016A5C(); extern s32 func_80016A5C();
-33
View File
@@ -1,39 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
-75
View File
@@ -1,39 +1,6 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -3032,12 +2999,6 @@ LOOP:
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (94/94 ins, match_one relocation-masked) // @unstuck(P36): none — MATCH (94/94 ins, match_one relocation-masked)
@@ -3159,12 +3120,6 @@ int func_8016B834(int param_1, int param_2) {
#include "../shared/ov/func_8016B984.h" #include "../shared/ov/func_8016B984.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
// @class: regalloc-order // @class: regalloc-order
// @unstuck(P36): none — MATCH (result is func_8012EFB8's return saved in $s0 across the func_80015954 call; the save-move fills the 2nd call's delay slot. func_80015954's return is discarded.) // @unstuck(P36): none — MATCH (result is func_8012EFB8's return saved in $s0 across the func_80015954 call; the save-move fills the 2nd call's delay slot. func_80015954's return is discarded.)
@@ -3515,12 +3470,6 @@ void func_8016C188(s32 param)
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH (44 ins; pins $s0/$s1 + hoist call-arg into a temp so its load fills the buf-store delay slot) // @unstuck(P36): none — MATCH (44 ins; pins $s0/$s1 + hoist call-arg into a temp so its load fills the buf-store delay slot)
@@ -3734,12 +3683,6 @@ void func_8016CB84(void *a0) {
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
extern s32 func_80017758(void *a0, void *a1); extern s32 func_80017758(void *a0, void *a1);
short func_8016CBC0(void) short func_8016CBC0(void)
@@ -4676,12 +4619,6 @@ void func_8016EAC0(Wave *param_1)
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
// @class: loose-typing // @class: loose-typing
// @unstuck(P36): none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff) // @unstuck(P36): none — MATCH (u8 v + 0xFF emits addiu 0xFF; v-1 would emit -1/0xffff)
@@ -4728,12 +4665,6 @@ void func_8016EBA8(u8 *param_1)
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
extern void func_80017B98(void *a0); extern void func_80017B98(void *a0);
@@ -4863,12 +4794,6 @@ void func_8016ED6C(void) {
#include "../shared/ov/func_8016F1AC.h" #include "../shared/ov/func_8016F1AC.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
// @class: schedule // @class: schedule
// @unstuck(P36): none — MATCH // @unstuck(P36): none — MATCH
-112
View File
@@ -1,82 +1,7 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -3595,7 +3520,6 @@ extern s16 D_80126B3E;
extern s16 D_80126B40; extern s16 D_80126B40;
void func_801734BC(s32 a0, s32 a1); void func_801734BC(s32 a0, s32 a1);
typedef struct { u32 a; u32 b; } __attribute__((packed, aligned(1))) Unaligned8;
#include "../shared/ov/func_801733FC.h" #include "../shared/ov/func_801733FC.h"
@@ -4220,12 +4144,6 @@ void func_80175AB8(param_1)
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80175DA8;
/* size 0x0C */ /* size 0x0C */
extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2); extern u32 *func_8017742C(u32 *a0, s32 a1, s32 a2);
@@ -4361,12 +4279,6 @@ void func_80175DA8(param_1)
#include "../shared/ov/func_80176144.h" #include "../shared/ov/func_80176144.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176218;
// @class: regalloc-order // @class: regalloc-order
@@ -4602,12 +4514,6 @@ L63C:
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176734;
void func_80176734(s32 param_1) void func_80176734(s32 param_1)
{ {
@@ -4889,12 +4795,6 @@ Ltail:
#include "../shared/ov/func_80177AD4.h" #include "../shared/ov/func_80177AD4.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177B5C;
/* func_80177B5C - MATCH (147/147 ins), wave23. /* func_80177B5C - MATCH (147/147 ins), wave23.
* *
@@ -5055,12 +4955,6 @@ s16 y;
} }
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177DA8;
void func_80177DA8(p, v, idx) void func_80177DA8(p, v, idx)
@@ -5190,12 +5084,6 @@ void func_80178840(int param_1)
#include "../shared/ov/func_801788B8.h" #include "../shared/ov/func_801788B8.h"
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80178970;
// @class: regalloc-order // @class: regalloc-order
// @stuck: none — MATCH (result pinned to $v0 forces call-result copy to $v1 + delay-slot zero) // @stuck: none — MATCH (result pinned to $v0 forces call-result copy to $v1 + delay-slot zero)
-112
View File
@@ -1,119 +1,7 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
typedef struct { u32 a; u32 b; } __attribute__((packed, aligned(1))) Unaligned8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80175DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176218;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176734;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177B5C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80178970;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
+1 -222
View File
@@ -1,119 +1,7 @@
#include "common.h" #include "common.h"
#include "../shared/engine_prelude.h" #include "../shared/engine_prelude.h"
typedef struct {
/* 0x00 */ s16 a30;
/* 0x02 */ s16 a2e;
/* 0x04 */ s16 a2c;
/* 0x06 */ s16 pad06;
/* 0x08 */ s32 buf[2];
/* 0x10 */ s16 a20;
/* 0x12 */ s16 a1e;
/* 0x14 */ s16 a1c;
} Loc_8014A048;
typedef struct {
u16 f0, f2, f4;
s16 f6;
} Blk801539F8;
typedef struct {
u16 f00;
u16 f02;
u16 f04;
u16 pad06;
u16 f08;
u16 f0A;
u16 f0C;
u16 pad0E;
u8 f10;
u8 f11;
u8 f12;
u8 pad13;
u8 f14;
u8 f15;
u8 f16;
u8 pad17;
u32 f18;
} S1_80168F40;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B6BC;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016B9F8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016C2C4;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016CBC0;
typedef void (*Handler)(struct Entry *); typedef void (*Handler)(struct Entry *);
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EB3C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016EC0C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8016F1C4;
typedef struct { u32 a; u32 b; } __attribute__((packed, aligned(1))) Unaligned8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80175DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176218;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80176734;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177B5C;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80177DA8;
typedef struct {
SVECTOR v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80178970;
extern void func_80128288(void); extern void func_80128288(void);
extern void func_80128158(void); extern void func_80128158(void);
extern void func_801285E4(void); extern void func_801285E4(void);
@@ -3653,7 +3541,6 @@ extern s32 func_8017ADE8(s32 a0);
extern s32 func_8017AE08(void); extern s32 func_8017AE08(void);
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974;
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2); extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
extern void func_8012B178(s32 a0, s32 a1); extern void func_8012B178(s32 a0, s32 a1);
@@ -3800,7 +3687,6 @@ void func_8017B1D8(void) {
extern void func_8012A018(s32 a, s32 b); extern void func_8012A018(s32 a, s32 b);
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017B238;
// @class: regalloc-order — simplified sibling of matched func_8017B614. // @class: regalloc-order — simplified sibling of matched func_8017B614.
// @unstuck(P36): none. Block-moves are align-1 struct-assigns (u8[8]) -> emit_block_move // @unstuck(P36): none. Block-moves are align-1 struct-assigns (u8[8]) -> emit_block_move
@@ -4158,9 +4044,6 @@ void func_8017B940(void)
} }
typedef struct { s16 vx, vy; } DVEC2_C974_8017BA3C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BA3C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C974_8017BA3C;
// @class: struct // @class: struct
@@ -4214,7 +4097,6 @@ void func_8017BA3C(s32 param_1, s32 param_2)
extern void func_8004914C(void *a0); extern void func_8004914C(void *a0);
extern void func_800491AC(void *a0); extern void func_800491AC(void *a0);
extern void func_80049CAC(s32 a0, s32 a1); extern void func_80049CAC(s32 a0, s32 a1);
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C974_8017BB34;
@@ -4985,12 +4867,6 @@ void func_8017CD10(void *a0) {
#include "../shared/ov/func_8017CDF8__6241b634.h" #include "../shared/ov/func_8017CDF8__6241b634.h"
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017CE7C;
/* func_8017CE7C — entity tick with a two-mode "hit/shake" arm. /* func_8017CE7C — entity tick with a two-mode "hit/shake" arm.
@@ -5022,12 +4898,6 @@ void func_8017CFE4(int param_1)
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017D030;
/* func_8017D030 — 4-point primitive sweep driven by the 44-byte curve table /* func_8017D030 — 4-point primitive sweep driven by the 44-byte curve table
@@ -5152,12 +5022,6 @@ void func_8017D030(int param_1);
#include "../shared/ov/func_8017D428__db524090.h" #include "../shared/ov/func_8017D428__db524090.h"
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017D4B4;
/* §71 sibling-first: the state-machine "tick" shape of func_8017C610 / func_8017F2E0 /* §71 sibling-first: the state-machine "tick" shape of func_8017C610 / func_8017F2E0
* (src/ov_SC03_119/ov_SC03_119_jr_8017AE2C.c L3712) — read the frame counter at * (src/ov_SC03_119/ov_SC03_119_jr_8017AE2C.c L3712) — read the frame counter at
@@ -5250,12 +5114,6 @@ void func_8017D6CC(void *a0)
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017D728;
#include "../shared/ov/func_8017D728__81ba1d70.h" #include "../shared/ov/func_8017D728__81ba1d70.h"
@@ -5946,27 +5804,6 @@ void func_8017ED68(s32 arg0) {
extern s16 D_80126940; extern s16 D_80126940;
typedef struct {
s16 pad00[4];
s32 f08;
s32 f0C;
s32 f10;
s32 f14;
s16 f18;
s16 f1A;
s16 f1C;
s16 pad1E;
s16 f20;
s16 f22;
s16 f24;
s16 pad26;
s16 f28;
s16 f2A;
s16 f2C;
s16 f2E;
s16 f30;
s16 f32;
} St_8017ED90;
extern s32 func_8017EEC4(s32 arg0, void *arg1); extern s32 func_8017EEC4(s32 arg0, void *arg1);
extern s32 func_800130D0(s32 arg0, s32 arg1, s32 arg2); extern s32 func_800130D0(s32 arg0, s32 arg1, s32 arg2);
@@ -6627,15 +6464,6 @@ void func_8017F9C8(void *a0) {
} }
} }
typedef struct {
u16 x, y, z, w;
} V8_8017FBEC;
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017FBEC;
/* func_8017FBEC — ov_SC02_026 / ov_SC02_026_jr_8017C180.c MATCH (237 ins) /* func_8017FBEC — ov_SC02_026 / ov_SC02_026_jr_8017C180.c MATCH (237 ins)
* *
@@ -6841,15 +6669,6 @@ void func_8017FBEC(s32 a0) {
} }
typedef struct {
u16 x, y, z, w;
} V8_8017FFA0;
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8017FFA0;
/* Declarations copied VERBATIM from the TU (ov_SC02_026_jr_8017C180.c): /* Declarations copied VERBATIM from the TU (ov_SC02_026_jr_8017C180.c):
* func_8012B1B4 TU:3931/4008/4455/4529 * func_8012B1B4 TU:3931/4008/4455/4529
@@ -6947,12 +6766,6 @@ void func_8017FFA0(s32 a0) {
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_801801E0;
/* func_801801E0 — ov_SC02_026 jr_8017C180 family exemplar (15 members). /* func_801801E0 — ov_SC02_026 jr_8017C180 family exemplar (15 members).
* *
@@ -7108,15 +6921,6 @@ void func_801801E0(s32 a0) {
} }
typedef struct {
u16 x, y, z, w;
} V8_80180448;
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80180448;
extern void func_8012B1B4(s32 a0, s32 a1); extern void func_8012B1B4(s32 a0, s32 a1);
extern s32 func_8012B8E4(s32 a0, s32 a1); extern s32 func_8012B8E4(s32 a0, s32 a1);
@@ -7180,12 +6984,6 @@ void func_80180448(s32 a0) {
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_801805F0;
/* Declarations copied VERBATIM from the TU (ov_SC02_026_jr_8017C180.c) where they /* Declarations copied VERBATIM from the TU (ov_SC02_026_jr_8017C180.c) where they
* already exist, so the splice introduces no conflicting types: * already exist, so the splice introduces no conflicting types:
@@ -8085,12 +7883,6 @@ void func_801816E8(s32 a0) {
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80181784;
extern void func_8012CBCC(s32 a0); extern void func_8012CBCC(s32 a0);
@@ -8951,12 +8743,6 @@ void func_80182E18(s32 *a0) {
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80182E54;
void func_80182E54(void *a0) void func_80182E54(void *a0)
@@ -8973,12 +8759,6 @@ void func_80182E54(void *a0)
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_80182E84;
extern void func_8012CBCC(s32 a0); extern void func_8012CBCC(s32 a0);
@@ -9342,7 +9122,7 @@ void func_801836D4(void *a0) {
// body) using a locally-named struct type — block-scope externs don't collide with another // body) using a locally-named struct type — block-scope externs don't collide with another
// function's block-scope externs for the same symbol (§S38/D2). // function's block-scope externs for the same symbol (§S38/D2).
typedef struct { s32 w[4]; } LBlk16; /* 16-byte record, block-scoped local name only */ /* 16-byte record, block-scoped local name only */
void func_80183710(void *a0) void func_80183710(void *a0)
{ {
@@ -9429,7 +9209,6 @@ void func_80183904(void *a0) {
#include "common.h" #include "common.h"
typedef struct { s32 w[4]; } B16_local;
extern struct B16 D_800A5EA8; extern struct B16 D_800A5EA8;
extern B16_local D_801C6C2C; extern B16_local D_801C6C2C;
+3 -13
View File
@@ -3451,9 +3451,9 @@ void func_8017DFE8(void *a0) {
* Struct tags are FUNCTION-UNIQUE (…_8017E024) so this draft pastes into the TU with zero * Struct tags are FUNCTION-UNIQUE (…_8017E024) so this draft pastes into the TU with zero
* declaration reconciliation (wave law 8). * declaration reconciliation (wave law 8).
* ------------------------------------------------------------------------------------------ */ * ------------------------------------------------------------------------------------------ */
struct Mtx_8017E024 { s16 m[3][3]; s32 t[3]; }; /* 32 bytes -- PsyQ MATRIX */ /* 32 bytes -- PsyQ MATRIX */
struct SVec_8017E024 { s16 vx, vy, vz, pad; }; /* 8 bytes -- PsyQ SVECTOR */ /* 8 bytes -- PsyQ SVECTOR */
struct Vec_8017E024 { s32 vx, vy, vz, pad; }; /* 16 bytes -- PsyQ VECTOR */ /* 16 bytes -- PsyQ VECTOR */
/* callees -- every name read off the target .s relocation lines (law 1 / 1c) */ /* callees -- every name read off the target .s relocation lines (law 1 / 1c) */
extern void RotMatrixZ(s32 a0, void *a1); extern void RotMatrixZ(s32 a0, void *a1);
@@ -3574,12 +3574,6 @@ void func_8017E25C(s32 a0)
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2); extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
typedef struct {
u16 x; /* 0x0 */
u16 y; /* 0x2 */
u16 z; /* 0x4 */
u16 w; /* 0x6 */
} Vec4h_8017E2F4;
s32 func_8017E2F4(s32 a0, s32 a1) { s32 func_8017E2F4(s32 a0, s32 a1) {
Vec4h_8017E2F4 p1; Vec4h_8017E2F4 p1;
@@ -3852,9 +3846,6 @@ void func_8017E794(void *a0)
* then override on flag<0" -- not an if/else. * then override on flag<0" -- not an if/else.
*/ */
typedef struct { s32 w[8]; } Mat32_8017E910;
typedef struct { s16 a, b, c, d; } SV4_8017E910;
typedef struct { s32 flag; u16 xy[2]; s32 sp1c; } Out_8017E910;
void func_8017E910(void *a0) void func_8017E910(void *a0)
{ {
@@ -4041,7 +4032,6 @@ extern u16 D_8019B5EA[][4]; /* == D_8019B5E4 + 6 : lhu, stride 0x8 */
/* field ORDER (not the call-arg order) reproduces sp+0x18/0x1C/0x20, exactly /* field ORDER (not the call-arg order) reproduces sp+0x18/0x1C/0x20, exactly
* as in the func_8017E910 sibling two definitions up in this TU. */ * as in the func_8017E910 sibling two definitions up in this TU. */
typedef struct { u16 xy[2]; s32 sp1c; s32 flag; } Out_8017EC34;
void func_8017EC34(s32 param_1) void func_8017EC34(s32 param_1)
{ {
+17 -41
View File
@@ -2759,7 +2759,7 @@ void func_8017CE3C(s32 a0) {
} }
typedef struct { short a, b, c; } SV3_80181D44_8017CEF4; /* == the TU's own `SV3` (engine_types.h:612); renamed only because /* == the TU's own `SV3` (engine_types.h:612); renamed only because
typedef struct { s16 vx, vy, vz, pad; } SV_8017D7C0_8017F19C_8017CEF4; /* 8 bytes, align 2 */ typedef struct { s16 vx, vy, vz, pad; } SV_8017D7C0_8017F19C_8017CEF4; /* 8 bytes, align 2 */
/* Callee externs — spellings copied from src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c /* Callee externs — spellings copied from src/ov_SC04_002/ov_SC04_002_jr_8017BEBC.c
@@ -2782,10 +2782,6 @@ extern void func_80165718(s32 a0);
/* 16-byte-stride table at D_801887C0, indexed by the actor's 0xF2 animation/state id /* 16-byte-stride table at D_801887C0, indexed by the actor's 0xF2 animation/state id
* (signed s16); only the table row's first word (offset 0) is read. */ * (signed s16); only the table row's first word (offset 0) is read. */
typedef struct {
s32 f0;
u8 pad[12];
} Tbl16_8018BDE4_8017CEF4;
void func_8017CEF4(s32 a0) { void func_8017CEF4(s32 a0) {
@@ -2959,7 +2955,7 @@ void func_8017D294(void *a0) {
} }
typedef struct { s16 vx, vy, vz, pad; } SV_8017D7C0_8017F19C; /* 8 bytes, align 2 */ /* 8 bytes, align 2 */
extern s32 func_800D21C4(s32 a0, void *a1, s32 a2); extern s32 func_800D21C4(s32 a0, void *a1, s32 a2);
@@ -3112,9 +3108,9 @@ void func_8017D784(void *a0) {
* Vec32 (:1098) -- byte-identical layouts. Renamed here only because match_one * Vec32 (:1098) -- byte-identical layouts. Renamed here only because match_one
* compiles standalone with -Iinclude (engine_core.h is not on that path); on bank, * compiles standalone with -Iinclude (engine_core.h is not on that path); on bank,
* drop these three typedefs and use the TU's own names. */ * drop these three typedefs and use the TU's own names. */
typedef struct { s16 vx, vy, vz, pad; } SV_8017D7C0; /* 8 bytes, align 2 */ /* 8 bytes, align 2 */
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_8017D7C0; /* 0x20 bytes, align 4 */ /* 0x20 bytes, align 4 */
typedef struct { s32 vx, vy, vz, pad; } V32_8017D7C0; /* 16 bytes, align 4 */ /* 16 bytes, align 4 */
/* ov_SC02_041 func_8017D7C0 -- 181 ins, zero-crack family exemplar (reach x4: /* ov_SC02_041 func_8017D7C0 -- 181 ins, zero-crack family exemplar (reach x4:
* ov_SC04_002:8017f19c, ov_SC04_004:8017f65c, ov_SC04_011:8017f340). * ov_SC04_002:8017f19c, ov_SC04_004:8017f65c, ov_SC04_011:8017f340).
@@ -3352,7 +3348,7 @@ void func_8017DB58(s32 a0)
* out of plain sequential C. * out of plain sequential C.
*/ */
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_8017DB80; /* 0x20 bytes, align 4 -- /* 0x20 bytes, align 4 --
byte-identical restatement of this TU's own MTX_8017D7C0 (:3334); renamed only byte-identical restatement of this TU's own MTX_8017D7C0 (:3334); renamed only
because match_one compiles standalone (-Iinclude, no engine_core.h on that because match_one compiles standalone (-Iinclude, no engine_core.h on that
path). On bank, drop this typedef and reuse the TU's own MTX_8017D7C0 name. */ path). On bank, drop this typedef and reuse the TU's own MTX_8017D7C0 name. */
@@ -3694,9 +3690,6 @@ void func_8017E27C(void *a0) {
} }
typedef struct {
s16 v[4];
} Blk8_80126940_8017E2B8;
void func_8017E2B8(s32 a0) { void func_8017E2B8(s32 a0) {
@@ -4715,9 +4708,8 @@ void func_8017F314(int a, s16 *b, SVECTOR_8017E6D8 *c, SVECTOR_8017E6D8 *d,
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_8017D7C0_8017F19C_8017F690; /* 0x20 bytes, align 4 */ /* 0x20 bytes, align 4 */
typedef struct { u16 x, y, z, w; } V8_80181368_8017F690;
extern s32 func_8004787C(s32 a0); extern s32 func_8004787C(s32 a0);
extern s32 func_80047948(s32 a0); extern s32 func_80047948(s32 a0);
@@ -4757,7 +4749,7 @@ s32 func_8017F690(s32 a0, s32 a1) {
} }
typedef struct { short a, b, c; } SV3_80181D44_8017CEF4_8017F81C; /* == the TU's own `SV3` (engine_types.h:612); renamed only because /* == the TU's own `SV3` (engine_types.h:612); renamed only because
/* Declarations conform VERBATIM to the ones already present in this TU /* Declarations conform VERBATIM to the ones already present in this TU
* (src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c, lines 6342-6344 / 845 / 2190-2191) * (src/ov_SC04_005/ov_SC04_005_jr_8017BEBC.c, lines 6342-6344 / 845 / 2190-2191)
@@ -4765,9 +4757,8 @@ typedef struct { short a, b, c; } SV3_80181D44_8017CEF4_8017F81C; /* == the TU
* template as this function (same offsets, callees, mask constants) except * template as this function (same offsets, callees, mask constants) except
* for the tail control flow after the second func_80133784 call. */ * for the tail control flow after the second func_80133784 call. */
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_8017D7C0_8017F19C_80182728_8017F81C; /* 0x20 bytes, align 4 */ /* 0x20 bytes, align 4 */
typedef struct { u16 x, y, z, w; } V8_80181368_80182728_8017F81C;
extern s32 func_8004787C(s32 a0); extern s32 func_8004787C(s32 a0);
extern s32 func_80047948(s32 a0); extern s32 func_80047948(s32 a0);
@@ -5210,18 +5201,7 @@ void func_80180228(s32 *a0) {
} }
typedef struct { s16 f0, f2, f4, f6, f8, fA, fC, fE; s32 f10; } St_80182784_80185DA8_8018023C; /* 8 bytes, align 2 */
typedef struct { s16 vx, vy, vz, pad; } SV_8017D7C0_8017F19C_8018023C; /* 8 bytes, align 2 */
typedef struct {
s32 f0;
u8 pad[12];
} Tbl16_8018BDE4_8018023C;
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8018023C;
extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3); extern s32 func_8012D5E4(s32 a0, s32 a1, s32 a2, s32 a3);
extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3); extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3);
@@ -5629,8 +5609,8 @@ void func_80180A5C(int param_1)
typedef struct { s16 a, b, c; } SV3x_80180ACC; /* 6-byte, align-2 triple of s16 */ /* 6-byte, align-2 triple of s16 */
typedef struct { s16 a, b, c, d; } SV4x_80180ACC; /* 8-byte, align-2 quad of s16 */ /* 8-byte, align-2 quad of s16 */
extern void func_8012C218(void *a0); extern void func_8012C218(void *a0);
extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern void func_8012F214(s32 a0, s32 a1, s32 a2);
@@ -6580,7 +6560,6 @@ void func_80181FFC(void *arg0) {
* in this TU via engine_core.h; on banking it may be replaced by that name.) * in this TU via engine_core.h; on banking it may be replaced by that name.)
*/ */
typedef struct { u16 x, y, z, w; } V8_80182044;
extern s32 D_80126B58; extern s32 D_80126B58;
extern s32 D_80126B84; extern s32 D_80126B84;
@@ -6982,7 +6961,6 @@ extern void func_8012A828(s32, void*);
/* Layout-identical to `struct S80190C84` (src/shared/engine_types.h:1337), which IS /* Layout-identical to `struct S80190C84` (src/shared/engine_types.h:1337), which IS
* visible in the destination TU via ../shared/engine_core.h; a fresh tag is used here * visible in the destination TU via ../shared/engine_core.h; a fresh tag is used here
* only so the standalone match_one compile (no engine_core.h on its -I path) works. */ * only so the standalone match_one compile (no engine_core.h on its -I path) works. */
typedef struct { s16 f0, f2, f4, f6, f8, fA, fC, fE; s32 f10; } St_80182784;
extern void ApplyMatrixSV(void *a0, void *a1, void *a2); extern void ApplyMatrixSV(void *a0, void *a1, void *a2);
extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3); extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3);
@@ -7154,7 +7132,6 @@ void func_80182B38(s32 a0) {
* lines 6969-6988): same D_80126B78/D_80126B90/D_801152A8 globals, same * lines 6969-6988): same D_80126B78/D_80126B90/D_801152A8 globals, same
* func_8012F14C / func_80135888 / func_8012F568 call chain. */ * func_8012F14C / func_80135888 / func_8012F568 call chain. */
typedef struct { short vx, vy, vz, pad; } SVec_801861D0_80182BAC;
extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3); extern void func_8012EC04(s32 param_1, s32 param_2, s32 *param_3);
extern void func_8012F14C(s32 a0, s32 a1, s32 a2); extern void func_8012F14C(s32 a0, s32 a1, s32 a2);
@@ -7255,9 +7232,9 @@ s32 func_80182CCC(s32 arg0) {
* (TU:5690) by the already-matched func_80182044 -- confirming the agreed signature. * (TU:5690) by the already-matched func_80182044 -- confirming the agreed signature.
*/ */
typedef struct { short vx, vy, vz, pad; } SV_80182D80; /* 8 bytes, align 2 */ /* 8 bytes, align 2 */
typedef struct { short m[3][3]; long t[3]; } MTX_80182D80; /* 0x20 bytes, align 4 */ /* 0x20 bytes, align 4 */
typedef struct { s32 vx, vy, vz, pad; } V32_80182D80; /* 16 bytes, align 4 */ /* 16 bytes, align 4 */
extern s32 D_80126B58; extern s32 D_80126B58;
extern s32 D_80126B68; extern s32 D_80126B68;
@@ -7434,7 +7411,7 @@ void func_80183014(s32 a0) {
extern s32 func_80132EF4(s32 a0, s32 a1); extern s32 func_80132EF4(s32 a0, s32 a1);
typedef struct { short a, b, c; } SV3_80181D44_8018317C; /* == the TU's own `SV3` (engine_types.h:612); renamed only because /* == the TU's own `SV3` (engine_types.h:612); renamed only because
extern s32 func_80132EF4(s32 a0, s32 a1); extern s32 func_80132EF4(s32 a0, s32 a1);
extern s32 rand(void); extern s32 rand(void);
@@ -8234,7 +8211,7 @@ void func_80183FE0(s32 a0, s32 a1, s32 a2)
} }
typedef struct { s16 vx, vy, vz, pad; } SV_8017D7C0_8017F19C_8018428C; /* 8 bytes, align 2 */ /* 8 bytes, align 2 */
/* func_8018428C (ov_SC04_002, ov_SC04_002_jr_8017BEBC, 83 ins) /* func_8018428C (ov_SC04_002, ov_SC04_002_jr_8017BEBC, 83 ins)
* *
@@ -8314,7 +8291,6 @@ void func_8018428C(s32 a0, s32 a1, s32 a2, void *a3)
#include "common.h" #include "common.h"
typedef struct { u32 addr : 24; u32 len : 8; } PTag_801843D8;
extern u8 *D_800A5E60; extern u8 *D_800A5E60;
extern u8 D_800A6610[]; extern u8 D_800A6610[];
@@ -3991,7 +3991,6 @@ extern s32 func_8012B744(void *a0, void *a1);
extern s32 func_8012B608(s32 a0, s32 a1, s32 a2); extern s32 func_8012B608(s32 a0, s32 a1, s32 a2);
extern s16 D_80191020; extern s16 D_80191020;
typedef struct { s16 vx, vy, vz, pad; } TmpVec_8017DCE4;
void func_8017DCE4(s32 a0) void func_8017DCE4(s32 a0)
{ {
@@ -9,7 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { s16 vx, vy, vz, pad; } TmpVec_8017DCE4;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
+3 -17
View File
@@ -3743,24 +3743,10 @@ s32 func_8018AEE8(void) {
* `extern short D_800B9A02` canon (§37); 864 sites already use that spelling. * `extern short D_800B9A02` canon (§37); 864 sites already use that spelling.
*/ */
typedef struct { u32 addr : 24; u32 len : 8; } PTag_S40_8018B238; /* 0x14 stride */
typedef struct { u32 w; } W_S40_8018B238; /* 0x02 stride */
typedef struct { u32 *ot; u32 pad[4]; } Env_S40_8018B238; /* 0x14 stride */
typedef struct { s16 v; } Flag_S40_8018B238; /* 0x02 stride */
typedef struct Panel_S40_8018B238 { /* 0x20 stride */
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 */
void *f18; /* 0x18 */
void *f1C; /* 0x1C */
} Panel_S40_8018B238; /* 0x20 stride */
+3 -30
View File
@@ -9,23 +9,9 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { u32 addr : 24; u32 len : 8; } PTag_S40_8018B238; /* 0x14 stride */
typedef struct { u32 w; } W_S40_8018B238; /* 0x02 stride */
typedef struct { u32 *ot; u32 pad[4]; } Env_S40_8018B238; /* 0x14 stride */ /* 0x20 stride */
typedef struct { s16 v; } Flag_S40_8018B238; /* 0x02 stride */
typedef struct Panel_S40_8018B238 {
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 */
void *f18; /* 0x18 */
void *f1C; /* 0x1C */
} Panel_S40_8018B238; /* 0x20 stride */
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -3172,12 +3158,6 @@ extern s32 *func_8018BCD4(s32 *, void *, s32, void *, s32);
extern s32 func_8018B644(void *, s32, s32, s32, s32 *); extern s32 func_8018B644(void *, s32, s32, s32, s32 *);
extern s32 * func_8018B478(s32 *ot, Panel_8017E978_8018B478 *w0, s16 idx); extern s32 * func_8018B478(s32 *ot, Panel_8017E978_8018B478 *w0, s16 idx);
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_8018B8DC;
/* func_8018B8DC — ov_SC04_018 / ov_SC04_018_jr_801878E8, 254 ins, jtbl_801E599C (8 entries, /* func_8018B8DC — ov_SC04_018 / ov_SC04_018_jr_801878E8, 254 ins, jtbl_801E599C (8 entries,
* minval 7 -> `addiu $a0,$a0,-7` + HImode re-extension, so the switch index type is short). * minval 7 -> `addiu $a0,$a0,-7` + HImode re-extension, so the switch index type is short).
@@ -4301,13 +4281,6 @@ extern s32 D_801EB594;
extern u32 D_801EB5A8; extern u32 D_801EB5A8;
extern s32 D_801EB6D8; extern s32 D_801EB6D8;
typedef struct {
s16 field_0;
s16 field_2;
s32 field_4;
s32 field_8;
s32 field_C;
} Struct801EF318;
extern Struct801EF318 D_801EF318; extern Struct801EF318 D_801EF318;
@@ -3133,12 +3133,6 @@ void func_8017E6CC(void *a0) {
} }
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_8017E708;
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2); extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
@@ -3417,7 +3411,6 @@ void func_8017EBD0(void *a0) {
#include "common.h" #include "common.h"
/* identical layout to SVECTOR_8016E7C8 (src/shared/engine_types.h) */ /* identical layout to SVECTOR_8016E7C8 (src/shared/engine_types.h) */
typedef struct { short vx, vy, vz, pad; } SVEC_8017EC98;
void func_8017EC98(SVEC_8017EC98 *p0, SVEC_8017EC98 *p1) { void func_8017EC98(SVEC_8017EC98 *p0, SVEC_8017EC98 *p1) {
/* conform to the TU's file-scope canon (`extern void func_8012EF70(s32, s32);`) /* conform to the TU's file-scope canon (`extern void func_8012EF70(s32, s32);`)
@@ -3560,7 +3553,6 @@ void func_8017F200(s32 arg0) {
} }
typedef struct { short vx, vy, vz, pad; } SVFD98;
@@ -9,13 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_8017E708;
typedef struct { short vx, vy, vz, pad; } SVEC_8017EC98;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -9,13 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_8017E708;
typedef struct { short vx, vy, vz, pad; } SVEC_8017EC98;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -9,13 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_8017E708;
typedef struct { short vx, vy, vz, pad; } SVEC_8017EC98;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -9,7 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { short vx, vy, vz, pad; } SVEC_8017EC98;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
-11
View File
@@ -3352,13 +3352,11 @@ extern void func_80146C3C(u8 *a0);
#include "../shared/ov/func_8017BFA4.h" #include "../shared/ov/func_8017BFA4.h"
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017C3EC(u16 *a0, void *a1); extern void func_8017C3EC(u16 *a0, void *a1);
@@ -3406,15 +3404,6 @@ void func_8017C688(s32 a0, s32 a1) {
} }
typedef struct { u32 w0, w1, w2; } Prim126;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; Prim126 *prim, *end; } Cell126;
typedef struct { s16 vx, vy; } DVEC2_C6F4;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C6F4;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C6F4;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C6F4;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C6F4;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C6F4;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C6F4;
void func_8017C6F4(s32 arg0) void func_8017C6F4(s32 arg0)
+5 -43
View File
@@ -6347,8 +6347,6 @@ extern s32 func_80181228(); // K&R: 0/1 of 1 args (P37 rung D t4_D2)
* scratch dir. These local names exist ONLY to let this file compile standalone under * scratch dir. These local names exist ONLY to let this file compile standalone under
* match_one; the host TU already includes engine_core.h and has the real MATRIX/SVECTOR types. * match_one; the host TU already includes engine_core.h and has the real MATRIX/SVECTOR types.
* Layout: m[3][3] (18B) + 2B pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */ * Layout: m[3][3] (18B) + 2B pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */
typedef struct { s16 m[3][3]; s32 t[3]; } MATRIX_80181228;
typedef struct { s16 vx, vy, vz, pad; } SVECTOR_80181228;
extern s32 D_80126B58; extern s32 D_80126B58;
extern s16 D_80190814[]; extern s16 D_80190814[];
@@ -6582,12 +6580,6 @@ void func_8018189C(void *a0) {
#include "common.h" #include "common.h"
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_801818D8;
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2); extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
@@ -6976,16 +6968,6 @@ void func_80181FC4(void *arg0) {
Statement order `q = &prim;` then `vz = 3;` is what puts the `li` after Statement order `q = &prim;` then `vz = 3;` is what puts the `li` after
`sw $s0` / `addiu $s0,$sp,0x10`; swapping them costs 3 instructions. */ `sw $s0` / `addiu $s0,$sp,0x10`; swapping them costs 3 instructions. */
typedef struct {
s16 v[4][4];
s16 t[4][2];
s32 f30;
s32 f34;
s32 f38;
s32 f3C;
s32 f40;
u8 f44;
} Prim_80182080;
extern void func_800178EC(s32 a0); extern void func_800178EC(s32 a0);
@@ -10516,19 +10498,11 @@ extern s32 func_80047948(s32 a0);
extern void func_80049CAC(s32 a0, s32 a1); extern void func_80049CAC(s32 a0, s32 a1);
extern void func_8012B414(int a0); extern void func_8012B414(int a0);
extern void func_8012C218(void *a0); extern void func_8012C218(void *a0);
typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017F67C_801869CC;
typedef struct { u8 d[4]; } Blk4_8017CE90_8017F32C_801869CC;
typedef struct { s16 vx, vy, vz, pad; } SVec8_8018E8A0_801869CC; /* 0x08 */ /* 0x08 */
typedef struct { s32 vx, vy, vz, pad; } Vec16_8018E8A0_801869CC; /* 0x10 */ /* 0x10 */
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } Mtx_8018E8A0_801869CC; /* 0x20 */ /* 0x20 */
typedef struct { s16 f[0x86]; } Cnt_8018E8A0_801869CC; /* 0x38 */
typedef struct {
SVec8_8018E8A0_801869CC v[4]; /* 0x00 */
u32 c[4]; /* 0x20 */
s32 code; /* 0x30 */
s32 pad; /* 0x34 */
} Prim_8018E8A0_801869CC; /* 0x38 */
void func_801869CC(void *a0) void func_801869CC(void *a0)
{ {
@@ -11279,7 +11253,6 @@ void func_801879C4(void *a0) {
} }
typedef struct { u8 d[4]; } Blk4_8017CE90_8017F32C_80184FF0_80187A9C;
extern s32 func_80047D3C(s32 a0); extern s32 func_80047D3C(s32 a0);
@@ -11551,9 +11524,7 @@ void func_801880A8(s32 param_1) {
} }
typedef struct { s16 vx, vy, vz, pad; } SVec8_8018E8A0_80184FF0_80188134; /* 0x08 */ /* 0x08 */
typedef struct { u8 d[4]; } Blk4_8017CE90_8017F32C_80184FF0_80188134;
typedef struct { s16 vx; u16 vy; s16 vz, pad; } SVec_8017F67C_80184FF0_80188134;
/* ov_SC03_029 :: func_80188134 (0x80186758, 183 ins) /* ov_SC03_029 :: func_80188134 (0x80186758, 183 ins)
* *
@@ -12070,8 +12041,6 @@ s32 func_80188A94(s32 a0) {
/* match_one's standalone common.h does not reach src/shared/engine_types.h, where the /* match_one's standalone common.h does not reach src/shared/engine_types.h, where the
* real TU's Blk20 { s32 w[8]; } and Vec32 { s32 vx, vy, vz, pad; } live. Local copies here; * real TU's Blk20 { s32 w[8]; } and Vec32 { s32 vx, vy, vz, pad; } live. Local copies here;
* integrator may drop these and reuse the TU's own (engine_types.h:472, :1098). */ * integrator may drop these and reuse the TU's own (engine_types.h:472, :1098). */
typedef struct { s32 w[8]; } Blk20_80188AF4;
typedef struct { s32 vx, vy, vz, pad; } Vec32_80188AF4;
void func_80188AF4(s32 a0, s32 a1) { void func_80188AF4(s32 a0, s32 a1) {
extern s32 func_8012B864(s32 a0); extern s32 func_8012B864(s32 a0);
@@ -12382,12 +12351,6 @@ void func_80189194(s32 a0)
} }
typedef struct {
SVECTOR_8016E7C8 v[4]; /* 0x00 */
s32 f0, f1, f2, f3, f4, f5; /* 0x20..0x37 */
u8 f6; /* 0x38 */
u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8_801891DC;
extern s32 func_8012B8E4(s32 arg0, s32 arg1); extern s32 func_8012B8E4(s32 arg0, s32 arg1);
extern s32 func_8012BEE8(s32 a0); extern s32 func_8012BEE8(s32 a0);
@@ -13402,7 +13365,6 @@ s32 func_8018A698(s32 a0) {
typedef struct { s16 a, b, c; } SV3_80184C98;
/* func_8018A6F4 -- same-class neighbour push-away over the 0x60-entry / /* func_8018A6F4 -- same-class neighbour push-away over the 0x60-entry /
* 0x10C-stride entity table D_801202A0. Banked twin: ov_SC06_018:func_80187320 * 0x10C-stride entity table D_801202A0. Banked twin: ov_SC06_018:func_80187320
-18
View File
@@ -3305,7 +3305,6 @@ void func_8017BE60(void *a0) {
#include "common.h" #include "common.h"
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017C294(u16 *a0, void *a1); extern void func_8017C294(u16 *a0, void *a1);
@@ -3348,16 +3347,7 @@ extern void func_8017C530(s32 a0, s32 a1);
* cell $t3 naturally once the bbox block allocates right. * cell $t3 naturally once the bbox block allocates right.
*/ */
typedef struct { u32 w0, w1, w2; } PrimC59C;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimC59C *prim, *end; } CellC59C;
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
@@ -4158,7 +4148,6 @@ void func_8017DCA4(void) {
} }
typedef struct { char c[8]; } Blk8_8017DCF4;
extern s16 D_801274E8; extern s16 D_801274E8;
extern s16 D_8018BC30; extern s16 D_8018BC30;
@@ -4212,8 +4201,6 @@ extern void func_8017DE40(); // K&R: 0/1 of 1 args (P37 rung D t4_D2)
} }
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_8017DE40;
typedef struct { s16 a, b, c, d; } SV4_8017DE40;
extern s32 D_80126B58; extern s32 D_80126B58;
extern s16 D_8018BC3C[]; extern s16 D_8018BC3C[];
@@ -4706,7 +4693,6 @@ extern void func_8012B0B4(unsigned int *param_1, int param_2, int param_3);
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
extern void func_8017EC90(s32 a0, s32 a1); extern void func_8017EC90(s32 a0, s32 a1);
typedef struct { s16 vx, vy, vz, pad; } SVEC_E83C;
s32 func_8017E83C(s32 arg0) { s32 func_8017E83C(s32 arg0) {
extern u8 D_801202A0[]; extern u8 D_801202A0[];
@@ -4802,8 +4788,6 @@ s32 func_8017EA04(s32 arg0) {
/* bodies identical to engine_types.h's MTX / SV4; per-function names per the /* bodies identical to engine_types.h's MTX / SV4; per-function names per the
* *_<addr> house convention (law 8: same name => same body, else a new name). */ * *_<addr> house convention (law 8: same name => same body, else a new name). */
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_8017EA48;
typedef struct { s16 a, b, c, d; } SV4_8017EA48;
extern MTX_8017EA48 D_800AE620; extern MTX_8017EA48 D_800AE620;
extern SV4_8017EA48 D_8018BD34[]; extern SV4_8017EA48 D_8018BD34[];
@@ -5615,7 +5599,6 @@ void func_8017FBA0(s32 a0) {
#include "common.h" #include "common.h"
typedef struct { s16 a, b, c, d; } SV4_FC6C;
extern s32 *D_80126B78; extern s32 *D_80126B78;
extern u8 D_8018BE48[]; extern u8 D_8018BE48[];
@@ -5823,7 +5806,6 @@ tail:
* decl_prior modal fleet spelling is used directly. * decl_prior modal fleet spelling is used directly.
*/ */
typedef struct { s16 vx, vy, vz, pad; } SVEC_80064;
extern s32 func_8012BC60(void *a0, void *a1); extern s32 func_8012BC60(void *a0, void *a1);
extern s32 func_8012B6D4(s16 *a0, s16 *a1); extern s32 func_8012B6D4(s16 *a0, s16 *a1);
+1 -21
View File
@@ -9,23 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { u32 w0, w1, w2; } PrimC59C;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimC59C *prim, *end; } CellC59C;
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
typedef struct { char c[8]; } Blk8_8017DCF4;
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_8017DE40;
typedef struct { s16 a, b, c, d; } SV4_8017DE40;
typedef struct { s16 vx, vy, vz, pad; } SVEC_E83C;
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_8017EA48;
typedef struct { s16 a, b, c, d; } SV4_8017EA48;
typedef struct { s16 a, b, c, d; } SV4_FC6C;
typedef struct { s16 vx, vy, vz, pad; } SVEC_80064;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -3292,8 +3275,7 @@ void func_80182558(void *a0) {
* every $sp displacement was uniformly short by 0x20 until this 32-byte aggregate * every $sp displacement was uniformly short by 0x20 until this 32-byte aggregate
* was declared ahead of them. gcc-2.7.2 assigns a stack slot in expand_decl for * was declared ahead of them. gcc-2.7.2 assigns a stack slot in expand_decl for
* every declared aggregate, used or not. Do not delete it. */ * every declared aggregate, used or not. Do not delete it. */
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_8018256C; /* 0x20 */ /* 0x20 */
typedef struct { s16 a, b, c, d; } SV4_8018256C;
extern void func_8004914C(void *a0); /* TU:3117 verbatim */ extern void func_8004914C(void *a0); /* TU:3117 verbatim */
extern void func_800491AC(void *a0); /* TU:3118 verbatim */ extern void func_800491AC(void *a0); /* TU:3118 verbatim */
@@ -4063,14 +4045,12 @@ void func_80183670(s32 a0, s32 a1, s32 a2, void *a3) {
#include "common.h" #include "common.h"
typedef struct { s16 a, b, c, d; } SV4_801836B8;
/* MATRIX_L48 shape, same as the twin func_8017EA48's MTX local (0x20 bytes). Declared but /* MATRIX_L48 shape, same as the twin func_8017EA48's MTX local (0x20 bytes). Declared but
* NEVER read/written here -- the frame reserves it (empirically required: dropping it shifts * NEVER read/written here -- the frame reserves it (empirically required: dropping it shifts
* every local $sp offset down by 0x20 and shrinks the frame by 0x20, both wrong) but no * every local $sp offset down by 0x20 and shrinks the frame by 0x20, both wrong) but no
* instruction touches it. A leftover from the same source template as func_8017EA48, which * instruction touches it. A leftover from the same source template as func_8017EA48, which
* DOES build and use a local MTX; this sibling calls func_8004914C/func_800491AC on the * DOES build and use a local MTX; this sibling calls func_8004914C/func_800491AC on the
* object's own field pointer instead and simply never deleted the now-dead local. */ * object's own field pointer instead and simply never deleted the now-dead local. */
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_801836B8;
extern s32 D_801270C8[]; extern s32 D_801270C8[];
extern SV4_801836B8 D_8018C524[]; extern SV4_801836B8 D_8018C524[];
+1 -30
View File
@@ -9,27 +9,7 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { u32 w0, w1, w2; } PrimC59C; /* 0x20 */
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimC59C *prim, *end; } CellC59C;
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
typedef struct { char c[8]; } Blk8_8017DCF4;
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_8017DE40;
typedef struct { s16 a, b, c, d; } SV4_8017DE40;
typedef struct { s16 vx, vy, vz, pad; } SVEC_E83C;
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_8017EA48;
typedef struct { s16 a, b, c, d; } SV4_8017EA48;
typedef struct { s16 a, b, c, d; } SV4_FC6C;
typedef struct { s16 vx, vy, vz, pad; } SVEC_80064;
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_8018256C; /* 0x20 */
typedef struct { s16 a, b, c, d; } SV4_8018256C;
typedef struct { s16 a, b, c, d; } SV4_801836B8;
typedef struct { s16 m[3][3]; s16 pad; s32 t[3]; } MTX_801836B8;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -3619,14 +3599,9 @@ void func_80184278(int param_1)
} }
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C_8017D9CC;
typedef struct { s16 vx, vy; } DVEC2_C59C_8017D9CC;
typedef struct {
s16 vx, vy, vz;
} UVec_8017DB64;
void func_80184410(int param_1) void func_80184410(int param_1)
{ {
@@ -3683,7 +3658,6 @@ join:
} }
typedef struct { s16 vx, vy; } DVEC2_C59C_8017DBEC;
@@ -3691,9 +3665,6 @@ extern s32 rand(void);
extern void func_800139C8(s32 a0, void *a1, void *a2); extern void func_800139C8(s32 a0, void *a1, void *a2);
extern s32 D_801EB138; extern s32 D_801EB138;
typedef struct {
s16 vx, vy, vz, pad;
} UVec_8017DED4;
void func_80184560(s32 param_1) void func_80184560(s32 param_1)
{ {
@@ -3019,10 +3019,6 @@ void func_8017DAAC(void) {
typedef struct {
s32 unk00;
s32 unk04;
} Struct_80184C18;
extern Struct_80184C18 D_80183B84[]; extern Struct_80184C18 D_80183B84[];
extern s32 func_80171CC4(void *a0, void *a1); extern s32 func_80171CC4(void *a0, void *a1);
@@ -3638,7 +3634,6 @@ void func_8017E8B0(void *a0) {
typedef struct { u8 c[4]; } Blk4_80180518;
extern u8 D_8019FFA0; extern u8 D_8019FFA0;
extern Blk4_80180518 D_8019FFA4[1]; extern Blk4_80180518 D_8019FFA4[1];
@@ -9,11 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct {
s32 unk00;
s32 unk04;
} Struct_80184C18;
typedef struct { u8 c[4]; } Blk4_80180518;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
+4 -14
View File
@@ -3684,8 +3684,8 @@ extern void func_8017E3F0(); // K&R: 0 of 1 args (P37 rung D t4_D2)
* do NOT adopt the seed's typedef names, only their layout; the destination TU's * do NOT adopt the seed's typedef names, only their layout; the destination TU's
* shared headers ("../shared/engine_core.h") carry identical-layout types but under * shared headers ("../shared/engine_core.h") carry identical-layout types but under
* different names, so a locally-scoped name collides with nothing. */ * different names, so a locally-scoped name collides with nothing. */
typedef struct { short m[3][3]; long t[3]; } Mtx_8017E3F0; /* 0x20; .t @ +0x14 */ /* 0x20; .t @ +0x14 */
typedef struct { short vx, vy, vz, pad; } Sv_8017E3F0; /* 0x08 */ /* 0x08 */
/* TU-verified declarations (src/ov_SC03_011/ov_SC03_011_jr_8017C730.c) */ /* TU-verified declarations (src/ov_SC03_011/ov_SC03_011_jr_8017C730.c) */
extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2); extern s32 func_80012C6C(s32 a0, s32 a1, s32 a2);
@@ -4135,9 +4135,7 @@ void func_8017EB88(s32 arg0) {
#include "common.h" #include "common.h"
/* 0x20-byte matrix block (MATRIX-shaped) copied wholesale from D_800AE620 */ /* 0x20-byte matrix block (MATRIX-shaped) copied wholesale from D_800AE620 */
typedef struct { s32 w[8]; } Blk32_8017ECD4;
/* 0x10-byte vector block (VECTOR-shaped) */ /* 0x10-byte vector block (VECTOR-shaped) */
typedef struct { s32 w[4]; } Blk16_8017ECD4;
/* 8-byte record x4 @0x801853A8 (tail.data.s 8192-8215). The data split gave each /* 8-byte record x4 @0x801853A8 (tail.data.s 8192-8215). The data split gave each
* halfword of record 0 its own dlabel (D_801853A8/AA/AC/AE), so the target's .s shows * halfword of record 0 its own dlabel (D_801853A8/AA/AC/AE), so the target's .s shows
@@ -4146,7 +4144,6 @@ typedef struct { s32 w[4]; } Blk16_8017ECD4;
* loop.c strength-reduce the i*8 offset into the single giv the target keeps in $s1 -- * loop.c strength-reduce the i*8 offset into the single giv the target keeps in $s1 --
* four separate `extern u16 D_8018.. []` arrays produce an ADDRESS giv for the first * four separate `extern u16 D_8018.. []` arrays produce an ADDRESS giv for the first
* access plus an inline `sll a0,i,3` for the rest (-1 ins, wrong preheader). */ * access plus an inline `sll a0,i,3` for the rest (-1 ins, wrong preheader). */
typedef struct { u16 f0, f2, f4; s16 f6; } Rec_8017ECD4;
extern Blk32_8017ECD4 D_800AE620; extern Blk32_8017ECD4 D_800AE620;
extern Blk16_8017ECD4 D_801A0E44; extern Blk16_8017ECD4 D_801A0E44;
@@ -4285,12 +4282,6 @@ void func_8017F110(void *a0) {
#include "common.h" #include "common.h"
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_8017F14C;
extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2); extern s32 func_8012DEB8(s32 a0, s32 a1, s32 a2);
@@ -4385,8 +4376,8 @@ extern void func_800484EC(s32 a0, s32 a1, s32 a2);
/* Local stack-frame shapes declared under this function's own address (law 1b). /* Local stack-frame shapes declared under this function's own address (law 1b).
* sp+0x10: 0x20-byte matrix block, filled by func_80049CAC, consumed by func_800484EC. * sp+0x10: 0x20-byte matrix block, filled by func_80049CAC, consumed by func_800484EC.
* sp+0x30: 12-byte vector block -- the target emits word stores only, so s32 members. */ * sp+0x30: 12-byte vector block -- the target emits word stores only, so s32 members. */
typedef struct { s32 w[8]; } Mtx_8017F370; /* 0x20 */ /* 0x20 */
typedef struct { s32 f0, f4, f8; } Vec12_8017F370; /* 0x0C */ /* 0x0C */
void func_8017F370(s32 arg0) { void func_8017F370(s32 arg0) {
Mtx_8017F370 m; /* sp+0x10 */ Mtx_8017F370 m; /* sp+0x10 */
@@ -4948,7 +4939,6 @@ void func_8018009C(u8 *a0) {
} }
typedef struct { u32 w0; u32 w1; } __attribute__((packed, aligned(1))) Blk8_801800F8;
extern Blk8_801800F8 D_801A0E64; extern Blk8_801800F8 D_801A0E64;
extern void func_8012F214(s32 a0, s32 a1, s32 a2); extern void func_8012F214(s32 a0, s32 a1, s32 a2);
extern void func_80015954(s32 a0, s32 a1); extern void func_80015954(s32 a0, s32 a1);
+4 -14
View File
@@ -9,20 +9,10 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct { short m[3][3]; long t[3]; } Mtx_8017E3F0; /* 0x20; .t @ +0x14 */ /* 0x20; .t @ +0x14 */
typedef struct { short vx, vy, vz, pad; } Sv_8017E3F0; /* 0x08 */ /* 0x08 */
typedef struct { s32 w[8]; } Blk32_8017ECD4; /* 0x20 */
typedef struct { s32 w[4]; } Blk16_8017ECD4; /* 0x0C */
typedef struct { u16 f0, f2, f4; s16 f6; } Rec_8017ECD4;
typedef struct {
/* 0x0 */ u16 x;
/* 0x2 */ u16 y;
/* 0x4 */ u16 z;
/* 0x6 */ u16 w;
} Vec4h_8017F14C;
typedef struct { s32 w[8]; } Mtx_8017F370; /* 0x20 */
typedef struct { s32 f0, f4, f8; } Vec12_8017F370; /* 0x0C */
typedef struct { u32 w0; u32 w1; } __attribute__((packed, aligned(1))) Blk8_801800F8;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
-10
View File
@@ -3308,7 +3308,6 @@ void func_8017BE60(void *a0) {
#include "common.h" #include "common.h"
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017C294(u16 *a0, void *a1); extern void func_8017C294(u16 *a0, void *a1);
@@ -3351,16 +3350,7 @@ extern void func_8017C530(s32 a0, s32 a1);
* cell $t3 naturally once the bbox block allocates right. * cell $t3 naturally once the bbox block allocates right.
*/ */
typedef struct { u32 w0, w1, w2; } PrimC59C;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimC59C *prim, *end; } CellC59C;
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
-10
View File
@@ -2857,10 +2857,6 @@ void func_8017DAAC(void) {
} }
typedef struct {
s32 unk00;
s32 unk04;
} Struct_80184C18;
extern Struct_80184C18 D_80184C18[]; extern Struct_80184C18 D_80184C18[];
extern s32 func_80171CC4(void *a0, void *a1); extern s32 func_80171CC4(void *a0, void *a1);
@@ -3518,12 +3514,6 @@ s32 func_8017EA08(void *a0) {
#include "common.h" #include "common.h"
typedef struct {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ s16 z;
/* 0x6 */ s16 w;
} Vec4h_8017EAB0;
extern s32 func_8017EE28(s32 a0, s32 a1, s32 a2); extern s32 func_8017EE28(s32 a0, s32 a1, s32 a2);
extern s8 D_80184CCC[]; extern s8 D_80184CCC[];
-12
View File
@@ -9,16 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct {
s32 unk00;
s32 unk04;
} Struct_80184C18;
typedef struct {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ s16 z;
/* 0x6 */ s16 w;
} Vec4h_8017EAB0;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -2872,7 +2862,6 @@ extern void func_8001CA1C(s32 a0, s32 a1);
extern void func_8012A828(s32 a0, void *a1); extern void func_8012A828(s32 a0, void *a1);
extern void func_8012C218(void *a0); extern void func_8012C218(void *a0);
typedef struct { s16 x, y, z; } SV3_8017FAA8;
void func_8017FAA8(s32 param_1) { void func_8017FAA8(s32 param_1) {
s32 *ptr; s32 *ptr;
@@ -3319,7 +3308,6 @@ void func_80180494(void *a0)
} }
typedef struct { u8 c[4]; } Blk4_80180518;
extern Blk4_80180518 D_801AD358[1]; extern Blk4_80180518 D_801AD358[1];
extern Blk4_80180518 D_801AD35C[1]; extern Blk4_80180518 D_801AD35C[1];
-11
View File
@@ -9,17 +9,6 @@ typedef struct {
u8 pad[7]; /* -> 0x40 */ u8 pad[7]; /* -> 0x40 */
} Prim_8016E7C8; } Prim_8016E7C8;
typedef void (*Handler)(struct Entry_8016E95C *); typedef void (*Handler)(struct Entry_8016E95C *);
typedef struct {
s32 unk00;
s32 unk04;
} Struct_80184C18;
typedef struct {
/* 0x0 */ s16 x;
/* 0x2 */ s16 y;
/* 0x4 */ s16 z;
/* 0x6 */ s16 w;
} Vec4h_8017EAB0;
typedef struct { u8 c[4]; } Blk4_80180518;
extern void func_801458E0(void); extern void func_801458E0(void);
extern s32 D_800AE6AC; extern s32 D_800AE6AC;
extern s32 D_800AE6B0; extern s32 D_800AE6B0;
@@ -3891,7 +3891,6 @@ void func_8017CE54(void *a0) {
* may DROP this local typedef and reuse the TU's own `B4` when banking into the host TU. * may DROP this local typedef and reuse the TU's own `B4` when banking into the host TU.
*/ */
typedef struct { u8 d[4]; } Blk4_8017CE90;
extern void func_801465C0(void); extern void func_801465C0(void);
extern void func_8001CD04(void *a0, void *a1); extern void func_8001CD04(void *a0, void *a1);
@@ -4456,7 +4455,6 @@ extern s16 D_8011F9C8;
extern void func_80174684(void *); extern void func_80174684(void *);
extern void func_8017DB00(void *); extern void func_8017DB00(void *);
struct S8_8017DA98 { s16 m[4]; };
#include "../shared/ov/func_8017DA98.h" #include "../shared/ov/func_8017DA98.h"
-24
View File
@@ -3463,11 +3463,6 @@ extern SV4 D_80190478;
extern SV4 D_801EAC70; extern SV4 D_801EAC70;
extern SV4 D_801EAC78; extern SV4 D_801EAC78;
typedef struct {
s16 m[3][3];
s16 pad;
s32 t[3];
} MtxLocal;
/* The target's stack frame (0xC8) is bigger than the visible locals below account /* The target's stack frame (0xC8) is bigger than the visible locals below account
* for on their own: two byte-ranges (sp+0x28..0x44 and sp+0x64..0x98) never surface * for on their own: two byte-ranges (sp+0x28..0x44 and sp+0x64..0x98) never surface
@@ -3480,12 +3475,6 @@ typedef struct {
* of each dead region getting its own independent 8-round (which cannot land on * of each dead region getting its own independent 8-round (which cannot land on
* mtx's true 0x44 start -- 0x44-0x20=0x24, not a multiple of 8). * mtx's true 0x44 start -- 0x44-0x20=0x24, not a multiple of 8).
*/ */
typedef struct {
s16 a, b, c, d; /* sp+0x20 : func_80049CAC arg0 (SV4; only a,b,c written) */
u8 _gap1[28]; /* sp+0x28..0x44 : never referenced by an instruction */
MtxLocal mtx; /* sp+0x44 : MATRIX out, t[] at sp+0x58 */
u8 _gap2[52]; /* sp+0x64..0x98 : never referenced by an instruction */
} Frame1;
void func_80185A0C(s32 arg0) void func_80185A0C(s32 arg0)
{ {
@@ -4282,9 +4271,6 @@ void func_80186C4C(s32 a0) {
* extended by 0x18 (6 words) and tail20 moved to 0xc1370; it is a clean append, no reorder. * extended by 0x18 (6 words) and tail20 moved to 0xc1370; it is a clean append, no reorder.
*/ */
typedef struct {
u16 vx, vy, vz, pad;
} V8_801874C0;
extern s32 func_8004787C(s32 a0); extern s32 func_8004787C(s32 a0);
extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2); extern s32 func_8012CEB0(s32 a0, s32 a1, s32 a2);
@@ -4672,14 +4658,6 @@ void func_80187EA8(s32 a0) {
extern u8 D_800AF630[]; /* TU line 46, verbatim */ extern u8 D_800AF630[]; /* TU line 46, verbatim */
typedef struct { s16 vx, vy, vz, pad; } SV_80187EE8;
typedef struct { u8 r, g, b, cd; } CV_80187EE8;
typedef struct {
SV_80187EE8 v[4]; /* +0x00 : sxy0..3 (v[0].vz doubles as the otz slot) */
CV_80187EE8 rgb[4]; /* +0x20 */
u32 code; /* +0x30 */
u32 pad; /* +0x34 */
} PKT_80187EE8;
/* every macro is suffixed: this TU already #defines gte_SetRotMatrix (line 4315), /* every macro is suffixed: this TU already #defines gte_SetRotMatrix (line 4315),
* BELOW this function's splice point (3649), so an unsuffixed name would clash. */ * BELOW this function's splice point (3649), so an unsuffixed name would clash. */
@@ -5525,7 +5503,6 @@ s32 a0;
typedef struct { s32 a; s32 b[4]; } Ot_8018B23C_801863B8;
extern int func_80178970(void); extern int func_80178970(void);
@@ -6207,7 +6184,6 @@ s32 aF8018A224(param_1)
} }
typedef struct { s16 x; u16 y; u16 z; s16 w; } Rec8_8018A31C;
void func_8018A31C(s32 a0) { void func_8018A31C(s32 a0) {
extern Rec8_8018A31C D_801E3990[]; extern Rec8_8018A31C D_801E3990[];
s32 i = 0; s32 i = 0;
-21
View File
@@ -2834,28 +2834,7 @@ s32 func_80184028(void) {
/* 16.16 fixed-point view: unkE0 is a 32-bit accumulator whose HIGH half is the s16 /* 16.16 fixed-point view: unkE0 is a 32-bit accumulator whose HIGH half is the s16
* unkE2 the rest of the function reads (little-endian overlay). */ * unkE2 the rest of the function reads (little-endian overlay). */
typedef struct {
/* 0x00 */ s16 unk00;
/* 0x02 */ s16 unk02;
/* 0x04 */ u8 pad04[0xD8];
/* 0xDC */ s16 unkDC;
/* 0xDE */ s16 unkDE;
/* 0xE0 */ s32 unkE0;
} Ent58_fx;
typedef struct {
/* 0x00 */ s16 unk00;
/* 0x02 */ s16 unk02;
/* 0x04 */ u8 pad04[0xD8];
/* 0xDC */ s16 unkDC;
/* 0xDE */ s16 unkDE;
/* 0xE0 */ s16 unkE0;
/* 0xE2 */ s16 unkE2;
/* 0xE4 */ s16 unkE4;
/* 0xE6 */ s16 unkE6;
/* 0xE8 */ s16 unkE8;
/* 0xEA */ s16 unkEA;
} Ent_80184058;
extern s32 D_801EAFD0; extern s32 D_801EAFD0;
extern s32 D_8018F858[]; extern s32 D_8018F858[];
-12
View File
@@ -3300,7 +3300,6 @@ void func_8017BE60(void *a0) {
typedef struct { s16 vx, vy, vz, pad; } SVEC_BEBC;
extern s32 func_800491EC(void); extern s32 func_800491EC(void);
extern void func_8017C294(u16 *a0, void *a1); extern void func_8017C294(u16 *a0, void *a1);
@@ -3340,16 +3339,7 @@ extern void func_8017C530(s32 a0, s32 a1);
* cell $t3 naturally once the bbox block allocates right. * cell $t3 naturally once the bbox block allocates right.
*/ */
typedef struct { u32 w0, w1, w2; } PrimC59C;
typedef struct { u8 *vtx; u32 f4; u32 xx, yy, zz; PrimC59C *prim, *end; } CellC59C;
typedef struct { s16 vx, vy; } DVEC2_C59C;
typedef struct { s16 vx, vy, vz, pad; } SVEC2_C59C;
typedef struct { s16 m[3][3]; s32 t[3]; } MTX_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2; } PF3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0, x1, y1, x2, y2, x3, y3; } PF4_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; } PFT3_C59C;
typedef struct { u32 tag, rgbc; s16 x0, y0; u32 uvc0; s16 x1, y1; u32 uvp1; s16 x2, y2; u16 uv2, p2; s16 x3, y3; u16 uv3, p3; } PFT4_C59C;
@@ -4102,8 +4092,6 @@ extern void func_8017DBC4(int param_1, short *param_2);
* scope; these local names exist ONLY to let this file compile standalone under match_one and carry * scope; these local names exist ONLY to let this file compile standalone under match_one and carry
* zero risk of colliding with the host's globals at integration time). Layout: m[3][3] (18B) + 2B * zero risk of colliding with the host's globals at integration time). Layout: m[3][3] (18B) + 2B
* pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */ * pad + t[3] s32 (12B) = 0x20; vx/vy/vz/pad s16 = 8B. */
typedef struct { short m[3][3]; int t[3]; } MATRIX_8017DBC4;
typedef struct { short vx, vy, vz, pad; } SVECTOR_8017DBC4;
extern int D_80126B58; extern int D_80126B58;
extern short D_801829F4[]; extern short D_801829F4[];

Some files were not shown because too many files have changed in this diff Show More