From 160205ccb8f768dfbf6b2e87c8548c22569b970d Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Tue, 14 Sep 2021 08:19:43 +1000 Subject: [PATCH] Decompile mpsetupfileSave --- src/game/endscreen.c | 4 +- src/game/game_01bea0.c | 8 +- src/game/game_0d4690.c | 6 +- src/game/game_102240.c | 2 +- src/game/game_107fb0.c | 2 +- src/game/game_110680.c | 313 ++++++++------------------------- src/game/gamefile.c | 19 -- src/include/game/game_0d4690.h | 2 +- src/include/game/game_110680.h | 4 +- 9 files changed, 87 insertions(+), 273 deletions(-) diff --git a/src/game/endscreen.c b/src/game/endscreen.c index 164213072..ae020b6d4 100644 --- a/src/game/endscreen.c +++ b/src/game/endscreen.c @@ -1360,7 +1360,7 @@ void endscreenPrepare(void) if (g_MissionConfig.stagenum == STAGE_SKEDARRUINS && (u8)g_SoloCompleted == false) { g_SoloCompleted = true; g_AltTitle = true; - func0f1109c0(); + mpsetupfileSave(); } } } @@ -1563,7 +1563,7 @@ glabel endscreenPrepare /* f1091b4: 15a00004 */ bnez $t5,.NB0f1091c8 /* f1091b8: 00000000 */ sll $zero,$zero,0x0 /* f1091bc: a0620000 */ sb $v0,0x0($v1) -/* f1091c0: 0fc42b8c */ jal func0f1109c0 +/* f1091c0: 0fc42b8c */ jal mpsetupfileSave /* f1091c4: a022681c */ sb $v0,0x681c($at) .NB0f1091c8: /* f1091c8: 3c04800a */ lui $a0,0x800a diff --git a/src/game/game_01bea0.c b/src/game/game_01bea0.c index 71ee8c9ea..563283991 100644 --- a/src/game/game_01bea0.c +++ b/src/game/game_01bea0.c @@ -1081,7 +1081,7 @@ glabel var7f1a863c /* f01cdc0: 31f80002 */ andi $t8,$t7,0x2 /* f01cdc4: 530000ca */ beqzl $t8,.PF0f01d0f0 /* f01cdc8: 240fffff */ li $t7,-1 -/* f01cdcc: 0fc44527 */ jal func0f1109c0 +/* f01cdcc: 0fc44527 */ jal mpsetupfileSave /* f01cdd0: 00000000 */ nop /* f01cdd4: 8e6d0458 */ lw $t5,0x458($s3) /* f01cdd8: 2401fffd */ li $at,-3 @@ -2858,7 +2858,7 @@ glabel var7f1a863c /* f01ccf0: 332d0002 */ andi $t5,$t9,0x2 /* f01ccf4: 51a000ca */ beqzl $t5,.L0f01d020 /* f01ccf8: 2419ffff */ addiu $t9,$zero,-1 -/* f01ccfc: 0fc44270 */ jal func0f1109c0 +/* f01ccfc: 0fc44270 */ jal mpsetupfileSave /* f01cd00: 00000000 */ nop /* f01cd04: 8e6f0458 */ lw $t7,0x458($s3) /* f01cd08: 2401fffd */ addiu $at,$zero,-3 @@ -4626,7 +4626,7 @@ glabel var7f1a863c /* f01c9d0: 332d0002 */ andi $t5,$t9,0x2 /* f01c9d4: 51a000ca */ beqzl $t5,.NB0f01cd00 /* f01c9d8: 2419ffff */ addiu $t9,$zero,-1 -/* f01c9dc: 0fc42b8c */ jal func0f1109c0 +/* f01c9dc: 0fc42b8c */ jal mpsetupfileSave /* f01c9e0: 00000000 */ sll $zero,$zero,0x0 /* f01c9e4: 8e6f0458 */ lw $t7,0x458($s3) /* f01c9e8: 2401fffd */ addiu $at,$zero,-3 @@ -5858,7 +5858,7 @@ glabel var7f1a863c // func0f01bea0(); // // if (g_Vars.modifiedfiles & MODFILE_MPSETUP) { -// func0f1109c0(); +// mpsetupfileSave(); // g_Vars.modifiedfiles &= ~MODFILE_MPSETUP; // } // } else /*cd1c*/ if (g_MenuData.unk008 == -6) { diff --git a/src/game/game_0d4690.c b/src/game/game_0d4690.c index 069620b44..2afcf7742 100644 --- a/src/game/game_0d4690.c +++ b/src/game/game_0d4690.c @@ -917,10 +917,10 @@ glabel func0f0d5690 //} #endif -void func0f0d575c(struct savebuffer *buffer, u32 *arg1) +void func0f0d575c(struct savebuffer *buffer, struct maybesavelocation_2d8 *arg1) { - savebufferOr(buffer, *(s32 *) arg1, 7); - savebufferOr(buffer, *(u16 *) (arg1 + 1), 13); + savebufferOr(buffer, arg1->unk00, 7); + savebufferOr(buffer, arg1->unk04, 13); } void func0f0d579c(struct savebuffer *buffer, struct maybesavelocation_2d8 *arg1) diff --git a/src/game/game_102240.c b/src/game/game_102240.c index 5df8530ea..cc565e580 100644 --- a/src/game/game_102240.c +++ b/src/game/game_102240.c @@ -4155,7 +4155,7 @@ s32 menudialog0010559c(s32 operation, struct menudialog *dialog, union handlerda } if (g_Vars.modifiedfiles & MODFILE_GLOBAL) { - func0f1109c0(); + mpsetupfileSave(); g_Vars.modifiedfiles &= ~MODFILE_GLOBAL; } break; diff --git a/src/game/game_107fb0.c b/src/game/game_107fb0.c index 5911a807d..ecabb693d 100644 --- a/src/game/game_107fb0.c +++ b/src/game/game_107fb0.c @@ -477,7 +477,7 @@ void filemgrHandleSuccess(void) case FILEOP_LOAD_GAME: g_Vars.unk00047c = g_Menus[g_MpPlayerNum].unke48; g_Vars.unk000480 = g_Menus[g_MpPlayerNum].unke4c; - func0f1109c0(); + mpsetupfileSave(); if (IS4MB()) { func0f0f820c(&g_MainMenu4MbMenuDialog, MENUROOT_4MBMAINMENU); diff --git a/src/game/game_110680.c b/src/game/game_110680.c index 1604ed4ac..be8949c73 100644 --- a/src/game/game_110680.c +++ b/src/game/game_110680.c @@ -72,13 +72,13 @@ u32 var80075bfc = 0; void func0f110680(void) { - func0f110b68(); + mpsetupfileLoadDefaults(); } void func0f1106a0(void) { - func0f110b68(); - func0f1109c0(); + mpsetupfileLoadDefaults(); + mpsetupfileSave(); } #if VERSION >= VERSION_PAL_FINAL @@ -251,246 +251,62 @@ void mpsetupfileLoad(void) } if (sp124) { - func0f110b68(); - func0f1109c0(); + mpsetupfileLoadDefaults(); + mpsetupfileSave(); } } -#if VERSION >= VERSION_PAL_FINAL -GLOBAL_ASM( -glabel func0f1109c0 -/* f1109c0: 27bdfed0 */ addiu $sp,$sp,-304 -/* f1109c4: afb20028 */ sw $s2,0x28($sp) -/* f1109c8: 27b2004c */ addiu $s2,$sp,0x4c -/* f1109cc: afbf002c */ sw $ra,0x2c($sp) -/* f1109d0: afb10024 */ sw $s1,0x24($sp) -/* f1109d4: afb00020 */ sw $s0,0x20($sp) -/* f1109d8: afa0012c */ sw $zero,0x12c($sp) -/* f1109dc: 0fc35517 */ jal savebufferClear -/* f1109e0: 02402025 */ or $a0,$s2,$zero -/* f1109e4: 3c10800a */ lui $s0,%hi(g_Vars) -/* f1109e8: 26109fc0 */ addiu $s0,$s0,%lo(g_Vars) -/* f1109ec: 8e0e047c */ lw $t6,0x47c($s0) -/* f1109f0: 960f0480 */ lhu $t7,0x480($s0) -/* f1109f4: 02402025 */ or $a0,$s2,$zero -/* f1109f8: 27a50044 */ addiu $a1,$sp,0x44 -/* f1109fc: afae0044 */ sw $t6,0x44($sp) -/* f110a00: 0fc355d7 */ jal func0f0d575c -/* f110a04: a7af0048 */ sh $t7,0x48($sp) -/* f110a08: 3c05800b */ lui $a1,%hi(g_MpSetup+0x89) -/* f110a0c: 90a5cc11 */ lbu $a1,%lo(g_MpSetup+0x89)($a1) -/* f110a10: 02402025 */ or $a0,$s2,$zero -/* f110a14: 0fc354be */ jal savebufferOr -/* f110a18: 24060001 */ addiu $a2,$zero,0x1 -/* f110a1c: 02402025 */ or $a0,$s2,$zero -/* f110a20: 96050482 */ lhu $a1,0x482($s0) -/* f110a24: 0fc354be */ jal savebufferOr -/* f110a28: 24060004 */ addiu $a2,$zero,0x4 -/* f110a2c: 3c10800b */ lui $s0,%hi(g_MpSetup+0x28) -/* f110a30: 3c11800b */ lui $s1,%hi(g_MpSetup+0x88) -/* f110a34: 2631cc10 */ addiu $s1,$s1,%lo(g_MpSetup+0x88) -/* f110a38: 2610cbb0 */ addiu $s0,$s0,%lo(g_MpSetup+0x28) -/* f110a3c: 02402025 */ or $a0,$s2,$zero -.L0f110a40: -/* f110a40: 0fc35569 */ jal func0f0d55a4 -/* f110a44: 02002825 */ or $a1,$s0,$zero -/* f110a48: 2610000c */ addiu $s0,$s0,0xc -/* f110a4c: 0211082b */ sltu $at,$s0,$s1 -/* f110a50: 5420fffb */ bnezl $at,.L0f110a40 -/* f110a54: 02402025 */ or $a0,$s2,$zero -/* f110a58: 3c02800b */ lui $v0,%hi(g_MpSetupFile+0x64) -/* f110a5c: 8042cc14 */ lb $v0,%lo(g_MpSetupFile+0x64)($v0) -/* f110a60: 2401ffff */ addiu $at,$zero,-1 -/* f110a64: 02402025 */ or $a0,$s2,$zero -/* f110a68: 14410007 */ bne $v0,$at,.L0f110a88 -/* f110a6c: 00402825 */ or $a1,$v0,$zero -/* f110a70: 02402025 */ or $a0,$s2,$zero -/* f110a74: 240500ff */ addiu $a1,$zero,0xff -/* f110a78: 0fc354be */ jal savebufferOr -/* f110a7c: 24060008 */ addiu $a2,$zero,0x8 -/* f110a80: 10000003 */ b .L0f110a90 -/* f110a84: 00000000 */ nop -.L0f110a88: -/* f110a88: 0fc354be */ jal savebufferOr -/* f110a8c: 24060008 */ addiu $a2,$zero,0x8 -.L0f110a90: -/* f110a90: 3c10800b */ lui $s0,%hi(g_MpSetup+0x28) -/* f110a94: 3c11800b */ lui $s1,%hi(g_MpSetup+0x2e) -/* f110a98: 2631cbb6 */ addiu $s1,$s1,%lo(g_MpSetup+0x2e) -/* f110a9c: 2610cbb0 */ addiu $s0,$s0,%lo(g_MpSetup+0x28) -/* f110aa0: 02402025 */ or $a0,$s2,$zero -.L0f110aa4: -/* f110aa4: 92050065 */ lbu $a1,0x65($s0) -/* f110aa8: 0fc354be */ jal savebufferOr -/* f110aac: 24060008 */ addiu $a2,$zero,0x8 -/* f110ab0: 26100001 */ addiu $s0,$s0,0x1 -/* f110ab4: 5611fffb */ bnel $s0,$s1,.L0f110aa4 -/* f110ab8: 02402025 */ or $a0,$s2,$zero -/* f110abc: 3c05800b */ lui $a1,%hi(g_MpSetup+0x8a) -/* f110ac0: 90a5cc12 */ lbu $a1,%lo(g_MpSetup+0x8a)($a1) -/* f110ac4: 02402025 */ or $a0,$s2,$zero -/* f110ac8: 0fc354be */ jal savebufferOr -/* f110acc: 24060001 */ addiu $a2,$zero,0x1 -/* f110ad0: 3c05800a */ lui $a1,%hi(var800a2328+0x3) -/* f110ad4: 90a5232b */ lbu $a1,%lo(var800a2328+0x3)($a1) -/* f110ad8: 02402025 */ or $a0,$s2,$zero -/* f110adc: 0fc354be */ jal savebufferOr -/* f110ae0: 24060001 */ addiu $a2,$zero,0x1 -/* f110ae4: 3c05800a */ lui $a1,%hi(g_AltTitle) -/* f110ae8: 90a5232c */ lbu $a1,%lo(g_AltTitle)($a1) -/* f110aec: 02402025 */ or $a0,$s2,$zero -/* f110af0: 0fc354be */ jal savebufferOr -/* f110af4: 24060001 */ addiu $a2,$zero,0x1 -/* f110af8: 0fc35531 */ jal func0f0d54c4 -/* f110afc: 02402025 */ or $a0,$s2,$zero -/* f110b00: 0fc441c8 */ jal func0f110720 -/* f110b04: 00000000 */ nop -/* f110b08: 14400007 */ bnez $v0,.L0f110b28 -/* f110b0c: 00408025 */ or $s0,$v0,$zero -/* f110b10: 3c047f1b */ lui $a0,%hi(var7f1b39b0) -/* f110b14: 3c057f1b */ lui $a1,%hi(var7f1b39bc) -/* f110b18: 24a539bc */ addiu $a1,$a1,%lo(var7f1b39bc) -/* f110b1c: 248439b0 */ addiu $a0,$a0,%lo(var7f1b39b0) -/* f110b20: 0c002ff4 */ jal func0000bfd0 -/* f110b24: 24060177 */ addiu $a2,$zero,0x179 -.L0f110b28: -/* f110b28: 24040004 */ addiu $a0,$zero,0x4 -/* f110b2c: 02002825 */ or $a1,$s0,$zero -/* f110b30: 24060010 */ addiu $a2,$zero,0x10 -/* f110b34: 27a70050 */ addiu $a3,$sp,0x50 -/* f110b38: afa00010 */ sw $zero,0x10($sp) -/* f110b3c: 0fc45a0a */ jal func0f116828 -/* f110b40: afa00014 */ sw $zero,0x14($sp) -/* f110b44: 10400002 */ beqz $v0,.L0f110b50 -/* f110b48: 24180001 */ addiu $t8,$zero,0x1 -/* f110b4c: afb8012c */ sw $t8,0x12c($sp) -.L0f110b50: -/* f110b50: 8fbf002c */ lw $ra,0x2c($sp) -/* f110b54: 8fb00020 */ lw $s0,0x20($sp) -/* f110b58: 8fb10024 */ lw $s1,0x24($sp) -/* f110b5c: 8fb20028 */ lw $s2,0x28($sp) -/* f110b60: 03e00008 */ jr $ra -/* f110b64: 27bd0130 */ addiu $sp,$sp,0x130 -); -#else -GLOBAL_ASM( -glabel func0f1109c0 -/* f1109c0: 27bdfed0 */ addiu $sp,$sp,-304 -/* f1109c4: afb20028 */ sw $s2,0x28($sp) -/* f1109c8: 27b2004c */ addiu $s2,$sp,0x4c -/* f1109cc: afbf002c */ sw $ra,0x2c($sp) -/* f1109d0: afb10024 */ sw $s1,0x24($sp) -/* f1109d4: afb00020 */ sw $s0,0x20($sp) -/* f1109d8: afa0012c */ sw $zero,0x12c($sp) -/* f1109dc: 0fc35517 */ jal savebufferClear -/* f1109e0: 02402025 */ or $a0,$s2,$zero -/* f1109e4: 3c10800a */ lui $s0,%hi(g_Vars) -/* f1109e8: 26109fc0 */ addiu $s0,$s0,%lo(g_Vars) -/* f1109ec: 8e0e047c */ lw $t6,0x47c($s0) -/* f1109f0: 960f0480 */ lhu $t7,0x480($s0) -/* f1109f4: 02402025 */ or $a0,$s2,$zero -/* f1109f8: 27a50044 */ addiu $a1,$sp,0x44 -/* f1109fc: afae0044 */ sw $t6,0x44($sp) -/* f110a00: 0fc355d7 */ jal func0f0d575c -/* f110a04: a7af0048 */ sh $t7,0x48($sp) -/* f110a08: 3c05800b */ lui $a1,%hi(g_MpSetup+0x89) -/* f110a0c: 90a5cc11 */ lbu $a1,%lo(g_MpSetup+0x89)($a1) -/* f110a10: 02402025 */ or $a0,$s2,$zero -/* f110a14: 0fc354be */ jal savebufferOr -/* f110a18: 24060001 */ addiu $a2,$zero,0x1 -/* f110a1c: 02402025 */ or $a0,$s2,$zero -/* f110a20: 96050482 */ lhu $a1,0x482($s0) -/* f110a24: 0fc354be */ jal savebufferOr -/* f110a28: 24060004 */ addiu $a2,$zero,0x4 -/* f110a2c: 3c10800b */ lui $s0,%hi(g_MpSetup+0x28) -/* f110a30: 3c11800b */ lui $s1,%hi(g_MpSetup+0x88) -/* f110a34: 2631cc10 */ addiu $s1,$s1,%lo(g_MpSetup+0x88) -/* f110a38: 2610cbb0 */ addiu $s0,$s0,%lo(g_MpSetup+0x28) -/* f110a3c: 02402025 */ or $a0,$s2,$zero -.L0f110a40: -/* f110a40: 0fc35569 */ jal func0f0d55a4 -/* f110a44: 02002825 */ or $a1,$s0,$zero -/* f110a48: 2610000c */ addiu $s0,$s0,0xc -/* f110a4c: 0211082b */ sltu $at,$s0,$s1 -/* f110a50: 5420fffb */ bnezl $at,.L0f110a40 -/* f110a54: 02402025 */ or $a0,$s2,$zero -/* f110a58: 3c02800b */ lui $v0,%hi(g_MpSetupFile+0x64) -/* f110a5c: 8042cc14 */ lb $v0,%lo(g_MpSetupFile+0x64)($v0) -/* f110a60: 2401ffff */ addiu $at,$zero,-1 -/* f110a64: 02402025 */ or $a0,$s2,$zero -/* f110a68: 14410007 */ bne $v0,$at,.L0f110a88 -/* f110a6c: 00402825 */ or $a1,$v0,$zero -/* f110a70: 02402025 */ or $a0,$s2,$zero -/* f110a74: 240500ff */ addiu $a1,$zero,0xff -/* f110a78: 0fc354be */ jal savebufferOr -/* f110a7c: 24060008 */ addiu $a2,$zero,0x8 -/* f110a80: 10000003 */ b .L0f110a90 -/* f110a84: 00000000 */ nop -.L0f110a88: -/* f110a88: 0fc354be */ jal savebufferOr -/* f110a8c: 24060008 */ addiu $a2,$zero,0x8 -.L0f110a90: -/* f110a90: 3c10800b */ lui $s0,%hi(g_MpSetup+0x28) -/* f110a94: 3c11800b */ lui $s1,%hi(g_MpSetup+0x2e) -/* f110a98: 2631cbb6 */ addiu $s1,$s1,%lo(g_MpSetup+0x2e) -/* f110a9c: 2610cbb0 */ addiu $s0,$s0,%lo(g_MpSetup+0x28) -/* f110aa0: 02402025 */ or $a0,$s2,$zero -.L0f110aa4: -/* f110aa4: 92050065 */ lbu $a1,0x65($s0) -/* f110aa8: 0fc354be */ jal savebufferOr -/* f110aac: 24060008 */ addiu $a2,$zero,0x8 -/* f110ab0: 26100001 */ addiu $s0,$s0,0x1 -/* f110ab4: 5611fffb */ bnel $s0,$s1,.L0f110aa4 -/* f110ab8: 02402025 */ or $a0,$s2,$zero -/* f110abc: 3c05800b */ lui $a1,%hi(g_MpSetup+0x8a) -/* f110ac0: 90a5cc12 */ lbu $a1,%lo(g_MpSetup+0x8a)($a1) -/* f110ac4: 02402025 */ or $a0,$s2,$zero -/* f110ac8: 0fc354be */ jal savebufferOr -/* f110acc: 24060001 */ addiu $a2,$zero,0x1 -/* f110ad0: 3c05800a */ lui $a1,%hi(var800a2328+0x3) -/* f110ad4: 90a5232b */ lbu $a1,%lo(var800a2328+0x3)($a1) -/* f110ad8: 02402025 */ or $a0,$s2,$zero -/* f110adc: 0fc354be */ jal savebufferOr -/* f110ae0: 24060001 */ addiu $a2,$zero,0x1 -/* f110ae4: 3c05800a */ lui $a1,%hi(g_AltTitle) -/* f110ae8: 90a5232c */ lbu $a1,%lo(g_AltTitle)($a1) -/* f110aec: 02402025 */ or $a0,$s2,$zero -/* f110af0: 0fc354be */ jal savebufferOr -/* f110af4: 24060001 */ addiu $a2,$zero,0x1 -/* f110af8: 0fc35531 */ jal func0f0d54c4 -/* f110afc: 02402025 */ or $a0,$s2,$zero -/* f110b00: 0fc441c8 */ jal func0f110720 -/* f110b04: 00000000 */ nop -/* f110b08: 14400007 */ bnez $v0,.L0f110b28 -/* f110b0c: 00408025 */ or $s0,$v0,$zero -/* f110b10: 3c047f1b */ lui $a0,%hi(var7f1b39b0) -/* f110b14: 3c057f1b */ lui $a1,%hi(var7f1b39bc) -/* f110b18: 24a539bc */ addiu $a1,$a1,%lo(var7f1b39bc) -/* f110b1c: 248439b0 */ addiu $a0,$a0,%lo(var7f1b39b0) -/* f110b20: 0c002ff4 */ jal func0000bfd0 -/* f110b24: 24060177 */ addiu $a2,$zero,0x177 -.L0f110b28: -/* f110b28: 24040004 */ addiu $a0,$zero,0x4 -/* f110b2c: 02002825 */ or $a1,$s0,$zero -/* f110b30: 24060010 */ addiu $a2,$zero,0x10 -/* f110b34: 27a70050 */ addiu $a3,$sp,0x50 -/* f110b38: afa00010 */ sw $zero,0x10($sp) -/* f110b3c: 0fc45a0a */ jal func0f116828 -/* f110b40: afa00014 */ sw $zero,0x14($sp) -/* f110b44: 10400002 */ beqz $v0,.L0f110b50 -/* f110b48: 24180001 */ addiu $t8,$zero,0x1 -/* f110b4c: afb8012c */ sw $t8,0x12c($sp) -.L0f110b50: -/* f110b50: 8fbf002c */ lw $ra,0x2c($sp) -/* f110b54: 8fb00020 */ lw $s0,0x20($sp) -/* f110b58: 8fb10024 */ lw $s1,0x24($sp) -/* f110b5c: 8fb20028 */ lw $s2,0x28($sp) -/* f110b60: 03e00008 */ jr $ra -/* f110b64: 27bd0130 */ addiu $sp,$sp,0x130 -); -#endif +void mpsetupfileSave(void) +{ + volatile bool sp12c = false; + struct savebuffer buffer; + struct maybesavelocation_2d8 thing; + u32 stack; + s32 i; + s32 tmp; -void func0f110b68(void) + savebufferClear(&buffer); + + thing.unk00 = g_Vars.unk00047c; + thing.unk04 = g_Vars.unk000480; + + func0f0d575c(&buffer, &thing); + + savebufferOr(&buffer, g_MpSetupFile.unk89, 1); + savebufferOr(&buffer, g_Vars.unk000482, 4); + + for (i = 0; i < 8; i++) { + func0f0d55a4(&buffer, g_MpSetupFile.teamnames[i]); + } + + if (g_MpSetupFile.tracknum == -1) { + savebufferOr(&buffer, 0xff, 8); + } else { + savebufferOr(&buffer, g_MpSetupFile.tracknum, 8); + } + + for (i = 0; i < 6; i++) { + savebufferOr(&buffer, g_MpSetupFile.multipletracknums[i], 8); + } + + savebufferOr(&buffer, g_MpSetupFile.usingmultipletunes, 1); + savebufferOr(&buffer, (u8)g_SoloCompleted, 1); + savebufferOr(&buffer, g_AltTitle, 1); + + func0f0d54c4(&buffer); + + tmp = func0f110720(); + + if (tmp == 0) { + func0000bfd0("fileGuid", "bossfile.c", PAL ? 377 : 375); + } + + if (func0f116828(4, tmp, 0x10, buffer.bytes, NULL, 0)) { + sp12c = true; + } +} + +void mpsetupfileLoadDefaults(void) { g_MpSetupFile.teamnames[0][0] = '\0'; g_MpSetupFile.teamnames[1][0] = '\0'; @@ -511,7 +327,8 @@ void func0f110b68(void) g_Vars.unk000482 = (PAL ? 7 : 0); g_SoloCompleted = 0; g_AltTitle = false; - func0f1109c0(); + + mpsetupfileSave(); } void func0f110bf0(void) @@ -865,6 +682,22 @@ glabel func0f110da8 ); #endif +const char var7f1b39c8[] = ""; +const char var7f1b39cc[] = ""; +const char var7f1b39d0[] = "Rebuilding pakWad %d:\n"; + +const u32 var7f1b39e8[] = {0x00000080}; +const u32 var7f1b39ec[] = {0x00000040}; +const u32 var7f1b39f0[] = {0x00000020}; +const u32 var7f1b39f4[] = {0x00000008}; +const u32 var7f1b39f8[] = {0x04000102}; +const u32 var7f1b39fc[] = {0x03000000}; +const u32 var7f1b3a00[] = {0x01020304}; +const u32 var7f1b3a04[] = {0x00000000}; + +const char var7f1b3a08[] = "tc != NULL"; +const char var7f1b3a14[] = "gamefile.c"; + GLOBAL_ASM( glabel func0f110f4c /* f110f4c: 27bdc568 */ addiu $sp,$sp,-15000 diff --git a/src/game/gamefile.c b/src/game/gamefile.c index 08bc4972c..f5abfa057 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -891,25 +891,6 @@ const char var7f1b3928[] = "MAX_FUDGE_DATA_SIZE>=sizeof(PakFileTypeGameSetup_s)" const char var7f1b395c[] = "pdoptions.c"; const char var7f1b3968[] = "MAX_FUDGE_DATA_SIZE>=sizeof(PakFileTypeGameSetup_s)"; const char var7f1b399c[] = "pdoptions.c"; -const char var7f1b39a8[] = ""; -const char var7f1b39ac[] = ""; -const char var7f1b39b0[] = "fileGuid"; -const char var7f1b39bc[] = "bossfile.c"; -const char var7f1b39c8[] = ""; -const char var7f1b39cc[] = ""; -const char var7f1b39d0[] = "Rebuilding pakWad %d:\n"; - -const u32 var7f1b39e8[] = {0x00000080}; -const u32 var7f1b39ec[] = {0x00000040}; -const u32 var7f1b39f0[] = {0x00000020}; -const u32 var7f1b39f4[] = {0x00000008}; -const u32 var7f1b39f8[] = {0x04000102}; -const u32 var7f1b39fc[] = {0x03000000}; -const u32 var7f1b3a00[] = {0x01020304}; -const u32 var7f1b3a04[] = {0x00000000}; - -const char var7f1b3a08[] = "tc != NULL"; -const char var7f1b3a14[] = "gamefile.c"; s32 gamefileLoad(s32 arg0) { diff --git a/src/include/game/game_0d4690.h b/src/include/game/game_0d4690.h index 692915bf8..7e60a3354 100644 --- a/src/include/game/game_0d4690.h +++ b/src/include/game/game_0d4690.h @@ -21,7 +21,7 @@ void savebufferReadString(struct savebuffer *buffer, char *dst, bool addlinebrea void func0f0d55a4(struct savebuffer *buffer, char *src); void func0f0d564c(u8 *data, char *dst, bool addlinebreak); void func0f0d5690(u8 *dst, char *buffer); -void func0f0d575c(struct savebuffer *buffer, u32 *arg1); +void func0f0d575c(struct savebuffer *buffer, struct maybesavelocation_2d8 *arg1); void func0f0d579c(struct savebuffer *buffer, struct maybesavelocation_2d8 *arg1); void formatTime(char *dst, s32 time, u32 arg2); void func0f0d5a7c(void); diff --git a/src/include/game/game_110680.h b/src/include/game/game_110680.h index 451125f81..5f02a297c 100644 --- a/src/include/game/game_110680.h +++ b/src/include/game/game_110680.h @@ -7,8 +7,8 @@ bool func0f1106c8(void); u32 func0f110720(void); void mpsetupfileLoad(void); -void func0f1109c0(void); -void func0f110b68(void); +void mpsetupfileSave(void); +void mpsetupfileLoadDefaults(void); void func0f110bf0(void); void func0f110bf8(void); void func0f110c5c(s32 listnum, u8 filetype);