diff --git a/src/game/game_1668e0.c b/src/game/game_1668e0.c index 2eaf01011..c8860c36f 100644 --- a/src/game/game_1668e0.c +++ b/src/game/game_1668e0.c @@ -7194,94 +7194,50 @@ glabel func0f16cb04 /* f16cb9c: 00000000 */ sll $zero,$zero,0x0 ); -GLOBAL_ASM( -glabel func0f16cba0 -/* f16cba0: 27bdffe8 */ addiu $sp,$sp,-24 -/* f16cba4: afbf0014 */ sw $ra,0x14($sp) -/* f16cba8: 0fc4772c */ jal func0f11dcb0 -/* f16cbac: 24040001 */ addiu $a0,$zero,0x1 -/* f16cbb0: 3c048008 */ lui $a0,0x8008 -/* f16cbb4: 8c844034 */ lw $a0,0x4034($a0) -/* f16cbb8: 10800007 */ beqz $a0,.L0f16cbd8 -/* f16cbbc: 00000000 */ sll $zero,$zero,0x0 -/* f16cbc0: 0c00cdfc */ jal func000337f0 -/* f16cbc4: 00000000 */ sll $zero,$zero,0x0 -/* f16cbc8: 10400003 */ beqz $v0,.L0f16cbd8 -/* f16cbcc: 3c048008 */ lui $a0,0x8008 -/* f16cbd0: 0c00cec9 */ jal func00033b24 -/* f16cbd4: 8c844034 */ lw $a0,0x4034($a0) -.L0f16cbd8: -/* f16cbd8: 3c04800a */ lui $a0,0x800a -/* f16cbdc: 8c84a474 */ lw $a0,-0x5b8c($a0) -/* f16cbe0: 2881005a */ slti $at,$a0,0x5a -/* f16cbe4: 10200007 */ beqz $at,.L0f16cc04 -/* f16cbe8: 00000000 */ sll $zero,$zero,0x0 -/* f16cbec: 0fc5b878 */ jal func0f16e1e0 -/* f16cbf0: 00000000 */ sll $zero,$zero,0x0 -/* f16cbf4: 0fc5b9ec */ jal func0f16e7b0 -/* f16cbf8: 00402025 */ or $a0,$v0,$zero -/* f16cbfc: 0fc0549c */ jal func0f015270 -/* f16cc00: 00000000 */ sll $zero,$zero,0x0 -.L0f16cc04: -/* f16cc04: 0fc053c4 */ jal func0f014f10 -/* f16cc08: 00000000 */ sll $zero,$zero,0x0 -/* f16cc0c: 0fc054a0 */ jal func0f015280 -/* f16cc10: 00000000 */ sll $zero,$zero,0x0 -/* f16cc14: 0fc054cc */ jal func0f015330 -/* f16cc18: 00000000 */ sll $zero,$zero,0x0 -/* f16cc1c: 0fc05500 */ jal func0f015400 -/* f16cc20: 00000000 */ sll $zero,$zero,0x0 -/* f16cc24: 0fc05504 */ jal func0f015410 -/* f16cc28: 00000000 */ sll $zero,$zero,0x0 -/* f16cc2c: 0fc05508 */ jal func0f015420 -/* f16cc30: 00000000 */ sll $zero,$zero,0x0 -/* f16cc34: 0fc054fc */ jal func0f0153f0 -/* f16cc38: 00000000 */ sll $zero,$zero,0x0 -/* f16cc3c: 0fc053f8 */ jal func0f014fe0 -/* f16cc40: 00000000 */ sll $zero,$zero,0x0 -/* f16cc44: 0fc05404 */ jal setupParseObjects -/* f16cc48: 00000000 */ sll $zero,$zero,0x0 -/* f16cc4c: 0fc4d6f6 */ jal func0f135bd8 -/* f16cc50: 00000000 */ sll $zero,$zero,0x0 -/* f16cc54: 0fc0547c */ jal func0f0151f0 -/* f16cc58: 00000000 */ sll $zero,$zero,0x0 -/* f16cc5c: 0fc05498 */ jal func0f015260 -/* f16cc60: 00000000 */ sll $zero,$zero,0x0 -/* f16cc64: 0fc0551c */ jal func0f015470 -/* f16cc68: 00000000 */ sll $zero,$zero,0x0 -/* f16cc6c: 0fc05428 */ jal func0f0150a0 -/* f16cc70: 00000000 */ sll $zero,$zero,0x0 -/* f16cc74: 0fc5b67f */ jal func0f16d9fc -/* f16cc78: 00000000 */ sll $zero,$zero,0x0 -/* f16cc7c: 0fc381c9 */ jal func0f0e0724 -/* f16cc80: 00000000 */ sll $zero,$zero,0x0 -/* f16cc84: 3c0e800a */ lui $t6,0x800a -/* f16cc88: 8dcea474 */ lw $t6,-0x5b8c($t6) -/* f16cc8c: 29c1005a */ slti $at,$t6,0x5a -/* f16cc90: 10200003 */ beqz $at,.L0f16cca0 -/* f16cc94: 00000000 */ sll $zero,$zero,0x0 -/* f16cc98: 0fc57214 */ jal func0f15c850 -/* f16cc9c: 00000000 */ sll $zero,$zero,0x0 -.L0f16cca0: -/* f16cca0: 0c00cf76 */ jal func00033dd8 -/* f16cca4: 00000000 */ sll $zero,$zero,0x0 -/* f16cca8: 3c0f8006 */ lui $t7,0x8006 -/* f16ccac: 91ef2940 */ lbu $t7,0x2940($t7) -/* f16ccb0: 24010002 */ addiu $at,$zero,0x2 -/* f16ccb4: 15e10005 */ bne $t7,$at,.L0f16cccc -/* f16ccb8: 00000000 */ sll $zero,$zero,0x0 -/* f16ccbc: 0fc3c27c */ jal func0f0f09f0 -/* f16ccc0: 24040005 */ addiu $a0,$zero,0x5 -/* f16ccc4: 3c018006 */ lui $at,0x8006 -/* f16ccc8: a0202940 */ sb $zero,0x2940($at) -.L0f16cccc: -/* f16cccc: 0fc06fa8 */ jal func0f01bea0 -/* f16ccd0: 00000000 */ sll $zero,$zero,0x0 -/* f16ccd4: 8fbf0014 */ lw $ra,0x14($sp) -/* f16ccd8: 27bd0018 */ addiu $sp,$sp,0x18 -/* f16ccdc: 03e00008 */ jr $ra -/* f16cce0: 00000000 */ sll $zero,$zero,0x0 -); +void stageLoad(void) +{ + func0f11dcb0(1); + + if (var80084034 != 0 && func000337f0(var80084034)) { + func00033b24(var80084034); + } + + if (g_Vars.unk0004b4 < 0x5a) { + s32 bank = func0f16e1e0(g_Vars.unk0004b4); + func0f16e7b0(bank); + func0f015270(); + } + + func0f014f10(); + func0f015280(); + func0f015330(); + func0f015400(); + func0f015410(); + func0f015420(); + func0f0153f0(); + func0f014fe0(); + setupParseObjects(); + func0f135bd8(); + func0f0151f0(); + func0f015260(); + func0f015470(); + func0f0150a0(); + func0f16d9fc(); + func0f0e0724(); + + if (g_Vars.unk0004b4 < 0x5a) { + func0f15c850(); + } + + func00033dd8(); + + if (var80062940 == 2) { + func0f0f09f0(5); + var80062940 = 0; + } + + func0f01bea0(); +} GLOBAL_ASM( glabel func0f16cce4 diff --git a/src/include/game/game_0f09f0.h b/src/include/game/game_0f09f0.h index 0b053d9c1..807dd7c50 100644 --- a/src/include/game/game_0f09f0.h +++ b/src/include/game/game_0f09f0.h @@ -3,7 +3,7 @@ #include #include "types.h" -u32 func0f0f09f0(void); +void func0f0f09f0(s32 arg0); u32 func0f0f0b90(void); u32 func0f0f0bec(void); u32 func0f0f0c68(void); diff --git a/src/include/game/game_115ab0.h b/src/include/game/game_115ab0.h index 5d5c2312a..9e30e689a 100644 --- a/src/include/game/game_115ab0.h +++ b/src/include/game/game_115ab0.h @@ -126,7 +126,7 @@ u32 func0f11d620(void); u32 func0f11d8b4(void); u32 func0f11d9c4(void); u32 func0f11dc04(void); -u32 func0f11dcb0(void); +void func0f11dcb0(s32 arg0); u32 func0f11dd58(void); u32 func0f11de20(void); u32 func0f11deb8(void); diff --git a/src/include/game/game_1668e0.h b/src/include/game/game_1668e0.h index c47a20bbd..89b22ddf1 100644 --- a/src/include/game/game_1668e0.h +++ b/src/include/game/game_1668e0.h @@ -58,7 +58,7 @@ u32 func0f16b810(void); u32 func0f16b854(void); u32 func0f16b96c(void); u32 func0f16cb04(void); -u32 func0f16cba0(void); +void stageLoad(void); u32 func0f16cce4(void); u32 func0f16cd40(void); u32 func0f16cd90(void); diff --git a/src/include/game/game_16cfa0.h b/src/include/game/game_16cfa0.h index 0778c8174..74d2b95bd 100644 --- a/src/include/game/game_16cfa0.h +++ b/src/include/game/game_16cfa0.h @@ -40,13 +40,13 @@ u32 func0f16e02c(void); void func0f16e058(u32 arg0, u32 arg1, u32 arg2); u32 func0f16e0b4(u32 arg0); u32 func0f16e138(void); -u32 func0f16e1e0(void); +u32 func0f16e1e0(s32 arg0); u32 func0f16e3fc(void); u32 func0f16e6d4(void); u32 func0f16e6f4(void); u32 func0f16e728(void); u32 func0f16e764(void); -u32 func0f16e7b0(void); +void func0f16e7b0(s32 arg0); u32 func0f16e818(void); u32 func0f16edac(void); u32 func0f16ee58(void); diff --git a/src/include/gvars/gvars.h b/src/include/gvars/gvars.h index 06739c806..608531885 100644 --- a/src/include/gvars/gvars.h +++ b/src/include/gvars/gvars.h @@ -185,7 +185,7 @@ struct g_vars { /*0004a8*/ u32 unk0004a8; /*0004ac*/ u32 unk0004ac; /*0004b0*/ u32 unk0004b0; - /*0004b4*/ u32 unk0004b4; + /*0004b4*/ s32 unk0004b4; /*0004b8*/ u32 unk0004b8; /*0004bc*/ u32 unk0004bc; /*0004c0*/ u32 unk0004c0; diff --git a/src/include/library/library.h b/src/include/library/library.h index 28efdbb5b..0c8b64c80 100644 --- a/src/include/library/library.h +++ b/src/include/library/library.h @@ -344,8 +344,8 @@ u32 func0002f02c(void); u32 func0002f450(void); u32 func0002f490(void); u32 func0002f560(void); -u32 func000337f0(void); -u32 func00033b24(void); +u32 func000337f0(s32 arg0); +void func00033b24(s32 arg0); u32 func00033dd8(void); u32 func00033e50(void); u32 func00048120(void); diff --git a/src/include/setup/setup_000000.h b/src/include/setup/setup_000000.h index c46230cfa..41307c391 100644 --- a/src/include/setup/setup_000000.h +++ b/src/include/setup/setup_000000.h @@ -277,7 +277,7 @@ extern u32 var800628bc; extern u32 var800628c8; extern u32 var800628d4; extern u32 var80062914; -extern u32 var80062940; +extern u8 var80062940; extern u32 var80062944; extern u32 var80062948; extern u32 var80062950; diff --git a/src/include/setup/setup_020df0.h b/src/include/setup/setup_020df0.h index 912c6c156..7bb46aff7 100644 --- a/src/include/setup/setup_020df0.h +++ b/src/include/setup/setup_020df0.h @@ -205,7 +205,7 @@ extern struct smallsky smallskies[]; extern u32 var80082050; extern u32 filetable[]; extern u32 var80084008; -extern u32 var80084034; +extern s32 var80084034; extern u32 var80084038; extern u32 var80084068; extern u32 var80084078; diff --git a/src/library/library.c b/src/library/library.c index 9116217ff..0bd57cb37 100644 --- a/src/library/library.c +++ b/src/library/library.c @@ -19251,7 +19251,7 @@ glabel func0000db3c /* e29c: 5580ffd6 */ bnezl $t4,.L0000e1f8 /* e2a0: 02602025 */ or $a0,$s3,$zero .L0000e2a4: -/* e2a4: 0fc5b2e8 */ jal func0f16cba0 +/* e2a4: 0fc5b2e8 */ jal stageLoad /* e2a8: 00000000 */ sll $zero,$zero,0x0 /* e2ac: 0c004965 */ jal func00012594 /* e2b0: 24040004 */ addiu $a0,$zero,0x4 diff --git a/src/setup/setup_000000.c b/src/setup/setup_000000.c index 4b5f960a8..668b3ce5c 100644 --- a/src/setup/setup_000000.c +++ b/src/setup/setup_000000.c @@ -8277,7 +8277,7 @@ u32 var80062930 = 0x00000001; u32 var80062934 = 0x00000001; u32 var80062938 = 0x00000000; u32 var8006293c = 0x00000000; -u32 var80062940 = 0x00000000; +u8 var80062940 = 0; u32 var80062944 = 0x00000000; u32 var80062948 = 0x00000000; u32 var8006294c = 0x00000000; diff --git a/src/setup/setup_020df0.c b/src/setup/setup_020df0.c index 8c7079bba..e80ac310c 100644 --- a/src/setup/setup_020df0.c +++ b/src/setup/setup_020df0.c @@ -6058,7 +6058,7 @@ u32 var80084024 = 0x00000000; u32 var80084028 = 0x00008ca0; u32 var8008402c = 0x0000000a; u32 var80084030 = 0x00000014; -u32 var80084034 = 0x00000000; +s32 var80084034 = 0; u32 var80084038 = 0x00000000; u32 var8008403c = 0x00000000; u32 var80084040 = 0x00000001;