diff --git a/config/GMPE01_00/rels/w10Dll/splits.txt b/config/GMPE01_00/rels/w10Dll/splits.txt index abdad7bb..3a0c7c06 100644 --- a/config/GMPE01_00/rels/w10Dll/splits.txt +++ b/config/GMPE01_00/rels/w10Dll/splits.txt @@ -8,13 +8,15 @@ Sections: REL/w10Dll/w10Dll_init.c: .text start:0x00000000 end:0x000000E0 + .bss start:0x00000000 end:0x00000008 REL/w10Dll/w10Dll.c: .text start:0x000000E0 end:0x000013A4 - .rodata start:0x00000000 end:0x00000018 - .data start:0x00000000 end:0x000002D4 - .bss start:0x00000000 end:0x00000038 + .rodata start:0x00000000 end:0x00000048 + .data start:0x00000000 end:0x00000098 + .bss start:0x00000008 end:0x00000038 REL/w10Dll/w10Dll2.c: .text start:0x000013A4 end:0x0000206C - .rodata start:0x00000058 end:0x00000070 + .rodata start:0x00000048 end:0x00000070 + .data start:0x00000098 end:0x000002D4 diff --git a/src/REL/w10Dll/w10Dll.c b/src/REL/w10Dll/w10Dll.c index 66bbbf37..722e099c 100644 --- a/src/REL/w10Dll/w10Dll.c +++ b/src/REL/w10Dll/w10Dll.c @@ -1,17 +1,15 @@ #include "include/REL/w10Dll.h" //BSS -BoardStateSubStruct* lbl_1_bss_0; -void* lbl_1_bss_8; -s16 lbl_1_bss_C; -s16 lbl_1_bss_E; -s16 lbl_1_bss_10[4]; -Process* lbl_1_bss_18; -s16 lbl_1_bss_1C; -s16 lbl_1_bss_1E; -s16 lbl_1_bss_20; s16 lbl_1_bss_22[11]; - +s16 lbl_1_bss_20; +s16 lbl_1_bss_1E; +s16 lbl_1_bss_1C; +Process* lbl_1_bss_18; +s16 lbl_1_bss_10[4]; +s16 lbl_1_bss_E; +s16 lbl_1_bss_C; +void* lbl_1_bss_8; //DATA unkw10Dll lbl_1_data_0[1] = { @@ -30,11 +28,12 @@ s16 lbl_1_data_30 = -1; s16 lbl_1_data_32 = -1; //unused? -s16 lbl_1_data_34[] = { -0x005F, 0x0000, 0x001A, 0x0000, -0x006D, 0x0000, 0x008A, 0x0000, -0x0085, 0x0000, 0x0011, 0x0000, -0x000D, 0x0000, 0x0081, 0x0000 +s32 lbl_1_data_34[] = { +0x005F0000, 0x001A0000, +0x006D0000, 0x008A0000, +0x00850000, 0x00110000, +0x000D0000, 0x00810000, +0 }; s32 lbl_1_data_54[2] = { @@ -67,78 +66,10 @@ Vec3f lbl_1_data_80[2] = { {70.0f, 175.0f, 200.f}, }; -w10DllUnk03 lbl_1_data_C6[11] = { -1, -1, -1, -2, -1, -1, -4, -1, -1, -5, -1, -1, -5, -1, -1, -4, -1, -1, -1, -1, -1, -3, -1, -1, -2, -1, -1, -4, -1, -1, -5, 6, -1, -}; - -w10DllUnk04 lbl_1_data_108[42] = { -{0x0000, 0000, fn_1_D2C}, -{0x0001, 0000, fn_1_D54}, -{0x0002, 0000, fn_1_D7C}, -{0x0003, 0000, fn_1_DA4}, -{0x0003, 0000, fn_1_DCC}, -{0x0003, 0000, fn_1_DF4}, -{0x0003, 0000, fn_1_E1C}, -{0x0004, 0000, fn_1_E44}, -{0x0005, 0000, fn_1_E94}, -{0x0006, 0000, fn_1_EBC}, -{0x0007, 0000, fn_1_EE4}, -{0x000A, 0000, fn_1_EE8}, -{0x000B, 0000, fn_1_F30}, -{0x0010, 0000, fn_1_F6C}, -{0x0011, 0000, fn_1_FB8}, -{0x000C, 0000, fn_1_1010}, -{0x000D, 0000, fn_1_105C}, -{0x000E, 0000, fn_1_1098}, -{0x000E, 0000, fn_1_10C0}, -{0x000F, 0000, fn_1_10F8}, -{0x0012, 0000, fn_1_1134}, -{0x0014, 0000, fn_1_1178}, -{0x0015, 0000, fn_1_11A0}, -{0x0016, 0000, fn_1_11EC}, -{0x0005, 0000, fn_1_1240}, -{0x0017, 0000, fn_1_1278}, -{0x0007, 0000, fn_1_12A0}, -{0x0005, 0000, fn_1_12DC}, -{0x0017, 0000, fn_1_1304}, -{0x0018, 0000, fn_1_132C}, -{0x0019, 0000, fn_1_1354}, -{0x0008, 0000, fn_1_137C}, -{0x0009, 0000, fn_1_13A4}, -{0x001A, 0000, fn_1_176C}, -{0x001B, 0000, fn_1_179C}, -{0x001B, 0000, fn_1_17F4}, -{0x001B, 0000, fn_1_1834}, -{0x001B, 0000, fn_1_18BC}, -{0x001C, 0000, fn_1_1908}, -{0x001C, 0000, fn_1_1930}, -{0x001C, 0000, fn_1_1958}, -{-1, 0, 0}, -}; - -s32 lbl_1_data_2A8[11] = { -0x007B0004, -0x007B0005, -0x007B0006, -0x007B0007, -0x007B0008, -0x007B0009, -0x007B000A, -0x007B000B, -0x007B000C, -0x007B000D, -0x007B000E -}; +//RODATA +//HACK: Force 0.5 and 3.0 double constants to appear in REL +const double _half = 0.5; +const double _three = 3.0; // function is probably global. only inlined in rels? inline s32 get_current_board(void) { @@ -374,6 +305,8 @@ void fn_1_C20(void) { } } +const f32 pad = 0.0f; + void fn_1_D2C(void) { fn_1_BA0(0x2E0001); } @@ -538,4 +471,4 @@ void fn_1_1354(void) { void fn_1_137C(void) { fn_1_BA0(0x2E0022); -} +} \ No newline at end of file diff --git a/src/REL/w10Dll/w10Dll2.c b/src/REL/w10Dll/w10Dll2.c index 3b345602..5e60bdf4 100644 --- a/src/REL/w10Dll/w10Dll2.c +++ b/src/REL/w10Dll/w10Dll2.c @@ -1,5 +1,82 @@ #include "include/REL/w10Dll.h" +char lbl_1_data_98[] = "@@@@@@@@@@@@@@ Tutorial Exit @@@@@@@@@@@@@@\n\000"; + +w10DllUnk03 lbl_1_data_C6[11] = { +1, -1, -1, +2, -1, -1, +4, -1, -1, +5, -1, -1, +5, -1, -1, +4, -1, -1, +1, -1, -1, +3, -1, -1, +2, -1, -1, +4, -1, -1, +5, 6, -1, +}; + +w10DllUnk04 lbl_1_data_108[42] = { +{0x0000, 0000, fn_1_D2C}, +{0x0001, 0000, fn_1_D54}, +{0x0002, 0000, fn_1_D7C}, +{0x0003, 0000, fn_1_DA4}, +{0x0003, 0000, fn_1_DCC}, +{0x0003, 0000, fn_1_DF4}, +{0x0003, 0000, fn_1_E1C}, +{0x0004, 0000, fn_1_E44}, +{0x0005, 0000, fn_1_E94}, +{0x0006, 0000, fn_1_EBC}, +{0x0007, 0000, fn_1_EE4}, +{0x000A, 0000, fn_1_EE8}, +{0x000B, 0000, fn_1_F30}, +{0x0010, 0000, fn_1_F6C}, +{0x0011, 0000, fn_1_FB8}, +{0x000C, 0000, fn_1_1010}, +{0x000D, 0000, fn_1_105C}, +{0x000E, 0000, fn_1_1098}, +{0x000E, 0000, fn_1_10C0}, +{0x000F, 0000, fn_1_10F8}, +{0x0012, 0000, fn_1_1134}, +{0x0014, 0000, fn_1_1178}, +{0x0015, 0000, fn_1_11A0}, +{0x0016, 0000, fn_1_11EC}, +{0x0005, 0000, fn_1_1240}, +{0x0017, 0000, fn_1_1278}, +{0x0007, 0000, fn_1_12A0}, +{0x0005, 0000, fn_1_12DC}, +{0x0017, 0000, fn_1_1304}, +{0x0018, 0000, fn_1_132C}, +{0x0019, 0000, fn_1_1354}, +{0x0008, 0000, fn_1_137C}, +{0x0009, 0000, fn_1_13A4}, +{0x001A, 0000, fn_1_176C}, +{0x001B, 0000, fn_1_179C}, +{0x001B, 0000, fn_1_17F4}, +{0x001B, 0000, fn_1_1834}, +{0x001B, 0000, fn_1_18BC}, +{0x001C, 0000, fn_1_1908}, +{0x001C, 0000, fn_1_1930}, +{0x001C, 0000, fn_1_1958}, +{-1, 0, 0}, +}; + +char lbl_1_data_258[] = "Tutorial Hook P0:%d P1:%d P2:%d P3:%d SCEN:%d CUE:%d PRM:%d DICE:%d MSG:%d\n"; + +s32 lbl_1_data_2A8[11] = { +0x007B0004, +0x007B0005, +0x007B0006, +0x007B0007, +0x007B0008, +0x007B0009, +0x007B000A, +0x007B000B, +0x007B000C, +0x007B000D, +0x007B000E +}; + void fn_1_13A4(void) { s32 i; Vec3f sp14; @@ -142,7 +219,7 @@ void fn_1_1984(void) { } if (i != 4) { lbl_1_bss_C = 1; - OSReport("@@@@@@@@@@@@@@ Tutorial Exit @@@@@@@@@@@@@@\n\000"); + OSReport(lbl_1_data_98); fn_80070EE8(0, 0x1F3); fn_8005B5FC(); fn_800B3FD8(NULL); @@ -171,7 +248,7 @@ int fn_1_1AAC(s16 arg0, s32 arg1) { } if (i != 4) { lbl_1_bss_C = 1; - OSReport("@@@@@@@@@@@@@@ Tutorial Exit @@@@@@@@@@@@@@\n\000"); + OSReport(lbl_1_data_98); fn_80070EE8(0, 0x1F3); fn_8005B5FC(); fn_800B3FD8(NULL); @@ -182,7 +259,7 @@ int fn_1_1AAC(s16 arg0, s32 arg1) { return; } if (arg0 != 0x1D) { - OSReport("Tutorial Hook P0:%d P1:%d P2:%d P3:%d SCEN:%d CUE:%d PRM:%d DICE:%d MSG:%d\n", + OSReport(lbl_1_data_258, (gPlayerData[0].characterID >> 5) & 1, (gPlayerData[1].characterID >> 5) & 1, (gPlayerData[2].characterID >> 5) & 1, (gPlayerData[3].characterID >> 5) & 1, lbl_1_bss_0->unk0, arg0, arg1, lbl_1_bss_0->unk4, lbl_1_bss_0->unk6); diff --git a/src/REL/w10Dll/w10Dll_init.c b/src/REL/w10Dll/w10Dll_init.c index ed4247bb..a0241037 100644 --- a/src/REL/w10Dll/w10Dll_init.c +++ b/src/REL/w10Dll/w10Dll_init.c @@ -1,5 +1,8 @@ #include "include/REL/w10Dll.h" +//BSS +BoardStateSubStruct* lbl_1_bss_0; + void fn_1_0(void) { fn_8005B150(&fn_1_E0, &fn_1_6D8); }