Split Final Game Translation Units

Splits saveload.c and sreset.c. Also splits Gecko_ExceptionPPC to fix problems.
This commit is contained in:
gamemasterplc 2023-12-02 13:12:47 -06:00
parent 36ce4d7940
commit a1a6006fe9
5 changed files with 115 additions and 72 deletions

View file

@ -547,3 +547,21 @@ extract:
- symbol: Ascii8x8_1bpp
binary: Ascii8x8_1bpp.bin
header: Ascii8x8_1bpp.inc
- symbol: coveropen_en
binary: coveropen_en.bin
header: coveropen_en.inc
- symbol: fatalerror_en
binary: fatalerror_en.bin
header: fatalerror_en.inc
- symbol: loading_en
binary: loading_en.bin
header: loading_en.inc
- symbol: nodisc_en
binary: nodisc_en.bin
header: nodisc_en.inc
- symbol: retryerror_en
binary: retryerror_en.bin
header: retryerror_en.inc
- symbol: wrongdisc_en
binary: wrongdisc_en.bin
header: wrongdisc_en.inc

View file

@ -295,11 +295,27 @@ game/objsub.c:
.text start:0x80057E24 end:0x80058010
.data start:0x80131350 end:0x80132150
.bss start:0x801981E0 end:0x80198410
.sbss start:0x801D3E80 end:0x801D3EA8
game/flag.c:
.text start:0x80058010 end:0x80058228
.bss start:0x80198410 end:0x80198420
game/saveload.c:
.text start:0x80058228 end:0x8005A6F8
.data start:0x80132150 end:0x801321F8
.bss start:0x80198420 end:0x8019C440
.sdata start:0x801D3640 end:0x801D3658
.sbss start:0x801D3EA8 end:0x801D3EB8
.sdata2 start:0x801D5138 end:0x801D5148
game/sreset.c:
.text start:0x8005A6F8 end:0x8005B150
.data start:0x801321F8 end:0x80139798
.bss start:0x8019C440 end:0x8019D7E0
.sdata start:0x801D3658 end:0x801D3670
.sbss start:0x801D3EB8 end:0x801D3ED0
dolphin/PPCArch.c:
.text start:0x800B42F4 end:0x800B439C
@ -441,3 +457,12 @@ Runtime.PPCEABI.H/__init_cpp_exceptions.cpp:
.ctors start:0x8011DCC0 end:0x8011DCC4
.dtors start:0x8011DCE0 end:0x8011DCE8
.sdata start:0x801D39B0 end:0x801D39B8
Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp:
extab start:0x80005670 end:0x800056E4
extabindex start:0x80005748 end:0x8000579C
.text start:0x800E2B24 end:0x800E3F5C
.rodata start:0x8011E4D0 end:0x8011E5A0
.data start:0x8013E218 end:0x8013E300
.bss start:0x801A72D0 end:0x801A72E0
.sdata start:0x801D39B8 end:0x801D39C8

View file

@ -959,46 +959,46 @@ _CheckFlag = .text:0x80058010; // type:function size:0xA0
_SetFlag = .text:0x800580B0; // type:function size:0xA4
_ClearFlag = .text:0x80058154; // type:function size:0xA4
_InitFlag = .text:0x800581F8; // type:function size:0x30
fn_80058228 = .text:0x80058228; // type:function size:0x140
fn_80058368 = .text:0x80058368; // type:function size:0x2B0
fn_80058618 = .text:0x80058618; // type:function size:0x11C
fn_80058734 = .text:0x80058734; // type:function size:0x84
fn_800587B8 = .text:0x800587B8; // type:function size:0x4C
fn_80058804 = .text:0x80058804; // type:function size:0x8
fn_8005880C = .text:0x8005880C; // type:function size:0xC
fn_80058818 = .text:0x80058818; // type:function size:0x40
fn_80058858 = .text:0x80058858; // type:function size:0x8
fn_80058860 = .text:0x80058860; // type:function size:0x154
fn_800589B4 = .text:0x800589B4; // type:function size:0x218
fn_80058BCC = .text:0x80058BCC; // type:function size:0x254
fn_80058E20 = .text:0x80058E20; // type:function size:0x8C
fn_80058EAC = .text:0x80058EAC; // type:function size:0x8C
fn_80058F38 = .text:0x80058F38; // type:function size:0x380
fn_800592B8 = .text:0x800592B8; // type:function size:0xDC
fn_80059394 = .text:0x80059394; // type:function size:0x48
fn_800593DC = .text:0x800593DC; // type:function size:0x110
fn_800594EC = .text:0x800594EC; // type:function size:0x38
fn_80059524 = .text:0x80059524; // type:function size:0x1A0
fn_800596C4 = .text:0x800596C4; // type:function size:0x184
fn_80059848 = .text:0x80059848; // type:function size:0x28
fn_80059870 = .text:0x80059870; // type:function size:0xA0
fn_80059910 = .text:0x80059910; // type:function size:0x60
fn_80059970 = .text:0x80059970; // type:function size:0x54
fn_800599C4 = .text:0x800599C4; // type:function size:0x90
fn_80059A54 = .text:0x80059A54; // type:function size:0x1D4
fn_80059C28 = .text:0x80059C28; // type:function size:0x12C
fn_80059D54 = .text:0x80059D54; // type:function size:0x5A8
fn_8005A2FC = .text:0x8005A2FC; // type:function size:0x3FC
fn_8005A6F8 = .text:0x8005A6F8; // type:function size:0x50
fn_8005A748 = .text:0x8005A748; // type:function size:0x28
SLFileOpen = .text:0x80058228; // type:function size:0x140
SLFileCreate = .text:0x80058368; // type:function size:0x2B0
SLFileWrite = .text:0x80058618; // type:function size:0x11C
SLFileRead = .text:0x80058734; // type:function size:0x84
SLFileClose = .text:0x800587B8; // type:function size:0x4C
SLCurSlotNoSet = .text:0x80058804; // type:function size:0x8
SLCurBoxNoSet = .text:0x8005880C; // type:function size:0xC
SLSaveFlagSet = .text:0x80058818; // type:function size:0x40
SLSaveFlagGet = .text:0x80058858; // type:function size:0x8
SLSaveDataMake = .text:0x80058860; // type:function size:0x154
SLSaveDataInfoSet = .text:0x800589B4; // type:function size:0x218
SLCommonSet = .text:0x80058BCC; // type:function size:0x254
SLSaveBoard = .text:0x80058E20; // type:function size:0x8C
SLSaveBoardBackup = .text:0x80058EAC; // type:function size:0x8C
SLSave = .text:0x80058F38; // type:function size:0x380
SLCreateSaveWin = .text:0x800592B8; // type:function size:0xDC scope:local
SLKillSaveWin = .text:0x80059394; // type:function size:0x48 scope:local
SLLoad = .text:0x800593DC; // type:function size:0x110
SLLoadGameStat = .text:0x800594EC; // type:function size:0x38
SLLoadBoard = .text:0x80059524; // type:function size:0x1A0
SLLoadBoardBackup = .text:0x800596C4; // type:function size:0x184
SLSerialNoGet = .text:0x80059848; // type:function size:0x28
SLSerialNoCheck = .text:0x80059870; // type:function size:0xA0
SLCheckSumCheck = .text:0x80059910; // type:function size:0x60
SLCheckSumGet = .text:0x80059970; // type:function size:0x54
SLCheckSumSet = .text:0x800599C4; // type:function size:0x90
SLStatSet = .text:0x80059A54; // type:function size:0x1D4
SLCardMount = .text:0x80059C28; // type:function size:0x12C
SLFormat = .text:0x80059D54; // type:function size:0x5A8
SLMessOut = .text:0x8005A2FC; // type:function size:0x3FC
HuSoftResetButtonCheck = .text:0x8005A6F8; // type:function size:0x50
HuDvdErrDispIntFunc = .text:0x8005A748; // type:function size:0x28
HuDvdErrDispInit = .text:0x8005A770; // type:function size:0x1F4
fn_8005A964 = .text:0x8005A964; // type:function size:0xD8
fn_8005AA3C = .text:0x8005AA3C; // type:function size:0x128
fn_8005AB64 = .text:0x8005AB64; // type:function size:0x2D0
fn_8005AE34 = .text:0x8005AE34; // type:function size:0xDC
fn_8005AF10 = .text:0x8005AF10; // type:function size:0xFC
fn_8005B00C = .text:0x8005B00C; // type:function size:0xCC
fn_8005B0D8 = .text:0x8005B0D8; // type:function size:0x78
ToeThreadFunc = .text:0x8005A964; // type:function size:0xD8 scope:local
ToeDispCheck = .text:0x8005AA3C; // type:function size:0x128 scope:local
_HuDvdErrDispXFB = .text:0x8005AB64; // type:function size:0x2D0 scope:local
HuRestartSystem = .text:0x8005AE34; // type:function size:0xDC
HuSoftResetCheck = .text:0x8005AF10; // type:function size:0xFC scope:local
HuSoftResetCountCheck = .text:0x8005B00C; // type:function size:0xCC scope:local
HuSoftResetPostProc = .text:0x8005B0D8; // type:function size:0x78 scope:local
fn_8005B150 = .text:0x8005B150; // type:function size:0x2E0
fn_8005B430 = .text:0x8005B430; // type:function size:0x64
fn_8005B494 = .text:0x8005B494; // type:function size:0x9C
@ -5126,15 +5126,15 @@ lbl_8013219C = .data:0x8013219C; // type:object size:0xC data:string
lbl_801321A8 = .data:0x801321A8; // type:object size:0xC data:string
lbl_801321B4 = .data:0x801321B4; // type:object size:0xC
jumptable_801321C0 = .data:0x801321C0; // type:object size:0x34 scope:local
lbl_801321F8 = .data:0x801321F8; // type:object size:0x10
lbl_80132208 = .data:0x80132208; // type:object size:0x1384 noreloc
lbl_8013358C = .data:0x8013358C; // type:object size:0x1384 noreloc
lbl_80134910 = .data:0x80134910; // type:object size:0x1384 noreloc
lbl_80135C94 = .data:0x80135C94; // type:object size:0x1384 noreloc
lbl_80137018 = .data:0x80137018; // type:object size:0x1384 noreloc
lbl_8013839C = .data:0x8013839C; // type:object size:0x1384 noreloc
SR_PreRstChk = .data:0x801321F8; // type:object size:0x10
coveropen_en = .data:0x80132208; // type:object size:0x1384 noreloc
fatalerror_en = .data:0x8013358C; // type:object size:0x1384 noreloc
loading_en = .data:0x80134910; // type:object size:0x1384 noreloc
nodisc_en = .data:0x80135C94; // type:object size:0x1384 noreloc
retryerror_en = .data:0x80137018; // type:object size:0x1384 noreloc
wrongdisc_en = .data:0x8013839C; // type:object size:0x1384 noreloc
jumptable_80139720 = .data:0x80139720; // type:object size:0x34 scope:local
lbl_80139754 = .data:0x80139754; // type:object size:0x18
bmpMes$493 = .data:0x80139754; // type:object size:0x18 scope:local
lbl_8013976C = .data:0x8013976C; // type:object size:0x13 data:string
lbl_8013977F = .data:0x8013977F; // type:object size:0x19
lbl_80139798 = .data:0x80139798; // type:object size:0x24
@ -5476,9 +5476,13 @@ GWGameStatBackup = .bss:0x801981E0; // type:object size:0x118
lbl_801982F8 = .bss:0x801982F8; // type:object size:0x100
lbl_801983F8 = .bss:0x801983F8; // type:object size:0x18
_Sys_Flag = .bss:0x80198410; // type:object size:0x10
lbl_80198420 = .bss:0x80198420; // type:object size:0x20
lbl_80198440 = .bss:0x80198440; // type:object size:0x4000
lbl_8019C440 = .bss:0x8019C440; // type:object size:0x13A0
curFileInfo = .bss:0x80198420; // type:object size:0x20
saveBuf = .bss:0x80198440; // type:object size:0x4000 align:32
ToeMessageQueue = .bss:0x8019C440; // type:object size:0x20 scope:local
padStat$377 = .bss:0x8019C460; // type:object size:0x30 scope:local
ToeMessageArray = .bss:0x8019C490; // type:object size:0x40 scope:local
ToeThread = .bss:0x8019C4D0; // type:object size:0x310 scope:local align:8
ToeThreadStack = .bss:0x8019C7E0; // type:object size:0x1000 scope:local
lbl_8019D7E0 = .bss:0x8019D7E0; // type:object size:0xC4 data:byte
lbl_8019D8A4 = .bss:0x8019D8A4; // type:object size:0xC4
lbl_8019D968 = .bss:0x8019D968; // type:object size:0x10
@ -5739,14 +5743,14 @@ lbl_801D3623 = .sdata:0x801D3623; // type:object size:0x8 data:string
lbl_801D362B = .sdata:0x801D362B; // type:object size:0x6 data:string
lbl_801D3631 = .sdata:0x801D3631; // type:object size:0x7
lbl_801D3638 = .sdata:0x801D3638; // type:object size:0x8
lbl_801D3640 = .sdata:0x801D3640; // type:object size:0x4 data:4byte
SaveEnableF = .sdata:0x801D3640; // type:object size:0x4 data:4byte
lbl_801D3644 = .sdata:0x801D3644; // type:object size:0x2 data:string
lbl_801D3646 = .sdata:0x801D3646; // type:object size:0x2 data:string
lbl_801D3648 = .sdata:0x801D3648; // type:object size:0x8
lbl_801D3650 = .sdata:0x801D3650; // type:object size:0x8 data:4byte
lbl_801D3658 = .sdata:0x801D3658; // type:object size:0x8 data:2byte
lbl_801D3660 = .sdata:0x801D3660; // type:object size:0x1 data:byte
lbl_801D3664 = .sdata:0x801D3664; // type:object size:0xC data:4byte
SlotNameTbl = .sdata:0x801D3648; // type:object size:0x8 scope:local
saveMessWin = .sdata:0x801D3650; // type:object size:0x8 scope:local data:4byte
SR_PushTime = .sdata:0x801D3658; // type:object size:0x8 scope:local data:2byte
SR_ResetPad = .sdata:0x801D3660; // type:object size:0x1 scope:local data:byte
Xfb = .sdata:0x801D3664; // type:object size:0x8 scope:local data:4byte
lbl_801D3670 = .sdata:0x801D3670; // type:object size:0x4 data:4byte
lbl_801D3674 = .sdata:0x801D3674; // type:object size:0x1 data:byte
lbl_801D3675 = .sdata:0x801D3675; // type:object size:0x1 data:byte
@ -5911,8 +5915,8 @@ lbl_801D39A0 = .sdata:0x801D39A0; // type:object size:0x8
lbl_801D39A8 = .sdata:0x801D39A8; // type:object size:0x4 data:4byte
lbl_801D39AC = .sdata:0x801D39AC; // type:object size:0x4 data:4byte
fragmentID = .sdata:0x801D39B0; // type:object size:0x4 scope:local data:4byte
lbl_801D39B8 = .sdata:0x801D39B8; // type:object size:0x8
lbl_801D39C0 = .sdata:0x801D39C0; // type:object size:0x8
__RTTI__Q23std9exception = .sdata:0x801D39B8; // type:object size:0x8 scope:local
__RTTI__Q23std13bad_exception = .sdata:0x801D39C0; // type:object size:0x8 scope:local
@wstringBase0 = .sdata:0x801D39C8; // type:object size:0x2 scope:local
lbl_801D39D0 = .sdata:0x801D39D0; // type:object size:0x4 data:float
lbl_801D39D4 = .sdata:0x801D39D4; // type:object size:0x4 data:float
@ -6219,13 +6223,13 @@ lbl_801D3EAA = .sbss:0x801D3EAA; // type:object size:0x1 data:byte
lbl_801D3EAC = .sbss:0x801D3EAC; // type:object size:0x4
lbl_801D3EB0 = .sbss:0x801D3EB0; // type:object size:0x4 data:4byte
lbl_801D3EB4 = .sbss:0x801D3EB4; // type:object size:0x4 data:4byte
lbl_801D3EB8 = .sbss:0x801D3EB8; // type:object size:0x4 data:4byte
lbl_801D3EBC = .sbss:0x801D3EBC; // type:object size:0x4 data:4byte
lbl_801D3EC0 = .sbss:0x801D3EC0; // type:object size:0x4 data:4byte
lbl_801D3EC4 = .sbss:0x801D3EC4; // type:object size:0x4 data:4byte
lbl_801D3EC8 = .sbss:0x801D3EC8; // type:object size:0x4 data:4byte
lbl_801D3ECC = .sbss:0x801D3ECC; // type:object size:0x2 data:2byte
lbl_801D3ECE = .sbss:0x801D3ECE; // type:object size:0x2 data:2byte
H_ResetReady = .sbss:0x801D3EB8; // type:object size:0x4 scope:local data:4byte
SR_RestartChk = .sbss:0x801D3EBC; // type:object size:0x4 scope:local data:4byte
SR_ExecReset = .sbss:0x801D3EC0; // type:object size:0x4 data:4byte
trychkBusyWait = .sbss:0x801D3EC4; // type:object size:0x4 scope:local data:4byte
XfbProg = .sbss:0x801D3EC8; // type:object size:0x4 scope:local data:4byte
XfbH = .sbss:0x801D3ECC; // type:object size:0x2 scope:local data:2byte
XfbW = .sbss:0x801D3ECE; // type:object size:0x2 scope:local data:2byte
lbl_801D3ED0 = .sbss:0x801D3ED0; // type:object size:0x4 data:4byte
lbl_801D3ED4 = .sbss:0x801D3ED4; // type:object size:0x4 data:4byte
lbl_801D3ED8 = .sbss:0x801D3ED8; // type:object size:0x4 data:4byte

View file

@ -278,6 +278,8 @@ config.libs = [
Object(NonMatching, "game/thpmain.c"),
Object(NonMatching, "game/objsub.c"),
Object(NonMatching, "game/flag.c"),
Object(NonMatching, "game/saveload.c"),
Object(NonMatching, "game/sreset.c"),
],
},
DolphinLib(
@ -340,6 +342,7 @@ config.libs = [
"objects": [
Object(Matching, "Runtime.PPCEABI.H/global_destructor_chain.c"),
Object(Matching, "Runtime.PPCEABI.H/__init_cpp_exceptions.cpp"),
Object(Matching, "Runtime.PPCEABI.H/Gecko_ExceptionPPC.cp"),
],
},
{

View file

@ -7,8 +7,6 @@
extern "C" {
#endif
#define OS_THREAD_SPECIFIC_MAX 2
typedef struct OSThread OSThread;
typedef struct OSThreadQueue OSThreadQueue;
typedef struct OSThreadLink OSThreadLink;
@ -58,8 +56,6 @@ struct OSThread {
OSThreadLink linkActive;
u8* stackBase;
u32* stackEnd;
s32 error;
void* specific[OS_THREAD_SPECIFIC_MAX];
};
enum OS_THREAD_STATE {
@ -98,9 +94,6 @@ OSPriority OSGetThreadPriority(OSThread* thread);
void OSSleepThread(OSThreadQueue* queue);
void OSWakeupThread(OSThreadQueue* queue);
void* OSGetThreadSpecific(s32 index);
void OSSetThreadSpecific(s32 index, void* ptr);
OSThread* OSSetIdleFunction(OSIdleFunction idleFunction, void* param, void* stack, u32 stackSize);
OSThread* OSGetIdleFunction(void);
void OSClearStack(u8 val);