diff --git a/config/GMPE01_00/rels/m446dll/symbols.txt b/config/GMPE01_00/rels/m446dll/symbols.txt index 1bedafa5..0900c8ff 100644 --- a/config/GMPE01_00/rels/m446dll/symbols.txt +++ b/config/GMPE01_00/rels/m446dll/symbols.txt @@ -128,11 +128,11 @@ fn_1_852C = .text:0x0000852C; // type:function size:0xE0 fn_1_860C = .text:0x0000860C; // type:function size:0xC _ctors = .ctors:0x00000000; // type:label scope:global data:4byte _dtors = .dtors:0x00000000; // type:label scope:global data:4byte -lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 data:double -lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x30 data:4byte -lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 data:float -lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 data:float -lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 data:float +lbl_1_rodata_10 = .rodata:0x00000010; // type:object size:0x8 scope:local data:double +lbl_1_rodata_18 = .rodata:0x00000018; // type:object size:0x30 scope:local data:4byte +lbl_1_rodata_48 = .rodata:0x00000048; // type:object size:0x4 scope:local data:float +lbl_1_rodata_4C = .rodata:0x0000004C; // type:object size:0x4 scope:local data:float +lbl_1_rodata_50 = .rodata:0x00000050; // type:object size:0x8 scope:local data:float lbl_1_rodata_58 = .rodata:0x00000058; // type:object size:0x14 scope:local lbl_1_rodata_6C = .rodata:0x0000006C; // type:object size:0x14 scope:local lbl_1_rodata_80 = .rodata:0x00000080; // type:object size:0x8 scope:local data:double @@ -252,7 +252,7 @@ lbl_1_data_38 = .data:0x00000038; // type:object size:0x18 lbl_1_data_50 = .data:0x00000050; // type:object size:0x18 lbl_1_data_68 = .data:0x00000068; // type:object size:0x8 lbl_1_data_70 = .data:0x00000070; // type:object size:0x10 -lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 +lbl_1_data_80 = .data:0x00000080; // type:object size:0x20 scope:local lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x14 jumptable_1_data_B4 = .data:0x000000B4; // type:object size:0x30 scope:local jumptable_1_data_E4 = .data:0x000000E4; // type:object size:0x68 scope:local diff --git a/configure.py b/configure.py index ac873397..7feb3c28 100644 --- a/configure.py +++ b/configure.py @@ -1195,7 +1195,7 @@ config.libs = [ Object(Matching, "REL/m446Dll/player.c"), Object(Matching, "REL/m446Dll/camera.c"), Object(Matching, "REL/m446Dll/cursor.c"), - Object(NonMatching, "REL/m446Dll/stage.c"), + Object(Matching, "REL/m446Dll/stage.c"), }, ), Rel( diff --git a/include/REL/m446Dll.h b/include/REL/m446Dll.h index 0c8010fc..03d0bdfa 100644 --- a/include/REL/m446Dll.h +++ b/include/REL/m446Dll.h @@ -18,7 +18,7 @@ typedef struct _unkStruct { struct _unkStruct9* unk24; struct _unkStruct5* unk28; struct _unkStruct8* unk2C[2]; - struct _unkStruct9* unk34; + struct _unkStruct4* unk34; struct _unkStruct4* unk38[23]; s32 unk94; Process* unk98; @@ -41,8 +41,7 @@ typedef struct _unkStruct4 { s32 unk4; u8 unk8; u8 unk9; - s16 unkA; - s16 unkC; + s16 unkA[2]; s16 unkE; Vec unk10; Vec unk1C; @@ -253,7 +252,7 @@ extern void fn_1_19D4(void); extern unkStruct2* fn_1_1C64(s32); extern void fn_1_1CF8(unkStruct2*); extern s32 fn_1_1D30(unkStruct2*, void*); -extern s32 fn_1_1D6C(unkStruct2*, void**); +extern s32 fn_1_1D6C(unkStruct2*, unkStruct4**); extern s32 fn_1_1DA8(unkStruct2*, void**); extern BOOL fn_1_1DDC(unkStruct2*); extern s32 fn_1_1DEC(unkStruct2*); @@ -270,7 +269,7 @@ extern s32 fn_1_2064(void); extern void fn_1_207C(void); extern void fn_1_20D4(void); extern unkStruct4* m446CardCreate(s32); -extern void fn_1_2688(unkStruct9*); +extern void fn_1_2688(unkStruct4*); extern void fn_1_272C(unkStruct4*); extern void fn_1_2794(unkStruct4*); extern void fn_1_27FC(unkStruct4*, Vec*, s32); diff --git a/src/REL/m446Dll/card.c b/src/REL/m446Dll/card.c index 3bfe2e6e..8f4c5f72 100644 --- a/src/REL/m446Dll/card.c +++ b/src/REL/m446Dll/card.c @@ -43,7 +43,7 @@ s32 fn_1_1D30(unkStruct2* arg0, void* arg1) { } } -s32 fn_1_1D6C(unkStruct2* arg0, void** arg1) { +s32 fn_1_1D6C(unkStruct2* arg0, unkStruct4** arg1) { if (arg0->unk8 <= 0) { return 0; } else { @@ -174,7 +174,7 @@ s32 fn_1_2064(void) { } void fn_1_207C(void) { - unkStruct9* var_r30; + unkStruct4* var_r30; unkStruct3* var_r31; var_r31 = lbl_1_bss_18; @@ -271,14 +271,14 @@ unkStruct4* m446CardCreate(s32 arg0) { temp_r31->unk74 = 0; temp_r31->unk78 = 0; temp_r31->unk7C = 0; - temp_r31->unkA = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_rodata_58[arg0], 0x10000000, HEAP_DATA)); - Hu3DModelAmbSet(temp_r31->unkA, 0.0f, 0.0f, 0.0f); - Hu3DModelShadowSet(temp_r31->unkA); - Hu3DModelLayerSet(temp_r31->unkA, 0); - temp_r31->unkC = Hu3DModelCreate(HuDataSelHeapReadNum(lbl_1_rodata_6C[arg0], 0x10000000, HEAP_DATA)); - Hu3DModelAmbSet(temp_r31->unkC, 1.0f, 1.0f, 1.0f); - Hu3DModelAttrSet(temp_r31->unkC, 0x40000001U); - Hu3DModelLayerSet(temp_r31->unkA, 0); + temp_r31->unkA[0] = Hu3DModelCreateFile(lbl_1_rodata_58[arg0]); + Hu3DModelAmbSet(temp_r31->unkA[0], 0.0f, 0.0f, 0.0f); + Hu3DModelShadowSet(temp_r31->unkA[0]); + Hu3DModelLayerSet(temp_r31->unkA[0], 0); + temp_r31->unkA[1] = Hu3DModelCreateFile(lbl_1_rodata_6C[arg0]); + Hu3DModelAmbSet(temp_r31->unkA[1], 1.0f, 1.0f, 1.0f); + Hu3DModelAttrSet(temp_r31->unkA[1], 0x40000001U); + Hu3DModelLayerSet(temp_r31->unkA[0], 0); fn_1_2A58(temp_r31); fn_1_2EC0(temp_r31, 1); temp_r30 = fn_1_1DF4(temp_r31); @@ -295,7 +295,7 @@ unkStruct4* m446CardCreate(s32 arg0) { return temp_r31; } -void fn_1_2688(unkStruct9* arg0) { +void fn_1_2688(unkStruct4* arg0) { unkStruct3* var_r31 = lbl_1_bss_18; do { if (arg0 == var_r31->unk0) { @@ -367,12 +367,12 @@ void fn_1_29B4(unkStruct4* arg0, f32 arg8, s32 arg1) { } void fn_1_2A1C(unkStruct4* arg0) { - Hu3DModelAttrReset(arg0->unkC, 1); + Hu3DModelAttrReset(arg0->unkA[1], 1); arg0->unk6C = 1; } void fn_1_2A58(unkStruct4* arg0) { - Hu3DModelAttrSet(arg0->unkC, 1); + Hu3DModelAttrSet(arg0->unkA[1], 1); arg0->unk6C = 0; } @@ -387,7 +387,7 @@ void fn_1_2AA8(unkStruct4* arg0) { switch (arg0->unk8) { case 0: arg0->unk8 = 1; - Hu3DModelAttrReset(arg0->unkC, 1); + Hu3DModelAttrReset(arg0->unkA[1], 1); arg0->unk6C = 1; arg0->unk8 = 1; // ? case 1: @@ -455,7 +455,7 @@ void fn_1_2AA8(unkStruct4* arg0) { if (arg0->unk78 != 0) break; arg0->unk4 = 0; arg0->unk8 = 0; - Hu3DModelAttrSet(arg0->unkC, 1); + Hu3DModelAttrSet(arg0->unkA[1], 1); arg0->unk6C = 0; return; } @@ -500,25 +500,25 @@ void fn_1_2DA8(unkStruct4* arg0) { void fn_1_2EC0(unkStruct4* arg0, s32 arg1) { if (arg1 != 0) { - Hu3DModelShadowDispOn(arg0->unkA); - Hu3DModelAmbSet(arg0->unkA, 0.0f, 0.0f, 0.0f); + Hu3DModelShadowDispOn(arg0->unkA[0]); + Hu3DModelAmbSet(arg0->unkA[0], 0.0f, 0.0f, 0.0f); return; } - Hu3DModelShadowDispOff(arg0->unkA); - Hu3DModelAmbSet(arg0->unkA, 1.0f, 1.0f, 1.0f); + Hu3DModelShadowDispOff(arg0->unkA[0]); + Hu3DModelAmbSet(arg0->unkA[0], 1.0f, 1.0f, 1.0f); } void fn_1_2F64(unkStruct4* arg0) { if ((arg0->unk58 > 1.0f) || (arg0->unk58 < 1.0f)) { - Hu3DModelLayerSet(arg0->unkA, 1); - Hu3DModelLayerSet(arg0->unkC, 1); + Hu3DModelLayerSet(arg0->unkA[0], 1); + Hu3DModelLayerSet(arg0->unkA[1], 1); } else { - Hu3DModelLayerSet(arg0->unkA, 0); - Hu3DModelLayerSet(arg0->unkC, 0); + Hu3DModelLayerSet(arg0->unkA[0], 0); + Hu3DModelLayerSet(arg0->unkA[1], 0); } - Hu3DModelPosSet(arg0->unkA, arg0->unk10.x, arg0->unk10.y, arg0->unk10.z); - Hu3DModelPosSet(arg0->unkC, arg0->unk10.x, 0.1f + arg0->unk10.y, arg0->unk10.z); - Hu3DModelScaleSet(arg0->unkA, arg0->unk58, arg0->unk58, arg0->unk58); - Hu3DModelScaleSet(arg0->unkC, arg0->unk58, arg0->unk58, arg0->unk58); - Hu3DModelRotSet(arg0->unkA, arg0->unk34.x, arg0->unk34.y, arg0->unk34.z); + Hu3DModelPosSet(arg0->unkA[0], arg0->unk10.x, arg0->unk10.y, arg0->unk10.z); + Hu3DModelPosSet(arg0->unkA[1], arg0->unk10.x, 0.1f + arg0->unk10.y, arg0->unk10.z); + Hu3DModelScaleSet(arg0->unkA[0], arg0->unk58, arg0->unk58, arg0->unk58); + Hu3DModelScaleSet(arg0->unkA[1], arg0->unk58, arg0->unk58, arg0->unk58); + Hu3DModelRotSet(arg0->unkA[0], arg0->unk34.x, arg0->unk34.y, arg0->unk34.z); } \ No newline at end of file diff --git a/src/REL/m446Dll/deck.c b/src/REL/m446Dll/deck.c index c9fe3833..df75516a 100644 --- a/src/REL/m446Dll/deck.c +++ b/src/REL/m446Dll/deck.c @@ -39,8 +39,8 @@ unkStruct5* fn_1_3064(void) { return temp_r3; } -void fn_1_3180(unkStruct2** arg0) { // typing nightmare - unkStruct9* sp8; +void fn_1_3180(unkStruct2** arg0) { + unkStruct4* sp8; while (fn_1_1D6C(*arg0, &sp8) != 0) { fn_1_2688(sp8); diff --git a/src/REL/m446Dll/main.c b/src/REL/m446Dll/main.c index cdb7884f..1a4d425b 100644 --- a/src/REL/m446Dll/main.c +++ b/src/REL/m446Dll/main.c @@ -98,7 +98,7 @@ unkStruct* m446FlowCreate(void) { temp_r3 = HuMemDirectMallocNum(HEAP_SYSTEM, 0x9C, 0x10000000); if (temp_r3 == 0) { - OSReport("[!] m446FlowCreate() ERROR"); + OSReport("[!] m446FlowCreate() ERROR...\n"); return NULL; } temp_r3->unk4 = -1; diff --git a/src/REL/m446Dll/stage.c b/src/REL/m446Dll/stage.c index 5c30d5c5..11fbfee3 100644 --- a/src/REL/m446Dll/stage.c +++ b/src/REL/m446Dll/stage.c @@ -51,7 +51,7 @@ void fn_1_7C08(void) { if (var_r31) { do { var_r30 = var_r31->unk0; - fn_1_2688(var_r30); + fn_1_2688((unkStruct4*)var_r30); // ??? var_r31 = var_r31->unk8; } while (var_r31); }