mirror of
https://github.com/zeldaret/ss
synced 2026-06-01 17:57:39 -04:00
Various exception/assert files
This commit is contained in:
@@ -29,10 +29,13 @@ toBeSorted/mdl_base.cpp:
|
||||
.text start:0x80006E10 end:0x80006EA8 align:16
|
||||
.data start:0x804FD0B8 end:0x804FD0C8
|
||||
|
||||
toBeSorted/d_assert.cpp:
|
||||
toBeSorted/d_exception.cpp:
|
||||
.text start:0x80006EB0 end:0x8000742C align:16
|
||||
.rodata start:0x804DBA00 end:0x804DBA18
|
||||
.data start:0x804FD0C8 end:0x804FD180
|
||||
.sdata start:0x80571450 end:0x80571468
|
||||
.sbss start:0x80574FB0 end:0x80574FB8
|
||||
.sdata2 start:0x805769C0 end:0x805769C8
|
||||
.bss start:0x80580000 end:0x80580038
|
||||
|
||||
toBeSorted/d_jstudio.cpp:
|
||||
@@ -232,6 +235,7 @@ d/d_heap.cpp:
|
||||
.ctors start:0x804DB680 end:0x804DB684
|
||||
.rodata start:0x804DE008 end:0x804DE188
|
||||
.data start:0x8050D440 end:0x8050D458
|
||||
.sdata start:0x80571C58 end:0x80571C60
|
||||
.sbss start:0x805751A8 end:0x805751D0
|
||||
.bss start:0x80597740 end:0x80597758
|
||||
|
||||
@@ -1778,7 +1782,6 @@ s/s_Crc.cpp:
|
||||
|
||||
s/s_Assert.cpp:
|
||||
.text start:0x802DE700 end:0x802DE73C align:16
|
||||
.sdata start:0x80573F70 end:0x80573F78
|
||||
.sbss start:0x80575B70 end:0x80575B78
|
||||
|
||||
s/s_Math.cpp:
|
||||
@@ -1790,6 +1793,7 @@ s/s_Phase.cpp:
|
||||
|
||||
s/s_Print.cpp:
|
||||
.text start:0x802DEF80 end:0x802DF0E4 align:16
|
||||
.sdata start:0x80573F70 end:0x80573F78
|
||||
|
||||
c/c_counter.cpp:
|
||||
.text start:0x802DF0F0 end:0x802DF100 align:16
|
||||
|
||||
+60
-46
@@ -144,16 +144,16 @@ fn_80006D60 = .text:0x80006D60; // type:function size:0x60
|
||||
fn_80006DC0 = .text:0x80006DC0; // type:function size:0x48
|
||||
fn_80006E10 = .text:0x80006E10; // type:function size:0x3C
|
||||
fn_80006E50 = .text:0x80006E50; // type:function size:0x58
|
||||
fn_80006EB0 = .text:0x80006EB0; // type:function size:0xBC
|
||||
fn_80006F70 = .text:0x80006F70; // type:function size:0x9C
|
||||
exceptionCallback = .text:0x80007010; // type:function size:0x38
|
||||
exceptionUserCallback = .text:0x80007050; // type:function size:0x3C
|
||||
assertCallback = .text:0x80007090; // type:function size:0x40
|
||||
fn_800070D0 = .text:0x800070D0; // type:function size:0x60
|
||||
fn_80007130 = .text:0x80007130; // type:function size:0x94
|
||||
fn_800071D0 = .text:0x800071D0; // type:function size:0x8C
|
||||
fn_80007260 = .text:0x80007260; // type:function size:0xE4
|
||||
OSPanic = .text:0x80007350; // type:function size:0xDC scope:weak
|
||||
printGameInfo__Fv = .text:0x80006EB0; // type:function size:0xBC scope:local
|
||||
waitForButtonSequence__FPv = .text:0x80006F70; // type:function size:0x9C scope:local
|
||||
preExceptionCallback__Fv = .text:0x80007010; // type:function size:0x38 scope:local
|
||||
exceptionCallback__FPQ23EGG10CoreStatus = .text:0x80007050; // type:function size:0x3C scope:local
|
||||
assertCallback__Fv = .text:0x80007090; // type:function size:0x40 scope:local
|
||||
sAssertCallback__FPv = .text:0x800070D0; // type:function size:0x60 scope:local
|
||||
mainErrorHandler__FUsP9OSContextUlUl = .text:0x80007130; // type:function size:0x94 scope:local
|
||||
initErrorHandlers__Fv = .text:0x800071D0; // type:function size:0x8C scope:local
|
||||
exceptionCreate__FPQ23EGG4Heap = .text:0x80007260; // type:function size:0xE4
|
||||
OSPanic = .text:0x80007350; // type:function size:0xDC scope:global
|
||||
getActorNameFromId = .text:0x80007430; // type:function size:0x24
|
||||
__dt__7mVec3_cFv = .text:0x80007460; // type:function size:0x40 scope:weak
|
||||
JStudioCustsceneCtrnl__ct = .text:0x800074A0; // type:function size:0xC8
|
||||
@@ -9804,9 +9804,9 @@ fn_801749B0 = .text:0x801749B0; // type:function size:0x8
|
||||
fn_801749C0 = .text:0x801749C0; // type:function size:0x8
|
||||
fn_801749D0 = .text:0x801749D0; // type:function size:0x8
|
||||
fn_801749E0 = .text:0x801749E0; // type:function size:0xA8
|
||||
fn_80174A90 = .text:0x80174A90; // type:function size:0xE4
|
||||
RevisionInfo = .text:0x80174B80; // type:function size:0x100
|
||||
fn_80174C80 = .text:0x80174C80; // type:function size:0x58
|
||||
getCopydate__Fv = .text:0x80174A90; // type:function size:0xE4
|
||||
getRevisionInfo__Fv = .text:0x80174B80; // type:function size:0x100
|
||||
getUrlInfo__Fv = .text:0x80174C80; // type:function size:0x58
|
||||
fn_80174CE0 = .text:0x80174CE0; // type:function size:0x118
|
||||
fn_80174E00 = .text:0x80174E00; // type:function size:0xE8
|
||||
fn_80174EF0 = .text:0x80174EF0; // type:function size:0xD4
|
||||
@@ -14484,11 +14484,11 @@ doDelete__12dThpPlayer_cFv = .text:0x802733E0; // type:function size:0x38
|
||||
execute__12dThpPlayer_cFv = .text:0x80273420; // type:function size:0x24
|
||||
draw__12dThpPlayer_cFv = .text:0x80273450; // type:function size:0x44
|
||||
__ct__12dThpPlayer_cFv = .text:0x802734A0; // type:function size:0x88
|
||||
__dt__14ThpVideoScreenFv = .text:0x80273530; // type:function size:0x58
|
||||
__dt__14ThpVideoScreenFv = .text:0x80273530; // type:function size:0x58 scope:weak
|
||||
__dt__12dThpPlayer_cFv = .text:0x80273590; // type:function size:0xA8
|
||||
reallyCreate__12dThpPlayer_cFUsUs = .text:0x80273640; // type:function size:0x68
|
||||
drawTHPFrame__FUlUlUlUlUlUl = .text:0x802736B0; // type:function size:0x2C
|
||||
callback__FPv = .text:0x802736E0; // type:function size:0x24
|
||||
callback__FPv = .text:0x802736E0; // type:function size:0x24 scope:local
|
||||
open__12dThpPlayer_cFv = .text:0x80273710; // type:function size:0x44
|
||||
setupFile__12dThpPlayer_cFPcl = .text:0x80273760; // type:function size:0xD0
|
||||
reallyExecute__12dThpPlayer_cFv = .text:0x80273830; // type:function size:0x1B0
|
||||
@@ -17200,9 +17200,9 @@ initializeStateLocalMethod__20sStateMethodUsr_FI_cFv = .text:0x802DE580; // type
|
||||
executeStateLocalMethod__20sStateMethodUsr_FI_cFv = .text:0x802DE5F0; // type:function size:0x4C
|
||||
finalizeStateLocalMethod__20sStateMethodUsr_FI_cFv = .text:0x802DE640; // type:function size:0x54
|
||||
changeStateLocalMethod__20sStateMethodUsr_FI_cFRC12sStateIDIf_c = .text:0x802DE6A0; // type:function size:0x4C
|
||||
calcCRC__4sCrcFPCvUl = .text:0x802DE6F0; // type:function size:0x4
|
||||
fn_802DE700 = .text:0x802DE700; // type:function size:0x8
|
||||
fn_802DE710 = .text:0x802DE710; // type:function size:0x2C
|
||||
calcCRC32__4sCrcFPCvUl = .text:0x802DE6F0; // type:function size:0x4
|
||||
setAssertCallback__7sAssertFPFPv_v = .text:0x802DE700; // type:function size:0x8
|
||||
assert__7sAssertFv = .text:0x802DE710; // type:function size:0x2C
|
||||
extrapolate__4sLibFfff = .text:0x802DE740; // type:function size:0x24
|
||||
addCalc__4sLibFPfffff = .text:0x802DE770; // type:function size:0xC0
|
||||
addCalcScaledDiff__4sLibFPffff = .text:0x802DE830; // type:function size:0x44
|
||||
@@ -17226,10 +17226,10 @@ chaseAngle__4sLibFPsss = .text:0x802DEDA0; // type:function size:0x64
|
||||
chaseAngle2__4sLibFPsss = .text:0x802DEE10; // type:function size:0x98
|
||||
__ct__8sPhase_cFPPFPv_Q28sPhase_c15METHOD_RESULT_ei = .text:0x802DEEB0; // type:function size:0x14
|
||||
callMethod__8sPhase_cFPv = .text:0x802DEED0; // type:function size:0xA4
|
||||
vprintf_wrap = .text:0x802DEF80; // type:function size:0x8
|
||||
OSVReportGhidra = .text:0x802DEF90; // type:function size:0x4C
|
||||
fn_802DEFE0 = .text:0x802DEFE0; // type:function size:0x80
|
||||
OSReport = .text:0x802DF060; // type:function size:0x80 scope:weak
|
||||
getVprintfFunc__4sLibFv = .text:0x802DEF80; // type:function size:0x8 scope:local
|
||||
my_vprintf__4sLibFPCcP16__va_list_struct = .text:0x802DEF90; // type:function size:0x4C scope:local
|
||||
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
|
||||
__dt__24DynamicModuleControlBaseFv = .text:0x802DF100; // type:function size:0xA0
|
||||
@@ -27760,7 +27760,7 @@ __init_cpp_exceptions_reference = .ctors:0x804DB640; // type:object size:0x4 sco
|
||||
_dtors = .dtors:0x804DB9E0; // type:label scope:global data:4byte
|
||||
__destroy_global_chain_reference = .dtors:0x804DB9E0; // type:object size:0x4 scope:global
|
||||
__fini_cpp_exceptions_reference = .dtors:0x804DB9E4; // type:object size:0x4 scope:global
|
||||
lbl_804DBA00 = .rodata:0x804DBA00; // type:object size:0x18
|
||||
sButtonSequence = .rodata:0x804DBA00; // type:object size:0x16 scope:local data:2byte
|
||||
ActorLink__NameNodePairs = .rodata:0x804DBA18; // type:object size:0x28 data:4byte
|
||||
lbl_804DBA40 = .rodata:0x804DBA40; // type:object size:0x120 data:2byte
|
||||
sSaveFileName = .rodata:0x804DBB60; // type:object size:0xD scope:local data:string
|
||||
@@ -29273,9 +29273,17 @@ lbl_804FD06C = .data:0x804FD06C; // type:object size:0xC data:string
|
||||
lbl_804FD078 = .data:0x804FD078; // type:object size:0x1C
|
||||
lbl_804FD094 = .data:0x804FD094; // type:object size:0x24
|
||||
lbl_804FD0B8 = .data:0x804FD0B8; // type:object size:0x10
|
||||
lbl_804FD0C8 = .data:0x804FD0C8; // type:object size:0x60
|
||||
lbl_804FD128 = .data:0x804FD128; // type:object size:0x18 data:string
|
||||
lbl_804FD140 = .data:0x804FD140; // type:object size:0x40
|
||||
@5819 = .data:0x804FD0C8; // type:object size:0x10 scope:local data:string
|
||||
...data.0 = .data:0x804FD0C8; // type:label scope:local
|
||||
@5821 = .data:0x804FD0D8; // type:object size:0x10 scope:local data:string
|
||||
@5823 = .data:0x804FD0E8; // type:object size:0x10 scope:local data:string
|
||||
@5825 = .data:0x804FD0F8; // type:object size:0xD scope:local data:string
|
||||
@5826 = .data:0x804FD108; // type:object size:0xD scope:local data:string
|
||||
@5827 = .data:0x804FD118; // type:object size:0xD scope:local data:string
|
||||
@5854 = .data:0x804FD128; // type:object size:0x18 scope:local data:string
|
||||
@5878 = .data:0x804FD140; // type:object size:0x13 scope:local data:string
|
||||
@5887 = .data:0x804FD158; // type:object size:0x10 scope:local data:string
|
||||
@5888 = .data:0x804FD168; // type:object size:0x17 scope:local data:string
|
||||
lbl_804FD180 = .data:0x804FD180; // type:object size:0xC
|
||||
lbl_804FD18C = .data:0x804FD18C; // type:object size:0xC
|
||||
lbl_804FD198 = .data:0x804FD198; // type:object size:0xC
|
||||
@@ -35920,9 +35928,15 @@ __vt__19dAcOswMdlCallback_c = .data:0x80535E38; // type:object size:0x18
|
||||
@9734 = .data:0x80535F6C; // type:object size:0x17 scope:local data:string
|
||||
__vt__22sFStateID_c<8dAcOsw_c> = .data:0x80535F84; // type:object size:0x34 scope:weak
|
||||
g_profile_THPPLAYER = .data:0x80535FB8; // type:object size:0xC
|
||||
lbl_80535FC4 = .data:0x80535FC4; // type:object size:0x7C
|
||||
lbl_80536040 = .data:0x80536040; // type:object size:0x50
|
||||
lbl_80536090 = .data:0x80536090; // type:object size:0x10
|
||||
...data.0 = .data:0x80535FB8; // type:label scope:local
|
||||
@10708 = .data:0x80535FC4; // type:object size:0x12 scope:local data:string
|
||||
@10709 = .data:0x80535FD8; // type:object size:0x12 scope:local data:string
|
||||
@10710 = .data:0x80535FEC; // type:object size:0x12 scope:local data:string
|
||||
@10711 = .data:0x80536000; // type:object size:0x11 scope:local data:string
|
||||
@10712 = .data:0x80536014; // type:object size:0x17 scope:local data:string
|
||||
@10713 = .data:0x8053602C; // type:object size:0x11 scope:local data:string
|
||||
__vt__12dThpPlayer_c = .data:0x80536040; // type:object size:0x4C
|
||||
__vt__14ThpVideoScreen = .data:0x80536090; // type:object size:0x10
|
||||
g_profile_ALLDIE_TAG = .data:0x805360A0; // type:object size:0x10
|
||||
TgAlldie__vtable = .data:0x805360B0; // type:object size:0x78
|
||||
g_profile_VIEW_CLIP_TAG = .data:0x80536128; // type:object size:0x10
|
||||
@@ -38934,10 +38948,10 @@ jumptable_805713CC = .data:0x805713CC; // type:object size:0x1C scope:local
|
||||
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
|
||||
lbl_80571450 = .sdata:0x80571450; // type:object size:0x4
|
||||
lbl_80571454 = .sdata:0x80571454; // type:object size:0x4 data:string
|
||||
lbl_80571458 = .sdata:0x80571458; // type:object size:0x8
|
||||
lbl_80571460 = .sdata:0x80571460; // type:object size:0x8
|
||||
@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
|
||||
@5855 = .sdata:0x80571460; // type:object size:0x6 scope:local data:string
|
||||
lbl_80571468 = .sdata:0x80571468; // type:object size:0x8
|
||||
lbl_80571470 = .sdata:0x80571470; // type:object size:0x8
|
||||
lbl_80571478 = .sdata:0x80571478; // type:object size:0x8
|
||||
@@ -39234,7 +39248,7 @@ status_1__4dDyl = .sdata:0x80571C40; // type:object size:0x4 data:4byte
|
||||
status_2__4dDyl = .sdata:0x80571C44; // type:object size:0x4 data:4byte
|
||||
lbl_80571C48 = .sdata:0x80571C48; // type:object size:0x8
|
||||
g_CurrentScreenTo4x3WidthScale__6dGfx_c = .sdata:0x80571C50; // type:object size:0x4 align:4 data:float
|
||||
lbl_80571C58 = .sdata:0x80571C58; // type:object size:0x8 data:byte
|
||||
sAssertOnAllocFailure = .sdata:0x80571C58; // type:object size:0x1 scope:local data:byte
|
||||
m_current_ex__Q24dPad4ex_c = .sdata:0x80571C60; // type:object size:0x4 data:4byte
|
||||
lbl_80571C68 = .sdata:0x80571C68; // type:object size:0x8
|
||||
OBTAINED_ITEM_ID = .sdata:0x80571C70; // type:object size:0x4 data:4byte
|
||||
@@ -40666,7 +40680,7 @@ lbl_80573F54 = .sdata:0x80573F54; // type:object size:0x4 data:4byte
|
||||
lbl_80573F58 = .sdata:0x80573F58; // type:object size:0x8
|
||||
lbl_80573F60 = .sdata:0x80573F60; // type:object size:0x8
|
||||
__THPVersion = .sdata:0x80573F68; // type:object size:0x8 data:4byte
|
||||
lbl_80573F70 = .sdata:0x80573F70; // type:object size:0x8 data:4byte
|
||||
sPrintfFunc__4sLib = .sdata:0x80573F70; // type:object size:0x4 scope:local data:4byte
|
||||
@4277 = .sdata:0x80573F78; // type:object size:0x5 scope:local data:string
|
||||
@4029 = .sdata:0x80573F80; // type:object size:0x6 scope:local data:string
|
||||
sRelsDir__20DynamicModuleControl = .sdata:0x80573F88; // type:object size:0x4 data:4byte
|
||||
@@ -41280,10 +41294,10 @@ 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
|
||||
lbl_80574FB0 = .sbss:0x80574FB0; // type:object size:0x4 data:4byte
|
||||
sAsserted = .sbss:0x80574FB4; // type:object size:0x1 data:byte
|
||||
lbl_80574FB5 = .sbss:0x80574FB5; // type:object size:0x1 data:byte
|
||||
ErrorCode = .sbss:0x80574FB6; // 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
|
||||
sPanicked = .sbss:0x80574FB6; // type:object size:0x1 scope:local data:byte
|
||||
lbl_80574FB8 = .sbss:0x80574FB8; // type:object size:0x1 data:byte
|
||||
s_$cam = .sbss:0x80574FBC; // type:object size:0x4 data:4byte
|
||||
lbl_80574FC0 = .sbss:0x80574FC0; // type:object size:0x1 data:byte
|
||||
@@ -41882,7 +41896,7 @@ Vdchuff = .sbss:0x80575B20; // type:object size:0x20 data:4byte
|
||||
Udchuff = .sbss:0x80575B40; // type:object size:0x20 data:4byte
|
||||
Ydchuff = .sbss:0x80575B60; // type:object size:0x8 data:4byte
|
||||
sm_numberMemo__10sStateID_c = .sbss:0x80575B68; // type:object size:0x4 data:4byte
|
||||
lbl_80575B70 = .sbss:0x80575B70; // type:object size:0x8 data:4byte
|
||||
sAssertCallback__7sAssert = .sbss:0x80575B70; // type:object size:0x4 data:4byte
|
||||
cCounter_c__m_gameFrame = .sbss:0x80575B78; // type:object size:0x4 data:4byte
|
||||
lbl_80575B7C = .sbss:0x80575B7C; // type:object size:0x4 data:4byte
|
||||
mFirst__24DynamicModuleControlBase = .sbss:0x80575B80; // type:object size:0x4 data:4byte
|
||||
@@ -42656,7 +42670,7 @@ g_CurrentSequence = .sbss:0x805769A8; // type:object size:0x4 data:4byte
|
||||
IsTRKConnected = .sbss:0x805769AC; // type:object size:0x4 data:4byte
|
||||
TRK_saved_exceptionID = .sbss:0x805769B0; // type:object size:0x2 scope:local data:2byte
|
||||
bUseSerialIO = .sbss:0x805769B8; // type:object size:0x1 data:byte
|
||||
lbl_805769C0 = .sdata2:0x805769C0; // type:object size:0x8 data:byte
|
||||
sErrorCodes = .sdata2:0x805769C0; // type:object size:0x5 scope:local data:byte
|
||||
lbl_805769C8 = .sdata2:0x805769C8; // type:object size:0x4 align:4 data:float
|
||||
lbl_805769CC = .sdata2:0x805769CC; // type:object size:0x4 align:4 data:float
|
||||
lbl_805769D0 = .sdata2:0x805769D0; // type:object size:0x8 align:8 data:double
|
||||
@@ -47656,8 +47670,8 @@ lbl_8057C494 = .sdata2:0x8057C494; // type:object size:0x4 align:4 data:float
|
||||
@9626 = .sdata2:0x8057C4D0; // type:object size:0x4 scope:local align:4 data:float
|
||||
@9633 = .sdata2:0x8057C4D4; // type:object size:0x4 scope:local align:4 data:float
|
||||
@9634 = .sdata2:0x8057C4D8; // type:object size:0x4 scope:local align:4 data:float
|
||||
lbl_8057C4E0 = .sdata2:0x8057C4E0; // type:object size:0x8
|
||||
lbl_8057C4E8 = .sdata2:0x8057C4E8; // type:object size:0x8 align:8 data:double
|
||||
SPECIAL_TYPES = .sdata2:0x8057C4E0; // type:object size:0x3 scope:local data:string
|
||||
@10716 = .sdata2:0x8057C4E8; // type:object size:0x8 scope:local align:8 data:double
|
||||
lbl_8057C4F0 = .sdata2:0x8057C4F0; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057C4F4 = .sdata2:0x8057C4F4; // type:object size:0x4 align:4 data:float
|
||||
lbl_8057C4F8 = .sdata2:0x8057C4F8; // type:object size:0x4 align:4 data:float
|
||||
@@ -50397,9 +50411,9 @@ bd_addr_null = .sbss2:0x8057FFB0; // type:object size:0x8
|
||||
DefaultBlackColor = .sbss2:0x8057FFB8; // type:object size:0x8 scope:local data:2byte
|
||||
sBlack__3EGG = .sbss2:0x8057FFC0; // type:object size:0x4 scope:local data:byte
|
||||
lbl_8057FFC8 = .sbss2:0x8057FFC8; // type:object size:0x4
|
||||
lbl_80580000 = .bss:0x80580000; // type:object size:0x14 data:4byte
|
||||
lbl_80580014 = .bss:0x80580014; // type:object size:0xC
|
||||
mapFile = .bss:0x80580020; // type:object size:0x18 data:4byte
|
||||
sSavedErrorHandlers = .bss:0x80580000; // type:object size:0x14 scope:local data:4byte
|
||||
@5782 = .bss:0x80580014; // type:object size:0xC scope:local
|
||||
@LOCAL@exceptionCreate__FPQ23EGG4Heap@mapFile = .bss:0x80580020; // type:object size:0x14 scope:local data:4byte
|
||||
lbl_80580038 = .bss:0x80580038; // type:object size:0xC align:4 data:float
|
||||
lbl_80580044 = .bss:0x80580044; // type:object size:0xC align:4 data:float
|
||||
lbl_80580050 = .bss:0x80580050; // type:object size:0xC align:4 data:float
|
||||
|
||||
+3
-3
@@ -392,7 +392,7 @@ config.libs = [
|
||||
Object(NonMatching, "toBeSorted/unk_sorajima_list.cpp"),
|
||||
Object(NonMatching, "toBeSorted/mpls.cpp"),
|
||||
Object(NonMatching, "toBeSorted/mdl_base.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_assert.cpp"),
|
||||
Object(Matching, "toBeSorted/d_exception.cpp"),
|
||||
Object(NonMatching, "toBeSorted/d_jstudio.cpp"),
|
||||
Object(Matching, "toBeSorted/save_file.cpp"),
|
||||
Object(NonMatching, "toBeSorted/file_manager.cpp"),
|
||||
@@ -917,7 +917,7 @@ config.libs = [
|
||||
"progress_category": "core",
|
||||
"host": False,
|
||||
"objects": [
|
||||
Object(NonMatching, "s/s_Assert.cpp"),
|
||||
Object(Matching, "s/s_Assert.cpp"),
|
||||
Object(Matching, "s/s_Crc.cpp"),
|
||||
Object(Matching, "s/s_Math.cpp"),
|
||||
Object(Matching, "s/s_FPhase.cpp"),
|
||||
@@ -925,7 +925,7 @@ config.libs = [
|
||||
Object(Matching, "s/s_StateMethod.cpp"),
|
||||
Object(Matching, "s/s_StateMethodUsr_FI.cpp"),
|
||||
Object(Matching, "s/s_Phase.cpp"),
|
||||
Object(NonMatching, "s/s_Print.cpp"),
|
||||
Object(Matching, "s/s_Print.cpp"),
|
||||
],
|
||||
},
|
||||
{
|
||||
|
||||
@@ -37,7 +37,7 @@ public:
|
||||
static void SetPreExceptionCallback(void (*cb)());
|
||||
static void SetCallbackMode(bool);
|
||||
static void SetCallbackArgs(void *);
|
||||
nw4r::db::ConsoleHandle GetConsoleHandle();
|
||||
static nw4r::db::ConsoleHandle GetConsoleHandle();
|
||||
};
|
||||
|
||||
} // namespace EGG
|
||||
|
||||
@@ -24,6 +24,7 @@ enum Button {
|
||||
BUTTON_MINUS = 0x1000,
|
||||
BUTTON_Z = 0x2000,
|
||||
BUTTON_C = 0x4000,
|
||||
BUTTON_HOME = 0x8000,
|
||||
};
|
||||
|
||||
inline EGG::CoreController *getCore(const int i) {
|
||||
|
||||
@@ -18,6 +18,7 @@ typedef enum {
|
||||
AIDMACallback AIRegisterDMACallback(AIDMACallback callback);
|
||||
void AIInitDMA(void *buffer, u32 length);
|
||||
void AIStartDMA(void);
|
||||
void AIStopDMA(void);
|
||||
u32 AIGetDMABytesLeft(void);
|
||||
void AISetDSPSampleRate(u32 rate);
|
||||
u32 AIGetDSPSampleRate(void);
|
||||
|
||||
@@ -38,7 +38,8 @@ typedef enum {
|
||||
OS_ERR_MAX
|
||||
} OSErrorType;
|
||||
|
||||
typedef void (*OSErrorHandler)(u16 error, OSContext *ctx, u32 dsisr, u32 dar);
|
||||
typedef u16 OSError;
|
||||
typedef void (*OSErrorHandler)(OSError error, OSContext* context, ...);
|
||||
|
||||
extern OSErrorHandler __OSErrorTable[OS_ERR_MAX];
|
||||
extern u32 __OSFpscrEnableBits;
|
||||
|
||||
@@ -30,3 +30,7 @@ Implemented by SS based on NSMBW symbols. Probably missing some parts, sync with
|
||||
## s_FPhase
|
||||
|
||||
SS-only. Symbols/names completely made up.
|
||||
|
||||
## s_Assert, s_Print
|
||||
|
||||
SS-only. Symbols/names completely made up.
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
#ifndef S_ASSERT_H
|
||||
#define S_ASSERT_H
|
||||
|
||||
namespace sAssert {
|
||||
|
||||
typedef void (*AssertCallback)(void *);
|
||||
|
||||
void setAssertCallback(AssertCallback cb);
|
||||
void assert();
|
||||
|
||||
} // namespace sAssert
|
||||
|
||||
#endif
|
||||
+1
-1
@@ -5,7 +5,7 @@
|
||||
|
||||
namespace sCrc {
|
||||
|
||||
u32 calcCRC(const void *ptr, u32 size);
|
||||
u32 calcCRC32(const void *ptr, u32 size);
|
||||
|
||||
} // namespace sCrc
|
||||
|
||||
|
||||
@@ -0,0 +1,10 @@
|
||||
#ifndef S_PRINT_H
|
||||
#define S_PRINT_H
|
||||
|
||||
namespace sLib {
|
||||
|
||||
void printf(const char *msg, ...);
|
||||
|
||||
} // namespace sLib
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef D_EXCEPTION_H
|
||||
#define D_EXCEPTION_H
|
||||
|
||||
#include "egg/core/eggHeap.h"
|
||||
|
||||
void exceptionCreate(EGG::Heap *heap);
|
||||
|
||||
#endif
|
||||
@@ -0,0 +1,8 @@
|
||||
#ifndef TOBESORTED_REVISION_INFO_H
|
||||
#define TOBESORTED_REVISION_INFO_H
|
||||
|
||||
const char *getUrlInfo();
|
||||
const char *getRevisionInfo();
|
||||
const char *getCopydate();
|
||||
|
||||
#endif
|
||||
+4
-6
@@ -1,7 +1,7 @@
|
||||
#include "d/d_heap.h"
|
||||
|
||||
#include "d/d_heap_alloc.h"
|
||||
|
||||
#include "s/s_Assert.h"
|
||||
|
||||
dHeap dHeap::work1Heap;
|
||||
dHeap dHeap::work2Heap;
|
||||
@@ -14,8 +14,7 @@ dHeap dHeap::fontHeap;
|
||||
dHeap dHeap::HBMHeap;
|
||||
dHeapAllocator dHeapAllocator::sAllocator;
|
||||
|
||||
extern u8 lbl_80571C58;
|
||||
extern "C" void fn_802DE710();
|
||||
static bool sAssertOnAllocFailure = true;
|
||||
|
||||
// TODO TU splits?
|
||||
|
||||
@@ -23,10 +22,10 @@ void dHeapAllocator::onAlloc(EGG::HeapAllocArg *arg) {
|
||||
if (arg->ptr != nullptr) {
|
||||
return;
|
||||
}
|
||||
if (lbl_80571C58 == 0) {
|
||||
if (!sAssertOnAllocFailure) {
|
||||
return;
|
||||
}
|
||||
fn_802DE710();
|
||||
sAssert::assert();
|
||||
}
|
||||
|
||||
EGG::ExpHeap *dHeap::init(const char *name, size_t size, EGG::Heap *parent) {
|
||||
@@ -75,7 +74,6 @@ void dHeap::createHBMHeap(size_t size, EGG::Heap *parent) {
|
||||
HBMHeap.init(name, size, parent);
|
||||
}
|
||||
|
||||
// TODO this doesn't match (many more stack stores)
|
||||
void dHeapAllocator::initCallbacks() {
|
||||
sAllocator.doInitCallbacks();
|
||||
}
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
#include "nw4r/db/db_mapFile.h"
|
||||
#include "rvl/GX.h" // IWYU pragma: export
|
||||
#include "rvl/VI.h" // IWYU pragma: export
|
||||
#include "rvl/OS/OSError.h"
|
||||
#include "string.h"
|
||||
|
||||
|
||||
@@ -63,12 +64,13 @@ void Exception_Init() {
|
||||
OSCreateThread(&sException.thread, RunThread_, nullptr, sThreadBuffer + 0x4000, 0x4000, 0, 1);
|
||||
OSInitMessageQueue(&sException.queue, sMessageBuffer, 1);
|
||||
OSResumeThread(&sException.thread);
|
||||
OSSetErrorHandler(2, ErrorHandler_);
|
||||
OSSetErrorHandler(3, ErrorHandler_);
|
||||
OSSetErrorHandler(5, ErrorHandler_);
|
||||
OSSetErrorHandler(15, ErrorHandler_);
|
||||
// UB: casting non-variadic function to variadic (and letting OS invoke it)
|
||||
OSSetErrorHandler(OS_ERR_DSI, (OSErrorHandler)ErrorHandler_);
|
||||
OSSetErrorHandler(OS_ERR_ISI, (OSErrorHandler)ErrorHandler_);
|
||||
OSSetErrorHandler(OS_ERR_ALIGNMENT, (OSErrorHandler)ErrorHandler_);
|
||||
OSSetErrorHandler(OS_ERR_PROTECTION, (OSErrorHandler)ErrorHandler_);
|
||||
__OSFpscrEnableBits = 0;
|
||||
OSSetErrorHandler(16, nullptr);
|
||||
OSSetErrorHandler(OS_ERR_FP_EXCEPTION, nullptr);
|
||||
}
|
||||
extern "C" u32 PPCMfmsr();
|
||||
extern "C" void PPCMtmsr(u32);
|
||||
|
||||
@@ -0,0 +1,22 @@
|
||||
#include "s/s_Assert.h"
|
||||
|
||||
#include "common.h"
|
||||
|
||||
namespace sAssert {
|
||||
|
||||
typedef void (*AssertCallback)(void *);
|
||||
|
||||
AssertCallback sAssertCallback;
|
||||
|
||||
void setAssertCallback(AssertCallback cb) {
|
||||
sAssertCallback = cb;
|
||||
}
|
||||
|
||||
void assert() {
|
||||
if (sAssertCallback != nullptr) {
|
||||
(sAssertCallback)(nullptr);
|
||||
}
|
||||
while (true) {}
|
||||
}
|
||||
|
||||
} // namespace sAssert
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
|
||||
namespace sCrc {
|
||||
|
||||
u32 calcCRC(const void *ptr, u32 size) {
|
||||
u32 calcCRC32(const void *ptr, u32 size) {
|
||||
return OSCalcCRC32(ptr, size);
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
#include "s/s_Print.h"
|
||||
|
||||
#include "rvl/OS/OSError.h"
|
||||
|
||||
#include <cstdarg>
|
||||
#include <cstdio>
|
||||
#include <stdio.h>
|
||||
|
||||
namespace sLib {
|
||||
|
||||
typedef int (*vprintf_sig)(const char *format, va_list args);
|
||||
|
||||
static vprintf_sig sPrintfFunc = &std::vprintf;
|
||||
|
||||
static vprintf_sig getVprintfFunc() {
|
||||
return sPrintfFunc;
|
||||
}
|
||||
|
||||
static void my_vprintf(const char *format, va_list args) {
|
||||
(getVprintfFunc())(format, args);
|
||||
}
|
||||
|
||||
void printf(const char *msg, ...) {
|
||||
va_list l;
|
||||
va_start(l, msg);
|
||||
vprintf(msg, l);
|
||||
va_end(l);
|
||||
}
|
||||
|
||||
} // namespace sLib
|
||||
|
||||
// Overriding the weakly linked OS functions...
|
||||
void OSReport(const char *msg, ...) {
|
||||
va_list l;
|
||||
va_start(l, msg);
|
||||
OSVReport(msg, l);
|
||||
va_end(l);
|
||||
}
|
||||
|
||||
void OSVReport(const char *msg, va_list args) {
|
||||
sLib::my_vprintf(msg, args);
|
||||
}
|
||||
@@ -0,0 +1,172 @@
|
||||
#include "toBeSorted/d_exception.h"
|
||||
|
||||
#include "DynamicLink.h"
|
||||
#include "common.h"
|
||||
#include "egg/core/eggController.h"
|
||||
#include "egg/core/eggHeap.h"
|
||||
#include "egg/prim/eggAssert.h"
|
||||
#include "egg/util/eggException.h"
|
||||
#include "m/m_pad.h"
|
||||
#include "nw4r/db/db_assert.h"
|
||||
#include "nw4r/db/db_console.h"
|
||||
#include "nw4r/db/db_exception.h"
|
||||
#include "rvl/AI/AI.h"
|
||||
#include "rvl/KPAD/KPAD.h"
|
||||
#include "rvl/OS/OSError.h"
|
||||
#include "rvl/OS/OSInterrupt.h"
|
||||
#include "rvl/WPAD/WPAD.h"
|
||||
#include "s/s_Assert.h"
|
||||
#include "toBeSorted/revision_info.h"
|
||||
|
||||
#include <cstdarg>
|
||||
|
||||
#define D_INFO_BUILD_TYPE "PRD"
|
||||
|
||||
#define D_INFO_COUNTRY "US"
|
||||
#define D_INFO_GAME_CODE "SOUE"
|
||||
|
||||
#define D_ASSERT_NUM_ERROR_HANDLERS 5
|
||||
|
||||
static const u8 sErrorCodes[D_ASSERT_NUM_ERROR_HANDLERS] = {
|
||||
OS_ERR_DSI, OS_ERR_ISI, OS_ERR_ALIGNMENT, OS_ERR_PROTECTION, OS_ERR_FP_EXCEPTION
|
||||
};
|
||||
|
||||
static OSErrorHandler sSavedErrorHandlers[D_ASSERT_NUM_ERROR_HANDLERS] = {};
|
||||
|
||||
static void printGameInfo() {
|
||||
nw4r::db::ConsoleHandle c = nw4r::db::Exception_GetConsole();
|
||||
nw4r::db::Console_Printf(c, " COUNTRY: %s\n", D_INFO_COUNTRY);
|
||||
nw4r::db::Console_Printf(c, "BUILD_TYPE: %s\n", D_INFO_BUILD_TYPE);
|
||||
nw4r::db::Console_Printf(c, " GAME_CODE: %s\n", D_INFO_GAME_CODE);
|
||||
|
||||
nw4r::db::Console_Printf(c, "URL_INFO:%s\n", getUrlInfo());
|
||||
nw4r::db::Console_Printf(c, "REV_INFO:%s\n", getRevisionInfo());
|
||||
nw4r::db::Console_Printf(c, "COPYDATE:%s\n", getCopydate());
|
||||
}
|
||||
|
||||
// Copied from EGG::Exception::ExceptionCallback_
|
||||
static void waitForButtonSequence(void *data) {
|
||||
KPADStatus status;
|
||||
OSEnableInterrupts();
|
||||
if (data != nullptr) {
|
||||
// Require a specific button sequence to show the exception handler
|
||||
int u4 = 0;
|
||||
while (((u16 *)data)[u4] != 0) {
|
||||
KPADRead(0, &status, 1);
|
||||
EGG::Exception::ExceptionWaitTime(50);
|
||||
if (status.trig) {
|
||||
// Reset the sequence on wrong button press, advance on right button press
|
||||
u4 = status.trig & (((u16 *)data)[u4]) ? u4 + 1 : 0;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void preExceptionCallback() {
|
||||
WPADControlMotor(0, WPAD_MOTOR_STOP);
|
||||
AIStopDMA();
|
||||
WPADSetAcceptConnection(true);
|
||||
printGameInfo();
|
||||
}
|
||||
|
||||
static void exceptionCallback(EGG::CoreStatus *status) {
|
||||
if ((status->hold & (mPad::BUTTON_MINUS | mPad::BUTTON_PLUS)) == (mPad::BUTTON_MINUS | mPad::BUTTON_PLUS)) {
|
||||
// When holding Minus and Plus at the same time, go back to the EGG exception handler
|
||||
EGG::Exception::SetCallbackMode(true);
|
||||
EGG::Exception::SetUserCallback(nullptr);
|
||||
}
|
||||
}
|
||||
|
||||
static void *sButtonSequencePtr = nullptr;
|
||||
|
||||
static void assertCallback() {
|
||||
WPADControlMotor(0, WPAD_MOTOR_STOP);
|
||||
AIStopDMA();
|
||||
WPADSetAcceptConnection(true);
|
||||
waitForButtonSequence(sButtonSequencePtr);
|
||||
printGameInfo();
|
||||
}
|
||||
|
||||
static bool sAsserted = false;
|
||||
static void sAssertCallback(void *) {
|
||||
OSDisableInterrupts();
|
||||
if (sAsserted) {
|
||||
OSReport("Recursive assertioned.\n");
|
||||
while (true) {}
|
||||
}
|
||||
sAsserted = true;
|
||||
EGG::Assert::assert("PANIC", 0, "PANIC");
|
||||
}
|
||||
|
||||
static void mainErrorHandler(u16 error, OSContext *ctx, u32 dsisr, u32 dar) {
|
||||
for (int i = 0; i < D_ASSERT_NUM_ERROR_HANDLERS; i++) {
|
||||
if (error == sErrorCodes[i] && sSavedErrorHandlers[i] != nullptr) {
|
||||
(sSavedErrorHandlers[i])(error, ctx, dsisr, dar);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void initErrorHandlers() {
|
||||
for (int i = 0; i < D_ASSERT_NUM_ERROR_HANDLERS; i++) {
|
||||
// UB: casting non-variadic function to variadic (and letting OS invoke it)
|
||||
OSErrorHandler oldHandler = OSSetErrorHandler(sErrorCodes[i], (OSErrorHandler)mainErrorHandler);
|
||||
if (oldHandler != nullptr) {
|
||||
sSavedErrorHandlers[i] = oldHandler;
|
||||
} else {
|
||||
OSSetErrorHandler(sErrorCodes[i], nullptr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// HOME, -, +, -, +, 1, 2, 1, 2, A, same as NSMBW
|
||||
static const u16 sButtonSequence[] = {
|
||||
mPad::BUTTON_HOME,
|
||||
mPad::BUTTON_MINUS,
|
||||
mPad::BUTTON_PLUS,
|
||||
mPad::BUTTON_MINUS,
|
||||
mPad::BUTTON_PLUS,
|
||||
mPad::BUTTON_1,
|
||||
mPad::BUTTON_2,
|
||||
mPad::BUTTON_1,
|
||||
mPad::BUTTON_2,
|
||||
mPad::BUTTON_A,
|
||||
0,
|
||||
};
|
||||
|
||||
void exceptionCreate(EGG::Heap *heap) {
|
||||
EGG::Exception::create(64, 100, 1, heap, 0);
|
||||
initErrorHandlers();
|
||||
|
||||
static DbMapFile mapFile;
|
||||
mapFile.RegisterOnDvd("maps/RVZELDANP.map", nullptr);
|
||||
nw4r::db::Exception_SetDisplayInfo(0x20 | 0x10 | 0x8 | 0x4 | 0x2 | 0x1);
|
||||
nw4r::db::Assertion_SetConsole(EGG::Exception::GetConsoleHandle());
|
||||
EGG::Exception::SetCallbackArgs((void *)sButtonSequence);
|
||||
sButtonSequencePtr = (void *)sButtonSequence;
|
||||
EGG::Exception::SetPreExceptionCallback(preExceptionCallback);
|
||||
EGG::Exception::SetUserCallback(exceptionCallback);
|
||||
EGG::Assert::setAssertCallback(assertCallback);
|
||||
sAssert::setAssertCallback(sAssertCallback);
|
||||
}
|
||||
|
||||
// Overriding weakly linked OS function
|
||||
static bool sPanicked = false;
|
||||
void OSPanic(const char *file, int line, const char *msg, ...) {
|
||||
OSDisableInterrupts();
|
||||
if (sPanicked) {
|
||||
OSReport("Recursive assertioned.\n");
|
||||
while (true) {}
|
||||
}
|
||||
sPanicked = true;
|
||||
|
||||
va_list l;
|
||||
va_start(l, msg);
|
||||
EGG::Assert::system_halt(file, line, msg, l);
|
||||
va_end(l);
|
||||
}
|
||||
|
||||
// Pooled data
|
||||
void d_exception_unused() {
|
||||
OSReport("d_Exception.cpp");
|
||||
OSReport("Recursive assertioned.");
|
||||
}
|
||||
@@ -433,7 +433,7 @@ extern "C" void fn_800C01F0(); // todo flag managers
|
||||
return &mFileB;
|
||||
}
|
||||
/* 80011280 */ u32 FileManager::calcFileCRC(const void *data, u32 length) {
|
||||
return sCrc::calcCRC(data, length);
|
||||
return sCrc::calcCRC32(data, length);
|
||||
}
|
||||
/* 80011290 */ void FileManager::updateEmptyFiles() {
|
||||
updateEmptyFileFlags();
|
||||
|
||||
Reference in New Issue
Block a user