mirror of
https://github.com/zeldaret/ss
synced 2026-06-19 23:43:01 -04:00
Merge pull request #305 from bgsamm/d_main
Matches for d_main, d_sys, & mpls
This commit is contained in:
@@ -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
|
||||
|
||||
+80
-76
@@ -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__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .text:0x800643D0; // type:function size:0x4
|
||||
endFrame__6dSys_cFv = .text:0x800643E0; // type:function size:0x48
|
||||
onEndFrame__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .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__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .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__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .text:0x80064EA0; // type:function size:0x4
|
||||
getVideo__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .text:0x80064EB0; // type:function size:0x8
|
||||
getSystemHeap__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .text:0x80064EC0; // type:function size:0x8
|
||||
getDisplay__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .text:0x80064ED0; // type:function size:0x8
|
||||
getXfbMgr__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .text:0x80064EE0; // type:function size:0x8
|
||||
getPerfView__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .text:0x80064EF0; // type:function size:0x14
|
||||
getSceneMgr__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .text:0x80064F10; // type:function size:0x8
|
||||
getAudioMgr__Q23EGG126TSystem<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter>Fv = .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<Q23EGG5Video,Q23EGG12AsyncDisplay,Q23EGG10XfbManager,Q23EGG14SimpleAudioMgr,Q23EGG12SceneManager,Q23EGG12ProcessMeter> = .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
|
||||
|
||||
+3
-3
@@ -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"),
|
||||
|
||||
@@ -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
|
||||
|
||||
+1
-1
@@ -12,7 +12,7 @@ public:
|
||||
|
||||
typedef void (*MenuInitCallback)();
|
||||
|
||||
static void CreateInstance();
|
||||
static void CreateInstance(EGG::Heap *);
|
||||
static Manage_c *GetInstance();
|
||||
|
||||
Manage_c(EGG::Heap *);
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
};
|
||||
|
||||
@@ -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
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
@@ -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;
|
||||
|
||||
@@ -346,6 +346,10 @@ public:
|
||||
sConnectCallback = cb;
|
||||
}
|
||||
|
||||
static void setWPADWorkSize(u32 size) {
|
||||
sWPADWorkSize = size;
|
||||
}
|
||||
|
||||
private:
|
||||
CoreControllerMgr();
|
||||
|
||||
|
||||
@@ -58,6 +58,10 @@ public:
|
||||
mClearColor = color;
|
||||
}
|
||||
|
||||
u32 getClearZ() {
|
||||
return mClearZ;
|
||||
}
|
||||
|
||||
public:
|
||||
static u32 sTickPeriod;
|
||||
};
|
||||
|
||||
@@ -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();
|
||||
|
||||
@@ -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
|
||||
@@ -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 TVideo, class TDisplay, class TXfbManager, class TAudioManager, class TSceneManager, class TPerfView>
|
||||
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<Video *>(mVideo);
|
||||
}
|
||||
|
||||
Heap *getSystemHeap() override {
|
||||
return static_cast<Heap *>(mSystemHeap);
|
||||
}
|
||||
|
||||
Display *getDisplay() override {
|
||||
return static_cast<Display *>(mDisplay);
|
||||
}
|
||||
|
||||
XfbManager *getXfbMgr() override {
|
||||
return static_cast<XfbManager *>(mXfbMgr);
|
||||
}
|
||||
|
||||
PerformanceView *getPerfView() override {
|
||||
return static_cast<PerformanceView *>(mPerfView);
|
||||
}
|
||||
|
||||
SceneManager *getSceneMgr() override {
|
||||
return static_cast<SceneManager *>(mSceneMgr);
|
||||
}
|
||||
|
||||
SimpleAudioMgr *getAudioMgr() override {
|
||||
return static_cast<SimpleAudioMgr *>(mAudioMgr);
|
||||
}
|
||||
|
||||
// Trick to fix weak function order in d_sys.cpp
|
||||
// https://github.com/zeldaret/ss/pull/305#issuecomment-4201728492
|
||||
void doInitialize() {
|
||||
initialize();
|
||||
}
|
||||
|
||||
public:
|
||||
/* 0x38 */ u32 mGraphicsFifoSize;
|
||||
/* 0x3C */ GXRenderModeObj *mRenderMode;
|
||||
/* 0x40 */ TAudioManager *mAudioMgr;
|
||||
/* 0x44 */ TVideo *mVideo;
|
||||
/* 0x48 */ TXfbManager *mXfbMgr;
|
||||
/* 0x4c */ TDisplay *mDisplay;
|
||||
/* 0x50 */ TPerfView *mPerfView;
|
||||
/* 0x54 */ TSceneManager *mSceneMgr;
|
||||
};
|
||||
|
||||
} // namespace EGG
|
||||
|
||||
|
||||
@@ -20,7 +20,9 @@ public:
|
||||
/* 0x08 */ u32 mConfiguredTime;
|
||||
|
||||
public:
|
||||
Video() : pRenderMode(0), mFlag(), mConfiguredTime(){};
|
||||
Video() : pRenderMode(0), mFlag(0), mConfiguredTime() {};
|
||||
Video(const RenderModeObjSet *set) : pRenderMode(0), mFlag(0), mConfiguredTime() { initialize(nullptr, set); };
|
||||
|
||||
void initialize(GXRenderModeObj *, const RenderModeObjSet *);
|
||||
GXRenderModeObj *configure(GXRenderModeObj *, const RenderModeObjSet *);
|
||||
static u32 getTickPerVRetrace(u32 tvFormat);
|
||||
|
||||
@@ -15,6 +15,7 @@ public:
|
||||
/* 0xC */ u8 mNumXfbs; // Total number of Xfbs ever attached
|
||||
/* 0xD */ u8 mNumXfbs_Copy; // Unsure of purpose yet, but showing wont proceed until its under 3
|
||||
public:
|
||||
XfbManager() : mNextXfb(), mToCopyXfb(), mToShowXfb(), mNumXfbs(), mNumXfbs_Copy() {}
|
||||
bool isRegisterd(Xfb &xfb) const; // yes. this is correct spelling
|
||||
bool attach(Xfb *xfb);
|
||||
void copyEFB(bool);
|
||||
|
||||
@@ -35,6 +35,7 @@ public:
|
||||
PROC_FLAG_DELETE = GET_PROC_FLAG(DELETE),
|
||||
PROC_FLAG_DRAW = GET_PROC_FLAG(DRAW)
|
||||
};
|
||||
|
||||
fManager_c(fBase_c *owner) : connect_node(owner), execute_node(owner), draw_node(owner), search_node(owner) {}
|
||||
~fManager_c() {}
|
||||
int getSearchTableNum();
|
||||
@@ -43,6 +44,14 @@ public:
|
||||
static fBase_c *searchBaseByGroupType(u8 groupType, const fBase_c *parent = nullptr);
|
||||
static void mainLoop();
|
||||
|
||||
static void setStopProcFlags(u32 flags) {
|
||||
m_StopProcInf |= flags;
|
||||
}
|
||||
|
||||
static void maskStopProcFlags(u32 flags) {
|
||||
m_StopProcInf &= flags;
|
||||
}
|
||||
|
||||
private:
|
||||
fTrNdBa_c connect_node; ///< The node in ::m_connectManage.
|
||||
fLiNdPrio_c execute_node; ///< The node in ::m_executeManage.
|
||||
|
||||
+3
-2
@@ -9,10 +9,11 @@
|
||||
|
||||
// Note: names are taken from NSMBW where available but a lot are made up
|
||||
|
||||
void unk_initDecompressors();
|
||||
|
||||
namespace mDvd {
|
||||
|
||||
void unk_initDecompressors();
|
||||
void setAutoStreamDecomp(bool arg);
|
||||
|
||||
extern void *somePtr;
|
||||
|
||||
class UncompressInfo_c {
|
||||
|
||||
@@ -19,6 +19,8 @@ extern BOOL __OSInReboot;
|
||||
void __OSGetExecParams(OSExecParams *out);
|
||||
void __OSLaunchMenu(void);
|
||||
|
||||
void OSExecl(const char* dolfile, const char* arg0, ...);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
@@ -12,6 +12,8 @@ extern "C" {
|
||||
|
||||
#define OS_THREAD_STACK_MAGIC 0xDEADBABE
|
||||
|
||||
typedef s32 OSPriority;
|
||||
|
||||
typedef enum {
|
||||
OS_THREAD_STATE_EXITED = 0,
|
||||
OS_THREAD_STATE_READY = 1,
|
||||
@@ -97,6 +99,7 @@ s32 OSSuspendThread(OSThread *thread);
|
||||
void OSSleepThread(OSThreadQueue *queue);
|
||||
void OSWakeupThread(OSThreadQueue *queue);
|
||||
BOOL OSSetThreadPriority(OSThread *thread, s32 prio);
|
||||
OSPriority OSGetThreadPriority(OSThread *thread);
|
||||
void OSClearStack(u8 val);
|
||||
void OSSleepTicks(s64 ticks);
|
||||
|
||||
|
||||
@@ -74,6 +74,7 @@ u32 SCGetCounterBias(void);
|
||||
void SCGetBtDeviceInfoArray(SCBtDeviceInfoArray *info);
|
||||
void SCSetBtDeviceInfoArray(const SCBtDeviceInfoArray *info);
|
||||
u32 SCGetBtDpdSensibility(void);
|
||||
BOOL SCGetMplsMoviePlay(void);
|
||||
u8 SCGetWpadMotorMode(void);
|
||||
void SCSetWpadMotorMode(u8 mode);
|
||||
u8 SCGetWpadSensorBarPosition(void);
|
||||
|
||||
@@ -571,6 +571,7 @@ BOOL WPADStopSimpleSync(void);
|
||||
BOOL WPADCancelSyncDevice(void);
|
||||
WPADSimpleSyncCallback *WPADSetSimpleSyncCallback(WPADSimpleSyncCallback *cb);
|
||||
void WPADRegisterAllocator(WPADAllocFunc *alloc, WPADFreeFunc *free);
|
||||
u32 WPADGetWorkMemorySize(void);
|
||||
WPADLibStatus WPADGetStatus(void);
|
||||
u8 WPADGetRadioSensitivity(WPADChannel chan);
|
||||
void WPADGetAddress(WPADChannel chan, BD_ADDR_PTR addr);
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef ARC_CALLBACK_HANDLER_H
|
||||
#define ARC_CALLBACK_HANDLER_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
void *ArcCallbackHandlerCreate(u32);
|
||||
|
||||
#endif // ARC_CALLBACK_HANDLER_H
|
||||
@@ -25,6 +25,10 @@ bool isOnScreen(const mVec3_c &worldPos);
|
||||
void screenToWorld(mVec3_c &result, const mVec3_c &screenPos);
|
||||
void createLightTextures();
|
||||
|
||||
void fn_80016860();
|
||||
void clearList();
|
||||
void fn_80017500();
|
||||
|
||||
class AnmMdlWrapper : public m3d::mdlAnmChr {
|
||||
public:
|
||||
AnmMdlWrapper();
|
||||
|
||||
@@ -0,0 +1,20 @@
|
||||
#ifndef D_LIB_H
|
||||
#define D_LIB_H
|
||||
|
||||
#include "common.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
extern u32 lbl_80574FA0;
|
||||
extern u32 lbl_80574FA4;
|
||||
|
||||
void unknownStub();
|
||||
bool strequals(const char *lhs, const char *rhs);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif // D_LIB_H
|
||||
@@ -0,0 +1,12 @@
|
||||
#ifndef MPLS_H
|
||||
#define MPLS_H
|
||||
|
||||
namespace Mpls {
|
||||
|
||||
void initialize(int argc, char **argv);
|
||||
void tryLaunchMovie();
|
||||
void forceLaunchMovie();
|
||||
|
||||
}; // namespace Mpls
|
||||
|
||||
#endif // MPLS_H
|
||||
@@ -2,6 +2,7 @@
|
||||
#define UNK_SAVE_TIME_H
|
||||
|
||||
#include "common.h"
|
||||
#include "egg/core/eggHeap.h"
|
||||
|
||||
class SaveTimeRelated {
|
||||
public:
|
||||
@@ -17,6 +18,8 @@ public:
|
||||
return field_0x30;
|
||||
}
|
||||
|
||||
static void fn_80190780(EGG::Heap *heap);
|
||||
void fn_801907C0();
|
||||
s64 fn_801907D0();
|
||||
void fn_801907F0();
|
||||
void fn_801909A0();
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
#include "d/d_main.h"
|
||||
|
||||
#include "d/d_sys.h"
|
||||
#include "f/f_manager.h"
|
||||
#include "toBeSorted/d_lib.h"
|
||||
#include "toBeSorted/mpls.h"
|
||||
|
||||
#include "rvl/OS.h"
|
||||
|
||||
u32 lbl_805751D0;
|
||||
OSTime g_InitialTime;
|
||||
|
||||
bool fn_80054F90(u32 val) {
|
||||
return lbl_805751D0 & val;
|
||||
}
|
||||
|
||||
void fn_80054FB0(u32 val) {
|
||||
u32 flags = lbl_805751D0;
|
||||
|
||||
if (!flags) {
|
||||
fManager_c::setStopProcFlags(
|
||||
fManager_c::PROC_FLAG_CONNECT | fManager_c::PROC_FLAG_CREATE | fManager_c::PROC_FLAG_EXECUTE |
|
||||
fManager_c::PROC_FLAG_DELETE
|
||||
);
|
||||
}
|
||||
|
||||
lbl_805751D0 = flags | val;
|
||||
}
|
||||
|
||||
void fn_80054FE0(u32 val) {
|
||||
lbl_805751D0 &= ~val;
|
||||
|
||||
if (!lbl_805751D0) {
|
||||
fManager_c::maskStopProcFlags(fManager_c::PROC_FLAG_DRAW);
|
||||
}
|
||||
}
|
||||
|
||||
void dMain::Create() {
|
||||
dSys_c::create();
|
||||
dSys_c::setBlack(false);
|
||||
}
|
||||
|
||||
void dMain::Execute() {
|
||||
while (true) {
|
||||
dSys_c::execute();
|
||||
}
|
||||
}
|
||||
|
||||
void *dMain::main01(void *arg) {
|
||||
Create();
|
||||
Execute();
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
#define STACK_SIZE 0xF000
|
||||
|
||||
static OSThread MAIN_THREAD;
|
||||
|
||||
void main(int argc, char **argv) {
|
||||
u8 pStackBase[STACK_SIZE] __attribute__((aligned(32)));
|
||||
|
||||
unknownStub();
|
||||
g_InitialTime = OSGetTime();
|
||||
dSystem::fixHeaps();
|
||||
|
||||
Mpls::initialize(argc, argv);
|
||||
Mpls::tryLaunchMovie();
|
||||
|
||||
OSThread *curThread = OSGetCurrentThread();
|
||||
OSPriority curPrio = OSGetThreadPriority(curThread);
|
||||
|
||||
OSCreateThread(&MAIN_THREAD, dMain::main01, nullptr, &pStackBase[STACK_SIZE], STACK_SIZE, curPrio, 0);
|
||||
OSResumeThread(&MAIN_THREAD);
|
||||
|
||||
OSSetThreadPriority(curThread, 31);
|
||||
OSSuspendThread(curThread);
|
||||
}
|
||||
+739
@@ -0,0 +1,739 @@
|
||||
#include "d/d_sys.h"
|
||||
|
||||
#include "c/c_counter.h"
|
||||
#include "c/c_math.h"
|
||||
#include "d/d_cursor_hit_check.h"
|
||||
#include "d/d_dvd.h"
|
||||
#include "d/d_dvd_unk.h"
|
||||
#include "d/d_gfx.h"
|
||||
#include "d/d_hbm.h"
|
||||
#include "d/d_heap.h"
|
||||
#include "d/d_heap_alloc.h"
|
||||
#include "d/d_pad.h"
|
||||
#include "d/d_reset.h"
|
||||
#include "d/d_scene.h"
|
||||
#include "d/d_state.h"
|
||||
#include "d/d_sys_init.h"
|
||||
#include "d/flag/flag_managers.h"
|
||||
#include "d/lyt/d_lyt_battery.h"
|
||||
#include "d/lyt/d_lyt_system_window.h"
|
||||
#include "d/snd/d_snd_mgr.h"
|
||||
#include "egg/core/eggAssertHeap.h"
|
||||
#include "egg/core/eggAsyncDisplay.h"
|
||||
#include "egg/core/eggController.h"
|
||||
#include "egg/core/eggDisplay.h"
|
||||
#include "egg/core/eggDvdFile.h"
|
||||
#include "egg/core/eggExpHeap.h"
|
||||
#include "egg/core/eggGraphicsFifo.h"
|
||||
#include "egg/core/eggSystem.h"
|
||||
#include "egg/core/eggVideo.h"
|
||||
#include "egg/core/eggXfbManager.h"
|
||||
#include "egg/gfx/eggStateGX.h"
|
||||
#include "f/f_manager.h"
|
||||
#include "m/m3d/m3d.h"
|
||||
#include "m/m_dvd.h"
|
||||
#include "m/m_heap.h"
|
||||
#include "m/m_pad.h"
|
||||
#include "m/m_video.h"
|
||||
#include "nw4r/ut/ut_Color.h"
|
||||
#include "toBeSorted/arc_callback_handler.h"
|
||||
#include "toBeSorted/arc_managers/current_stage_arc_manager.h"
|
||||
#include "toBeSorted/arc_managers/layout_arc_manager.h"
|
||||
#include "toBeSorted/arc_managers/oarc_manager.h"
|
||||
#include "toBeSorted/d_d3d.h"
|
||||
#include "toBeSorted/d_exception.h"
|
||||
#include "toBeSorted/file_manager.h"
|
||||
#include "toBeSorted/nand_request_thread.h"
|
||||
#include "toBeSorted/save_manager.h"
|
||||
#include "toBeSorted/unk_save_time.h"
|
||||
|
||||
#include "rvl/GX.h"
|
||||
#include "rvl/OS.h"
|
||||
#include "rvl/WPAD.h"
|
||||
|
||||
// TODO Replace with proper import + names
|
||||
extern u32 lbl_80574FA0;
|
||||
extern u32 lbl_80574FA4;
|
||||
|
||||
System SysConfig;
|
||||
|
||||
System *dSys_c::ms_configuration_p;
|
||||
EGG::Heap *dSys_c::ms_RootHeapMem1;
|
||||
EGG::Heap *dSys_c::ms_RootHeapMem2;
|
||||
|
||||
namespace dSystem {
|
||||
|
||||
void *s_OrgMEM1ArenaLo;
|
||||
void *s_NewMEM1ArenaLo;
|
||||
void *s_OrgMEM1ArenaHi;
|
||||
void *s_NewMEM1ArenaHi;
|
||||
|
||||
} // namespace dSystem
|
||||
|
||||
const GXRenderModeObj gRMO_Pal60_608x456Prog_16x9 = {
|
||||
0, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
456, // xfbHeight
|
||||
25, // viXOrigin
|
||||
12, // viYOrigin
|
||||
670, // viWidth
|
||||
456, // viHeight
|
||||
1, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Pal60_608x456IntDf_16x9 = {
|
||||
2, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
456, // xfbHeight
|
||||
25, // viXOrigin
|
||||
12, // viYOrigin
|
||||
670, // viWidth
|
||||
456, // viHeight
|
||||
0, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Pal50_608x456IntDf_16x9 = {
|
||||
4, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
542, // xfbHeight
|
||||
27, // viXOrigin
|
||||
16, // viYOrigin
|
||||
666, // viWidth
|
||||
542, // viHeight
|
||||
1, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Ntsc_608x456Prog_16x9 = {
|
||||
20, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
456, // xfbHeight
|
||||
25, // viXOrigin
|
||||
12, // viYOrigin
|
||||
670, // viWidth
|
||||
456, // viHeight
|
||||
1, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Ntsc_608x456IntDf_16x9 = {
|
||||
22, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
456, // xfbHeight
|
||||
25, // viXOrigin
|
||||
12, // viYOrigin
|
||||
670, // viWidth
|
||||
456, // viHeight
|
||||
0, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Pal60_608x456Prog_4x3 = {
|
||||
0, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
456, // xfbHeight
|
||||
17, // viXOrigin
|
||||
12, // viYOrigin
|
||||
686, // viWidth
|
||||
456, // viHeight
|
||||
1, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Pal60_608x456IntDf_4x3 = {
|
||||
2, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
456, // xfbHeight
|
||||
17, // viXOrigin
|
||||
12, // viYOrigin
|
||||
686, // viWidth
|
||||
456, // viHeight
|
||||
0, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Pal50_608x456IntDf_4x3 = {
|
||||
4, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
542, // xfbHeight
|
||||
19, // viXOrigin
|
||||
16, // viYOrigin
|
||||
682, // viWidth
|
||||
542, // viHeight
|
||||
1, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Ntsc_608x456Prog_4x3 = {
|
||||
20, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
456, // xfbHeight
|
||||
17, // viXOrigin
|
||||
12, // viYOrigin
|
||||
686, // viWidth
|
||||
456, // viHeight
|
||||
1, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const GXRenderModeObj gRMO_Ntsc_608x456IntDf_4x3 = {
|
||||
22, // tvInfo
|
||||
608, // fbWidth
|
||||
456, // efbHeight
|
||||
456, // xfbHeight
|
||||
17, // viXOrigin
|
||||
12, // viYOrigin
|
||||
686, // viWidth
|
||||
456, // viHeight
|
||||
0, // xfbMode
|
||||
0, // field_rendering
|
||||
0, // aa
|
||||
{
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
{6, 6},
|
||||
}, // sample_pattern
|
||||
{0, 0, 21, 22, 21, 0, 0} // vFilter
|
||||
};
|
||||
|
||||
const EGG::Video::RenderModeObjSet gSysRenderModeObjSet = {
|
||||
{&gRMO_Pal60_608x456Prog_16x9, &gRMO_Pal60_608x456IntDf_16x9, &gRMO_Pal50_608x456IntDf_16x9,
|
||||
&gRMO_Ntsc_608x456Prog_16x9, &gRMO_Ntsc_608x456IntDf_16x9, &gRMO_Pal60_608x456Prog_4x3,
|
||||
&gRMO_Pal60_608x456IntDf_4x3, &gRMO_Pal50_608x456IntDf_4x3, &gRMO_Ntsc_608x456Prog_4x3,
|
||||
&gRMO_Ntsc_608x456IntDf_4x3}
|
||||
};
|
||||
|
||||
template <>
|
||||
void System::initialize() {
|
||||
DVDInit();
|
||||
SCInit();
|
||||
|
||||
initMemory();
|
||||
|
||||
Heap *heap = Heap::sCurrentHeap;
|
||||
|
||||
GraphicsFifo::create(mGraphicsFifoSize, heap);
|
||||
mHeap::createAssertHeap(mRootHeapMem1);
|
||||
|
||||
mVideo = new (heap) EGG::Video(&gSysRenderModeObjSet);
|
||||
|
||||
mXfbMgr = new (heap) EGG::XfbManager();
|
||||
for (int i = 0; i < 2; ++i) {
|
||||
mXfbMgr->attach(new (heap) Xfb(mRootHeapMem2));
|
||||
}
|
||||
|
||||
mDisplay = new (heap) EGG::AsyncDisplay(1);
|
||||
mDisplay->setClearColor(nw4r::ut::Color::BLACK);
|
||||
mDisplay->clearEFB();
|
||||
|
||||
Thread::initialize();
|
||||
mSystemThread = new (heap) Thread(OSGetCurrentThread(), 4);
|
||||
|
||||
DvdFile::initialize();
|
||||
|
||||
// TODO Determine significance of the constant
|
||||
CoreControllerMgr::setWPADWorkSize(WPADGetWorkMemorySize() + 228);
|
||||
CoreControllerMgr::createInstance();
|
||||
|
||||
exceptionCreate(heap);
|
||||
|
||||
BaseSystem::mConfigData->getSystemHeap()->mFlag.setBit(0);
|
||||
|
||||
mHeap::setCurrentHeap(mHeap::g_assertHeap);
|
||||
}
|
||||
|
||||
dSndMgr_c *dSys_c::initAudioMgr(EGG::Heap *heap) {
|
||||
dSndMgr_c *audioMgr;
|
||||
|
||||
EGG::FrmHeap *frmHeap = mHeap::createFrmHeap(
|
||||
0x69400, heap,
|
||||
"オーディオヒープ", // "Audio heap"
|
||||
32, mHeap::OPT_NONE
|
||||
);
|
||||
|
||||
{
|
||||
mHeap temp(frmHeap);
|
||||
|
||||
audioMgr = new dSndMgr_c();
|
||||
ms_configuration_p->mAudioMgr = audioMgr;
|
||||
|
||||
frmHeap->adjust();
|
||||
frmHeap->mFlag.setBit(0);
|
||||
}
|
||||
|
||||
return audioMgr;
|
||||
}
|
||||
|
||||
void dSys_c::beginRender() {
|
||||
m3d::calcMaterial();
|
||||
ms_configuration_p->mDisplay->beginRender();
|
||||
}
|
||||
|
||||
void dSys_c::endRender() {
|
||||
ms_configuration_p->mDisplay->endRender();
|
||||
}
|
||||
|
||||
void dSys_c::beginFrame() {
|
||||
EGG::Display *pDisplay = ms_configuration_p->mDisplay;
|
||||
|
||||
pDisplay->beginFrame();
|
||||
GXSetCopyClear(pDisplay->getClearColor(), pDisplay->getClearZ());
|
||||
ms_configuration_p->onBeginFrame();
|
||||
}
|
||||
|
||||
void dSys_c::endFrame() {
|
||||
ms_configuration_p->mDisplay->endFrame();
|
||||
ms_configuration_p->onEndFrame();
|
||||
}
|
||||
|
||||
bool dSys_c::setBlack(bool on) {
|
||||
EGG::Display *pDisplay = ms_configuration_p->mDisplay;
|
||||
|
||||
EGG::Video *pVideo = EGG::BaseSystem::getVideo();
|
||||
|
||||
if (pVideo->mFlag.onBit(0) != on && pDisplay->mScreenStateFlag.offBit(0)) {
|
||||
pDisplay->mScreenStateFlag.setBit(0);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void dSys_c::setFrameRate(u8 maxRetraces) {
|
||||
ms_configuration_p->mDisplay->mMaxRetraces = maxRetraces;
|
||||
}
|
||||
|
||||
u8 dSys_c::getFrameRate() {
|
||||
return ms_configuration_p->mDisplay->mMaxRetraces;
|
||||
}
|
||||
|
||||
void dSys_c::setClearColor(nw4r::ut::Color clr) {
|
||||
EGG::Display *display = ms_configuration_p->mDisplay;
|
||||
display->setClearColor(clr);
|
||||
EGG::StateGX::s_clearEfb = clr;
|
||||
}
|
||||
|
||||
nw4r::ut::Color dSys_c::getClearColor() {
|
||||
return ms_configuration_p->mDisplay->getClearColor();
|
||||
}
|
||||
|
||||
void dSys_c::create() {
|
||||
EGG::Heap *pRootHeapMem1;
|
||||
EGG::Heap *pRootHeapMem2;
|
||||
EGG::Heap *pCmdHeap;
|
||||
EGG::Heap *pExpHeap;
|
||||
|
||||
dHeapAllocator::initCallbacks();
|
||||
|
||||
ms_configuration_p = &SysConfig;
|
||||
EGG::BaseSystem::mConfigData = &SysConfig;
|
||||
|
||||
ms_configuration_p->doInitialize();
|
||||
|
||||
pRootHeapMem1 = EGG::BaseSystem::mConfigData->mRootHeapMem1;
|
||||
ms_RootHeapMem1 = mHeap::createExpHeap(-1, pRootHeapMem1, "dSys_c::RootHeapMEM1", 32, mHeap::OPT_4);
|
||||
pRootHeapMem1->mFlag.setBit(0);
|
||||
|
||||
pRootHeapMem2 = EGG::BaseSystem::mConfigData->mRootHeapMem2;
|
||||
ms_RootHeapMem2 = mHeap::createExpHeap(-1, pRootHeapMem2, "dSys_c::RootHeapMEM2", 32, mHeap::OPT_4);
|
||||
pRootHeapMem2->mFlag.setBit(0);
|
||||
|
||||
EGG::Heap *heapMem1 = ms_RootHeapMem1;
|
||||
EGG::Heap *heapMem2 = ms_RootHeapMem2;
|
||||
|
||||
mVideo::create();
|
||||
|
||||
mHeap::createDylinkHeap(0x1c8000, heapMem1);
|
||||
mHeap::createGameHeap1(0x250000, heapMem1);
|
||||
dHeap::createLayoutHeap(0x1e0000, heapMem1);
|
||||
mHeap::createCommandHeap(0x8000, heapMem1);
|
||||
dHeap::createWork1Heap(0x4c8000, heapMem1);
|
||||
dHeap::createWorkExHeap(0x480000, heapMem1);
|
||||
dHeap::createLayoutExHeap(0xc8000, heapMem2);
|
||||
dHeap::createLayoutEx2Heap(0x38000, heapMem1);
|
||||
mHeap::createArchiveHeap(0xb85000, heapMem2);
|
||||
dHeap::createLayoutResHeap(0x4e7000, heapMem2);
|
||||
dHeap::createWork2Heap(0xb08000, heapMem2);
|
||||
|
||||
pExpHeap = EGG::ExpHeap::create(0x40000, mHeap::g_gameHeaps[0], 0);
|
||||
pExpHeap->setName("システムcreateヒープ"); // "system create heap"
|
||||
|
||||
mHeap::setCurrentHeap(mHeap::g_assertHeap);
|
||||
|
||||
{
|
||||
mHeap heap(pExpHeap);
|
||||
dPad::create();
|
||||
}
|
||||
|
||||
dPad::fn_80059620();
|
||||
|
||||
mPad::beginPad();
|
||||
mPad::g_currentCore->setPosParam(0.1f, 1.0f);
|
||||
mPad::endPad();
|
||||
|
||||
{
|
||||
mHeap heap(pExpHeap);
|
||||
for (int i = 0; i < WPAD_MAX_CONTROLLERS; i++) {
|
||||
mPad::g_padMg->getNthController(i)->createRumbleMgr(4);
|
||||
}
|
||||
}
|
||||
|
||||
cM::initRnd(OSGetTick());
|
||||
|
||||
dGfx_c::create(pExpHeap);
|
||||
|
||||
{
|
||||
mHeap heap(pExpHeap);
|
||||
dScene_c::getFader()->create();
|
||||
}
|
||||
|
||||
dDvdUnk::FontUnk::create(pExpHeap);
|
||||
FileManager::create(pExpHeap);
|
||||
SaveMgr::create(pExpHeap);
|
||||
setupFlagManagers(pExpHeap);
|
||||
dCsMgr_c::create(pExpHeap);
|
||||
|
||||
lbl_80574FA0 = 0;
|
||||
lbl_80574FA4 = 0;
|
||||
|
||||
cCounter_c::clear();
|
||||
|
||||
dDvd::create(OSGetThreadPriority(OSGetCurrentThread()) - 1, mHeap::g_commandHeap, mHeap::g_archiveHeap, pExpHeap);
|
||||
mDvd::unk_initDecompressors();
|
||||
mDvd::setAutoStreamDecomp(true);
|
||||
|
||||
void *p_buf = mHeap::g_gameHeaps[0]->alloc(0x4000, 32);
|
||||
pCmdHeap = mHeap::g_commandHeap;
|
||||
NandRequestThread::create(
|
||||
OSGetThreadPriority(OSGetCurrentThread()) - 2, pCmdHeap, p_buf, 0x4000, ArcCallbackHandlerCreate(2), pExpHeap
|
||||
);
|
||||
|
||||
dReset::Manage_c::CreateInstance(heapMem2);
|
||||
|
||||
dHeap::createHBMHeap(0x180000, heapMem2);
|
||||
dHbm::Manage_c::CreateInstance(dHeap::HBMHeap.heap);
|
||||
|
||||
initAudioMgr(heapMem1);
|
||||
|
||||
dSndMgr_c::GetInstance()->setup(heapMem2, 0x1000000);
|
||||
|
||||
dHeap::createFontHeap(0xfa000, heapMem2);
|
||||
|
||||
heapMem1->mFlag.setBit(0);
|
||||
heapMem2->mFlag.setBit(0);
|
||||
|
||||
dScene_c::staticCreate();
|
||||
|
||||
CurrentStageArcManager::create(pExpHeap);
|
||||
OarcManager::create(pExpHeap);
|
||||
LayoutArcManager::create(pExpHeap);
|
||||
|
||||
setFrameRate(1);
|
||||
setClearColor(nw4r::ut::Color::BLACK);
|
||||
|
||||
SaveTimeRelated::fn_80190780(pExpHeap);
|
||||
|
||||
pExpHeap->mFlag.setBit(0);
|
||||
pExpHeap->adjust();
|
||||
|
||||
mHeap::setCurrentHeap(mHeap::g_gameHeaps[0]);
|
||||
}
|
||||
|
||||
void dSys_c::execute() {
|
||||
beginFrame();
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dPad::beginPad_BR();
|
||||
dPad::fn_80059630();
|
||||
}
|
||||
|
||||
beginRender();
|
||||
d3d::fn_80016860();
|
||||
|
||||
dDvdUnk::FontUnk::GetInstance()->preExecute();
|
||||
|
||||
bool isAnyError = dDvdUnk::FontUnk::GetInstance()->isAnyError();
|
||||
if (isAnyError) {
|
||||
if (dState::fn_80062EC0()) {
|
||||
dHbm::Manage_c::GetInstance()->Calculate();
|
||||
dReset::Manage_c::GetInstance()->Calculate();
|
||||
dDvdUnk::FontUnk::GetInstance()->execute();
|
||||
}
|
||||
|
||||
dDvdUnk::FontUnk::GetInstance()->drawNonDriveError();
|
||||
|
||||
if (dLytSystemWindow_c::GetInstance()) {
|
||||
dLytSystemWindow_c::GetInstance()->fn_80152EF0();
|
||||
}
|
||||
|
||||
SaveMgr::GetInstance()->draw();
|
||||
dDvdUnk::FontUnk::GetInstance()->drawDriveError();
|
||||
dReset::Manage_c::GetInstance()->Draw();
|
||||
dHbm::Manage_c::GetInstance()->DrawMenu(0);
|
||||
} else {
|
||||
dHbm::Manage_c::GetInstance()->DrawMenu(1);
|
||||
|
||||
if (dHbm::Manage_c::GetInstance()->getState() == dHbm::Manage_c::HBM_MANAGE_ACTIVE) {
|
||||
if (dState::fn_80062EC0()) {
|
||||
dHbm::Manage_c::GetInstance()->Calculate();
|
||||
}
|
||||
} else {
|
||||
dGfx_c::GetInstance()->drawBefore();
|
||||
m3d::drawDone(0);
|
||||
dScene_c::getFader()->draw();
|
||||
dGfx_c::GetInstance()->drawLetterbox();
|
||||
dLytBattery_c::draw();
|
||||
dDvdUnk::FontUnk::GetInstance()->execute();
|
||||
|
||||
if (dLytSystemWindow_c::GetInstance()) {
|
||||
dLytSystemWindow_c::GetInstance()->fn_80152EF0();
|
||||
}
|
||||
|
||||
SaveMgr::GetInstance()->draw();
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dHbm::Manage_c::GetInstance()->Calculate();
|
||||
}
|
||||
}
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dReset::Manage_c::GetInstance()->Calculate();
|
||||
}
|
||||
dReset::Manage_c::GetInstance()->Draw();
|
||||
}
|
||||
|
||||
dHbm::Manage_c::GetInstance()->DrawIcon();
|
||||
|
||||
endRender();
|
||||
|
||||
dState::fn_80062EB0();
|
||||
dState::fn_80062E40();
|
||||
dState::fn_80062E50();
|
||||
|
||||
if (!isAnyError && dHbm::Manage_c::GetInstance()->getState() != dHbm::Manage_c::HBM_MANAGE_ACTIVE) {
|
||||
if (dSystem::myDylinkInitPhase.callMethod(nullptr) == 2) {
|
||||
if (dState::fn_80062EC0()) {
|
||||
dScene_c::staticExecute();
|
||||
}
|
||||
fManager_c::mainLoop();
|
||||
}
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dScene_c::getFader()->calc();
|
||||
}
|
||||
}
|
||||
|
||||
SaveMgr::GetInstance()->execute();
|
||||
|
||||
if (dLytSystemWindow_c::GetInstance()) {
|
||||
dLytSystemWindow_c::GetInstance()->fn_80152E20();
|
||||
}
|
||||
|
||||
dSndMgr_c::GetInstance()->calc();
|
||||
SaveTimeRelated::GetInstance()->fn_801907C0();
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
cCounter_c::IncrementGameFrame();
|
||||
cCounter_c::IncrementUnkCounter();
|
||||
}
|
||||
|
||||
m3d::calcWorld(0);
|
||||
d3d::fn_80017500();
|
||||
d3d::clearList();
|
||||
|
||||
if (dState::fn_80062EC0()) {
|
||||
dPad::endPad_BR();
|
||||
}
|
||||
|
||||
endFrame();
|
||||
}
|
||||
|
||||
void dSystem::fixHeaps() {
|
||||
s_OrgMEM1ArenaLo = OSGetMEM1ArenaLo();
|
||||
|
||||
void *stack_addr = (void *)OSRoundUp32B(_stack_addr);
|
||||
void *arena_lo = (void *)OSRoundUp32B(__ArenaLo);
|
||||
|
||||
if (s_OrgMEM1ArenaLo < (void *)0x80700000) {
|
||||
s_NewMEM1ArenaLo = (void *)0x80700000;
|
||||
} else {
|
||||
s_NewMEM1ArenaLo = (void *)ROUND_UP_4KB(arena_lo);
|
||||
|
||||
if (s_OrgMEM1ArenaLo != stack_addr && s_OrgMEM1ArenaLo != arena_lo) {
|
||||
OSPanic("d_system.cpp", 1883, "Arena Error!\n");
|
||||
}
|
||||
}
|
||||
|
||||
OSSetMEM1ArenaLo(s_NewMEM1ArenaLo);
|
||||
|
||||
s_OrgMEM1ArenaHi = OSGetMEM1ArenaHi();
|
||||
s_NewMEM1ArenaHi = (void *)0x817E0000;
|
||||
|
||||
if (s_OrgMEM1ArenaHi > s_NewMEM1ArenaHi) {
|
||||
OSSetMEM1ArenaHi(s_NewMEM1ArenaHi);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
#include "toBeSorted/arc_callback_handler.h"
|
||||
|
||||
#include "d/col/bg/d_bg_s.h"
|
||||
#include "d/col/bg/d_bg_w_kcol.h"
|
||||
#include "d/d_rawarchive.h"
|
||||
@@ -17,8 +19,8 @@ ArcCallbackHandler ArcCallbackHandler::sInstance;
|
||||
#define NAME_OARC 'oarc'
|
||||
#define NAME_RARC 'rarc'
|
||||
|
||||
u32 ArcCallbackHandlerCreate(u32) {
|
||||
return 0;
|
||||
void *ArcCallbackHandlerCreate(u32) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
void BindSystemModelsAndLighting(nw4r::g3d::ResFile file) {
|
||||
|
||||
@@ -0,0 +1,19 @@
|
||||
#include "toBeSorted/d_lib.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
u32 lbl_80574FA0;
|
||||
u32 lbl_80574FA4;
|
||||
|
||||
void unknownStub() {}
|
||||
|
||||
bool strequals(const char *lhs, const char *rhs) {
|
||||
if (!rhs) {
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t lhs_len = strlen(lhs);
|
||||
size_t rhs_len = strlen(rhs);
|
||||
|
||||
return (lhs_len == rhs_len) && strncmp(lhs, rhs, lhs_len) == 0;
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
#include "toBeSorted/mpls.h"
|
||||
|
||||
#include "s/s_Assert.h"
|
||||
|
||||
#include "rvl/OS.h"
|
||||
#include "rvl/SC.h"
|
||||
|
||||
#include <cstring>
|
||||
|
||||
bool sMplsInitialized;
|
||||
bool sSkipMplsMovie;
|
||||
bool sIsNormalMode;
|
||||
|
||||
void Mpls::initialize(int argc, char **argv) {
|
||||
if (argc == 2) {
|
||||
if (strcmp("MPLS_FIRST", argv[1]) == 0) {
|
||||
sSkipMplsMovie = true;
|
||||
} else if (strcmp("MPLS_NORMAL", argv[1]) == 0) {
|
||||
sSkipMplsMovie = true;
|
||||
sIsNormalMode = true;
|
||||
}
|
||||
}
|
||||
|
||||
sMplsInitialized = true;
|
||||
}
|
||||
|
||||
void Mpls::tryLaunchMovie() {
|
||||
if (!sSkipMplsMovie && !SCGetMplsMoviePlay()) {
|
||||
OSExecl("/sys/mpls_movie/player.dol", "", "", "ASPECT_RATIO_AUTO", "DEFAULT", nullptr);
|
||||
sAssert::assert();
|
||||
}
|
||||
}
|
||||
|
||||
void Mpls::forceLaunchMovie() {
|
||||
OSExecl("/sys/mpls_movie/player.dol", "", "", "ASPECT_RATIO_AUTO", "FORCE_MENU", nullptr);
|
||||
sAssert::assert();
|
||||
}
|
||||
Reference in New Issue
Block a user