diff --git a/config/SOUE01/rels/d_s_bootNP/symbols.txt b/config/SOUE01/rels/d_s_bootNP/symbols.txt index 31754f44..df5ebcec 100644 --- a/config/SOUE01/rels/d_s_bootNP/symbols.txt +++ b/config/SOUE01/rels/d_s_bootNP/symbols.txt @@ -9,7 +9,7 @@ sprintf__16SizedString<128>FPCce = .text:0x000001F0; // type:function size:0xD0 cb2__9dScBoot_cFv = .text:0x000002C0; // type:function size:0x84 cb3__9dScBoot_cFv = .text:0x00000350; // type:function size:0x30 cb4__9dScBoot_cFv = .text:0x00000380; // type:function size:0x4C -fn_3_3D0 = .text:0x000003D0; // type:function size:0xC +hbmInitCallback__Fv = .text:0x000003D0; // type:function size:0xC scope:local dvdCallback__9dScBoot_cFPv = .text:0x000003E0; // type:function size:0x40 cb5__9dScBoot_cFv = .text:0x00000420; // type:function size:0x7C cb6__9dScBoot_cFv = .text:0x000004A0; // type:function size:0x17C @@ -80,113 +80,113 @@ isSameName__23sFStateID_c<9dScBoot_c>CFPCc = .text:0x00002760; // type:function _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global -lbl_3_rodata_0 = .rodata:0x00000000; // type:object size:0x4 data:float -lbl_3_rodata_4 = .rodata:0x00000004; // type:object size:0x4 align:4 data:float +lbl_3_rodata_0 = .rodata:0x00000000; // type:object size:0x4 scope:local data:float +lbl_3_rodata_4 = .rodata:0x00000004; // type:object size:0x4 scope:local align:4 data:float sCallbacks__9dScBoot_c = .data:0x00000000; // type:object size:0x78 data:4byte -lbl_3_data_78 = .data:0x00000078; // type:object size:0x20 -lbl_3_data_98 = .data:0x00000098; // type:object size:0x1C -lbl_3_data_B4 = .data:0x000000B4; // type:object size:0x14 -lbl_3_data_C8 = .data:0x000000C8; // type:object size:0x8 -lbl_3_data_D0 = .data:0x000000D0; // type:object size:0x8 -lbl_3_data_D8 = .data:0x000000D8; // type:object size:0x8 -lbl_3_data_E0 = .data:0x000000E0; // type:object size:0x10 -lbl_3_data_F0 = .data:0x000000F0; // type:object size:0x10 -lbl_3_data_100 = .data:0x00000100; // type:object size:0xC -lbl_3_data_10C = .data:0x0000010C; // type:object size:0xC -lbl_3_data_118 = .data:0x00000118; // type:object size:0x8 -lbl_3_data_120 = .data:0x00000120; // type:object size:0x8 -lbl_3_data_128 = .data:0x00000128; // type:object size:0x8 -lbl_3_data_130 = .data:0x00000130; // type:object size:0x8 -lbl_3_data_138 = .data:0x00000138; // type:object size:0x8 -lbl_3_data_140 = .data:0x00000140; // type:object size:0xC -lbl_3_data_14C = .data:0x0000014C; // type:object size:0xC -lbl_3_data_158 = .data:0x00000158; // type:object size:0x10 -lbl_3_data_168 = .data:0x00000168; // type:object size:0x8 data:string -lbl_3_data_170 = .data:0x00000170; // type:object size:0x8 data:string -lbl_3_data_178 = .data:0x00000178; // type:object size:0x8 -lbl_3_data_180 = .data:0x00000180; // type:object size:0xC -lbl_3_data_18C = .data:0x0000018C; // type:object size:0xC data:string -lbl_3_data_198 = .data:0x00000198; // type:object size:0xC data:string -lbl_3_data_1A4 = .data:0x000001A4; // type:object size:0xC -lbl_3_data_1B0 = .data:0x000001B0; // type:object size:0x8 -lbl_3_data_1B8 = .data:0x000001B8; // type:object size:0xC -lbl_3_data_1C4 = .data:0x000001C4; // type:object size:0x10 -lbl_3_data_1D4 = .data:0x000001D4; // type:object size:0x10 -lbl_3_data_1E4 = .data:0x000001E4; // type:object size:0xC -lbl_3_data_1F0 = .data:0x000001F0; // type:object size:0xC -lbl_3_data_1FC = .data:0x000001FC; // type:object size:0xC -lbl_3_data_208 = .data:0x00000208; // type:object size:0xC -lbl_3_data_214 = .data:0x00000214; // type:object size:0xC -lbl_3_data_220 = .data:0x00000220; // type:object size:0xC -lbl_3_data_22C = .data:0x0000022C; // type:object size:0xC -lbl_3_data_238 = .data:0x00000238; // type:object size:0x10 -lbl_3_data_248 = .data:0x00000248; // type:object size:0x8 data:string -lbl_3_data_250 = .data:0x00000250; // type:object size:0x8 data:string -lbl_3_data_258 = .data:0x00000258; // type:object size:0xC -lbl_3_data_264 = .data:0x00000264; // type:object size:0xC -lbl_3_data_270 = .data:0x00000270; // type:object size:0xC -lbl_3_data_27C = .data:0x0000027C; // type:object size:0xC -lbl_3_data_288 = .data:0x00000288; // type:object size:0xC -lbl_3_data_294 = .data:0x00000294; // type:object size:0xC -lbl_3_data_2A0 = .data:0x000002A0; // type:object size:0x10 -lbl_3_data_2B0 = .data:0x000002B0; // type:object size:0xC data:string -lbl_3_data_2BC = .data:0x000002BC; // type:object size:0xC -lbl_3_data_2C8 = .data:0x000002C8; // type:object size:0xC -lbl_3_data_2D4 = .data:0x000002D4; // type:object size:0xC data:string -lbl_3_data_2E0 = .data:0x000002E0; // type:object size:0x10 -lbl_3_data_2F0 = .data:0x000002F0; // type:object size:0x10 data:string -lbl_3_data_300 = .data:0x00000300; // type:object size:0x14 -lbl_3_data_314 = .data:0x00000314; // type:object size:0xC data:string -lbl_3_data_320 = .data:0x00000320; // type:object size:0x8 -lbl_3_data_328 = .data:0x00000328; // type:object size:0xC -lbl_3_data_334 = .data:0x00000334; // type:object size:0x10 -lbl_3_data_344 = .data:0x00000344; // type:object size:0x10 -lbl_3_data_354 = .data:0x00000354; // type:object size:0xC -lbl_3_data_360 = .data:0x00000360; // type:object size:0x8 -lbl_3_data_368 = .data:0x00000368; // type:object size:0xC -lbl_3_data_374 = .data:0x00000374; // type:object size:0xC data:string -lbl_3_data_380 = .data:0x00000380; // type:object size:0xC data:string -lbl_3_data_38C = .data:0x0000038C; // type:object size:0xC data:string -lbl_3_data_398 = .data:0x00000398; // type:object size:0xC -lbl_3_data_3A4 = .data:0x000003A4; // type:object size:0xC -lbl_3_data_3B0 = .data:0x000003B0; // type:object size:0x10 -lbl_3_data_3C0 = .data:0x000003C0; // type:object size:0x10 -lbl_3_data_3D0 = .data:0x000003D0; // type:object size:0x8 data:string -lbl_3_data_3D8 = .data:0x000003D8; // type:object size:0x8 data:string -lbl_3_data_3E0 = .data:0x000003E0; // type:object size:0x10 data:string -lbl_3_data_3F0 = .data:0x000003F0; // type:object size:0x10 -lbl_3_data_400 = .data:0x00000400; // type:object size:0xC -lbl_3_data_40C = .data:0x0000040C; // type:object size:0xC data:string -lbl_3_data_418 = .data:0x00000418; // type:object size:0xC -lbl_3_data_424 = .data:0x00000424; // type:object size:0xC data:string -lbl_3_data_430 = .data:0x00000430; // type:object size:0x4 data:string -lbl_3_data_434 = .data:0x00000434; // type:object size:0x10 -lbl_3_data_444 = .data:0x00000444; // type:object size:0xC -lbl_3_data_450 = .data:0x00000450; // type:object size:0xC -lbl_3_data_45C = .data:0x0000045C; // type:object size:0xC -lbl_3_data_468 = .data:0x00000468; // type:object size:0x18 -lbl_3_data_480 = .data:0x00000480; // type:object size:0x10 data:string -lbl_3_data_490 = .data:0x00000490; // type:object size:0xC -lbl_3_data_49C = .data:0x0000049C; // type:object size:0xC data:string -lbl_3_data_4A8 = .data:0x000004A8; // type:object size:0x8 -lbl_3_data_4B0 = .data:0x000004B0; // type:object size:0xC data:string -lbl_3_data_4BC = .data:0x000004BC; // type:object size:0xC data:string -lbl_3_data_4C8 = .data:0x000004C8; // type:object size:0xC data:string -lbl_3_data_4D4 = .data:0x000004D4; // type:object size:0xC -lbl_3_data_4E0 = .data:0x000004E0; // type:object size:0xC -lbl_3_data_4EC = .data:0x000004EC; // type:object size:0xC -lbl_3_data_4F8 = .data:0x000004F8; // type:object size:0x10 -lbl_3_data_508 = .data:0x00000508; // type:object size:0xC -lbl_3_data_514 = .data:0x00000514; // type:object size:0x14 -lbl_3_data_528 = .data:0x00000528; // type:object size:0x14 -lbl_3_data_53C = .data:0x0000053C; // type:object size:0xC -lbl_3_data_548 = .data:0x00000548; // type:object size:0xC -lbl_3_data_554 = .data:0x00000554; // type:object size:0xC -lbl_3_data_560 = .data:0x00000560; // type:object size:0x8 -lbl_3_data_568 = .data:0x00000568; // type:object size:0x22C +lbl_3_data_78 = .data:0x00000078; // type:object size:0x20 scope:local +lbl_3_data_98 = .data:0x00000098; // type:object size:0x1C scope:local +lbl_3_data_B4 = .data:0x000000B4; // type:object size:0x14 scope:local +lbl_3_data_C8 = .data:0x000000C8; // type:object size:0x8 scope:local +lbl_3_data_D0 = .data:0x000000D0; // type:object size:0x8 scope:local +lbl_3_data_D8 = .data:0x000000D8; // type:object size:0x8 scope:local +lbl_3_data_E0 = .data:0x000000E0; // type:object size:0x10 scope:local +lbl_3_data_F0 = .data:0x000000F0; // type:object size:0x10 scope:local +lbl_3_data_100 = .data:0x00000100; // type:object size:0xC scope:local +lbl_3_data_10C = .data:0x0000010C; // type:object size:0xC scope:local +lbl_3_data_118 = .data:0x00000118; // type:object size:0x8 scope:local +lbl_3_data_120 = .data:0x00000120; // type:object size:0x8 scope:local +lbl_3_data_128 = .data:0x00000128; // type:object size:0x8 scope:local +lbl_3_data_130 = .data:0x00000130; // type:object size:0x8 scope:local +lbl_3_data_138 = .data:0x00000138; // type:object size:0x8 scope:local +lbl_3_data_140 = .data:0x00000140; // type:object size:0xC scope:local +lbl_3_data_14C = .data:0x0000014C; // type:object size:0xC scope:local +lbl_3_data_158 = .data:0x00000158; // type:object size:0x10 scope:local +lbl_3_data_168 = .data:0x00000168; // type:object size:0x8 scope:local data:string +lbl_3_data_170 = .data:0x00000170; // type:object size:0x8 scope:local data:string +lbl_3_data_178 = .data:0x00000178; // type:object size:0x8 scope:local +lbl_3_data_180 = .data:0x00000180; // type:object size:0xC scope:local +lbl_3_data_18C = .data:0x0000018C; // type:object size:0xC scope:local data:string +lbl_3_data_198 = .data:0x00000198; // type:object size:0xC scope:local data:string +lbl_3_data_1A4 = .data:0x000001A4; // type:object size:0xC scope:local +lbl_3_data_1B0 = .data:0x000001B0; // type:object size:0x8 scope:local +lbl_3_data_1B8 = .data:0x000001B8; // type:object size:0xC scope:local +lbl_3_data_1C4 = .data:0x000001C4; // type:object size:0x10 scope:local +lbl_3_data_1D4 = .data:0x000001D4; // type:object size:0x10 scope:local +lbl_3_data_1E4 = .data:0x000001E4; // type:object size:0xC scope:local +lbl_3_data_1F0 = .data:0x000001F0; // type:object size:0xC scope:local +lbl_3_data_1FC = .data:0x000001FC; // type:object size:0xC scope:local +lbl_3_data_208 = .data:0x00000208; // type:object size:0xC scope:local +lbl_3_data_214 = .data:0x00000214; // type:object size:0xC scope:local +lbl_3_data_220 = .data:0x00000220; // type:object size:0xC scope:local +lbl_3_data_22C = .data:0x0000022C; // type:object size:0xC scope:local +lbl_3_data_238 = .data:0x00000238; // type:object size:0x10 scope:local +lbl_3_data_248 = .data:0x00000248; // type:object size:0x8 scope:local data:string +lbl_3_data_250 = .data:0x00000250; // type:object size:0x8 scope:local data:string +lbl_3_data_258 = .data:0x00000258; // type:object size:0xC scope:local +lbl_3_data_264 = .data:0x00000264; // type:object size:0xC scope:local +lbl_3_data_270 = .data:0x00000270; // type:object size:0xC scope:local +lbl_3_data_27C = .data:0x0000027C; // type:object size:0xC scope:local +lbl_3_data_288 = .data:0x00000288; // type:object size:0xC scope:local +lbl_3_data_294 = .data:0x00000294; // type:object size:0xC scope:local +lbl_3_data_2A0 = .data:0x000002A0; // type:object size:0x10 scope:local +lbl_3_data_2B0 = .data:0x000002B0; // type:object size:0xC scope:local data:string +lbl_3_data_2BC = .data:0x000002BC; // type:object size:0xC scope:local +lbl_3_data_2C8 = .data:0x000002C8; // type:object size:0xC scope:local +lbl_3_data_2D4 = .data:0x000002D4; // type:object size:0xC scope:local data:string +lbl_3_data_2E0 = .data:0x000002E0; // type:object size:0x10 scope:local +lbl_3_data_2F0 = .data:0x000002F0; // type:object size:0x10 scope:local data:string +lbl_3_data_300 = .data:0x00000300; // type:object size:0x14 scope:local +lbl_3_data_314 = .data:0x00000314; // type:object size:0xC scope:local data:string +lbl_3_data_320 = .data:0x00000320; // type:object size:0x8 scope:local +lbl_3_data_328 = .data:0x00000328; // type:object size:0xC scope:local +lbl_3_data_334 = .data:0x00000334; // type:object size:0x10 scope:local +lbl_3_data_344 = .data:0x00000344; // type:object size:0x10 scope:local +lbl_3_data_354 = .data:0x00000354; // type:object size:0xC scope:local +lbl_3_data_360 = .data:0x00000360; // type:object size:0x8 scope:local +lbl_3_data_368 = .data:0x00000368; // type:object size:0xC scope:local +lbl_3_data_374 = .data:0x00000374; // type:object size:0xC scope:local data:string +lbl_3_data_380 = .data:0x00000380; // type:object size:0xC scope:local data:string +lbl_3_data_38C = .data:0x0000038C; // type:object size:0xC scope:local data:string +lbl_3_data_398 = .data:0x00000398; // type:object size:0xC scope:local +lbl_3_data_3A4 = .data:0x000003A4; // type:object size:0xC scope:local +lbl_3_data_3B0 = .data:0x000003B0; // type:object size:0x10 scope:local +lbl_3_data_3C0 = .data:0x000003C0; // type:object size:0x10 scope:local +lbl_3_data_3D0 = .data:0x000003D0; // type:object size:0x8 scope:local data:string +lbl_3_data_3D8 = .data:0x000003D8; // type:object size:0x8 scope:local data:string +lbl_3_data_3E0 = .data:0x000003E0; // type:object size:0x10 scope:local data:string +lbl_3_data_3F0 = .data:0x000003F0; // type:object size:0x10 scope:local +lbl_3_data_400 = .data:0x00000400; // type:object size:0xC scope:local +lbl_3_data_40C = .data:0x0000040C; // type:object size:0xC scope:local data:string +lbl_3_data_418 = .data:0x00000418; // type:object size:0xC scope:local +lbl_3_data_424 = .data:0x00000424; // type:object size:0xC scope:local data:string +lbl_3_data_430 = .data:0x00000430; // type:object size:0x4 scope:local data:string +lbl_3_data_434 = .data:0x00000434; // type:object size:0x10 scope:local +lbl_3_data_444 = .data:0x00000444; // type:object size:0xC scope:local +lbl_3_data_450 = .data:0x00000450; // type:object size:0xC scope:local +lbl_3_data_45C = .data:0x0000045C; // type:object size:0xC scope:local +lbl_3_data_468 = .data:0x00000468; // type:object size:0x18 scope:local +lbl_3_data_480 = .data:0x00000480; // type:object size:0x10 scope:local data:string +lbl_3_data_490 = .data:0x00000490; // type:object size:0xC scope:local +lbl_3_data_49C = .data:0x0000049C; // type:object size:0xC scope:local data:string +lbl_3_data_4A8 = .data:0x000004A8; // type:object size:0x8 scope:local +lbl_3_data_4B0 = .data:0x000004B0; // type:object size:0xC scope:local data:string +lbl_3_data_4BC = .data:0x000004BC; // type:object size:0xC scope:local data:string +lbl_3_data_4C8 = .data:0x000004C8; // type:object size:0xC scope:local data:string +lbl_3_data_4D4 = .data:0x000004D4; // type:object size:0xC scope:local +lbl_3_data_4E0 = .data:0x000004E0; // type:object size:0xC scope:local +lbl_3_data_4EC = .data:0x000004EC; // type:object size:0xC scope:local +lbl_3_data_4F8 = .data:0x000004F8; // type:object size:0x10 scope:local +lbl_3_data_508 = .data:0x00000508; // type:object size:0xC scope:local +lbl_3_data_514 = .data:0x00000514; // type:object size:0x14 scope:local +lbl_3_data_528 = .data:0x00000528; // type:object size:0x14 scope:local +lbl_3_data_53C = .data:0x0000053C; // type:object size:0xC scope:local +lbl_3_data_548 = .data:0x00000548; // type:object size:0xC scope:local +lbl_3_data_554 = .data:0x00000554; // type:object size:0xC scope:local +lbl_3_data_560 = .data:0x00000560; // type:object size:0x8 scope:local +lbl_3_data_568 = .data:0x00000568; // type:object size:0x22C scope:local g_profile_BOOT = .data:0x00000794; // type:object size:0xC -lbl_3_data_7A0 = .data:0x000007A0; // type:object size:0x44 -lbl_3_data_7E4 = .data:0x000007E4; // type:object size:0x4 +lbl_3_data_7A0 = .data:0x000007A0; // type:object size:0x44 scope:local +lbl_3_data_7E4 = .data:0x000007E4; // type:object size:0x4 scope:local __vt__9dScBoot_c = .data:0x000007E8; // type:object size:0x4C __vt__47sFStateMgr_c<9dScBoot_c,20sStateMethodUsr_FI_c> = .data:0x00000838; // type:object size:0x30 __vt__77sStateMgr_c<9dScBoot_c,20sStateMethodUsr_FI_c,12sFStateFct_c,13sStateIDChk_c> = .data:0x00000868; // type:object size:0x30 @@ -194,10 +194,10 @@ __vt__24sFStateFct_c<9dScBoot_c> = .data:0x00000898; // type:object size:0x14 __vt__21sFState_c<9dScBoot_c> = .data:0x000008B0; // type:object size:0x18 __vt__19sFPhase<9dScBoot_c> = .data:0x000008C8; // type:object size:0x24 __vt__Q23d2d10ResAccIf_c = .data:0x000008EC; // type:object size:0x14 -lbl_3_data_900 = .data:0x00000900; // type:object size:0xF8 -lbl_3_data_9F8 = .data:0x000009F8; // type:object size:0x34 +lbl_3_data_900 = .data:0x00000900; // type:object size:0xF8 scope:local +__vt__23sFStateID_c<9dScBoot_c> = .data:0x000009F8; // type:object size:0x34 __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global -lbl_3_bss_8 = .bss:0x00000008; // type:object size:0x10 data:4byte +lbl_3_bss_8 = .bss:0x00000008; // type:object size:0x10 scope:local data:4byte StateID_Init__9dScBoot_c = .bss:0x00000018; // type:object size:0x30 data:4byte StateID_Strap__9dScBoot_c = .bss:0x00000058; // type:object size:0x30 data:4byte StateID_Connect__9dScBoot_c = .bss:0x00000098; // type:object size:0x30 data:4byte diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index e6d865bf..d4b5273b 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -19937,7 +19937,7 @@ saveState2__15dSndPlayerMgr_cFv = .text:0x8035DEF0; // type:function size:0x38 popToState2__15dSndPlayerMgr_cFv = .text:0x8035DF30; // type:function size:0x24 getFreeSize__15dSndPlayerMgr_cFv = .text:0x8035DF60; // type:function size:0x54 stopAllSound__15dSndPlayerMgr_cFl = .text:0x8035DFC0; // type:function size:0x3C -fn_8035E000 = .text:0x8035E000; // type:function size:0xD4 +fn_8035E000__15dSndPlayerMgr_cFv = .text:0x8035E000; // type:function size:0xD4 fn_8035E0E0 = .text:0x8035E0E0; // type:function size:0xCC shutdown__15dSndPlayerMgr_cFl = .text:0x8035E1B0; // type:function size:0x68 isShutdown__15dSndPlayerMgr_cFv = .text:0x8035E220; // type:function size:0x2C diff --git a/configure.py b/configure.py index 9a240a9c..d1e82176 100644 --- a/configure.py +++ b/configure.py @@ -2860,7 +2860,7 @@ config.libs = [ Rel(NonMatching, "d_lyt_seeker_stone", "REL/d/d_lyt_seeker_stone.cpp"), Rel(NonMatching, "d_lyt_title_BG", "REL/d/d_lyt_title_BG.cpp"), Rel(Matching, "d_profile", "REL/d/d_profile.cpp"), - Rel(NonMatching, "d_s_boot", "REL/d/d_s_boot.cpp"), + Rel(Matching, "d_s_boot", "REL/d/d_s_boot.cpp"), Rel(NonMatching, "d_title_manager", "REL/d/d_title_manager.cpp"), Rel(Matching, "d_t_action", "REL/d/t/d_t_action.cpp"), Rel(NonMatching, "d_t_at0", "REL/d/t/d_t_at0.cpp"), diff --git a/include/d/d_hbm.h b/include/d/d_hbm.h index aa0a42a6..f02387db 100644 --- a/include/d/d_hbm.h +++ b/include/d/d_hbm.h @@ -10,6 +10,8 @@ public: HBM_MANAGE_ACTIVE = 2, }; + typedef void (*MenuInitCallback)(); + static void CreateInstance(); static Manage_c *GetInstance(); @@ -47,6 +49,10 @@ public: return mState; } + void setMenuInitCallback(MenuInitCallback cb) { + mMenuInitCallback = cb; + } + private: static Manage_c *s_pInstance; @@ -54,5 +60,7 @@ private: /* 0x210 */ ManageState_e mState; /* 0x218 */ UNKWORD field_0x214; /* 0x218 */ u32 mFlags; + /* 0x21C */ u8 _0x21C[0x224 - 0x21C]; + /* 0x224 */ MenuInitCallback mMenuInitCallback; }; } // namespace dHbm diff --git a/include/d/d_s_boot.h b/include/d/d_s_boot.h index 428f04e5..5f5b5b4c 100644 --- a/include/d/d_s_boot.h +++ b/include/d/d_s_boot.h @@ -97,7 +97,7 @@ private: /* 0x068 */ strap_c mStrapScreen; /* 0x55C */ sFPhase mPhases; /* 0x570 */ mDvd_callback_c *mpDvdCallback; - /* 0x574 */ STATE_MGR_DECLARE(dScBoot_c); + /* 0x574 */ UI_STATE_MGR_DECLARE(dScBoot_c); /* 0x5B4 */ dFader_c mFader; /* 0x5D4 */ s32 mProgressStage; /* 0x5D8 */ s32 field_0x5D8; diff --git a/include/d/snd/d_snd_player_mgr.h b/include/d/snd/d_snd_player_mgr.h index 67ba6eb4..351026fc 100644 --- a/include/d/snd/d_snd_player_mgr.h +++ b/include/d/snd/d_snd_player_mgr.h @@ -52,6 +52,7 @@ public: void enterHbm(); void leaveHbm(); + bool fn_8035E000(); void fn_8035E1B0(u16); bool fn_8035E220(); void fn_8035E250(u16); diff --git a/include/s/s_StateMgr.hpp b/include/s/s_StateMgr.hpp index 507c7ddd..a5d3d3f4 100644 --- a/include/s/s_StateMgr.hpp +++ b/include/s/s_StateMgr.hpp @@ -17,7 +17,7 @@ * @ingroup state */ template class Factory, class Check> -class sStateMgr_c : sStateMgrIf_c { +class sStateMgr_c : public sStateMgrIf_c { public: sStateMgr_c(T &owner) : mFactory(owner), mMethod(mCheck, mFactory, sStateID::null) {} diff --git a/src/REL/d/d_s_boot.cpp b/src/REL/d/d_s_boot.cpp index c72c7fc2..349b46a1 100644 --- a/src/REL/d/d_s_boot.cpp +++ b/src/REL/d/d_s_boot.cpp @@ -20,6 +20,7 @@ #include "d/d_sys.h" #include "d/lyt/d_lyt_battery.h" #include "d/lyt/d_lyt_system_window.h" +#include "d/snd/d_snd_player_mgr.h" #include "f/f_base.h" #include "f/f_profile.h" #include "f/f_profile_name.h" @@ -101,7 +102,16 @@ sFPhaseBase::sFPhaseState dScBoot_c::cb4() { return sFPhaseBase::PHASE_NEXT; } -void *dScBoot_c::dvdCallback(void *data) {} +static void hbmInitCallback() { + dSndPlayerMgr_c::GetInstance()->fn_8035E000(); +} + +void *dScBoot_c::dvdCallback(void *data) { + dSndPlayerMgr_c::GetInstance()->setupState0(); + dHbm::Manage_c::GetInstance()->setMenuInitCallback(hbmInitCallback); + dPad::setConnectCallback(); + return reinterpret_cast(true); +} sFPhaseBase::sFPhaseState dScBoot_c::cb5() { if (mpDvdCallback == nullptr) { @@ -451,7 +461,8 @@ int dScBoot_c::doDelete() { int dScBoot_c::execute() { mFader.calc(); - mStateMgr.executeState(); + // TODO - fakematch? We need to prevent the inline from being emitted right after this function... + static_cast(mStateMgr).executeState(); sFPhaseBase::sFPhaseState state = executeLoadPhase(); if (mAllDataLoaded == false && state == sFPhaseBase::PHASE_ALL_DONE) { mAllDataLoaded = true;