From bd88df8d9a46ccb7102dec40824314e4aabfdcc4 Mon Sep 17 00:00:00 2001 From: Ryan Dwyer Date: Sat, 18 Apr 2020 00:45:12 +1000 Subject: [PATCH] Decompile func0f117e58 --- src/game/camdraw.c | 22 +++++------ src/game/dlights.c | 44 ++++++++++----------- src/game/game_0d4690.c | 2 +- src/game/game_0e0770.c | 2 +- src/game/game_107fb0.c | 6 +-- src/game/gamefile.c | 12 +++--- src/game/pak/pak.c | 76 +++++++++++++++++++------------------ src/game/utils.c | 8 ++-- src/include/game/pak/pak.h | 8 ++-- src/include/game/utils.h | 6 +-- src/include/lib/lib_4cc10.h | 2 +- 11 files changed, 96 insertions(+), 92 deletions(-) diff --git a/src/game/camdraw.c b/src/game/camdraw.c index 004261343..0f0875b4a 100644 --- a/src/game/camdraw.c +++ b/src/game/camdraw.c @@ -435,7 +435,7 @@ glabel func0f149d58 /* f149d5c: afbf001c */ sw $ra,0x1c($sp) /* f149d60: afb00018 */ sw $s0,0x18($sp) /* f149d64: afa50024 */ sw $a1,0x24($sp) -/* f149d68: 0fc5db69 */ jal func0f176da4 +/* f149d68: 0fc5db69 */ jal align16 /* f149d6c: afa60028 */ sw $a2,0x28($sp) /* f149d70: 00408025 */ or $s0,$v0,$zero /* f149d74: 00402025 */ or $a0,$v0,$zero @@ -872,10 +872,10 @@ glabel func0f14a328 /* f14a33c: afb10018 */ sw $s1,0x18($sp) /* f14a340: 11c10019 */ beq $t6,$at,.L0f14a3a8 /* f14a344: afb00014 */ sw $s0,0x14($sp) -/* f14a348: 0fc5db69 */ jal func0f176da4 +/* f14a348: 0fc5db69 */ jal align16 /* f14a34c: 24040410 */ addiu $a0,$zero,0x410 /* f14a350: 00408025 */ or $s0,$v0,$zero -/* f14a354: 0fc5db69 */ jal func0f176da4 +/* f14a354: 0fc5db69 */ jal align16 /* f14a358: 24040490 */ addiu $a0,$zero,0x490 /* f14a35c: 00408825 */ or $s1,$v0,$zero /* f14a360: 02002025 */ or $a0,$s0,$zero @@ -1736,14 +1736,14 @@ glabel func0f14aed0 /* f14af30: 02002025 */ or $a0,$s0,$zero /* f14af34: 0fc53205 */ jal func0f14c814 /* f14af38: 02002025 */ or $a0,$s0,$zero -/* f14af3c: 0fc5db70 */ jal func0f176dc0 +/* f14af3c: 0fc5db70 */ jal align32 /* f14af40: 00402025 */ or $a0,$v0,$zero /* f14af44: 0040a025 */ or $s4,$v0,$zero -/* f14af48: 0fc5db69 */ jal func0f176da4 +/* f14af48: 0fc5db69 */ jal align16 /* f14af4c: 2404018c */ addiu $a0,$zero,0x18c /* f14af50: 00142140 */ sll $a0,$s4,0x5 /* f14af54: 00408025 */ or $s0,$v0,$zero -/* f14af58: 0fc5db69 */ jal func0f176da4 +/* f14af58: 0fc5db69 */ jal align16 /* f14af5c: 00942021 */ addu $a0,$a0,$s4 /* f14af60: 02022021 */ addu $a0,$s0,$v0 /* f14af64: 0c0048f2 */ jal malloc @@ -2045,7 +2045,7 @@ glabel func0f14b394 /* f14b3ac: afb00014 */ sw $s0,0x14($sp) /* f14b3b0: 0fc53205 */ jal func0f14c814 /* f14b3b4: 24840004 */ addiu $a0,$a0,0x4 -/* f14b3b8: 0fc5db70 */ jal func0f176dc0 +/* f14b3b8: 0fc5db70 */ jal align32 /* f14b3bc: 00402025 */ or $a0,$v0,$zero /* f14b3c0: 00408825 */ or $s1,$v0,$zero /* f14b3c4: 18400011 */ blez $v0,.L0f14b40c @@ -2072,7 +2072,7 @@ glabel func0f14b394 /* f14b40c: 241200ff */ addiu $s2,$zero,0xff /* f14b410: 0fc53205 */ jal func0f14c814 /* f14b414: 26640010 */ addiu $a0,$s3,0x10 -/* f14b418: 0fc5db70 */ jal func0f176dc0 +/* f14b418: 0fc5db70 */ jal align32 /* f14b41c: 00402025 */ or $a0,$v0,$zero /* f14b420: 1840000f */ blez $v0,.L0f14b460 /* f14b424: 00408825 */ or $s1,$v0,$zero @@ -3472,12 +3472,12 @@ glabel func0f14c75c /* f14c76c: 00808025 */ or $s0,$a0,$zero /* f14c770: 0fc53205 */ jal func0f14c814 /* f14c774: 00a08825 */ or $s1,$a1,$zero -/* f14c778: 0fc5db70 */ jal func0f176dc0 +/* f14c778: 0fc5db70 */ jal align32 /* f14c77c: 00402025 */ or $a0,$v0,$zero /* f14c780: 02202025 */ or $a0,$s1,$zero /* f14c784: 0fc53205 */ jal func0f14c814 /* f14c788: afa20020 */ sw $v0,0x20($sp) -/* f14c78c: 0fc5db70 */ jal func0f176dc0 +/* f14c78c: 0fc5db70 */ jal align32 /* f14c790: 00402025 */ or $a0,$v0,$zero /* f14c794: 8fa50020 */ lw $a1,0x20($sp) /* f14c798: 00001825 */ or $v1,$zero,$zero @@ -6634,7 +6634,7 @@ glabel func0f14f07c /* f14f360: afa7003c */ sw $a3,0x3c($sp) /* f14f364: afa80038 */ sw $t0,0x38($sp) /* f14f368: afa90034 */ sw $t1,0x34($sp) -/* f14f36c: 0fc5db69 */ jal func0f176da4 +/* f14f36c: 0fc5db69 */ jal align16 /* f14f370: afaa0030 */ sw $t2,0x30($sp) /* f14f374: afa2002c */ sw $v0,0x2c($sp) /* f14f378: 8e040000 */ lw $a0,0x0($s0) diff --git a/src/game/dlights.c b/src/game/dlights.c index 2e8c69403..2c34471f5 100644 --- a/src/game/dlights.c +++ b/src/game/dlights.c @@ -1507,18 +1507,18 @@ glabel func0f001c0c /* f001c9c: 8fbf003c */ lw $ra,0x3c($sp) /* f001ca0: 8c84a27c */ lw $a0,%lo(g_Vars+0x2bc)($a0) /* f001ca4: 00045880 */ sll $t3,$a0,0x2 -/* f001ca8: 0fc5db69 */ jal func0f176da4 +/* f001ca8: 0fc5db69 */ jal align16 /* f001cac: 01602025 */ or $a0,$t3,$zero /* f001cb0: 8e040000 */ lw $a0,0x0($s0) /* f001cb4: 00409825 */ or $s3,$v0,$zero /* f001cb8: 00046080 */ sll $t4,$a0,0x2 -/* f001cbc: 0fc5db69 */ jal func0f176da4 +/* f001cbc: 0fc5db69 */ jal align16 /* f001cc0: 01802025 */ or $a0,$t4,$zero /* f001cc4: 3c04800a */ lui $a0,%hi(g_Vars+0x2bc) /* f001cc8: 8c84a27c */ lw $a0,%lo(g_Vars+0x2bc)($a0) /* f001ccc: 0040a025 */ or $s4,$v0,$zero /* f001cd0: 00046880 */ sll $t5,$a0,0x2 -/* f001cd4: 0fc5db69 */ jal func0f176da4 +/* f001cd4: 0fc5db69 */ jal align16 /* f001cd8: 01a02025 */ or $a0,$t5,$zero /* f001cdc: 3c16800a */ lui $s6,%hi(var8009cae0) /* f001ce0: 26d6cae0 */ addiu $s6,$s6,%lo(var8009cae0) @@ -1526,13 +1526,13 @@ glabel func0f001c0c /* f001ce8: 0040f025 */ or $s8,$v0,$zero /* f001cec: 00630019 */ multu $v1,$v1 /* f001cf0: 00002012 */ mflo $a0 -/* f001cf4: 0fc5db69 */ jal func0f176da4 +/* f001cf4: 0fc5db69 */ jal align16 /* f001cf8: 00000000 */ sll $zero,$zero,0x0 /* f001cfc: 3c04800a */ lui $a0,%hi(g_Vars+0x2bc) /* f001d00: 8c84a27c */ lw $a0,%lo(g_Vars+0x2bc)($a0) /* f001d04: 00409025 */ or $s2,$v0,$zero /* f001d08: 000470c0 */ sll $t6,$a0,0x3 -/* f001d0c: 0fc5db69 */ jal func0f176da4 +/* f001d0c: 0fc5db69 */ jal align16 /* f001d10: 01c02025 */ or $a0,$t6,$zero /* f001d14: 0c0048b8 */ jal func000122e0 /* f001d18: afa20068 */ sw $v0,0x68($sp) @@ -1621,7 +1621,7 @@ glabel func0f001c0c /* f001e44: 0fc5de95 */ jal func0f177a54 /* f001e48: 00482021 */ addu $a0,$v0,$t0 /* f001e4c: ae220000 */ sw $v0,0x0($s1) -/* f001e50: 0fc5db62 */ jal func0f176d88 +/* f001e50: 0fc5db62 */ jal align4 /* f001e54: 00402025 */ or $a0,$v0,$zero /* f001e58: 3c05800a */ lui $a1,%hi(g_Vars+0x2bc) /* f001e5c: 8ca5a27c */ lw $a1,%lo(g_Vars+0x2bc)($a1) @@ -1632,14 +1632,14 @@ glabel func0f001c0c /* f001e70: 03c2f021 */ addu $s8,$s8,$v0 /* f001e74: 24130001 */ addiu $s3,$zero,0x1 .L0f001e78: -/* f001e78: 0fc5db69 */ jal func0f176da4 +/* f001e78: 0fc5db69 */ jal align16 /* f001e7c: 03c02025 */ or $a0,$s8,$zero /* f001e80: 00402025 */ or $a0,$v0,$zero /* f001e84: 0c0048f2 */ jal malloc /* f001e88: 24050004 */ addiu $a1,$zero,0x4 /* f001e8c: 03c02025 */ or $a0,$s8,$zero /* f001e90: 0040b825 */ or $s7,$v0,$zero -/* f001e94: 0fc5db69 */ jal func0f176da4 +/* f001e94: 0fc5db69 */ jal align16 /* f001e98: 0000f025 */ or $s8,$zero,$zero /* f001e9c: 3c05800a */ lui $a1,%hi(g_Vars+0x2bc) /* f001ea0: 8fa90068 */ lw $t1,0x68($sp) @@ -1655,7 +1655,7 @@ glabel func0f001c0c .L0f001ec8: /* f001ec8: 8e240000 */ lw $a0,0x0($s1) /* f001ecc: afa30054 */ sw $v1,0x54($sp) -/* f001ed0: 0fc5db62 */ jal func0f176d88 +/* f001ed0: 0fc5db62 */ jal align4 /* f001ed4: 00008025 */ or $s0,$zero,$zero /* f001ed8: 8e8b0000 */ lw $t3,0x0($s4) /* f001edc: 8fa30054 */ lw $v1,0x54($sp) @@ -1708,7 +1708,7 @@ glabel func0f001c0c /* f001f88: 0fc5de95 */ jal func0f177a54 /* f001f8c: 00000000 */ sll $zero,$zero,0x0 /* f001f90: ae220000 */ sw $v0,0x0($s1) -/* f001f94: 0fc5db62 */ jal func0f176d88 +/* f001f94: 0fc5db62 */ jal align4 /* f001f98: 00402025 */ or $a0,$v0,$zero /* f001f9c: 3c05800a */ lui $a1,%hi(g_Vars+0x2bc) /* f001fa0: 8ca5a27c */ lw $a1,%lo(g_Vars+0x2bc)($a1) @@ -1720,13 +1720,13 @@ glabel func0f001c0c /* f001fb8: 03c2f021 */ addu $s8,$s8,$v0 /* f001fbc: 24130001 */ addiu $s3,$zero,0x1 .L0f001fc0: -/* f001fc0: 0fc5db69 */ jal func0f176da4 +/* f001fc0: 0fc5db69 */ jal align16 /* f001fc4: 03c02025 */ or $a0,$s8,$zero /* f001fc8: 00402025 */ or $a0,$v0,$zero /* f001fcc: 0c0048f2 */ jal malloc /* f001fd0: 24050004 */ addiu $a1,$zero,0x4 /* f001fd4: 0040b825 */ or $s7,$v0,$zero -/* f001fd8: 0fc5db69 */ jal func0f176da4 +/* f001fd8: 0fc5db69 */ jal align16 /* f001fdc: 03c02025 */ or $a0,$s8,$zero /* f001fe0: 3c05800a */ lui $a1,%hi(g_Vars+0x2bc) /* f001fe4: 8ca5a27c */ lw $a1,%lo(g_Vars+0x2bc)($a1) @@ -1740,7 +1740,7 @@ glabel func0f001c0c /* f002000: 00008025 */ or $s0,$zero,$zero /* f002004: 01f2c021 */ addu $t8,$t7,$s2 /* f002008: af170004 */ sw $s7,0x4($t8) -/* f00200c: 0fc5db62 */ jal func0f176d88 +/* f00200c: 0fc5db62 */ jal align4 /* f002010: 8e240000 */ lw $a0,0x0($s1) /* f002014: 8e390000 */ lw $t9,0x0($s1) /* f002018: 3c05800a */ lui $a1,%hi(g_Vars+0x2bc) @@ -2498,7 +2498,7 @@ glabel func0f002a98 /* f002aac: afb2001c */ sw $s2,0x1c($sp) /* f002ab0: afb10018 */ sw $s1,0x18($sp) /* f002ab4: afb00014 */ sw $s0,0x14($sp) -/* f002ab8: 0fc5db62 */ jal func0f176d88 +/* f002ab8: 0fc5db62 */ jal align4 /* f002abc: 8e6402bc */ lw $a0,0x2bc($s3) /* f002ac0: 3c01800a */ lui $at,%hi(var8009cae0) /* f002ac4: ac22cae0 */ sw $v0,%lo(var8009cae0)($at) @@ -4932,30 +4932,30 @@ glabel func0f004c6c /* f004c80: afb2001c */ sw $s2,0x1c($sp) /* f004c84: afb10018 */ sw $s1,0x18($sp) /* f004c88: afb00014 */ sw $s0,0x14($sp) -/* f004c8c: 0fc5db69 */ jal func0f176da4 +/* f004c8c: 0fc5db69 */ jal align16 /* f004c90: 24042000 */ addiu $a0,$zero,0x2000 /* f004c94: 3c15800a */ lui $s5,%hi(var8009cadc) /* f004c98: 26b5cadc */ addiu $s5,$s5,%lo(var8009cadc) /* f004c9c: 8ea40000 */ lw $a0,0x0($s5) /* f004ca0: afa20044 */ sw $v0,0x44($sp) /* f004ca4: 00047080 */ sll $t6,$a0,0x2 -/* f004ca8: 0fc5db69 */ jal func0f176da4 +/* f004ca8: 0fc5db69 */ jal align16 /* f004cac: 01c02025 */ or $a0,$t6,$zero /* f004cb0: 8ea40000 */ lw $a0,0x0($s5) /* f004cb4: afa20040 */ sw $v0,0x40($sp) /* f004cb8: 00047880 */ sll $t7,$a0,0x2 /* f004cbc: 01e47823 */ subu $t7,$t7,$a0 -/* f004cc0: 0fc5db69 */ jal func0f176da4 +/* f004cc0: 0fc5db69 */ jal align16 /* f004cc4: 000f2080 */ sll $a0,$t7,0x2 /* f004cc8: 8ea40000 */ lw $a0,0x0($s5) /* f004ccc: 00409025 */ or $s2,$v0,$zero /* f004cd0: 0004c080 */ sll $t8,$a0,0x2 -/* f004cd4: 0fc5db69 */ jal func0f176da4 +/* f004cd4: 0fc5db69 */ jal align16 /* f004cd8: 03002025 */ or $a0,$t8,$zero /* f004cdc: 8ea40000 */ lw $a0,0x0($s5) /* f004ce0: afa20038 */ sw $v0,0x38($sp) /* f004ce4: 0004c840 */ sll $t9,$a0,0x1 -/* f004ce8: 0fc5db69 */ jal func0f176da4 +/* f004ce8: 0fc5db69 */ jal align16 /* f004cec: 03202025 */ or $a0,$t9,$zero /* f004cf0: 8ea50000 */ lw $a1,0x0($s5) /* f004cf4: 00403825 */ or $a3,$v0,$zero @@ -4974,10 +4974,10 @@ glabel func0f004c6c /* f004d20: 00008825 */ or $s1,$zero,$zero .L0f004d24: /* f004d24: 02802025 */ or $a0,$s4,$zero -/* f004d28: 0fc5db69 */ jal func0f176da4 +/* f004d28: 0fc5db69 */ jal align16 /* f004d2c: afa70034 */ sw $a3,0x34($sp) /* f004d30: 0040a025 */ or $s4,$v0,$zero -/* f004d34: 0fc5db69 */ jal func0f176da4 +/* f004d34: 0fc5db69 */ jal align16 /* f004d38: 00402025 */ or $a0,$v0,$zero /* f004d3c: 00402025 */ or $a0,$v0,$zero /* f004d40: 0c0048f2 */ jal malloc @@ -5023,7 +5023,7 @@ glabel func0f004c6c /* f004dd0: afa70034 */ sw $a3,0x34($sp) /* f004dd4: 00006012 */ mflo $t4 /* f004dd8: 028c2021 */ addu $a0,$s4,$t4 -/* f004ddc: 0fc5db69 */ jal func0f176da4 +/* f004ddc: 0fc5db69 */ jal align16 /* f004de0: 00000000 */ sll $zero,$zero,0x0 /* f004de4: 0c0048c9 */ jal func00012324 /* f004de8: 00000000 */ sll $zero,$zero,0x0 diff --git a/src/game/game_0d4690.c b/src/game/game_0d4690.c index e2ea6446a..d7c54ac81 100644 --- a/src/game/game_0d4690.c +++ b/src/game/game_0d4690.c @@ -212,7 +212,7 @@ glabel func0f0d479c /* f0d48f4: 8e090000 */ lw $t1,0x0($s0) /* f0d48f8: 55200023 */ bnezl $t1,.L0f0d4988 /* f0d48fc: 3c0f0380 */ lui $t7,0x380 -/* f0d4900: 0fc5db69 */ jal func0f176da4 +/* f0d4900: 0fc5db69 */ jal align16 /* f0d4904: 24040010 */ addiu $a0,$zero,0x10 /* f0d4908: 0fc59e7d */ jal func0f1679f4 /* f0d490c: 00402025 */ or $a0,$v0,$zero diff --git a/src/game/game_0e0770.c b/src/game/game_0e0770.c index 9a6885c1c..1f908b944 100644 --- a/src/game/game_0e0770.c +++ b/src/game/game_0e0770.c @@ -4918,7 +4918,7 @@ GLOBAL_ASM( glabel func0f0e4fe0 /* f0e4fe0: 27bdffe8 */ addiu $sp,$sp,-24 /* f0e4fe4: afbf0014 */ sw $ra,0x14($sp) -/* f0e4fe8: 0fc5db69 */ jal func0f176da4 +/* f0e4fe8: 0fc5db69 */ jal align16 /* f0e4fec: 24040d20 */ addiu $a0,$zero,0xd20 /* f0e4ff0: 8fbf0014 */ lw $ra,0x14($sp) /* f0e4ff4: 27bd0018 */ addiu $sp,$sp,0x18 diff --git a/src/game/game_107fb0.c b/src/game/game_107fb0.c index 2fe49069c..802ae5d54 100644 --- a/src/game/game_107fb0.c +++ b/src/game/game_107fb0.c @@ -830,7 +830,7 @@ glabel var7f1b3624 /* f108a24: 3c047f1b */ lui $a0,%hi(var7f1b2f3c-0x4) /* f108a28: 00095080 */ sll $t2,$t1,0x2 /* f108a2c: 008a2021 */ addu $a0,$a0,$t2 -/* f108a30: 0fc5db69 */ jal func0f176da4 +/* f108a30: 0fc5db69 */ jal align16 /* f108a34: 8c842f38 */ lw $a0,%lo(var7f1b2f3c-0x4)($a0) /* f108a38: 3c0b8007 */ lui $t3,%hi(g_MpPlayerNum) /* f108a3c: 8d6b1448 */ lw $t3,%lo(g_MpPlayerNum)($t3) @@ -932,7 +932,7 @@ glabel var7f1b3664 /* f108b1c: 3c047f1b */ lui $a0,%hi(var7f1b2f3c-0x4) /* f108b20: 00095080 */ sll $t2,$t1,0x2 /* f108b24: 008a2021 */ addu $a0,$a0,$t2 -/* f108b28: 0fc5db69 */ jal func0f176da4 +/* f108b28: 0fc5db69 */ jal align16 /* f108b2c: 8c842f38 */ lw $a0,%lo(var7f1b2f3c-0x4)($a0) /* f108b30: 3c0b8007 */ lui $t3,%hi(g_MpPlayerNum) /* f108b34: 8d6b1448 */ lw $t3,%lo(g_MpPlayerNum)($t3) @@ -1859,7 +1859,7 @@ glabel func0f1097d0 /* f10988c: 8d8cee1c */ lw $t4,%lo(g_MenuStack+0xe1c)($t4) /* f109890: 000c5880 */ sll $t3,$t4,0x2 /* f109894: 008b2021 */ addu $a0,$a0,$t3 -/* f109898: 0fc5db69 */ jal func0f176da4 +/* f109898: 0fc5db69 */ jal align16 /* f10989c: 8c842f38 */ lw $a0,%lo(var7f1b2f3c-0x4)($a0) /* f1098a0: 0c004aac */ jal func00012ab0 /* f1098a4: 00402025 */ or $a0,$v0,$zero diff --git a/src/game/gamefile.c b/src/game/gamefile.c index d75f80fae..89d15bc0a 100644 --- a/src/game/gamefile.c +++ b/src/game/gamefile.c @@ -1435,7 +1435,7 @@ glabel func0f110bf8 .L0f110c1c: /* f110c1c: 51c00008 */ beqzl $t6,.L0f110c40 /* f110c20: 26100004 */ addiu $s0,$s0,0x4 -/* f110c24: 0fc5db69 */ jal func0f176da4 +/* f110c24: 0fc5db69 */ jal align16 /* f110c28: 24040310 */ addiu $a0,$zero,0x310 /* f110c2c: 8e040000 */ lw $a0,0x0($s0) /* f110c30: 0c004b2d */ jal func00012cb4 @@ -1464,12 +1464,12 @@ glabel func0f110c5c /* f110c78: 1460000e */ bnez $v1,.L0f110cb4 /* f110c7c: afa50024 */ sw $a1,0x24($sp) /* f110c80: 24040310 */ addiu $a0,$zero,0x310 -/* f110c84: 0fc5db69 */ jal func0f176da4 +/* f110c84: 0fc5db69 */ jal align16 /* f110c88: afa60018 */ sw $a2,0x18($sp) /* f110c8c: 00402025 */ or $a0,$v0,$zero /* f110c90: 0fc5796e */ jal func0f15e5b8 /* f110c94: 24050001 */ addiu $a1,$zero,0x1 -/* f110c98: 0fc5db69 */ jal func0f176da4 +/* f110c98: 0fc5db69 */ jal align16 /* f110c9c: 24040310 */ addiu $a0,$zero,0x310 /* f110ca0: 0c004aac */ jal func00012ab0 /* f110ca4: 00402025 */ or $a0,$v0,$zero @@ -1904,12 +1904,12 @@ glabel func0f110f4c /* f1112a8: 92190e40 */ lbu $t9,0xe40($s0) /* f1112ac: 24040890 */ addiu $a0,$zero,0x890 /* f1112b0: 37280040 */ ori $t0,$t9,0x40 -/* f1112b4: 0fc5db69 */ jal func0f176da4 +/* f1112b4: 0fc5db69 */ jal align16 /* f1112b8: a2080e40 */ sb $t0,0xe40($s0) /* f1112bc: 00402025 */ or $a0,$v0,$zero /* f1112c0: 0fc5796e */ jal func0f15e5b8 /* f1112c4: 24050001 */ addiu $a1,$zero,0x1 -/* f1112c8: 0fc5db69 */ jal func0f176da4 +/* f1112c8: 0fc5db69 */ jal align16 /* f1112cc: 24040890 */ addiu $a0,$zero,0x890 /* f1112d0: 0c004aac */ jal func00012ab0 /* f1112d4: 00402025 */ or $a0,$v0,$zero @@ -2004,7 +2004,7 @@ glabel func0f110f4c /* f111424: 00194840 */ sll $t1,$t9,0x1 /* f111428: 05230009 */ bgezl $t1,.L0f111450 /* f11142c: ac600e68 */ sw $zero,0xe68($v1) -/* f111430: 0fc5db69 */ jal func0f176da4 +/* f111430: 0fc5db69 */ jal align16 /* f111434: afa30018 */ sw $v1,0x18($sp) /* f111438: 8fa30018 */ lw $v1,0x18($sp) /* f11143c: 00402825 */ or $a1,$v0,$zero diff --git a/src/game/pak/pak.c b/src/game/pak/pak.c index 3e7a4da45..01471d8e3 100644 --- a/src/game/pak/pak.c +++ b/src/game/pak/pak.c @@ -330,12 +330,12 @@ glabel func0f1165f8 /* f116614: 24010020 */ addiu $at,$zero,0x20 /* f116618: 14410005 */ bne $v0,$at,.L0f116630 /* f11661c: 8fa4001c */ lw $a0,0x1c($sp) -/* f116620: 0fc5db70 */ jal func0f176dc0 +/* f116620: 0fc5db70 */ jal align32 /* f116624: 00000000 */ sll $zero,$zero,0x0 /* f116628: 10000004 */ beqz $zero,.L0f11663c /* f11662c: 00401825 */ or $v1,$v0,$zero .L0f116630: -/* f116630: 0fc5db69 */ jal func0f176da4 +/* f116630: 0fc5db69 */ jal align16 /* f116634: 00000000 */ sll $zero,$zero,0x0 /* f116638: 00401825 */ or $v1,$v0,$zero .L0f11663c: @@ -2101,38 +2101,42 @@ u32 func0f117e00(u32 arg0, u16 arg1, u32 arg2, u32 arg3, u32 arg4) return 0; } -GLOBAL_ASM( -glabel func0f117e58 -/* f117e58: 27bdffe0 */ addiu $sp,$sp,-32 -/* f117e5c: afa50024 */ sw $a1,0x24($sp) -/* f117e60: 30aeffff */ andi $t6,$a1,0xffff -/* f117e64: 01c02825 */ or $a1,$t6,$zero -/* f117e68: 10800008 */ beqz $a0,.L0f117e8c -/* f117e6c: afbf001c */ sw $ra,0x1c($sp) -/* f117e70: 8faf0030 */ lw $t7,0x30($sp) -/* f117e74: 8fb80034 */ lw $t8,0x34($sp) -/* f117e78: afaf0010 */ sw $t7,0x10($sp) -/* f117e7c: 0c013304 */ jal func0004cc10 -/* f117e80: afb80014 */ sw $t8,0x14($sp) -/* f117e84: 1000000b */ beqz $zero,.L0f117eb4 -/* f117e88: 8fbf001c */ lw $ra,0x1c($sp) -.L0f117e8c: -/* f117e8c: 3c198007 */ lui $t9,%hi(var80075cd0) -/* f117e90: 8f395cd0 */ lw $t9,%lo(var80075cd0)($t9) -/* f117e94: 8fa80034 */ lw $t0,0x34($sp) -/* f117e98: 24020080 */ addiu $v0,$zero,0x80 -/* f117e9c: 13200004 */ beqz $t9,.L0f117eb0 -/* f117ea0: 00000000 */ sll $zero,$zero,0x0 -/* f117ea4: ad000000 */ sw $zero,0x0($t0) -/* f117ea8: 10000001 */ beqz $zero,.L0f117eb0 -/* f117eac: 00001025 */ or $v0,$zero,$zero -.L0f117eb0: -/* f117eb0: 8fbf001c */ lw $ra,0x1c($sp) -.L0f117eb4: -/* f117eb4: 27bd0020 */ addiu $sp,$sp,0x20 -/* f117eb8: 03e00008 */ jr $ra -/* f117ebc: 00000000 */ sll $zero,$zero,0x0 -); +u32 func0f117e58(u32 arg0, u16 arg1, u32 arg2, u32 arg3, u32 arg4, u32 *arg5) +{ + if (arg0) { + return func0004cc10(arg0, arg1, arg2, arg3, arg4, arg5); + } + + if (var80075cd0) { +#if VERSION >= VERSION_NTSC_FINAL + *arg5 = 0; + return 0; +#else + u8 sp64[8]; + u32 a; + u16 sp56[2]; + u32 b; + u16 sp44[4]; + + *arg5 = 0; + a = func0f11a504(4, 0, 0, 0, 0, align16(0x10), sp56); + + if (func0f11c39c(a, 4, 1, 0x60f)) { + func0f118ae4(sp64, sp64 + sizeof(sp64), sp44); + + if (sp56[0] == sp44[0] && sp56[1] == sp44[1]) { + return 0; + } + + return 0x84; + } + + return 0x84; +#endif + } + + return 0x80; +} GLOBAL_ASM( glabel func0f117ec0 @@ -4774,14 +4778,14 @@ glabel func0f11a32c /* f11a39c: 5580000c */ bnezl $t4,.L0f11a3d0 /* f11a3a0: 8fbf0014 */ lw $ra,0x14($sp) /* f11a3a4: a06002be */ sb $zero,0x2be($v1) -/* f11a3a8: 0fc5db70 */ jal func0f176dc0 +/* f11a3a8: 0fc5db70 */ jal align32 /* f11a3ac: afa30018 */ sw $v1,0x18($sp) /* f11a3b0: 00402025 */ or $a0,$v0,$zero /* f11a3b4: 0c0048f2 */ jal malloc /* f11a3b8: 24050006 */ addiu $a1,$zero,0x6 /* f11a3bc: 8fa30018 */ lw $v1,0x18($sp) /* f11a3c0: 24040708 */ addiu $a0,$zero,0x708 -/* f11a3c4: 0fc5db70 */ jal func0f176dc0 +/* f11a3c4: 0fc5db70 */ jal align32 /* f11a3c8: ac6202c0 */ sw $v0,0x2c0($v1) .L0f11a3cc: /* f11a3cc: 8fbf0014 */ lw $ra,0x14($sp) diff --git a/src/game/utils.c b/src/game/utils.c index 045287dc7..fde3d48ab 100644 --- a/src/game/utils.c +++ b/src/game/utils.c @@ -42,7 +42,7 @@ s32 func0f176d7c(void) return var800845d8; } -u32 func0f176d88(u32 arg0) +u32 align4(u32 arg0) { if (arg0 & 3) { arg0 = (arg0 & 0xfffffffc) + 4; @@ -51,7 +51,7 @@ u32 func0f176d88(u32 arg0) return arg0; } -u32 func0f176da4(u32 arg0) +u32 align16(u32 arg0) { if (arg0 & 0xf) { arg0 = (arg0 & 0xfffffff0) + 0x10; @@ -60,7 +60,7 @@ u32 func0f176da4(u32 arg0) return arg0; } -u32 func0f176dc0(u32 arg0) +u32 align32(u32 arg0) { if (arg0 & 0x1f) { arg0 = (arg0 & 0xffffffe0) + 0x20; @@ -78,7 +78,7 @@ glabel func0f176ddc /* f176dec: 24050008 */ addiu $a1,$zero,0x8 /* f176df0: 3c01800b */ lui $at,%hi(var800ac0d0) /* f176df4: ac22c0d0 */ sw $v0,%lo(var800ac0d0)($at) -/* f176df8: 0fc5db69 */ jal func0f176da4 +/* f176df8: 0fc5db69 */ jal align16 /* f176dfc: 24043900 */ addiu $a0,$zero,0x3900 /* f176e00: afa20018 */ sw $v0,0x18($sp) /* f176e04: 00402025 */ or $a0,$v0,$zero diff --git a/src/include/game/pak/pak.h b/src/include/game/pak/pak.h index 7c5ac3036..12eae0b43 100644 --- a/src/include/game/pak/pak.h +++ b/src/include/game/pak/pak.h @@ -47,7 +47,7 @@ u32 func0f117c80(void); u32 func0f117ce4(void); u32 func0f117d90(u32 arg0, u16 arg1, u32 arg2, u32 arg3, u32 arg4, u32 arg5, u32 *arg6); u32 func0f117e00(u32 arg0, u16 arg1, u32 arg2, u32 arg3, u32 arg4); -u32 func0f117e58(void); +u32 func0f117e58(u32 arg0, u16 arg1, u32 arg2, u32 arg3, u32 arg4, u32 *arg5); u32 func0f117ec0(void); u32 func0f117f80(void); u32 func0f117fc0(void); @@ -59,7 +59,7 @@ u32 func0f118334(void); u32 func0f1185e0(void); u32 func0f118674(void); u32 func0f1189d8(void); -u32 func0f118ae4(void); +void func0f118ae4(u8 *arg0, u8 *arg1, u16 *arg2); u32 func0f118bc8(void); u32 func0f118d18(void); u32 func0f1190bc(void); @@ -76,7 +76,7 @@ u32 func0f11a1d0(void); void func0f11a2e4(void); u32 func0f11a32c(void); u32 func0f11a434(void); -u32 func0f11a504(void); +u32 func0f11a504(u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4, u32 arg5, u16 *arg6); u32 func0f11a574(void); u32 func0f11a7dc(void); u32 func0f11a8f4(void); @@ -90,7 +90,7 @@ u32 func0f11b86c(void); u32 func0f11bbd8(void); u32 func0f11bc54(void); bool pakRepair(s32 arg0); -u32 func0f11c39c(void); +u32 func0f11c39c(u32 arg0, u32 arg1, u32 ar2, u32 arg3); void func0f11c54c(void); u32 func0f11c6d0(void); void func0f11c7a0(void); diff --git a/src/include/game/utils.h b/src/include/game/utils.h index 1160cbc32..cfac30472 100644 --- a/src/include/game/utils.h +++ b/src/include/game/utils.h @@ -4,9 +4,9 @@ #include "types.h" void func0f176d70(s32 arg0); -u32 func0f176d88(u32 arg0); -u32 func0f176da4(u32 arg0); -u32 func0f176dc0(u32 arg0); +u32 align4(u32 arg0); +u32 align16(u32 arg0); +u32 align32(u32 arg0); u32 func0f176ddc(void); u32 func0f1770ac(void); u32 func0f177164(void); diff --git a/src/include/lib/lib_4cc10.h b/src/include/lib/lib_4cc10.h index a64ca53db..8b94d2896 100644 --- a/src/include/lib/lib_4cc10.h +++ b/src/include/lib/lib_4cc10.h @@ -3,6 +3,6 @@ #include #include "types.h" -u32 func0004cc10(void); +u32 func0004cc10(u32 arg0, u32 arg1, u32 arg2, u32 arg3, u32 arg4, u32 *arg5); #endif