diff --git a/config/SOUE01/splits.txt b/config/SOUE01/splits.txt index 8564f3b8..2761472c 100644 --- a/config/SOUE01/splits.txt +++ b/config/SOUE01/splits.txt @@ -23,6 +23,7 @@ toBeSorted/unk_sorajima_list.cpp: toBeSorted/mpls.cpp: .text start:0x80006CE0 end:0x80006E08 align:16 .data start:0x804FD060 end:0x804FD0B8 + .sdata start:0x80571440 end:0x80571450 .sbss start:0x80574FA8 end:0x80574FB0 toBeSorted/mdl_base.cpp: @@ -256,6 +257,7 @@ d/d_lang.cpp: d/d_main.cpp: .text start:0x80054F90 end:0x80055170 align:16 .sbss start:0x805751D0 end:0x805751E0 + .bss start:0x80597758 end:0x80597A70 d/d_pad.cpp: .text start:0x80055170 end:0x8005961C align:16 @@ -322,7 +324,11 @@ d/d_stage_parse.cpp: d/d_sys.cpp: .text start:0x80064250 end:0x80064F28 align:16 .ctors start:0x804DB694 end:0x804DB698 + .rodata start:0x804E0C98 end:0x804E0F18 + .data start:0x8050DE58 end:0x8050DF10 .sbss start:0x80575228 end:0x80575248 + .sdata2 start:0x80577928 end:0x80577930 + .bss start:0x805A0720 end:0x805A0778 d/d_sys_init.cpp: .text start:0x80064F30 end:0x80065034 align:16 diff --git a/config/SOUE01/symbols.txt b/config/SOUE01/symbols.txt index 88820199..c067c69e 100644 --- a/config/SOUE01/symbols.txt +++ b/config/SOUE01/symbols.txt @@ -135,13 +135,13 @@ _bss_init_info = .init:0x800066FC; // type:object size:0x20 scope:global data:4b @eti_80006BD8 = extabindex:0x80006BD8; // type:object size:0xC scope:local hidden @eti_80006BE4 = extabindex:0x80006BE4; // type:object size:0xC scope:local hidden _eti_init_info = extabindex:0x80006BF0; // type:object size:0x20 scope:global -fn_80006C20 = .text:0x80006C20; // type:function size:0x4 +unknownStub = .text:0x80006C20; // type:function size:0x4 strequals = .text:0x80006C30; // type:function size:0x90 findSMA2 = .text:0x80006CC0; // type:function size:0x10 findSMA3 = .text:0x80006CD0; // type:function size:0x10 -fn_80006CE0 = .text:0x80006CE0; // type:function size:0x80 -fn_80006D60 = .text:0x80006D60; // type:function size:0x60 -fn_80006DC0 = .text:0x80006DC0; // type:function size:0x48 +initialize__4MplsFiPPc = .text:0x80006CE0; // type:function size:0x80 +tryLaunchMovie__4MplsFv = .text:0x80006D60; // type:function size:0x60 +forceLaunchMovie__4MplsFv = .text:0x80006DC0; // type:function size:0x48 fn_80006E10 = .text:0x80006E10; // type:function size:0x3C fn_80006E50 = .text:0x80006E50; // type:function size:0x58 printGameInfo__Fv = .text:0x80006EB0; // type:function size:0xBC scope:local @@ -552,7 +552,7 @@ create__3d2dFPQ23EGG4Heap = .text:0x80016630; // type:function size:0x58 setLytAllocator__3d2dFv = .text:0x80016690; // type:function size:0xC fn_800166A0 = .text:0x800166A0; // type:function size:0x58 create__3d3dFPQ23EGG4Heap = .text:0x80016700; // type:function size:0x160 -fn_80016860 = .text:0x80016860; // type:function size:0x28 +fn_80016860__3d3dFv = .text:0x80016860; // type:function size:0x28 createLightTextures__3d3dFv = .text:0x80016890; // type:function size:0x98 fn_80016930 = .text:0x80016930; // type:function size:0x2C worldToScreen__3d3dFR7mVec3_cRC7mVec3_c = .text:0x80016960; // type:function size:0x130 @@ -581,7 +581,7 @@ create3__Q23d3d13AnmMdlWrapperFR9dAcBase_cPvPvPCcPCcPQ33m3d5mdl_c13mdlCallback_c setAnm__Q23d3d14AnmMdlWrapper2FPCcQ23m3d10playMode_ef = .text:0x80017290; // type:function size:0xEC insertNode__3d3dFPQ23d3d12SomeListNodeff = .text:0x80017380; // type:function size:0xAC clearList__3d3dFv = .text:0x80017430; // type:function size:0xCC -fn_80017500 = .text:0x80017500; // type:function size:0x1DC +fn_80017500__3d3dFv = .text:0x80017500; // type:function size:0x1DC fn_800176E0 = .text:0x800176E0; // type:function size:0x10 unk2__3d3dFRQ34nw4r3g3d6ResMatRQ34nw4r3g3d14ResMatTevColorP13ActorLighting = .text:0x800176F0; // type:function size:0x418 setRoomTevColors__3d3dFQ34nw4r3g3d6ResMdlib = .text:0x80017B10; // type:function size:0x1D4 @@ -2236,12 +2236,12 @@ __sinit_\d_heap_cpp = .text:0x80054F00; // type:function size:0x30 scope:local getCurrentLanguage1__Fv = .text:0x80054F30; // type:function size:0x4 getCurrentLanguage2__Fv = .text:0x80054F40; // type:function size:0x4 getCurrentLanguage__Fv = .text:0x80054F50; // type:function size:0x38 -fn_80054F90 = .text:0x80054F90; // type:function size:0x18 -fn_80054FB0 = .text:0x80054FB0; // type:function size:0x24 -fn_80054FE0 = .text:0x80054FE0; // type:function size:0x20 -dMain__Create = .text:0x80055000; // type:function size:0x28 -dMain__Execute = .text:0x80055030; // type:function size:0x14 -dMain__main01 = .text:0x80055050; // type:function size:0x28 +fn_80054F90__FUl = .text:0x80054F90; // type:function size:0x18 +fn_80054FB0__FUl = .text:0x80054FB0; // type:function size:0x24 +fn_80054FE0__FUl = .text:0x80054FE0; // type:function size:0x20 +Create__5dMainFv = .text:0x80055000; // type:function size:0x28 +Execute__5dMainFv = .text:0x80055030; // type:function size:0x14 +main01__5dMainFPv = .text:0x80055050; // type:function size:0x28 main = .text:0x80055080; // type:function size:0xE4 scope:global control_mpls_callback__4dPadFll = .text:0x80055170; // type:function size:0x38 isDeviceTypeMpls__4dPadFUl = .text:0x800551B0; // type:function size:0x24 @@ -2780,10 +2780,10 @@ staticExecute__8dScene_cFv = .text:0x80062D00; // type:function size:0x68 setRootActor__8dScene_cFQ28fProfile14PROFILE_NAME_eUlll = .text:0x80062D70; // type:function size:0x30 __dt__8dScene_cFv = .text:0x80062DA0; // type:function size:0x5C scope:weak __sinit_\d_scene_cpp = .text:0x80062E00; // type:function size:0x3C scope:local -fn_80062E40 = .text:0x80062E40; // type:function size:0x4 -fn_80062E50 = .text:0x80062E50; // type:function size:0x60 -fn_80062EB0 = .text:0x80062EB0; // type:function size:0x4 -fn_80062EC0 = .text:0x80062EC0; // type:function size:0x4 +fn_80062E40__6dStateFv = .text:0x80062E40; // type:function size:0x4 +fn_80062E50__6dStateFv = .text:0x80062E50; // type:function size:0x60 +fn_80062EB0__6dStateFv = .text:0x80062EB0; // type:function size:0x4 +fn_80062EC0__6dStateFv = .text:0x80062EC0; // type:function size:0x4 handleBzsPcam__FiPC14BzsSectionHead = .text:0x80062ED0; // type:function size:0x1C scope:local handleBzsLyse__FiPC14BzsSectionHead = .text:0x80062EF0; // type:function size:0x20 scope:local handleBzsStif__FiPC14BzsSectionHead = .text:0x80062F10; // type:function size:0x54 scope:local @@ -2822,32 +2822,32 @@ parseStageBzs__FiPCv = .text:0x80064070; // type:function size:0x7C parseRoomBzs__FiPCv = .text:0x800640F0; // type:function size:0x70 parseRoomReactivateBzs__FiPCv = .text:0x80064160; // type:function size:0x70 parseRoomActivateBzs__FiPCv = .text:0x800641D0; // type:function size:0x7C -dSys_c__initAudioMgr = .text:0x80064250; // type:function size:0xB0 -dSys_c__beginRender = .text:0x80064300; // type:function size:0x38 -dSys_c__endRender = .text:0x80064340; // type:function size:0x18 -dSys_c__beginFrame = .text:0x80064360; // type:function size:0x68 -EGG__ConfigurationData__onBeginFrame = .text:0x800643D0; // type:function size:0x4 -dSys_c__endFrame = .text:0x800643E0; // type:function size:0x48 -EGG__ConfigurationData__onEndFrame = .text:0x80064430; // type:function size:0x4 -dSys_c__setBlack = .text:0x80064440; // type:function size:0x80 +initAudioMgr__6dSys_cFPQ23EGG4Heap = .text:0x80064250; // type:function size:0xB0 +beginRender__6dSys_cFv = .text:0x80064300; // type:function size:0x38 +endRender__6dSys_cFv = .text:0x80064340; // type:function size:0x18 +beginFrame__6dSys_cFv = .text:0x80064360; // type:function size:0x68 +onBeginFrame__Q23EGG126TSystemFv = .text:0x800643D0; // type:function size:0x4 +endFrame__6dSys_cFv = .text:0x800643E0; // type:function size:0x48 +onEndFrame__Q23EGG126TSystemFv = .text:0x80064430; // type:function size:0x4 +setBlack__6dSys_cFb = .text:0x80064440; // type:function size:0x80 setFrameRate__6dSys_cFUc = .text:0x800644C0; // type:function size:0x10 getFrameRate__6dSys_cFv = .text:0x800644D0; // type:function size:0x10 setClearColor__6dSys_cFQ34nw4r2ut5Color = .text:0x800644E0; // type:function size:0x60 -dSys_c__getClearColor = .text:0x80064540; // type:function size:0x14 -dSys_c__create = .text:0x80064560; // type:function size:0x3BC +getClearColor__6dSys_cFv = .text:0x80064540; // type:function size:0x14 +create__6dSys_cFv = .text:0x80064560; // type:function size:0x3BC setPosParam__Q23EGG14CoreControllerFff = .text:0x80064920; // type:function size:0x8 -EGG__TSystem__initialize = .text:0x80064930; // type:function size:0x1F4 -dSys_c__execute = .text:0x80064B30; // type:function size:0x268 -dSystem__fixHeaps = .text:0x80064DA0; // type:function size:0xB8 -dSystem__init = .text:0x80064E60; // type:function size:0x34 -EGG__ConfigurationData__initRenderMode = .text:0x80064EA0; // type:function size:0x4 -getVideo = .text:0x80064EB0; // type:function size:0x8 -getSystemHeap = .text:0x80064EC0; // type:function size:0x8 -getDisplay = .text:0x80064ED0; // type:function size:0x8 -getXfbManager = .text:0x80064EE0; // type:function size:0x8 -getPerfView = .text:0x80064EF0; // type:function size:0x14 -getSceneMgr = .text:0x80064F10; // type:function size:0x8 -getAudioMgr = .text:0x80064F20; // type:function size:0x8 +initialize__Q23EGG126TSystemFv = .text:0x80064930; // type:function size:0x1F4 +execute__6dSys_cFv = .text:0x80064B30; // type:function size:0x268 +fixHeaps__7dSystemFv = .text:0x80064DA0; // type:function size:0xB8 +__sinit_\d_sys_cpp = .text:0x80064E60; // type:function size:0x34 scope:local +initRenderMode__Q23EGG126TSystemFv = .text:0x80064EA0; // type:function size:0x4 +getVideo__Q23EGG126TSystemFv = .text:0x80064EB0; // type:function size:0x8 +getSystemHeap__Q23EGG126TSystemFv = .text:0x80064EC0; // type:function size:0x8 +getDisplay__Q23EGG126TSystemFv = .text:0x80064ED0; // type:function size:0x8 +getXfbMgr__Q23EGG126TSystemFv = .text:0x80064EE0; // type:function size:0x8 +getPerfView__Q23EGG126TSystemFv = .text:0x80064EF0; // type:function size:0x14 +getSceneMgr__Q23EGG126TSystemFv = .text:0x80064F10; // type:function size:0x8 +getAudioMgr__Q23EGG126TSystemFv = .text:0x80064F20; // type:function size:0x8 fn_80064F30 = .text:0x80064F30; // type:function size:0x24 fn_80064F60 = .text:0x80064F60; // type:function size:0x2C fn_80064F90 = .text:0x80064F90; // type:function size:0x30 @@ -8504,8 +8504,8 @@ fn_80152C30 = .text:0x80152C30; // type:function size:0xE8 fn_80152D20 = .text:0x80152D20; // type:function size:0x54 fn_80152D80 = .text:0x80152D80; // type:function size:0x5C create__18dLytSystemWindow_cFv = .text:0x80152DE0; // type:function size:0x3C -fn_80152E20 = .text:0x80152E20; // type:function size:0xC8 -fn_80152EF0 = .text:0x80152EF0; // type:function size:0x8 +fn_80152E20__18dLytSystemWindow_cFv = .text:0x80152E20; // type:function size:0xC8 +fn_80152EF0__18dLytSystemWindow_cFv = .text:0x80152EF0; // type:function size:0x8 fn_80152F00 = .text:0x80152F00; // type:function size:0x8 fn_80152F10__18dLytSystemWindow_cFv = .text:0x80152F10; // type:function size:0x10 setSelectBtn__18dLytSystemWindow_cFff = .text:0x80152F20; // type:function size:0x18 @@ -10250,8 +10250,8 @@ dAcOInsect_0xA4__12dAcOInsect_cFv = .text:0x80190660; // type:function size:0x8 __dt__12dAcOInsect_cFv = .text:0x80190670; // type:function size:0xA0 fn_80190710 = .text:0x80190710; // type:function size:0x14 fn_80190730 = .text:0x80190730; // type:function size:0x48 -fn_80190780 = .text:0x80190780; // type:function size:0x40 -fn_801907C0 = .text:0x801907C0; // type:function size:0x4 +fn_80190780__15SaveTimeRelatedFPQ23EGG4Heap = .text:0x80190780; // type:function size:0x40 +fn_801907C0__15SaveTimeRelatedFv = .text:0x801907C0; // type:function size:0x4 fn_801907D0__15SaveTimeRelatedFv = .text:0x801907D0; // type:function size:0x1C fn_801907F0__15SaveTimeRelatedFv = .text:0x801907F0; // type:function size:0x38 fn_80190830 = .text:0x80190830; // type:function size:0x50 @@ -17224,7 +17224,7 @@ my_vprintf__4sLibFPCcP16__va_list_struct = .text:0x802DEF90; // type:function si printf__4sLibFPCce = .text:0x802DEFE0; // type:function size:0x80 OSReport = .text:0x802DF060; // type:function size:0x80 scope:global OSVReport = .text:0x802DF0E0; // type:function size:0x4 scope:global -cCounter_c__clear = .text:0x802DF0F0; // type:function size:0x10 +clear__10cCounter_cFv = .text:0x802DF0F0; // type:function size:0x10 __dt__24DynamicModuleControlBaseFv = .text:0x802DF100; // type:function size:0xA0 __ct__24DynamicModuleControlBaseFv = .text:0x802DF1A0; // type:function size:0x48 link__24DynamicModuleControlBaseFv = .text:0x802DF1F0; // type:function size:0x94 @@ -17283,7 +17283,7 @@ cM__rad2s = .text:0x802E0A50; // type:function size:0x5C cM__U_GetAtanTable = .text:0x802E0AB0; // type:function size:0x34 atan2s__2cMFff = .text:0x802E0AF0; // type:function size:0x1BC atan2f__2cMFff = .text:0x802E0CB0; // type:function size:0x48 -cM__initRnd = .text:0x802E0D00; // type:function size:0x8 +initRnd__2cMFl = .text:0x802E0D00; // type:function size:0x8 rnd__2cMFv = .text:0x802E0D10; // type:function size:0x8 rndInt__2cMFi = .text:0x802E0D20; // type:function size:0x58 rndF__2cMFf = .text:0x802E0D80; // type:function size:0x38 @@ -28185,17 +28185,17 @@ roomStageHandlers = .rodata:0x804E0C00; // type:object size:0x10 scope:local stageRoomHandlers = .rodata:0x804E0C10; // type:object size:0x10 scope:local roomHandlers = .rodata:0x804E0C20; // type:object size:0x60 scope:local roomReactivateHandlers = .rodata:0x804E0C80; // type:object size:0x18 scope:local -lbl_804E0C98 = .rodata:0x804E0C98; // type:object size:0x3C -lbl_804E0CD4 = .rodata:0x804E0CD4; // type:object size:0x3C -lbl_804E0D10 = .rodata:0x804E0D10; // type:object size:0x3C -lbl_804E0D4C = .rodata:0x804E0D4C; // type:object size:0x3C -lbl_804E0D88 = .rodata:0x804E0D88; // type:object size:0x3C -lbl_804E0DC4 = .rodata:0x804E0DC4; // type:object size:0x3C -lbl_804E0E00 = .rodata:0x804E0E00; // type:object size:0x3C -lbl_804E0E3C = .rodata:0x804E0E3C; // type:object size:0x3C -lbl_804E0E78 = .rodata:0x804E0E78; // type:object size:0x3C -lbl_804E0EB4 = .rodata:0x804E0EB4; // type:object size:0x3C -lbl_804E0EF0 = .rodata:0x804E0EF0; // type:object size:0x28 +gRMO_Pal60_608x456Prog_16x9 = .rodata:0x804E0C98; // type:object size:0x3C +gRMO_Pal60_608x456IntDf_16x9 = .rodata:0x804E0CD4; // type:object size:0x3C +gRMO_Pal50_608x456IntDf_16x9 = .rodata:0x804E0D10; // type:object size:0x3C +gRMO_Ntsc_608x456Prog_16x9 = .rodata:0x804E0D4C; // type:object size:0x3C +gRMO_Ntsc_608x456IntDf_16x9 = .rodata:0x804E0D88; // type:object size:0x3C +gRMO_Pal60_608x456Prog_4x3 = .rodata:0x804E0DC4; // type:object size:0x3C +gRMO_Pal60_608x456IntDf_4x3 = .rodata:0x804E0E00; // type:object size:0x3C +gRMO_Pal50_608x456IntDf_4x3 = .rodata:0x804E0E3C; // type:object size:0x3C +gRMO_Ntsc_608x456Prog_4x3 = .rodata:0x804E0E78; // type:object size:0x3C +gRMO_Ntsc_608x456IntDf_4x3 = .rodata:0x804E0EB4; // type:object size:0x3C +gSysRenderModeObjSet = .rodata:0x804E0EF0; // type:object size:0x28 @LOCAL@ModeProc__Q26dReset8Manage_cFv@procs = .rodata:0x804E0F18; // type:object size:0x48 scope:local @LOCAL@ModeRequest__Q26dReset8Manage_cFQ36dReset8Manage_c6Mode_e@procs = .rodata:0x804E0F60; // type:object size:0x48 scope:local sInfos = .rodata:0x804E0FA8; // type:object size:0x246C scope:local data:4byte @@ -29272,10 +29272,11 @@ gTRKMemMap = .rodata:0x804FCFC0; // type:object size:0x10 data:4byte lbl_804FCFD0 = .rodata:0x804FCFD0; // type:object size:0x28 data:4byte lbl_804FCFF8 = .rodata:0x804FCFF8; // type:object size:0x28 data:4byte lbl_804FD020 = .rodata:0x804FD020; // type:object size:0x28 data:4byte -lbl_804FD060 = .data:0x804FD060; // type:object size:0xB data:string -lbl_804FD06C = .data:0x804FD06C; // type:object size:0xC data:string -lbl_804FD078 = .data:0x804FD078; // type:object size:0x1B data:string -lbl_804FD094 = .data:0x804FD094; // type:object size:0x24 +@805 = .data:0x804FD060; // type:object size:0xB data:string +@806 = .data:0x804FD06C; // type:object size:0xC data:string +@810 = .data:0x804FD078; // type:object size:0x1B data:string +@812 = .data:0x804FD094; // type:object size:0x12 data:string +@815 = .data:0x804FD0A8; // type:object size:0xB data:string lbl_804FD0B8 = .data:0x804FD0B8; // type:object size:0x10 @5819 = .data:0x804FD0C8; // type:object size:0x10 scope:local data:string ...data.0 = .data:0x804FD0C8; // type:label scope:local @@ -30885,10 +30886,13 @@ __vt__24daPlBaseScnObjCallback_c = .data:0x8050DDB8; // type:object size:0x20 @4670 = .data:0x8050DDE8; // type:object size:0xB scope:local data:string __vt__8dScene_c = .data:0x8050DDF8; // type:object size:0x4C @23343 = .data:0x8050DE48; // type:object size:0xE scope:local data:string -lbl_8050DE58 = .data:0x8050DE58; // type:object size:0x5C -lbl_8050DEB4 = .data:0x8050DEB4; // type:object size:0xD data:string -lbl_8050DEC4 = .data:0x8050DEC4; // type:object size:0xE data:string -RootHeapsManager__EGG__T_System<>__Configuration__vtable = .data:0x8050DED4; // type:object size:0x3C +@25556 = .data:0x8050DE58; // type:object size:0x11 scope:local data:string +@25619 = .data:0x8050DE6C; // type:object size:0x15 scope:local data:string +@25620 = .data:0x8050DE84; // type:object size:0x15 scope:local data:string +@25621 = .data:0x8050DE9C; // type:object size:0x15 scope:local data:string +@25756 = .data:0x8050DEB4; // type:object size:0xD scope:local data:string +@25757 = .data:0x8050DEC4; // type:object size:0xE scope:local data:string +__vt__Q23EGG126TSystem = .data:0x8050DED4; // type:object size:0x3C lbl_8050DF10 = .data:0x8050DF10; // type:object size:0x18 @9033 = .data:0x8050DF28; // type:object size:0x11 scope:local data:string @9034 = .data:0x8050DF3C; // type:object size:0x11 scope:local data:string @@ -39712,8 +39716,8 @@ jumptable_805713B0 = .data:0x805713B0; // type:object size:0x1C scope:local jumptable_805713CC = .data:0x805713CC; // type:object size:0x1C scope:local @stringBase0 = .data:0x805713E8; // type:object size:0x30 scope:local data:string_table gTRKExceptionStatus = .data:0x80571418; // type:object size:0x10 scope:local data:4byte -lbl_80571440 = .sdata:0x80571440; // type:object size:0x8 -lbl_80571448 = .sdata:0x80571448; // type:object size:0x8 data:string +@813 = .sdata:0x80571440; // type:object size:0x8 +@813 = .sdata:0x80571448; // type:object size:0x8 data:string @5820 = .sdata:0x80571450; // type:object size:0x3 scope:local data:string @5822 = .sdata:0x80571454; // type:object size:0x4 scope:local data:string @5824 = .sdata:0x80571458; // type:object size:0x5 scope:local data:string @@ -42057,9 +42061,9 @@ __float_huge = .sdata:0x80574F8C; // type:object size:0x4 align:4 data:float __double_huge = .sdata:0x80574F90; // type:object size:0x8 align:8 data:double lbl_80574FA0 = .sbss:0x80574FA0; // type:object size:0x4 data:4byte lbl_80574FA4 = .sbss:0x80574FA4; // type:object size:0x4 data:4byte -lbl_80574FA8 = .sbss:0x80574FA8; // type:object size:0x1 data:byte -lbl_80574FA9 = .sbss:0x80574FA9; // type:object size:0x1 data:byte -lbl_80574FAA = .sbss:0x80574FAA; // type:object size:0x6 data:byte +sMplsInitialized = .sbss:0x80574FA8; // type:object size:0x1 data:byte +sSkipMplsMovie = .sbss:0x80574FA9; // type:object size:0x1 data:byte +sIsNormalMode = .sbss:0x80574FAA; // type:object size:0x1 data:byte sButtonSequencePtr = .sbss:0x80574FB0; // type:object size:0x4 scope:local data:4byte sAsserted = .sbss:0x80574FB4; // type:object size:0x1 scope:local data:byte @GUARD@exceptionCreate__FPQ23EGG4Heap@mapFile = .sbss:0x80574FB5; // type:object size:0x1 scope:local data:byte @@ -42179,8 +42183,8 @@ layoutEx2Heap__5dHeap = .sbss:0x805751BC; // type:object size:0x4 data:4byte layoutResHeap__5dHeap = .sbss:0x805751C0; // type:object size:0x4 data:4byte fontHeap__5dHeap = .sbss:0x805751C4; // type:object size:0x4 data:4byte HBMHeap__5dHeap = .sbss:0x805751C8; // type:object size:0x4 data:4byte -lbl_805751D0 = .sbss:0x805751D0; // type:object size:0x8 data:4byte -dMain__g_InitialTime = .sbss:0x805751D8; // type:object size:0x8 data:4byte +lbl_805751D0 = .sbss:0x805751D0; // type:object size:0x4 data:4byte +g_InitialTime = .sbss:0x805751D8; // type:object size:0x8 data:4byte m_connected__Q24dPad4ex_c = .sbss:0x805751E0; // type:object size:0x4 sInstance__13dPadManager_c = .sbss:0x805751E8; // type:object size:0x8 data:4byte LINK_ROT = .sbss:0x805751F0; // type:object size:0x2 data:2byte @@ -42202,8 +42206,8 @@ ms_RootHeapMem2__6dSys_c = .sbss:0x80575230; // type:object size:0x4 data:4byte s_OrgMEM1ArenaLo__7dSystem = .sbss:0x80575234; // type:object size:0x4 data:4byte s_NewMEM1ArenaLo__7dSystem = .sbss:0x80575238; // type:object size:0x4 data:4byte s_OrgMEM1ArenaHi__7dSystem = .sbss:0x8057523C; // type:object size:0x4 data:4byte -s_NewMEM1ArenaHi__7dSystem = .sbss:0x80575240; // type:object size:0x8 data:4byte -dSystem__myDylinkInitPhase = .sbss:0x80575248; // type:object size:0x8 +s_NewMEM1ArenaHi__7dSystem = .sbss:0x80575240; // type:object size:0x4 data:4byte +myDylinkInitPhase__7dSystem = .sbss:0x80575248; // type:object size:0x8 sInstance__18ArcCallbackHandler = .sbss:0x80575250; // type:object size:0x8 data:4byte aspectRatio = .sbss:0x80575258; // type:object size:0x4 align:4 data:float sInstance__8dCsMgr_c = .sbss:0x80575260; // type:object size:0x4 data:4byte @@ -42664,7 +42668,7 @@ Ydchuff = .sbss:0x80575B60; // type:object size:0x8 data:4byte sm_numberMemo__10sStateID_c = .sbss:0x80575B68; // type:object size:0x4 data:4byte sAssertCallback__7sAssert = .sbss:0x80575B70; // type:object size:0x4 data:4byte m_gameFrame__10cCounter_c = .sbss:0x80575B78; // type:object size:0x4 data:4byte -lbl_80575B7C = .sbss:0x80575B7C; // type:object size:0x4 data:4byte +m_unkCounter__10cCounter_c = .sbss:0x80575B7C; // type:object size:0x4 data:4byte mFirst__24DynamicModuleControlBase = .sbss:0x80575B80; // type:object size:0x4 data:4byte mLast__24DynamicModuleControlBase = .sbss:0x80575B84; // type:object size:0x4 data:4byte sAllocBytes__20DynamicModuleControl = .sbss:0x80575B88; // type:object size:0x4 data:4byte @@ -44186,8 +44190,8 @@ lbl_80577910 = .sdata2:0x80577910; // type:object size:0x4 align:4 data:float lbl_80577914 = .sdata2:0x80577914; // type:object size:0x4 align:4 data:float lbl_80577918 = .sdata2:0x80577918; // type:object size:0x4 align:4 data:float roomActivateHandlers = .sdata2:0x80577920; // type:object size:0x8 scope:local -lbl_80577928 = .sdata2:0x80577928; // type:object size:0x4 align:4 data:float -lbl_8057792C = .sdata2:0x8057792C; // type:object size:0x4 align:4 data:float +@25622 = .sdata2:0x80577928; // type:object size:0x4 align:4 data:float +@25623 = .sdata2:0x8057792C; // type:object size:0x4 align:4 data:float lbl_80577930 = .sdata2:0x80577930; // type:object size:0x8 align:8 data:double lbl_80577938 = .sdata2:0x80577938; // type:object size:0x8 align:8 data:double lbl_80577940 = .sdata2:0x80577940; // type:object size:0x4 align:4 data:float @@ -44976,7 +44980,7 @@ lbl_805779E0 = .sdata2:0x805779E0; // type:object size:0x4 align:4 data:float @808 = .sdata2:0x80579118; // type:object size:0x8 scope:local data:string @809 = .sdata2:0x80579120; // type:object size:0x8 scope:local data:string @810 = .sdata2:0x80579128; // type:object size:0x8 scope:local data:string -@811 = .sdata2:0x80579130; // type:object size:0x8 scope:local data:string +@813 = .sdata2:0x80579130; // type:object size:0x8 scope:local data:string @812 = .sdata2:0x80579138; // type:object size:0x8 scope:local data:string @813 = .sdata2:0x80579140; // type:object size:0x7 scope:local data:string @814 = .sdata2:0x80579148; // type:object size:0x7 scope:local data:string diff --git a/configure.py b/configure.py index be8bbde8..0ffae62f 100644 --- a/configure.py +++ b/configure.py @@ -410,9 +410,9 @@ config.libs = [ "scratch_preset_id": 169, "progress_category": "game", "objects": [ - Object(NonMatching, "toBeSorted/d_lib.cpp"), + Object(Matching, "toBeSorted/d_lib.cpp"), Object(NonMatching, "toBeSorted/unk_sorajima_list.cpp"), - Object(NonMatching, "toBeSorted/mpls.cpp"), + Object(Matching, "toBeSorted/mpls.cpp"), Object(NonMatching, "toBeSorted/mdl_base.cpp"), Object(Matching, "toBeSorted/d_exception.cpp"), Object(NonMatching, "toBeSorted/d_jstudio.cpp"), @@ -465,7 +465,7 @@ config.libs = [ Object(Matching, "d/d_scene.cpp"), Object(NonMatching, "d/d_state.cpp"), Object(Matching, "d/d_stage_parse.cpp"), - Object(NonMatching, "d/d_sys.cpp"), + Object(Matching, "d/d_sys.cpp"), Object(NonMatching, "d/d_sys_init.cpp"), Object(Matching, "toBeSorted/arc_callback_handler.cpp"), Object(NonMatching, "d/d_video.cpp"), diff --git a/include/c/c_counter.h b/include/c/c_counter.h index 8efe5f26..cb19146d 100644 --- a/include/c/c_counter.h +++ b/include/c/c_counter.h @@ -9,8 +9,19 @@ public: return m_gameFrame; } + static void IncrementGameFrame() { + m_gameFrame++; + } + + static void IncrementUnkCounter() { + m_unkCounter++; + } + + static void clear(); + private: static s32 m_gameFrame; + static s32 m_unkCounter; }; #endif diff --git a/include/d/d_hbm.h b/include/d/d_hbm.h index f02387db..7f6ce607 100644 --- a/include/d/d_hbm.h +++ b/include/d/d_hbm.h @@ -12,7 +12,7 @@ public: typedef void (*MenuInitCallback)(); - static void CreateInstance(); + static void CreateInstance(EGG::Heap *); static Manage_c *GetInstance(); Manage_c(EGG::Heap *); diff --git a/include/d/d_main.h b/include/d/d_main.h new file mode 100644 index 00000000..57332fe9 --- /dev/null +++ b/include/d/d_main.h @@ -0,0 +1,14 @@ +#ifndef D_MAIN_H +#define D_MAIN_H + +#include "rvl/OS.h" + +namespace dMain { + +void Create(); +void Execute(); +void *main01(void *arg); + +}; // namespace dMain + +#endif // D_MAIN_H diff --git a/include/d/d_scene.h b/include/d/d_scene.h index 8c2334a0..eee6ea91 100644 --- a/include/d/d_scene.h +++ b/include/d/d_scene.h @@ -19,6 +19,10 @@ public: static dBase_c *staticExecute(); static void setRootActor(fProfile::PROFILE_NAME_e rootActor, u32 params, s32 fadeInType, s32 fadeOutType); + static dFader_c *getFader() { + return &sFader; + } + protected: static dFader_c sFader; }; diff --git a/include/d/d_state.h b/include/d/d_state.h new file mode 100644 index 00000000..b6384b7d --- /dev/null +++ b/include/d/d_state.h @@ -0,0 +1,13 @@ +#ifndef D_STATE_H +#define D_STATE_H + +namespace dState { + +void fn_80062E40(); +void fn_80062E50(); +void fn_80062EB0(); +bool fn_80062EC0(); + +} + +#endif // D_STATE_H diff --git a/include/d/d_sys.h b/include/d/d_sys.h index 7557307d..cf602af8 100644 --- a/include/d/d_sys.h +++ b/include/d/d_sys.h @@ -3,18 +3,53 @@ #include "common.h" #include "egg/core/eggHeap.h" +#include "egg/core/eggProcessMeter.h" +#include "egg/core/eggSystem.h" #include "nw4r/ut/ut_Color.h" +#define ROUND_UP_4KB(x) (((u32)(x) + 4096 - 1) & ~(4096 - 1)) + +typedef EGG::TSystem< + EGG::Video, EGG::AsyncDisplay, EGG::XfbManager, EGG::SimpleAudioMgr, EGG::SceneManager, EGG::ProcessMeter> + System; + +class dSndMgr_c; + class dSys_c { public: + static dSndMgr_c *initAudioMgr(EGG::Heap *heap); + + static void beginRender(); + static void endRender(); + static void beginFrame(); + static void endFrame(); + + static bool setBlack(bool); /* Frame rate values: 1 - 60fps, 2 - 30fps */ static void setFrameRate(u8); static u8 getFrameRate(); static void setClearColor(nw4r::ut::Color clr); + static nw4r::ut::Color getClearColor(); + static void create(); + static void execute(); + +public: + static System *ms_configuration_p; static EGG::Heap *ms_RootHeapMem1; static EGG::Heap *ms_RootHeapMem2; }; +namespace dSystem { + +extern void *s_OrgMEM1ArenaLo; +extern void *s_NewMEM1ArenaLo; +extern void *s_OrgMEM1ArenaHi; +extern void *s_NewMEM1ArenaHi; + +void fixHeaps(); + +}; // namespace dSystem + #endif diff --git a/include/d/d_sys_init.h b/include/d/d_sys_init.h new file mode 100644 index 00000000..b87d3526 --- /dev/null +++ b/include/d/d_sys_init.h @@ -0,0 +1,12 @@ +#ifndef D_SYS_INIT_H +#define D_SYS_INIT_H + +#include "s/s_Phase.hpp" + +namespace dSystem { + +extern sPhase_c myDylinkInitPhase; + +} + +#endif // D_SYS_INIT_H diff --git a/include/d/lyt/d_lyt_system_window.h b/include/d/lyt/d_lyt_system_window.h index 838edc69..87094657 100644 --- a/include/d/lyt/d_lyt_system_window.h +++ b/include/d/lyt/d_lyt_system_window.h @@ -80,6 +80,8 @@ public: s32 getField_0xDE0() const; bool getField_0xDFC() const; + void fn_80152E20(); + void fn_80152EF0(); void fn_80152F10(); bool fn_80152F50() const; bool fn_80152F60() const; diff --git a/include/egg/core/eggController.h b/include/egg/core/eggController.h index a790b667..8dd447a4 100644 --- a/include/egg/core/eggController.h +++ b/include/egg/core/eggController.h @@ -346,6 +346,10 @@ public: sConnectCallback = cb; } + static void setWPADWorkSize(u32 size) { + sWPADWorkSize = size; + } + private: CoreControllerMgr(); diff --git a/include/egg/core/eggDisplay.h b/include/egg/core/eggDisplay.h index cdf2fe7a..986cfcda 100644 --- a/include/egg/core/eggDisplay.h +++ b/include/egg/core/eggDisplay.h @@ -58,6 +58,10 @@ public: mClearColor = color; } + u32 getClearZ() { + return mClearZ; + } + public: static u32 sTickPeriod; }; diff --git a/include/egg/core/eggDvdFile.h b/include/egg/core/eggDvdFile.h index ac36ae4e..6b511e2a 100644 --- a/include/egg/core/eggDvdFile.h +++ b/include/egg/core/eggDvdFile.h @@ -39,7 +39,7 @@ public: /* vt 0x24 */ virtual bool open(const char *path, void *); public: - void initialize(); + static void initialize(); DvdFile(); void initiate(); s32 sync(); diff --git a/include/egg/core/eggProcessMeter.h b/include/egg/core/eggProcessMeter.h new file mode 100644 index 00000000..3641c43d --- /dev/null +++ b/include/egg/core/eggProcessMeter.h @@ -0,0 +1,14 @@ +#ifndef EGG_PROCESS_METER_H +#define EGG_PROCESS_METER_H + +#include "egg/core/eggThread.h" + +namespace EGG { + +class PerformanceView {}; + +class ProcessMeter : public Thread, public PerformanceView {}; + +}; + +#endif // EGG_PROCESS_METER_H diff --git a/include/egg/core/eggSystem.h b/include/egg/core/eggSystem.h index 919c84da..634b7578 100644 --- a/include/egg/core/eggSystem.h +++ b/include/egg/core/eggSystem.h @@ -2,30 +2,37 @@ #define EGG_SYSTEM_H #include "common.h" -#include "egg/core/eggHeap.h" - +#include "egg/core/eggVideo.h" namespace EGG { class Display; -class XfbManager; +class Heap; +class PerformanceView; +class SceneManager; +class SimpleAudioMgr; +class Thread; class Video; +class XfbManager; class ConfigurationData { public: + inline ConfigurationData() : mSystemHeapSize(0x89000) {} + // vtable at 0x0 /* vt 0x08 */ virtual Video *getVideo() = 0; /* vt 0x0C */ virtual Heap *getSystemHeap() = 0; /* vt 0x10 */ virtual Display *getDisplay() = 0; /* vt 0x14 */ virtual XfbManager *getXfbMgr() = 0; - /* vt 0x18 */ virtual void getPerfView() = 0; - /* vt 0x1C */ virtual void getScnMgr() = 0; - /* vt 0x20 */ virtual void getAudioMgr() = 0; + /* vt 0x18 */ virtual PerformanceView *getPerfView() = 0; + /* vt 0x1C */ virtual SceneManager *getSceneMgr() = 0; + /* vt 0x20 */ virtual SimpleAudioMgr *getAudioMgr() = 0; /* vt 0x24 */ virtual void onBeginFrame(); /* vt 0x28 */ virtual void onEndFrame(); /* vt 0x2C */ virtual void initRenderMode(); /* vt 0x30 */ virtual void initMemory(); /* vt 0x34 */ virtual void run(); + /* vt 0x38 */ virtual void initialize() = 0; public: /* 0x04 */ u32 mRoot1HeapStart; @@ -41,12 +48,11 @@ public: /* 0x2C */ u32 field_0x2C; /* 0x30 */ u32 mSystemHeapStart; /* 0x34 */ u32 mSystemHeapSize; - /* 0x38 */ u32 mGraphicsFifoSize; - /* 0x3C */ u32 field_0x3C; }; class BaseSystem { public: static ConfigurationData *mConfigData; + static XfbManager *getXfbMgr() { return mConfigData->getXfbMgr(); } @@ -59,7 +65,60 @@ public: }; template -class TSystem : ConfigurationData {}; +class TSystem : public ConfigurationData { +public: + inline TSystem() : mGraphicsFifoSize(0x80000), mRenderMode() {} + + void onBeginFrame() override {} + void onEndFrame() override {} + + void initRenderMode() override {} + void initialize() override {} + + Video *getVideo() override { + return static_cast