diff --git a/asm/non_matchings/camera/func_80065EA0.s b/asm/non_matchings/camera/func_80065EA0.s index 21e75683..a27e86f8 100644 --- a/asm/non_matchings/camera/func_80065EA0.s +++ b/asm/non_matchings/camera/func_80065EA0.s @@ -57,8 +57,8 @@ glabel func_80065EA0 /* 066B64 80065F64 AC200D1C */ sw $zero, %lo(D_80120D1C)($at) /* 066B68 80065F68 3C018012 */ lui $at, %hi(D_80120D20) # $at, 0x8012 /* 066B6C 80065F6C AC200D20 */ sw $zero, %lo(D_80120D20)($at) -/* 066B70 80065F70 3C018012 */ lui $at, %hi(D_80120CE0) # $at, 0x8012 -/* 066B74 80065F74 AC200CE0 */ sw $zero, %lo(D_80120CE0)($at) +/* 066B70 80065F70 3C018012 */ lui $at, %hi(gNumberOfViewports) # $at, 0x8012 +/* 066B74 80065F74 AC200CE0 */ sw $zero, %lo(gNumberOfViewports)($at) /* 066B78 80065F78 3C018012 */ lui $at, %hi(D_80120D0C) # $at, 0x8012 /* 066B7C 80065F7C AC200D0C */ sw $zero, %lo(D_80120D0C)($at) /* 066B80 80065F80 3C018012 */ lui $at, %hi(D_80120D18) # $at, 0x8012 diff --git a/asm/non_matchings/camera/func_80066CDC.s b/asm/non_matchings/camera/func_80066CDC.s index f86f8bcd..4f327457 100644 --- a/asm/non_matchings/camera/func_80066CDC.s +++ b/asm/non_matchings/camera/func_80066CDC.s @@ -14,8 +14,8 @@ glabel func_80066CDC /* 06790C 80066D0C 3C1F8012 */ lui $ra, %hi(D_80120CE4) # $ra, 0x8012 /* 067910 80066D10 10400008 */ beqz $v0, .L80066D34 /* 067914 80066D14 27FF0CE4 */ addiu $ra, %lo(D_80120CE4) # addiu $ra, $ra, 0xce4 -/* 067918 80066D18 3C0E8012 */ lui $t6, %hi(D_80120CE0) # $t6, 0x8012 -/* 06791C 80066D1C 8DCE0CE0 */ lw $t6, %lo(D_80120CE0)($t6) +/* 067918 80066D18 3C0E8012 */ lui $t6, %hi(gNumberOfViewports) # $t6, 0x8012 +/* 06791C 80066D1C 8DCE0CE0 */ lw $t6, %lo(gNumberOfViewports)($t6) /* 067920 80066D20 240F0001 */ li $t7, 1 /* 067924 80066D24 15C00003 */ bnez $t6, .L80066D34 /* 067928 80066D28 00000000 */ nop @@ -32,7 +32,7 @@ glabel func_80066CDC /* 067950 80066D50 3C1F8012 */ lui $ra, %hi(D_80120CE4) # $ra, 0x8012 /* 067954 80066D54 00024402 */ srl $t0, $v0, 0x10 /* 067958 80066D58 27FF0CE4 */ addiu $ra, %lo(D_80120CE4) # addiu $ra, $ra, 0xce4 -/* 06795C 80066D5C 3C038012 */ lui $v1, %hi(D_80120CE0) # $v1, 0x8012 +/* 06795C 80066D5C 3C038012 */ lui $v1, %hi(gNumberOfViewports) # $v1, 0x8012 /* 067960 80066D60 00083842 */ srl $a3, $t0, 1 /* 067964 80066D64 0000C012 */ mflo $t8 /* 067968 80066D68 0158C821 */ addu $t9, $t2, $t8 @@ -142,7 +142,7 @@ glabel func_80066CDC /* 067B04 80066F04 100002C9 */ b .L80067A2C /* 067B08 80066F08 AFF80000 */ sw $t8, ($ra) .L80066F0C: -/* 067B0C 80066F0C 8C630CE0 */ lw $v1, %lo(D_80120CE0)($v1) +/* 067B0C 80066F0C 8C630CE0 */ lw $v1, %lo(gNumberOfViewports)($v1) /* 067B10 80066F10 24040002 */ li $a0, 2 /* 067B14 80066F14 14640002 */ bne $v1, $a0, .L80066F20 /* 067B18 80066F18 3049FFFF */ andi $t1, $v0, 0xffff diff --git a/asm/non_matchings/camera/func_80067A3C.s b/asm/non_matchings/camera/func_80067A3C.s index 593dd1e7..e2670e92 100644 --- a/asm/non_matchings/camera/func_80067A3C.s +++ b/asm/non_matchings/camera/func_80067A3C.s @@ -3,8 +3,8 @@ glabel func_80067A3C /* 068640 80067A40 AFBF0014 */ sw $ra, 0x14($sp) /* 068644 80067A44 0C01E948 */ jal get_video_width_and_height_as_s32 /* 068648 80067A48 AFA40018 */ sw $a0, 0x18($sp) -/* 06864C 80067A4C 3C038012 */ lui $v1, %hi(D_80120CE0) # $v1, 0x8012 -/* 068650 80067A50 8C630CE0 */ lw $v1, %lo(D_80120CE0)($v1) +/* 06864C 80067A4C 3C038012 */ lui $v1, %hi(gNumberOfViewports) # $v1, 0x8012 +/* 068650 80067A50 8C630CE0 */ lw $v1, %lo(gNumberOfViewports)($v1) /* 068654 80067A54 8FAD0018 */ lw $t5, 0x18($sp) /* 068658 80067A58 1060008F */ beqz $v1, .L80067C98 /* 06865C 80067A5C 304FFFFF */ andi $t7, $v0, 0xffff diff --git a/asm/non_matchings/camera/func_80069F28.s b/asm/non_matchings/camera/func_80069F28.s index 71355d63..d136f1a7 100644 --- a/asm/non_matchings/camera/func_80069F28.s +++ b/asm/non_matchings/camera/func_80069F28.s @@ -22,8 +22,8 @@ glabel D_800E7098 .text glabel func_80069F28 -/* 06AB28 80069F28 3C038012 */ lui $v1, %hi(D_80120CE0) # $v1, 0x8012 -/* 06AB2C 80069F2C 8C630CE0 */ lw $v1, %lo(D_80120CE0)($v1) +/* 06AB28 80069F28 3C038012 */ lui $v1, %hi(gNumberOfViewports) # $v1, 0x8012 +/* 06AB2C 80069F2C 8C630CE0 */ lw $v1, %lo(gNumberOfViewports)($v1) /* 06AB30 80069F30 3C0E8012 */ lui $t6, %hi(D_80120AC0) # $t6, 0x8012 /* 06AB34 80069F34 04600009 */ bltz $v1, .L80069F5C /* 06AB38 80069F38 25C20AC0 */ addiu $v0, $t6, %lo(D_80120AC0) diff --git a/asm/non_matchings/camera/func_8006A1C4.s b/asm/non_matchings/camera/func_8006A1C4.s index 57a2c809..ad2c9a24 100644 --- a/asm/non_matchings/camera/func_8006A1C4.s +++ b/asm/non_matchings/camera/func_8006A1C4.s @@ -118,13 +118,13 @@ glabel func_8006A1C4 /* 06AF68 8006A368 248410E0 */ addiu $a0, %lo(D_801210E0) # addiu $a0, $a0, 0x10e0 .L8006A36C: /* 06AF6C 8006A36C 3C0A800E */ lui $t2, %hi(D_800DD300) # $t2, 0x800e -/* 06AF70 8006A370 3C09800E */ lui $t1, %hi(D_800DD304) # $t1, 0x800e +/* 06AF70 8006A370 3C09800E */ lui $t1, %hi(gButtonMask) # $t1, 0x800e /* 06AF74 8006A374 3C068012 */ lui $a2, %hi(D_80121110+24) # $a2, 0x8012 /* 06AF78 8006A378 3C028012 */ lui $v0, %hi(D_80121110) # $v0, 0x8012 /* 06AF7C 8006A37C 3C088012 */ lui $t0, %hi(D_80121140) # $t0, 0x8012 /* 06AF80 8006A380 3C078012 */ lui $a3, %hi(D_80121148) # $a3, 0x8012 /* 06AF84 8006A384 3C0B8012 */ lui $t3, %hi(D_80121150) # $t3, 0x8012 -/* 06AF88 8006A388 9529D304 */ lhu $t1, %lo(D_800DD304)($t1) +/* 06AF88 8006A388 9529D304 */ lhu $t1, %lo(gButtonMask)($t1) /* 06AF8C 8006A38C 8D4AD300 */ lw $t2, %lo(D_800DD300)($t2) /* 06AF90 8006A390 256B1150 */ addiu $t3, %lo(D_80121150) # addiu $t3, $t3, 0x1150 /* 06AF94 8006A394 24E71148 */ addiu $a3, %lo(D_80121148) # addiu $a3, $a3, 0x1148 diff --git a/asm/non_matchings/controller_pak/func_8007306C.s b/asm/non_matchings/controller_pak/func_8007306C.s index 2f458182..3b710778 100644 --- a/asm/non_matchings/controller_pak/func_8007306C.s +++ b/asm/non_matchings/controller_pak/func_8007306C.s @@ -8,7 +8,7 @@ glabel func_8007306C /* 073C84 80073084 0C01BA65 */ jal func_8006E994 /* 073C88 80073088 AFB00018 */ sw $s0, 0x18($sp) /* 073C8C 8007308C 27A40048 */ addiu $a0, $sp, 0x48 -/* 073C90 80073090 0C01AC89 */ jal func_8006B224 +/* 073C90 80073090 0C01AC89 */ jal get_number_of_levels_and_worlds /* 073C94 80073094 27A50044 */ addiu $a1, $sp, 0x44 /* 073C98 80073098 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 /* 073C9C 8007309C 3C028012 */ lui $v0, %hi(D_801241F4) # $v0, 0x8012 diff --git a/asm/non_matchings/controller_pak/func_800732E8.s b/asm/non_matchings/controller_pak/func_800732E8.s index e3d13327..a4f0ba48 100644 --- a/asm/non_matchings/controller_pak/func_800732E8.s +++ b/asm/non_matchings/controller_pak/func_800732E8.s @@ -7,7 +7,7 @@ glabel func_800732E8 /* 073EFC 800732FC AFB1001C */ sw $s1, 0x1c($sp) /* 073F00 80073300 AFB00018 */ sw $s0, 0x18($sp) /* 073F04 80073304 27A5003C */ addiu $a1, $sp, 0x3c -/* 073F08 80073308 0C01AC89 */ jal func_8006B224 +/* 073F08 80073308 0C01AC89 */ jal get_number_of_levels_and_worlds /* 073F0C 8007330C 27A40040 */ addiu $a0, $sp, 0x40 /* 073F10 80073310 8FAE004C */ lw $t6, 0x4c($sp) /* 073F14 80073314 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 diff --git a/asm/non_matchings/controller_pak/func_80073588.s b/asm/non_matchings/controller_pak/func_80073588.s index e148410a..6a835110 100644 --- a/asm/non_matchings/controller_pak/func_80073588.s +++ b/asm/non_matchings/controller_pak/func_80073588.s @@ -12,7 +12,7 @@ glabel func_80073588 /* 0741B0 800735B0 0C01B9DC */ jal func_8006E770 /* 0741B4 800735B4 AFA5002C */ sw $a1, 0x2c($sp) /* 0741B8 800735B8 27A40040 */ addiu $a0, $sp, 0x40 -/* 0741BC 800735BC 0C01AC89 */ jal func_8006B224 +/* 0741BC 800735BC 0C01AC89 */ jal get_number_of_levels_and_worlds /* 0741C0 800735C0 27A5003C */ addiu $a1, $sp, 0x3c /* 0741C4 800735C4 8FAF002C */ lw $t7, 0x2c($sp) /* 0741C8 800735C8 8FB9004C */ lw $t9, 0x4c($sp) diff --git a/asm/non_matchings/controller_pak/func_800738A4.s b/asm/non_matchings/controller_pak/func_800738A4.s index a9acb3bb..4fc58b74 100644 --- a/asm/non_matchings/controller_pak/func_800738A4.s +++ b/asm/non_matchings/controller_pak/func_800738A4.s @@ -9,7 +9,7 @@ glabel func_800738A4 /* 0744C0 800738C0 AFB1001C */ sw $s1, 0x1c($sp) /* 0744C4 800738C4 AFB00018 */ sw $s0, 0x18($sp) /* 0744C8 800738C8 27A50044 */ addiu $a1, $sp, 0x44 -/* 0744CC 800738CC 0C01AC89 */ jal func_8006B224 +/* 0744CC 800738CC 0C01AC89 */ jal get_number_of_levels_and_worlds /* 0744D0 800738D0 27A40048 */ addiu $a0, $sp, 0x48 /* 0744D4 800738D4 8FAE0054 */ lw $t6, 0x54($sp) /* 0744D8 800738D8 3C018012 */ lui $at, %hi(D_801241EC) # $at, 0x8012 diff --git a/asm/non_matchings/controller_pak/func_8007431C.s b/asm/non_matchings/controller_pak/func_8007431C.s index d6c9009e..3afa7a2e 100644 --- a/asm/non_matchings/controller_pak/func_8007431C.s +++ b/asm/non_matchings/controller_pak/func_8007431C.s @@ -12,7 +12,7 @@ glabel func_8007431C /* 074F44 80074344 00402025 */ move $a0, $v0 /* 074F48 80074348 1040005D */ beqz $v0, .L800744C0 /* 074F4C 8007434C 27A40044 */ addiu $a0, $sp, 0x44 -/* 074F50 80074350 0C01AC89 */ jal func_8006B224 +/* 074F50 80074350 0C01AC89 */ jal get_number_of_levels_and_worlds /* 074F54 80074354 27A50040 */ addiu $a1, $sp, 0x40 /* 074F58 80074358 8FAE0044 */ lw $t6, 0x44($sp) /* 074F5C 8007435C 00008025 */ move $s0, $zero diff --git a/asm/non_matchings/menu/func_80081218.s b/asm/non_matchings/menu/func_80081218.s index 5e116124..4b518dd1 100644 --- a/asm/non_matchings/menu/func_80081218.s +++ b/asm/non_matchings/menu/func_80081218.s @@ -2,7 +2,7 @@ glabel func_80081218 /* 081E18 80081218 27BDFFC8 */ addiu $sp, $sp, -0x38 /* 081E1C 8008121C AFBF0014 */ sw $ra, 0x14($sp) /* 081E20 80081220 27A40034 */ addiu $a0, $sp, 0x34 -/* 081E24 80081224 0C01AC89 */ jal func_8006B224 +/* 081E24 80081224 0C01AC89 */ jal get_number_of_levels_and_worlds /* 081E28 80081228 27A50030 */ addiu $a1, $sp, 0x30 /* 081E2C 8008122C 8FA20034 */ lw $v0, 0x34($sp) /* 081E30 80081230 8FAF0030 */ lw $t7, 0x30($sp) diff --git a/asm/non_matchings/menu/menu_track_select_init.s b/asm/non_matchings/menu/menu_track_select_init.s index 945af59d..c5829c0e 100644 --- a/asm/non_matchings/menu/menu_track_select_init.s +++ b/asm/non_matchings/menu/menu_track_select_init.s @@ -16,7 +16,7 @@ glabel menu_track_select_init /* 08F3D8 8008E7D8 00000000 */ nop /* 08F3DC 8008E7DC 0040A025 */ move $s4, $v0 /* 08F3E0 8008E7E0 27A4007C */ addiu $a0, $sp, 0x7c -/* 08F3E4 8008E7E4 0C01AC89 */ jal func_8006B224 +/* 08F3E4 8008E7E4 0C01AC89 */ jal get_number_of_levels_and_worlds /* 08F3E8 8008E7E8 27A50078 */ addiu $a1, $sp, 0x78 /* 08F3EC 8008E7EC 0C0078A7 */ jal get_misc_asset /* 08F3F0 8008E7F0 2404001A */ li $a0, 26 diff --git a/asm/non_matchings/unknown_005740/func_80008438.s b/asm/non_matchings/unknown_005740/func_80008438.s index 39392fb4..06d32afd 100644 --- a/asm/non_matchings/unknown_005740/func_80008438.s +++ b/asm/non_matchings/unknown_005740/func_80008438.s @@ -26,7 +26,7 @@ glabel func_80008438 /* 009084 80008484 AFA40268 */ sw $a0, 0x268($sp) /* 009088 80008488 AFA5026C */ sw $a1, 0x26c($sp) /* 00908C 8000848C AFA60270 */ sw $a2, 0x270($sp) -/* 009090 80008490 0C019884 */ jal func_80066210 +/* 009090 80008490 0C019884 */ jal get_viewport_count /* 009094 80008494 AFA0024C */ sw $zero, 0x24c($sp) /* 009098 80008498 0C01994B */ jal func_8006652C /* 00909C 8000849C 00402025 */ move $a0, $v0 diff --git a/asm/non_matchings/unknown_00BC20/func_80012F94.s b/asm/non_matchings/unknown_00BC20/func_80012F94.s index 5e739917..c1b1353a 100644 --- a/asm/non_matchings/unknown_00BC20/func_80012F94.s +++ b/asm/non_matchings/unknown_00BC20/func_80012F94.s @@ -80,7 +80,7 @@ glabel func_80012F94 /* 013C88 80013088 AFAA0024 */ sw $t2, 0x24($sp) /* 013C8C 8001308C 0C0078A7 */ jal get_misc_asset /* 013C90 80013090 E7AE002C */ swc1 $f14, 0x2c($sp) -/* 013C94 80013094 0C019884 */ jal func_80066210 +/* 013C94 80013094 0C019884 */ jal get_viewport_count /* 013C98 80013098 AFA20038 */ sw $v0, 0x38($sp) /* 013C9C 8001309C 00027880 */ sll $t7, $v0, 2 /* 013CA0 800130A0 8FA50038 */ lw $a1, 0x38($sp) diff --git a/asm/non_matchings/unknown_00BC20/func_80018CE0.s b/asm/non_matchings/unknown_00BC20/func_80018CE0.s index 95d2a5dc..5eedec74 100644 --- a/asm/non_matchings/unknown_00BC20/func_80018CE0.s +++ b/asm/non_matchings/unknown_00BC20/func_80018CE0.s @@ -31,7 +31,7 @@ glabel func_80018CE0 /* 019954 80018D54 00000000 */ nop /* 019958 80018D58 156001E9 */ bnez $t3, .L80019500 /* 01995C 80018D5C 8FBF006C */ lw $ra, 0x6c($sp) -/* 019960 80018D60 0C019884 */ jal func_80066210 +/* 019960 80018D60 0C019884 */ jal get_viewport_count /* 019964 80018D64 00000000 */ nop /* 019968 80018D68 144001E4 */ bnez $v0, .L800194FC /* 01996C 80018D6C 3C0C8012 */ lui $t4, %hi(D_8011AE60) # $t4, 0x8012 diff --git a/asm/non_matchings/unknown_00BC20/func_8001F23C.s b/asm/non_matchings/unknown_00BC20/func_8001F23C.s index 721b30f9..5ad0a9e5 100644 --- a/asm/non_matchings/unknown_00BC20/func_8001F23C.s +++ b/asm/non_matchings/unknown_00BC20/func_8001F23C.s @@ -55,7 +55,7 @@ glabel func_8001F23C /* 01FF0C 8001F30C 2673AD3E */ addiu $s3, %lo(D_8011AD3E) # addiu $s3, $s3, -0x52c2 /* 01FF10 8001F310 8E220064 */ lw $v0, 0x64($s1) /* 01FF14 8001F314 82780000 */ lb $t8, ($s3) -/* 01FF18 8001F318 0C019884 */ jal func_80066210 +/* 01FF18 8001F318 0C019884 */ jal get_viewport_count /* 01FF1C 8001F31C A0580044 */ sb $t8, 0x44($v0) /* 01FF20 8001F320 0C01B067 */ jal func_8006C19C /* 01FF24 8001F324 00409025 */ move $s2, $v0 diff --git a/asm/non_matchings/unknown_00BC20/render_3d_model.s b/asm/non_matchings/unknown_00BC20/render_3d_model.s index 5525e77e..07a364d7 100644 --- a/asm/non_matchings/unknown_00BC20/render_3d_model.s +++ b/asm/non_matchings/unknown_00BC20/render_3d_model.s @@ -99,7 +99,7 @@ glabel render_3d_model /* 012E3C 8001223C 00000000 */ nop /* 012E40 80012240 00004825 */ move $t1, $zero .L80012244: -/* 012E44 80012244 0C019884 */ jal func_80066210 +/* 012E44 80012244 0C019884 */ jal get_viewport_count /* 012E48 80012248 AFA900A0 */ sw $t1, 0xa0($sp) /* 012E4C 8001224C 8FA900A0 */ lw $t1, 0xa0($sp) /* 012E50 80012250 10400002 */ beqz $v0, .L8001225C diff --git a/asm/non_matchings/unknown_0255E0/func_800289B8.s b/asm/non_matchings/unknown_0255E0/func_800289B8.s index 6d7d0fe0..b1cb104a 100644 --- a/asm/non_matchings/unknown_0255E0/func_800289B8.s +++ b/asm/non_matchings/unknown_0255E0/func_800289B8.s @@ -65,7 +65,7 @@ glabel func_800289B8 .L80028AB4: /* 0296B4 80028AB4 AFA30024 */ sw $v1, 0x24($sp) /* 0296B8 80028AB8 A7A40030 */ sh $a0, 0x30($sp) -/* 0296BC 80028ABC 0C019884 */ jal func_80066210 +/* 0296BC 80028ABC 0C019884 */ jal get_viewport_count /* 0296C0 80028AC0 AFA70020 */ sw $a3, 0x20($sp) /* 0296C4 80028AC4 8FA30024 */ lw $v1, 0x24($sp) /* 0296C8 80028AC8 87A40030 */ lh $a0, 0x30($sp) diff --git a/asm/non_matchings/unknown_0255E0/func_8002D8DC.s b/asm/non_matchings/unknown_0255E0/func_8002D8DC.s index eec621d1..c958ac95 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002D8DC.s +++ b/asm/non_matchings/unknown_0255E0/func_8002D8DC.s @@ -51,7 +51,7 @@ glabel func_8002D8DC /* 02E59C 8002D99C 3C018012 */ lui $at, %hi(D_8011D368) # $at, 0x8012 /* 02E5A0 8002D9A0 AC20D368 */ sw $zero, %lo(D_8011D368)($at) /* 02E5A4 8002D9A4 3C018012 */ lui $at, %hi(D_8011D36C) # $at, 0x8012 -/* 02E5A8 8002D9A8 0C019884 */ jal func_80066210 +/* 02E5A8 8002D9A8 0C019884 */ jal get_viewport_count /* 02E5AC 8002D9AC AC20D36C */ sw $zero, %lo(D_8011D36C)($at) /* 02E5B0 8002D9B0 0040B025 */ move $s6, $v0 /* 02E5B4 8002D9B4 27A40094 */ addiu $a0, $sp, 0x94 diff --git a/asm/non_matchings/unknown_0255E0/func_8002E234.s b/asm/non_matchings/unknown_0255E0/func_8002E234.s index 969ef5e9..ade10c62 100644 --- a/asm/non_matchings/unknown_0255E0/func_8002E234.s +++ b/asm/non_matchings/unknown_0255E0/func_8002E234.s @@ -90,7 +90,7 @@ glabel func_8002E234 /* 02EF64 8002E364 01F0C021 */ addu $t8, $t7, $s0 /* 02EF68 8002E368 13200006 */ beqz $t9, .L8002E384 /* 02EF6C 8002E36C A438D0CC */ sh $t8, %lo(D_8011D0CC)($at) -/* 02EF70 8002E370 0C019884 */ jal func_80066210 +/* 02EF70 8002E370 0C019884 */ jal get_viewport_count /* 02EF74 8002E374 E7B2006C */ swc1 $f18, 0x6c($sp) /* 02EF78 8002E378 C7B2006C */ lwc1 $f18, 0x6c($sp) /* 02EF7C 8002E37C 1C400004 */ bgtz $v0, .L8002E390 diff --git a/asm/non_matchings/unknown_0255E0/func_80030A74.s b/asm/non_matchings/unknown_0255E0/func_80030A74.s index b795346d..8f39fd06 100644 --- a/asm/non_matchings/unknown_0255E0/func_80030A74.s +++ b/asm/non_matchings/unknown_0255E0/func_80030A74.s @@ -18,7 +18,7 @@ glabel func_80030A74 /* 0316B4 80030AB4 AFBF0040 */ sw $ra, 0x40($sp) /* 0316B8 80030AB8 0C01A75F */ jal func_80069D7C /* 0316BC 80030ABC AFAB0044 */ sw $t3, 0x44($sp) -/* 0316C0 80030AC0 0C019884 */ jal func_80066210 +/* 0316C0 80030AC0 0C019884 */ jal get_viewport_count /* 0316C4 80030AC4 00409825 */ move $s3, $v0 /* 0316C8 80030AC8 8FAB0044 */ lw $t3, 0x44($sp) /* 0316CC 80030ACC 8FBF0040 */ lw $ra, 0x40($sp) diff --git a/asm/non_matchings/unknown_032760/func_800370D4.s b/asm/non_matchings/unknown_032760/func_800370D4.s index 8596ad78..38f62ca9 100644 --- a/asm/non_matchings/unknown_032760/func_800370D4.s +++ b/asm/non_matchings/unknown_032760/func_800370D4.s @@ -4,7 +4,7 @@ glabel func_800370D4 /* 037CDC 800370DC AFB10018 */ sw $s1, 0x18($sp) /* 037CE0 800370E0 00808825 */ move $s1, $a0 /* 037CE4 800370E4 AFB00014 */ sw $s0, 0x14($sp) -/* 037CE8 800370E8 0C019884 */ jal func_80066210 +/* 037CE8 800370E8 0C019884 */ jal get_viewport_count /* 037CEC 800370EC AFA50074 */ sw $a1, 0x74($sp) /* 037CF0 800370F0 18400005 */ blez $v0, .L80037108 /* 037CF4 800370F4 00000000 */ nop diff --git a/asm/non_matchings/unknown_032760/func_80038710.s b/asm/non_matchings/unknown_032760/func_80038710.s index 53389f7f..77ad3f43 100644 --- a/asm/non_matchings/unknown_032760/func_80038710.s +++ b/asm/non_matchings/unknown_032760/func_80038710.s @@ -11,7 +11,7 @@ glabel func_80038710 /* 039334 80038734 A60F0006 */ sh $t7, 6($s0) /* 039338 80038738 1440001D */ bnez $v0, .L800387B0 /* 03933C 8003873C AFB80034 */ sw $t8, 0x34($sp) -/* 039340 80038740 0C019884 */ jal func_80066210 +/* 039340 80038740 0C019884 */ jal get_viewport_count /* 039344 80038744 00000000 */ nop /* 039348 80038748 14400008 */ bnez $v0, .L8003876C /* 03934C 8003874C 24030001 */ li $v1, 1 diff --git a/asm/non_matchings/unknown_043920/func_8004447C.s b/asm/non_matchings/unknown_043920/func_8004447C.s index 707f9f3f..e66eb731 100644 --- a/asm/non_matchings/unknown_043920/func_8004447C.s +++ b/asm/non_matchings/unknown_043920/func_8004447C.s @@ -350,7 +350,7 @@ glabel L800446AC /* 045568 80044968 10400011 */ beqz $v0, .L800449B0 /* 04556C 8004496C 00000000 */ nop /* 045570 80044970 A7A60050 */ sh $a2, 0x50($sp) -/* 045574 80044974 0C019884 */ jal func_80066210 +/* 045574 80044974 0C019884 */ jal get_viewport_count /* 045578 80044978 A7A8004A */ sh $t0, 0x4a($sp) /* 04557C 8004497C 87A60050 */ lh $a2, 0x50($sp) /* 045580 80044980 87A8004A */ lh $t0, 0x4a($sp) diff --git a/asm/non_matchings/unknown_043920/func_800452A0.s b/asm/non_matchings/unknown_043920/func_800452A0.s index 38712808..bcd426d0 100644 --- a/asm/non_matchings/unknown_043920/func_800452A0.s +++ b/asm/non_matchings/unknown_043920/func_800452A0.s @@ -155,7 +155,7 @@ glabel func_800452A0 /* 0460AC 800454AC 00000000 */ nop /* 0460B0 800454B0 10400007 */ beqz $v0, .L800454D0 /* 0460B4 800454B4 24010002 */ li $at, 2 -/* 0460B8 800454B8 0C019884 */ jal func_80066210 +/* 0460B8 800454B8 0C019884 */ jal get_viewport_count /* 0460BC 800454BC 00000000 */ nop /* 0460C0 800454C0 14400003 */ bnez $v0, .L800454D0 /* 0460C4 800454C4 24010002 */ li $at, 2 diff --git a/asm/non_matchings/unknown_043920/func_80048E64.s b/asm/non_matchings/unknown_043920/func_80048E64.s index ac090e74..9a872b92 100644 --- a/asm/non_matchings/unknown_043920/func_80048E64.s +++ b/asm/non_matchings/unknown_043920/func_80048E64.s @@ -17,7 +17,7 @@ glabel func_80048E64 /* 049A8C 80048E8C AFAE0024 */ sw $t6, 0x24($sp) /* 049A90 80048E90 AFA60068 */ sw $a2, 0x68($sp) /* 049A94 80048E94 E7AE0048 */ swc1 $f14, 0x48($sp) -/* 049A98 80048E98 0C019884 */ jal func_80066210 +/* 049A98 80048E98 0C019884 */ jal get_viewport_count /* 049A9C 80048E9C E7B20044 */ swc1 $f18, 0x44($sp) /* 049AA0 80048EA0 24060001 */ li $a2, 1 /* 049AA4 80048EA4 8FA70068 */ lw $a3, 0x68($sp) @@ -141,7 +141,7 @@ glabel func_80048E64 /* 049C48 80049048 E7AC0028 */ swc1 $f12, 0x28($sp) /* 049C4C 8004904C E7AE0048 */ swc1 $f14, 0x48($sp) /* 049C50 80049050 E7B0002C */ swc1 $f16, 0x2c($sp) -/* 049C54 80049054 0C019884 */ jal func_80066210 +/* 049C54 80049054 0C019884 */ jal get_viewport_count /* 049C58 80049058 E7B20044 */ swc1 $f18, 0x44($sp) /* 049C5C 8004905C 8FA70068 */ lw $a3, 0x68($sp) /* 049C60 80049060 44805800 */ mtc1 $zero, $f11 diff --git a/asm/non_matchings/unknown_043920/func_8004C2B0.s b/asm/non_matchings/unknown_043920/func_8004C2B0.s index 8b7490a0..129977ca 100644 --- a/asm/non_matchings/unknown_043920/func_8004C2B0.s +++ b/asm/non_matchings/unknown_043920/func_8004C2B0.s @@ -45,7 +45,7 @@ glabel func_8004C2B0 /* 04CF1C 8004C31C AFA70058 */ sw $a3, 0x58($sp) /* 04CF20 8004C320 E7AE0034 */ swc1 $f14, 0x34($sp) /* 04CF24 8004C324 E7B00020 */ swc1 $f16, 0x20($sp) -/* 04CF28 8004C328 0C019884 */ jal func_80066210 +/* 04CF28 8004C328 0C019884 */ jal get_viewport_count /* 04CF2C 8004C32C E7B20030 */ swc1 $f18, 0x30($sp) /* 04CF30 8004C330 8FA70058 */ lw $a3, 0x58($sp) /* 04CF34 8004C334 C7AE0034 */ lwc1 $f14, 0x34($sp) diff --git a/asm/non_matchings/unknown_043920/func_8004D590.s b/asm/non_matchings/unknown_043920/func_8004D590.s index 1ed44005..0ab8906c 100644 --- a/asm/non_matchings/unknown_043920/func_8004D590.s +++ b/asm/non_matchings/unknown_043920/func_8004D590.s @@ -25,7 +25,7 @@ glabel func_8004D590 /* 04E1E8 8004D5E8 030FC823 */ subu $t9, $t8, $t7 /* 04E1EC 8004D5EC A4D90196 */ sh $t9, 0x196($a2) /* 04E1F0 8004D5F0 E7AE0094 */ swc1 $f14, 0x94($sp) -/* 04E1F4 8004D5F4 0C019884 */ jal func_80066210 +/* 04E1F4 8004D5F4 0C019884 */ jal get_viewport_count /* 04E1F8 8004D5F8 AFA600B0 */ sw $a2, 0xb0($sp) /* 04E1FC 8004D5FC 24040001 */ li $a0, 1 /* 04E200 8004D600 C7AE0094 */ lwc1 $f14, 0x94($sp) diff --git a/asm/non_matchings/unknown_043920/func_8004DE38.s b/asm/non_matchings/unknown_043920/func_8004DE38.s index 6ca91f3b..eedaca7f 100644 --- a/asm/non_matchings/unknown_043920/func_8004DE38.s +++ b/asm/non_matchings/unknown_043920/func_8004DE38.s @@ -31,7 +31,7 @@ glabel func_8004DE38 /* 04EA40 8004DE40 AFB10028 */ sw $s1, 0x28($sp) /* 04EA44 8004DE44 00808825 */ move $s1, $a0 /* 04EA48 8004DE48 AFB00024 */ sw $s0, 0x24($sp) -/* 04EA4C 8004DE4C 0C019884 */ jal func_80066210 +/* 04EA4C 8004DE4C 0C019884 */ jal get_viewport_count /* 04EA50 8004DE50 AFA500B4 */ sw $a1, 0xb4($sp) /* 04EA54 8004DE54 244E0001 */ addiu $t6, $v0, 1 /* 04EA58 8004DE58 3C01800E */ lui $at, %hi(D_800DCB98) # $at, 0x800e diff --git a/asm/non_matchings/unknown_043920/func_80050A28.s b/asm/non_matchings/unknown_043920/func_80050A28.s index 855d81ca..9d10ac72 100644 --- a/asm/non_matchings/unknown_043920/func_80050A28.s +++ b/asm/non_matchings/unknown_043920/func_80050A28.s @@ -1131,7 +1131,7 @@ glabel func_80050A28 .L800519E4: /* 0525E4 800519E4 A20001EE */ sb $zero, 0x1ee($s0) .L800519E8: -/* 0525E8 800519E8 0C019884 */ jal func_80066210 +/* 0525E8 800519E8 0C019884 */ jal get_viewport_count /* 0525EC 800519EC AFA90064 */ sw $t1, 0x64($sp) /* 0525F0 800519F0 8FA90064 */ lw $t1, 0x64($sp) /* 0525F4 800519F4 28410002 */ slti $at, $v0, 2 diff --git a/asm/non_matchings/unknown_043920/func_8005492C.s b/asm/non_matchings/unknown_043920/func_8005492C.s index bcaf035a..6124668d 100644 --- a/asm/non_matchings/unknown_043920/func_8005492C.s +++ b/asm/non_matchings/unknown_043920/func_8005492C.s @@ -213,7 +213,7 @@ glabel func_8005492C /* 0557E8 80054BE8 A0A001EE */ sb $zero, 0x1ee($a1) .L80054BEC: /* 0557EC 80054BEC AFA5004C */ sw $a1, 0x4c($sp) -/* 0557F0 80054BF0 0C019884 */ jal func_80066210 +/* 0557F0 80054BF0 0C019884 */ jal get_viewport_count /* 0557F4 80054BF4 AFA70048 */ sw $a3, 0x48($sp) /* 0557F8 80054BF8 8FA5004C */ lw $a1, 0x4c($sp) /* 0557FC 80054BFC 8FA70048 */ lw $a3, 0x48($sp) diff --git a/asm/non_matchings/unknown_043920/func_800581E8.s b/asm/non_matchings/unknown_043920/func_800581E8.s index 6971b13d..bc6da2b0 100644 --- a/asm/non_matchings/unknown_043920/func_800581E8.s +++ b/asm/non_matchings/unknown_043920/func_800581E8.s @@ -18,7 +18,7 @@ glabel func_800581E8 /* 058E0C 8005820C AFAE001C */ sw $t6, 0x1c($sp) /* 058E10 80058210 AFA60070 */ sw $a2, 0x70($sp) /* 058E14 80058214 E7B00054 */ swc1 $f16, 0x54($sp) -/* 058E18 80058218 0C019884 */ jal func_80066210 +/* 058E18 80058218 0C019884 */ jal get_viewport_count /* 058E1C 8005821C E7A40050 */ swc1 $f4, 0x50($sp) /* 058E20 80058220 24040001 */ li $a0, 1 /* 058E24 80058224 8FA70070 */ lw $a3, 0x70($sp) diff --git a/asm/non_matchings/unknown_06B2B0/func_8006A6B0.s b/asm/non_matchings/unknown_06B2B0/func_8006A6B0.s index 4a78b9f1..3328c7b4 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006A6B0.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006A6B0.s @@ -12,8 +12,8 @@ glabel func_8006A6B0 /* 06B2D8 8006A6D8 AFA20044 */ sw $v0, 0x44($sp) /* 06B2DC 8006A6DC 0C01DB16 */ jal load_asset_section_from_rom /* 06B2E0 8006A6E0 24040016 */ li $a0, 22 -/* 06B2E4 8006A6E4 3C138012 */ lui $s3, %hi(D_80121160) # $s3, 0x8012 -/* 06B2E8 8006A6E8 26731160 */ addiu $s3, %lo(D_80121160) # addiu $s3, $s3, 0x1160 +/* 06B2E4 8006A6E4 3C138012 */ lui $s3, %hi(gTempAssetTable) # $s3, 0x8012 +/* 06B2E8 8006A6E8 26731160 */ addiu $s3, %lo(gTempAssetTable) # addiu $s3, $s3, 0x1160 /* 06B2EC 8006A6EC AE620000 */ sw $v0, ($s3) /* 06B2F0 8006A6F0 3C028012 */ lui $v0, %hi(D_801211C0) # $v0, 0x8012 /* 06B2F4 8006A6F4 3C038012 */ lui $v1, %hi(D_80121180) # $v1, 0x8012 @@ -27,8 +27,8 @@ glabel func_8006A6B0 /* 06B310 8006A710 1462FFFB */ bne $v1, $v0, .L8006A700 /* 06B314 8006A714 AC60FFFC */ sw $zero, -4($v1) /* 06B318 8006A718 8E630000 */ lw $v1, ($s3) -/* 06B31C 8006A71C 3C0A8012 */ lui $t2, %hi(D_80121170) # $t2, 0x8012 -/* 06B320 8006A720 254A1170 */ addiu $t2, %lo(D_80121170) # addiu $t2, $t2, 0x1170 +/* 06B31C 8006A71C 3C0A8012 */ lui $t2, %hi(gNumberOfLevelHeaders) # $t2, 0x8012 +/* 06B320 8006A720 254A1170 */ addiu $t2, %lo(gNumberOfLevelHeaders) # addiu $t2, $t2, 0x1170 /* 06B324 8006A724 00007080 */ sll $t6, $zero, 2 /* 06B328 8006A728 AD400000 */ sw $zero, ($t2) /* 06B32C 8006A72C 006E7821 */ addu $t7, $v1, $t6 @@ -54,15 +54,15 @@ glabel func_8006A6B0 /* 06B374 8006A774 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff /* 06B378 8006A778 0C01C327 */ jal allocate_from_main_pool_safe /* 06B37C 8006A77C 00182040 */ sll $a0, $t8, 1 -/* 06B380 8006A780 3C0A8012 */ lui $t2, %hi(D_80121170) # $t2, 0x8012 -/* 06B384 8006A784 254A1170 */ addiu $t2, %lo(D_80121170) # addiu $t2, $t2, 0x1170 +/* 06B380 8006A780 3C0A8012 */ lui $t2, %hi(gNumberOfLevelHeaders) # $t2, 0x8012 +/* 06B384 8006A784 254A1170 */ addiu $t2, %lo(gNumberOfLevelHeaders) # addiu $t2, $t2, 0x1170 /* 06B388 8006A788 8FB90044 */ lw $t9, 0x44($sp) /* 06B38C 8006A78C 8D4C0000 */ lw $t4, ($t2) /* 06B390 8006A790 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B394 8006A794 3C098012 */ lui $t1, %hi(D_80121174) # $t1, 0x8012 +/* 06B394 8006A794 3C098012 */ lui $t1, %hi(gNumberOfWorlds) # $t1, 0x8012 /* 06B398 8006A798 3C108012 */ lui $s0, %hi(gCurrentLevelHeader) # $s0, 0x8012 /* 06B39C 8006A79C 26101168 */ addiu $s0, %lo(gCurrentLevelHeader) # addiu $s0, $s0, 0x1168 -/* 06B3A0 8006A7A0 25291174 */ addiu $t1, %lo(D_80121174) # addiu $t1, $t1, 0x1174 +/* 06B3A0 8006A7A0 25291174 */ addiu $t1, %lo(gNumberOfWorlds) # addiu $t1, $t1, 0x1174 /* 06B3A4 8006A7A4 2508117C */ addiu $t0, %lo(D_80121178+4) # addiu $t0, $t0, 0x117c /* 06B3A8 8006A7A8 240BFFFF */ li $t3, -1 /* 06B3AC 8006A7AC AD020000 */ sw $v0, ($t0) @@ -82,15 +82,15 @@ glabel func_8006A6B0 /* 06B3E0 8006A7E0 0C01DB9A */ jal load_asset_to_address /* 06B3E4 8006A7E4 240700C4 */ li $a3, 196 /* 06B3E8 8006A7E8 8E050000 */ lw $a1, ($s0) -/* 06B3EC 8006A7EC 3C098012 */ lui $t1, %hi(D_80121174) # $t1, 0x8012 -/* 06B3F0 8006A7F0 25291174 */ addiu $t1, %lo(D_80121174) # addiu $t1, $t1, 0x1174 +/* 06B3EC 8006A7EC 3C098012 */ lui $t1, %hi(gNumberOfWorlds) # $t1, 0x8012 +/* 06B3F0 8006A7F0 25291174 */ addiu $t1, %lo(gNumberOfWorlds) # addiu $t1, $t1, 0x1174 /* 06B3F4 8006A7F4 8D2F0000 */ lw $t7, ($t1) /* 06B3F8 8006A7F8 80A40000 */ lb $a0, ($a1) /* 06B3FC 8006A7FC 8FA3002C */ lw $v1, 0x2c($sp) /* 06B400 8006A800 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B404 8006A804 3C0A8012 */ lui $t2, %hi(D_80121170) # $t2, 0x8012 +/* 06B404 8006A804 3C0A8012 */ lui $t2, %hi(gNumberOfLevelHeaders) # $t2, 0x8012 /* 06B408 8006A808 01E4082A */ slt $at, $t7, $a0 -/* 06B40C 8006A80C 254A1170 */ addiu $t2, %lo(D_80121170) # addiu $t2, $t2, 0x1170 +/* 06B40C 8006A80C 254A1170 */ addiu $t2, %lo(gNumberOfLevelHeaders) # addiu $t2, $t2, 0x1170 /* 06B410 8006A810 10200002 */ beqz $at, .L8006A81C /* 06B414 8006A814 2508117C */ addiu $t0, %lo(D_80121178+4) # addiu $t0, $t0, 0x117c /* 06B418 8006A818 AD240000 */ sw $a0, ($t1) @@ -154,14 +154,14 @@ glabel func_8006A6B0 /* 06B4F4 8006A8F4 AD240000 */ sw $a0, ($t1) /* 06B4F8 8006A8F8 0C01C327 */ jal allocate_from_main_pool_safe /* 06B4FC 8006A8FC 34A500FF */ ori $a1, (0xFFFF00FF & 0xFFFF) # ori $a1, $a1, 0xff -/* 06B500 8006A900 3C098012 */ lui $t1, %hi(D_80121174) # $t1, 0x8012 -/* 06B504 8006A904 25291174 */ addiu $t1, %lo(D_80121174) # addiu $t1, $t1, 0x1174 +/* 06B500 8006A900 3C098012 */ lui $t1, %hi(gNumberOfWorlds) # $t1, 0x8012 +/* 06B504 8006A904 25291174 */ addiu $t1, %lo(gNumberOfWorlds) # addiu $t1, $t1, 0x1174 /* 06B508 8006A908 8D2F0000 */ lw $t7, ($t1) /* 06B50C 8006A90C 3C048012 */ lui $a0, %hi(D_80121178) # $a0, 0x8012 /* 06B510 8006A910 24841178 */ addiu $a0, %lo(D_80121178) # addiu $a0, $a0, 0x1178 /* 06B514 8006A914 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B518 8006A918 3C0A8012 */ lui $t2, %hi(D_80121170) # $t2, 0x8012 -/* 06B51C 8006A91C 254A1170 */ addiu $t2, %lo(D_80121170) # addiu $t2, $t2, 0x1170 +/* 06B518 8006A918 3C0A8012 */ lui $t2, %hi(gNumberOfLevelHeaders) # $t2, 0x8012 +/* 06B51C 8006A91C 254A1170 */ addiu $t2, %lo(gNumberOfLevelHeaders) # addiu $t2, $t2, 0x1170 /* 06B520 8006A920 2508117C */ addiu $t0, %lo(D_80121178+4) # addiu $t0, $t0, 0x117c /* 06B524 8006A924 AC820000 */ sw $v0, ($a0) /* 06B528 8006A928 19E0000B */ blez $t7, .L8006A958 @@ -193,10 +193,10 @@ glabel func_8006A6B0 /* 06B584 8006A984 00000000 */ nop /* 06B588 8006A988 8C8F0000 */ lw $t7, ($a0) /* 06B58C 8006A98C 804D0000 */ lb $t5, ($v0) -/* 06B590 8006A990 3C068012 */ lui $a2, %hi(D_80121170) # $a2, 0x8012 +/* 06B590 8006A990 3C068012 */ lui $a2, %hi(gNumberOfLevelHeaders) # $a2, 0x8012 /* 06B594 8006A994 01EDC821 */ addu $t9, $t7, $t5 /* 06B598 8006A998 A3310000 */ sb $s1, ($t9) -/* 06B59C 8006A99C 8CC61170 */ lw $a2, %lo(D_80121170)($a2) +/* 06B59C 8006A99C 8CC61170 */ lw $a2, %lo(gNumberOfLevelHeaders)($a2) /* 06B5A0 8006A9A0 00000000 */ nop .L8006A9A4: /* 06B5A4 8006A9A4 26310001 */ addiu $s1, $s1, 1 @@ -311,8 +311,8 @@ glabel func_8006A6B0 /* 06B73C 8006AB3C 8E640000 */ lw $a0, ($s3) /* 06B740 8006AB40 0C01C450 */ jal free_from_memory_pool /* 06B744 8006AB44 00000000 */ nop -/* 06B748 8006AB48 3C04800E */ lui $a0, %hi(D_800DD324) # $a0, 0x800e -/* 06B74C 8006AB4C 8C84D324 */ lw $a0, %lo(D_800DD324)($a0) +/* 06B748 8006AB48 3C04800E */ lui $a0, %hi(gFunc80068158Length) # $a0, 0x800e +/* 06B74C 8006AB4C 8C84D324 */ lw $a0, %lo(gFunc80068158Length)($a0) /* 06B750 8006AB50 00001825 */ move $v1, $zero /* 06B754 8006AB54 18800009 */ blez $a0, .L8006AB7C /* 06B758 8006AB58 00001025 */ move $v0, $zero @@ -326,12 +326,12 @@ glabel func_8006A6B0 /* 06B774 8006AB74 1420FFFB */ bnez $at, .L8006AB64 /* 06B778 8006AB78 006D1821 */ addu $v1, $v1, $t5 .L8006AB7C: -/* 06B77C 8006AB7C 3C19800E */ lui $t9, %hi(D_800DD320) # $t9, 0x800e -/* 06B780 8006AB80 8F39D320 */ lw $t9, %lo(D_800DD320)($t9) +/* 06B77C 8006AB7C 3C19800E */ lui $t9, %hi(gFunc80068158Checksum) # $t9, 0x800e +/* 06B780 8006AB80 8F39D320 */ lw $t9, %lo(gFunc80068158Checksum)($t9) /* 06B784 8006AB84 00000000 */ nop /* 06B788 8006AB88 10790004 */ beq $v1, $t9, .L8006AB9C /* 06B78C 8006AB8C 8FBF0024 */ lw $ra, 0x24($sp) -/* 06B790 8006AB90 0C01A9A8 */ jal func_8006A6A0 +/* 06B790 8006AB90 0C01A9A8 */ jal disable_button_mask /* 06B794 8006AB94 00000000 */ nop /* 06B798 8006AB98 8FBF0024 */ lw $ra, 0x24($sp) .L8006AB9C: @@ -341,381 +341,3 @@ glabel func_8006A6B0 /* 06B7A8 8006ABA8 8FB30020 */ lw $s3, 0x20($sp) /* 06B7AC 8006ABAC 03E00008 */ jr $ra /* 06B7B0 8006ABB0 27BD0058 */ addiu $sp, $sp, 0x58 - -/* 06B7B4 8006ABB4 04810003 */ bgez $a0, .L8006ABC4 -/* 06B7B8 8006ABB8 3C0E8012 */ lui $t6, %hi(D_80121170) # $t6, 0x8012 -/* 06B7BC 8006ABBC 03E00008 */ jr $ra -/* 06B7C0 8006ABC0 24020E10 */ li $v0, 3600 - -.L8006ABC4: -/* 06B7C4 8006ABC4 8DCE1170 */ lw $t6, %lo(D_80121170)($t6) -/* 06B7C8 8006ABC8 3C0F8012 */ lui $t7, %hi(D_80121178+4) # $t7, 0x8012 -/* 06B7CC 8006ABCC 008E082A */ slt $at, $a0, $t6 -/* 06B7D0 8006ABD0 14200003 */ bnez $at, .L8006ABE0 -/* 06B7D4 8006ABD4 0004C080 */ sll $t8, $a0, 2 -/* 06B7D8 8006ABD8 03E00008 */ jr $ra -/* 06B7DC 8006ABDC 24020E10 */ li $v0, 3600 - -.L8006ABE0: -/* 06B7E0 8006ABE0 8DEF117C */ lw $t7, %lo(D_80121178+4)($t7) -/* 06B7E4 8006ABE4 0304C023 */ subu $t8, $t8, $a0 -/* 06B7E8 8006ABE8 0018C040 */ sll $t8, $t8, 1 -/* 06B7EC 8006ABEC 01F8C821 */ addu $t9, $t7, $t8 -/* 06B7F0 8006ABF0 87220004 */ lh $v0, 4($t9) -/* 06B7F4 8006ABF4 00000000 */ nop -/* 06B7F8 8006ABF8 03E00008 */ jr $ra -/* 06B7FC 8006ABFC 00000000 */ nop - -/* 06B800 8006AC00 AFA50004 */ sw $a1, 4($sp) -/* 06B804 8006AC04 00057600 */ sll $t6, $a1, 0x18 -/* 06B808 8006AC08 AFA60008 */ sw $a2, 8($sp) -/* 06B80C 8006AC0C 0006C600 */ sll $t8, $a2, 0x18 -/* 06B810 8006AC10 00183603 */ sra $a2, $t8, 0x18 -/* 06B814 8006AC14 04810003 */ bgez $a0, .L8006AC24 -/* 06B818 8006AC18 000E2E03 */ sra $a1, $t6, 0x18 -/* 06B81C 8006AC1C 10000002 */ b .L8006AC28 -/* 06B820 8006AC20 00002025 */ move $a0, $zero -.L8006AC24: -/* 06B824 8006AC24 24840001 */ addiu $a0, $a0, 1 -.L8006AC28: -/* 06B828 8006AC28 24010040 */ li $at, 64 -/* 06B82C 8006AC2C 10A1004B */ beq $a1, $at, .L8006AD5C -/* 06B830 8006AC30 2402FFFF */ li $v0, -1 -/* 06B834 8006AC34 2402FFFF */ li $v0, -1 -/* 06B838 8006AC38 14C20017 */ bne $a2, $v0, .L8006AC98 -/* 06B83C 8006AC3C 00000000 */ nop -/* 06B840 8006AC40 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B844 8006AC44 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B848 8006AC48 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B84C 8006AC4C 0082082A */ slt $at, $a0, $v0 -/* 06B850 8006AC50 10200073 */ beqz $at, .L8006AE20 -/* 06B854 8006AC54 00044880 */ sll $t1, $a0, 2 -/* 06B858 8006AC58 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) -/* 06B85C 8006AC5C 01244823 */ subu $t1, $t1, $a0 -/* 06B860 8006AC60 00094840 */ sll $t1, $t1, 1 -/* 06B864 8006AC64 01091821 */ addu $v1, $t0, $t1 -.L8006AC68: -/* 06B868 8006AC68 806A0001 */ lb $t2, 1($v1) -/* 06B86C 8006AC6C 00000000 */ nop -/* 06B870 8006AC70 14AA0003 */ bne $a1, $t2, .L8006AC80 -/* 06B874 8006AC74 00000000 */ nop -/* 06B878 8006AC78 03E00008 */ jr $ra -/* 06B87C 8006AC7C 00801025 */ move $v0, $a0 - -.L8006AC80: -/* 06B880 8006AC80 24840001 */ addiu $a0, $a0, 1 -/* 06B884 8006AC84 0082082A */ slt $at, $a0, $v0 -/* 06B888 8006AC88 1420FFF7 */ bnez $at, .L8006AC68 -/* 06B88C 8006AC8C 24630006 */ addiu $v1, $v1, 6 -/* 06B890 8006AC90 10000064 */ b .L8006AE24 -/* 06B894 8006AC94 2402FFFF */ li $v0, -1 -.L8006AC98: -/* 06B898 8006AC98 14A20016 */ bne $a1, $v0, .L8006ACF4 -/* 06B89C 8006AC9C 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B8A0 8006ACA0 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B8A4 8006ACA4 3C0B8012 */ lui $t3, %hi(D_80121178+4) # $t3, 0x8012 -/* 06B8A8 8006ACA8 0082082A */ slt $at, $a0, $v0 -/* 06B8AC 8006ACAC 1020005C */ beqz $at, .L8006AE20 -/* 06B8B0 8006ACB0 00046080 */ sll $t4, $a0, 2 -/* 06B8B4 8006ACB4 8D6B117C */ lw $t3, %lo(D_80121178+4)($t3) -/* 06B8B8 8006ACB8 01846023 */ subu $t4, $t4, $a0 -/* 06B8BC 8006ACBC 000C6040 */ sll $t4, $t4, 1 -/* 06B8C0 8006ACC0 016C1821 */ addu $v1, $t3, $t4 -.L8006ACC4: -/* 06B8C4 8006ACC4 806D0000 */ lb $t5, ($v1) -/* 06B8C8 8006ACC8 00000000 */ nop -/* 06B8CC 8006ACCC 14CD0003 */ bne $a2, $t5, .L8006ACDC -/* 06B8D0 8006ACD0 00000000 */ nop -/* 06B8D4 8006ACD4 03E00008 */ jr $ra -/* 06B8D8 8006ACD8 00801025 */ move $v0, $a0 - -.L8006ACDC: -/* 06B8DC 8006ACDC 24840001 */ addiu $a0, $a0, 1 -/* 06B8E0 8006ACE0 0082082A */ slt $at, $a0, $v0 -/* 06B8E4 8006ACE4 1420FFF7 */ bnez $at, .L8006ACC4 -/* 06B8E8 8006ACE8 24630006 */ addiu $v1, $v1, 6 -/* 06B8EC 8006ACEC 1000004D */ b .L8006AE24 -/* 06B8F0 8006ACF0 2402FFFF */ li $v0, -1 -.L8006ACF4: -/* 06B8F4 8006ACF4 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B8F8 8006ACF8 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B8FC 8006ACFC 3C0E8012 */ lui $t6, %hi(D_80121178+4) # $t6, 0x8012 -/* 06B900 8006AD00 0082082A */ slt $at, $a0, $v0 -/* 06B904 8006AD04 10200046 */ beqz $at, .L8006AE20 -/* 06B908 8006AD08 00047880 */ sll $t7, $a0, 2 -/* 06B90C 8006AD0C 8DCE117C */ lw $t6, %lo(D_80121178+4)($t6) -/* 06B910 8006AD10 01E47823 */ subu $t7, $t7, $a0 -/* 06B914 8006AD14 000F7840 */ sll $t7, $t7, 1 -/* 06B918 8006AD18 01CF1821 */ addu $v1, $t6, $t7 -.L8006AD1C: -/* 06B91C 8006AD1C 80780001 */ lb $t8, 1($v1) -/* 06B920 8006AD20 00000000 */ nop -/* 06B924 8006AD24 14B80007 */ bne $a1, $t8, .L8006AD44 -/* 06B928 8006AD28 00000000 */ nop -/* 06B92C 8006AD2C 80790000 */ lb $t9, ($v1) -/* 06B930 8006AD30 00000000 */ nop -/* 06B934 8006AD34 14D90003 */ bne $a2, $t9, .L8006AD44 -/* 06B938 8006AD38 00000000 */ nop -/* 06B93C 8006AD3C 03E00008 */ jr $ra -/* 06B940 8006AD40 00801025 */ move $v0, $a0 - -.L8006AD44: -/* 06B944 8006AD44 24840001 */ addiu $a0, $a0, 1 -/* 06B948 8006AD48 0082082A */ slt $at, $a0, $v0 -/* 06B94C 8006AD4C 1420FFF3 */ bnez $at, .L8006AD1C -/* 06B950 8006AD50 24630006 */ addiu $v1, $v1, 6 -/* 06B954 8006AD54 10000033 */ b .L8006AE24 -/* 06B958 8006AD58 2402FFFF */ li $v0, -1 -.L8006AD5C: -/* 06B95C 8006AD5C 14C20017 */ bne $a2, $v0, .L8006ADBC -/* 06B960 8006AD60 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B964 8006AD64 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B968 8006AD68 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06B96C 8006AD6C 0082082A */ slt $at, $a0, $v0 -/* 06B970 8006AD70 1020002B */ beqz $at, .L8006AE20 -/* 06B974 8006AD74 00044880 */ sll $t1, $a0, 2 -/* 06B978 8006AD78 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) -/* 06B97C 8006AD7C 01244823 */ subu $t1, $t1, $a0 -/* 06B980 8006AD80 00094840 */ sll $t1, $t1, 1 -/* 06B984 8006AD84 01091821 */ addu $v1, $t0, $t1 -.L8006AD88: -/* 06B988 8006AD88 806A0001 */ lb $t2, 1($v1) -/* 06B98C 8006AD8C 00000000 */ nop -/* 06B990 8006AD90 314B0040 */ andi $t3, $t2, 0x40 -/* 06B994 8006AD94 11600003 */ beqz $t3, .L8006ADA4 -/* 06B998 8006AD98 00000000 */ nop -/* 06B99C 8006AD9C 03E00008 */ jr $ra -/* 06B9A0 8006ADA0 00801025 */ move $v0, $a0 - -.L8006ADA4: -/* 06B9A4 8006ADA4 24840001 */ addiu $a0, $a0, 1 -/* 06B9A8 8006ADA8 0082082A */ slt $at, $a0, $v0 -/* 06B9AC 8006ADAC 1420FFF6 */ bnez $at, .L8006AD88 -/* 06B9B0 8006ADB0 24630006 */ addiu $v1, $v1, 6 -/* 06B9B4 8006ADB4 1000001B */ b .L8006AE24 -/* 06B9B8 8006ADB8 2402FFFF */ li $v0, -1 -.L8006ADBC: -/* 06B9BC 8006ADBC 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06B9C0 8006ADC0 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06B9C4 8006ADC4 3C0C8012 */ lui $t4, %hi(D_80121178+4) # $t4, 0x8012 -/* 06B9C8 8006ADC8 0082082A */ slt $at, $a0, $v0 -/* 06B9CC 8006ADCC 10200014 */ beqz $at, .L8006AE20 -/* 06B9D0 8006ADD0 00046880 */ sll $t5, $a0, 2 -/* 06B9D4 8006ADD4 8D8C117C */ lw $t4, %lo(D_80121178+4)($t4) -/* 06B9D8 8006ADD8 01A46823 */ subu $t5, $t5, $a0 -/* 06B9DC 8006ADDC 000D6840 */ sll $t5, $t5, 1 -/* 06B9E0 8006ADE0 018D1821 */ addu $v1, $t4, $t5 -.L8006ADE4: -/* 06B9E4 8006ADE4 806E0001 */ lb $t6, 1($v1) -/* 06B9E8 8006ADE8 00000000 */ nop -/* 06B9EC 8006ADEC 31CF0040 */ andi $t7, $t6, 0x40 -/* 06B9F0 8006ADF0 11E00007 */ beqz $t7, .L8006AE10 -/* 06B9F4 8006ADF4 00000000 */ nop -/* 06B9F8 8006ADF8 80780000 */ lb $t8, ($v1) -/* 06B9FC 8006ADFC 00000000 */ nop -/* 06BA00 8006AE00 14D80003 */ bne $a2, $t8, .L8006AE10 -/* 06BA04 8006AE04 00000000 */ nop -/* 06BA08 8006AE08 03E00008 */ jr $ra -/* 06BA0C 8006AE0C 00801025 */ move $v0, $a0 - -.L8006AE10: -/* 06BA10 8006AE10 24840001 */ addiu $a0, $a0, 1 -/* 06BA14 8006AE14 0082082A */ slt $at, $a0, $v0 -/* 06BA18 8006AE18 1420FFF2 */ bnez $at, .L8006ADE4 -/* 06BA1C 8006AE1C 24630006 */ addiu $v1, $v1, 6 -.L8006AE20: -/* 06BA20 8006AE20 2402FFFF */ li $v0, -1 -.L8006AE24: -/* 06BA24 8006AE24 03E00008 */ jr $ra -/* 06BA28 8006AE28 00000000 */ nop - -/* 06BA2C 8006AE2C 3C028012 */ lui $v0, %hi(D_80121170) # $v0, 0x8012 -/* 06BA30 8006AE30 8C421170 */ lw $v0, %lo(D_80121170)($v0) -/* 06BA34 8006AE34 AFA50004 */ sw $a1, 4($sp) -/* 06BA38 8006AE38 00057600 */ sll $t6, $a1, 0x18 -/* 06BA3C 8006AE3C AFA60008 */ sw $a2, 8($sp) -/* 06BA40 8006AE40 0006C600 */ sll $t8, $a2, 0x18 -/* 06BA44 8006AE44 0082082A */ slt $at, $a0, $v0 -/* 06BA48 8006AE48 00183603 */ sra $a2, $t8, 0x18 -/* 06BA4C 8006AE4C 14200002 */ bnez $at, .L8006AE58 -/* 06BA50 8006AE50 000E2E03 */ sra $a1, $t6, 0x18 -/* 06BA54 8006AE54 00402025 */ move $a0, $v0 -.L8006AE58: -/* 06BA58 8006AE58 24010040 */ li $at, 64 -/* 06BA5C 8006AE5C 10A10040 */ beq $a1, $at, .L8006AF60 -/* 06BA60 8006AE60 2484FFFF */ addiu $a0, $a0, -1 -/* 06BA64 8006AE64 2402FFFF */ li $v0, -1 -/* 06BA68 8006AE68 14C20013 */ bne $a2, $v0, .L8006AEB8 -/* 06BA6C 8006AE6C 00000000 */ nop -/* 06BA70 8006AE70 04800066 */ bltz $a0, .L8006B00C -/* 06BA74 8006AE74 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06BA78 8006AE78 00044880 */ sll $t1, $a0, 2 -/* 06BA7C 8006AE7C 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) -/* 06BA80 8006AE80 01244823 */ subu $t1, $t1, $a0 -/* 06BA84 8006AE84 00094840 */ sll $t1, $t1, 1 -/* 06BA88 8006AE88 01091021 */ addu $v0, $t0, $t1 -.L8006AE8C: -/* 06BA8C 8006AE8C 804A0001 */ lb $t2, 1($v0) -/* 06BA90 8006AE90 00000000 */ nop -/* 06BA94 8006AE94 14AA0003 */ bne $a1, $t2, .L8006AEA4 -/* 06BA98 8006AE98 00000000 */ nop -/* 06BA9C 8006AE9C 03E00008 */ jr $ra -/* 06BAA0 8006AEA0 00801025 */ move $v0, $a0 - -.L8006AEA4: -/* 06BAA4 8006AEA4 2484FFFF */ addiu $a0, $a0, -1 -/* 06BAA8 8006AEA8 0481FFF8 */ bgez $a0, .L8006AE8C -/* 06BAAC 8006AEAC 2442FFFA */ addiu $v0, $v0, -6 -/* 06BAB0 8006AEB0 10000057 */ b .L8006B010 -/* 06BAB4 8006AEB4 2402FFFF */ li $v0, -1 -.L8006AEB8: -/* 06BAB8 8006AEB8 14A20013 */ bne $a1, $v0, .L8006AF08 -/* 06BABC 8006AEBC 00000000 */ nop -/* 06BAC0 8006AEC0 04800052 */ bltz $a0, .L8006B00C -/* 06BAC4 8006AEC4 3C0B8012 */ lui $t3, %hi(D_80121178+4) # $t3, 0x8012 -/* 06BAC8 8006AEC8 00046080 */ sll $t4, $a0, 2 -/* 06BACC 8006AECC 8D6B117C */ lw $t3, %lo(D_80121178+4)($t3) -/* 06BAD0 8006AED0 01846023 */ subu $t4, $t4, $a0 -/* 06BAD4 8006AED4 000C6040 */ sll $t4, $t4, 1 -/* 06BAD8 8006AED8 016C1021 */ addu $v0, $t3, $t4 -.L8006AEDC: -/* 06BADC 8006AEDC 804D0000 */ lb $t5, ($v0) -/* 06BAE0 8006AEE0 00000000 */ nop -/* 06BAE4 8006AEE4 14CD0003 */ bne $a2, $t5, .L8006AEF4 -/* 06BAE8 8006AEE8 00000000 */ nop -/* 06BAEC 8006AEEC 03E00008 */ jr $ra -/* 06BAF0 8006AEF0 00801025 */ move $v0, $a0 - -.L8006AEF4: -/* 06BAF4 8006AEF4 2484FFFF */ addiu $a0, $a0, -1 -/* 06BAF8 8006AEF8 0481FFF8 */ bgez $a0, .L8006AEDC -/* 06BAFC 8006AEFC 2442FFFA */ addiu $v0, $v0, -6 -/* 06BB00 8006AF00 10000043 */ b .L8006B010 -/* 06BB04 8006AF04 2402FFFF */ li $v0, -1 -.L8006AF08: -/* 06BB08 8006AF08 04800040 */ bltz $a0, .L8006B00C -/* 06BB0C 8006AF0C 3C0E8012 */ lui $t6, %hi(D_80121178+4) # $t6, 0x8012 -/* 06BB10 8006AF10 00047880 */ sll $t7, $a0, 2 -/* 06BB14 8006AF14 8DCE117C */ lw $t6, %lo(D_80121178+4)($t6) -/* 06BB18 8006AF18 01E47823 */ subu $t7, $t7, $a0 -/* 06BB1C 8006AF1C 000F7840 */ sll $t7, $t7, 1 -/* 06BB20 8006AF20 01CF1021 */ addu $v0, $t6, $t7 -.L8006AF24: -/* 06BB24 8006AF24 80580001 */ lb $t8, 1($v0) -/* 06BB28 8006AF28 00000000 */ nop -/* 06BB2C 8006AF2C 14B80007 */ bne $a1, $t8, .L8006AF4C -/* 06BB30 8006AF30 00000000 */ nop -/* 06BB34 8006AF34 80590000 */ lb $t9, ($v0) -/* 06BB38 8006AF38 00000000 */ nop -/* 06BB3C 8006AF3C 14D90003 */ bne $a2, $t9, .L8006AF4C -/* 06BB40 8006AF40 00000000 */ nop -/* 06BB44 8006AF44 03E00008 */ jr $ra -/* 06BB48 8006AF48 00801025 */ move $v0, $a0 - -.L8006AF4C: -/* 06BB4C 8006AF4C 2484FFFF */ addiu $a0, $a0, -1 -/* 06BB50 8006AF50 0481FFF4 */ bgez $a0, .L8006AF24 -/* 06BB54 8006AF54 2442FFFA */ addiu $v0, $v0, -6 -/* 06BB58 8006AF58 1000002D */ b .L8006B010 -/* 06BB5C 8006AF5C 2402FFFF */ li $v0, -1 -.L8006AF60: -/* 06BB60 8006AF60 2402FFFF */ li $v0, -1 -/* 06BB64 8006AF64 14C20014 */ bne $a2, $v0, .L8006AFB8 -/* 06BB68 8006AF68 00000000 */ nop -/* 06BB6C 8006AF6C 04800027 */ bltz $a0, .L8006B00C -/* 06BB70 8006AF70 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 -/* 06BB74 8006AF74 00044880 */ sll $t1, $a0, 2 -/* 06BB78 8006AF78 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) -/* 06BB7C 8006AF7C 01244823 */ subu $t1, $t1, $a0 -/* 06BB80 8006AF80 00094840 */ sll $t1, $t1, 1 -/* 06BB84 8006AF84 01091021 */ addu $v0, $t0, $t1 -.L8006AF88: -/* 06BB88 8006AF88 804A0001 */ lb $t2, 1($v0) -/* 06BB8C 8006AF8C 00000000 */ nop -/* 06BB90 8006AF90 314B0040 */ andi $t3, $t2, 0x40 -/* 06BB94 8006AF94 11600003 */ beqz $t3, .L8006AFA4 -/* 06BB98 8006AF98 00000000 */ nop -/* 06BB9C 8006AF9C 03E00008 */ jr $ra -/* 06BBA0 8006AFA0 00801025 */ move $v0, $a0 - -.L8006AFA4: -/* 06BBA4 8006AFA4 2484FFFF */ addiu $a0, $a0, -1 -/* 06BBA8 8006AFA8 0481FFF7 */ bgez $a0, .L8006AF88 -/* 06BBAC 8006AFAC 2442FFFA */ addiu $v0, $v0, -6 -/* 06BBB0 8006AFB0 10000017 */ b .L8006B010 -/* 06BBB4 8006AFB4 2402FFFF */ li $v0, -1 -.L8006AFB8: -/* 06BBB8 8006AFB8 04800014 */ bltz $a0, .L8006B00C -/* 06BBBC 8006AFBC 3C0C8012 */ lui $t4, %hi(D_80121178+4) # $t4, 0x8012 -/* 06BBC0 8006AFC0 00046880 */ sll $t5, $a0, 2 -/* 06BBC4 8006AFC4 8D8C117C */ lw $t4, %lo(D_80121178+4)($t4) -/* 06BBC8 8006AFC8 01A46823 */ subu $t5, $t5, $a0 -/* 06BBCC 8006AFCC 000D6840 */ sll $t5, $t5, 1 -/* 06BBD0 8006AFD0 018D1021 */ addu $v0, $t4, $t5 -.L8006AFD4: -/* 06BBD4 8006AFD4 804E0001 */ lb $t6, 1($v0) -/* 06BBD8 8006AFD8 00000000 */ nop -/* 06BBDC 8006AFDC 31CF0040 */ andi $t7, $t6, 0x40 -/* 06BBE0 8006AFE0 11E00007 */ beqz $t7, .L8006B000 -/* 06BBE4 8006AFE4 00000000 */ nop -/* 06BBE8 8006AFE8 80580000 */ lb $t8, ($v0) -/* 06BBEC 8006AFEC 00000000 */ nop -/* 06BBF0 8006AFF0 14D80003 */ bne $a2, $t8, .L8006B000 -/* 06BBF4 8006AFF4 00000000 */ nop -/* 06BBF8 8006AFF8 03E00008 */ jr $ra -/* 06BBFC 8006AFFC 00801025 */ move $v0, $a0 - -.L8006B000: -/* 06BC00 8006B000 2484FFFF */ addiu $a0, $a0, -1 -/* 06BC04 8006B004 0481FFF3 */ bgez $a0, .L8006AFD4 -/* 06BC08 8006B008 2442FFFA */ addiu $v0, $v0, -6 -.L8006B00C: -/* 06BC0C 8006B00C 2402FFFF */ li $v0, -1 -.L8006B010: -/* 06BC10 8006B010 03E00008 */ jr $ra -/* 06BC14 8006B014 00000000 */ nop - -/* 06BC18 8006B018 00047600 */ sll $t6, $a0, 0x18 -/* 06BC1C 8006B01C 000E7E03 */ sra $t7, $t6, 0x18 -/* 06BC20 8006B020 05E00009 */ bltz $t7, .L8006B048 -/* 06BC24 8006B024 AFA40000 */ sw $a0, ($sp) -/* 06BC28 8006B028 29E10010 */ slti $at, $t7, 0x10 -/* 06BC2C 8006B02C 10200006 */ beqz $at, .L8006B048 -/* 06BC30 8006B030 000FC080 */ sll $t8, $t7, 2 -/* 06BC34 8006B034 3C028012 */ lui $v0, %hi(D_80121180) # $v0, 0x8012 -/* 06BC38 8006B038 00581021 */ addu $v0, $v0, $t8 -/* 06BC3C 8006B03C 8C421180 */ lw $v0, %lo(D_80121180)($v0) -/* 06BC40 8006B040 03E00008 */ jr $ra -/* 06BC44 8006B044 00000000 */ nop - -.L8006B048: -/* 06BC48 8006B048 00001025 */ move $v0, $zero -/* 06BC4C 8006B04C 03E00008 */ jr $ra -/* 06BC50 8006B050 00000000 */ nop - -/* 06BC54 8006B054 3C058012 */ lui $a1, %hi(D_80121170) # $a1, 0x8012 -/* 06BC58 8006B058 8CA51170 */ lw $a1, %lo(D_80121170)($a1) -/* 06BC5C 8006B05C AFA40000 */ sw $a0, ($sp) -/* 06BC60 8006B060 00047600 */ sll $t6, $a0, 0x18 -/* 06BC64 8006B064 000E2603 */ sra $a0, $t6, 0x18 -/* 06BC68 8006B068 18A0000E */ blez $a1, .L8006B0A4 -/* 06BC6C 8006B06C 00001825 */ move $v1, $zero -/* 06BC70 8006B070 3C068012 */ lui $a2, %hi(D_80121178+4) # $a2, 0x8012 -/* 06BC74 8006B074 00053880 */ sll $a3, $a1, 2 -/* 06BC78 8006B078 00E53823 */ subu $a3, $a3, $a1 -/* 06BC7C 8006B07C 8CC6117C */ lw $a2, %lo(D_80121178+4)($a2) -/* 06BC80 8006B080 00073840 */ sll $a3, $a3, 1 -/* 06BC84 8006B084 00001025 */ move $v0, $zero -.L8006B088: -/* 06BC88 8006B088 80D80000 */ lb $t8, ($a2) -/* 06BC8C 8006B08C 24420006 */ addiu $v0, $v0, 6 -/* 06BC90 8006B090 14980002 */ bne $a0, $t8, .L8006B09C -/* 06BC94 8006B094 0047082A */ slt $at, $v0, $a3 -/* 06BC98 8006B098 24630001 */ addiu $v1, $v1, 1 -.L8006B09C: -/* 06BC9C 8006B09C 1420FFFA */ bnez $at, .L8006B088 -/* 06BCA0 8006B0A0 24C60006 */ addiu $a2, $a2, 6 -.L8006B0A4: -/* 06BCA4 8006B0A4 03E00008 */ jr $ra -/* 06BCA8 8006B0A8 00601025 */ move $v0, $v1 - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006AC00.s b/asm/non_matchings/unknown_06B2B0/func_8006AC00.s new file mode 100644 index 00000000..a55a7512 --- /dev/null +++ b/asm/non_matchings/unknown_06B2B0/func_8006AC00.s @@ -0,0 +1,159 @@ +# Unused +glabel func_8006AC00 +/* 06B800 8006AC00 AFA50004 */ sw $a1, 4($sp) +/* 06B804 8006AC04 00057600 */ sll $t6, $a1, 0x18 +/* 06B808 8006AC08 AFA60008 */ sw $a2, 8($sp) +/* 06B80C 8006AC0C 0006C600 */ sll $t8, $a2, 0x18 +/* 06B810 8006AC10 00183603 */ sra $a2, $t8, 0x18 +/* 06B814 8006AC14 04810003 */ bgez $a0, .L8006AC24 +/* 06B818 8006AC18 000E2E03 */ sra $a1, $t6, 0x18 +/* 06B81C 8006AC1C 10000002 */ b .L8006AC28 +/* 06B820 8006AC20 00002025 */ move $a0, $zero +.L8006AC24: +/* 06B824 8006AC24 24840001 */ addiu $a0, $a0, 1 +.L8006AC28: +/* 06B828 8006AC28 24010040 */ li $at, 64 +/* 06B82C 8006AC2C 10A1004B */ beq $a1, $at, .L8006AD5C +/* 06B830 8006AC30 2402FFFF */ li $v0, -1 +/* 06B834 8006AC34 2402FFFF */ li $v0, -1 +/* 06B838 8006AC38 14C20017 */ bne $a2, $v0, .L8006AC98 +/* 06B83C 8006AC3C 00000000 */ nop +/* 06B840 8006AC40 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B844 8006AC44 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B848 8006AC48 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 +/* 06B84C 8006AC4C 0082082A */ slt $at, $a0, $v0 +/* 06B850 8006AC50 10200073 */ beqz $at, .L8006AE20 +/* 06B854 8006AC54 00044880 */ sll $t1, $a0, 2 +/* 06B858 8006AC58 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) +/* 06B85C 8006AC5C 01244823 */ subu $t1, $t1, $a0 +/* 06B860 8006AC60 00094840 */ sll $t1, $t1, 1 +/* 06B864 8006AC64 01091821 */ addu $v1, $t0, $t1 +.L8006AC68: +/* 06B868 8006AC68 806A0001 */ lb $t2, 1($v1) +/* 06B86C 8006AC6C 00000000 */ nop +/* 06B870 8006AC70 14AA0003 */ bne $a1, $t2, .L8006AC80 +/* 06B874 8006AC74 00000000 */ nop +/* 06B878 8006AC78 03E00008 */ jr $ra +/* 06B87C 8006AC7C 00801025 */ move $v0, $a0 +.L8006AC80: +/* 06B880 8006AC80 24840001 */ addiu $a0, $a0, 1 +/* 06B884 8006AC84 0082082A */ slt $at, $a0, $v0 +/* 06B888 8006AC88 1420FFF7 */ bnez $at, .L8006AC68 +/* 06B88C 8006AC8C 24630006 */ addiu $v1, $v1, 6 +/* 06B890 8006AC90 10000064 */ b .L8006AE24 +/* 06B894 8006AC94 2402FFFF */ li $v0, -1 +.L8006AC98: +/* 06B898 8006AC98 14A20016 */ bne $a1, $v0, .L8006ACF4 +/* 06B89C 8006AC9C 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B8A0 8006ACA0 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B8A4 8006ACA4 3C0B8012 */ lui $t3, %hi(D_80121178+4) # $t3, 0x8012 +/* 06B8A8 8006ACA8 0082082A */ slt $at, $a0, $v0 +/* 06B8AC 8006ACAC 1020005C */ beqz $at, .L8006AE20 +/* 06B8B0 8006ACB0 00046080 */ sll $t4, $a0, 2 +/* 06B8B4 8006ACB4 8D6B117C */ lw $t3, %lo(D_80121178+4)($t3) +/* 06B8B8 8006ACB8 01846023 */ subu $t4, $t4, $a0 +/* 06B8BC 8006ACBC 000C6040 */ sll $t4, $t4, 1 +/* 06B8C0 8006ACC0 016C1821 */ addu $v1, $t3, $t4 +.L8006ACC4: +/* 06B8C4 8006ACC4 806D0000 */ lb $t5, ($v1) +/* 06B8C8 8006ACC8 00000000 */ nop +/* 06B8CC 8006ACCC 14CD0003 */ bne $a2, $t5, .L8006ACDC +/* 06B8D0 8006ACD0 00000000 */ nop +/* 06B8D4 8006ACD4 03E00008 */ jr $ra +/* 06B8D8 8006ACD8 00801025 */ move $v0, $a0 +.L8006ACDC: +/* 06B8DC 8006ACDC 24840001 */ addiu $a0, $a0, 1 +/* 06B8E0 8006ACE0 0082082A */ slt $at, $a0, $v0 +/* 06B8E4 8006ACE4 1420FFF7 */ bnez $at, .L8006ACC4 +/* 06B8E8 8006ACE8 24630006 */ addiu $v1, $v1, 6 +/* 06B8EC 8006ACEC 1000004D */ b .L8006AE24 +/* 06B8F0 8006ACF0 2402FFFF */ li $v0, -1 +.L8006ACF4: +/* 06B8F4 8006ACF4 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B8F8 8006ACF8 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B8FC 8006ACFC 3C0E8012 */ lui $t6, %hi(D_80121178+4) # $t6, 0x8012 +/* 06B900 8006AD00 0082082A */ slt $at, $a0, $v0 +/* 06B904 8006AD04 10200046 */ beqz $at, .L8006AE20 +/* 06B908 8006AD08 00047880 */ sll $t7, $a0, 2 +/* 06B90C 8006AD0C 8DCE117C */ lw $t6, %lo(D_80121178+4)($t6) +/* 06B910 8006AD10 01E47823 */ subu $t7, $t7, $a0 +/* 06B914 8006AD14 000F7840 */ sll $t7, $t7, 1 +/* 06B918 8006AD18 01CF1821 */ addu $v1, $t6, $t7 +.L8006AD1C: +/* 06B91C 8006AD1C 80780001 */ lb $t8, 1($v1) +/* 06B920 8006AD20 00000000 */ nop +/* 06B924 8006AD24 14B80007 */ bne $a1, $t8, .L8006AD44 +/* 06B928 8006AD28 00000000 */ nop +/* 06B92C 8006AD2C 80790000 */ lb $t9, ($v1) +/* 06B930 8006AD30 00000000 */ nop +/* 06B934 8006AD34 14D90003 */ bne $a2, $t9, .L8006AD44 +/* 06B938 8006AD38 00000000 */ nop +/* 06B93C 8006AD3C 03E00008 */ jr $ra +/* 06B940 8006AD40 00801025 */ move $v0, $a0 +.L8006AD44: +/* 06B944 8006AD44 24840001 */ addiu $a0, $a0, 1 +/* 06B948 8006AD48 0082082A */ slt $at, $a0, $v0 +/* 06B94C 8006AD4C 1420FFF3 */ bnez $at, .L8006AD1C +/* 06B950 8006AD50 24630006 */ addiu $v1, $v1, 6 +/* 06B954 8006AD54 10000033 */ b .L8006AE24 +/* 06B958 8006AD58 2402FFFF */ li $v0, -1 +.L8006AD5C: +/* 06B95C 8006AD5C 14C20017 */ bne $a2, $v0, .L8006ADBC +/* 06B960 8006AD60 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B964 8006AD64 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B968 8006AD68 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 +/* 06B96C 8006AD6C 0082082A */ slt $at, $a0, $v0 +/* 06B970 8006AD70 1020002B */ beqz $at, .L8006AE20 +/* 06B974 8006AD74 00044880 */ sll $t1, $a0, 2 +/* 06B978 8006AD78 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) +/* 06B97C 8006AD7C 01244823 */ subu $t1, $t1, $a0 +/* 06B980 8006AD80 00094840 */ sll $t1, $t1, 1 +/* 06B984 8006AD84 01091821 */ addu $v1, $t0, $t1 +.L8006AD88: +/* 06B988 8006AD88 806A0001 */ lb $t2, 1($v1) +/* 06B98C 8006AD8C 00000000 */ nop +/* 06B990 8006AD90 314B0040 */ andi $t3, $t2, 0x40 +/* 06B994 8006AD94 11600003 */ beqz $t3, .L8006ADA4 +/* 06B998 8006AD98 00000000 */ nop +/* 06B99C 8006AD9C 03E00008 */ jr $ra +/* 06B9A0 8006ADA0 00801025 */ move $v0, $a0 +.L8006ADA4: +/* 06B9A4 8006ADA4 24840001 */ addiu $a0, $a0, 1 +/* 06B9A8 8006ADA8 0082082A */ slt $at, $a0, $v0 +/* 06B9AC 8006ADAC 1420FFF6 */ bnez $at, .L8006AD88 +/* 06B9B0 8006ADB0 24630006 */ addiu $v1, $v1, 6 +/* 06B9B4 8006ADB4 1000001B */ b .L8006AE24 +/* 06B9B8 8006ADB8 2402FFFF */ li $v0, -1 +.L8006ADBC: +/* 06B9BC 8006ADBC 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06B9C0 8006ADC0 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06B9C4 8006ADC4 3C0C8012 */ lui $t4, %hi(D_80121178+4) # $t4, 0x8012 +/* 06B9C8 8006ADC8 0082082A */ slt $at, $a0, $v0 +/* 06B9CC 8006ADCC 10200014 */ beqz $at, .L8006AE20 +/* 06B9D0 8006ADD0 00046880 */ sll $t5, $a0, 2 +/* 06B9D4 8006ADD4 8D8C117C */ lw $t4, %lo(D_80121178+4)($t4) +/* 06B9D8 8006ADD8 01A46823 */ subu $t5, $t5, $a0 +/* 06B9DC 8006ADDC 000D6840 */ sll $t5, $t5, 1 +/* 06B9E0 8006ADE0 018D1821 */ addu $v1, $t4, $t5 +.L8006ADE4: +/* 06B9E4 8006ADE4 806E0001 */ lb $t6, 1($v1) +/* 06B9E8 8006ADE8 00000000 */ nop +/* 06B9EC 8006ADEC 31CF0040 */ andi $t7, $t6, 0x40 +/* 06B9F0 8006ADF0 11E00007 */ beqz $t7, .L8006AE10 +/* 06B9F4 8006ADF4 00000000 */ nop +/* 06B9F8 8006ADF8 80780000 */ lb $t8, ($v1) +/* 06B9FC 8006ADFC 00000000 */ nop +/* 06BA00 8006AE00 14D80003 */ bne $a2, $t8, .L8006AE10 +/* 06BA04 8006AE04 00000000 */ nop +/* 06BA08 8006AE08 03E00008 */ jr $ra +/* 06BA0C 8006AE0C 00801025 */ move $v0, $a0 +.L8006AE10: +/* 06BA10 8006AE10 24840001 */ addiu $a0, $a0, 1 +/* 06BA14 8006AE14 0082082A */ slt $at, $a0, $v0 +/* 06BA18 8006AE18 1420FFF2 */ bnez $at, .L8006ADE4 +/* 06BA1C 8006AE1C 24630006 */ addiu $v1, $v1, 6 +.L8006AE20: +/* 06BA20 8006AE20 2402FFFF */ li $v0, -1 +.L8006AE24: +/* 06BA24 8006AE24 03E00008 */ jr $ra +/* 06BA28 8006AE28 00000000 */ nop diff --git a/asm/non_matchings/unknown_06B2B0/func_8006AE2C.s b/asm/non_matchings/unknown_06B2B0/func_8006AE2C.s new file mode 100644 index 00000000..a58f1ef0 --- /dev/null +++ b/asm/non_matchings/unknown_06B2B0/func_8006AE2C.s @@ -0,0 +1,142 @@ +# Unused. +glabel func_8006AE2C +/* 06BA2C 8006AE2C 3C028012 */ lui $v0, %hi(gNumberOfLevelHeaders) # $v0, 0x8012 +/* 06BA30 8006AE30 8C421170 */ lw $v0, %lo(gNumberOfLevelHeaders)($v0) +/* 06BA34 8006AE34 AFA50004 */ sw $a1, 4($sp) +/* 06BA38 8006AE38 00057600 */ sll $t6, $a1, 0x18 +/* 06BA3C 8006AE3C AFA60008 */ sw $a2, 8($sp) +/* 06BA40 8006AE40 0006C600 */ sll $t8, $a2, 0x18 +/* 06BA44 8006AE44 0082082A */ slt $at, $a0, $v0 +/* 06BA48 8006AE48 00183603 */ sra $a2, $t8, 0x18 +/* 06BA4C 8006AE4C 14200002 */ bnez $at, .L8006AE58 +/* 06BA50 8006AE50 000E2E03 */ sra $a1, $t6, 0x18 +/* 06BA54 8006AE54 00402025 */ move $a0, $v0 +.L8006AE58: +/* 06BA58 8006AE58 24010040 */ li $at, 64 +/* 06BA5C 8006AE5C 10A10040 */ beq $a1, $at, .L8006AF60 +/* 06BA60 8006AE60 2484FFFF */ addiu $a0, $a0, -1 +/* 06BA64 8006AE64 2402FFFF */ li $v0, -1 +/* 06BA68 8006AE68 14C20013 */ bne $a2, $v0, .L8006AEB8 +/* 06BA6C 8006AE6C 00000000 */ nop +/* 06BA70 8006AE70 04800066 */ bltz $a0, .L8006B00C +/* 06BA74 8006AE74 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 +/* 06BA78 8006AE78 00044880 */ sll $t1, $a0, 2 +/* 06BA7C 8006AE7C 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) +/* 06BA80 8006AE80 01244823 */ subu $t1, $t1, $a0 +/* 06BA84 8006AE84 00094840 */ sll $t1, $t1, 1 +/* 06BA88 8006AE88 01091021 */ addu $v0, $t0, $t1 +.L8006AE8C: +/* 06BA8C 8006AE8C 804A0001 */ lb $t2, 1($v0) +/* 06BA90 8006AE90 00000000 */ nop +/* 06BA94 8006AE94 14AA0003 */ bne $a1, $t2, .L8006AEA4 +/* 06BA98 8006AE98 00000000 */ nop +/* 06BA9C 8006AE9C 03E00008 */ jr $ra +/* 06BAA0 8006AEA0 00801025 */ move $v0, $a0 +.L8006AEA4: +/* 06BAA4 8006AEA4 2484FFFF */ addiu $a0, $a0, -1 +/* 06BAA8 8006AEA8 0481FFF8 */ bgez $a0, .L8006AE8C +/* 06BAAC 8006AEAC 2442FFFA */ addiu $v0, $v0, -6 +/* 06BAB0 8006AEB0 10000057 */ b .L8006B010 +/* 06BAB4 8006AEB4 2402FFFF */ li $v0, -1 +.L8006AEB8: +/* 06BAB8 8006AEB8 14A20013 */ bne $a1, $v0, .L8006AF08 +/* 06BABC 8006AEBC 00000000 */ nop +/* 06BAC0 8006AEC0 04800052 */ bltz $a0, .L8006B00C +/* 06BAC4 8006AEC4 3C0B8012 */ lui $t3, %hi(D_80121178+4) # $t3, 0x8012 +/* 06BAC8 8006AEC8 00046080 */ sll $t4, $a0, 2 +/* 06BACC 8006AECC 8D6B117C */ lw $t3, %lo(D_80121178+4)($t3) +/* 06BAD0 8006AED0 01846023 */ subu $t4, $t4, $a0 +/* 06BAD4 8006AED4 000C6040 */ sll $t4, $t4, 1 +/* 06BAD8 8006AED8 016C1021 */ addu $v0, $t3, $t4 +.L8006AEDC: +/* 06BADC 8006AEDC 804D0000 */ lb $t5, ($v0) +/* 06BAE0 8006AEE0 00000000 */ nop +/* 06BAE4 8006AEE4 14CD0003 */ bne $a2, $t5, .L8006AEF4 +/* 06BAE8 8006AEE8 00000000 */ nop +/* 06BAEC 8006AEEC 03E00008 */ jr $ra +/* 06BAF0 8006AEF0 00801025 */ move $v0, $a0 +.L8006AEF4: +/* 06BAF4 8006AEF4 2484FFFF */ addiu $a0, $a0, -1 +/* 06BAF8 8006AEF8 0481FFF8 */ bgez $a0, .L8006AEDC +/* 06BAFC 8006AEFC 2442FFFA */ addiu $v0, $v0, -6 +/* 06BB00 8006AF00 10000043 */ b .L8006B010 +/* 06BB04 8006AF04 2402FFFF */ li $v0, -1 +.L8006AF08: +/* 06BB08 8006AF08 04800040 */ bltz $a0, .L8006B00C +/* 06BB0C 8006AF0C 3C0E8012 */ lui $t6, %hi(D_80121178+4) # $t6, 0x8012 +/* 06BB10 8006AF10 00047880 */ sll $t7, $a0, 2 +/* 06BB14 8006AF14 8DCE117C */ lw $t6, %lo(D_80121178+4)($t6) +/* 06BB18 8006AF18 01E47823 */ subu $t7, $t7, $a0 +/* 06BB1C 8006AF1C 000F7840 */ sll $t7, $t7, 1 +/* 06BB20 8006AF20 01CF1021 */ addu $v0, $t6, $t7 +.L8006AF24: +/* 06BB24 8006AF24 80580001 */ lb $t8, 1($v0) +/* 06BB28 8006AF28 00000000 */ nop +/* 06BB2C 8006AF2C 14B80007 */ bne $a1, $t8, .L8006AF4C +/* 06BB30 8006AF30 00000000 */ nop +/* 06BB34 8006AF34 80590000 */ lb $t9, ($v0) +/* 06BB38 8006AF38 00000000 */ nop +/* 06BB3C 8006AF3C 14D90003 */ bne $a2, $t9, .L8006AF4C +/* 06BB40 8006AF40 00000000 */ nop +/* 06BB44 8006AF44 03E00008 */ jr $ra +/* 06BB48 8006AF48 00801025 */ move $v0, $a0 +.L8006AF4C: +/* 06BB4C 8006AF4C 2484FFFF */ addiu $a0, $a0, -1 +/* 06BB50 8006AF50 0481FFF4 */ bgez $a0, .L8006AF24 +/* 06BB54 8006AF54 2442FFFA */ addiu $v0, $v0, -6 +/* 06BB58 8006AF58 1000002D */ b .L8006B010 +/* 06BB5C 8006AF5C 2402FFFF */ li $v0, -1 +.L8006AF60: +/* 06BB60 8006AF60 2402FFFF */ li $v0, -1 +/* 06BB64 8006AF64 14C20014 */ bne $a2, $v0, .L8006AFB8 +/* 06BB68 8006AF68 00000000 */ nop +/* 06BB6C 8006AF6C 04800027 */ bltz $a0, .L8006B00C +/* 06BB70 8006AF70 3C088012 */ lui $t0, %hi(D_80121178+4) # $t0, 0x8012 +/* 06BB74 8006AF74 00044880 */ sll $t1, $a0, 2 +/* 06BB78 8006AF78 8D08117C */ lw $t0, %lo(D_80121178+4)($t0) +/* 06BB7C 8006AF7C 01244823 */ subu $t1, $t1, $a0 +/* 06BB80 8006AF80 00094840 */ sll $t1, $t1, 1 +/* 06BB84 8006AF84 01091021 */ addu $v0, $t0, $t1 +.L8006AF88: +/* 06BB88 8006AF88 804A0001 */ lb $t2, 1($v0) +/* 06BB8C 8006AF8C 00000000 */ nop +/* 06BB90 8006AF90 314B0040 */ andi $t3, $t2, 0x40 +/* 06BB94 8006AF94 11600003 */ beqz $t3, .L8006AFA4 +/* 06BB98 8006AF98 00000000 */ nop +/* 06BB9C 8006AF9C 03E00008 */ jr $ra +/* 06BBA0 8006AFA0 00801025 */ move $v0, $a0 +.L8006AFA4: +/* 06BBA4 8006AFA4 2484FFFF */ addiu $a0, $a0, -1 +/* 06BBA8 8006AFA8 0481FFF7 */ bgez $a0, .L8006AF88 +/* 06BBAC 8006AFAC 2442FFFA */ addiu $v0, $v0, -6 +/* 06BBB0 8006AFB0 10000017 */ b .L8006B010 +/* 06BBB4 8006AFB4 2402FFFF */ li $v0, -1 +.L8006AFB8: +/* 06BBB8 8006AFB8 04800014 */ bltz $a0, .L8006B00C +/* 06BBBC 8006AFBC 3C0C8012 */ lui $t4, %hi(D_80121178+4) # $t4, 0x8012 +/* 06BBC0 8006AFC0 00046880 */ sll $t5, $a0, 2 +/* 06BBC4 8006AFC4 8D8C117C */ lw $t4, %lo(D_80121178+4)($t4) +/* 06BBC8 8006AFC8 01A46823 */ subu $t5, $t5, $a0 +/* 06BBCC 8006AFCC 000D6840 */ sll $t5, $t5, 1 +/* 06BBD0 8006AFD0 018D1021 */ addu $v0, $t4, $t5 +.L8006AFD4: +/* 06BBD4 8006AFD4 804E0001 */ lb $t6, 1($v0) +/* 06BBD8 8006AFD8 00000000 */ nop +/* 06BBDC 8006AFDC 31CF0040 */ andi $t7, $t6, 0x40 +/* 06BBE0 8006AFE0 11E00007 */ beqz $t7, .L8006B000 +/* 06BBE4 8006AFE4 00000000 */ nop +/* 06BBE8 8006AFE8 80580000 */ lb $t8, ($v0) +/* 06BBEC 8006AFEC 00000000 */ nop +/* 06BBF0 8006AFF0 14D80003 */ bne $a2, $t8, .L8006B000 +/* 06BBF4 8006AFF4 00000000 */ nop +/* 06BBF8 8006AFF8 03E00008 */ jr $ra +/* 06BBFC 8006AFFC 00801025 */ move $v0, $a0 +.L8006B000: +/* 06BC00 8006B000 2484FFFF */ addiu $a0, $a0, -1 +/* 06BC04 8006B004 0481FFF3 */ bgez $a0, .L8006AFD4 +/* 06BC08 8006B008 2442FFFA */ addiu $v0, $v0, -6 +.L8006B00C: +/* 06BC0C 8006B00C 2402FFFF */ li $v0, -1 +.L8006B010: +/* 06BC10 8006B010 03E00008 */ jr $ra +/* 06BC14 8006B014 00000000 */ nop diff --git a/asm/non_matchings/unknown_06B2B0/func_8006BDDC.s b/asm/non_matchings/unknown_06B2B0/func_8006BDDC.s deleted file mode 100644 index fe82ec3a..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006BDDC.s +++ /dev/null @@ -1,83 +0,0 @@ -glabel func_8006BDDC -/* 06C9DC 8006BDDC 27BDFFE0 */ addiu $sp, $sp, -0x20 -/* 06C9E0 8006BDE0 AFBF0014 */ sw $ra, 0x14($sp) -/* 06C9E4 8006BDE4 00802825 */ move $a1, $a0 -/* 06C9E8 8006BDE8 04800007 */ bltz $a0, .L8006BE08 -/* 06C9EC 8006BDEC 00001825 */ move $v1, $zero -/* 06C9F0 8006BDF0 3C0E8012 */ lui $t6, %hi(D_80121170) # $t6, 0x8012 -/* 06C9F4 8006BDF4 8DCE1170 */ lw $t6, %lo(D_80121170)($t6) -/* 06C9F8 8006BDF8 3C0F8012 */ lui $t7, %hi(D_8012116C) # $t7, 0x8012 -/* 06C9FC 8006BDFC 008E082A */ slt $at, $a0, $t6 -/* 06CA00 8006BE00 14200003 */ bnez $at, .L8006BE10 -/* 06CA04 8006BE04 00000000 */ nop -.L8006BE08: -/* 06CA08 8006BE08 10000038 */ b .L8006BEEC -/* 06CA0C 8006BE0C 00001025 */ move $v0, $zero -.L8006BE10: -/* 06CA10 8006BE10 8DEF116C */ lw $t7, %lo(D_8012116C)($t7) -/* 06CA14 8006BE14 0005C080 */ sll $t8, $a1, 2 -/* 06CA18 8006BE18 01F8C821 */ addu $t9, $t7, $t8 -/* 06CA1C 8006BE1C 8F240000 */ lw $a0, ($t9) -/* 06CA20 8006BE20 A3A3001B */ sb $v1, 0x1b($sp) -/* 06CA24 8006BE24 0C027AC8 */ jal get_language -/* 06CA28 8006BE28 AFA4001C */ sw $a0, 0x1c($sp) -/* 06CA2C 8006BE2C 93A3001B */ lbu $v1, 0x1b($sp) -/* 06CA30 8006BE30 8FA4001C */ lw $a0, 0x1c($sp) -/* 06CA34 8006BE34 24010001 */ li $at, 1 -/* 06CA38 8006BE38 10410007 */ beq $v0, $at, .L8006BE58 -/* 06CA3C 8006BE3C 24010002 */ li $at, 2 -/* 06CA40 8006BE40 10410011 */ beq $v0, $at, .L8006BE88 -/* 06CA44 8006BE44 24010003 */ li $at, 3 -/* 06CA48 8006BE48 1041001C */ beq $v0, $at, .L8006BEBC -/* 06CA4C 8006BE4C 00000000 */ nop -/* 06CA50 8006BE50 10000026 */ b .L8006BEEC -/* 06CA54 8006BE54 00801025 */ move $v0, $a0 -.L8006BE58: -/* 06CA58 8006BE58 90820000 */ lbu $v0, ($a0) -/* 06CA5C 8006BE5C 24840001 */ addiu $a0, $a0, 1 -/* 06CA60 8006BE60 2C480001 */ sltiu $t0, $v0, 1 -/* 06CA64 8006BE64 11000004 */ beqz $t0, .L8006BE78 -/* 06CA68 8006BE68 00000000 */ nop -/* 06CA6C 8006BE6C 24630001 */ addiu $v1, $v1, 1 -/* 06CA70 8006BE70 306900FF */ andi $t1, $v1, 0xff -/* 06CA74 8006BE74 01201825 */ move $v1, $t1 -.L8006BE78: -/* 06CA78 8006BE78 1860FFF7 */ blez $v1, .L8006BE58 -/* 06CA7C 8006BE7C 00000000 */ nop -/* 06CA80 8006BE80 1000001A */ b .L8006BEEC -/* 06CA84 8006BE84 00801025 */ move $v0, $a0 -.L8006BE88: -/* 06CA88 8006BE88 90820000 */ lbu $v0, ($a0) -/* 06CA8C 8006BE8C 24840001 */ addiu $a0, $a0, 1 -/* 06CA90 8006BE90 2C4A0001 */ sltiu $t2, $v0, 1 -/* 06CA94 8006BE94 11400005 */ beqz $t2, .L8006BEAC -/* 06CA98 8006BE98 28610002 */ slti $at, $v1, 2 -/* 06CA9C 8006BE9C 24630001 */ addiu $v1, $v1, 1 -/* 06CAA0 8006BEA0 306B00FF */ andi $t3, $v1, 0xff -/* 06CAA4 8006BEA4 01601825 */ move $v1, $t3 -/* 06CAA8 8006BEA8 28610002 */ slti $at, $v1, 2 -.L8006BEAC: -/* 06CAAC 8006BEAC 1420FFF6 */ bnez $at, .L8006BE88 -/* 06CAB0 8006BEB0 00000000 */ nop -/* 06CAB4 8006BEB4 1000000D */ b .L8006BEEC -/* 06CAB8 8006BEB8 00801025 */ move $v0, $a0 -.L8006BEBC: -/* 06CABC 8006BEBC 90820000 */ lbu $v0, ($a0) -/* 06CAC0 8006BEC0 24840001 */ addiu $a0, $a0, 1 -/* 06CAC4 8006BEC4 2C4C0001 */ sltiu $t4, $v0, 1 -/* 06CAC8 8006BEC8 11800005 */ beqz $t4, .L8006BEE0 -/* 06CACC 8006BECC 28610003 */ slti $at, $v1, 3 -/* 06CAD0 8006BED0 24630001 */ addiu $v1, $v1, 1 -/* 06CAD4 8006BED4 306D00FF */ andi $t5, $v1, 0xff -/* 06CAD8 8006BED8 01A01825 */ move $v1, $t5 -/* 06CADC 8006BEDC 28610003 */ slti $at, $v1, 3 -.L8006BEE0: -/* 06CAE0 8006BEE0 1420FFF6 */ bnez $at, .L8006BEBC -/* 06CAE4 8006BEE4 00000000 */ nop -/* 06CAE8 8006BEE8 00801025 */ move $v0, $a0 -.L8006BEEC: -/* 06CAEC 8006BEEC 8FBF0014 */ lw $ra, 0x14($sp) -/* 06CAF0 8006BEF0 27BD0020 */ addiu $sp, $sp, 0x20 -/* 06CAF4 8006BEF4 03E00008 */ jr $ra -/* 06CAF8 8006BEF8 00000000 */ nop - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s b/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s index 7ec9491d..478f18f4 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006BFC8.s @@ -60,8 +60,8 @@ glabel func_8006BFC8 .L8006C098: /* 06CC98 8006C098 0C01DB16 */ jal load_asset_section_from_rom /* 06CC9C 8006C09C 24040001 */ li $a0, 1 -/* 06CCA0 8006C0A0 3C088012 */ lui $t0, %hi(D_80121160) # $t0, 0x8012 -/* 06CCA4 8006C0A4 25081160 */ addiu $t0, %lo(D_80121160) # addiu $t0, $t0, 0x1160 +/* 06CCA0 8006C0A0 3C088012 */ lui $t0, %hi(gTempAssetTable) # $t0, 0x8012 +/* 06CCA4 8006C0A4 25081160 */ addiu $t0, %lo(gTempAssetTable) # addiu $t0, $t0, 0x1160 /* 06CCA8 8006C0A8 AD020000 */ sw $v0, ($t0) /* 06CCAC 8006C0AC 8C580000 */ lw $t8, ($v0) /* 06CCB0 8006C0B0 2404FFFF */ li $a0, -1 @@ -104,8 +104,8 @@ glabel func_8006BFC8 /* 06CD38 8006C138 00002025 */ move $a0, $zero /* 06CD3C 8006C13C 0C01DB9A */ jal load_asset_to_address /* 06CD40 8006C140 00402825 */ move $a1, $v0 -/* 06CD44 8006C144 3C048012 */ lui $a0, %hi(D_80121160) # $a0, 0x8012 -/* 06CD48 8006C148 8C841160 */ lw $a0, %lo(D_80121160)($a0) +/* 06CD44 8006C144 3C048012 */ lui $a0, %hi(gTempAssetTable) # $a0, 0x8012 +/* 06CD48 8006C148 8C841160 */ lw $a0, %lo(gTempAssetTable)($a0) /* 06CD4C 8006C14C 0C01C450 */ jal free_from_memory_pool /* 06CD50 8006C150 00000000 */ nop /* 06CD54 8006C154 8FBF001C */ lw $ra, 0x1c($sp) diff --git a/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s b/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s index 950ba6f2..9ede803c 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006CCF0.s @@ -357,7 +357,7 @@ glabel L8006D1C0 /* 06DDC4 8006D1C4 0C01E015 */ jal func_80078054 /* 06DDC8 8006D1C8 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 /* 06DDCC 8006D1CC 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06DDD0 8006D1D0 0C01DC14 */ jal func_80077050 +/* 06DDD0 8006D1D0 0C01DC14 */ jal render_borders_for_multiplayer /* 06DDD4 8006D1D4 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 /* 06DDD8 8006D1D8 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 /* 06DDDC 8006D1DC 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 diff --git a/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s b/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s index 10f53bfc..97cff690 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006E3BC.s @@ -6,7 +6,7 @@ glabel func_8006E3BC /* 06EFCC 8006E3CC 0C027055 */ jal reset_character_id_slots /* 06EFD0 8006E3D0 00000000 */ nop /* 06EFD4 8006E3D4 27A40018 */ addiu $a0, $sp, 0x18 -/* 06EFD8 8006E3D8 0C01AC89 */ jal func_8006B224 +/* 06EFD8 8006E3D8 0C01AC89 */ jal get_number_of_levels_and_worlds /* 06EFDC 8006E3DC 27A5001C */ addiu $a1, $sp, 0x1c /* 06EFE0 8006E3E0 8FA70018 */ lw $a3, 0x18($sp) /* 06EFE4 8006E3E4 8FAF001C */ lw $t7, 0x1c($sp) diff --git a/asm/non_matchings/unknown_06B2B0/func_8006E770.s b/asm/non_matchings/unknown_06B2B0/func_8006E770.s index 9419a91f..188f77c9 100644 --- a/asm/non_matchings/unknown_06B2B0/func_8006E770.s +++ b/asm/non_matchings/unknown_06B2B0/func_8006E770.s @@ -6,7 +6,7 @@ glabel func_8006E770 /* 06F380 8006E780 00A08825 */ move $s1, $a1 /* 06F384 8006E784 AFBF001C */ sw $ra, 0x1c($sp) /* 06F388 8006E788 27A5003C */ addiu $a1, $sp, 0x3c -/* 06F38C 8006E78C 0C01AC89 */ jal func_8006B224 +/* 06F38C 8006E78C 0C01AC89 */ jal get_number_of_levels_and_worlds /* 06F390 8006E790 27A40038 */ addiu $a0, $sp, 0x38 /* 06F394 8006E794 0C0078A7 */ jal get_misc_asset /* 06F398 8006E798 24040017 */ li $a0, 23 diff --git a/asm/non_matchings/unknown_06B2B0/func_8006EFB8.s b/asm/non_matchings/unknown_06B2B0/func_8006EFB8.s deleted file mode 100644 index 8f267c98..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006EFB8.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel func_8006EFB8 -/* 06FBB8 8006EFB8 3C0EA400 */ lui $t6, 0xa400 -/* 06FBBC 8006EFBC 8DCF0000 */ lw $t7, ($t6) -/* 06FBC0 8006EFC0 2401FFFF */ li $at, -1 -/* 06FBC4 8006EFC4 11E10003 */ beq $t7, $at, .L8006EFD4 -/* 06FBC8 8006EFC8 24020001 */ li $v0, 1 -/* 06FBCC 8006EFCC 03E00008 */ jr $ra -/* 06FBD0 8006EFD0 00001025 */ move $v0, $zero -.L8006EFD4: -/* 06FBD4 8006EFD4 03E00008 */ jr $ra -/* 06FBD8 8006EFD8 00000000 */ nop - diff --git a/asm/non_matchings/unknown_06B2B0/func_8006F4EC.s b/asm/non_matchings/unknown_06B2B0/func_8006F4EC.s deleted file mode 100644 index 33ece7fd..00000000 --- a/asm/non_matchings/unknown_06B2B0/func_8006F4EC.s +++ /dev/null @@ -1,13 +0,0 @@ -glabel func_8006F4EC -/* 0700EC 8006F4EC 3C0EA400 */ lui $t6, %hi(SP_IMEM) # $t6, 0xa400 -/* 0700F0 8006F4F0 8DCF1000 */ lw $t7, %lo(SP_IMEM)($t6) -/* 0700F4 8006F4F4 240117D7 */ li $at, 6103 -/* 0700F8 8006F4F8 11E10003 */ beq $t7, $at, .L8006F508 -/* 0700FC 8006F4FC 24020001 */ li $v0, 1 -/* 070100 8006F500 03E00008 */ jr $ra -/* 070104 8006F504 00001025 */ move $v0, $zero - -.L8006F508: -/* 070108 8006F508 03E00008 */ jr $ra -/* 07010C 8006F50C 00000000 */ nop - diff --git a/asm/non_matchings/unknown_06B2B0/load_level.s b/asm/non_matchings/unknown_06B2B0/load_level.s index f846ffb0..954c738a 100644 --- a/asm/non_matchings/unknown_06B2B0/load_level.s +++ b/asm/non_matchings/unknown_06B2B0/load_level.s @@ -50,8 +50,8 @@ glabel load_level /* 06BEF8 8006B2F8 AFA20040 */ sw $v0, 0x40($sp) /* 06BEFC 8006B2FC 0C01DB16 */ jal load_asset_section_from_rom /* 06BF00 8006B300 24040016 */ li $a0, 22 -/* 06BF04 8006B304 3C098012 */ lui $t1, %hi(D_80121160) # $t1, 0x8012 -/* 06BF08 8006B308 25291160 */ addiu $t1, %lo(D_80121160) # addiu $t1, $t1, 0x1160 +/* 06BF04 8006B304 3C098012 */ lui $t1, %hi(gTempAssetTable) # $t1, 0x8012 +/* 06BF08 8006B308 25291160 */ addiu $t1, %lo(gTempAssetTable) # addiu $t1, $t1, 0x1160 /* 06BF0C 8006B30C AD220000 */ sw $v0, ($t1) /* 06BF10 8006B310 8C4B0000 */ lw $t3, ($v0) /* 06BF14 8006B314 2408FFFF */ li $t0, -1 @@ -279,8 +279,8 @@ glabel load_level /* 06C248 8006B648 00187880 */ sll $t7, $t8, 2 /* 06C24C 8006B64C 0C01C450 */ jal free_from_memory_pool /* 06C250 8006B650 AFAF0034 */ sw $t7, 0x34($sp) -/* 06C254 8006B654 3C0D8012 */ lui $t5, %hi(D_80121160) # $t5, 0x8012 -/* 06C258 8006B658 8DAD1160 */ lw $t5, %lo(D_80121160)($t5) +/* 06C254 8006B654 3C0D8012 */ lui $t5, %hi(gTempAssetTable) # $t5, 0x8012 +/* 06C258 8006B658 8DAD1160 */ lw $t5, %lo(gTempAssetTable)($t5) /* 06C25C 8006B65C 8FAB0034 */ lw $t3, 0x34($sp) /* 06C260 8006B660 3C05FFFF */ lui $a1, (0xFFFF00FF >> 16) # lui $a1, 0xffff /* 06C264 8006B664 01AB1021 */ addu $v0, $t5, $t3 @@ -297,8 +297,8 @@ glabel load_level /* 06C290 8006B690 0C01DB9A */ jal load_asset_to_address /* 06C294 8006B694 02003025 */ move $a2, $s0 .L8006B698: -/* 06C298 8006B698 3C048012 */ lui $a0, %hi(D_80121160) # $a0, 0x8012 -/* 06C29C 8006B69C 8C841160 */ lw $a0, %lo(D_80121160)($a0) +/* 06C298 8006B698 3C048012 */ lui $a0, %hi(gTempAssetTable) # $a0, 0x8012 +/* 06C29C 8006B69C 8C841160 */ lw $a0, %lo(gTempAssetTable)($a0) /* 06C2A0 8006B6A0 0C01C450 */ jal free_from_memory_pool /* 06C2A4 8006B6A4 00000000 */ nop /* 06C2A8 8006B6A8 8E240000 */ lw $a0, ($s1) diff --git a/asm/non_matchings/unknown_06B2B0/render.s b/asm/non_matchings/unknown_06B2B0/render.s deleted file mode 100644 index 0fb481a0..00000000 --- a/asm/non_matchings/unknown_06B2B0/render.s +++ /dev/null @@ -1,331 +0,0 @@ -glabel render -/* 06D20C 8006C60C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 06D210 8006C610 AFBF0014 */ sw $ra, 0x14($sp) -/* 06D214 8006C614 24040000 */ li $a0, 0 -/* 06D218 8006C618 0C033498 */ jal osSetTime -/* 06D21C 8006C61C 24050000 */ li $a1, 0 -/* 06D220 8006C620 3C0E800E */ lui $t6, %hi(D_800DD380) # $t6, 0x800e -/* 06D224 8006C624 8DCED380 */ lw $t6, %lo(D_800DD380)($t6) -/* 06D228 8006C628 24010008 */ li $at, 8 -/* 06D22C 8006C62C 15C1001F */ bne $t6, $at, .L8006C6AC -/* 06D230 8006C630 3C0F8012 */ lui $t7, %hi(D_801234E8) # $t7, 0x8012 -/* 06D234 8006C634 8DEF34E8 */ lw $t7, %lo(D_801234E8)($t7) -/* 06D238 8006C638 3C198012 */ lui $t9, %hi(D_801211F0) # $t9, 0x8012 -/* 06D23C 8006C63C 000FC080 */ sll $t8, $t7, 2 -/* 06D240 8006C640 0338C821 */ addu $t9, $t9, $t8 -/* 06D244 8006C644 8F3911F0 */ lw $t9, %lo(D_801211F0)($t9) -/* 06D248 8006C648 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D24C 8006C64C 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D250 8006C650 00002825 */ move $a1, $zero -/* 06D254 8006C654 00003025 */ move $a2, $zero -/* 06D258 8006C658 0C01E8B4 */ jal set_rsp_segment -/* 06D25C 8006C65C AC990000 */ sw $t9, ($a0) -/* 06D260 8006C660 3C068012 */ lui $a2, %hi(gVideoCurrFramebuffer) # $a2, 0x8012 -/* 06D264 8006C664 8CC662D4 */ lw $a2, %lo(gVideoCurrFramebuffer)($a2) -/* 06D268 8006C668 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D26C 8006C66C 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D270 8006C670 0C01E8B4 */ jal set_rsp_segment -/* 06D274 8006C674 24050001 */ li $a1, 1 -/* 06D278 8006C678 3C068012 */ lui $a2, %hi(gVideoLastDepthBuffer) # $a2, 0x8012 -/* 06D27C 8006C67C 8CC662E0 */ lw $a2, %lo(gVideoLastDepthBuffer)($a2) -/* 06D280 8006C680 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D284 8006C684 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D288 8006C688 0C01E8B4 */ jal set_rsp_segment -/* 06D28C 8006C68C 24050002 */ li $a1, 2 -/* 06D290 8006C690 3C068012 */ lui $a2, %hi(gVideoCurrFramebuffer) # $a2, 0x8012 -/* 06D294 8006C694 8CC662D4 */ lw $a2, %lo(gVideoCurrFramebuffer)($a2) -/* 06D298 8006C698 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D29C 8006C69C 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D2A0 8006C6A0 24050004 */ li $a1, 4 -/* 06D2A4 8006C6A4 0C01E8B4 */ jal set_rsp_segment -/* 06D2A8 8006C6A8 24C6FB00 */ addiu $a2, $a2, -0x500 -.L8006C6AC: -/* 06D2AC 8006C6AC 3C03800E */ lui $v1, %hi(D_800DD3F0) # $v1, 0x800e -/* 06D2B0 8006C6B0 8063D3F0 */ lb $v1, %lo(D_800DD3F0)($v1) -/* 06D2B4 8006C6B4 00000000 */ nop -/* 06D2B8 8006C6B8 14600014 */ bnez $v1, .L8006C70C -/* 06D2BC 8006C6BC 3C088012 */ lui $t0, %hi(D_801234E8) # $t0, 0x8012 -/* 06D2C0 8006C6C0 8D0834E8 */ lw $t0, %lo(D_801234E8)($t0) -/* 06D2C4 8006C6C4 3C048012 */ lui $a0, %hi(D_801211F0) # $a0, 0x8012 -/* 06D2C8 8006C6C8 00084880 */ sll $t1, $t0, 2 -/* 06D2CC 8006C6CC 00892021 */ addu $a0, $a0, $t1 -/* 06D2D0 8006C6D0 3C058012 */ lui $a1, %hi(D_801211F8) # $a1, 0x8012 -/* 06D2D4 8006C6D4 8CA511F8 */ lw $a1, %lo(D_801211F8)($a1) -/* 06D2D8 8006C6D8 8C8411F0 */ lw $a0, %lo(D_801211F0)($a0) -/* 06D2DC 8006C6DC 0C01DD14 */ jal setupOSTasks -/* 06D2E0 8006C6E0 00003025 */ move $a2, $zero -/* 06D2E4 8006C6E4 3C078012 */ lui $a3, %hi(D_801234E8) # $a3, 0x8012 -/* 06D2E8 8006C6E8 24E734E8 */ addiu $a3, %lo(D_801234E8) # addiu $a3, $a3, 0x34e8 -/* 06D2EC 8006C6EC 8CEA0000 */ lw $t2, ($a3) -/* 06D2F0 8006C6F0 3C03800E */ lui $v1, %hi(D_800DD3F0) # $v1, 0x800e -/* 06D2F4 8006C6F4 254B0001 */ addiu $t3, $t2, 1 -/* 06D2F8 8006C6F8 ACEB0000 */ sw $t3, ($a3) -/* 06D2FC 8006C6FC 316D0001 */ andi $t5, $t3, 1 -/* 06D300 8006C700 ACED0000 */ sw $t5, ($a3) -/* 06D304 8006C704 8063D3F0 */ lb $v1, %lo(D_800DD3F0)($v1) -/* 06D308 8006C708 00000000 */ nop -.L8006C70C: -/* 06D30C 8006C70C 3C078012 */ lui $a3, %hi(D_801234E8) # $a3, 0x8012 -/* 06D310 8006C710 10600004 */ beqz $v1, .L8006C724 -/* 06D314 8006C714 24E734E8 */ addiu $a3, %lo(D_801234E8) # addiu $a3, $a3, 0x34e8 -/* 06D318 8006C718 246EFFFF */ addiu $t6, $v1, -1 -/* 06D31C 8006C71C 3C01800E */ lui $at, %hi(D_800DD3F0) # $at, 0x800e -/* 06D320 8006C720 A02ED3F0 */ sb $t6, %lo(D_800DD3F0)($at) -.L8006C724: -/* 06D324 8006C724 8CE20000 */ lw $v0, ($a3) -/* 06D328 8006C728 3C188012 */ lui $t8, %hi(D_801211F0) # $t8, 0x8012 -/* 06D32C 8006C72C 00027880 */ sll $t7, $v0, 2 -/* 06D330 8006C730 030FC021 */ addu $t8, $t8, $t7 -/* 06D334 8006C734 8F1811F0 */ lw $t8, %lo(D_801211F0)($t8) -/* 06D338 8006C738 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D33C 8006C73C 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D340 8006C740 3C198012 */ lui $t9, %hi(D_80121200) # $t9, 0x8012 -/* 06D344 8006C744 032FC821 */ addu $t9, $t9, $t7 -/* 06D348 8006C748 AC980000 */ sw $t8, ($a0) -/* 06D34C 8006C74C 8F391200 */ lw $t9, %lo(D_80121200)($t9) -/* 06D350 8006C750 3C088012 */ lui $t0, %hi(D_80121210) # $t0, 0x8012 -/* 06D354 8006C754 3C018012 */ lui $at, %hi(D_80121208) # $at, 0x8012 -/* 06D358 8006C758 010F4021 */ addu $t0, $t0, $t7 -/* 06D35C 8006C75C 8D081210 */ lw $t0, %lo(D_80121210)($t0) -/* 06D360 8006C760 3C098012 */ lui $t1, %hi(D_80121220) # $t1, 0x8012 -/* 06D364 8006C764 AC391208 */ sw $t9, %lo(D_80121208)($at) -/* 06D368 8006C768 3C018012 */ lui $at, %hi(D_80121218) # $at, 0x8012 -/* 06D36C 8006C76C 012F4821 */ addu $t1, $t1, $t7 -/* 06D370 8006C770 8D291220 */ lw $t1, %lo(D_80121220)($t1) -/* 06D374 8006C774 AC281218 */ sw $t0, %lo(D_80121218)($at) -/* 06D378 8006C778 3C018012 */ lui $at, %hi(D_80121228) # $at, 0x8012 -/* 06D37C 8006C77C 00002825 */ move $a1, $zero -/* 06D380 8006C780 00003025 */ move $a2, $zero -/* 06D384 8006C784 0C01E8B4 */ jal set_rsp_segment -/* 06D388 8006C788 AC291228 */ sw $t1, %lo(D_80121228)($at) -/* 06D38C 8006C78C 3C068012 */ lui $a2, %hi(gVideoLastFramebuffer) # $a2, 0x8012 -/* 06D390 8006C790 8CC662D8 */ lw $a2, %lo(gVideoLastFramebuffer)($a2) -/* 06D394 8006C794 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D398 8006C798 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D39C 8006C79C 0C01E8B4 */ jal set_rsp_segment -/* 06D3A0 8006C7A0 24050001 */ li $a1, 1 -/* 06D3A4 8006C7A4 3C068012 */ lui $a2, %hi(gVideoLastDepthBuffer) # $a2, 0x8012 -/* 06D3A8 8006C7A8 8CC662E0 */ lw $a2, %lo(gVideoLastDepthBuffer)($a2) -/* 06D3AC 8006C7AC 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3B0 8006C7B0 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D3B4 8006C7B4 0C01E8B4 */ jal set_rsp_segment -/* 06D3B8 8006C7B8 24050002 */ li $a1, 2 -/* 06D3BC 8006C7BC 3C068012 */ lui $a2, %hi(gVideoLastFramebuffer) # $a2, 0x8012 -/* 06D3C0 8006C7C0 8CC662D8 */ lw $a2, %lo(gVideoLastFramebuffer)($a2) -/* 06D3C4 8006C7C4 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3C8 8006C7C8 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D3CC 8006C7CC 24050004 */ li $a1, 4 -/* 06D3D0 8006C7D0 0C01E8B4 */ jal set_rsp_segment -/* 06D3D4 8006C7D4 24C6FB00 */ addiu $a2, $a2, -0x500 -/* 06D3D8 8006C7D8 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3DC 8006C7DC 0C01E037 */ jal func_800780DC -/* 06D3E0 8006C7E0 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D3E4 8006C7E4 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3E8 8006C7E8 0C01E015 */ jal func_80078054 -/* 06D3EC 8006C7EC 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D3F0 8006C7F0 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D3F4 8006C7F4 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06D3F8 8006C7F8 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 -/* 06D3FC 8006C7FC 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D400 8006C800 0C01DEE7 */ jal render_background -/* 06D404 8006C804 24060001 */ li $a2, 1 -/* 06D408 8006C808 3C04800E */ lui $a0, %hi(D_800DD37C) # $a0, 0x800e -/* 06D40C 8006C80C 3C05800E */ lui $a1, %hi(D_800DD404) # $a1, 0x800e -/* 06D410 8006C810 8CA5D404 */ lw $a1, %lo(D_800DD404)($a1) -/* 06D414 8006C814 8C84D37C */ lw $a0, %lo(D_800DD37C)($a0) -/* 06D418 8006C818 0C01A871 */ jal func_8006A1C4 -/* 06D41C 8006C81C 00000000 */ nop -/* 06D420 8006C820 3C01800E */ lui $at, %hi(D_800DD37C) # $at, 0x800e -/* 06D424 8006C824 0C02DDB7 */ jal func_800B76DC -/* 06D428 8006C828 AC22D37C */ sw $v0, %lo(D_800DD37C)($at) -/* 06D42C 8006C82C 10400006 */ beqz $v0, .L8006C848 -/* 06D430 8006C830 00000000 */ nop -/* 06D434 8006C834 0C02DE04 */ jal render_epc_lock_up_display -/* 06D438 8006C838 00000000 */ nop -/* 06D43C 8006C83C 240A0005 */ li $t2, 5 -/* 06D440 8006C840 3C018012 */ lui $at, %hi(D_801234EC) # $at, 0x8012 -/* 06D444 8006C844 AC2A34EC */ sw $t2, %lo(D_801234EC)($at) -.L8006C848: -/* 06D448 8006C848 3C0B800E */ lui $t3, %hi(D_800DD3A0) # $t3, 0x800e -/* 06D44C 8006C84C 816BD3A0 */ lb $t3, %lo(D_800DD3A0)($t3) -/* 06D450 8006C850 00000000 */ nop -/* 06D454 8006C854 1160000D */ beqz $t3, .L8006C88C -/* 06D458 8006C858 3C030098 */ lui $v1, (0x00989680 >> 16) # lui $v1, 0x98 -/* 06D45C 8006C85C 00001025 */ move $v0, $zero -/* 06D460 8006C860 34639680 */ ori $v1, (0x00989680 & 0xFFFF) # ori $v1, $v1, 0x9680 -.L8006C864: -/* 06D464 8006C864 24420004 */ addiu $v0, $v0, 4 -/* 06D468 8006C868 1443FFFE */ bne $v0, $v1, .L8006C864 -/* 06D46C 8006C86C 00000000 */ nop -/* 06D470 8006C870 3C010131 */ lui $at, (0x01312D01 >> 16) # lui $at, 0x131 -/* 06D474 8006C874 34212D01 */ ori $at, (0x01312D01 & 0xFFFF) # ori $at, $at, 0x2d01 -/* 06D478 8006C878 0041082A */ slt $at, $v0, $at -/* 06D47C 8006C87C 14200003 */ bnez $at, .L8006C88C -/* 06D480 8006C880 3C04800E */ lui $a0, %hi(D_800E7134) # $a0, 0x800e -/* 06D484 8006C884 0C02D7B7 */ jal render_printf -/* 06D488 8006C888 24847134 */ addiu $a0, %lo(D_800E7134) # addiu $a0, $a0, 0x7134 -.L8006C88C: -/* 06D48C 8006C88C 3C028012 */ lui $v0, %hi(D_801234EC) # $v0, 0x8012 -/* 06D490 8006C890 8C4234EC */ lw $v0, %lo(D_801234EC)($v0) -/* 06D494 8006C894 2401FFFF */ li $at, -1 -/* 06D498 8006C898 1041000B */ beq $v0, $at, .L8006C8C8 -/* 06D49C 8006C89C 00000000 */ nop -/* 06D4A0 8006C8A0 10400012 */ beqz $v0, .L8006C8EC -/* 06D4A4 8006C8A4 3C04800E */ lui $a0, %hi(D_800DD404) # $a0, 0x800e -/* 06D4A8 8006C8A8 24010001 */ li $at, 1 -/* 06D4AC 8006C8AC 1041000A */ beq $v0, $at, .L8006C8D8 -/* 06D4B0 8006C8B0 3C04800E */ lui $a0, %hi(D_800DD404) # $a0, 0x800e -/* 06D4B4 8006C8B4 24010005 */ li $at, 5 -/* 06D4B8 8006C8B8 10410011 */ beq $v0, $at, .L8006C900 -/* 06D4BC 8006C8BC 3C04800E */ lui $a0, %hi(D_800DD404) # $a0, 0x800e -/* 06D4C0 8006C8C0 10000012 */ b .L8006C90C -/* 06D4C4 8006C8C4 00000000 */ nop -.L8006C8C8: -/* 06D4C8 8006C8C8 0C01BD0F */ jal func_8006F43C -/* 06D4CC 8006C8CC 00000000 */ nop -/* 06D4D0 8006C8D0 1000000E */ b .L8006C90C -/* 06D4D4 8006C8D4 00000000 */ nop -.L8006C8D8: -/* 06D4D8 8006C8D8 8C84D404 */ lw $a0, %lo(D_800DD404)($a0) -/* 06D4DC 8006C8DC 0C01B73E */ jal func_8006DCF8 -/* 06D4E0 8006C8E0 00000000 */ nop -/* 06D4E4 8006C8E4 10000009 */ b .L8006C90C -/* 06D4E8 8006C8E8 00000000 */ nop -.L8006C8EC: -/* 06D4EC 8006C8EC 8C84D404 */ lw $a0, %lo(D_800DD404)($a0) -/* 06D4F0 8006C8F0 0C01B33C */ jal func_8006CCF0 -/* 06D4F4 8006C8F4 00000000 */ nop -/* 06D4F8 8006C8F8 10000004 */ b .L8006C90C -/* 06D4FC 8006C8FC 00000000 */ nop -.L8006C900: -/* 06D500 8006C900 8C84D404 */ lw $a0, %lo(D_800DD404)($a0) -/* 06D504 8006C904 0C02DDF5 */ jal func_800B77D4 -/* 06D508 8006C908 00000000 */ nop -.L8006C90C: -/* 06D50C 8006C90C 3C04800E */ lui $a0, %hi(D_800DD404+3) # $a0, 0x800e -/* 06D510 8006C910 9084D407 */ lbu $a0, %lo(D_800DD404+3)($a0) -/* 06D514 8006C914 0C000340 */ jal func_80000D00 -/* 06D518 8006C918 00000000 */ nop -/* 06D51C 8006C91C 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D520 8006C920 0C02D7DE */ jal func_800B5F78 -/* 06D524 8006C924 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D528 8006C928 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D52C 8006C92C 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06D530 8006C930 3C068012 */ lui $a2, %hi(D_80121218) # $a2, 0x8012 -/* 06D534 8006C934 24C61218 */ addiu $a2, %lo(D_80121218) # addiu $a2, $a2, 0x1218 -/* 06D538 8006C938 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 -/* 06D53C 8006C93C 0C0315BF */ jal func_800C56FC -/* 06D540 8006C940 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -/* 06D544 8006C944 0C031588 */ jal func_800C5620 -/* 06D548 8006C948 24040004 */ li $a0, 4 -/* 06D54C 8006C94C 0C031525 */ jal func_800C5494 -/* 06D550 8006C950 24040004 */ li $a0, 4 -/* 06D554 8006C954 3C04800E */ lui $a0, %hi(D_800DD404) # $a0, 0x800e -/* 06D558 8006C958 8C84D404 */ lw $a0, %lo(D_800DD404)($a0) -/* 06D55C 8006C95C 0C030125 */ jal func_800C0494 -/* 06D560 8006C960 00000000 */ nop -/* 06D564 8006C964 10400007 */ beqz $v0, .L8006C984 -/* 06D568 8006C968 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D56C 8006C96C 3C058012 */ lui $a1, %hi(D_80121208) # $a1, 0x8012 -/* 06D570 8006C970 3C068012 */ lui $a2, %hi(D_80121218) # $a2, 0x8012 -/* 06D574 8006C974 24C61218 */ addiu $a2, %lo(D_80121218) # addiu $a2, $a2, 0x1218 -/* 06D578 8006C978 24A51208 */ addiu $a1, %lo(D_80121208) # addiu $a1, $a1, 0x1208 -/* 06D57C 8006C97C 0C030172 */ jal render_fade_transition -/* 06D580 8006C980 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -.L8006C984: -/* 06D584 8006C984 3C0C8012 */ lui $t4, %hi(D_80123520) # $t4, 0x8012 -/* 06D588 8006C988 8D8C3520 */ lw $t4, %lo(D_80123520)($t4) -/* 06D58C 8006C98C 00000000 */ nop -/* 06D590 8006C990 29810008 */ slti $at, $t4, 8 -/* 06D594 8006C994 14200009 */ bnez $at, .L8006C9BC -/* 06D598 8006C998 00000000 */ nop -/* 06D59C 8006C99C 0C01BD32 */ jal func_8006F4C8 -/* 06D5A0 8006C9A0 00000000 */ nop -/* 06D5A4 8006C9A4 10400005 */ beqz $v0, .L8006C9BC -/* 06D5A8 8006C9A8 3C048012 */ lui $a0, %hi(D_801211F8) # $a0, 0x8012 -/* 06D5AC 8006C9AC 3C05800E */ lui $a1, %hi(D_800DD404) # $a1, 0x800e -/* 06D5B0 8006C9B0 8CA5D404 */ lw $a1, %lo(D_800DD404)($a1) -/* 06D5B4 8006C9B4 0C020A7E */ jal func_800829F8 -/* 06D5B8 8006C9B8 248411F8 */ addiu $a0, %lo(D_801211F8) # addiu $a0, $a0, 0x11f8 -.L8006C9BC: -/* 06D5BC 8006C9BC 3C028012 */ lui $v0, %hi(D_801211F8) # $v0, 0x8012 -/* 06D5C0 8006C9C0 8C4211F8 */ lw $v0, %lo(D_801211F8)($v0) -/* 06D5C4 8006C9C4 3C018012 */ lui $at, %hi(D_801211F8) # $at, 0x8012 -/* 06D5C8 8006C9C8 244D0008 */ addiu $t5, $v0, 8 -/* 06D5CC 8006C9CC AC2D11F8 */ sw $t5, %lo(D_801211F8)($at) -/* 06D5D0 8006C9D0 3C0EE900 */ lui $t6, 0xe900 -/* 06D5D4 8006C9D4 AC4E0000 */ sw $t6, ($v0) -/* 06D5D8 8006C9D8 AC400004 */ sw $zero, 4($v0) -/* 06D5DC 8006C9DC 3C028012 */ lui $v0, %hi(D_801211F8) # $v0, 0x8012 -/* 06D5E0 8006C9E0 8C4211F8 */ lw $v0, %lo(D_801211F8)($v0) -/* 06D5E4 8006C9E4 3C18B800 */ lui $t8, 0xb800 -/* 06D5E8 8006C9E8 244F0008 */ addiu $t7, $v0, 8 -/* 06D5EC 8006C9EC AC2F11F8 */ sw $t7, %lo(D_801211F8)($at) -/* 06D5F0 8006C9F0 AC400004 */ sw $zero, 4($v0) -/* 06D5F4 8006C9F4 0C019984 */ jal func_80066610 -/* 06D5F8 8006C9F8 AC580000 */ sw $t8, ($v0) -/* 06D5FC 8006C9FC 3C19800E */ lui $t9, %hi(D_800DD3F0) # $t9, 0x800e -/* 06D600 8006CA00 8339D3F0 */ lb $t9, %lo(D_800DD3F0)($t9) -/* 06D604 8006CA04 24010001 */ li $at, 1 -/* 06D608 8006CA08 1321000A */ beq $t9, $at, .L8006CA34 -/* 06D60C 8006CA0C 3C08800E */ lui $t0, %hi(D_800DD38C) # $t0, 0x800e -/* 06D610 8006CA10 8108D38C */ lb $t0, %lo(D_800DD38C)($t0) -/* 06D614 8006CA14 00000000 */ nop -/* 06D618 8006CA18 15000008 */ bnez $t0, .L8006CA3C -/* 06D61C 8006CA1C 00000000 */ nop -/* 06D620 8006CA20 0C01DE95 */ jal func_80077A54 -/* 06D624 8006CA24 00000000 */ nop -/* 06D628 8006CA28 3C01800E */ lui $at, %hi(D_800DD380) # $at, 0x800e -/* 06D62C 8006CA2C 10000003 */ b .L8006CA3C -/* 06D630 8006CA30 AC22D380 */ sw $v0, %lo(D_800DD380)($at) -.L8006CA34: -/* 06D634 8006CA34 3C01800E */ lui $at, %hi(D_800DD3F0) # $at, 0x800e -/* 06D638 8006CA38 A020D3F0 */ sb $zero, %lo(D_800DD3F0)($at) -.L8006CA3C: -/* 06D63C 8006CA3C 3C01800E */ lui $at, %hi(D_800DD38C) # $at, 0x800e -/* 06D640 8006CA40 0C01C466 */ jal func_80071198 -/* 06D644 8006CA44 A020D38C */ sb $zero, %lo(D_800DD38C)($at) -/* 06D648 8006CA48 3C098012 */ lui $t1, %hi(gIsPaused) # $t1, 0x8012 -/* 06D64C 8006CA4C 81293515 */ lb $t1, %lo(gIsPaused)($t1) -/* 06D650 8006CA50 00000000 */ nop -/* 06D654 8006CA54 15200003 */ bnez $t1, .L8006CA64 -/* 06D658 8006CA58 00000000 */ nop -/* 06D65C 8006CA5C 0C019948 */ jal func_80066520 -/* 06D660 8006CA60 00000000 */ nop -.L8006CA64: -/* 06D664 8006CA64 3C0A800E */ lui $t2, %hi(D_800DD3F0) # $t2, 0x800e -/* 06D668 8006CA68 814AD3F0 */ lb $t2, %lo(D_800DD3F0)($t2) -/* 06D66C 8006CA6C 24010002 */ li $at, 2 -/* 06D670 8006CA70 1541000D */ bne $t2, $at, .L8006CAA8 -/* 06D674 8006CA74 3C0B8000 */ lui $t3, %hi(osTvType) # $t3, 0x8000 -/* 06D678 8006CA78 8D6B0300 */ lw $t3, %lo(osTvType)($t3) -/* 06D67C 8006CA7C 3C020002 */ lui $v0, (0x00025800 >> 16) # lui $v0, 2 -/* 06D680 8006CA80 15600003 */ bnez $t3, .L8006CA90 -/* 06D684 8006CA84 34425800 */ ori $v0, (0x00025800 & 0xFFFF) # ori $v0, $v0, 0x5800 -/* 06D688 8006CA88 3C020002 */ lui $v0, (0x00029400 >> 16) # lui $v0, 2 -/* 06D68C 8006CA8C 34429400 */ ori $v0, (0x00029400 & 0xFFFF) # ori $v0, $v0, 0x9400 -.L8006CA90: -/* 06D690 8006CA90 3C058012 */ lui $a1, %hi(gVideoCurrFramebuffer) # $a1, 0x8012 -/* 06D694 8006CA94 8CA562D4 */ lw $a1, %lo(gVideoCurrFramebuffer)($a1) -/* 06D698 8006CA98 3C048012 */ lui $a0, %hi(gVideoLastFramebuffer) # $a0, 0x8012 -/* 06D69C 8006CA9C 8C8462D8 */ lw $a0, %lo(gVideoLastFramebuffer)($a0) -/* 06D6A0 8006CAA0 0C01C2C1 */ jal func_80070B04 -/* 06D6A4 8006CAA4 00A23021 */ addu $a2, $a1, $v0 -.L8006CAA8: -/* 06D6A8 8006CAA8 3C04800E */ lui $a0, %hi(D_800DD380) # $a0, 0x800e -/* 06D6AC 8006CAAC 8C84D380 */ lw $a0, %lo(D_800DD380)($a0) -/* 06D6B0 8006CAB0 0C01EA63 */ jal func_8007A98C -/* 06D6B4 8006CAB4 00000000 */ nop -/* 06D6B8 8006CAB8 3C01800E */ lui $at, %hi(D_800DD404) # $at, 0x800e -/* 06D6BC 8006CABC AC22D404 */ sw $v0, %lo(D_800DD404)($at) -/* 06D6C0 8006CAC0 28410007 */ slti $at, $v0, 7 -/* 06D6C4 8006CAC4 14200003 */ bnez $at, .L8006CAD4 -/* 06D6C8 8006CAC8 240C0006 */ li $t4, 6 -/* 06D6CC 8006CACC 3C01800E */ lui $at, %hi(D_800DD404) # $at, 0x800e -/* 06D6D0 8006CAD0 AC2CD404 */ sw $t4, %lo(D_800DD404)($at) -.L8006CAD4: -/* 06D6D4 8006CAD4 8FBF0014 */ lw $ra, 0x14($sp) -/* 06D6D8 8006CAD8 27BD0018 */ addiu $sp, $sp, 0x18 -/* 06D6DC 8006CADC 03E00008 */ jr $ra -/* 06D6E0 8006CAE0 00000000 */ nop - diff --git a/asm/non_matchings/unknown_06B2B0/thread3_main.s b/asm/non_matchings/unknown_06B2B0/thread3_main.s deleted file mode 100644 index 0571cb97..00000000 --- a/asm/non_matchings/unknown_06B2B0/thread3_main.s +++ /dev/null @@ -1,49 +0,0 @@ -glabel thread3_main -/* 06CF30 8006C330 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 06CF34 8006C334 AFBF0014 */ sw $ra, 0x14($sp) -/* 06CF38 8006C338 0C01B0F8 */ jal func_8006C3E0 -/* 06CF3C 8006C33C AFA40018 */ sw $a0, 0x18($sp) -/* 06CF40 8006C340 3C04800E */ lui $a0, %hi(D_800DD37C) # $a0, 0x800e -/* 06CF44 8006C344 8C84D37C */ lw $a0, %lo(D_800DD37C)($a0) -/* 06CF48 8006C348 0C01A871 */ jal func_8006A1C4 -/* 06CF4C 8006C34C 00002825 */ move $a1, $zero -/* 06CF50 8006C350 3C01800E */ lui $at, %hi(D_800DD37C) # $at, 0x800e -/* 06CF54 8006C354 AC22D37C */ sw $v0, %lo(D_800DD37C)($at) -/* 06CF58 8006C358 3C018012 */ lui $at, %hi(D_80123520) # $at, 0x8012 -/* 06CF5C 8006C35C AC203520 */ sw $zero, %lo(D_80123520)($at) -/* 06CF60 8006C360 3C018012 */ lui $at, %hi(D_801234EC) # $at, 0x8012 -/* 06CF64 8006C364 240EFFFF */ li $t6, -1 -/* 06CF68 8006C368 AC2E34EC */ sw $t6, %lo(D_801234EC)($at) -.L8006C36C: -/* 06CF6C 8006C36C 0C01BAB0 */ jal func_8006EAC0 -/* 06CF70 8006C370 00000000 */ nop -/* 06CF74 8006C374 1040000E */ beqz $v0, .L8006C3B0 -/* 06CF78 8006C378 00000000 */ nop -/* 06CF7C 8006C37C 0C01C9C2 */ jal func_80072708 -/* 06CF80 8006C380 00000000 */ nop -/* 06CF84 8006C384 0C000A9D */ jal audioStopThread -/* 06CF88 8006C388 00000000 */ nop -/* 06CF8C 8006C38C 0C031CEF */ jal stop_thread30 -/* 06CF90 8006C390 00000000 */ nop -/* 06CF94 8006C394 3C0400AA */ lui $a0, (0x00AAAA82 >> 16) # lui $a0, 0xaa -/* 06CF98 8006C398 0C033490 */ jal __osSpSetStatus -/* 06CF9C 8006C39C 3484AA82 */ ori $a0, (0x00AAAA82 & 0xFFFF) # ori $a0, $a0, 0xaa82 -/* 06CFA0 8006C3A0 0C033494 */ jal func_800CD250 -/* 06CFA4 8006C3A4 240401D6 */ li $a0, 470 -.L8006C3A8: -/* 06CFA8 8006C3A8 1000FFFF */ b .L8006C3A8 -/* 06CFAC 8006C3AC 00000000 */ nop -.L8006C3B0: -/* 06CFB0 8006C3B0 0C01B183 */ jal render -/* 06CFB4 8006C3B4 00000000 */ nop -/* 06CFB8 8006C3B8 0C01978C */ jal func_80065E30 -/* 06CFBC 8006C3BC 00000000 */ nop -/* 06CFC0 8006C3C0 1000FFEA */ b .L8006C36C -/* 06CFC4 8006C3C4 00000000 */ nop -/* 06CFC8 8006C3C8 00000000 */ nop -/* 06CFCC 8006C3CC 00000000 */ nop -/* 06CFD0 8006C3D0 8FBF0014 */ lw $ra, 0x14($sp) -/* 06CFD4 8006C3D4 27BD0018 */ addiu $sp, $sp, 0x18 -/* 06CFD8 8006C3D8 03E00008 */ jr $ra -/* 06CFDC 8006C3DC 00000000 */ nop - diff --git a/asm/non_matchings/unknown_077C50/func_80077268.s b/asm/non_matchings/unknown_077C50/func_80077268.s index 996dfddc..dedc6018 100644 --- a/asm/non_matchings/unknown_077C50/func_80077268.s +++ b/asm/non_matchings/unknown_077C50/func_80077268.s @@ -45,7 +45,7 @@ glabel func_80077268 /* 077F14 80077314 AFA60028 */ sw $a2, 0x28($sp) /* 077F18 80077318 AFA50024 */ sw $a1, 0x24($sp) /* 077F1C 8007731C AFAA0020 */ sw $t2, 0x20($sp) -/* 077F20 80077320 0C019884 */ jal func_80066210 +/* 077F20 80077320 0C019884 */ jal get_viewport_count /* 077F24 80077324 AFA40030 */ sw $a0, 0x30($sp) /* 077F28 80077328 8FA40030 */ lw $a0, 0x30($sp) /* 077F2C 8007732C 8FAA0020 */ lw $t2, 0x20($sp) diff --git a/asm/non_matchings/unknown_077C50/func_80077050.s b/asm/non_matchings/unknown_077C50/render_borders_for_multiplayer.s similarity index 98% rename from asm/non_matchings/unknown_077C50/func_80077050.s rename to asm/non_matchings/unknown_077C50/render_borders_for_multiplayer.s index 6a2f6c25..16f7ec2c 100644 --- a/asm/non_matchings/unknown_077C50/func_80077050.s +++ b/asm/non_matchings/unknown_077C50/render_borders_for_multiplayer.s @@ -1,4 +1,4 @@ -glabel func_80077050 +glabel render_borders_for_multiplayer /* 077C50 80077050 27BDFFC0 */ addiu $sp, $sp, -0x40 /* 077C54 80077054 AFBF001C */ sw $ra, 0x1c($sp) /* 077C58 80077058 AFB00018 */ sw $s0, 0x18($sp) @@ -27,7 +27,7 @@ glabel func_80077050 /* 077CB4 800770B4 000451C2 */ srl $t2, $a0, 7 /* 077CB8 800770B8 AFAA0024 */ sw $t2, 0x24($sp) /* 077CBC 800770BC AFA50038 */ sw $a1, 0x38($sp) -/* 077CC0 800770C0 0C019884 */ jal func_80066210 +/* 077CC0 800770C0 0C019884 */ jal get_viewport_count /* 077CC4 800770C4 AFA40034 */ sw $a0, 0x34($sp) /* 077CC8 800770C8 8FA80034 */ lw $t0, 0x34($sp) /* 077CCC 800770CC 8FA90038 */ lw $t1, 0x38($sp) diff --git a/asm/non_matchings/unknown_09F8F0/func_8009ECF0.s b/asm/non_matchings/unknown_09F8F0/func_8009ECF0.s index cb3ad7c2..6829b672 100644 --- a/asm/non_matchings/unknown_09F8F0/func_8009ECF0.s +++ b/asm/non_matchings/unknown_09F8F0/func_8009ECF0.s @@ -4,7 +4,7 @@ glabel func_8009ECF0 /* 09F8F8 8009ECF8 AFB20020 */ sw $s2, 0x20($sp) /* 09F8FC 8009ECFC AFB1001C */ sw $s1, 0x1c($sp) /* 09F900 8009ED00 AFB00018 */ sw $s0, 0x18($sp) -/* 09F904 8009ED04 0C019884 */ jal func_80066210 +/* 09F904 8009ED04 0C019884 */ jal get_viewport_count /* 09F908 8009ED08 AFA40028 */ sw $a0, 0x28($sp) /* 09F90C 8009ED0C 3C038012 */ lui $v1, %hi(D_80126D0C) # $v1, 0x8012 /* 09F910 8009ED10 24636D0C */ addiu $v1, %lo(D_80126D0C) # addiu $v1, $v1, 0x6d0c diff --git a/asm/non_matchings/unknown_09F8F0/func_800A01A0.s b/asm/non_matchings/unknown_09F8F0/func_800A01A0.s index 883532f4..77f26038 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A01A0.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A01A0.s @@ -588,7 +588,7 @@ glabel func_800A01A0 /* 0A1644 800A0A44 1000001E */ b .L800A0AC0 /* 0A1648 800A0A48 00000000 */ nop .L800A0A4C: -/* 0A164C 800A0A4C 0C019884 */ jal func_80066210 +/* 0A164C 800A0A4C 0C019884 */ jal get_viewport_count /* 0A1650 800A0A50 00000000 */ nop /* 0A1654 800A0A54 14400017 */ bnez $v0, .L800A0AB4 /* 0A1658 800A0A58 8FA40028 */ lw $a0, 0x28($sp) diff --git a/asm/non_matchings/unknown_09F8F0/func_800A26C8.s b/asm/non_matchings/unknown_09F8F0/func_800A26C8.s index 26edad5d..352eaf03 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A26C8.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A26C8.s @@ -2,7 +2,7 @@ glabel func_800A26C8 /* 0A32C8 800A26C8 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 0A32CC 800A26CC AFBF0014 */ sw $ra, 0x14($sp) /* 0A32D0 800A26D0 AFA40020 */ sw $a0, 0x20($sp) -/* 0A32D4 800A26D4 0C019884 */ jal func_80066210 +/* 0A32D4 800A26D4 0C019884 */ jal get_viewport_count /* 0A32D8 800A26D8 AFA50024 */ sw $a1, 0x24($sp) /* 0A32DC 800A26DC 14400024 */ bnez $v0, .L800A2770 /* 0A32E0 800A26E0 8FBF0014 */ lw $ra, 0x14($sp) diff --git a/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s b/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s index 3c664d16..2ba55d0e 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s +++ b/asm/non_matchings/unknown_09F8F0/func_800A3CE4.s @@ -217,7 +217,7 @@ glabel func_800A3CE4 /* 0A4C30 800A4030 24010004 */ li $at, 4 /* 0A4C34 800A4034 15C1001A */ bne $t6, $at, .L800A40A0 /* 0A4C38 800A4038 8FB9005C */ lw $t9, 0x5c($sp) -/* 0A4C3C 800A403C 0C019884 */ jal func_80066210 +/* 0A4C3C 800A403C 0C019884 */ jal get_viewport_count /* 0A4C40 800A4040 00000000 */ nop /* 0A4C44 800A4044 28410002 */ slti $at, $v0, 2 /* 0A4C48 800A4048 14200006 */ bnez $at, .L800A4064 diff --git a/asm/non_matchings/unknown_09F8F0/func_800ACA20.s b/asm/non_matchings/unknown_09F8F0/func_800ACA20.s index 6a3d762c..7d1719bc 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800ACA20.s +++ b/asm/non_matchings/unknown_09F8F0/func_800ACA20.s @@ -29,7 +29,7 @@ glabel func_800ACA20 /* 0AD68C 800ACA8C 00000000 */ nop /* 0AD690 800ACA90 17200122 */ bnez $t9, .L800ACF1C /* 0AD694 800ACA94 8FBF005C */ lw $ra, 0x5c($sp) -/* 0AD698 800ACA98 0C019884 */ jal func_80066210 +/* 0AD698 800ACA98 0C019884 */ jal get_viewport_count /* 0AD69C 800ACA9C 00000000 */ nop /* 0AD6A0 800ACAA0 1440011D */ bnez $v0, .L800ACF18 /* 0AD6A4 800ACAA4 3C01BF80 */ li $at, 0xBF800000 # -1.000000 diff --git a/asm/non_matchings/unknown_09F8F0/func_800AD40C.s b/asm/non_matchings/unknown_09F8F0/func_800AD40C.s index 52dbc821..56252cb2 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800AD40C.s +++ b/asm/non_matchings/unknown_09F8F0/func_800AD40C.s @@ -4,7 +4,7 @@ glabel func_800AD40C /* 0AE014 800AD414 27BDFFE0 */ addiu $sp, $sp, -0x20 /* 0AE018 800AD418 11C00020 */ beqz $t6, .L800AD49C /* 0AE01C 800AD41C AFBF001C */ sw $ra, 0x1c($sp) -/* 0AE020 800AD420 0C019884 */ jal func_80066210 +/* 0AE020 800AD420 0C019884 */ jal get_viewport_count /* 0AE024 800AD424 00000000 */ nop /* 0AE028 800AD428 1440001C */ bnez $v0, .L800AD49C /* 0AE02C 800AD42C 00002025 */ move $a0, $zero diff --git a/asm/non_matchings/unknown_09F8F0/func_800AD4B8.s b/asm/non_matchings/unknown_09F8F0/func_800AD4B8.s index e1f97c3b..60553068 100644 --- a/asm/non_matchings/unknown_09F8F0/func_800AD4B8.s +++ b/asm/non_matchings/unknown_09F8F0/func_800AD4B8.s @@ -5,7 +5,7 @@ glabel func_800AD4B8 /* 0AE0C4 800AD4C4 00809025 */ move $s2, $a0 /* 0AE0C8 800AD4C8 AFB30020 */ sw $s3, 0x20($sp) /* 0AE0CC 800AD4CC AFB10018 */ sw $s1, 0x18($sp) -/* 0AE0D0 800AD4D0 0C019884 */ jal func_80066210 +/* 0AE0D0 800AD4D0 0C019884 */ jal get_viewport_count /* 0AE0D4 800AD4D4 AFB00014 */ sw $s0, 0x14($sp) /* 0AE0D8 800AD4D8 14400058 */ bnez $v0, .L800AD63C /* 0AE0DC 800AD4DC 3C0E800E */ lui $t6, %hi(D_800E2C5C) # $t6, 0x800e diff --git a/asm/non_matchings/waves/func_800BA8E4.s b/asm/non_matchings/waves/func_800BA8E4.s index be804801..62edbff3 100644 --- a/asm/non_matchings/waves/func_800BA8E4.s +++ b/asm/non_matchings/waves/func_800BA8E4.s @@ -103,7 +103,7 @@ glabel func_800BA8E4 /* 0BB66C 800BAA6C 31CF000F */ andi $t7, $t6, 0xf /* 0BB670 800BAA70 15E00010 */ bnez $t7, .L800BAAB4 /* 0BB674 800BAA74 27FF9FC8 */ addiu $ra, %lo(D_80129FC8) # addiu $ra, $ra, -0x6038 -/* 0BB678 800BAA78 0C019884 */ jal func_80066210 +/* 0BB678 800BAA78 0C019884 */ jal get_viewport_count /* 0BB67C 800BAA7C 00000000 */ nop /* 0BB680 800BAA80 3C1F8013 */ lui $ra, %hi(D_80129FC8) # $ra, 0x8013 /* 0BB684 800BAA84 1C40000B */ bgtz $v0, .L800BAAB4 diff --git a/include/structs.h b/include/structs.h index a4c5dcc1..a109c376 100644 --- a/include/structs.h +++ b/include/structs.h @@ -163,7 +163,7 @@ typedef struct Settings { /* 0x06BA */ u16 courseTimes[3][65]; } Settings; -/* Size: 0xC8 bytes */ +/* Size: 0xC4 bytes */ typedef struct LevelHeader { /* 0x00 */ s8 world; /* 0x01 */ u8 unk1; @@ -196,8 +196,8 @@ typedef struct LevelHeader { /* 0x4A */ u8 unk4A; /* 0x4B */ s8 laps; /* 0x4C */ s8 race_type; - /* 0x4D */ u8 vehicle; - /* 0x4E */ u8 available_vehicles; + /* 0x4D */ s8 vehicle; + /* 0x4E */ s8 available_vehicles; /* 0x4F */ u8 unk4F[3]; @@ -228,7 +228,8 @@ typedef struct LevelHeader { /* 0xAA */ u16 unkAA; /* 0xAC */ s8 *unkAC; - /* 0xB0 */ u8 padB0[0x3]; + /* 0xB0 */ s16 unkB0; + /* 0xB2 */ u8 unkB2; /* 0xB3 */ u8 unkB3; /* 0xB3 */ u8 unkB4; /* 0xB3 */ u8 unkB5; @@ -242,7 +243,6 @@ typedef struct LevelHeader { /* 0xC1 */ u8 unkC1; /* 0xC2 */ u8 unkC2; /* 0xC3 */ u8 unkC3; - /* 0xC4 */ u8 padC4[0x4]; } LevelHeader; /* Size: 0x50 bytes */ diff --git a/src/camera.c b/src/camera.c index 50b37641..6444d3ba 100644 --- a/src/camera.c +++ b/src/camera.c @@ -90,7 +90,7 @@ u8 D_800DD2F8[8] = { s32 D_800DD300 = 0; // Currently unknown, might be a different type. -s16 D_800DD304 = -1; +s16 gButtonMask = 0xFFFF; /*******************************/ @@ -121,7 +121,7 @@ typedef struct unk80120AC0 { } unk80120AC0; unk80120AC0 D_80120AC0[8]; -s32 D_80120CE0; +s32 gNumberOfViewports; s32 D_80120CE4; s32 D_80120CE8; s32 D_80120CEC; @@ -209,7 +209,7 @@ void func_80065EA0(void) { D_80120CE4 = 0; D_80120D1C = 0; D_80120D20[0] = 0; - D_80120CE0 = 0; + gNumberOfViewports = 0; D_80120D0C = 0; D_80120D18 = 0; D_80120D15 = 0; @@ -271,8 +271,8 @@ s32* func_80066204(void) { return &D_801210A0; } -s32 func_80066210(void) { - return D_80120CE0; +s32 get_viewport_count(void) { + return gNumberOfViewports; } s32 func_80066220(void) { @@ -374,21 +374,21 @@ void func_80066520(void) { s32 func_8006652C(s32 arg0) { if ((arg0 >= 0) && (arg0 < 4)) { - D_80120CE0 = arg0; + gNumberOfViewports = arg0; } else { - D_80120CE0 = 0; + gNumberOfViewports = 0; } - switch(D_80120CE0) { - case 0: + switch(gNumberOfViewports) { + case VIEWPORTS_COUNT_1_PLAYER: D_80120CE8 = 1; break; - case 1: + case VIEWPORTS_COUNT_2_PLAYERS: D_80120CE8 = 2; break; - case 2: + case VIEWPORTS_COUNT_3_PLAYERS: D_80120CE8 = 3; break; - case 3: + case VIEWPORTS_COUNT_4_PLAYERS: D_80120CE8 = 4; break; } @@ -573,7 +573,7 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { u32 phi_t5; u32 phi_t4; - if (func_8000E184() && !D_80120CE0) { + if (func_8000E184() && !gNumberOfViewports) { D_80120CE4 = 1; } widthAndHeight = get_video_width_and_height_as_s32(); @@ -593,8 +593,8 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { return; } temp_t1 = widthAndHeight & 0xFFFF; - if (D_80120CE0 == 2) { - D_80120CE0 = 3; + if (gNumberOfViewports == VIEWPORTS_COUNT_3_PLAYERS) { + gNumberOfViewports = VIEWPORTS_COUNT_4_PLAYERS; } temp_a2 = temp_t1 >> 1; sp54 = temp_a2; @@ -603,8 +603,8 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { sp58 = 0x91; } - switch(D_80120CE0) { - case 0: + switch(gNumberOfViewports) { + case VIEWPORTS_COUNT_1_PLAYER: phi_t3 = sp58; if (osTvType == 0) { phi_t3 = sp58 - 0x12; @@ -612,7 +612,7 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { gDPSetScissor((*dlist)++, SCISSOR_INTERLACE, 0, 0, temp_t1, temp_t0) sp4C = temp_a2; break; - case 1: + case VIEWPORTS_COUNT_2_PLAYERS: if (D_80120CE4 == 0) { temp_v0_6 = temp_t0 >> 2; phi_t3 = temp_v0_6; @@ -626,7 +626,7 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { } sp4C = temp_a2; break; - case 2: + case VIEWPORTS_COUNT_3_PLAYERS: if (D_80120CE4 == 0) { gDPSetScissor((*dlist)++, SCISSOR_INTERLACE, 0, 0, temp_a2 - (temp_t1 >> 8), temp_t0) phi_a1 = temp_t1 >> 2; @@ -637,7 +637,7 @@ void func_80066CDC(Gfx **dlist, s32 arg1) { sp4C = phi_a1; phi_t3 = sp58; break; - case 3: + case VIEWPORTS_COUNT_4_PLAYERS: sp58 = sp58 >> 1; sp54 = temp_a2 >> 1; switch(D_80120CE4) { @@ -789,7 +789,7 @@ void func_80069E14(f32 arg0, f32 arg1, f32 arg2, f32 arg3, f32 arg4) { f32 temp_f2; s32 i; - for (i = 0; i <= D_80120CE0; i++) { + for (i = 0; i <= gNumberOfViewports; i++) { temp_f0 = arg0 - D_80120AC0[i].x_position; temp_f2 = arg1 - D_80120AC0[i].y_position; temp_f14 = arg2 - D_80120AC0[i].z_position; @@ -892,6 +892,7 @@ s32 func_8006A624(s8 arg0) { return arg0; } -void func_8006A6A0(void) { - D_800DD304 = 0; +// Used when anti-cheat/anti-tamper has failed in func_8006A6B0() +void disable_button_mask(void) { + gButtonMask = 0; } diff --git a/src/camera.h b/src/camera.h index f6580a20..79b17c3f 100644 --- a/src/camera.h +++ b/src/camera.h @@ -23,6 +23,13 @@ #define CAMERA_MAX_FOV 90.0f #define CAMERA_SCALE 1.0f +enum ViewportCount { + VIEWPORTS_COUNT_1_PLAYER, + VIEWPORTS_COUNT_2_PLAYERS, + VIEWPORTS_COUNT_3_PLAYERS, + VIEWPORTS_COUNT_4_PLAYERS +}; + extern s8 D_800DD060; /* Size: 0x34 bytes. */ @@ -62,6 +69,6 @@ extern u8 D_800DD2F8[8]; extern s32 D_800DD300; -extern s16 D_800DD304; +extern s16 gButtonMask; #endif \ No newline at end of file diff --git a/src/menu.c b/src/menu.c index 6b1f829e..351ee3ba 100644 --- a/src/menu.c +++ b/src/menu.c @@ -1843,7 +1843,7 @@ void func_800828B8(void) { Settings *settings; settings = get_settings(); - func_8006B224(&num, &j); + get_number_of_levels_and_worlds(&num, &j); for(i = 0; i < num; i++) { settings->courseFlagsPtr[i] = 0; @@ -2030,9 +2030,9 @@ s32 menu_options_loop(s32 arg0) { // Change language s32 temp_v0 = get_language(); if ((temp_v0 >> 0x1F) == 0 && temp_v0 == 0) { - set_language(2); // Sets language to french + set_language(FRENCH); } else { - set_language(0); // Sets language to english + set_language(ENGLISH); } func_80001D04(0xEB, 0); } else if (D_800DF460 == 1 && analogX != 0) { @@ -3156,7 +3156,7 @@ void menu_file_select_init(void) { s32 sp38; s32 sp34; - func_8006B224(&sp38, &sp34); + get_number_of_levels_and_worlds(&sp38, &sp34); func_8009C674(D_800E0398); func_8009C8A4(D_800E03A4); func_8007FFEC(6); @@ -4557,16 +4557,16 @@ s64 func_8009EB08(void) { * 0 = English, 1 = German, 2 = French, 3 = Japanese */ s32 get_language(void) { - s32 language = 0; // English + s32 language = ENGLISH; switch(D_80126448 & 0xC) { - case 4: // German - language = 1; + case 4: + language = GERMAN; break; - case 8: // French - language = 2; + case 8: + language = FRENCH; break; - case 12: // "Japanese" - language = 3; + case 12: + language = JAPANESE; break; } return language; @@ -4581,13 +4581,13 @@ void set_language(s32 language) { s64 langFlag = 0; // English switch(language) { - case 1: // German + case GERMAN: langFlag = 4; break; - case 2: // French + case FRENCH: langFlag = 8; break; - case 3: // "Japanese" + case JAPANESE: langFlag = 12; break; } diff --git a/src/menu.h b/src/menu.h index 3b57298f..146a34ce 100644 --- a/src/menu.h +++ b/src/menu.h @@ -70,6 +70,13 @@ typedef enum MENU_ID { MENU_CAUTION } MENU_ID; +enum Language { + ENGLISH, + GERMAN, + FRENCH, + JAPANESE +}; + extern s8 D_800DF450; extern f32 D_800DF454; extern s32 D_800DF458; diff --git a/src/unknown_06B2B0.c b/src/unknown_06B2B0.c index a4fbc1b5..ee9b3aab 100644 --- a/src/unknown_06B2B0.c +++ b/src/unknown_06B2B0.c @@ -30,12 +30,15 @@ const char D_800E7148[] = "Swapping\n"; /************ .data ************/ -s8 D_800DD310 = 0; // Currently unknown, might be a different type. +s8 *D_800DD310 = NULL; // Currently unknown, might be a different type. s8 D_800DD314 = -1; s8 D_800DD318 = 0; s32 D_800DD31C = 0; -s32 D_800DD320 = 0x585E; -s32 D_800DD324 = 0x154; + +// Updated automatically from calc_func_checksums.py +s32 gFunc80068158Checksum = 0x585E; +s32 gFunc80068158Length = 0x154; + s16 D_800DD328 = 0; s16 D_800DD32C = 0; @@ -113,21 +116,25 @@ extern s32 D_800DFD94; /************ .bss ************/ -s32 *D_80121160; +s32 *gTempAssetTable; s32 D_80121164; LevelHeader *gCurrentLevelHeader; -s32 D_8012116C; -s32 D_80121170; -s32 D_80121174; +u8 **D_8012116C; +s32 gNumberOfLevelHeaders; +s32 gNumberOfWorlds; -// Unknown size -typedef struct unk80121178 { +s8 *D_80121178; + +/* Size: 6 bytes */ +typedef struct unk8012117C { s8 unk0; s8 unk1; s8 unk2; - s8 pad3[3]; -} unk80121178; -unk80121178 *D_80121178[2]; + s8 unk3; + s16 unk4; +} unk8012117C; +unk8012117C *D_8012117C; + s32 D_80121180[16]; s32 D_801211C0[2]; @@ -207,18 +214,135 @@ void func_80004A60(s32, s32); void menu_init(s32); void render(void); +Settings *get_settings(void); +s32 is_in_tracks_mode(void); +s32 *load_asset_section_from_rom(s32); +void load_asset_to_address(u32, s32*, s32, s32); +void free_from_memory_pool(s32*); + +#ifdef NON_MATCHING + +void func_80068158(Gfx**, s32, s32, s32, s32); + +void func_8006A6B0(void) { + s32 i, count, checksumCount; + s32 temp; + u8* sp44; + sp44 = allocate_from_main_pool_safe(sizeof(LevelHeader), COLOR_TAG_YELLOW); + gTempAssetTable = load_asset_section_from_rom(ASSET_LEVEL_HEADERS_TABLE); + for(i = 0; i < 16; i++) { + D_80121180[i] = 0; + } + gNumberOfLevelHeaders = 0; + while (gTempAssetTable[gNumberOfLevelHeaders] != -1) { + gNumberOfLevelHeaders++; + } + gNumberOfLevelHeaders--; + D_8012117C = allocate_from_main_pool_safe(gNumberOfLevelHeaders * sizeof(unk8012117C), COLOR_TAG_YELLOW); + gNumberOfWorlds = -1; + gCurrentLevelHeader = sp44; + for (i = 0; i < gNumberOfLevelHeaders; i++) { + load_asset_to_address(ASSET_LEVEL_HEADERS, gCurrentLevelHeader, gTempAssetTable[i], sizeof(LevelHeader)); + if (gNumberOfWorlds < gCurrentLevelHeader->world) { + gNumberOfWorlds = gCurrentLevelHeader->world; + } + if (gCurrentLevelHeader->race_type >= 0 && gCurrentLevelHeader->race_type < 16) { + D_80121180[gCurrentLevelHeader->race_type]++; + } + D_8012117C[i].unk0 = gCurrentLevelHeader->world; + D_8012117C[i].unk1 = gCurrentLevelHeader->race_type; + D_8012117C[i].unk2 = gCurrentLevelHeader->available_vehicles << 4; + D_8012117C[i].unk2 |= gCurrentLevelHeader->vehicle & 0xF; + D_8012117C[i].unk3 = 1; + D_8012117C[i].unk4 = gCurrentLevelHeader->unkB0; + } + gNumberOfWorlds++; + D_80121178 = allocate_from_main_pool_safe(gNumberOfWorlds, COLOR_TAG_YELLOW); + for (i = 0; i < gNumberOfWorlds; i++) { + D_80121178[i] = -1; + } + for (i = 0; i < gNumberOfLevelHeaders; i++) { + if (D_8012117C[i].unk1 == 5) { + D_80121178[D_8012117C[i].unk0] = i; + } + } + free_from_memory_pool(gTempAssetTable); + free_from_memory_pool(sp44); + + gTempAssetTable = load_asset_section_from_rom(ASSET_LEVEL_NAMES_TABLE); + count = 0; + while (gTempAssetTable[count] != -1) { + count++; + } + count--; + temp = gTempAssetTable[count] - gTempAssetTable[0]; + // Minor issue here. + D_8012116C = allocate_from_main_pool_safe(count * sizeof(s32), COLOR_TAG_YELLOW); + D_800DD310 = allocate_from_main_pool_safe(temp, COLOR_TAG_YELLOW); + load_asset_to_address(ASSET_LEVEL_NAMES, D_800DD310, 0, temp); + for(i = 0; i < count; i++) { + D_8012116C[i] = &D_800DD310[gTempAssetTable[i]]; + } + free_from_memory_pool(gTempAssetTable); + + // Anti-piracy/Anti-tamper check. + checksumCount = 0; + for(i = 0; i < gFunc80068158Length; i++) { + checksumCount += ((u8*)&func_80068158)[i]; + } + if (checksumCount != gFunc80068158Checksum) { + // Disables button inputs in some parts of the game if the checksum doesn't match. + disable_button_mask(); + } +} +#else GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006A6B0.s") +#endif + +// Unused. +s16 func_8006ABB4(s32 arg0) { + if (arg0 < 0) { + return 0xE10; + } + if (arg0 >= gNumberOfLevelHeaders) { + return 0xE10; + } + return D_8012117C[arg0].unk4; +} + +GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006AC00.s") +GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006AE2C.s") + +// Unused. +s32 func_8006B018(s8 arg0) { + if ((arg0 >= 0) && (arg0 < 16)) { + return D_80121180[arg0]; + } + return 0; +} + +// Unused. +s32 func_8006B054(s8 arg0) { + s32 out, i; + out = 0; + for(i = 0; i < gNumberOfLevelHeaders; i++) { + if (arg0 == D_8012117C[i].unk0) { + out++; + } + } + return out; +} s32 func_8006B0AC(s32 arg0) { - if (arg0 > 0 && arg0 < D_80121170) { - return D_80121178[1][arg0].unk2 & 0xF; + if (arg0 > 0 && arg0 < gNumberOfLevelHeaders) { + return D_8012117C[arg0].unk2 & 0xF; } return 0; } s32 func_8006B0F8(s32 arg0) { - if (arg0 > 0 && arg0 < D_80121170) { - s32 temp = D_80121178[1][arg0].unk2; + if (arg0 > 0 && arg0 < gNumberOfLevelHeaders) { + s32 temp = D_8012117C[arg0].unk2; if(temp != 0) { return (temp >> 4) & 0xF; } @@ -227,15 +351,15 @@ s32 func_8006B0F8(s32 arg0) { } s8 func_8006B14C(s32 arg0) { - if (arg0 >= 0 && arg0 < D_80121170) { - return D_80121178[1][arg0].unk1; + if (arg0 >= 0 && arg0 < gNumberOfLevelHeaders) { + return D_8012117C[arg0].unk1; } return -1; } s8 func_8006B190(s32 arg0) { - if (arg0 >= 0 && arg0 < D_80121170) { - return D_80121178[1][arg0].unk0; + if (arg0 >= 0 && arg0 < gNumberOfLevelHeaders) { + return D_8012117C[arg0].unk0; } return 0; } @@ -243,7 +367,7 @@ s8 func_8006B190(s32 arg0) { s32 func_8006B1D4(s32 arg0) { s8* temp; - if (arg0 < 0 || arg0 >= D_80121174) { + if (arg0 < 0 || arg0 >= gNumberOfWorlds) { arg0 = 0; } temp = get_misc_asset(0x1B); @@ -251,12 +375,11 @@ s32 func_8006B1D4(s32 arg0) { return temp[arg0]; } -void func_8006B224(s32* arg0, s32* arg1) { - *arg0 = D_80121170; - *arg1 = D_80121174; +void get_number_of_levels_and_worlds(s32* outLevelCount, s32* outWorldCount) { + *outLevelCount = gNumberOfLevelHeaders; + *outWorldCount = gNumberOfWorlds; } - s32 func_8006B240(void) { return D_800DD31C; } @@ -315,17 +438,17 @@ void load_level(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { } settings = get_settings(); - D_80121160 = load_asset_section_from_rom(ASSET_LEVEL_HEADERS_TABLE); + gTempAssetTable = load_asset_section_from_rom(ASSET_LEVEL_HEADERS_TABLE); phi_v1 = 0; - while (-1 != D_80121160[phi_v1]) { + while (-1 != gTempAssetTable[phi_v1]) { phi_v1++; } phi_v1--; if (arg0 >= phi_v1) { arg0 = 0; } - offset = D_80121160[arg0]; - size = D_80121160[arg0 + 1] - offset; + offset = gTempAssetTable[arg0]; + size = gTempAssetTable[arg0 + 1] - offset; gCurrentLevelHeader = (LevelHeader*)allocate_from_main_pool_safe(size, COLOR_TAG_YELLOW); load_asset_to_address(ASSET_LEVEL_HEADERS, gCurrentLevelHeader, offset, size); D_800DD330 = 0; @@ -392,12 +515,12 @@ void load_level(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) { D_800DD32C = 0; if (sp44 != arg0) { free_from_memory_pool(gCurrentLevelHeader); - offset = D_80121160[arg0]; - size = D_80121160[arg0 + 1] - offset; + offset = gTempAssetTable[arg0]; + size = gTempAssetTable[arg0 + 1] - offset; gCurrentLevelHeader = allocate_from_main_pool_safe(size, COLOR_TAG_YELLOW); load_asset_to_address(ASSET_LEVEL_HEADERS, gCurrentLevelHeader, offset, size); } - free_from_memory_pool(D_80121160); + free_from_memory_pool(gTempAssetTable); func_8006BFC8(&gCurrentLevelHeader->unk20); func_8000CBC0(); D_80121164 = arg0; @@ -553,10 +676,43 @@ LevelHeader* get_current_level_header(void) { /* Unused? */ u8 func_8006BDC0(void) { - return D_80121170 - 1; + return gNumberOfLevelHeaders - 1; } -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006BDDC.s") +u8 *func_8006BDDC(s32 arg0) { + u8 *text; + u8 numberOfNullPointers = 0; + + if(arg0 < 0 || arg0 >= gNumberOfLevelHeaders) { + return NULL; + } + + text = D_8012116C[arg0]; + switch(get_language()) { + case GERMAN: + while(numberOfNullPointers < 1) { + if(*(text++) == 0) { + numberOfNullPointers++; + } + } + break; + case FRENCH: + while(numberOfNullPointers < 2) { + if(*(text++) == 0) { + numberOfNullPointers++; + } + } + break; + case JAPANESE: + while(numberOfNullPointers < 3) { + if(*(text++) == 0) { + numberOfNullPointers++; + } + } + break; + } + return text; +} void func_8006BEFC(void) { func_8006C164(); @@ -578,23 +734,21 @@ void func_8006BEFC(void) { } } -Settings *get_settings(void); -s32 *load_asset_section_from_rom(s32); - #ifdef NON_MATCHING void func_8006BFC8(s8 *arg0) { s32 temp, temp2; s16 phi_v1; - s8 phi_s0 = 0; + s8 phi_s0; + Settings *settings; + phi_s0 = 0; if (!is_in_tracks_mode()) { - Settings *settings = get_settings(); - // Regalloc issue: temp3 should be a3, not v1. - s32 temp3 = settings->courseFlagsPtr[settings->courseId]; - if (temp3 & 2) { + settings = get_settings(); + // Regalloc issue here + if (settings->courseFlagsPtr[settings->courseId] & 2) { phi_s0 = 1; } - if (temp3 & 4) { + if (settings->courseFlagsPtr[settings->courseId] & 4) { phi_s0 = 2; } } else { @@ -617,20 +771,20 @@ void func_8006BFC8(s8 *arg0) { if (func_8006DA0C() == 1) { phi_s0 = 5; } - D_80121160 = load_asset_section_from_rom(ASSET_UNKNOWN_0_TABLE); + gTempAssetTable = load_asset_section_from_rom(ASSET_UNKNOWN_0_TABLE); phi_v1 = 0; - while (-1 != (s32)D_80121160[phi_v1]) { + while (-1 != (s32)gTempAssetTable[phi_v1]) { phi_v1++; } phi_v1--; if (phi_s0 >= phi_v1) { phi_s0 = 0; } - temp2 = D_80121160[phi_s0]; - temp = D_80121160[phi_s0 + 1] - temp2; + temp2 = gTempAssetTable[phi_s0]; + temp = gTempAssetTable[phi_s0 + 1] - temp2; D_801211C0[0] = allocate_from_main_pool_safe(temp, COLOR_TAG_YELLOW); load_asset_to_address(ASSET_UNKNOWN_0, D_801211C0[0], temp2, temp); - free_from_memory_pool(D_80121160); + free_from_memory_pool(gTempAssetTable); } #else GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006BFC8.s") @@ -786,10 +940,12 @@ void func_8006C3E0(void) { GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006C3E0.s") #endif -#ifdef NON_MATCHING void render(void) { s32 phi_v0; s32 phi_v0_2; + s32 temp, temp2; + + osSetTime(0); if (D_800DD380 == 8) { D_801211F8 = D_801211F0[D_801234E8]; @@ -838,12 +994,12 @@ void render(void) { case -1: func_8006F43C(); break; - case 0: - func_8006CCF0(D_800DD404); - break; case 1: func_8006DCF8(D_800DD404); break; + case 0: + func_8006CCF0(D_800DD404); + break; case 5: func_800B77D4(D_800DD404); break; @@ -888,16 +1044,13 @@ void render(void) { func_80070B04(gVideoLastFramebuffer, gVideoCurrFramebuffer, gVideoCurrFramebuffer + phi_v0_2); } - D_800DD404 = func_8007A98C(D_800DD380); - - // Can't get this to match. - if (D_800DD404 >= 7) { - D_800DD404 = 6; + temp = func_8007A98C(D_800DD380); + D_800DD404 = temp; + temp2 = 6; + if (temp > temp2) { + D_800DD404 = temp2; } } -#else -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/render.s") -#endif void func_8006CAE4(s32 arg0, s32 arg1, s32 arg2) { D_80123500 = arg0 - 1; @@ -920,7 +1073,7 @@ void load_level_2(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleI func_80065EA0(); func_800C3048(); load_level(levelId, numberOfPlayers, entranceId, vehicleId, D_80123508); - func_8009ECF0(func_80066210()); + func_8009ECF0(get_viewport_count()); func_800AE728(8, 0x10, 0x96, 0x64, 0x32, 0); func_8001BF20(); osSetTime(0); @@ -1050,7 +1203,7 @@ void load_level_3(s32 levelId, s32 numberOfPlayers, s32 entranceId, s32 vehicleI func_80065EA0(); func_800C3048(); load_level(levelId, numberOfPlayers, entranceId, vehicleId, cutsceneId); - func_8009ECF0(func_80066210()); + func_8009ECF0(get_viewport_count()); func_800AE728(4, 4, 0x6E, 0x30, 0x20, 0); func_8001BF20(); osSetTime(0); @@ -1079,7 +1232,7 @@ void func_8006DC58(s32 arg0) { func_80024D54(&D_801211F8, &D_80121208, &D_80121218, &D_80121228, arg0); func_800C3440(arg0); func_80078054(&D_801211F8); - func_80077050(&D_801211F8); + render_borders_for_multiplayer(&D_801211F8); func_80077268(&D_801211F8); } } @@ -1143,7 +1296,7 @@ void func_8006E994(Settings* settings) { s32 sp20; s32 sp1C; - func_8006B224(&sp1C, &sp20); + get_number_of_levels_and_worlds(&sp1C, &sp20); settings->newGame = 1; for (i = 0; i < sp20; i++) { @@ -1257,17 +1410,13 @@ void func_8006ECE0(void) { GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006ECFC.s") -#ifdef NON_MATCHING -extern s32 D_A4000000; s32 func_8006EFB8(void) { - if (D_A4000000 != -1) { // regalloc issue with D_A4000000 + // Have to use literal here for this function to match. + if (*((s32*)0xA4000000) != -1) { return 0; } return 1; } -#else -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006EFB8.s") -#endif #if 1 GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006EFDC.s") @@ -1453,14 +1602,10 @@ s32 func_8006F4C8(void) { } } -#ifdef NON_MATCHING -extern s32 SP_IMEM; s32 func_8006F4EC(void) { - if (SP_IMEM != 0x17D7) { // Same regalloc issue as func_8006EFB8 + // Have to use a literal here for the function to match. + if (*((s32*)0xA4001000) != 0x17D7) { return 0; } return 1; } -#else -GLOBAL_ASM("asm/non_matchings/unknown_06B2B0/func_8006F4EC.s") -#endif diff --git a/src/unknown_06B2B0.h b/src/unknown_06B2B0.h index aa163905..275c7e74 100644 --- a/src/unknown_06B2B0.h +++ b/src/unknown_06B2B0.h @@ -12,12 +12,12 @@ typedef struct unknown800DD408 { u16 unk6; } unknown800DD408; -extern s8 D_800DD310; +extern s8 *D_800DD310; extern s8 D_800DD314; extern s8 D_800DD318; extern s32 D_800DD31C; -extern s32 D_800DD320; -extern s32 D_800DD324; +extern s32 gFunc80068158Checksum; +extern s32 gFunc80068158Length; extern s16 D_800DD328; extern s16 D_800DD32C; @@ -63,7 +63,6 @@ extern s32 D_800DD3EC; extern s8 D_800DD3F0; extern s16 D_800DD3F4[8]; -extern s32 D_800DD404; extern unknown800DD408 D_800DD408; extern s32 D_800DD40C; diff --git a/src/unknown_077C50.c b/src/unknown_077C50.c index 4c400c0c..d5b196b2 100644 --- a/src/unknown_077C50.c +++ b/src/unknown_077C50.c @@ -3,8 +3,85 @@ #include "unknown_077C50.h" +#include "camera.h" #include "types.h" #include "macros.h" +#include "structs.h" +#include "f3ddkr.h" -GLOBAL_ASM("asm/non_matchings/unknown_077C50/func_80077050.s") +#ifdef NON_MATCHING + +// Draws the borders/negative space for multiplayer. Has regalloc issues +void render_borders_for_multiplayer(Gfx **dlist) { + u32 widthAndHeight, width, height; + u32 temp0, temp1, temp2, temp3; + LevelHeader *levelHeader; + widthAndHeight = get_video_width_and_height_as_s32(); + width = widthAndHeight & 0xFFFF; + temp0 = width >> 8; + height = widthAndHeight >> 16; + temp1 = height >> 7; + gDPSetCycleType((*dlist)++, G_CYC_FILL) + gDPSetFillColor((*dlist)++, 0x00010001) // Black fill color + switch(get_viewport_count()){ + case VIEWPORTS_COUNT_2_PLAYERS: + // Draws a solid horizontal black line in the middle of the screen. + gDPFillRectangle((*dlist)++, 0, (height >> 1) - temp1, width, ((height >> 1) - temp1) + temp1) + break; + case VIEWPORTS_COUNT_3_PLAYERS: + levelHeader = get_current_level_header(); + // Draw black square in the bottom-right corner. + if (func_800A8458() || (levelHeader->race_type & 0x40)) { + gDPFillRectangle((*dlist)++, width >> 1, height >> 1, width, height) + } + // There is no break statement here. This is intentional. + case VIEWPORTS_COUNT_4_PLAYERS: + temp2 = (width >> 1) - temp0; + // Draws 2 black lines in the middle of the screen. One vertical, another horizontal. + gDPFillRectangle((*dlist)++, 0, (height >> 1) - temp1, width, ((height >> 1) - temp1) + temp1) + gDPFillRectangle((*dlist)++, temp2, 0, temp2 + temp0, height) + break; + } + return; +} +#else +GLOBAL_ASM("asm/non_matchings/unknown_077C50/render_borders_for_multiplayer.s") +#endif + +#if 0 +void func_80077268(Gfx **dlist) { + u32 temp_a2_2; + u32 temp_v0_3; + u32 temp_v0_4; + u32 height; + u32 width; + u32 temp_t2; + u32 widthAndHeight; + u32 ra; + + widthAndHeight = get_video_width_and_height_as_s32(); + height = widthAndHeight >> 16; + width = widthAndHeight & 0xFFFF; + gDPSetCycleType((*dlist)++, G_CYC_1CYCLE) + gDPSetCombineMode((*dlist)++, G_CC_PRIMITIVE, G_CC_PRIMITIVE) + gDPSetRenderMode((*dlist)++, G_RM_XLU_SURF, G_RM_XLU_SURF2) + gDPSetPrimColor((*dlist)++, 0, 0, 0, 0, 0, 0) + // Issues with this block. + switch(get_viewport_count()){ + case VIEWPORTS_COUNT_2_PLAYERS: + temp_v0_4 = (height >> 1) - (temp_t2 >> 1); + gDPFillRectangle((*dlist)++, 0, temp_v0_4, width, temp_v0_4 + temp_t2) + break; + case VIEWPORTS_COUNT_3_PLAYERS: + case VIEWPORTS_COUNT_4_PLAYERS: + temp_v0_3 = (height >> 1) - (temp_t2 >> 1); + temp_a2_2 = (width >> 1) - (ra >> 1); + gDPFillRectangle((*dlist)++, 0, temp_v0_3, width, temp_v0_3 + temp_t2) + gDPFillRectangle((*dlist)++, temp_a2_2, 0, temp_a2_2 + ra, height) + break; + } +} + +#else GLOBAL_ASM("asm/non_matchings/unknown_077C50/func_80077268.s") +#endif diff --git a/src/unknown_0ABDF0.c b/src/unknown_0ABDF0.c index 1199b309..3f067980 100644 --- a/src/unknown_0ABDF0.c +++ b/src/unknown_0ABDF0.c @@ -292,7 +292,7 @@ void func_800AD2C4(s32 arg0, s32 arg1, f32 arg2) { #ifdef NON_MATCHING void func_800AD40C(void) { s16 a, b; - if (D_800E2C5C && !func_80066210()) { + if (D_800E2C5C && !get_viewport_count()) { a = ((-D_800E2C60 * 38) >> 16) + 1018; b = ((-D_800E2C60 * 20) >> 16) + 1023; func_80030664(0, a, b, 28, 15, 36); diff --git a/tools/python/calc_func_checksums.py b/tools/python/calc_func_checksums.py index 86530d13..7111832b 100644 --- a/tools/python/calc_func_checksums.py +++ b/tools/python/calc_func_checksums.py @@ -14,7 +14,7 @@ FUNCTIONS_TO_CALC = [ ('func_80019808', 'D_800DC690'), ('func_80024D54', 'D_800DCEA0'), ('func_8003B4BC', 'D_800DCDD0'), - ('func_80068158', 'D_800DD320') + ('func_80068158', 'gFunc80068158Checksum') ] def getMatches(string, regex):