diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A3058.s b/asm/non_matchings/ovl1/ovl1_1/func_800A3058.s index 9a9ca48e..9d0c263a 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A3058.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A3058.s @@ -8,7 +8,7 @@ glabel func_800A3058 /* 04B2C0 800A3070 24010002 */ li $at, 2 /* 04B2C4 800A3074 10410005 */ beq $v0, $at, .L800A308C_ovl1 /* 04B2C8 800A3078 00000000 */ nop -/* 04B2CC 800A307C 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B2CC 800A307C 0C029AC8 */ jal load_overlay /* 04B2D0 800A3080 24040002 */ li $a0, 2 /* 04B2D4 800A3084 0C05473B */ jal func_80151CEC_ovl1 /* 04B2D8 800A3088 24040005 */ li $a0, 5 @@ -29,7 +29,7 @@ glabel func_800A3058 /* 04B30C 800A30BC 8FBF0014 */ lw $ra, 0x14($sp) /* 04B310 800A30C0 5444FFFC */ bnel $v0, $a0, .L800A30B4_ovl1 /* 04B314 800A30C4 804E0000 */ lb $t6, ($v0) -/* 04B318 800A30C8 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B318 800A30C8 0C029AC8 */ jal load_overlay /* 04B31C 800A30CC 24040002 */ li $a0, 2 /* 04B320 800A30D0 0C05473B */ jal func_80151CEC_ovl1 /* 04B324 800A30D4 24040004 */ li $a0, 4 diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A30E8.s b/asm/non_matchings/ovl1/ovl1_1/func_800A30E8.s index 75d0176d..04504a52 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A30E8.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A30E8.s @@ -1,15 +1,15 @@ glabel func_800A30E8 /* 04B338 800A30E8 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 04B33C 800A30EC AFBF0014 */ sw $ra, 0x14($sp) -/* 04B340 800A30F0 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B340 800A30F0 0C029AC8 */ jal load_overlay /* 04B344 800A30F4 24040013 */ li $a0, 19 -/* 04B348 800A30F8 0C0C0000 */ jal func_80300000_ovl20 +/* 04B348 800A30F8 0C0C0000 */ jal tamper_check_ovl20 /* 04B34C 800A30FC 00000000 */ nop -/* 04B350 800A3100 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B350 800A3100 0C029AC8 */ jal load_overlay /* 04B354 800A3104 24040005 */ li $a0, 5 -/* 04B358 800A3108 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B358 800A3108 0C029AC8 */ jal load_overlay /* 04B35C 800A310C 24040006 */ li $a0, 6 -/* 04B360 800A3110 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B360 800A3110 0C029AC8 */ jal load_overlay /* 04B364 800A3114 24040011 */ li $a0, 17 /* 04B368 800A3118 8FBF0014 */ lw $ra, 0x14($sp) /* 04B36C 800A311C 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A3128.s b/asm/non_matchings/ovl1/ovl1_1/func_800A3128.s index 4d2ee7fe..0907388f 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A3128.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A3128.s @@ -1,9 +1,9 @@ glabel func_800A3128 /* 04B378 800A3128 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 04B37C 800A312C AFBF0014 */ sw $ra, 0x14($sp) -/* 04B380 800A3130 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B380 800A3130 0C029AC8 */ jal load_overlay /* 04B384 800A3134 24040002 */ li $a0, 2 -/* 04B388 800A3138 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B388 800A3138 0C029AC8 */ jal load_overlay /* 04B38C 800A313C 24040003 */ li $a0, 3 /* 04B390 800A3140 8FBF0014 */ lw $ra, 0x14($sp) /* 04B394 800A3144 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A3150.s b/asm/non_matchings/ovl1/ovl1_1/func_800A3150.s index 54ebc355..93a5f568 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A3150.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A3150.s @@ -22,7 +22,7 @@ glabel func_800A3150 /* 04B3F0 800A31A0 00000000 */ nop /* 04B3F4 800A31A4 0C028B5A */ jal func_800A2D68_ovl1 /* 04B3F8 800A31A8 00000000 */ nop -/* 04B3FC 800A31AC 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B3FC 800A31AC 0C029AC8 */ jal load_overlay /* 04B400 800A31B0 24040012 */ li $a0, 18 /* 04B404 800A31B4 0C02EEE8 */ jal func_800BBBA0_ovl1 /* 04B408 800A31B8 00000000 */ nop diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A3230.s b/asm/non_matchings/ovl1/ovl1_1/func_800A3230.s index 448d51dd..60ec0de9 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A3230.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A3230.s @@ -55,7 +55,7 @@ glabel func_800A3230 /* 04B550 800A3300 91E40002 */ lbu $a0, 2($t7) /* 04B554 800A3304 0C02E714 */ jal func_800B9C50_ovl1 /* 04B558 800A3308 8E640000 */ lw $a0, ($s3) -/* 04B55C 800A330C 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B55C 800A330C 0C029AC8 */ jal load_overlay /* 04B560 800A3310 24040004 */ li $a0, 4 /* 04B564 800A3314 8E580000 */ lw $t8, ($s2) /* 04B568 800A3318 24050002 */ li $a1, 2 diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A336C.s b/asm/non_matchings/ovl1/ovl1_1/func_800A336C.s index 4c90005f..af02dc6d 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A336C.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A336C.s @@ -24,7 +24,7 @@ glabel func_800A336C /* 04B614 800A33C4 3C04800D */ lui $a0, %hi(D_800D6B88) # $a0, 0x800d /* 04B618 800A33C8 0C02E714 */ jal func_800B9C50_ovl1 /* 04B61C 800A33CC 8C846B88 */ lw $a0, %lo(D_800D6B88)($a0) -/* 04B620 800A33D0 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B620 800A33D0 0C029AC8 */ jal load_overlay /* 04B624 800A33D4 24040004 */ li $a0, 4 /* 04B628 800A33D8 3C19800C */ lui $t9, %hi(D_800BE500) # $t9, 0x800c /* 04B62C 800A33DC 8F39E500 */ lw $t9, %lo(D_800BE500)($t9) diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A3408.s b/asm/non_matchings/ovl1/ovl1_1/func_800A3408.s index 3e6515c0..888f0ffc 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A3408.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A3408.s @@ -12,7 +12,7 @@ glabel func_800A3408 /* 04B680 800A3430 8DEF6B94 */ lw $t7, %lo(D_800D6B94)($t7) /* 04B684 800A3434 564F001F */ bnel $s2, $t7, .L800A34B4_ovl1 /* 04B688 800A3438 8FBF0024 */ lw $ra, 0x24($sp) -/* 04B68C 800A343C 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B68C 800A343C 0C029AC8 */ jal load_overlay /* 04B690 800A3440 24040012 */ li $a0, 18 /* 04B694 800A3444 0C089CC2 */ jal func_80227308_ovl1 /* 04B698 800A3448 00002025 */ move $a0, $zero @@ -27,7 +27,7 @@ glabel func_800A3408 .L800A346C_ovl1: /* 04B6BC 800A346C 0C028C54 */ jal func_800A3150_ovl1 /* 04B6C0 800A3470 24040004 */ li $a0, 4 -/* 04B6C4 800A3474 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B6C4 800A3474 0C029AC8 */ jal load_overlay /* 04B6C8 800A3478 24040012 */ li $a0, 18 /* 04B6CC 800A347C 0C089CC2 */ jal func_80227308_ovl1 /* 04B6D0 800A3480 02402025 */ move $a0, $s2 diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s b/asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s index e4c28b67..373bf8a8 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A36C0.s @@ -26,7 +26,7 @@ glabel func_800A36C0 /* 04B96C 800A371C ADD90000 */ sw $t9, ($t6) /* 04B970 800A3720 ADD80004 */ sw $t8, 4($t6) .L800A3724_ovl1: -/* 04B974 800A3724 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04B974 800A3724 0C029AC8 */ jal load_overlay /* 04B978 800A3728 24040004 */ li $a0, 4 /* 04B97C 800A372C 8E040000 */ lw $a0, ($s0) /* 04B980 800A3730 0C055358 */ jal func_80154D60_ovl1 diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A377C.s b/asm/non_matchings/ovl1/ovl1_1/func_800A377C.s index 62775848..579f71e9 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A377C.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A377C.s @@ -18,7 +18,7 @@ glabel func_800A377C /* 04BA0C 800A37BC 00000000 */ nop /* 04BA10 800A37C0 0C029AC6 */ jal func_800A6B18_ovl1 /* 04BA14 800A37C4 00000000 */ nop -/* 04BA18 800A37C8 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04BA18 800A37C8 0C029AC8 */ jal load_overlay /* 04BA1C 800A37CC 24040001 */ li $a0, 1 /* 04BA20 800A37D0 0C028B20 */ jal func_800A2C80_ovl1 /* 04BA24 800A37D4 00000000 */ nop @@ -52,7 +52,7 @@ glabel func_800A377C /* 04BA90 800A3840 8C2F5B64 */ lw $t7, %lo(D_800D5B64)($at) /* 04BA94 800A3844 01E00008 */ jr $t7 /* 04BA98 800A3848 00000000 */ nop -/* 04BA9C 800A384C 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04BA9C 800A384C 0C029AC8 */ jal load_overlay /* 04BAA0 800A3850 24040002 */ li $a0, 2 /* 04BAA4 800A3854 0C05473B */ jal func_80151CEC_ovl1 /* 04BAA8 800A3858 00002025 */ move $a0, $zero @@ -62,7 +62,7 @@ glabel func_800A377C /* 04BAB8 800A3868 8F186B74 */ lw $t8, %lo(D_800D6B74)($t8) /* 04BABC 800A386C 56580007 */ bnel $s2, $t8, .L800A388C_ovl1 /* 04BAC0 800A3870 24190003 */ li $t9, 3 -/* 04BAC4 800A3874 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04BAC4 800A3874 0C029AC8 */ jal load_overlay /* 04BAC8 800A3878 24040004 */ li $a0, 4 /* 04BACC 800A387C 00002025 */ move $a0, $zero /* 04BAD0 800A3880 0C055358 */ jal func_80154D60_ovl1 @@ -73,7 +73,7 @@ glabel func_800A377C /* 04BAE0 800A3890 3C01800D */ lui $at, %hi(D_800D6B60) # $at, 0x800d /* 04BAE4 800A3894 1000FFE0 */ b .L800A3818_ovl1 /* 04BAE8 800A3898 AC396B60 */ sw $t9, %lo(D_800D6B60)($at) -/* 04BAEC 800A389C 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04BAEC 800A389C 0C029AC8 */ jal load_overlay /* 04BAF0 800A38A0 24040002 */ li $a0, 2 /* 04BAF4 800A38A4 0C05473B */ jal func_80151CEC_ovl1 /* 04BAF8 800A38A8 02402025 */ move $a0, $s2 @@ -95,7 +95,7 @@ glabel func_800A377C /* 04BB34 800A38E4 3C01800D */ lui $at, %hi(D_800D6B60) # $at, 0x800d /* 04BB38 800A38E8 1000FFCB */ b .L800A3818_ovl1 /* 04BB3C 800A38EC AC2B6B60 */ sw $t3, %lo(D_800D6B60)($at) -/* 04BB40 800A38F0 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04BB40 800A38F0 0C029AC8 */ jal load_overlay /* 04BB44 800A38F4 24040002 */ li $a0, 2 /* 04BB48 800A38F8 0C05473B */ jal func_80151CEC_ovl1 /* 04BB4C 800A38FC 02402025 */ move $a0, $s2 @@ -117,7 +117,7 @@ glabel func_800A377C /* 04BB88 800A3938 3C01800D */ lui $at, %hi(D_800D6B60) # $at, 0x800d /* 04BB8C 800A393C 1000FFB6 */ b .L800A3818_ovl1 /* 04BB90 800A3940 AC2F6B60 */ sw $t7, %lo(D_800D6B60)($at) -/* 04BB94 800A3944 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04BB94 800A3944 0C029AC8 */ jal load_overlay /* 04BB98 800A3948 24040002 */ li $a0, 2 /* 04BB9C 800A394C 0C05473B */ jal func_80151CEC_ovl1 /* 04BBA0 800A3950 02402025 */ move $a0, $s2 @@ -139,7 +139,7 @@ glabel func_800A377C /* 04BBDC 800A398C 3C01800D */ lui $at, %hi(D_800D6B60) # $at, 0x800d /* 04BBE0 800A3990 1000FFA1 */ b .L800A3818_ovl1 /* 04BBE4 800A3994 AC296B60 */ sw $t1, %lo(D_800D6B60)($at) -/* 04BBE8 800A3998 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04BBE8 800A3998 0C029AC8 */ jal load_overlay /* 04BBEC 800A399C 24040002 */ li $a0, 2 /* 04BBF0 800A39A0 0C05473B */ jal func_80151CEC_ovl1 /* 04BBF4 800A39A4 02402025 */ move $a0, $s2 @@ -177,7 +177,7 @@ glabel func_800A377C /* 04BC70 800A3A20 02402025 */ move $a0, $s2 /* 04BC74 800A3A24 1440000B */ bnez $v0, .L800A3A54_ovl1 /* 04BC78 800A3A28 00000000 */ nop -/* 04BC7C 800A3A2C 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04BC7C 800A3A2C 0C029AC8 */ jal load_overlay /* 04BC80 800A3A30 24040004 */ li $a0, 4 /* 04BC84 800A3A34 02402025 */ move $a0, $s2 /* 04BC88 800A3A38 0C02E7E4 */ jal func_800B9F90_ovl1 @@ -470,7 +470,7 @@ glabel func_800A377C /* 04C0C8 800A3E78 AC400000 */ sw $zero, ($v0) /* 04C0CC 800A3E7C 3C01800D */ lui $at, %hi(D_800D6B9C) # $at, 0x800d /* 04C0D0 800A3E80 AC206B9C */ sw $zero, %lo(D_800D6B9C)($at) -/* 04C0D4 800A3E84 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04C0D4 800A3E84 0C029AC8 */ jal load_overlay /* 04C0D8 800A3E88 24040004 */ li $a0, 4 /* 04C0DC 800A3E8C 2404000D */ li $a0, 13 /* 04C0E0 800A3E90 0C02E7E4 */ jal func_800B9F90_ovl1 @@ -534,7 +534,7 @@ glabel func_800A377C /* 04C1B8 800A3F68 00000000 */ nop /* 04C1BC 800A3F6C 1000FE2A */ b .L800A3818_ovl1 /* 04C1C0 800A3F70 AE120000 */ sw $s2, ($s0) -/* 04C1C4 800A3F74 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04C1C4 800A3F74 0C029AC8 */ jal load_overlay /* 04C1C8 800A3F78 24040004 */ li $a0, 4 /* 04C1CC 800A3F7C 3C04800D */ lui $a0, %hi(D_800D71E8) # $a0, 0x800d /* 04C1D0 800A3F80 8C8471E8 */ lw $a0, %lo(D_800D71E8)($a0) @@ -549,7 +549,7 @@ glabel func_800A377C /* 04C1F4 800A3FA4 00000000 */ nop /* 04C1F8 800A3FA8 1000FE1B */ b .L800A3818_ovl1 /* 04C1FC 800A3FAC 00000000 */ nop -/* 04C200 800A3FB0 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04C200 800A3FB0 0C029AC8 */ jal load_overlay /* 04C204 800A3FB4 24040004 */ li $a0, 4 /* 04C208 800A3FB8 24040011 */ li $a0, 17 /* 04C20C 800A3FBC 0C02E7E4 */ jal func_800B9F90_ovl1 @@ -564,7 +564,7 @@ glabel func_800A377C /* 04C230 800A3FE0 24050002 */ li $a1, 2 /* 04C234 800A3FE4 1000FE0C */ b .L800A3818_ovl1 /* 04C238 800A3FE8 AE120000 */ sw $s2, ($s0) -/* 04C23C 800A3FEC 0C029AC8 */ jal func_800A6B20_ovl1 +/* 04C23C 800A3FEC 0C029AC8 */ jal load_overlay /* 04C240 800A3FF0 24040004 */ li $a0, 4 /* 04C244 800A3FF4 2404000D */ li $a0, 13 /* 04C248 800A3FF8 0C02E7E4 */ jal func_800B9F90_ovl1 diff --git a/asm/non_matchings/ovl1/ovl1_1/func_800A6B20.s b/asm/non_matchings/ovl1/ovl1_1/func_800A6B20.s index cb934231..0b7dfe0a 100644 --- a/asm/non_matchings/ovl1/ovl1_1/func_800A6B20.s +++ b/asm/non_matchings/ovl1/ovl1_1/func_800A6B20.s @@ -1,4 +1,4 @@ -glabel func_800A6B20 +glabel load_overlay /* 04ED70 800A6B20 27BDFFE8 */ addiu $sp, $sp, -0x18 /* 04ED74 800A6B24 2C810014 */ sltiu $at, $a0, 0x14 /* 04ED78 800A6B28 AFBF0014 */ sw $ra, 0x14($sp) @@ -12,7 +12,7 @@ glabel func_800A6B20 /* 04ED90 800A6B40 00057080 */ sll $t6, $a1, 2 /* 04ED94 800A6B44 3C04800C */ lui $a0, %hi(D_800BE8A0) /* 04ED98 800A6B48 008E2021 */ addu $a0, $a0, $t6 -/* 04ED9C 800A6B4C 0C000B63 */ jal load_overlay +/* 04ED9C 800A6B4C 0C000B63 */ jal dma_overlay_load /* 04EDA0 800A6B50 8C84E8A0 */ lw $a0, %lo(D_800BE8A0)($a0) /* 04EDA4 800A6B54 8FBF0014 */ lw $ra, 0x14($sp) /* 04EDA8 800A6B58 27BD0018 */ addiu $sp, $sp, 0x18 diff --git a/asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s b/asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s index fcafa6e8..b18abd25 100644 --- a/asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s +++ b/asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s @@ -1,9 +1,9 @@ glabel func_800A9AA8 /* 051CF8 800A9AA8 00047402 */ srl $t6, $a0, 0x10 /* 051CFC 800A9AAC 000E7880 */ sll $t7, $t6, 2 -/* 051D00 800A9AB0 3C02800D */ lui $v0, 0x800d +/* 051D00 800A9AB0 3C02800D */ lui $v0, %hi(D_800D0184) /* 051D04 800A9AB4 004F1021 */ addu $v0, $v0, $t7 -/* 051D08 800A9AB8 8C420184 */ lw $v0, 0x184($v0) +/* 051D08 800A9AB8 8C420184 */ lw $v0, %lo(D_800D0184)($v0) /* 051D0C 800A9ABC 27BDFFD8 */ addiu $sp, $sp, -0x28 /* 051D10 800A9AC0 AFBF0014 */ sw $ra, 0x14($sp) /* 051D14 800A9AC4 8C430018 */ lw $v1, 0x18($v0) diff --git a/asm/non_matchings/ovl2_2/func_800F78E4_ovl2.s b/asm/non_matchings/ovl2_2/func_800F78E4_ovl2.s index 48aba4c0..0399dd05 100644 --- a/asm/non_matchings/ovl2_2/func_800F78E4_ovl2.s +++ b/asm/non_matchings/ovl2_2/func_800F78E4_ovl2.s @@ -436,13 +436,13 @@ glabel func_800F78E4_ovl2 /* 0809D0 800F7F60 8C2D8738 */ lw $t5, -0x78c8($at) /* 0809D4 800F7F64 01A00008 */ jr $t5 /* 0809D8 800F7F68 00000000 */ nop -/* 0809DC 800F7F6C 0C029AC8 */ jal func_800A6B20_ovl2 +/* 0809DC 800F7F6C 0C029AC8 */ jal load_overlay /* 0809E0 800F7F70 24040007 */ li $a0, 7 -/* 0809E4 800F7F74 0C029AC8 */ jal func_800A6B20_ovl2 +/* 0809E4 800F7F74 0C029AC8 */ jal load_overlay /* 0809E8 800F7F78 24040010 */ li $a0, 16 /* 0809EC 800F7F7C 1000003B */ b .L800F806C_ovl2 /* 0809F0 800F7F80 8FBF0014 */ lw $ra, 0x14($sp) -/* 0809F4 800F7F84 0C029AC8 */ jal func_800A6B20_ovl2 +/* 0809F4 800F7F84 0C029AC8 */ jal load_overlay /* 0809F8 800F7F88 24040007 */ li $a0, 7 /* 0809FC 800F7F8C 3C0F800C */ lui $t7, %hi(D_800BE500) # $t7, 0x800c /* 080A00 800F7F90 8DEFE500 */ lw $t7, %lo(D_800BE500)($t7) @@ -454,51 +454,51 @@ glabel func_800F78E4_ovl2 /* 080A18 800F7FA8 8C2F8760 */ lw $t7, -0x78a0($at) /* 080A1C 800F7FAC 01E00008 */ jr $t7 /* 080A20 800F7FB0 00000000 */ nop -/* 080A24 800F7FB4 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A24 800F7FB4 0C029AC8 */ jal load_overlay /* 080A28 800F7FB8 2404000A */ li $a0, 10 /* 080A2C 800F7FBC 1000002B */ b .L800F806C_ovl2 /* 080A30 800F7FC0 8FBF0014 */ lw $ra, 0x14($sp) -/* 080A34 800F7FC4 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A34 800F7FC4 0C029AC8 */ jal load_overlay /* 080A38 800F7FC8 2404000B */ li $a0, 11 /* 080A3C 800F7FCC 10000027 */ b .L800F806C_ovl2 /* 080A40 800F7FD0 8FBF0014 */ lw $ra, 0x14($sp) -/* 080A44 800F7FD4 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A44 800F7FD4 0C029AC8 */ jal load_overlay /* 080A48 800F7FD8 2404000C */ li $a0, 12 /* 080A4C 800F7FDC 10000023 */ b .L800F806C_ovl2 /* 080A50 800F7FE0 8FBF0014 */ lw $ra, 0x14($sp) -/* 080A54 800F7FE4 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A54 800F7FE4 0C029AC8 */ jal load_overlay /* 080A58 800F7FE8 2404000D */ li $a0, 13 /* 080A5C 800F7FEC 1000001F */ b .L800F806C_ovl2 /* 080A60 800F7FF0 8FBF0014 */ lw $ra, 0x14($sp) -/* 080A64 800F7FF4 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A64 800F7FF4 0C029AC8 */ jal load_overlay /* 080A68 800F7FF8 2404000E */ li $a0, 14 /* 080A6C 800F7FFC 1000001B */ b .L800F806C_ovl2 /* 080A70 800F8000 8FBF0014 */ lw $ra, 0x14($sp) -/* 080A74 800F8004 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A74 800F8004 0C029AC8 */ jal load_overlay /* 080A78 800F8008 2404000F */ li $a0, 15 /* 080A7C 800F800C 10000017 */ b .L800F806C_ovl2 /* 080A80 800F8010 8FBF0014 */ lw $ra, 0x14($sp) -/* 080A84 800F8014 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A84 800F8014 0C029AC8 */ jal load_overlay /* 080A88 800F8018 24040007 */ li $a0, 7 -/* 080A8C 800F801C 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A8C 800F801C 0C029AC8 */ jal load_overlay /* 080A90 800F8020 24040009 */ li $a0, 9 /* 080A94 800F8024 10000011 */ b .L800F806C_ovl2 /* 080A98 800F8028 8FBF0014 */ lw $ra, 0x14($sp) -/* 080A9C 800F802C 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080A9C 800F802C 0C029AC8 */ jal load_overlay /* 080AA0 800F8030 24040008 */ li $a0, 8 -/* 080AA4 800F8034 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080AA4 800F8034 0C029AC8 */ jal load_overlay /* 080AA8 800F8038 24040012 */ li $a0, 18 /* 080AAC 800F803C 1000000B */ b .L800F806C_ovl2 /* 080AB0 800F8040 8FBF0014 */ lw $ra, 0x14($sp) .L800F8044_ovl2: -/* 080AB4 800F8044 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080AB4 800F8044 0C029AC8 */ jal load_overlay /* 080AB8 800F8048 24040008 */ li $a0, 8 /* 080ABC 800F804C 3C0E800D */ lui $t6, %hi(D_800D6F3C) # $t6, 0x800d /* 080AC0 800F8050 8DCE6F3C */ lw $t6, %lo(D_800D6F3C)($t6) /* 080AC4 800F8054 29C10003 */ slti $at, $t6, 3 /* 080AC8 800F8058 54200004 */ bnezl $at, .L800F806C_ovl2 /* 080ACC 800F805C 8FBF0014 */ lw $ra, 0x14($sp) -/* 080AD0 800F8060 0C029AC8 */ jal func_800A6B20_ovl2 +/* 080AD0 800F8060 0C029AC8 */ jal load_overlay /* 080AD4 800F8064 24040012 */ li $a0, 18 .L800F8068_ovl2: /* 080AD8 800F8068 8FBF0014 */ lw $ra, 0x14($sp) diff --git a/asm/ovl1/ovl1_12.s b/asm/ovl1/ovl1_12.s index 6067ca43..97ce6ccf 100644 --- a/asm/ovl1/ovl1_12.s +++ b/asm/ovl1/ovl1_12.s @@ -1,315 +1,314 @@ -.set noat -.set noreorder -.set gp=64 - -.include "macros.inc" - -.section .text, "ax" -glabel func_800BBBA0 -/* 063DF0 800BBBA0 3C03800D */ lui $v1, %hi(D_800D6F3C) # $v1, 0x800d -/* 063DF4 800BBBA4 24636F3C */ addiu $v1, %lo(D_800D6F3C) # addiu $v1, $v1, 0x6f3c -/* 063DF8 800BBBA8 8C620000 */ lw $v0, ($v1) -/* 063DFC 800BBBAC 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 063E00 800BBBB0 AFBF0014 */ sw $ra, 0x14($sp) -/* 063E04 800BBBB4 04400003 */ bltz $v0, .L800BBBC4_ovl1 -/* 063E08 800BBBB8 28410007 */ slti $at, $v0, 7 -/* 063E0C 800BBBBC 54200004 */ bnezl $at, .L800BBBD0_ovl1 -/* 063E10 800BBBC0 2C410007 */ sltiu $at, $v0, 7 -.L800BBBC4_ovl1: -/* 063E14 800BBBC4 AC600000 */ sw $zero, ($v1) -/* 063E18 800BBBC8 00001025 */ move $v0, $zero -/* 063E1C 800BBBCC 2C410007 */ sltiu $at, $v0, 7 -.L800BBBD0_ovl1: -/* 063E20 800BBBD0 10200022 */ beqz $at, .L800BBC5C_ovl1 -/* 063E24 800BBBD4 00027080 */ sll $t6, $v0, 2 -/* 063E28 800BBBD8 3C01800D */ lui $at, 0x800d -/* 063E2C 800BBBDC 002E0821 */ addu $at, $at, $t6 -/* 063E30 800BBBE0 8C2E6980 */ lw $t6, 0x6980($at) -/* 063E34 800BBBE4 01C00008 */ jr $t6 -/* 063E38 800BBBE8 00000000 */ nop -/* 063E3C 800BBBEC 3C01800F */ lui $at, %hi(D_800ED4EC) # $at, 0x800f -/* 063E40 800BBBF0 1000001A */ b .L800BBC5C_ovl1 -/* 063E44 800BBBF4 AC20D4EC */ sw $zero, %lo(D_800ED4EC)($at) -/* 063E48 800BBBF8 3C0F8023 */ lui $t7, %hi(D_8022B7C0) # $t7, 0x8023 -/* 063E4C 800BBBFC 25EFB7C0 */ addiu $t7, %lo(D_8022B7C0) # addiu $t7, $t7, -0x4840 -/* 063E50 800BBC00 3C01800F */ lui $at, %hi(D_800ED4E0) # $at, 0x800f -/* 063E54 800BBC04 0C02EF1B */ jal func_800BBC6C_ovl1 -/* 063E58 800BBC08 AC2FD4E0 */ sw $t7, %lo(D_800ED4E0)($at) -/* 063E5C 800BBC0C 0C02ED10 */ jal func_800BB440_ovl1 -/* 063E60 800BBC10 00000000 */ nop -/* 063E64 800BBC14 10000012 */ b .L800BBC60_ovl1 -/* 063E68 800BBC18 8FBF0014 */ lw $ra, 0x14($sp) -/* 063E6C 800BBC1C 3C188023 */ lui $t8, %hi(D_8022AED8) # $t8, 0x8023 -/* 063E70 800BBC20 2718AED8 */ addiu $t8, %lo(D_8022AED8) # addiu $t8, $t8, -0x5128 -/* 063E74 800BBC24 3C01800F */ lui $at, %hi(D_800ED4E0) # $at, 0x800f -/* 063E78 800BBC28 0C02EF1B */ jal func_800BBC6C_ovl1 -/* 063E7C 800BBC2C AC38D4E0 */ sw $t8, %lo(D_800ED4E0)($at) -/* 063E80 800BBC30 0C02ED10 */ jal func_800BB440_ovl1 -/* 063E84 800BBC34 00000000 */ nop -/* 063E88 800BBC38 10000009 */ b .L800BBC60_ovl1 -/* 063E8C 800BBC3C 8FBF0014 */ lw $ra, 0x14($sp) -/* 063E90 800BBC40 3C198023 */ lui $t9, %hi(D_8022B428) # $t9, 0x8023 -/* 063E94 800BBC44 2739B428 */ addiu $t9, %lo(D_8022B428) # addiu $t9, $t9, -0x4bd8 -/* 063E98 800BBC48 3C01800F */ lui $at, %hi(D_800ED4E0) # $at, 0x800f -/* 063E9C 800BBC4C 0C02EF1B */ jal func_800BBC6C_ovl1 -/* 063EA0 800BBC50 AC39D4E0 */ sw $t9, %lo(D_800ED4E0)($at) -/* 063EA4 800BBC54 0C02ED10 */ jal func_800BB440_ovl1 -/* 063EA8 800BBC58 00000000 */ nop -.L800BBC5C_ovl1: -/* 063EAC 800BBC5C 8FBF0014 */ lw $ra, 0x14($sp) -.L800BBC60_ovl1: -/* 063EB0 800BBC60 27BD0018 */ addiu $sp, $sp, 0x18 -/* 063EB4 800BBC64 03E00008 */ jr $ra -/* 063EB8 800BBC68 00000000 */ nop - -glabel func_800BBC6C -/* 063EBC 800BBC6C 3C01800F */ lui $at, %hi(D_800ED4EC) # $at, 0x800f -/* 063EC0 800BBC70 AC20D4EC */ sw $zero, %lo(D_800ED4EC)($at) -/* 063EC4 800BBC74 3C0E800F */ lui $t6, %hi(D_800ED4E0) # $t6, 0x800f -/* 063EC8 800BBC78 8DCED4E0 */ lw $t6, %lo(D_800ED4E0)($t6) -/* 063ECC 800BBC7C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 063ED0 800BBC80 3C01800F */ lui $at, %hi(D_800ED4F4) # $at, 0x800f -/* 063ED4 800BBC84 AFBF0014 */ sw $ra, 0x14($sp) -/* 063ED8 800BBC88 AC20D4F4 */ sw $zero, %lo(D_800ED4F4)($at) -/* 063EDC 800BBC8C 0C0062A5 */ jal func_80018A94_ovl1 -/* 063EE0 800BBC90 8DC40000 */ lw $a0, ($t6) -/* 063EE4 800BBC94 3C05800F */ lui $a1, %hi(D_800ED4E0) # $a1, 0x800f -/* 063EE8 800BBC98 8CA5D4E0 */ lw $a1, %lo(D_800ED4E0)($a1) -/* 063EEC 800BBC9C 3C01800C */ lui $at, %hi(D_800BE4EC) # $at, 0x800c -/* 063EF0 800BBCA0 3C02800C */ lui $v0, %hi(D_800BE52C) # $v0, 0x800c -/* 063EF4 800BBCA4 8CAF0004 */ lw $t7, 4($a1) -/* 063EF8 800BBCA8 2442E52C */ addiu $v0, %lo(D_800BE52C) # addiu $v0, $v0, -0x1ad4 -/* 063EFC 800BBCAC 3C03800C */ lui $v1, %hi(D_800BE530) # $v1, 0x800c -/* 063F00 800BBCB0 AC2FE4EC */ sw $t7, %lo(D_800BE4EC)($at) -/* 063F04 800BBCB4 8CB80008 */ lw $t8, 8($a1) -/* 063F08 800BBCB8 3C01800C */ lui $at, %hi(D_800BE500) # $at, 0x800c -/* 063F0C 800BBCBC 2463E530 */ addiu $v1, %lo(D_800BE530) # addiu $v1, $v1, -0x1ad0 -/* 063F10 800BBCC0 AC580000 */ sw $t8, ($v0) -/* 063F14 800BBCC4 AC38E500 */ sw $t8, %lo(D_800BE500)($at) -/* 063F18 800BBCC8 8CA8000C */ lw $t0, 0xc($a1) -/* 063F1C 800BBCCC 3C01800C */ lui $at, %hi(D_800BE504) # $at, 0x800c -/* 063F20 800BBCD0 3C06800C */ lui $a2, %hi(D_800BE534) # $a2, 0x800c -/* 063F24 800BBCD4 AC680000 */ sw $t0, ($v1) -/* 063F28 800BBCD8 AC28E504 */ sw $t0, %lo(D_800BE504)($at) -/* 063F2C 800BBCDC 8CAA0010 */ lw $t2, 0x10($a1) -/* 063F30 800BBCE0 24C6E534 */ addiu $a2, %lo(D_800BE534) # addiu $a2, $a2, -0x1acc -/* 063F34 800BBCE4 3C01800C */ lui $at, %hi(D_800BE508) # $at, 0x800c -/* 063F38 800BBCE8 ACCA0000 */ sw $t2, ($a2) -/* 063F3C 800BBCEC AC2AE508 */ sw $t2, %lo(D_800BE508)($at) -/* 063F40 800BBCF0 8CAC0014 */ lw $t4, 0x14($a1) -/* 063F44 800BBCF4 3C07800C */ lui $a3, %hi(D_800BE538) # $a3, 0x800c -/* 063F48 800BBCF8 24E7E538 */ addiu $a3, %lo(D_800BE538) # addiu $a3, $a3, -0x1ac8 -/* 063F4C 800BBCFC 3C01800C */ lui $at, %hi(D_800BE50C) # $at, 0x800c -/* 063F50 800BBD00 ACEC0000 */ sw $t4, ($a3) -/* 063F54 800BBD04 AC2CE50C */ sw $t4, %lo(D_800BE50C)($at) -/* 063F58 800BBD08 8CAE001C */ lw $t6, 0x1c($a1) -/* 063F5C 800BBD0C 3C01800C */ lui $at, %hi(D_800BE4FC) # $at, 0x800c -/* 063F60 800BBD10 AC2EE4FC */ sw $t6, %lo(D_800BE4FC)($at) -/* 063F64 800BBD14 8CAF0020 */ lw $t7, 0x20($a1) -/* 063F68 800BBD18 3C01800D */ lui $at, %hi(D_800D6E4C) # $at, 0x800d -/* 063F6C 800BBD1C AC2F6E4C */ sw $t7, %lo(D_800D6E4C)($at) -/* 063F70 800BBD20 C4A40024 */ lwc1 $f4, 0x24($a1) -/* 063F74 800BBD24 3C01800D */ lui $at, %hi(D_800D6E50) # $at, 0x800d -/* 063F78 800BBD28 E4246E50 */ swc1 $f4, %lo(D_800D6E50)($at) -/* 063F7C 800BBD2C 8CB80028 */ lw $t8, 0x28($a1) -/* 063F80 800BBD30 3C01800D */ lui $at, %hi(D_800D6E54) # $at, 0x800d -/* 063F84 800BBD34 AC386E54 */ sw $t8, %lo(D_800D6E54)($at) -/* 063F88 800BBD38 8CB9002C */ lw $t9, 0x2c($a1) -/* 063F8C 800BBD3C 3C01800D */ lui $at, %hi(D_800D6E60) # $at, 0x800d -/* 063F90 800BBD40 AC396E60 */ sw $t9, %lo(D_800D6E60)($at) -/* 063F94 800BBD44 8CA80030 */ lw $t0, 0x30($a1) -/* 063F98 800BBD48 3C01800D */ lui $at, %hi(D_800D6E64) # $at, 0x800d -/* 063F9C 800BBD4C AC286E64 */ sw $t0, %lo(D_800D6E64)($at) -/* 063FA0 800BBD50 8CA90034 */ lw $t1, 0x34($a1) -/* 063FA4 800BBD54 3C01800D */ lui $at, %hi(D_800D6BB0) # $at, 0x800d -/* 063FA8 800BBD58 AC296BB0 */ sw $t1, %lo(D_800D6BB0)($at) -/* 063FAC 800BBD5C 0C006266 */ jal func_80018998_ovl1 -/* 063FB0 800BBD60 8CA40038 */ lw $a0, 0x38($a1) -/* 063FB4 800BBD64 3C05800F */ lui $a1, %hi(D_800ED4E0) # $a1, 0x800f -/* 063FB8 800BBD68 8CA5D4E0 */ lw $a1, %lo(D_800ED4E0)($a1) -/* 063FBC 800BBD6C 3C02800D */ lui $v0, %hi(D_800D6E20) # $v0, 0x800d -/* 063FC0 800BBD70 3C04800D */ lui $a0, %hi(D_800D6E30) # $a0, 0x800d -/* 063FC4 800BBD74 24846E30 */ addiu $a0, %lo(D_800D6E30) # addiu $a0, $a0, 0x6e30 -/* 063FC8 800BBD78 24426E20 */ addiu $v0, %lo(D_800D6E20) # addiu $v0, $v0, 0x6e20 -/* 063FCC 800BBD7C 00A01825 */ move $v1, $a1 -.L800BBD80_ovl1: -/* 063FD0 800BBD80 906A0040 */ lbu $t2, 0x40($v1) -/* 063FD4 800BBD84 24420004 */ addiu $v0, $v0, 4 -/* 063FD8 800BBD88 24630004 */ addiu $v1, $v1, 4 -/* 063FDC 800BBD8C A04AFFFC */ sb $t2, -4($v0) -/* 063FE0 800BBD90 906B003D */ lbu $t3, 0x3d($v1) -/* 063FE4 800BBD94 A04BFFFD */ sb $t3, -3($v0) -/* 063FE8 800BBD98 906C003E */ lbu $t4, 0x3e($v1) -/* 063FEC 800BBD9C A04CFFFE */ sb $t4, -2($v0) -/* 063FF0 800BBDA0 906D003F */ lbu $t5, 0x3f($v1) -/* 063FF4 800BBDA4 1444FFF6 */ bne $v0, $a0, .L800BBD80_ovl1 -/* 063FF8 800BBDA8 A04DFFFF */ sb $t5, -1($v0) -/* 063FFC 800BBDAC 8FBF0014 */ lw $ra, 0x14($sp) -/* 064000 800BBDB0 8CAE003C */ lw $t6, 0x3c($a1) -/* 064004 800BBDB4 3C01800D */ lui $at, 0x800d -/* 064008 800BBDB8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 06400C 800BBDBC 03E00008 */ jr $ra -/* 064010 800BBDC0 AC2E6F38 */ sw $t6, 0x6f38($at) - -glabel func_800BBDC4 -/* 064014 800BBDC4 3C06800F */ lui $a2, %hi(D_800ED4EC) # $a2, 0x800f -/* 064018 800BBDC8 24C6D4EC */ addiu $a2, %lo(D_800ED4EC) # addiu $a2, $a2, -0x2b14 -/* 06401C 800BBDCC 8CC30000 */ lw $v1, ($a2) -/* 064020 800BBDD0 3C098005 */ lui $t1, %hi(D_80048F20) # $t1, 0x8005 -/* 064024 800BBDD4 25298F20 */ addiu $t1, %lo(D_80048F20) # addiu $t1, $t1, -0x70e0 -/* 064028 800BBDD8 A5200004 */ sh $zero, 4($t1) -/* 06402C 800BBDDC A5200002 */ sh $zero, 2($t1) -/* 064030 800BBDE0 04610007 */ bgez $v1, .L800BBE00_ovl1 -/* 064034 800BBDE4 A5200000 */ sh $zero, ($t1) -/* 064038 800BBDE8 240E0002 */ li $t6, 2 -/* 06403C 800BBDEC 3C01800C */ lui $at, %hi(D_800BE4F8) # $at, 0x800c -/* 064040 800BBDF0 AC2EE4F8 */ sw $t6, %lo(D_800BE4F8)($at) -/* 064044 800BBDF4 3C01800D */ lui $at, 0x800d -/* 064048 800BBDF8 03E00008 */ jr $ra -/* 06404C 800BBDFC AC206F38 */ sw $zero, 0x6f38($at) - -.L800BBE00_ovl1: -/* 064050 800BBE00 3C07800F */ lui $a3, %hi(D_800ED4F4) # $a3, 0x800f -/* 064054 800BBE04 24E7D4F4 */ addiu $a3, %lo(D_800ED4F4) # addiu $a3, $a3, -0x2b0c -/* 064058 800BBE08 8CEF0000 */ lw $t7, ($a3) -/* 06405C 800BBE0C 3C04800F */ lui $a0, %hi(D_800ED4E0) # $a0, 0x800f -/* 064060 800BBE10 25F8FFFF */ addiu $t8, $t7, -1 -/* 064064 800BBE14 1F000021 */ bgtz $t8, .L800BBE9C_ovl1 -/* 064068 800BBE18 ACF80000 */ sw $t8, ($a3) -/* 06406C 800BBE1C 8C84D4E0 */ lw $a0, %lo(D_800ED4E0)($a0) -/* 064070 800BBE20 00035040 */ sll $t2, $v1, 1 -/* 064074 800BBE24 246C0001 */ addiu $t4, $v1, 1 -/* 064078 800BBE28 008A5821 */ addu $t3, $a0, $t2 -/* 06407C 800BBE2C 95650100 */ lhu $a1, 0x100($t3) -/* 064080 800BBE30 ACCC0000 */ sw $t4, ($a2) -/* 064084 800BBE34 258F0001 */ addiu $t7, $t4, 1 -/* 064088 800BBE38 30ADE000 */ andi $t5, $a1, 0xe000 -/* 06408C 800BBE3C 11A00002 */ beqz $t5, .L800BBE48_ovl1 -/* 064090 800BBE40 30B81C00 */ andi $t8, $a1, 0x1c00 -/* 064094 800BBE44 ACCF0000 */ sw $t7, ($a2) -.L800BBE48_ovl1: -/* 064098 800BBE48 13000004 */ beqz $t8, .L800BBE5C_ovl1 -/* 06409C 800BBE4C 30AB0380 */ andi $t3, $a1, 0x380 -/* 0640A0 800BBE50 8CD90000 */ lw $t9, ($a2) -/* 0640A4 800BBE54 272A0001 */ addiu $t2, $t9, 1 -/* 0640A8 800BBE58 ACCA0000 */ sw $t2, ($a2) -.L800BBE5C_ovl1: -/* 0640AC 800BBE5C 11600004 */ beqz $t3, .L800BBE70_ovl1 -/* 0640B0 800BBE60 2418FFFF */ li $t8, -1 -/* 0640B4 800BBE64 8CCC0000 */ lw $t4, ($a2) -/* 0640B8 800BBE68 258D0001 */ addiu $t5, $t4, 1 -/* 0640BC 800BBE6C ACCD0000 */ sw $t5, ($a2) -.L800BBE70_ovl1: -/* 0640C0 800BBE70 8CC30000 */ lw $v1, ($a2) -/* 0640C4 800BBE74 3401FFFF */ li $at, 65535 -/* 0640C8 800BBE78 00037040 */ sll $t6, $v1, 1 -/* 0640CC 800BBE7C 008E7821 */ addu $t7, $a0, $t6 -/* 0640D0 800BBE80 95E50100 */ lhu $a1, 0x100($t7) -/* 0640D4 800BBE84 54A10004 */ bnel $a1, $at, .L800BBE98_ovl1 -/* 0640D8 800BBE88 30B9007F */ andi $t9, $a1, 0x7f -/* 0640DC 800BBE8C 03E00008 */ jr $ra -/* 0640E0 800BBE90 ACD80000 */ sw $t8, ($a2) - -glabel func_800BBE94 -/* 0640E4 800BBE94 30B9007F */ andi $t9, $a1, 0x7f -.L800BBE98_ovl1: -/* 0640E8 800BBE98 ACF90000 */ sw $t9, ($a3) -.L800BBE9C_ovl1: -/* 0640EC 800BBE9C 3C0A800F */ lui $t2, %hi(D_800ED4E0) # $t2, 0x800f -/* 0640F0 800BBEA0 8D4AD4E0 */ lw $t2, %lo(D_800ED4E0)($t2) -/* 0640F4 800BBEA4 00035840 */ sll $t3, $v1, 1 -/* 0640F8 800BBEA8 00003025 */ move $a2, $zero -/* 0640FC 800BBEAC 014B2021 */ addu $a0, $t2, $t3 -/* 064100 800BBEB0 94850100 */ lhu $a1, 0x100($a0) -/* 064104 800BBEB4 00003825 */ move $a3, $zero -/* 064108 800BBEB8 00004025 */ move $t0, $zero -/* 06410C 800BBEBC 30AC8000 */ andi $t4, $a1, 0x8000 -/* 064110 800BBEC0 11800002 */ beqz $t4, .L800BBECC_ovl1 -/* 064114 800BBEC4 30AD4000 */ andi $t5, $a1, 0x4000 -/* 064118 800BBEC8 94880102 */ lhu $t0, 0x102($a0) -.L800BBECC_ovl1: -/* 06411C 800BBECC 11A00002 */ beqz $t5, .L800BBED8_ovl1 -/* 064120 800BBED0 30AE2000 */ andi $t6, $a1, 0x2000 -/* 064124 800BBED4 94870102 */ lhu $a3, 0x102($a0) -.L800BBED8_ovl1: -/* 064128 800BBED8 11C00002 */ beqz $t6, .L800BBEE4_ovl1 -/* 06412C 800BBEDC 30AF1000 */ andi $t7, $a1, 0x1000 -/* 064130 800BBEE0 94860102 */ lhu $a2, 0x102($a0) -.L800BBEE4_ovl1: -/* 064134 800BBEE4 11E00002 */ beqz $t7, .L800BBEF0_ovl1 -/* 064138 800BBEE8 30B80800 */ andi $t8, $a1, 0x800 -/* 06413C 800BBEEC 94880104 */ lhu $t0, 0x104($a0) -.L800BBEF0_ovl1: -/* 064140 800BBEF0 13000002 */ beqz $t8, .L800BBEFC_ovl1 -/* 064144 800BBEF4 30B90400 */ andi $t9, $a1, 0x400 -/* 064148 800BBEF8 94870104 */ lhu $a3, 0x104($a0) -.L800BBEFC_ovl1: -/* 06414C 800BBEFC 13200002 */ beqz $t9, .L800BBF08_ovl1 -/* 064150 800BBF00 30AA0200 */ andi $t2, $a1, 0x200 -/* 064154 800BBF04 94860104 */ lhu $a2, 0x104($a0) -.L800BBF08_ovl1: -/* 064158 800BBF08 11400002 */ beqz $t2, .L800BBF14_ovl1 -/* 06415C 800BBF0C 30AB0100 */ andi $t3, $a1, 0x100 -/* 064160 800BBF10 94880106 */ lhu $t0, 0x106($a0) -.L800BBF14_ovl1: -/* 064164 800BBF14 11600002 */ beqz $t3, .L800BBF20_ovl1 -/* 064168 800BBF18 30AC0080 */ andi $t4, $a1, 0x80 -/* 06416C 800BBF1C 94870106 */ lhu $a3, 0x106($a0) -.L800BBF20_ovl1: -/* 064170 800BBF20 11800002 */ beqz $t4, .L800BBF2C_ovl1 -/* 064174 800BBF24 01001025 */ move $v0, $t0 -/* 064178 800BBF28 94860106 */ lhu $a2, 0x106($a0) -.L800BBF2C_ovl1: -/* 06417C 800BBF2C 310D0080 */ andi $t5, $t0, 0x80 -/* 064180 800BBF30 A5280000 */ sh $t0, ($t1) -/* 064184 800BBF34 A5270002 */ sh $a3, 2($t1) -/* 064188 800BBF38 11A00003 */ beqz $t5, .L800BBF48_ovl1 -/* 06418C 800BBF3C A5260004 */ sh $a2, 4($t1) -/* 064190 800BBF40 240E0040 */ li $t6, 64 -/* 064194 800BBF44 A12E0009 */ sb $t6, 9($t1) -.L800BBF48_ovl1: -/* 064198 800BBF48 304F0040 */ andi $t7, $v0, 0x40 -/* 06419C 800BBF4C 11E00002 */ beqz $t7, .L800BBF58_ovl1 -/* 0641A0 800BBF50 2418FFC0 */ li $t8, -64 -/* 0641A4 800BBF54 A1380009 */ sb $t8, 9($t1) -.L800BBF58_ovl1: -/* 0641A8 800BBF58 03E00008 */ jr $ra -/* 0641AC 800BBF5C 00000000 */ nop - -glabel func_800BBF60 -/* 0641B0 800BBF60 3C0E800D */ lui $t6, %hi(D_800D6F3C) # $t6, 0x800d -/* 0641B4 800BBF64 8DCE6F3C */ lw $t6, %lo(D_800D6F3C)($t6) -/* 0641B8 800BBF68 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0641BC 800BBF6C AFBF0014 */ sw $ra, 0x14($sp) -/* 0641C0 800BBF70 2DC10007 */ sltiu $at, $t6, 7 -/* 0641C4 800BBF74 10200010 */ beqz $at, .L800BBFB8_ovl1 -/* 0641C8 800BBF78 000E7080 */ sll $t6, $t6, 2 -/* 0641CC 800BBF7C 3C01800D */ lui $at, 0x800d -/* 0641D0 800BBF80 002E0821 */ addu $at, $at, $t6 -/* 0641D4 800BBF84 8C2E699C */ lw $t6, 0x699c($at) -/* 0641D8 800BBF88 01C00008 */ jr $t6 -/* 0641DC 800BBF8C 00000000 */ nop -/* 0641E0 800BBF90 0C02EF71 */ jal func_800BBDC4_ovl1 -/* 0641E4 800BBF94 00000000 */ nop -/* 0641E8 800BBF98 10000008 */ b .L800BBFBC_ovl1 -/* 0641EC 800BBF9C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0641F0 800BBFA0 0C02EF71 */ jal func_800BBDC4_ovl1 -/* 0641F4 800BBFA4 00000000 */ nop -/* 0641F8 800BBFA8 10000004 */ b .L800BBFBC_ovl1 -/* 0641FC 800BBFAC 8FBF0014 */ lw $ra, 0x14($sp) -/* 064200 800BBFB0 0C02EF71 */ jal func_800BBDC4_ovl1 -/* 064204 800BBFB4 00000000 */ nop -.L800BBFB8_ovl1: -/* 064208 800BBFB8 8FBF0014 */ lw $ra, 0x14($sp) -.L800BBFBC_ovl1: -/* 06420C 800BBFBC 27BD0018 */ addiu $sp, $sp, 0x18 -/* 064210 800BBFC0 03E00008 */ jr $ra -/* 064214 800BBFC4 00000000 */ nop - -/* 064218 800BBFC8 00000000 */ nop -/* 06421C 800BBFCC 00000000 */ nop -/* 064220 800BBFD0 00000000 */ nop -/* 064224 800BBFD4 00000000 */ nop -/* 064228 800BBFD8 00000000 */ nop -/* 06422C 800BBFDC 00000000 */ nop - +.set noat +.set noreorder +.set gp=64 + +.include "macros.inc" + +.section .text, "ax" +glabel func_800BBBA0 +/* 063DF0 800BBBA0 3C03800D */ lui $v1, %hi(D_800D6F3C) # $v1, 0x800d +/* 063DF4 800BBBA4 24636F3C */ addiu $v1, %lo(D_800D6F3C) # addiu $v1, $v1, 0x6f3c +/* 063DF8 800BBBA8 8C620000 */ lw $v0, ($v1) +/* 063DFC 800BBBAC 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 063E00 800BBBB0 AFBF0014 */ sw $ra, 0x14($sp) +/* 063E04 800BBBB4 04400003 */ bltz $v0, .L800BBBC4_ovl1 +/* 063E08 800BBBB8 28410007 */ slti $at, $v0, 7 +/* 063E0C 800BBBBC 54200004 */ bnezl $at, .L800BBBD0_ovl1 +/* 063E10 800BBBC0 2C410007 */ sltiu $at, $v0, 7 +.L800BBBC4_ovl1: +/* 063E14 800BBBC4 AC600000 */ sw $zero, ($v1) +/* 063E18 800BBBC8 00001025 */ move $v0, $zero +/* 063E1C 800BBBCC 2C410007 */ sltiu $at, $v0, 7 +.L800BBBD0_ovl1: +/* 063E20 800BBBD0 10200022 */ beqz $at, .L800BBC5C_ovl1 +/* 063E24 800BBBD4 00027080 */ sll $t6, $v0, 2 +/* 063E28 800BBBD8 3C01800D */ lui $at, %hi(D_800D6980) +/* 063E2C 800BBBDC 002E0821 */ addu $at, $at, $t6 +/* 063E30 800BBBE0 8C2E6980 */ lw $t6, %lo(D_800D6980)($at) +/* 063E34 800BBBE4 01C00008 */ jr $t6 +/* 063E38 800BBBE8 00000000 */ nop +/* 063E3C 800BBBEC 3C01800F */ lui $at, %hi(D_800ED4EC) # $at, 0x800f +/* 063E40 800BBBF0 1000001A */ b .L800BBC5C_ovl1 +/* 063E44 800BBBF4 AC20D4EC */ sw $zero, %lo(D_800ED4EC)($at) +/* 063E48 800BBBF8 3C0F8023 */ lui $t7, %hi(D_8022B7C0) # $t7, 0x8023 +/* 063E4C 800BBBFC 25EFB7C0 */ addiu $t7, %lo(D_8022B7C0) # addiu $t7, $t7, -0x4840 +/* 063E50 800BBC00 3C01800F */ lui $at, %hi(D_800ED4E0) # $at, 0x800f +/* 063E54 800BBC04 0C02EF1B */ jal func_800BBC6C_ovl1 +/* 063E58 800BBC08 AC2FD4E0 */ sw $t7, %lo(D_800ED4E0)($at) +/* 063E5C 800BBC0C 0C02ED10 */ jal func_800BB440_ovl1 +/* 063E60 800BBC10 00000000 */ nop +/* 063E64 800BBC14 10000012 */ b .L800BBC60_ovl1 +/* 063E68 800BBC18 8FBF0014 */ lw $ra, 0x14($sp) +/* 063E6C 800BBC1C 3C188023 */ lui $t8, %hi(D_8022AED8) # $t8, 0x8023 +/* 063E70 800BBC20 2718AED8 */ addiu $t8, %lo(D_8022AED8) # addiu $t8, $t8, -0x5128 +/* 063E74 800BBC24 3C01800F */ lui $at, %hi(D_800ED4E0) # $at, 0x800f +/* 063E78 800BBC28 0C02EF1B */ jal func_800BBC6C_ovl1 +/* 063E7C 800BBC2C AC38D4E0 */ sw $t8, %lo(D_800ED4E0)($at) +/* 063E80 800BBC30 0C02ED10 */ jal func_800BB440_ovl1 +/* 063E84 800BBC34 00000000 */ nop +/* 063E88 800BBC38 10000009 */ b .L800BBC60_ovl1 +/* 063E8C 800BBC3C 8FBF0014 */ lw $ra, 0x14($sp) +/* 063E90 800BBC40 3C198023 */ lui $t9, %hi(D_8022B428) # $t9, 0x8023 +/* 063E94 800BBC44 2739B428 */ addiu $t9, %lo(D_8022B428) # addiu $t9, $t9, -0x4bd8 +/* 063E98 800BBC48 3C01800F */ lui $at, %hi(D_800ED4E0) # $at, 0x800f +/* 063E9C 800BBC4C 0C02EF1B */ jal func_800BBC6C_ovl1 +/* 063EA0 800BBC50 AC39D4E0 */ sw $t9, %lo(D_800ED4E0)($at) +/* 063EA4 800BBC54 0C02ED10 */ jal func_800BB440_ovl1 +/* 063EA8 800BBC58 00000000 */ nop +.L800BBC5C_ovl1: +/* 063EAC 800BBC5C 8FBF0014 */ lw $ra, 0x14($sp) +.L800BBC60_ovl1: +/* 063EB0 800BBC60 27BD0018 */ addiu $sp, $sp, 0x18 +/* 063EB4 800BBC64 03E00008 */ jr $ra +/* 063EB8 800BBC68 00000000 */ nop + +glabel func_800BBC6C +/* 063EBC 800BBC6C 3C01800F */ lui $at, %hi(D_800ED4EC) # $at, 0x800f +/* 063EC0 800BBC70 AC20D4EC */ sw $zero, %lo(D_800ED4EC)($at) +/* 063EC4 800BBC74 3C0E800F */ lui $t6, %hi(D_800ED4E0) # $t6, 0x800f +/* 063EC8 800BBC78 8DCED4E0 */ lw $t6, %lo(D_800ED4E0)($t6) +/* 063ECC 800BBC7C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 063ED0 800BBC80 3C01800F */ lui $at, %hi(D_800ED4F4) # $at, 0x800f +/* 063ED4 800BBC84 AFBF0014 */ sw $ra, 0x14($sp) +/* 063ED8 800BBC88 AC20D4F4 */ sw $zero, %lo(D_800ED4F4)($at) +/* 063EDC 800BBC8C 0C0062A5 */ jal func_80018A94_ovl1 +/* 063EE0 800BBC90 8DC40000 */ lw $a0, ($t6) +/* 063EE4 800BBC94 3C05800F */ lui $a1, %hi(D_800ED4E0) # $a1, 0x800f +/* 063EE8 800BBC98 8CA5D4E0 */ lw $a1, %lo(D_800ED4E0)($a1) +/* 063EEC 800BBC9C 3C01800C */ lui $at, %hi(D_800BE4EC) # $at, 0x800c +/* 063EF0 800BBCA0 3C02800C */ lui $v0, %hi(D_800BE52C) # $v0, 0x800c +/* 063EF4 800BBCA4 8CAF0004 */ lw $t7, 4($a1) +/* 063EF8 800BBCA8 2442E52C */ addiu $v0, %lo(D_800BE52C) # addiu $v0, $v0, -0x1ad4 +/* 063EFC 800BBCAC 3C03800C */ lui $v1, %hi(D_800BE530) # $v1, 0x800c +/* 063F00 800BBCB0 AC2FE4EC */ sw $t7, %lo(D_800BE4EC)($at) +/* 063F04 800BBCB4 8CB80008 */ lw $t8, 8($a1) +/* 063F08 800BBCB8 3C01800C */ lui $at, %hi(D_800BE500) # $at, 0x800c +/* 063F0C 800BBCBC 2463E530 */ addiu $v1, %lo(D_800BE530) # addiu $v1, $v1, -0x1ad0 +/* 063F10 800BBCC0 AC580000 */ sw $t8, ($v0) +/* 063F14 800BBCC4 AC38E500 */ sw $t8, %lo(D_800BE500)($at) +/* 063F18 800BBCC8 8CA8000C */ lw $t0, 0xc($a1) +/* 063F1C 800BBCCC 3C01800C */ lui $at, %hi(D_800BE504) # $at, 0x800c +/* 063F20 800BBCD0 3C06800C */ lui $a2, %hi(D_800BE534) # $a2, 0x800c +/* 063F24 800BBCD4 AC680000 */ sw $t0, ($v1) +/* 063F28 800BBCD8 AC28E504 */ sw $t0, %lo(D_800BE504)($at) +/* 063F2C 800BBCDC 8CAA0010 */ lw $t2, 0x10($a1) +/* 063F30 800BBCE0 24C6E534 */ addiu $a2, %lo(D_800BE534) # addiu $a2, $a2, -0x1acc +/* 063F34 800BBCE4 3C01800C */ lui $at, %hi(D_800BE508) # $at, 0x800c +/* 063F38 800BBCE8 ACCA0000 */ sw $t2, ($a2) +/* 063F3C 800BBCEC AC2AE508 */ sw $t2, %lo(D_800BE508)($at) +/* 063F40 800BBCF0 8CAC0014 */ lw $t4, 0x14($a1) +/* 063F44 800BBCF4 3C07800C */ lui $a3, %hi(D_800BE538) # $a3, 0x800c +/* 063F48 800BBCF8 24E7E538 */ addiu $a3, %lo(D_800BE538) # addiu $a3, $a3, -0x1ac8 +/* 063F4C 800BBCFC 3C01800C */ lui $at, %hi(D_800BE50C) # $at, 0x800c +/* 063F50 800BBD00 ACEC0000 */ sw $t4, ($a3) +/* 063F54 800BBD04 AC2CE50C */ sw $t4, %lo(D_800BE50C)($at) +/* 063F58 800BBD08 8CAE001C */ lw $t6, 0x1c($a1) +/* 063F5C 800BBD0C 3C01800C */ lui $at, %hi(D_800BE4FC) # $at, 0x800c +/* 063F60 800BBD10 AC2EE4FC */ sw $t6, %lo(D_800BE4FC)($at) +/* 063F64 800BBD14 8CAF0020 */ lw $t7, 0x20($a1) +/* 063F68 800BBD18 3C01800D */ lui $at, %hi(D_800D6E4C) # $at, 0x800d +/* 063F6C 800BBD1C AC2F6E4C */ sw $t7, %lo(D_800D6E4C)($at) +/* 063F70 800BBD20 C4A40024 */ lwc1 $f4, 0x24($a1) +/* 063F74 800BBD24 3C01800D */ lui $at, %hi(D_800D6E50) # $at, 0x800d +/* 063F78 800BBD28 E4246E50 */ swc1 $f4, %lo(D_800D6E50)($at) +/* 063F7C 800BBD2C 8CB80028 */ lw $t8, 0x28($a1) +/* 063F80 800BBD30 3C01800D */ lui $at, %hi(D_800D6E54) # $at, 0x800d +/* 063F84 800BBD34 AC386E54 */ sw $t8, %lo(D_800D6E54)($at) +/* 063F88 800BBD38 8CB9002C */ lw $t9, 0x2c($a1) +/* 063F8C 800BBD3C 3C01800D */ lui $at, %hi(D_800D6E60) # $at, 0x800d +/* 063F90 800BBD40 AC396E60 */ sw $t9, %lo(D_800D6E60)($at) +/* 063F94 800BBD44 8CA80030 */ lw $t0, 0x30($a1) +/* 063F98 800BBD48 3C01800D */ lui $at, %hi(D_800D6E64) # $at, 0x800d +/* 063F9C 800BBD4C AC286E64 */ sw $t0, %lo(D_800D6E64)($at) +/* 063FA0 800BBD50 8CA90034 */ lw $t1, 0x34($a1) +/* 063FA4 800BBD54 3C01800D */ lui $at, %hi(D_800D6BB0) # $at, 0x800d +/* 063FA8 800BBD58 AC296BB0 */ sw $t1, %lo(D_800D6BB0)($at) +/* 063FAC 800BBD5C 0C006266 */ jal func_80018998_ovl1 +/* 063FB0 800BBD60 8CA40038 */ lw $a0, 0x38($a1) +/* 063FB4 800BBD64 3C05800F */ lui $a1, %hi(D_800ED4E0) # $a1, 0x800f +/* 063FB8 800BBD68 8CA5D4E0 */ lw $a1, %lo(D_800ED4E0)($a1) +/* 063FBC 800BBD6C 3C02800D */ lui $v0, %hi(D_800D6E20) # $v0, 0x800d +/* 063FC0 800BBD70 3C04800D */ lui $a0, %hi(D_800D6E30) # $a0, 0x800d +/* 063FC4 800BBD74 24846E30 */ addiu $a0, %lo(D_800D6E30) # addiu $a0, $a0, 0x6e30 +/* 063FC8 800BBD78 24426E20 */ addiu $v0, %lo(D_800D6E20) # addiu $v0, $v0, 0x6e20 +/* 063FCC 800BBD7C 00A01825 */ move $v1, $a1 +.L800BBD80_ovl1: +/* 063FD0 800BBD80 906A0040 */ lbu $t2, 0x40($v1) +/* 063FD4 800BBD84 24420004 */ addiu $v0, $v0, 4 +/* 063FD8 800BBD88 24630004 */ addiu $v1, $v1, 4 +/* 063FDC 800BBD8C A04AFFFC */ sb $t2, -4($v0) +/* 063FE0 800BBD90 906B003D */ lbu $t3, 0x3d($v1) +/* 063FE4 800BBD94 A04BFFFD */ sb $t3, -3($v0) +/* 063FE8 800BBD98 906C003E */ lbu $t4, 0x3e($v1) +/* 063FEC 800BBD9C A04CFFFE */ sb $t4, -2($v0) +/* 063FF0 800BBDA0 906D003F */ lbu $t5, 0x3f($v1) +/* 063FF4 800BBDA4 1444FFF6 */ bne $v0, $a0, .L800BBD80_ovl1 +/* 063FF8 800BBDA8 A04DFFFF */ sb $t5, -1($v0) +/* 063FFC 800BBDAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 064000 800BBDB0 8CAE003C */ lw $t6, 0x3c($a1) +/* 064004 800BBDB4 3C01800D */ lui $at, %hi(D_800D6F38) +/* 064008 800BBDB8 27BD0018 */ addiu $sp, $sp, 0x18 +/* 06400C 800BBDBC 03E00008 */ jr $ra +/* 064010 800BBDC0 AC2E6F38 */ sw $t6, %lo(D_800D6F38)($at) + +glabel func_800BBDC4 +/* 064014 800BBDC4 3C06800F */ lui $a2, %hi(D_800ED4EC) # $a2, 0x800f +/* 064018 800BBDC8 24C6D4EC */ addiu $a2, %lo(D_800ED4EC) # addiu $a2, $a2, -0x2b14 +/* 06401C 800BBDCC 8CC30000 */ lw $v1, ($a2) +/* 064020 800BBDD0 3C098005 */ lui $t1, %hi(D_80048F20) # $t1, 0x8005 +/* 064024 800BBDD4 25298F20 */ addiu $t1, %lo(D_80048F20) # addiu $t1, $t1, -0x70e0 +/* 064028 800BBDD8 A5200004 */ sh $zero, 4($t1) +/* 06402C 800BBDDC A5200002 */ sh $zero, 2($t1) +/* 064030 800BBDE0 04610007 */ bgez $v1, .L800BBE00_ovl1 +/* 064034 800BBDE4 A5200000 */ sh $zero, ($t1) +/* 064038 800BBDE8 240E0002 */ li $t6, 2 +/* 06403C 800BBDEC 3C01800C */ lui $at, %hi(D_800BE4F8) # $at, 0x800c +/* 064040 800BBDF0 AC2EE4F8 */ sw $t6, %lo(D_800BE4F8)($at) +/* 064044 800BBDF4 3C01800D */ lui $at, %hi(D_800D6F38) +/* 064048 800BBDF8 03E00008 */ jr $ra +/* 06404C 800BBDFC AC206F38 */ sw $zero, %lo(D_800D6F38)($at) + +.L800BBE00_ovl1: +/* 064050 800BBE00 3C07800F */ lui $a3, %hi(D_800ED4F4) # $a3, 0x800f +/* 064054 800BBE04 24E7D4F4 */ addiu $a3, %lo(D_800ED4F4) # addiu $a3, $a3, -0x2b0c +/* 064058 800BBE08 8CEF0000 */ lw $t7, ($a3) +/* 06405C 800BBE0C 3C04800F */ lui $a0, %hi(D_800ED4E0) # $a0, 0x800f +/* 064060 800BBE10 25F8FFFF */ addiu $t8, $t7, -1 +/* 064064 800BBE14 1F000021 */ bgtz $t8, .L800BBE9C_ovl1 +/* 064068 800BBE18 ACF80000 */ sw $t8, ($a3) +/* 06406C 800BBE1C 8C84D4E0 */ lw $a0, %lo(D_800ED4E0)($a0) +/* 064070 800BBE20 00035040 */ sll $t2, $v1, 1 +/* 064074 800BBE24 246C0001 */ addiu $t4, $v1, 1 +/* 064078 800BBE28 008A5821 */ addu $t3, $a0, $t2 +/* 06407C 800BBE2C 95650100 */ lhu $a1, 0x100($t3) +/* 064080 800BBE30 ACCC0000 */ sw $t4, ($a2) +/* 064084 800BBE34 258F0001 */ addiu $t7, $t4, 1 +/* 064088 800BBE38 30ADE000 */ andi $t5, $a1, 0xe000 +/* 06408C 800BBE3C 11A00002 */ beqz $t5, .L800BBE48_ovl1 +/* 064090 800BBE40 30B81C00 */ andi $t8, $a1, 0x1c00 +/* 064094 800BBE44 ACCF0000 */ sw $t7, ($a2) +.L800BBE48_ovl1: +/* 064098 800BBE48 13000004 */ beqz $t8, .L800BBE5C_ovl1 +/* 06409C 800BBE4C 30AB0380 */ andi $t3, $a1, 0x380 +/* 0640A0 800BBE50 8CD90000 */ lw $t9, ($a2) +/* 0640A4 800BBE54 272A0001 */ addiu $t2, $t9, 1 +/* 0640A8 800BBE58 ACCA0000 */ sw $t2, ($a2) +.L800BBE5C_ovl1: +/* 0640AC 800BBE5C 11600004 */ beqz $t3, .L800BBE70_ovl1 +/* 0640B0 800BBE60 2418FFFF */ li $t8, -1 +/* 0640B4 800BBE64 8CCC0000 */ lw $t4, ($a2) +/* 0640B8 800BBE68 258D0001 */ addiu $t5, $t4, 1 +/* 0640BC 800BBE6C ACCD0000 */ sw $t5, ($a2) +.L800BBE70_ovl1: +/* 0640C0 800BBE70 8CC30000 */ lw $v1, ($a2) +/* 0640C4 800BBE74 3401FFFF */ li $at, 65535 +/* 0640C8 800BBE78 00037040 */ sll $t6, $v1, 1 +/* 0640CC 800BBE7C 008E7821 */ addu $t7, $a0, $t6 +/* 0640D0 800BBE80 95E50100 */ lhu $a1, 0x100($t7) +/* 0640D4 800BBE84 54A10004 */ bnel $a1, $at, .L800BBE98_ovl1 +/* 0640D8 800BBE88 30B9007F */ andi $t9, $a1, 0x7f +/* 0640DC 800BBE8C 03E00008 */ jr $ra +/* 0640E0 800BBE90 ACD80000 */ sw $t8, ($a2) + +/* 0640E4 800BBE94 30B9007F */ andi $t9, $a1, 0x7f +.L800BBE98_ovl1: +/* 0640E8 800BBE98 ACF90000 */ sw $t9, ($a3) +.L800BBE9C_ovl1: +/* 0640EC 800BBE9C 3C0A800F */ lui $t2, %hi(D_800ED4E0) # $t2, 0x800f +/* 0640F0 800BBEA0 8D4AD4E0 */ lw $t2, %lo(D_800ED4E0)($t2) +/* 0640F4 800BBEA4 00035840 */ sll $t3, $v1, 1 +/* 0640F8 800BBEA8 00003025 */ move $a2, $zero +/* 0640FC 800BBEAC 014B2021 */ addu $a0, $t2, $t3 +/* 064100 800BBEB0 94850100 */ lhu $a1, 0x100($a0) +/* 064104 800BBEB4 00003825 */ move $a3, $zero +/* 064108 800BBEB8 00004025 */ move $t0, $zero +/* 06410C 800BBEBC 30AC8000 */ andi $t4, $a1, 0x8000 +/* 064110 800BBEC0 11800002 */ beqz $t4, .L800BBECC_ovl1 +/* 064114 800BBEC4 30AD4000 */ andi $t5, $a1, 0x4000 +/* 064118 800BBEC8 94880102 */ lhu $t0, 0x102($a0) +.L800BBECC_ovl1: +/* 06411C 800BBECC 11A00002 */ beqz $t5, .L800BBED8_ovl1 +/* 064120 800BBED0 30AE2000 */ andi $t6, $a1, 0x2000 +/* 064124 800BBED4 94870102 */ lhu $a3, 0x102($a0) +.L800BBED8_ovl1: +/* 064128 800BBED8 11C00002 */ beqz $t6, .L800BBEE4_ovl1 +/* 06412C 800BBEDC 30AF1000 */ andi $t7, $a1, 0x1000 +/* 064130 800BBEE0 94860102 */ lhu $a2, 0x102($a0) +.L800BBEE4_ovl1: +/* 064134 800BBEE4 11E00002 */ beqz $t7, .L800BBEF0_ovl1 +/* 064138 800BBEE8 30B80800 */ andi $t8, $a1, 0x800 +/* 06413C 800BBEEC 94880104 */ lhu $t0, 0x104($a0) +.L800BBEF0_ovl1: +/* 064140 800BBEF0 13000002 */ beqz $t8, .L800BBEFC_ovl1 +/* 064144 800BBEF4 30B90400 */ andi $t9, $a1, 0x400 +/* 064148 800BBEF8 94870104 */ lhu $a3, 0x104($a0) +.L800BBEFC_ovl1: +/* 06414C 800BBEFC 13200002 */ beqz $t9, .L800BBF08_ovl1 +/* 064150 800BBF00 30AA0200 */ andi $t2, $a1, 0x200 +/* 064154 800BBF04 94860104 */ lhu $a2, 0x104($a0) +.L800BBF08_ovl1: +/* 064158 800BBF08 11400002 */ beqz $t2, .L800BBF14_ovl1 +/* 06415C 800BBF0C 30AB0100 */ andi $t3, $a1, 0x100 +/* 064160 800BBF10 94880106 */ lhu $t0, 0x106($a0) +.L800BBF14_ovl1: +/* 064164 800BBF14 11600002 */ beqz $t3, .L800BBF20_ovl1 +/* 064168 800BBF18 30AC0080 */ andi $t4, $a1, 0x80 +/* 06416C 800BBF1C 94870106 */ lhu $a3, 0x106($a0) +.L800BBF20_ovl1: +/* 064170 800BBF20 11800002 */ beqz $t4, .L800BBF2C_ovl1 +/* 064174 800BBF24 01001025 */ move $v0, $t0 +/* 064178 800BBF28 94860106 */ lhu $a2, 0x106($a0) +.L800BBF2C_ovl1: +/* 06417C 800BBF2C 310D0080 */ andi $t5, $t0, 0x80 +/* 064180 800BBF30 A5280000 */ sh $t0, ($t1) +/* 064184 800BBF34 A5270002 */ sh $a3, 2($t1) +/* 064188 800BBF38 11A00003 */ beqz $t5, .L800BBF48_ovl1 +/* 06418C 800BBF3C A5260004 */ sh $a2, 4($t1) +/* 064190 800BBF40 240E0040 */ li $t6, 64 +/* 064194 800BBF44 A12E0009 */ sb $t6, 9($t1) +.L800BBF48_ovl1: +/* 064198 800BBF48 304F0040 */ andi $t7, $v0, 0x40 +/* 06419C 800BBF4C 11E00002 */ beqz $t7, .L800BBF58_ovl1 +/* 0641A0 800BBF50 2418FFC0 */ li $t8, -64 +/* 0641A4 800BBF54 A1380009 */ sb $t8, 9($t1) +.L800BBF58_ovl1: +/* 0641A8 800BBF58 03E00008 */ jr $ra +/* 0641AC 800BBF5C 00000000 */ nop + +glabel func_800BBF60 +/* 0641B0 800BBF60 3C0E800D */ lui $t6, %hi(D_800D6F3C) # $t6, 0x800d +/* 0641B4 800BBF64 8DCE6F3C */ lw $t6, %lo(D_800D6F3C)($t6) +/* 0641B8 800BBF68 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0641BC 800BBF6C AFBF0014 */ sw $ra, 0x14($sp) +/* 0641C0 800BBF70 2DC10007 */ sltiu $at, $t6, 7 +/* 0641C4 800BBF74 10200010 */ beqz $at, .L800BBFB8_ovl1 +/* 0641C8 800BBF78 000E7080 */ sll $t6, $t6, 2 +/* 0641CC 800BBF7C 3C01800D */ lui $at, %hi(D_800D699C) +/* 0641D0 800BBF80 002E0821 */ addu $at, $at, $t6 +/* 0641D4 800BBF84 8C2E699C */ lw $t6, %lo(D_800D699C)($at) +/* 0641D8 800BBF88 01C00008 */ jr $t6 +/* 0641DC 800BBF8C 00000000 */ nop +/* 0641E0 800BBF90 0C02EF71 */ jal func_800BBDC4_ovl1 +/* 0641E4 800BBF94 00000000 */ nop +/* 0641E8 800BBF98 10000008 */ b .L800BBFBC_ovl1 +/* 0641EC 800BBF9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0641F0 800BBFA0 0C02EF71 */ jal func_800BBDC4_ovl1 +/* 0641F4 800BBFA4 00000000 */ nop +/* 0641F8 800BBFA8 10000004 */ b .L800BBFBC_ovl1 +/* 0641FC 800BBFAC 8FBF0014 */ lw $ra, 0x14($sp) +/* 064200 800BBFB0 0C02EF71 */ jal func_800BBDC4_ovl1 +/* 064204 800BBFB4 00000000 */ nop +.L800BBFB8_ovl1: +/* 064208 800BBFB8 8FBF0014 */ lw $ra, 0x14($sp) +.L800BBFBC_ovl1: +/* 06420C 800BBFBC 27BD0018 */ addiu $sp, $sp, 0x18 +/* 064210 800BBFC0 03E00008 */ jr $ra +/* 064214 800BBFC4 00000000 */ nop + +/* 064218 800BBFC8 00000000 */ nop +/* 06421C 800BBFCC 00000000 */ nop +/* 064220 800BBFD0 00000000 */ nop +/* 064224 800BBFD4 00000000 */ nop +/* 064228 800BBFD8 00000000 */ nop +/* 06422C 800BBFDC 00000000 */ nop + diff --git a/data/misc/kirby.066630.2.c b/data/misc/kirby.066630.2.c index d84f169e..5992a602 100644 --- a/data/misc/kirby.066630.2.c +++ b/data/misc/kirby.066630.2.c @@ -33,21 +33,17 @@ u32 D_800D00FC = 0x00000127; u32 D_800D0100 = 0x000000D3; -u32 D_800D0104 = 0x800D8FD0; +u32 D_800D0104[] = { + 0x800D8FD0, + 0x800D9040, + 0x800D9E70, + 0x800DA298, + 0x800DB2C0, + 0x800DBDC8, + 0x800DC2B0, + 0x800DC538, +} -u32 D_800D0108 = 0x800D9040; - -u32 D_800D010C = 0x800D9E70; - -u32 D_800D0110 = 0x800DA298; - -u32 D_800D0114 = 0x800DB2C0; - -u32 D_800D0118 = 0x800DBDC8; - -u32 D_800D011C = 0x800DC2B0; - -u32 D_800D0120 = 0x800DC538; u32 D_800D0124 = 0x0000001C; @@ -97,21 +93,16 @@ u32 D_800D017C = 0x00000115; u32 D_800D0180 = 0x000000F0; -u32 D_800D0184 = 0x800C47D4; - -u32 D_800D0188 = 0x800C7824; - -u32 D_800D018C = 0x800C9090; - -u32 D_800D0190 = 0x800CAED0; - -u32 D_800D0194 = 0x800CC794; - -u32 D_800D0198 = 0x800CCCB4; - -u32 D_800D019C = 0x800CE220; - -u32 D_800D01A0 = 0x800D00A4; +u32 D_800D0184[8] = { + D_800C47D4, + D_800C7824, + D_800C9090, + D_800CAED0, + D_800CC794, + D_800CCCB4, + D_800CE220, + D_800D00A4, +} extern char D_800D5E00[]; struct StageArea D_800D01A4[0xD5] = { diff --git a/include/D_8004A7C4.h b/include/D_8004A7C4.h index f3b53bbb..eef2f94b 100644 --- a/include/D_8004A7C4.h +++ b/include/D_8004A7C4.h @@ -1,13 +1,40 @@ #ifndef D_H #define D_H +#include "types.h" typedef union { u32 asU32; u16 asU16[2]; } hiLo; // TODO: confirm that this is actually what unk0 is +struct UnkStruct8004A7C4_3C { + u32 unk0; + u32 unk4; + u32 unk8; + u32 unkC; + + u32 unk10; + u32 unk14; + u32 unk18; + + Vector unk1C; + + u32 unk28; + u32 unk2C; + + Vector unk30; + + u32 unk3C; + + Vector unk40; + + u32 unk4C; +}; + struct UnkStruct8004A7C4 { u32 unk0; + u8 filler[0x38]; + struct UnkStruct8004A7C4_3C *unk3C; }; extern struct UnkStruct8004A7C4 *D_8004A7C4; #endif diff --git a/include/banks.h b/include/banks.h index 8280a756..664c00e0 100644 --- a/include/banks.h +++ b/include/banks.h @@ -3,15 +3,16 @@ #include +// technically everything in this struct is a void *, but it's so much easier this way struct BankHeader { - void *geoBlockAddr; - void *geoROMOffset; - void *imageBlockAddr; - void *imageROMOffset; - void *animBlockAddr; - void *animROMOffset; - void *miscBlockAddr; - void *miscROMOffset; + /* 0x0 */ u32 *geoBlockTable; + /* 0x4 */ u32 *geoROMOffset; + /* 0x8 */ u32 *imageBlockTable; + /* 0xC */ u32 *imageROMOffset; + /* 0x10 */ u32 *animBlockTable; + /* 0x14 */ u32 *animROMOffset; + /* 0x18 */ u32 *miscBlockTable; + /* 0x1C */ u32 *miscROMOffset; }; diff --git a/src/ovl0/main.c b/src/ovl0/main.c index 5ec9ab12..91d4be09 100644 --- a/src/ovl0/main.c +++ b/src/ovl0/main.c @@ -133,7 +133,7 @@ void thread5_main(void *arg0) { D_80048138[0] = STACK_TOP_MAGIC; osStartThread(&D_80047F50); osRecvMesg(&D_80048A08, 0, 1); func_800076D0(); - load_overlay(&mainSegOverlay); + dma_overlay_load(&mainSegOverlay); func_800A377C(0); } diff --git a/src/ovl0/ovl0_1.c b/src/ovl0/ovl0_1.c index 3e26c725..5ca426e2 100644 --- a/src/ovl0/ovl0_1.c +++ b/src/ovl0/ovl0_1.c @@ -58,7 +58,7 @@ GLOBAL_ASM("asm/non_matchings/ovl0_1/func_80002BD0.s") extern OSPiHandle *D_80048CF0; #include "main.h" -void load_overlay(Overlay *ovl) { +void dma_overlay_load(Overlay *ovl) { if ((s32) ovl->textEnd - (s32) ovl->textStart != 0) { osInvalICache((s32) ovl->textStart, (s32) ovl->textEnd - (s32) ovl->textStart); osInvalDCache((s32) ovl->textStart, (s32) ovl->textEnd - (s32) ovl->textStart); @@ -75,8 +75,8 @@ void load_overlay(Overlay *ovl) { } } -void func_80002E48(void *arg0, void *arg1, u32 arg2) { - dma_copy(D_80048CF0, arg0, arg1, arg2, 0); +void func_80002E48(void *physAddr, void *vAddr, u32 size) { + dma_copy(D_80048CF0, physAddr, vAddr, size, 0); } void func_80002E84(void *arg0, void *arg1, u32 arg2) { diff --git a/src/ovl1/ovl1_1.c b/src/ovl1/ovl1_1.c index 7ab97d3d..7f25b972 100644 --- a/src/ovl1/ovl1_1.c +++ b/src/ovl1/ovl1_1.c @@ -3,6 +3,8 @@ #include "D_8004A7C4.h" #include "types.h" +void load_overlay(u32 ovl); + #ifdef MIPS_TO_C //generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 void func_800A28C0(void *arg0) { @@ -257,7 +259,7 @@ void *func_800A3058(void) { temp_v0 = D_80000300; if (temp_v0 != 1) { if (temp_v0 != 2) { - func_800A6B20_ovl1(2); + load_overlay(2); func_80151CEC_ovl1(5); } } @@ -272,7 +274,7 @@ loop_4: if (temp_v0_2 != &D_80048EA0) { goto loop_4; } - func_800A6B20_ovl1(2); + load_overlay(2); phi_return = func_80151CEC_ovl1(4); } return phi_return; @@ -281,28 +283,18 @@ loop_4: GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A3058.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 void func_800A30E8(void) { - func_800A6B20_ovl1(0x13); - func_80300000_ovl20(); - func_800A6B20_ovl1(5); - func_800A6B20_ovl1(6); - func_800A6B20_ovl1(0x11); + load_overlay(19); + tamper_check_ovl20(); + load_overlay(5); + load_overlay(6); + load_overlay(17); } -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A30E8.s") -#endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 void func_800A3128(void) { - func_800A6B20_ovl1(2); - func_800A6B20_ovl1(3); + load_overlay(2); + load_overlay(3); } -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A3128.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 @@ -315,17 +307,13 @@ void func_800A3150(s32 arg0) { func_800A2CE4_ovl1(); func_800A2D5C_ovl1(); func_800A2D68_ovl1(); - func_800A6B20_ovl1(0x12); + load_overlay(0x12); func_800BBBA0_ovl1(); -loop_1: - func_800A30E8_ovl1(); - func_800A2E98_ovl1(); - func_800F6AD4_ovl1(1); - if (D_800D6F38 != 0) { - if (D_800BE4F8 != 0) { - func_80020C88_ovl1(); - goto loop_1; - } + while (D_800D6F38 != 0 && D_800BE4F8 != 0) { + func_800A30E8_ovl1(); + func_800A2E98_ovl1(); + func_800F6AD4_ovl1(1); + func_80020C88_ovl1(); } D_800D6B88 = D_800D6B8C; } @@ -359,7 +347,7 @@ loop_2: func_800A74D8_ovl1(); func_800B9F90_ovl1(((&D_800BE400 + (D_800BE504 * 6)) + phi_s0)->unk2, D_800D6B88); func_800B9C50_ovl1(D_800D6B88); - func_800A6B20_ovl1(4); + load_overlay(4); func_80154D60_ovl1(((&D_800BE400 + (D_800BE504 * 6)) + phi_s0)->unk2, 2); } } @@ -392,7 +380,7 @@ s32 func_800A336C(void) { if (temp_ret == 0) { func_800B9F90_ovl1(*(&D_800BE414 + (D_800BE500 * 4)), D_800D6B88); func_800B9C50_ovl1(D_800D6B88); - func_800A6B20_ovl1(4); + load_overlay(4); phi_return = func_80154D60_ovl1(*(&D_800BE414 + (D_800BE500 * 4)), 2); } } @@ -408,13 +396,13 @@ GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A336C.s") void func_800A3408(void) { if (1 == D_800D6B90) { if (1 == D_800D6B94) { - func_800A6B20_ovl1(0x12); + load_overlay(0x12); if (func_80227308_ovl1(0) != 0) { D_800BE4F4 = D_800BE4F0; loop_4: D_800BE4F0 = 0xE; func_800A3150_ovl1(4); - func_800A6B20_ovl1(0x12); + load_overlay(0x12); if (func_80227308_ovl1(1) == 1) { goto loop_4; } @@ -521,7 +509,7 @@ loop_1: temp_t6->unk4 = temp_t7->unk4; phi_s0 = &sp2C; loop_3: - func_800A6B20_ovl1(4); + load_overlay(4); temp_s0 = phi_s0 + 4; if (func_80154D60_ovl1(*phi_s0, 0x15) != 3) { phi_s0 = temp_s0; @@ -2239,11 +2227,11 @@ GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_1/func_800A6B18.s") #endif extern void *D_800BE8A0[]; -void func_800A6B20(u32 arg0) { +void load_overlay(u32 arg0) { while (arg0 >= 0x14) { // ...were they going to do anything to remedy this issue? } - load_overlay(D_800BE8A0[arg0]); + dma_overlay_load(D_800BE8A0[arg0]); } #ifdef MIPS_TO_C diff --git a/src/ovl1/ovl1_2.c b/src/ovl1/ovl1_2.c index 75ad6346..55694192 100644 --- a/src/ovl1/ovl1_2.c +++ b/src/ovl1/ovl1_2.c @@ -35,10 +35,10 @@ void *func_800A6E64(void) { phi_a1 = &D_800D7A08; phi_a2 = &D_800BF8F8; loop_1: - phi_v1->unk0 = 0; - phi_a0->unk0 = 0; - phi_a1->unk0 = 0; - *phi_a2->unk0 = 0; + phi_v1[0] = 0; + phi_a0[0] = 0; + phi_a1[0] = 0; + *phi_a2[0] = 0; phi_a1->unk4 = 0; phi_a0->unk4 = 0; phi_v1->unk4 = 0; @@ -393,14 +393,10 @@ GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7704.s") #ifdef MIPS_TO_C //generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 -? func_800A7740(s32 arg0) { - if (arg0 < 0) { -block_2: +s32 func_800A7740(u32 arg0) { + if (arg0 < 0 || arg0 >= D_800D6B4C) { return -1; } - if ((u32) arg0 >= (u32) D_800D6B4C) { - goto block_2; - } return func_800A7704_ovl1((arg0 * 0x18) + &D_800C0534, arg0); } #else @@ -654,8 +650,8 @@ GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_2/func_800A7E7C.s") #ifdef MIPS_TO_C //generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 void *func_800A7EB4(void) { - D_800D6FB4->unk44 = (s32) (D_800D6FB4->unk44 | 0xFFFF0000); - D_800D6FB8->unk44 = (s32) (D_800D6FB8->unk44 | 0xFFFF0000); + D_800D6FB4->unk44 |= 0xFFFF0000; + D_800D6FB8->unk44 |= 0xFFFF0000; return D_800D6FB4; } #else diff --git a/src/ovl1/ovl1_3.c b/src/ovl1/ovl1_3.c index d49e7cdb..bab7f88a 100644 --- a/src/ovl1/ovl1_3.c +++ b/src/ovl1/ovl1_3.c @@ -1,5 +1,6 @@ #include #include +#include "D_8004A7C4.h" struct UnkWhat { u32 unk0; @@ -10,7 +11,6 @@ struct UnkWhat { }; extern f32 D_800D5DD8; extern u32 D_800E02D0[]; -extern u32 *D_8004A7C4; extern u32 D_800DF4D0[]; extern struct UnkWhat D_800D00C4[][1]; @@ -23,7 +23,7 @@ void *func_800A82C0(void) { D_800D7BB4 = temp_t8; D_800D7BB0 = temp_t8; D_800D7BB8 = (s32) (D_8004A408.unk8 - temp_t8); - *(void *)0x800D7C10 = 0x80400000; + D_800D7C10 = 0x80400000; return &D_800D7BB4; } #else @@ -572,15 +572,15 @@ GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8B0C.s") #ifdef MIPS_TO_C // generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 s32 func_800A8BAC(u32 arg0) { - void *sp1C; + u32 *sp1C; s32 sp18; s32 temp_a2; s32 temp_a3; - s32 temp_t7; - void *temp_v1; + u32 *temp_v1; + u32 temp_t6; - temp_t7 = (arg0 >> 0x10) * 4; - temp_v1 = temp_t7 + &D_800D0104; + temp_t6 = arg0 >> 0x10; + temp_v1 = &D_800D0104[temp_t6]; temp_a3 = arg0 & 0xFFFF; temp_a3 = temp_a3 * 4; temp_a2 = *(*temp_v1 + temp_a3); @@ -593,7 +593,7 @@ s32 func_800A8BAC(u32 arg0) { sp18 = temp_a3; *(*temp_v1 + temp_a3) = func_800A8B0C_ovl1(3, temp_a2, temp_a3); } - return *(*(temp_t7 + &D_800D0104) + (temp_a3 * 4)); + return *(D_800D0104[temp_t6] + (temp_a3 * 4)); } #else GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A8BAC.s") @@ -887,7 +887,7 @@ loop_6: phi_a2 = (void *)0x800D6E78; if ((void *)0x800D6E78->unk8 != 0) { arg0 = temp_a3; - func_800A8D64_ovl1((void *)0x800D6E78->unk8, 3, (void *)0x800D6E78, temp_a3); + func_800A8D64_ovl1(D_800D6E78->unk8, 3, D_800D6E78, temp_a3); phi_a3 = arg0; phi_a2 = &D_800D6E78; } @@ -1161,30 +1161,24 @@ void *func_800A9A2C(s32 arg0) { GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9A2C.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 -s32 func_800A9AA8(u32 arg0, s32 arg1) { - s32 sp24; - s32 sp20; - void *sp1C; - s32 sp18; - s32 temp_a2; +#include "banks.h" +extern struct BankHeader *D_800D0184[]; +#ifdef NON_MATCHING +// AAAAAAAAAAA just match already! +s32 func_800A9AA8(u32 bankIndex, u32 arg1) { + u32 *sp18; s32 temp_a3; - s32 temp_v0_2; - void *temp_v0; - void *temp_v1; + s32 temp_v0; + // struct BankHeader *header; + u32 *temp_v1; - temp_v0 = ((arg0 >> 0x10) * 4) + 0x800D0000; - temp_a2 = arg0 & 0xFFFF; - temp_v1 = temp_v0->unk184->unk18 + (temp_a2 * 4); - sp18 = temp_v0->unk184->unk1C; - temp_a3 = ((temp_v1->unk4 - temp_v1->unk0) + 3) & 0xFFFFFC; - sp24 = temp_a3; - sp1C = temp_v1; - temp_v0_2 = func_800A8358_ovl1(temp_a3 | arg1, temp_a2, temp_a3); - sp20 = temp_v0_2; - func_80002E48_ovl1(temp_v1->unk0 + sp18, temp_v0_2, temp_a3 & 0xFFFFFC, temp_a3); - return temp_v0_2; + // header = D_800D0184[bankIndex >> 0x10]; + temp_v1 = &D_800D0184[bankIndex >> 0x10]->miscBlockTable[bankIndex & 0xFFFF]; + sp18 = D_800D0184[bankIndex >> 0x10]->miscROMOffset; + temp_a3 = ((temp_v1[1] - temp_v1[0]) + 3) & 0xFFFFFC; + temp_v0 = func_800A8358(temp_a3 | arg1); + func_80002E48_ovl1(temp_v1[0] + sp18, temp_v0, temp_a3 & 0xFFFFFC); + return temp_v0; } #else GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800A9AA8.s") @@ -1447,23 +1441,26 @@ void func_800AA154(s32 arg0) { GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA154.s") #endif -#ifdef MIPS_TO_C -//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 -void *func_800AA174(void) { - D_8004A7C4->unk3C->unk1C = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk25D0; - D_8004A7C4->unk3C->unk20 = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk2790; - D_8004A7C4->unk3C->unk24 = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk2950; - D_8004A7C4->unk3C->unk30 = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk4010; - D_8004A7C4->unk3C->unk34 = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk41D0; - D_8004A7C4->unk3C->unk38 = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk4390; - D_8004A7C4->unk3C->unk40 = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk4550; - D_8004A7C4->unk3C->unk44 = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk4710; - D_8004A7C4->unk3C->unk48 = (f32) ((D_8004A7C4->unk0 * 4) + 0x800E0000)->unk48D0; - return D_8004A7C4; + +#include "ovl18/ovl18_1.h" +#include "ovl18/ovl18_3.h" +#include "ovl18/ovl18_5.h" +extern f32 D_800E4390[]; +extern f32 D_800E4010[]; + +void func_800AA174(void) { + D_8004A7C4->unk3C->unk1C.x = D_800E25D0[D_8004A7C4->unk0]; + D_8004A7C4->unk3C->unk1C.y = D_800E2790[D_8004A7C4->unk0]; + D_8004A7C4->unk3C->unk1C.z = D_800E2950[D_8004A7C4->unk0]; + + D_8004A7C4->unk3C->unk30.x = D_800E4010[D_8004A7C4->unk0]; + D_8004A7C4->unk3C->unk30.y = D_800E41D0[D_8004A7C4->unk0]; + D_8004A7C4->unk3C->unk30.z = D_800E4390[D_8004A7C4->unk0]; + + D_8004A7C4->unk3C->unk40.x = D_800E4550[D_8004A7C4->unk0]; + D_8004A7C4->unk3C->unk40.y = D_800E4710[D_8004A7C4->unk0]; + D_8004A7C4->unk3C->unk40.z = D_800E48D0[D_8004A7C4->unk0]; } -#else -GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AA174.s") -#endif #ifdef MIPS_TO_C //generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 @@ -2056,18 +2053,10 @@ GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AB120.s") #ifdef MIPS_TO_C //generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 void func_800AB174(void *arg0) { - void *temp_a2; - void *temp_v1; + gSPSegment(gDisplayListHeads[0]++, 0x04, D_800DF4D0[*arg0]); + gSPSegment(gDisplayListHeads[1]++, 0x04, D_800DF4D0[*arg0]); - temp_v1 = gDisplayListHeads.unk0; - gDisplayListHeads.unk0 = (void *) (temp_v1 + 8); - temp_v1->unk0 = 0xDB060010; - temp_v1->unk4 = (s32) *(&D_800DF4D0 + (*arg0 * 4)); - temp_a2 = gDisplayListHeads.unk4; - gDisplayListHeads.unk4 = (void *) (temp_a2 + 8); - temp_a2->unk0 = 0xDB060010; - temp_a2->unk4 = (s32) *(&D_800DF4D0 + (*arg0 * 4)); - func_80014768_ovl1(temp_a2, &gDisplayListHeads); + func_80014768_ovl1(gDisplayListHeads[0], gDisplayListHeads[1]); } #else GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_3/func_800AB174.s") diff --git a/src/ovl1/save_file.c b/src/ovl1/save_file.c index fc724a84..58bd391b 100644 --- a/src/ovl1/save_file.c +++ b/src/ovl1/save_file.c @@ -302,7 +302,7 @@ GLOBAL_ASM("asm/non_matchings/ovl1/ovl1_9/func_800B8C08.s") #endif extern void calc_file_checksum(u32 fileNum); -extern u16 D_800D5150[]; +extern u8 D_800D5150[]; // TODO: get correct type for this #ifdef MIPS_TO_C void init_save_file_maybe(u32 fileNum) { s32 i; @@ -313,8 +313,8 @@ void init_save_file_maybe(u32 fileNum) { gSaveBuffer1.files[fileNum].data8 = 0; gSaveBuffer1.files[fileNum].cutscenesWatched = 1; gSaveBuffer1.files[fileNum].percentComplete = 0; - gSaveBuffer1.files[fileNum].data11 = 1; - gSaveBuffer1.files[fileNum].data12 = 0; + gSaveBuffer1.files[fileNum].soundSetting = 1; + gSaveBuffer1.files[fileNum].hudDisplay = 0; gSaveBuffer1.files[fileNum].data13 = 0; gSaveBuffer1.files[fileNum].data14 = 0; gSaveBuffer1.files[fileNum].data15 = 0; diff --git a/src/ovl1/save_file.h b/src/ovl1/save_file.h index b2a3c952..3763e4aa 100644 --- a/src/ovl1/save_file.h +++ b/src/ovl1/save_file.h @@ -4,8 +4,8 @@ typedef struct { /* 0x8; */ u32 data8; /* 0xC; */ u32 cutscenesWatched; /* 0x10 */ u8 percentComplete; - u8 data11; - u8 data12; + u8 soundSetting; + u8 hudDisplay; u8 data13; /* 0x14 */ u8 data14; diff --git a/src/ovl18/ovl18_5.c b/src/ovl18/ovl18_5.c index 17d7dd53..cc51f523 100644 --- a/src/ovl18/ovl18_5.c +++ b/src/ovl18/ovl18_5.c @@ -2,6 +2,7 @@ #include #include "D_8004A7C4.h" #include "ovl18_1.h" +#include "types.h" #include "ovl18_3.h" #include "ovl18_5.h" @@ -73,13 +74,24 @@ void func_802248D0_ovl18(s32 arg0) { func_800AFA14_ovl18(); } +extern s32 D_8022A4E4; +// regalloc moment #ifdef MIPS_TO_C -//generated by mips_to_c commit e0e006e8858ba357d1dcb4dc64f038b7df278aa6 void func_802249D8_ovl18(s32 arg0) { - s32 sp28; + struct { + s32 unk0; + s32 unk4; + s32 unk8; + s32 unkC; + s32 unk10; + s32 unk14; + s32 unk18; + s32 unk1C; + s32 unk20; + } sp28; if (D_800E9C60[D_8004A7C4->unk0] == 1) { - func_80111550_ovl18(D_8004A7C4->unk0); + func_80111550_ovl18(D_8004A7C4); func_80111ECC_ovl18(func_80111C88_ovl18(&D_8022A4E4, D_8004A7C4->unk0)); if (func_80110B00_ovl18(&sp28) == 0) { if (func_80110FD4_ovl18(&sp28) == 0) { @@ -301,10 +313,9 @@ void func_80225650_ovl18(s32 arg0) { func_800AFA14_ovl18(); } -// regalloc moment #ifdef NON_MATCHING void func_80225724_ovl18(s32 arg0) { - if (D_800E9720[D_8004A7C4->unk0] == 0) { + if (D_800E9720[D_8004A7C4->unk0]-- == 0) { D_800DDC50[D_8004A7C4->unk0] = 1; func_800B1EC8_ovl18(D_800DE510[D_8004A7C4->unk0], &func_80225478_ovl18); } else D_800E9720[D_8004A7C4->unk0]--; diff --git a/src/ovl2/ovl2_6.c b/src/ovl2/ovl2_6.c index 16f2b396..d96f7a08 100644 --- a/src/ovl2/ovl2_6.c +++ b/src/ovl2/ovl2_6.c @@ -8274,6 +8274,80 @@ GLOBAL_ASM("asm/non_matchings/ovl2_6/func_8010E2B8_ovl2.s") #ifdef MIPS_TO_C // generated by mips_to_c commit 09d006c9da5d6bbcd31ac6ca5c9165c1a8533a83 +void func_8010E324(s32 arg0, void *arg1) { + ? spC0; + ? sp80; + u32 sp7C; + u32 sp78; + f32 sp70; + void *sp50; + f32 sp18; + Gfx *temp_v0; + Gfx *temp_v0_2; + Gfx *temp_v1; + Gfx *temp_v1_2; + Gfx *temp_v1_3; + Gfx *temp_v1_4; + f32 temp_f0; + f32 temp_f12; + f32 temp_f14; + f32 temp_f18; + f32 temp_f2; + u32 temp_t0; + u32 temp_t0_2; + void *temp_t5; + + temp_t0 = D_8004A3F8.unkC; + D_8004A3F8.unkC = temp_t0 + 0x40; + sp7C = temp_t0; + temp_f14 = arg1->unk20; + temp_f12 = arg1->unk1C; + temp_f2 = arg1->unk18; + temp_f0 = arg1->unk14; + temp_f18 = (temp_f12 - temp_f14) / 40.0f; + sp18 = temp_f18; + sp70 = temp_f18; + func_8010E2B8_ovl2(temp_f12, temp_f14, &spC0, 0.0f, (temp_f0 + temp_f2) * 0.5f, (temp_f12 + temp_f14) * 0.5f, 1.0f, (temp_f0 - temp_f2) / 40.0f); + sp18 = 0.0f; + func_8001BF88_ovl2(&sp80, arg1->unk4, arg1->unk8, arg1->unkC, 0.0f, arg1->unk24); + guMtxCatF(&spC0, &sp80, &sp80); + func_80019A30_ovl2(&sp80, sp7C); + temp_v0 = gDisplayListHeads->unk0; + gDisplayListHeads->unk0 = temp_v0 + 8; + temp_v0->words.w0 = 0xDA380000; + temp_v0->words.w1 = sp7C; + temp_v0_2 = gDisplayListHeads->unk0; + gDisplayListHeads->unk0 = temp_v0_2 + 8; + temp_v0_2->words.w1 = &D_801248B0; + temp_v0_2->words.w0 = 0xDE000000; + temp_v1 = gDisplayListHeads[2]; + gDisplayListHeads[2] = temp_v1 + 8; + temp_v1->words.w0 = 0xDA380000; + temp_v1->words.w1 = sp7C; + temp_v1_2 = gDisplayListHeads[2]; + temp_t5 = arg1 + 0x10; + gDisplayListHeads[2] = temp_v1_2 + 8; + temp_v1_2->words.w1 = &D_80124908; + temp_v1_2->words.w0 = 0xDE000000; + temp_t0_2 = D_8004A404; + D_8004A404 = temp_t0_2 + 0x40; + sp78 = temp_t0_2; + sp50 = temp_t5; + sp18 = sp70; + func_8010E2B8_ovl2(&spC0, 0.0f, 0.0f, (temp_t5->unkC + temp_t5->unk10) * 0.5f, 1.0f, 1.0f); + sp18 = 0.0f; + func_8001BF88_ovl2(&sp80, arg1->unk4, (bitwise f32) arg1->unk8 + temp_t5->unk0, arg1->unkC, 0.0f, arg1->unk24); + guMtxCatF(&spC0, &sp80, &sp80); + func_80019A30_ovl2(&sp80, sp78); + temp_v1_3 = gDisplayListHeads[2]; + gDisplayListHeads[2] = temp_v1_3 + 8; + temp_v1_3->words.w0 = 0xDA380000; + temp_v1_3->words.w1 = sp78; + temp_v1_4 = gDisplayListHeads[2]; + gDisplayListHeads[2] = temp_v1_4 + 8; + temp_v1_4->words.w1 = &D_80124948; + temp_v1_4->words.w0 = 0xDE000000; +} #else GLOBAL_ASM("asm/non_matchings/ovl2_6/func_8010E324.s") #endif @@ -8344,14 +8418,10 @@ GLOBAL_ASM("asm/non_matchings/ovl2_6/func_8010E5B0_ovl2.s") #ifdef MIPS_TO_C // generated by mips_to_c commit 09d006c9da5d6bbcd31ac6ca5c9165c1a8533a83 -s32 func_8010E6F0(void *arg0, s32 arg1) { - s32 temp_v0; - - temp_v0 = arg1 * 4; - arg0->unk0 = (f32)(arg0->unk0 + (temp_v0 + 0x800E0000)->unk25D0); - arg0->unk4 = (f32)(arg0->unk4 + (temp_v0 + 0x800E0000)->unk2790); - arg0->unk8 = (f32)(arg0->unk8 + (temp_v0 + 0x800E0000)->unk2950); - return temp_v0; +void func_8010E6F0(Vector *arg0, s32 arg1) { + arg0->x += D_800E25D0[arg1]; + arg0->y += D_800E2790[arg1]; + arg0->z += D_800E2950[arg1]; } #else GLOBAL_ASM("asm/non_matchings/ovl2_6/func_8010E6F0.s") diff --git a/src/ovl20.c b/src/ovl20.c index 2b561e73..97560ae3 100644 --- a/src/ovl20.c +++ b/src/ovl20.c @@ -24,7 +24,7 @@ extern u32 func_80300170(void); // deobfuscates the function directly after this one and calls it // potentially as a piracy/tamper check -void func_80300000_ovl20(void) { +void tamper_check_ovl20(void) { u32 i; for (i = 0; i < ARRAY_COUNT(D_80300170); i++) { D_80300170[i] = D_803000E0[i] ^ ASM_DEOBFUSCATOR; diff --git a/src/ovl6/ovl6.c b/src/ovl6/ovl6.c index f1be1a7b..7f78f762 100644 --- a/src/ovl6/ovl6.c +++ b/src/ovl6/ovl6.c @@ -978,10 +978,7 @@ void *func_8015392C(void *arg0) { temp_t7 = arg0->unk3C->unk80->unk5B; temp_v0 = arg0->unk3C->unk80 + 8; if (temp_t7 != 0) { - temp_a0 = gDisplayListHeads.unk4; - gDisplayListHeads.unk4 = (void *) (temp_a0 + 8); - temp_a0->unk4 = 0; - temp_a0->unk0 = 0xE7000000; + gDPPipeSync(gDisplayListHeads[1]++); temp_a0_2 = gDisplayListHeads.unk4; gDisplayListHeads.unk4 = (void *) (temp_a0_2 + 8); temp_a0_2->unk4 = 0xFFFDF6FB; @@ -998,10 +995,7 @@ void *func_8015392C(void *arg0) { gDisplayListHeads.unk4 = (void *) (temp_a0_5 + 8); temp_a0_5->unk4 = 0x28028; temp_a0_5->unk0 = 0xF64D8398; - temp_a0_6 = gDisplayListHeads.unk4; - gDisplayListHeads.unk4 = (void *) (temp_a0_6 + 8); - temp_a0_6->unk4 = 0; - temp_a0_6->unk0 = 0xE7000000; + gDPPipeSync(gDisplayListHeads[1]++); temp_a0_7 = gDisplayListHeads.unk4; gDisplayListHeads.unk4 = (void *) (temp_a0_7 + 8); temp_a0_7->unk4 = 0x5049D8; diff --git a/undefined_syms.txt b/undefined_syms.txt index b9b78f2d..9f7b2e80 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -1172,7 +1172,7 @@ func_80004674_ovl1 = 0x80004674; func_800BB418_ovl1 = 0x800BB418; func_8011C87C_ovl1 = 0x8011C87C; func_8011C8D0_ovl1 = 0x8011C8D0; -func_800A6B20_ovl1 = 0x800A6B20; +load_overlay = 0x800A6B20; func_80151CEC_ovl1 = 0x80151CEC; D_80004624_ovl1 = 0x80004624; func_800A2C80_ovl1 = 0x800A2C80; @@ -1673,7 +1673,7 @@ D_80129130 = 0x80129130; D_8012B9B8 = 0x8012B9B8; func_800A7A70_ovl2 = 0x800A7A70; func_800A7BF4_ovl2 = 0x800A7BF4; -func_800A6B20_ovl2 = 0x800A6B20; +load_overlay = 0x800A6B20; func_800AEC08_ovl2 = 0x800AEC08; D_801290D4 = 0x801290D4; func_8010137C_ovl2 = 0x8010137C;