diff --git a/config/RSBE01_02/rels/sora_menu_time_result/symbols.txt b/config/RSBE01_02/rels/sora_menu_time_result/symbols.txt index 362aa50..b6934a4 100644 --- a/config/RSBE01_02/rels/sora_menu_time_result/symbols.txt +++ b/config/RSBE01_02/rels/sora_menu_time_result/symbols.txt @@ -1,4 +1,4 @@ -fn_21_0 = .text:0x00000000; // type:function size:0x1E4 +create__20muWifiTimeResultTaskFPC25muWifiTimeResultTaskParam = .text:0x00000000; // type:function size:0x1E4 fn_21_1E4 = .text:0x000001E4; // type:function size:0xDC fn_21_2C0 = .text:0x000002C0; // type:function size:0xC fn_21_2CC = .text:0x000002CC; // type:function size:0xEC @@ -21,10 +21,10 @@ lbl_21_data_120 = .data:0x00000120; // type:object size:0x14 data:4byte lbl_21_data_134 = .data:0x00000134; // type:object size:0x15 data:string lbl_21_data_14C = .data:0x0000014C; // type:object size:0x4 data:string lbl_21_data_150 = .data:0x00000150; // type:object size:0x80 -lbl_21_data_1D0 = .data:0x000001D0; // type:object size:0x64 +__vt__20muWifiTimeResultTask = .data:0x000001D0; // type:object size:0x64 lbl_21_data_234 = .data:0x00000234; // type:object size:0x15 data:string lbl_21_data_24C = .data:0x0000024C; // type:object size:0xC -lbl_21_data_258 = .data:0x00000258; // type:object size:0x8 +__RTTI__20muWifiTimeResultTask = .data:0x00000258; // type:object size:0x8 lbl_21_data_260 = .data:0x00000260; // type:object size:0x7 data:string lbl_21_data_268 = .data:0x00000268; // type:object size:0x8 lbl_21_data_270 = .data:0x00000270; // type:object size:0xC scope:local align:4 data:string diff --git a/config/RSBE01_02/rels/sora_scene/splits.txt b/config/RSBE01_02/rels/sora_scene/splits.txt index d742f3e..2366886 100644 --- a/config/RSBE01_02/rels/sora_scene/splits.txt +++ b/config/RSBE01_02/rels/sora_scene/splits.txt @@ -11,6 +11,26 @@ global_destructor_chain.c: .dtors start:0x00000000 end:0x00000008 .bss start:0x00000000 end:0x00000004 +mo_scene/sora_scene/sc_demo.cpp: + .text start:0x0000068C end:0x00000768 + .data start:0x000000A0 end:0x000000E0 + +mo_scene/sora_scene/sc_tutorial.cpp: + .text start:0x00000768 end:0x00000810 + .data start:0x000000E0 end:0x00000128 + +mo_scene/sora_scene/sc_staffroll.cpp: + .text start:0x000061A4 end:0x0000624C + .data start:0x00001400 end:0x00001448 + +mo_scene/sora_scene/sc_net_time_result.cpp: + .text start:0x0000C824 end:0x0000C9C4 + .data start:0x000040D0 end:0x00004140 + +mo_scene/sora_scene/sc_adv_selchar.cpp: + .text start:0x0001BFDC end:0x0001C084 + .data start:0x00005D50 end:0x00005DA0 + mo_scene/mo_scene.cpp: .text start:0x0003D4B8 end:0x0003D588 .data start:0x00009C30 end:0x00009C3D diff --git a/config/RSBE01_02/rels/sora_scene/symbols.txt b/config/RSBE01_02/rels/sora_scene/symbols.txt index acebf00..9a75e9f 100644 --- a/config/RSBE01_02/rels/sora_scene/symbols.txt +++ b/config/RSBE01_02/rels/sora_scene/symbols.txt @@ -6,15 +6,15 @@ fn_1_464 = .text:0x00000464; // type:function size:0xC fn_1_470 = .text:0x00000470; // type:function size:0x200 fn_1_670 = .text:0x00000670; // type:function size:0x8 fn_1_678 = .text:0x00000678; // type:function size:0x10 -fn_1_688 = .text:0x00000688; // type:function size:0x4 -fn_1_68C = .text:0x0000068C; // type:function size:0x48 -fn_1_6D4 = .text:0x000006D4; // type:function size:0x10 -fn_1_6E4 = .text:0x000006E4; // type:function size:0x54 -fn_1_738 = .text:0x00000738; // type:function size:0x30 -fn_1_768 = .text:0x00000768; // type:function size:0x48 -fn_1_7B0 = .text:0x000007B0; // type:function size:0x4 -fn_1_7B4 = .text:0x000007B4; // type:function size:0x54 -fn_1_808 = .text:0x00000808; // type:function size:0x8 +setModule__7gfSceneFv = .text:0x00000688; // type:function size:0x4 +create__6scDemoFv = .text:0x0000068C; // type:function size:0x48 +start__6scDemoFv = .text:0x000006D4; // type:function size:0x10 +process__6scDemoFv = .text:0x000006E4; // type:function size:0x54 +exit__6scDemoFv = .text:0x00000738; // type:function size:0x30 +create__10scTutorialFv = .text:0x00000768; // type:function size:0x48 +start__10scTutorialFv = .text:0x000007B0; // type:function size:0x4 +process__10scTutorialFv = .text:0x000007B4; // type:function size:0x54 +exit__10scTutorialFv = .text:0x00000808; // type:function size:0x8 fn_1_810 = .text:0x00000810; // type:function size:0x34 fn_1_844 = .text:0x00000844; // type:function size:0x1B8 fn_1_9FC = .text:0x000009FC; // type:function size:0x44 @@ -53,10 +53,10 @@ fn_1_5E64 = .text:0x00005E64; // type:function size:0xC fn_1_5E70 = .text:0x00005E70; // type:function size:0x31C fn_1_618C = .text:0x0000618C; // type:function size:0x8 fn_1_6194 = .text:0x00006194; // type:function size:0x10 -fn_1_61A4 = .text:0x000061A4; // type:function size:0x48 -fn_1_61EC = .text:0x000061EC; // type:function size:0x4 -fn_1_61F0 = .text:0x000061F0; // type:function size:0x54 -fn_1_6244 = .text:0x00006244; // type:function size:0x8 +create__11scStaffRollFv = .text:0x000061A4; // type:function size:0x48 +start__11scStaffRollFv = .text:0x000061EC; // type:function size:0x4 +process__11scStaffRollFv = .text:0x000061F0; // type:function size:0x54 +exit__11scStaffRollFv = .text:0x00006244; // type:function size:0x8 fn_1_624C = .text:0x0000624C; // type:function size:0x10C fn_1_6358 = .text:0x00006358; // type:function size:0xCC fn_1_6424 = .text:0x00006424; // type:function size:0x10 @@ -225,11 +225,11 @@ fn_1_BD98 = .text:0x0000BD98; // type:function size:0x184 fn_1_BF1C = .text:0x0000BF1C; // type:function size:0x530 fn_1_C44C = .text:0x0000C44C; // type:function size:0x254 fn_1_C6A0 = .text:0x0000C6A0; // type:function size:0x184 -fn_1_C824 = .text:0x0000C824; // type:function size:0x68 -fn_1_C88C = .text:0x0000C88C; // type:function size:0x10 -fn_1_C89C = .text:0x0000C89C; // type:function size:0x7C -fn_1_C918 = .text:0x0000C918; // type:function size:0x54 -fn_1_C96C = .text:0x0000C96C; // type:function size:0x58 +create__15scNetTimeResultFv = .text:0x0000C824; // type:function size:0x68 +setModule__15scNetTimeResultFv = .text:0x0000C88C; // type:function size:0x10 +start__15scNetTimeResultFv = .text:0x0000C89C; // type:function size:0x7C +process__15scNetTimeResultFv = .text:0x0000C918; // type:function size:0x54 +exit__15scNetTimeResultFv = .text:0x0000C96C; // type:function size:0x58 fn_1_C9C4 = .text:0x0000C9C4; // type:function size:0x54 fn_1_CA18 = .text:0x0000CA18; // type:function size:0xB4 fn_1_CACC = .text:0x0000CACC; // type:function size:0x10 @@ -356,10 +356,10 @@ fn_1_1BD14 = .text:0x0001BD14; // type:function size:0x4 fn_1_1BD18 = .text:0x0001BD18; // type:function size:0xB4 fn_1_1BDCC = .text:0x0001BDCC; // type:function size:0x170 fn_1_1BF3C = .text:0x0001BF3C; // type:function size:0xA0 -fn_1_1BFDC = .text:0x0001BFDC; // type:function size:0x48 -fn_1_1C024 = .text:0x0001C024; // type:function size:0x4 -fn_1_1C028 = .text:0x0001C028; // type:function size:0x54 -fn_1_1C07C = .text:0x0001C07C; // type:function size:0x8 +create__12scAdvSelCharFv = .text:0x0001BFDC; // type:function size:0x48 +start__12scAdvSelCharFv = .text:0x0001C024; // type:function size:0x4 +process__12scAdvSelCharFv = .text:0x0001C028; // type:function size:0x54 +exit__12scAdvSelCharFv = .text:0x0001C07C; // type:function size:0x8 fn_1_1C084 = .text:0x0001C084; // type:function size:0x8C fn_1_1C110 = .text:0x0001C110; // type:function size:0x4 fn_1_1C114 = .text:0x0001C114; // type:function size:0xEC @@ -931,17 +931,17 @@ lbl_1_data_70 = .data:0x00000070; // type:object size:0x7 data:string lbl_1_data_78 = .data:0x00000078; // type:object size:0x10 lbl_1_data_88 = .data:0x00000088; // type:object size:0x8 lbl_1_data_90 = .data:0x00000090; // type:object size:0x8 data:string -lbl_1_data_98 = .data:0x00000098; // type:object size:0x8 -lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x7 data:string -lbl_1_data_A8 = .data:0x000000A8; // type:object size:0x18 -lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x7 data:string -lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x10 -lbl_1_data_D8 = .data:0x000000D8; // type:object size:0x8 -lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xB data:string -lbl_1_data_F0 = .data:0x000000F0; // type:object size:0x18 -lbl_1_data_108 = .data:0x00000108; // type:object size:0xB data:string -lbl_1_data_114 = .data:0x00000114; // type:object size:0xC -lbl_1_data_120 = .data:0x00000120; // type:object size:0x8 +__RTTI__7gfScene = .data:0x00000098; // type:object size:0x8 +lbl_1_data_A0 = .data:0x000000A0; // type:object size:0x7 scope:local data:string +__vt__6scDemo = .data:0x000000A8; // type:object size:0x18 +lbl_1_data_C0 = .data:0x000000C0; // type:object size:0x7 scope:local data:string +lbl_1_data_C8 = .data:0x000000C8; // type:object size:0x10 scope:local +__RTTI__6scDemo = .data:0x000000D8; // type:object size:0x8 +lbl_1_data_E0 = .data:0x000000E0; // type:object size:0xB scope:local data:string +__vt__10scTutorial = .data:0x000000F0; // type:object size:0x18 +lbl_1_data_108 = .data:0x00000108; // type:object size:0xB scope:local data:string +lbl_1_data_114 = .data:0x00000114; // type:object size:0xC scope:local +__RTTI__10scTutorial = .data:0x00000120; // type:object size:0x8 lbl_1_data_128 = .data:0x00000128; // type:object size:0x4 data:4byte lbl_1_data_12C = .data:0x0000012C; // type:object size:0x64 jumptable_1_data_190 = .data:0x00000190; // type:object size:0x34 scope:local @@ -994,11 +994,11 @@ lbl_1_data_13A0 = .data:0x000013A0; // type:object size:0x18 lbl_1_data_13B8 = .data:0x000013B8; // type:object size:0x9 data:string lbl_1_data_13C4 = .data:0x000013C4; // type:object size:0xC lbl_1_data_13D0 = .data:0x000013D0; // type:object size:0x30 -lbl_1_data_1400 = .data:0x00001400; // type:object size:0xC data:string -lbl_1_data_1410 = .data:0x00001410; // type:object size:0x18 -lbl_1_data_1428 = .data:0x00001428; // type:object size:0xC data:string -lbl_1_data_1434 = .data:0x00001434; // type:object size:0xC -lbl_1_data_1440 = .data:0x00001440; // type:object size:0x8 +lbl_1_data_1400 = .data:0x00001400; // type:object size:0xC scope:local data:string +__vt__11scStaffRoll = .data:0x00001410; // type:object size:0x18 +lbl_1_data_1428 = .data:0x00001428; // type:object size:0xC scope:local data:string +lbl_1_data_1434 = .data:0x00001434; // type:object size:0xC scope:local +__RTTI__11scStaffRoll = .data:0x00001440; // type:object size:0x8 lbl_1_data_1448 = .data:0x00001448; // type:object size:0xB data:string lbl_1_data_1454 = .data:0x00001454; // type:object size:0x17 data:string lbl_1_data_146C = .data:0x0000146C; // type:object size:0xD data:string @@ -1182,12 +1182,12 @@ lbl_1_data_403C = .data:0x0000403C; // type:object size:0x1C lbl_1_data_4058 = .data:0x00004058; // type:object size:0xE data:string lbl_1_data_4068 = .data:0x00004068; // type:object size:0x18 lbl_1_data_4080 = .data:0x00004080; // type:object size:0x50 -lbl_1_data_40D0 = .data:0x000040D0; // type:object size:0x10 data:string -lbl_1_data_40E0 = .data:0x000040E0; // type:object size:0x1A data:string -lbl_1_data_4100 = .data:0x00004100; // type:object size:0x18 -lbl_1_data_4118 = .data:0x00004118; // type:object size:0x10 data:string -lbl_1_data_4128 = .data:0x00004128; // type:object size:0x10 -lbl_1_data_4138 = .data:0x00004138; // type:object size:0x8 +lbl_1_data_40D0 = .data:0x000040D0; // type:object size:0x10 scope:local data:string +lbl_1_data_40E0 = .data:0x000040E0; // type:object size:0x1A scope:local data:string +__vt__15scNetTimeResult = .data:0x00004100; // type:object size:0x18 +lbl_1_data_4118 = .data:0x00004118; // type:object size:0x10 scope:local data:string +lbl_1_data_4128 = .data:0x00004128; // type:object size:0x10 scope:local +__RTTI__15scNetTimeResult = .data:0x00004138; // type:object size:0x8 lbl_1_data_4140 = .data:0x00004140; // type:object size:0xE data:string lbl_1_data_4150 = .data:0x00004150; // type:object size:0x12 data:string lbl_1_data_4168 = .data:0x00004168; // type:object size:0x18 @@ -1330,11 +1330,11 @@ lbl_1_data_5D18 = .data:0x00005D18; // type:object size:0x18 lbl_1_data_5D30 = .data:0x00005D30; // type:object size:0xA data:string lbl_1_data_5D3C = .data:0x00005D3C; // type:object size:0xC lbl_1_data_5D48 = .data:0x00005D48; // type:object size:0x8 -lbl_1_data_5D50 = .data:0x00005D50; // type:object size:0xD data:string -lbl_1_data_5D60 = .data:0x00005D60; // type:object size:0x18 -lbl_1_data_5D78 = .data:0x00005D78; // type:object size:0xD data:string -lbl_1_data_5D88 = .data:0x00005D88; // type:object size:0x10 -lbl_1_data_5D98 = .data:0x00005D98; // type:object size:0x8 +lbl_1_data_5D50 = .data:0x00005D50; // type:object size:0xD scope:local data:string +__vt__12scAdvSelChar = .data:0x00005D60; // type:object size:0x18 +lbl_1_data_5D78 = .data:0x00005D78; // type:object size:0xD scope:local data:string +lbl_1_data_5D88 = .data:0x00005D88; // type:object size:0x10 scope:local +__RTTI__12scAdvSelChar = .data:0x00005D98; // type:object size:0x8 lbl_1_data_5DA0 = .data:0x00005DA0; // type:object size:0xA data:string lbl_1_data_5DAC = .data:0x00005DAC; // type:object size:0xA data:string lbl_1_data_5DB8 = .data:0x00005DB8; // type:object size:0x1C diff --git a/config/RSBE01_02/symbols.txt b/config/RSBE01_02/symbols.txt index a6c7a70..d2c7655 100644 --- a/config/RSBE01_02/symbols.txt +++ b/config/RSBE01_02/symbols.txt @@ -2624,12 +2624,12 @@ fn_8002C510 = .text:0x8002C510; // type:function size:0x104 fn_8002C614 = .text:0x8002C614; // type:function size:0x178 fn_8002C78C = .text:0x8002C78C; // type:function size:0x134 fn_8002C8C0 = .text:0x8002C8C0; // type:function size:0x25C -fn_8002CB1C = .text:0x8002CB1C; // type:function size:0xF8 +setLoadModule__7gfSceneFPCcb = .text:0x8002CB1C; // type:function size:0xF8 __ct__14gfSceneManagerFv = .text:0x8002CC14; // type:function size:0x3BC create__14gfSceneManagerFv = .text:0x8002CFD0; // type:function size:0x48 getInstance__14gfSceneManagerFv = .text:0x8002D018; // type:function size:0x8 changeNextScene__14gfSceneManagerFv = .text:0x8002D020; // type:function size:0x13C -fn_8002D15C = .text:0x8002D15C; // type:function size:0x4 +setModule__7gfSceneFv = .text:0x8002D15C; // type:function size:0x4 registScene__14gfSceneManagerFv = .text:0x8002D160; // type:function size:0x20 registSequence__14gfSceneManagerFv = .text:0x8002D180; // type:function size:0x20 process__14gfSceneManagerFv = .text:0x8002D1A0; // type:function size:0x18C diff --git a/configure.py b/configure.py index 440f748..1915aa0 100755 --- a/configure.py +++ b/configure.py @@ -975,6 +975,11 @@ def MatchingFor(*versions): "cflags": cflags_rel, "host": False, "objects": [ + Object(Matching, "mo_scene/sora_scene/sc_demo.cpp"), + Object(Matching, "mo_scene/sora_scene/sc_tutorial.cpp"), + Object(Matching, "mo_scene/sora_scene/sc_staffroll.cpp"), + Object(Matching, "mo_scene/sora_scene/sc_net_time_result.cpp"), + Object(Matching, "mo_scene/sora_scene/sc_adv_selchar.cpp"), Object(Matching, "mo_scene/mo_scene.cpp"), ], }, diff --git a/include/lib/BrawlHeaders b/include/lib/BrawlHeaders index 979fb89..e88ff61 160000 --- a/include/lib/BrawlHeaders +++ b/include/lib/BrawlHeaders @@ -1 +1 @@ -Subproject commit 979fb8913a4859198738304c1b418feb0253820d +Subproject commit e88ff61b2f334a79468ba69d6adc74b0da5532f6 diff --git a/src/mo_scene/sora_scene/sc_adv_selchar.cpp b/src/mo_scene/sora_scene/sc_adv_selchar.cpp new file mode 100644 index 0000000..41fb56c --- /dev/null +++ b/src/mo_scene/sora_scene/sc_adv_selchar.cpp @@ -0,0 +1,27 @@ +#include +#include +#include +#include +#include +#include + +scAdvSelChar* scAdvSelChar::create() { + return new (Heaps::GlobalMode) scAdvSelChar("scAdvSelChar"); +} + +void scAdvSelChar::start() { } + +s32 scAdvSelChar::process() { + gfPadStatus status; + g_gfPadSystem->getSysPadStatus(0xF0, &status); + if (status.m_buttonsPressedThisFrame.bits & gfPadButtons::A) { + gfSceneManager* mgr = gfSceneManager::getInstance(); + mgr->unk1 = 0; + mgr->processStep = 2; + } + return 0; +} + +s32 scAdvSelChar::exit() { + return 0; +} diff --git a/src/mo_scene/sora_scene/sc_demo.cpp b/src/mo_scene/sora_scene/sc_demo.cpp new file mode 100644 index 0000000..8a9e0e3 --- /dev/null +++ b/src/mo_scene/sora_scene/sc_demo.cpp @@ -0,0 +1,32 @@ +#include +#include +#include +#include +#include +#include +#include +#include + +scDemo* scDemo::create() { + return new (Heaps::GlobalMode) scDemo("scDemo"); +} + +void scDemo::start() { + g_gfApplication->unkD0.endKeepScreen(); +} + +s32 scDemo::process() { + gfPadStatus status; + g_gfPadSystem->getSysPadStatus(0xF0, &status); + if (status.m_buttonsPressedThisFrame.bits & gfPadButtons::A) { + gfSceneManager* mgr = gfSceneManager::getInstance(); + mgr->unk1 = 0; + mgr->processStep = 2; + } + return 0; +} + +s32 scDemo::exit() { + g_gfApplication->unkD0.startKeepScreen(); + return 0; +} diff --git a/src/mo_scene/sora_scene/sc_net_time_result.cpp b/src/mo_scene/sora_scene/sc_net_time_result.cpp new file mode 100644 index 0000000..cd36211 --- /dev/null +++ b/src/mo_scene/sora_scene/sc_net_time_result.cpp @@ -0,0 +1,43 @@ +#include +#include +#include +#include +#include +#include +#include +#include +#include + +scNetTimeResult* scNetTimeResult::create() { + return new (Heaps::GlobalMode) scNetTimeResult("scNetTimeResult"); +} + +void scNetTimeResult::setModule() { + setLoadModule("sora_menu_time_result.rel", false); +} + +void scNetTimeResult::start() { + muWifiTimeResultTaskParam param = m_taskParam; + m_task = muWifiTimeResultTask::create(¶m); + g_gfApplication->unkD0.endKeepScreen(); +} + +s32 scNetTimeResult::process() { + gfPadStatus status; + g_gfPadSystem->getSysPadStatus(0xF0, &status); + if (status.m_buttonsPressedThisFrame.bits & gfPadButtons::A) { + gfSceneManager* mgr = gfSceneManager::getInstance(); + mgr->unk1 = 0; + mgr->processStep = 2; + } + return 0; +} + +s32 scNetTimeResult::exit() { + if (m_task) { + m_task->exit(); + m_task = nullptr; + } + g_gfApplication->unkD0.startKeepScreen(); + return 0; +} diff --git a/src/mo_scene/sora_scene/sc_staffroll.cpp b/src/mo_scene/sora_scene/sc_staffroll.cpp new file mode 100644 index 0000000..8c063c7 --- /dev/null +++ b/src/mo_scene/sora_scene/sc_staffroll.cpp @@ -0,0 +1,27 @@ +#include +#include +#include +#include +#include +#include + +scStaffRoll* scStaffRoll::create() { + return new (Heaps::GlobalMode) scStaffRoll("scStaffRoll"); +} + +void scStaffRoll::start() { } + +s32 scStaffRoll::process() { + gfPadStatus status; + g_gfPadSystem->getSysPadStatus(0xF0, &status); + if (status.m_buttonsPressedThisFrame.bits & gfPadButtons::A) { + gfSceneManager* mgr = gfSceneManager::getInstance(); + mgr->unk1 = 0; + mgr->processStep = 2; + } + return 0; +} + +s32 scStaffRoll::exit() { + return 0; +} diff --git a/src/mo_scene/sora_scene/sc_tutorial.cpp b/src/mo_scene/sora_scene/sc_tutorial.cpp new file mode 100644 index 0000000..049dda0 --- /dev/null +++ b/src/mo_scene/sora_scene/sc_tutorial.cpp @@ -0,0 +1,27 @@ +#include +#include +#include +#include +#include +#include + +scTutorial* scTutorial::create() { + return new (Heaps::GlobalMode) scTutorial("scTutorial"); +} + +void scTutorial::start() { } + +s32 scTutorial::process() { + gfPadStatus status; + g_gfPadSystem->getSysPadStatus(0xF0, &status); + if (status.m_buttonsPressedThisFrame.bits & gfPadButtons::A) { + gfSceneManager* mgr = gfSceneManager::getInstance(); + mgr->unk1 = 0; + mgr->processStep = 2; + } + return 0; +} + +s32 scTutorial::exit() { + return 0; +}