diff --git a/asm/bss_MainSeg.s b/asm/bss_MainSeg.s index 7c15be3c2..34cec497e 100644 --- a/asm/bss_MainSeg.s +++ b/asm/bss_MainSeg.s @@ -170,7 +170,7 @@ glabel D_80164378 glabel D_80164386 .skip 10 -glabel D_80164390 +glabel lapCount .skip 2 glabel D_80164392 diff --git a/asm/code_80004EF0.s b/asm/code_80004EF0.s index d90363da2..9df4546dd 100644 --- a/asm/code_80004EF0.s +++ b/asm/code_80004EF0.s @@ -891,8 +891,8 @@ glabel func_80005B18 /* 006724 80005B24 24030001 */ li $v1, 1 /* 006728 80005B28 146400CC */ bne $v1, $a0, .L80005E5C /* 00672C 80005B2C AFBF0014 */ sw $ra, 0x14($sp) -/* 006730 80005B30 3C088016 */ lui $t0, %hi(D_80164390) # $t0, 0x8016 -/* 006734 80005B34 25084390 */ addiu $t0, %lo(D_80164390) # addiu $t0, $t0, 0x4390 +/* 006730 80005B30 3C088016 */ lui $t0, %hi(lapCount) # $t0, 0x8016 +/* 006734 80005B34 25084390 */ addiu $t0, %lo(lapCount) # addiu $t0, $t0, 0x4390 /* 006738 80005B38 8D020000 */ lw $v0, ($t0) /* 00673C 80005B3C 24060003 */ li $a2, 3 /* 006740 80005B40 3C058016 */ lui $a1, %hi(D_80162DDC) # $a1, 0x8016 @@ -1080,8 +1080,8 @@ glabel func_80005B18 /* 006A00 80005E00 00000000 */ nop /* 006A04 80005E04 0C0015F7 */ jal func_800057DC /* 006A08 80005E08 00000000 */ nop -/* 006A0C 80005E0C 3C088016 */ lui $t0, %hi(D_80164390) # $t0, 0x8016 -/* 006A10 80005E10 25084390 */ addiu $t0, %lo(D_80164390) # addiu $t0, $t0, 0x4390 +/* 006A0C 80005E0C 3C088016 */ lui $t0, %hi(lapCount) # $t0, 0x8016 +/* 006A10 80005E10 25084390 */ addiu $t0, %lo(lapCount) # addiu $t0, $t0, 0x4390 /* 006A14 80005E14 24060003 */ li $a2, 3 .L80005E18: /* 006A18 80005E18 3C198016 */ lui $t9, %hi(D_80162DD6) # $t9, 0x8016 diff --git a/asm/code_800431B0.s b/asm/code_800431B0.s index db05e6bb1..6e070f719 100644 --- a/asm/code_800431B0.s +++ b/asm/code_800431B0.s @@ -14257,13 +14257,13 @@ glabel func_80050320 /* 050F5C 8005035C 3C128019 */ lui $s2, %hi(D_8018D050) # $s2, 0x8019 /* 050F60 80050360 3C178019 */ lui $s7, %hi(D_8018D3E0) # $s7, 0x8019 /* 050F64 80050364 3C15800E */ lui $s5, %hi(D_800DC4DC) # $s5, 0x800e -/* 050F68 80050368 3C148016 */ lui $s4, %hi(D_80164390) # $s4, 0x8016 +/* 050F68 80050368 3C148016 */ lui $s4, %hi(lapCount) # $s4, 0x8016 /* 050F6C 8005036C 3C138019 */ lui $s3, %hi(D_8018D078) # $s3, 0x8019 /* 050F70 80050370 4480B000 */ mtc1 $zero, $f22 /* 050F74 80050374 4480A800 */ mtc1 $zero, $f21 /* 050F78 80050378 4480A000 */ mtc1 $zero, $f20 /* 050F7C 8005037C 2673D078 */ addiu $s3, %lo(D_8018D078) # addiu $s3, $s3, -0x2f88 -/* 050F80 80050380 26944390 */ addiu $s4, %lo(D_80164390) # addiu $s4, $s4, 0x4390 +/* 050F80 80050380 26944390 */ addiu $s4, %lo(lapCount) # addiu $s4, $s4, 0x4390 /* 050F84 80050384 26B5C4DC */ addiu $s5, %lo(D_800DC4DC) # addiu $s5, $s5, -0x3b24 /* 050F88 80050388 26F7D3E0 */ addiu $s7, %lo(D_8018D3E0) # addiu $s7, $s7, -0x2c20 /* 050F8C 8005038C 2652D050 */ addiu $s2, %lo(D_8018D050) # addiu $s2, $s2, -0x2fb0 @@ -14343,13 +14343,13 @@ glabel func_80050320 .L800504A4: /* 0510A4 800504A4 3C128019 */ lui $s2, %hi(D_8018D050) # $s2, 0x8019 /* 0510A8 800504A8 3C15800E */ lui $s5, %hi(D_800DC4DC) # $s5, 0x800e -/* 0510AC 800504AC 3C148016 */ lui $s4, %hi(D_80164390) # $s4, 0x8016 +/* 0510AC 800504AC 3C148016 */ lui $s4, %hi(lapCount) # $s4, 0x8016 /* 0510B0 800504B0 3C138019 */ lui $s3, %hi(D_8018D078) # $s3, 0x8019 /* 0510B4 800504B4 4480B000 */ mtc1 $zero, $f22 /* 0510B8 800504B8 4480A800 */ mtc1 $zero, $f21 /* 0510BC 800504BC 4480A000 */ mtc1 $zero, $f20 /* 0510C0 800504C0 2673D078 */ addiu $s3, %lo(D_8018D078) # addiu $s3, $s3, -0x2f88 -/* 0510C4 800504C4 26944390 */ addiu $s4, %lo(D_80164390) # addiu $s4, $s4, 0x4390 +/* 0510C4 800504C4 26944390 */ addiu $s4, %lo(lapCount) # addiu $s4, $s4, 0x4390 /* 0510C8 800504C8 26B5C4DC */ addiu $s5, %lo(D_800DC4DC) # addiu $s5, $s5, -0x3b24 /* 0510CC 800504CC 2652D050 */ addiu $s2, %lo(D_8018D050) # addiu $s2, $s2, -0x2fb0 /* 0510D0 800504D0 00008025 */ move $s0, $zero @@ -14454,9 +14454,9 @@ glabel func_80050320 glabel func_80050644 /* 051244 80050644 308EFFFF */ andi $t6, $a0, 0xffff /* 051248 80050648 000E4080 */ sll $t0, $t6, 2 -/* 05124C 8005064C 3C078016 */ lui $a3, %hi(D_80164390) # 0x8016 +/* 05124C 8005064C 3C078016 */ lui $a3, %hi(lapCount) # 0x8016 /* 051250 80050650 00E83821 */ addu $a3, $a3, $t0 -/* 051254 80050654 8CE74390 */ lw $a3, %lo(D_80164390)($a3) # 0x4390($a3) +/* 051254 80050654 8CE74390 */ lw $a3, %lo(lapCount)($a3) # 0x4390($a3) /* 051258 80050658 AFA40000 */ sw $a0, ($sp) /* 05125C 8005065C 00001825 */ move $v1, $zero /* 051260 80050660 28E10003 */ slti $at, $a3, 3 @@ -14658,9 +14658,9 @@ glabel func_800508C0 /* 051500 80050900 0C014191 */ jal func_80050644 /* 051504 80050904 27A60050 */ addiu $a2, $sp, 0x50 /* 051508 80050908 00107880 */ sll $t7, $s0, 2 -/* 05150C 8005090C 3C038016 */ lui $v1, %hi(D_80164390) # 0x8016 +/* 05150C 8005090C 3C038016 */ lui $v1, %hi(lapCount) # 0x8016 /* 051510 80050910 006F1821 */ addu $v1, $v1, $t7 -/* 051514 80050914 8C634390 */ lw $v1, %lo(D_80164390)($v1) # 0x4390($v1) +/* 051514 80050914 8C634390 */ lw $v1, %lo(lapCount)($v1) # 0x4390($v1) /* 051518 80050918 AFA2004C */ sw $v0, 0x4c($sp) /* 05151C 8005091C 24010001 */ li $at, 1 /* 051520 80050920 18600037 */ blez $v1, .L80050A00 @@ -15024,7 +15024,7 @@ glabel func_80050E34 /* 051A60 80050E60 3C0E800E */ lui $t6, %hi(gPlayerCountSelection1) # $t6, 0x800e /* 051A64 80050E64 8DCEC538 */ lw $t6, %lo(gPlayerCountSelection1)($t6) /* 051A68 80050E68 AFB00024 */ sw $s0, 0x24($sp) -/* 051A6C 80050E6C 3C108016 */ lui $s0, %hi(D_80164390) # 0x8016 +/* 051A6C 80050E6C 3C108016 */ lui $s0, %hi(lapCount) # 0x8016 /* 051A70 80050E70 0004C080 */ sll $t8, $a0, 2 /* 051A74 80050E74 0004C940 */ sll $t9, $a0, 5 /* 051A78 80050E78 3C0D8019 */ lui $t5, %hi(D_8018CE24) # 0x8019 @@ -15036,7 +15036,7 @@ glabel func_80050E34 /* 051A90 80050E90 01B96821 */ addu $t5, $t5, $t9 /* 051A94 80050E94 24010001 */ li $at, 1 /* 051A98 80050E98 00803825 */ move $a3, $a0 -/* 051A9C 80050E9C 8E104390 */ lw $s0, %lo(D_80164390)($s0) # 0x4390($s0) +/* 051A9C 80050E9C 8E104390 */ lw $s0, %lo(lapCount)($s0) # 0x4390($s0) /* 051AA0 80050EA0 94510254 */ lhu $s1, 0x254($v0) /* 051AA4 80050EA4 15C10004 */ bne $t6, $at, .L80050EB8 /* 051AA8 80050EA8 8DADCE24 */ lw $t5, %lo(D_8018CE24)($t5) # -0x31dc($t5) diff --git a/asm/code_80057C60.s b/asm/code_80057C60.s index d137d4055..356483e3b 100644 --- a/asm/code_80057C60.s +++ b/asm/code_80057C60.s @@ -2660,12 +2660,12 @@ glabel func_8005A14C /* 05AD50 8005A150 01C47023 */ subu $t6, $t6, $a0 /* 05AD54 8005A154 000E7100 */ sll $t6, $t6, 4 /* 05AD58 8005A158 0004C880 */ sll $t9, $a0, 2 -/* 05AD5C 8005A15C 3C098016 */ lui $t1, %hi(D_80164390) +/* 05AD5C 8005A15C 3C098016 */ lui $t1, %hi(lapCount) /* 05AD60 8005A160 01C47023 */ subu $t6, $t6, $a0 /* 05AD64 8005A164 3C0F800E */ lui $t7, %hi(D_800DC4DC) # $t7, 0x800e /* 05AD68 8005A168 01394821 */ addu $t1, $t1, $t9 /* 05AD6C 8005A16C 8DEFC4DC */ lw $t7, %lo(D_800DC4DC)($t7) -/* 05AD70 8005A170 8D294390 */ lw $t1, %lo(D_80164390)($t1) +/* 05AD70 8005A170 8D294390 */ lw $t1, %lo(lapCount)($t1) /* 05AD74 8005A174 27BDFFD0 */ addiu $sp, $sp, -0x30 /* 05AD78 8005A178 000E7080 */ sll $t6, $t6, 2 /* 05AD7C 8005A17C 01C47023 */ subu $t6, $t6, $a0 @@ -6060,7 +6060,7 @@ glabel func_8005D0FC /* 05DD0C 8005D10C 104E001B */ beq $v0, $t6, .L8005D17C /* 05DD10 8005D110 AFBF0014 */ sw $ra, 0x14($sp) /* 05DD14 8005D114 1080000B */ beqz $a0, .L8005D144 -/* 05DD18 8005D118 3C058016 */ lui $a1, %hi(D_80164390) +/* 05DD18 8005D118 3C058016 */ lui $a1, %hi(lapCount) /* 05DD1C 8005D11C 24010001 */ li $at, 1 /* 05DD20 8005D120 1081000C */ beq $a0, $at, .L8005D154 /* 05DD24 8005D124 3C058016 */ lui $a1, %hi(D_80164394) @@ -6073,7 +6073,7 @@ glabel func_8005D0FC /* 05DD40 8005D140 8FBF0014 */ lw $ra, 0x14($sp) .L8005D144: /* 05DD44 8005D144 0C0172D8 */ jal func_8005CB60 -/* 05DD48 8005D148 8CA54390 */ lw $a1, %lo(D_80164390)($a1) +/* 05DD48 8005D148 8CA54390 */ lw $a1, %lo(lapCount)($a1) /* 05DD4C 8005D14C 1000000C */ b .L8005D180 /* 05DD50 8005D150 8FBF0014 */ lw $ra, 0x14($sp) .L8005D154: diff --git a/asm/non_matchings/code_80005FD0.s b/asm/non_matchings/code_80005FD0.s index 7374b7d4b..eb7d7aa56 100644 --- a/asm/non_matchings/code_80005FD0.s +++ b/asm/non_matchings/code_80005FD0.s @@ -3275,10 +3275,10 @@ glabel func_80008E58 glabel func_80008F38 /* 009B38 80008F38 3C068016 */ lui $a2, %hi(D_801645C8) # $a2, 0x8016 /* 009B3C 80008F3C 00041080 */ sll $v0, $a0, 2 -/* 009B40 80008F40 3C038016 */ lui $v1, %hi(D_80164390) # 0x8016 +/* 009B40 80008F40 3C038016 */ lui $v1, %hi(lapCount) # 0x8016 /* 009B44 80008F44 24C645C8 */ addiu $a2, %lo(D_801645C8) # addiu $a2, $a2, 0x45c8 /* 009B48 80008F48 00621821 */ addu $v1, $v1, $v0 -/* 009B4C 80008F4C 8C634390 */ lw $v1, %lo(D_80164390)($v1) # 0x4390($v1) +/* 009B4C 80008F4C 8C634390 */ lw $v1, %lo(lapCount)($v1) # 0x4390($v1) /* 009B50 80008F50 94CE0000 */ lhu $t6, ($a2) /* 009B54 80008F54 00042840 */ sll $a1, $a0, 1 /* 009B58 80008F58 3C088016 */ lui $t0, %hi(D_80164438) # 0x8016 @@ -3620,12 +3620,12 @@ glabel func_8000929C .L8000943C: /* 00A03C 8000943C C426CFA8 */ lwc1 $f6, %lo(D_800ECFA8)($at) /* 00A040 80009440 00045080 */ sll $t2, $a0, 2 -/* 00A044 80009444 3C0B8016 */ lui $t3, %hi(D_80164390) # 0x8016 +/* 00A044 80009444 3C0B8016 */ lui $t3, %hi(lapCount) # 0x8016 /* 00A048 80009448 4606603C */ c.lt.s $f12, $f6 /* 00A04C 8000944C 016A5821 */ addu $t3, $t3, $t2 /* 00A050 80009450 45000028 */ bc1f .L800094F4 /* 00A054 80009454 00000000 */ nop -/* 00A058 80009458 8D6B4390 */ lw $t3, %lo(D_80164390)($t3) # 0x4390($t3) +/* 00A058 80009458 8D6B4390 */ lw $t3, %lo(lapCount)($t3) # 0x4390($t3) /* 00A05C 8000945C 29610002 */ slti $at, $t3, 2 /* 00A060 80009460 10200024 */ beqz $at, .L800094F4 /* 00A064 80009464 00000000 */ nop @@ -3651,12 +3651,12 @@ glabel func_8000929C .L800094B0: /* 00A0B0 800094B0 C42ACFAC */ lwc1 $f10, %lo(D_800ECFAC)($at) /* 00A0B4 800094B4 00046880 */ sll $t5, $a0, 2 -/* 00A0B8 800094B8 3C0E8016 */ lui $t6, %hi(D_80164390) # 0x8016 +/* 00A0B8 800094B8 3C0E8016 */ lui $t6, %hi(lapCount) # 0x8016 /* 00A0BC 800094BC 460C503C */ c.lt.s $f10, $f12 /* 00A0C0 800094C0 01CD7021 */ addu $t6, $t6, $t5 /* 00A0C4 800094C4 4500000B */ bc1f .L800094F4 /* 00A0C8 800094C8 00000000 */ nop -/* 00A0CC 800094CC 8DCE4390 */ lw $t6, %lo(D_80164390)($t6) # 0x4390($t6) +/* 00A0CC 800094CC 8DCE4390 */ lw $t6, %lo(lapCount)($t6) # 0x4390($t6) /* 00A0D0 800094D0 29C10002 */ slti $at, $t6, 2 /* 00A0D4 800094D4 10200007 */ beqz $at, .L800094F4 /* 00A0D8 800094D8 00000000 */ nop @@ -3688,8 +3688,8 @@ glabel func_8000929C /* 00A134 80009534 4500004B */ bc1f .L80009664 /* 00A138 80009538 00000000 */ nop /* 00A13C 8000953C 4604003C */ c.lt.s $f0, $f4 -/* 00A140 80009540 3C188016 */ lui $t8, %hi(D_80164390) # $t8, 0x8016 -/* 00A144 80009544 27184390 */ addiu $t8, %lo(D_80164390) # addiu $t8, $t8, 0x4390 +/* 00A140 80009540 3C188016 */ lui $t8, %hi(lapCount) # $t8, 0x8016 +/* 00A144 80009544 27184390 */ addiu $t8, %lo(lapCount) # addiu $t8, $t8, 0x4390 /* 00A148 80009548 00F81021 */ addu $v0, $a3, $t8 /* 00A14C 8000954C 45000045 */ bc1f .L80009664 /* 00A150 80009550 00000000 */ nop @@ -3706,9 +3706,9 @@ glabel func_8000929C /* 00A17C 8000957C 01876021 */ addu $t4, $t4, $a3 /* 00A180 80009580 8D8C4408 */ lw $t4, %lo(D_80164408)($t4) # 0x4408($t4) /* 00A184 80009584 24010007 */ li $at, 7 -/* 00A188 80009588 3C028016 */ lui $v0, %hi(D_80164390) # $v0, 0x8016 +/* 00A188 80009588 3C028016 */ lui $v0, %hi(lapCount) # $v0, 0x8016 /* 00A18C 8000958C 15810011 */ bne $t4, $at, .L800095D4 -/* 00A190 80009590 24424390 */ addiu $v0, %lo(D_80164390) # addiu $v0, $v0, 0x4390 +/* 00A190 80009590 24424390 */ addiu $v0, %lo(lapCount) # addiu $v0, $v0, 0x4390 /* 00A194 80009594 3C038016 */ lui $v1, %hi(D_801643B0) # $v1, 0x8016 /* 00A198 80009598 246343B0 */ addiu $v1, %lo(D_801643B0) # addiu $v1, $v1, 0x43b0 .L8000959C: @@ -3775,8 +3775,8 @@ glabel func_8000929C /* 00A280 80009680 4502000E */ bc1fl .L800096BC /* 00A284 80009684 C7AA0044 */ lwc1 $f10, 0x44($sp) /* 00A288 80009688 4608003C */ c.lt.s $f0, $f8 -/* 00A28C 8000968C 3C0A8016 */ lui $t2, %hi(D_80164390) # $t2, 0x8016 -/* 00A290 80009690 254A4390 */ addiu $t2, %lo(D_80164390) # addiu $t2, $t2, 0x4390 +/* 00A28C 8000968C 3C0A8016 */ lui $t2, %hi(lapCount) # $t2, 0x8016 +/* 00A290 80009690 254A4390 */ addiu $t2, %lo(lapCount) # addiu $t2, $t2, 0x4390 /* 00A294 80009694 00EA1021 */ addu $v0, $a3, $t2 /* 00A298 80009698 45020008 */ bc1fl .L800096BC /* 00A29C 8000969C C7AA0044 */ lwc1 $f10, 0x44($sp) @@ -10374,8 +10374,8 @@ glabel func_8000F2DC glabel func_8000F628 /* 010228 8000F628 27BDFEE0 */ addiu $sp, $sp, -0x120 /* 01022C 8000F62C 3C0E8016 */ lui $t6, %hi(D_80163210) # $t6, 0x8016 -/* 010230 8000F630 3C0F8016 */ lui $t7, %hi(D_80164390) # $t7, 0x8016 -/* 010234 8000F634 25EF4390 */ addiu $t7, %lo(D_80164390) # addiu $t7, $t7, 0x4390 +/* 010230 8000F630 3C0F8016 */ lui $t7, %hi(lapCount) # $t7, 0x8016 +/* 010234 8000F634 25EF4390 */ addiu $t7, %lo(lapCount) # addiu $t7, $t7, 0x4390 /* 010238 8000F638 25CE3210 */ addiu $t6, %lo(D_80163210) # addiu $t6, $t6, 0x3210 /* 01023C 8000F63C AFAE00D4 */ sw $t6, 0xd4($sp) /* 010240 8000F640 AFAF00D0 */ sw $t7, 0xd0($sp) @@ -22922,12 +22922,12 @@ glabel L8001ACAC /* 01B8F0 8001ACF0 14200018 */ bnez $at, .L8001AD54 /* 01B8F4 8001ACF4 00000000 */ nop /* 01B8F8 8001ACF8 860B0006 */ lh $t3, 6($s0) -/* 01B8FC 8001ACFC 3C038016 */ lui $v1, %hi(D_80164390) # 0x8016 +/* 01B8FC 8001ACFC 3C038016 */ lui $v1, %hi(lapCount) # 0x8016 /* 01B900 8001AD00 00621821 */ addu $v1, $v1, $v0 /* 01B904 8001AD04 29610003 */ slti $at, $t3, 3 /* 01B908 8001AD08 10200012 */ beqz $at, .L8001AD54 /* 01B90C 8001AD0C 00000000 */ nop -/* 01B910 8001AD10 8C634390 */ lw $v1, %lo(D_80164390)($v1) # 0x4390($v1) +/* 01B910 8001AD10 8C634390 */ lw $v1, %lo(lapCount)($v1) # 0x4390($v1) /* 01B914 8001AD14 3C068016 */ lui $a2, %hi(D_801643B8) # $a2, 0x8016 /* 01B918 8001AD18 24C643B8 */ addiu $a2, %lo(D_801643B8) # addiu $a2, $a2, 0x43b8 /* 01B91C 8001AD1C 28610003 */ slti $at, $v1, 3 @@ -22952,11 +22952,11 @@ glabel L8001ACAC /* 01B960 8001AD60 86020004 */ lh $v0, 4($s0) glabel L8001AD64 /* 01B964 8001AD64 8FA20030 */ lw $v0, 0x30($sp) -/* 01B968 8001AD68 3C0E8016 */ lui $t6, %hi(D_80164390) # 0x8016 +/* 01B968 8001AD68 3C0E8016 */ lui $t6, %hi(lapCount) # 0x8016 /* 01B96C 8001AD6C 3C068016 */ lui $a2, %hi(D_801643B8) # $a2, 0x8016 /* 01B970 8001AD70 00027880 */ sll $t7, $v0, 2 /* 01B974 8001AD74 01CF7021 */ addu $t6, $t6, $t7 -/* 01B978 8001AD78 8DCE4390 */ lw $t6, %lo(D_80164390)($t6) # 0x4390($t6) +/* 01B978 8001AD78 8DCE4390 */ lw $t6, %lo(lapCount)($t6) # 0x4390($t6) /* 01B97C 8001AD7C 24C643B8 */ addiu $a2, %lo(D_801643B8) # addiu $a2, $a2, 0x43b8 /* 01B980 8001AD80 3C038016 */ lui $v1, %hi(D_80163478) # $v1, 0x8016 /* 01B984 8001AD84 19C0004B */ blez $t6, .L8001AEB4 diff --git a/asm/code_8028DF00.s b/asm/non_matchings/code_8028DF00/code_8028DF00.s similarity index 53% rename from asm/code_8028DF00.s rename to asm/non_matchings/code_8028DF00/code_8028DF00.s index d6dc47ba3..c820803a9 100644 --- a/asm/code_8028DF00.s +++ b/asm/non_matchings/code_8028DF00/code_8028DF00.s @@ -1,1496 +1,3 @@ -# Mario Kart 64 (U) disassembly and split file -# generated by n64split v0.4a - N64 ROM splitter - -# assembler directives -.set noat # allow manual use of $at -.set noreorder # don't insert nops after branches -.set gp=64 - -.include "macros.inc" - -.section .text, "ax" - -glabel func_8028DF00 -/* 0F7510 8028DF00 3C0E800F */ lui $t6, %hi(D_800F6914) # $t6, 0x800f -/* 0F7514 8028DF04 95CE6914 */ lhu $t6, %lo(D_800F6914)($t6) -/* 0F7518 8028DF08 3C01802C */ lui $at, %hi(D_802BA040) # $at, 0x802c -/* 0F751C 8028DF0C 3C02800F */ lui $v0, %hi(gPlayer2Controller) # $v0, 0x800f -/* 0F7520 8028DF10 24426920 */ addiu $v0, %lo(gPlayer2Controller) # addiu $v0, $v0, 0x6920 -/* 0F7524 8028DF14 A42EA040 */ sh $t6, %lo(D_802BA040)($at) -/* 0F7528 8028DF18 944F0004 */ lhu $t7, 4($v0) -/* 0F752C 8028DF1C 24420020 */ addiu $v0, $v0, 0x20 -/* 0F7530 8028DF20 A42FA042 */ sh $t7, %lo(D_802BA040+0x2)($at) -/* 0F7534 8028DF24 9458FFF4 */ lhu $t8, -0xc($v0) -/* 0F7538 8028DF28 A438A044 */ sh $t8, %lo(D_802BA040+0x4)($at) -/* 0F753C 8028DF2C 94590004 */ lhu $t9, 4($v0) -/* 0F7540 8028DF30 03E00008 */ jr $ra -/* 0F7544 8028DF34 A439A046 */ sh $t9, %lo(D_802BA040+0x6)($at) - -glabel func_8028DF38 -/* 0F7548 8028DF38 3C04800F */ lui $a0, %hi(D_800F6914) # $a0, 0x800f -/* 0F754C 8028DF3C 3C0E802C */ lui $t6, %hi(D_802BA040) # $t6, 0x802c -/* 0F7550 8028DF40 85CEA040 */ lh $t6, %lo(D_802BA040)($t6) -/* 0F7554 8028DF44 94846914 */ lhu $a0, %lo(D_800F6914)($a0) -/* 0F7558 8028DF48 3C01800F */ lui $at, %hi(D_800F6916) # $at, 0x800f -/* 0F755C 8028DF4C 3C02800F */ lui $v0, %hi(gPlayer2Controller) # $v0, 0x800f -/* 0F7560 8028DF50 01C47826 */ xor $t7, $t6, $a0 -/* 0F7564 8028DF54 01E4C024 */ and $t8, $t7, $a0 -/* 0F7568 8028DF58 A4386916 */ sh $t8, %lo(D_800F6916)($at) -/* 0F756C 8028DF5C 01C4C826 */ xor $t9, $t6, $a0 -/* 0F7570 8028DF60 3C01800F */ lui $at, %hi(D_800F6918) # $at, 0x800f -/* 0F7574 8028DF64 032E4024 */ and $t0, $t9, $t6 -/* 0F7578 8028DF68 A4286918 */ sh $t0, %lo(D_800F6918)($at) -/* 0F757C 8028DF6C 3C01800F */ lui $at, %hi(D_800F6914) # $at, 0x800f -/* 0F7580 8028DF70 3C09802C */ lui $t1, %hi(D_802BA042) # $t1, 0x802c -/* 0F7584 8028DF74 24426920 */ addiu $v0, %lo(gPlayer2Controller) # addiu $v0, $v0, 0x6920 -/* 0F7588 8028DF78 A42E6914 */ sh $t6, %lo(D_800F6914)($at) -/* 0F758C 8028DF7C 94430004 */ lhu $v1, 4($v0) -/* 0F7590 8028DF80 8529A042 */ lh $t1, %lo(D_802BA042)($t1) -/* 0F7594 8028DF84 3C0C802C */ lui $t4, %hi(D_802BA042) # $t4, 0x802c -/* 0F7598 8028DF88 3C18802C */ lui $t8, %hi(D_802BA042) # $t8, 0x802c -/* 0F759C 8028DF8C 01235026 */ xor $t2, $t1, $v1 -/* 0F75A0 8028DF90 01435824 */ and $t3, $t2, $v1 -/* 0F75A4 8028DF94 A44B0006 */ sh $t3, 6($v0) -/* 0F75A8 8028DF98 858CA042 */ lh $t4, %lo(D_802BA042)($t4) -/* 0F75AC 8028DF9C 3C19802C */ lui $t9, %hi(D_802BA044) # $t9, 0x802c -/* 0F75B0 8028DFA0 3C09802C */ lui $t1, %hi(D_802BA044) # $t1, 0x802c -/* 0F75B4 8028DFA4 01836826 */ xor $t5, $t4, $v1 -/* 0F75B8 8028DFA8 01AC7824 */ and $t7, $t5, $t4 -/* 0F75BC 8028DFAC A44F0008 */ sh $t7, 8($v0) -/* 0F75C0 8028DFB0 8718A042 */ lh $t8, %lo(D_802BA042)($t8) -/* 0F75C4 8028DFB4 94430014 */ lhu $v1, 0x14($v0) -/* 0F75C8 8028DFB8 3C0D802C */ lui $t5, %hi(D_802BA044) # $t5, 0x802c -/* 0F75CC 8028DFBC A4580004 */ sh $t8, 4($v0) -/* 0F75D0 8028DFC0 8739A044 */ lh $t9, %lo(D_802BA044)($t9) -/* 0F75D4 8028DFC4 3C0C802C */ lui $t4, %hi(D_802BA046) # $t4, 0x802c -/* 0F75D8 8028DFC8 24420020 */ addiu $v0, $v0, 0x20 -/* 0F75DC 8028DFCC 03234026 */ xor $t0, $t9, $v1 -/* 0F75E0 8028DFD0 01037024 */ and $t6, $t0, $v1 -/* 0F75E4 8028DFD4 A44EFFF6 */ sh $t6, -0xa($v0) -/* 0F75E8 8028DFD8 8529A044 */ lh $t1, %lo(D_802BA044)($t1) -/* 0F75EC 8028DFDC 3C19802C */ lui $t9, %hi(D_802BA046) # $t9, 0x802c -/* 0F75F0 8028DFE0 01235026 */ xor $t2, $t1, $v1 -/* 0F75F4 8028DFE4 01495824 */ and $t3, $t2, $t1 -/* 0F75F8 8028DFE8 A44BFFF8 */ sh $t3, -8($v0) -/* 0F75FC 8028DFEC 85ADA044 */ lh $t5, %lo(D_802BA044)($t5) -/* 0F7600 8028DFF0 94430004 */ lhu $v1, 4($v0) -/* 0F7604 8028DFF4 3C0A802C */ lui $t2, %hi(D_802BA046) # $t2, 0x802c -/* 0F7608 8028DFF8 A44DFFF4 */ sh $t5, -0xc($v0) -/* 0F760C 8028DFFC 858CA046 */ lh $t4, %lo(D_802BA046)($t4) -/* 0F7610 8028E000 01837826 */ xor $t7, $t4, $v1 -/* 0F7614 8028E004 01E3C024 */ and $t8, $t7, $v1 -/* 0F7618 8028E008 A4580006 */ sh $t8, 6($v0) -/* 0F761C 8028E00C 8739A046 */ lh $t9, %lo(D_802BA046)($t9) -/* 0F7620 8028E010 03234026 */ xor $t0, $t9, $v1 -/* 0F7624 8028E014 01197024 */ and $t6, $t0, $t9 -/* 0F7628 8028E018 A44E0008 */ sh $t6, 8($v0) -/* 0F762C 8028E01C 854AA046 */ lh $t2, %lo(D_802BA046)($t2) -/* 0F7630 8028E020 03E00008 */ jr $ra -/* 0F7634 8028E024 A44A0004 */ sh $t2, 4($v0) - -glabel func_8028E028 -/* 0F7638 8028E028 3C02800E */ lui $v0, %hi(gPlayerCountSelection1) # $v0, 0x800e -/* 0F763C 8028E02C 8C42C538 */ lw $v0, %lo(gPlayerCountSelection1)($v0) -/* 0F7640 8028E030 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F7644 8028E034 24010002 */ li $at, 2 -/* 0F7648 8028E038 10410009 */ beq $v0, $at, .L8028E060 -/* 0F764C 8028E03C AFBF0014 */ sw $ra, 0x14($sp) -/* 0F7650 8028E040 24010003 */ li $at, 3 -/* 0F7654 8028E044 1041000F */ beq $v0, $at, .L8028E084 -/* 0F7658 8028E048 3C088016 */ lui $t0, %hi(D_8015F8C8) # $t0, 0x8016 -/* 0F765C 8028E04C 24010004 */ li $at, 4 -/* 0F7660 8028E050 10410014 */ beq $v0, $at, .L8028E0A4 -/* 0F7664 8028E054 3C0C8016 */ lui $t4, %hi(D_8015F8CC) # $t4, 0x8016 -/* 0F7668 8028E058 10000019 */ b .L8028E0C0 -/* 0F766C 8028E05C 00000000 */ nop -.L8028E060: -/* 0F7670 8028E060 3C0E8016 */ lui $t6, %hi(D_8015F8C4) # $t6, 0x8016 -/* 0F7674 8028E064 3C0F800E */ lui $t7, %hi(D_800DC5E8) # $t7, 0x800e -/* 0F7678 8028E068 8DEFC5E8 */ lw $t7, %lo(D_800DC5E8)($t7) -/* 0F767C 8028E06C 8DCEF8C4 */ lw $t6, %lo(D_8015F8C4)($t6) -/* 0F7680 8028E070 01CF1021 */ addu $v0, $t6, $t7 -/* 0F7684 8028E074 90580000 */ lbu $t8, ($v0) -/* 0F7688 8028E078 27190001 */ addiu $t9, $t8, 1 -/* 0F768C 8028E07C 10000010 */ b .L8028E0C0 -/* 0F7690 8028E080 A0590000 */ sb $t9, ($v0) -.L8028E084: -/* 0F7694 8028E084 3C09800E */ lui $t1, %hi(D_800DC5E8) # $t1, 0x800e -/* 0F7698 8028E088 8D29C5E8 */ lw $t1, %lo(D_800DC5E8)($t1) -/* 0F769C 8028E08C 8D08F8C8 */ lw $t0, %lo(D_8015F8C8)($t0) -/* 0F76A0 8028E090 01091021 */ addu $v0, $t0, $t1 -/* 0F76A4 8028E094 904A0000 */ lbu $t2, ($v0) -/* 0F76A8 8028E098 254B0001 */ addiu $t3, $t2, 1 -/* 0F76AC 8028E09C 10000008 */ b .L8028E0C0 -/* 0F76B0 8028E0A0 A04B0000 */ sb $t3, ($v0) -.L8028E0A4: -/* 0F76B4 8028E0A4 3C0D800E */ lui $t5, %hi(D_800DC5E8) # $t5, 0x800e -/* 0F76B8 8028E0A8 8DADC5E8 */ lw $t5, %lo(D_800DC5E8)($t5) -/* 0F76BC 8028E0AC 8D8CF8CC */ lw $t4, %lo(D_8015F8CC)($t4) -/* 0F76C0 8028E0B0 018D1021 */ addu $v0, $t4, $t5 -/* 0F76C4 8028E0B4 904E0000 */ lbu $t6, ($v0) -/* 0F76C8 8028E0B8 25CF0001 */ addiu $t7, $t6, 1 -/* 0F76CC 8028E0BC A04F0000 */ sb $t7, ($v0) -.L8028E0C0: -/* 0F76D0 8028E0C0 3C04800E */ lui $a0, %hi(D_800DC5EB) # $a0, 0x800e -/* 0F76D4 8028E0C4 0C032846 */ jal func_800CA118 -/* 0F76D8 8028E0C8 9084C5EB */ lbu $a0, %lo(D_800DC5EB)($a0) -/* 0F76DC 8028E0CC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F76E0 8028E0D0 24180005 */ li $t8, 5 -/* 0F76E4 8028E0D4 3C01800E */ lui $at, %hi(D_800DC510) # $at, 0x800e -/* 0F76E8 8028E0D8 AC38C510 */ sw $t8, %lo(D_800DC510)($at) -/* 0F76EC 8028E0DC 3C01802C */ lui $at, %hi(D_802BA038) # $at, 0x802c -/* 0F76F0 8028E0E0 2419000A */ li $t9, 10 -/* 0F76F4 8028E0E4 AC39A038 */ sw $t9, %lo(D_802BA038)($at) -/* 0F76F8 8028E0E8 03E00008 */ jr $ra -/* 0F76FC 8028E0EC 27BD0018 */ addiu $sp, $sp, 0x18 - -glabel func_8028E0F0 -/* 0F7700 8028E0F0 27BDFF98 */ addiu $sp, $sp, -0x68 -/* 0F7704 8028E0F4 AFB70034 */ sw $s7, 0x34($sp) -/* 0F7708 8028E0F8 AFB40028 */ sw $s4, 0x28($sp) -/* 0F770C 8028E0FC AFB00018 */ sw $s0, 0x18($sp) -/* 0F7710 8028E100 AFBE0038 */ sw $fp, 0x38($sp) -/* 0F7714 8028E104 AFB60030 */ sw $s6, 0x30($sp) -/* 0F7718 8028E108 AFB5002C */ sw $s5, 0x2c($sp) -/* 0F771C 8028E10C AFB30024 */ sw $s3, 0x24($sp) -/* 0F7720 8028E110 AFB20020 */ sw $s2, 0x20($sp) -/* 0F7724 8028E114 AFB1001C */ sw $s1, 0x1c($sp) -/* 0F7728 8028E118 3C10800F */ lui $s0, %hi(D_800F6990) # $s0, 0x800f -/* 0F772C 8028E11C 3C14800E */ lui $s4, %hi(D_800DC4DC) # $s4, 0x800e -/* 0F7730 8028E120 3C178019 */ lui $s7, %hi(D_8018D8C0) # $s7, 0x8019 -/* 0F7734 8028E124 AFBF003C */ sw $ra, 0x3c($sp) -/* 0F7738 8028E128 00009825 */ move $s3, $zero -/* 0F773C 8028E12C 00009025 */ move $s2, $zero -/* 0F7740 8028E130 26F7D8C0 */ addiu $s7, %lo(D_8018D8C0) # addiu $s7, $s7, -0x2740 -/* 0F7744 8028E134 2694C4DC */ addiu $s4, %lo(D_800DC4DC) # addiu $s4, $s4, -0x3b24 -/* 0F7748 8028E138 26106990 */ addiu $s0, %lo(D_800F6990) # addiu $s0, $s0, 0x6990 -/* 0F774C 8028E13C 00008825 */ move $s1, $zero -/* 0F7750 8028E140 24150DD8 */ li $s5, 3544 -/* 0F7754 8028E144 24160004 */ li $s6, 4 -/* 0F7758 8028E148 27BE0050 */ addiu $fp, $sp, 0x50 -.L8028E14C: -/* 0F775C 8028E14C 96020000 */ lhu $v0, ($s0) -/* 0F7760 8028E150 304E8000 */ andi $t6, $v0, 0x8000 -/* 0F7764 8028E154 11C00034 */ beqz $t6, .L8028E228 -/* 0F7768 8028E158 304F0800 */ andi $t7, $v0, 0x800 -/* 0F776C 8028E15C 15E00032 */ bnez $t7, .L8028E228 -/* 0F7770 8028E160 0011C040 */ sll $t8, $s1, 1 -/* 0F7774 8028E164 02F8C821 */ addu $t9, $s7, $t8 -/* 0F7778 8028E168 87280000 */ lh $t0, ($t9) -/* 0F777C 8028E16C 00135040 */ sll $t2, $s3, 1 -/* 0F7780 8028E170 03AA5821 */ addu $t3, $sp, $t2 -/* 0F7784 8028E174 0503001B */ bgezl $t0, .L8028E1E4 -/* 0F7788 8028E178 8E990000 */ lw $t9, ($s4) -/* 0F778C 8028E17C 8E8A0000 */ lw $t2, ($s4) -/* 0F7790 8028E180 00126840 */ sll $t5, $s2, 1 -/* 0F7794 8028E184 26520001 */ addiu $s2, $s2, 1 -/* 0F7798 8028E188 020A5823 */ subu $t3, $s0, $t2 -/* 0F779C 8028E18C 0175001A */ div $zero, $t3, $s5 -/* 0F77A0 8028E190 34490800 */ ori $t1, $v0, 0x800 -/* 0F77A4 8028E194 00006012 */ mflo $t4 -/* 0F77A8 8028E198 03CD7021 */ addu $t6, $fp, $t5 -/* 0F77AC 8028E19C 00127C00 */ sll $t7, $s2, 0x10 -/* 0F77B0 8028E1A0 A6090000 */ sh $t1, ($s0) -/* 0F77B4 8028E1A4 16A00002 */ bnez $s5, .L8028E1B0 -/* 0F77B8 8028E1A8 00000000 */ nop -/* 0F77BC 8028E1AC 0007000D */ break 7 -.L8028E1B0: -/* 0F77C0 8028E1B0 2401FFFF */ li $at, -1 -/* 0F77C4 8028E1B4 16A10004 */ bne $s5, $at, .L8028E1C8 -/* 0F77C8 8028E1B8 3C018000 */ lui $at, 0x8000 -/* 0F77CC 8028E1BC 15610002 */ bne $t3, $at, .L8028E1C8 -/* 0F77D0 8028E1C0 00000000 */ nop -/* 0F77D4 8028E1C4 0006000D */ break 6 -.L8028E1C8: -/* 0F77D8 8028E1C8 A5CC0000 */ sh $t4, ($t6) -/* 0F77DC 8028E1CC 000F9403 */ sra $s2, $t7, 0x10 -/* 0F77E0 8028E1D0 0C032846 */ jal func_800CA118 -/* 0F77E4 8028E1D4 322400FF */ andi $a0, $s1, 0xff -/* 0F77E8 8028E1D8 10000014 */ b .L8028E22C -/* 0F77EC 8028E1DC 26310001 */ addiu $s1, $s1, 1 -/* 0F77F0 8028E1E0 8E990000 */ lw $t9, ($s4) -.L8028E1E4: -/* 0F77F4 8028E1E4 26730001 */ addiu $s3, $s3, 1 -/* 0F77F8 8028E1E8 00136C00 */ sll $t5, $s3, 0x10 -/* 0F77FC 8028E1EC 02194023 */ subu $t0, $s0, $t9 -/* 0F7800 8028E1F0 0115001A */ div $zero, $t0, $s5 -/* 0F7804 8028E1F4 00004812 */ mflo $t1 -/* 0F7808 8028E1F8 000D6403 */ sra $t4, $t5, 0x10 -/* 0F780C 8028E1FC A5690058 */ sh $t1, 0x58($t3) -/* 0F7810 8028E200 16A00002 */ bnez $s5, .L8028E20C -/* 0F7814 8028E204 00000000 */ nop -/* 0F7818 8028E208 0007000D */ break 7 -.L8028E20C: -/* 0F781C 8028E20C 2401FFFF */ li $at, -1 -/* 0F7820 8028E210 16A10004 */ bne $s5, $at, .L8028E224 -/* 0F7824 8028E214 3C018000 */ lui $at, 0x8000 -/* 0F7828 8028E218 15010002 */ bne $t0, $at, .L8028E224 -/* 0F782C 8028E21C 00000000 */ nop -/* 0F7830 8028E220 0006000D */ break 6 -.L8028E224: -/* 0F7834 8028E224 01809825 */ move $s3, $t4 -.L8028E228: -/* 0F7838 8028E228 26310001 */ addiu $s1, $s1, 1 -.L8028E22C: -/* 0F783C 8028E22C 1636FFC7 */ bne $s1, $s6, .L8028E14C -/* 0F7840 8028E230 26100DD8 */ addiu $s0, $s0, 0xdd8 -/* 0F7844 8028E234 24010001 */ li $at, 1 -/* 0F7848 8028E238 16610006 */ bne $s3, $at, .L8028E254 -/* 0F784C 8028E23C 87AE0058 */ lh $t6, 0x58($sp) -/* 0F7850 8028E240 3C01800E */ lui $at, %hi(D_800DC5E8) # $at, 0x800e -/* 0F7854 8028E244 0C0A380A */ jal func_8028E028 -/* 0F7858 8028E248 AC2EC5E8 */ sw $t6, %lo(D_800DC5E8)($at) -/* 0F785C 8028E24C 10000007 */ b .L8028E26C -/* 0F7860 8028E250 8FBF003C */ lw $ra, 0x3c($sp) -.L8028E254: -/* 0F7864 8028E254 16600004 */ bnez $s3, .L8028E268 -/* 0F7868 8028E258 87AF0050 */ lh $t7, 0x50($sp) -/* 0F786C 8028E25C 3C01800E */ lui $at, %hi(D_800DC5E8) # $at, 0x800e -/* 0F7870 8028E260 0C0A380A */ jal func_8028E028 -/* 0F7874 8028E264 AC2FC5E8 */ sw $t7, %lo(D_800DC5E8)($at) -.L8028E268: -/* 0F7878 8028E268 8FBF003C */ lw $ra, 0x3c($sp) -.L8028E26C: -/* 0F787C 8028E26C 8FB00018 */ lw $s0, 0x18($sp) -/* 0F7880 8028E270 8FB1001C */ lw $s1, 0x1c($sp) -/* 0F7884 8028E274 8FB20020 */ lw $s2, 0x20($sp) -/* 0F7888 8028E278 8FB30024 */ lw $s3, 0x24($sp) -/* 0F788C 8028E27C 8FB40028 */ lw $s4, 0x28($sp) -/* 0F7890 8028E280 8FB5002C */ lw $s5, 0x2c($sp) -/* 0F7894 8028E284 8FB60030 */ lw $s6, 0x30($sp) -/* 0F7898 8028E288 8FB70034 */ lw $s7, 0x34($sp) -/* 0F789C 8028E28C 8FBE0038 */ lw $fp, 0x38($sp) -/* 0F78A0 8028E290 03E00008 */ jr $ra -/* 0F78A4 8028E294 27BD0068 */ addiu $sp, $sp, 0x68 - -glabel func_8028E298 -/* 0F78A8 8028E298 3C014170 */ li $at, 0x41700000 # 15.000000 -/* 0F78AC 8028E29C 44816000 */ mtc1 $at, $f12 -/* 0F78B0 8028E2A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 0F78B4 8028E2A4 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F78B8 8028E2A8 3C05800F */ lui $a1, %hi(D_800F6990) # $a1, 0x800f -/* 0F78BC 8028E2AC 3C0D800E */ lui $t5, %hi(gCourseTimer) # $t5, 0x800e -/* 0F78C0 8028E2B0 3C0C8016 */ lui $t4, %hi(D_8015F898) # $t4, 0x8016 -/* 0F78C4 8028E2B4 3C0B8016 */ lui $t3, %hi(D_801644A8) # $t3, 0x8016 -/* 0F78C8 8028E2B8 3C098016 */ lui $t1, %hi(D_801645C8) # $t1, 0x8016 -/* 0F78CC 8028E2BC 3C088016 */ lui $t0, %hi(D_801645B0) # $t0, 0x8016 -/* 0F78D0 8028E2C0 44811000 */ mtc1 $at, $f2 -/* 0F78D4 8028E2C4 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F78D8 8028E2C8 250845B0 */ addiu $t0, %lo(D_801645B0) # addiu $t0, $t0, 0x45b0 -/* 0F78DC 8028E2CC 252945C8 */ addiu $t1, %lo(D_801645C8) # addiu $t1, $t1, 0x45c8 -/* 0F78E0 8028E2D0 256B44A8 */ addiu $t3, %lo(D_801644A8) # addiu $t3, $t3, 0x44a8 -/* 0F78E4 8028E2D4 258CF898 */ addiu $t4, %lo(D_8015F898) # addiu $t4, $t4, -0x768 -/* 0F78E8 8028E2D8 25ADC598 */ addiu $t5, %lo(gCourseTimer) # addiu $t5, $t5, -0x3a68 -/* 0F78EC 8028E2DC 24A56990 */ addiu $a1, %lo(D_800F6990) # addiu $a1, $a1, 0x6990 -/* 0F78F0 8028E2E0 00002025 */ move $a0, $zero -/* 0F78F4 8028E2E4 240A0002 */ li $t2, 2 -/* 0F78F8 8028E2E8 24070008 */ li $a3, 8 -.L8028E2EC: -/* 0F78FC 8028E2EC 94AE0000 */ lhu $t6, ($a1) -/* 0F7900 8028E2F0 0004C040 */ sll $t8, $a0, 1 -/* 0F7904 8028E2F4 0118C821 */ addu $t9, $t0, $t8 -/* 0F7908 8028E2F8 31CF0800 */ andi $t7, $t6, 0x800 -/* 0F790C 8028E2FC 55E0001E */ bnel $t7, $zero, .L8028E378 -/* 0F7910 8028E300 24840001 */ addiu $a0, $a0, 1 -/* 0F7914 8028E304 97260000 */ lhu $a2, ($t9) -/* 0F7918 8028E308 84B80008 */ lh $t8, 8($a1) -/* 0F791C 8028E30C 00041880 */ sll $v1, $a0, 2 -/* 0F7920 8028E310 00067040 */ sll $t6, $a2, 1 -/* 0F7924 8028E314 012E7821 */ addu $t7, $t1, $t6 -/* 0F7928 8028E318 95E20000 */ lhu $v0, ($t7) -/* 0F792C 8028E31C 0158C823 */ subu $t9, $t2, $t8 -/* 0F7930 8028E320 01637821 */ addu $t7, $t3, $v1 -/* 0F7934 8028E324 00590019 */ multu $v0, $t9 -/* 0F7938 8028E328 44823000 */ mtc1 $v0, $f6 -/* 0F793C 8028E32C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 -/* 0F7940 8028E330 46803220 */ cvt.s.w $f8, $f6 -/* 0F7944 8028E334 00007012 */ mflo $t6 -/* 0F7948 8028E338 448E2000 */ mtc1 $t6, $f4 -/* 0F794C 8028E33C 04410004 */ bgez $v0, .L8028E350 -/* 0F7950 8028E340 46802020 */ cvt.s.w $f0, $f4 -/* 0F7954 8028E344 44815000 */ mtc1 $at, $f10 -/* 0F7958 8028E348 00000000 */ nop -/* 0F795C 8028E34C 460A4200 */ add.s $f8, $f8, $f10 -.L8028E350: -/* 0F7960 8028E350 C5F00000 */ lwc1 $f16, ($t7) -/* 0F7964 8028E354 C5A60000 */ lwc1 $f6, ($t5) -/* 0F7968 8028E358 0183C021 */ addu $t8, $t4, $v1 -/* 0F796C 8028E35C 46101481 */ sub.s $f18, $f2, $f16 -/* 0F7970 8028E360 46124102 */ mul.s $f4, $f8, $f18 -/* 0F7974 8028E364 46040000 */ add.s $f0, $f0, $f4 -/* 0F7978 8028E368 460C0003 */ div.s $f0, $f0, $f12 -/* 0F797C 8028E36C 46003280 */ add.s $f10, $f6, $f0 -/* 0F7980 8028E370 E70A0000 */ swc1 $f10, ($t8) -/* 0F7984 8028E374 24840001 */ addiu $a0, $a0, 1 -.L8028E378: -/* 0F7988 8028E378 1487FFDC */ bne $a0, $a3, .L8028E2EC -/* 0F798C 8028E37C 24A50DD8 */ addiu $a1, $a1, 0xdd8 -/* 0F7990 8028E380 24190001 */ li $t9, 1 -/* 0F7994 8028E384 3C018016 */ lui $at, %hi(D_8016348C) # $at, 0x8016 -/* 0F7998 8028E388 0C001C3D */ jal func_800070F4 -/* 0F799C 8028E38C A439348C */ sh $t9, %lo(D_8016348C)($at) -/* 0F79A0 8028E390 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F79A4 8028E394 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F79A8 8028E398 03E00008 */ jr $ra -/* 0F79AC 8028E39C 00000000 */ nop - -glabel func_8028E3A0 -/* 0F79B0 8028E3A0 3C0E8015 */ lui $t6, %hi(D_80150120) # $t6, 0x8015 -/* 0F79B4 8028E3A4 8DCE0120 */ lw $t6, %lo(D_80150120)($t6) -/* 0F79B8 8028E3A8 3C038019 */ lui $v1, %hi(gCourseSelection) # $v1, 0x8019 -/* 0F79BC 8028E3AC 2463EE0B */ addiu $v1, %lo(gCourseSelection) # addiu $v1, $v1, -0x11f5 -/* 0F79C0 8028E3B0 11C00015 */ beqz $t6, .L8028E408 -/* 0F79C4 8028E3B4 3C04800E */ lui $a0, %hi(D_800DC544) # 0x800e -/* 0F79C8 8028E3B8 3C038019 */ lui $v1, %hi(gCourseSelection) # $v1, 0x8019 -/* 0F79CC 8028E3BC 2463EE0B */ addiu $v1, %lo(gCourseSelection) # addiu $v1, $v1, -0x11f5 -/* 0F79D0 8028E3C0 80620000 */ lb $v0, ($v1) -/* 0F79D4 8028E3C4 24010003 */ li $at, 3 -/* 0F79D8 8028E3C8 3C04800E */ lui $a0, %hi(D_800DC544) # $a0, 0x800e -/* 0F79DC 8028E3CC 14410005 */ bne $v0, $at, .L8028E3E4 -/* 0F79E0 8028E3D0 2484C544 */ addiu $a0, %lo(D_800DC544) # addiu $a0, $a0, -0x3abc -/* 0F79E4 8028E3D4 240F0005 */ li $t7, 5 -/* 0F79E8 8028E3D8 3C018015 */ lui $at, %hi(D_80150124) # 0x8015 -/* 0F79EC 8028E3DC 03E00008 */ jr $ra -/* 0F79F0 8028E3E0 AC2F0124 */ sw $t7, %lo(D_80150124)($at) # 0x124($at) - -.L8028E3E4: -/* 0F79F4 8028E3E4 8C980000 */ lw $t8, ($a0) -/* 0F79F8 8028E3E8 24480001 */ addiu $t0, $v0, 1 -/* 0F79FC 8028E3EC A0680000 */ sb $t0, ($v1) -/* 0F7A00 8028E3F0 27190001 */ addiu $t9, $t8, 1 -/* 0F7A04 8028E3F4 AC990000 */ sw $t9, ($a0) -/* 0F7A08 8028E3F8 24090004 */ li $t1, 4 -/* 0F7A0C 8028E3FC 3C018015 */ lui $at, %hi(D_80150124) # 0x8015 -/* 0F7A10 8028E400 03E00008 */ jr $ra -/* 0F7A14 8028E404 AC290124 */ sw $t1, %lo(D_80150124)($at) # 0x124($at) - -.L8028E408: -/* 0F7A18 8028E408 2484C544 */ addiu $a0, $a0, %lo(D_800DC544) # -0x3abc -/* 0F7A1C 8028E40C 8C8A0000 */ lw $t2, ($a0) -/* 0F7A20 8028E410 806C0000 */ lb $t4, ($v1) -/* 0F7A24 8028E414 240E0004 */ li $t6, 4 -/* 0F7A28 8028E418 254B0001 */ addiu $t3, $t2, 1 -/* 0F7A2C 8028E41C 258D0001 */ addiu $t5, $t4, 1 -/* 0F7A30 8028E420 AC8B0000 */ sw $t3, ($a0) -/* 0F7A34 8028E424 A06D0000 */ sb $t5, ($v1) -/* 0F7A38 8028E428 3C018015 */ lui $at, %hi(D_80150124) # $at, 0x8015 -/* 0F7A3C 8028E42C AC2E0124 */ sw $t6, %lo(D_80150124)($at) -/* 0F7A40 8028E430 03E00008 */ jr $ra -/* 0F7A44 8028E434 00000000 */ nop - -glabel func_8028E438 -/* 0F7A48 8028E438 24040001 */ li $a0, 1 -/* 0F7A4C 8028E43C 3C078016 */ lui $a3, %hi(D_8015F894) # $a3, 0x8016 -/* 0F7A50 8028E440 3C0E800E */ lui $t6, %hi(D_800DC5E8) # $t6, 0x800e -/* 0F7A54 8028E444 3C01800E */ lui $at, %hi(D_800DC5B0) # $at, 0x800e -/* 0F7A58 8028E448 8DCEC5E8 */ lw $t6, %lo(D_800DC5E8)($t6) -/* 0F7A5C 8028E44C 24E7F894 */ addiu $a3, %lo(D_8015F894) # addiu $a3, $a3, -0x76c -/* 0F7A60 8028E450 A424C5B0 */ sh $a0, %lo(D_800DC5B0)($at) -/* 0F7A64 8028E454 94E30000 */ lhu $v1, ($a3) -/* 0F7A68 8028E458 3C188016 */ lui $t8, %hi(D_8015F480) # $t8, 0x8016 -/* 0F7A6C 8028E45C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F7A70 8028E460 2718F480 */ addiu $t8, %lo(D_8015F480) # addiu $t8, $t8, -0xb80 -/* 0F7A74 8028E464 000E7980 */ sll $t7, $t6, 6 -/* 0F7A78 8028E468 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F7A7C 8028E46C 10600008 */ beqz $v1, .L8028E490 -/* 0F7A80 8028E470 01F81021 */ addu $v0, $t7, $t8 -/* 0F7A84 8028E474 24010001 */ li $at, 1 -/* 0F7A88 8028E478 10610011 */ beq $v1, $at, .L8028E4C0 -/* 0F7A8C 8028E47C 24010002 */ li $at, 2 -/* 0F7A90 8028E480 5061007A */ beql $v1, $at, .L8028E66C -/* 0F7A94 8028E484 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F7A98 8028E488 10000078 */ b .L8028E66C -/* 0F7A9C 8028E48C 8FBF0014 */ lw $ra, 0x14($sp) -.L8028E490: -/* 0F7AA0 8028E490 3C01800E */ lui $at, %hi(D_800DC5B8) # $at, 0x800e -/* 0F7AA4 8028E494 A420C5B8 */ sh $zero, %lo(D_800DC5B8)($at) -/* 0F7AA8 8028E498 A4E40000 */ sh $a0, ($a3) -/* 0F7AAC 8028E49C 3C19800E */ lui $t9, %hi(gPlayerCountSelection1) # $t9, 0x800e -/* 0F7AB0 8028E4A0 8F39C538 */ lw $t9, %lo(gPlayerCountSelection1)($t9) -/* 0F7AB4 8028E4A4 24010003 */ li $at, 3 -/* 0F7AB8 8028E4A8 57210070 */ bnel $t9, $at, .L8028E66C -/* 0F7ABC 8028E4AC 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F7AC0 8028E4B0 0C024973 */ jal func_800925CC -/* 0F7AC4 8028E4B4 00000000 */ nop -/* 0F7AC8 8028E4B8 1000006C */ b .L8028E66C -/* 0F7ACC 8028E4BC 8FBF0014 */ lw $ra, 0x14($sp) -.L8028E4C0: -/* 0F7AD0 8028E4C0 8444002C */ lh $a0, 0x2c($v0) -/* 0F7AD4 8028E4C4 28810140 */ slti $at, $a0, 0x140 -/* 0F7AD8 8028E4C8 10200002 */ beqz $at, .L8028E4D4 -/* 0F7ADC 8028E4CC 24880002 */ addiu $t0, $a0, 2 -/* 0F7AE0 8028E4D0 A448002C */ sh $t0, 0x2c($v0) -.L8028E4D4: -/* 0F7AE4 8028E4D4 8446002E */ lh $a2, 0x2e($v0) -/* 0F7AE8 8028E4D8 28C100F0 */ slti $at, $a2, 0xf0 -/* 0F7AEC 8028E4DC 10200002 */ beqz $at, .L8028E4E8 -/* 0F7AF0 8028E4E0 24C90002 */ addiu $t1, $a2, 2 -/* 0F7AF4 8028E4E4 A449002E */ sh $t1, 0x2e($v0) -.L8028E4E8: -/* 0F7AF8 8028E4E8 84450030 */ lh $a1, 0x30($v0) -/* 0F7AFC 8028E4EC 240F00F0 */ li $t7, 240 -/* 0F7B00 8028E4F0 28A100A0 */ slti $at, $a1, 0xa0 -/* 0F7B04 8028E4F4 10200003 */ beqz $at, .L8028E504 -/* 0F7B08 8028E4F8 24AA0001 */ addiu $t2, $a1, 1 -/* 0F7B0C 8028E4FC 10000005 */ b .L8028E514 -/* 0F7B10 8028E500 A44A0030 */ sh $t2, 0x30($v0) -.L8028E504: -/* 0F7B14 8028E504 28A100A1 */ slti $at, $a1, 0xa1 -/* 0F7B18 8028E508 14200002 */ bnez $at, .L8028E514 -/* 0F7B1C 8028E50C 24ABFFFF */ addiu $t3, $a1, -1 -/* 0F7B20 8028E510 A44B0030 */ sh $t3, 0x30($v0) -.L8028E514: -/* 0F7B24 8028E514 84430032 */ lh $v1, 0x32($v0) -/* 0F7B28 8028E518 24180140 */ li $t8, 320 -/* 0F7B2C 8028E51C 28610078 */ slti $at, $v1, 0x78 -/* 0F7B30 8028E520 10200003 */ beqz $at, .L8028E530 -/* 0F7B34 8028E524 246C0001 */ addiu $t4, $v1, 1 -/* 0F7B38 8028E528 10000005 */ b .L8028E540 -/* 0F7B3C 8028E52C A44C0032 */ sh $t4, 0x32($v0) -.L8028E530: -/* 0F7B40 8028E530 28610079 */ slti $at, $v1, 0x79 -/* 0F7B44 8028E534 14200002 */ bnez $at, .L8028E540 -/* 0F7B48 8028E538 246DFFFF */ addiu $t5, $v1, -1 -/* 0F7B4C 8028E53C A44D0032 */ sh $t5, 0x32($v0) -.L8028E540: -/* 0F7B50 8028E540 844E002E */ lh $t6, 0x2e($v0) -/* 0F7B54 8028E544 00001825 */ move $v1, $zero -/* 0F7B58 8028E548 24080002 */ li $t0, 2 -/* 0F7B5C 8028E54C 29C100F0 */ slti $at, $t6, 0xf0 -/* 0F7B60 8028E550 54200004 */ bnel $at, $zero, .L8028E564 -/* 0F7B64 8028E554 8444002C */ lh $a0, 0x2c($v0) -/* 0F7B68 8028E558 24030001 */ li $v1, 1 -/* 0F7B6C 8028E55C A44F002E */ sh $t7, 0x2e($v0) -/* 0F7B70 8028E560 8444002C */ lh $a0, 0x2c($v0) -.L8028E564: -/* 0F7B74 8028E564 28810140 */ slti $at, $a0, 0x140 -/* 0F7B78 8028E568 54200005 */ bnel $at, $zero, .L8028E580 -/* 0F7B7C 8028E56C 84590032 */ lh $t9, 0x32($v0) -/* 0F7B80 8028E570 A458002C */ sh $t8, 0x2c($v0) -/* 0F7B84 8028E574 8444002C */ lh $a0, 0x2c($v0) -/* 0F7B88 8028E578 24630001 */ addiu $v1, $v1, 1 -/* 0F7B8C 8028E57C 84590032 */ lh $t9, 0x32($v0) -.L8028E580: -/* 0F7B90 8028E580 24010078 */ li $at, 120 -/* 0F7B94 8028E584 8446002E */ lh $a2, 0x2e($v0) -/* 0F7B98 8028E588 17210002 */ bne $t9, $at, .L8028E594 -/* 0F7B9C 8028E58C 84450030 */ lh $a1, 0x30($v0) -/* 0F7BA0 8028E590 24630001 */ addiu $v1, $v1, 1 -.L8028E594: -/* 0F7BA4 8028E594 44842000 */ mtc1 $a0, $f4 -/* 0F7BA8 8028E598 240100A0 */ li $at, 160 -/* 0F7BAC 8028E59C 14A10002 */ bne $a1, $at, .L8028E5A8 -/* 0F7BB0 8028E5A0 468021A0 */ cvt.s.w $f6, $f4 -/* 0F7BB4 8028E5A4 24630001 */ addiu $v1, $v1, 1 -.L8028E5A8: -/* 0F7BB8 8028E5A8 44864000 */ mtc1 $a2, $f8 -/* 0F7BBC 8028E5AC 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015 -/* 0F7BC0 8028E5B0 468042A0 */ cvt.s.w $f10, $f8 -/* 0F7BC4 8028E5B4 460A3403 */ div.s $f16, $f6, $f10 -/* 0F7BC8 8028E5B8 E4300148 */ swc1 $f16, %lo(D_80150148)($at) -/* 0F7BCC 8028E5BC 24010004 */ li $at, 4 -/* 0F7BD0 8028E5C0 5461002A */ bnel $v1, $at, .L8028E66C -/* 0F7BD4 8028E5C4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F7BD8 8028E5C8 A4E80000 */ sh $t0, ($a3) -/* 0F7BDC 8028E5CC 3C01800E */ lui $at, %hi(D_800DC52C) # $at, 0x800e -/* 0F7BE0 8028E5D0 3C03800E */ lui $v1, %hi(D_800DC5EC) # $v1, 0x800e -/* 0F7BE4 8028E5D4 AC20C52C */ sw $zero, %lo(D_800DC52C)($at) -/* 0F7BE8 8028E5D8 2463C5EC */ addiu $v1, %lo(D_800DC5EC) # addiu $v1, $v1, -0x3a14 -/* 0F7BEC 8028E5DC 8C6A0000 */ lw $t2, ($v1) -/* 0F7BF0 8028E5E0 8449002C */ lh $t1, 0x2c($v0) -/* 0F7BF4 8028E5E4 3C04800E */ lui $a0, %hi(gModeSelection) # $a0, 0x800e -/* 0F7BF8 8028E5E8 24010003 */ li $at, 3 -/* 0F7BFC 8028E5EC A549002C */ sh $t1, 0x2c($t2) -/* 0F7C00 8028E5F0 8C6C0000 */ lw $t4, ($v1) -/* 0F7C04 8028E5F4 844B002E */ lh $t3, 0x2e($v0) -/* 0F7C08 8028E5F8 A58B002E */ sh $t3, 0x2e($t4) -/* 0F7C0C 8028E5FC 8C6E0000 */ lw $t6, ($v1) -/* 0F7C10 8028E600 844D0030 */ lh $t5, 0x30($v0) -/* 0F7C14 8028E604 A5CD0030 */ sh $t5, 0x30($t6) -/* 0F7C18 8028E608 8C780000 */ lw $t8, ($v1) -/* 0F7C1C 8028E60C 844F0032 */ lh $t7, 0x32($v0) -/* 0F7C20 8028E610 A70F0032 */ sh $t7, 0x32($t8) -/* 0F7C24 8028E614 8C84C53C */ lw $a0, %lo(gModeSelection)($a0) -/* 0F7C28 8028E618 54810006 */ bnel $a0, $at, .L8028E634 -/* 0F7C2C 8028E61C 24010002 */ li $at, 2 -/* 0F7C30 8028E620 0C024981 */ jal func_80092604 -/* 0F7C34 8028E624 00000000 */ nop -/* 0F7C38 8028E628 10000010 */ b .L8028E66C -/* 0F7C3C 8028E62C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F7C40 8028E630 24010002 */ li $at, 2 -.L8028E634: -/* 0F7C44 8028E634 14810007 */ bne $a0, $at, .L8028E654 -/* 0F7C48 8028E638 00000000 */ nop -/* 0F7C4C 8028E63C 0C024981 */ jal func_80092604 -/* 0F7C50 8028E640 00000000 */ nop -/* 0F7C54 8028E644 0C00677D */ jal func_80019DF4 -/* 0F7C58 8028E648 00000000 */ nop -/* 0F7C5C 8028E64C 10000007 */ b .L8028E66C -/* 0F7C60 8028E650 8FBF0014 */ lw $ra, 0x14($sp) -.L8028E654: -/* 0F7C64 8028E654 0C024959 */ jal func_80092564 -/* 0F7C68 8028E658 00000000 */ nop -/* 0F7C6C 8028E65C 24190007 */ li $t9, 7 -/* 0F7C70 8028E660 3C01800E */ lui $at, %hi(D_800DC510) # $at, 0x800e -/* 0F7C74 8028E664 AC39C510 */ sw $t9, %lo(D_800DC510)($at) -/* 0F7C78 8028E668 8FBF0014 */ lw $ra, 0x14($sp) -.L8028E66C: -/* 0F7C7C 8028E66C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F7C80 8028E670 03E00008 */ jr $ra -/* 0F7C84 8028E674 00000000 */ nop - -glabel func_8028E678 -/* 0F7C88 8028E678 24030001 */ li $v1, 1 -/* 0F7C8C 8028E67C 3C078016 */ lui $a3, %hi(D_8015F894) # $a3, 0x8016 -/* 0F7C90 8028E680 3C01800E */ lui $at, %hi(D_800DC5B0) # $at, 0x800e -/* 0F7C94 8028E684 24E7F894 */ addiu $a3, %lo(D_8015F894) # addiu $a3, $a3, -0x76c -/* 0F7C98 8028E688 A423C5B0 */ sh $v1, %lo(D_800DC5B0)($at) -/* 0F7C9C 8028E68C 94EE0000 */ lhu $t6, ($a3) -/* 0F7CA0 8028E690 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F7CA4 8028E694 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F7CA8 8028E698 2DC10008 */ sltiu $at, $t6, 8 -/* 0F7CAC 8028E69C 10200162 */ beqz $at, .L8028EC28 -/* 0F7CB0 8028E6A0 00002025 */ move $a0, $zero -/* 0F7CB4 8028E6A4 000E7080 */ sll $t6, $t6, 2 -/* 0F7CB8 8028E6A8 3C01802C */ lui $at, %hi(D_802B91E0) -/* 0F7CBC 8028E6AC 002E0821 */ addu $at, $at, $t6 -/* 0F7CC0 8028E6B0 8C2E91E0 */ lw $t6, %lo(D_802B91E0)($at) -/* 0F7CC4 8028E6B4 01C00008 */ jr $t6 -/* 0F7CC8 8028E6B8 00000000 */ nop -glabel L8028E6BC -/* 0F7CCC 8028E6BC 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e -/* 0F7CD0 8028E6C0 8C42C53C */ lw $v0, %lo(gModeSelection)($v0) -/* 0F7CD4 8028E6C4 10400000 */ beqz $v0, .L8028E6C8 -.L8028E6C8: -/* 0F7CD8 8028E6C8 3C02800E */ lui $v0, %hi(D_800DC530) # $v0, 0x800e -/* 0F7CDC 8028E6CC 8C42C530 */ lw $v0, %lo(D_800DC530)($v0) -/* 0F7CE0 8028E6D0 3C01800E */ lui $at, %hi(D_800DC5B8) # $at, 0x800e -/* 0F7CE4 8028E6D4 A420C5B8 */ sh $zero, %lo(D_800DC5B8)($at) -/* 0F7CE8 8028E6D8 10400008 */ beqz $v0, .L8028E6FC -/* 0F7CEC 8028E6DC 24010001 */ li $at, 1 -/* 0F7CF0 8028E6E0 10410008 */ beq $v0, $at, .L8028E704 -/* 0F7CF4 8028E6E4 240F0005 */ li $t7, 5 -/* 0F7CF8 8028E6E8 24010002 */ li $at, 2 -/* 0F7CFC 8028E6EC 10410007 */ beq $v0, $at, .L8028E70C -/* 0F7D00 8028E6F0 24180006 */ li $t8, 6 -/* 0F7D04 8028E6F4 1000014D */ b .L8028EC2C -/* 0F7D08 8028E6F8 8FBF0014 */ lw $ra, 0x14($sp) -.L8028E6FC: -/* 0F7D0C 8028E6FC 1000014A */ b .L8028EC28 -/* 0F7D10 8028E700 A4E30000 */ sh $v1, ($a3) -.L8028E704: -/* 0F7D14 8028E704 10000148 */ b .L8028EC28 -/* 0F7D18 8028E708 A4EF0000 */ sh $t7, ($a3) -.L8028E70C: -/* 0F7D1C 8028E70C 10000146 */ b .L8028EC28 -/* 0F7D20 8028E710 A4F80000 */ sh $t8, ($a3) -glabel L8028E714 -/* 0F7D24 8028E714 3C05800E */ lui $a1, %hi(D_800DC5EC) # $a1, 0x800e -/* 0F7D28 8028E718 24A5C5EC */ addiu $a1, %lo(D_800DC5EC) # addiu $a1, $a1, -0x3a14 -/* 0F7D2C 8028E71C 8CA20000 */ lw $v0, ($a1) -/* 0F7D30 8028E720 3C06800E */ lui $a2, %hi(D_800DC5F0) # $a2, 0x800e -/* 0F7D34 8028E724 24C6C5F0 */ addiu $a2, %lo(D_800DC5F0) # addiu $a2, $a2, -0x3a10 -/* 0F7D38 8028E728 8459002C */ lh $t9, 0x2c($v0) -/* 0F7D3C 8028E72C 240800F0 */ li $t0, 240 -/* 0F7D40 8028E730 2729FFFC */ addiu $t1, $t9, -4 -/* 0F7D44 8028E734 A449002C */ sh $t1, 0x2c($v0) -/* 0F7D48 8028E738 8CC30000 */ lw $v1, ($a2) -/* 0F7D4C 8028E73C 241900A0 */ li $t9, 160 -/* 0F7D50 8028E740 846A002C */ lh $t2, 0x2c($v1) -/* 0F7D54 8028E744 254BFFFC */ addiu $t3, $t2, -4 -/* 0F7D58 8028E748 A46B002C */ sh $t3, 0x2c($v1) -/* 0F7D5C 8028E74C 8CA20000 */ lw $v0, ($a1) -/* 0F7D60 8028E750 240A00A0 */ li $t2, 160 -/* 0F7D64 8028E754 844C0030 */ lh $t4, 0x30($v0) -/* 0F7D68 8028E758 258DFFFE */ addiu $t5, $t4, -2 -/* 0F7D6C 8028E75C A44D0030 */ sh $t5, 0x30($v0) -/* 0F7D70 8028E760 8CC30000 */ lw $v1, ($a2) -/* 0F7D74 8028E764 240C0050 */ li $t4, 80 -/* 0F7D78 8028E768 846E0030 */ lh $t6, 0x30($v1) -/* 0F7D7C 8028E76C 25CF0002 */ addiu $t7, $t6, 2 -/* 0F7D80 8028E770 A46F0030 */ sh $t7, 0x30($v1) -/* 0F7D84 8028E774 8CA20000 */ lw $v0, ($a1) -/* 0F7D88 8028E778 8458002C */ lh $t8, 0x2c($v0) -/* 0F7D8C 8028E77C 2B0100A0 */ slti $at, $t8, 0xa0 -/* 0F7D90 8028E780 10200003 */ beqz $at, .L8028E790 -/* 0F7D94 8028E784 24180003 */ li $t8, 3 -/* 0F7D98 8028E788 A459002C */ sh $t9, 0x2c($v0) -/* 0F7D9C 8028E78C 24040001 */ li $a0, 1 -.L8028E790: -/* 0F7DA0 8028E790 8CC30000 */ lw $v1, ($a2) -/* 0F7DA4 8028E794 8469002C */ lh $t1, 0x2c($v1) -/* 0F7DA8 8028E798 292100A0 */ slti $at, $t1, 0xa0 -/* 0F7DAC 8028E79C 50200004 */ beql $at, $zero, .L8028E7B0 -/* 0F7DB0 8028E7A0 8CA20000 */ lw $v0, ($a1) -/* 0F7DB4 8028E7A4 A46A002C */ sh $t2, 0x2c($v1) -/* 0F7DB8 8028E7A8 24840001 */ addiu $a0, $a0, 1 -/* 0F7DBC 8028E7AC 8CA20000 */ lw $v0, ($a1) -.L8028E7B0: -/* 0F7DC0 8028E7B0 844B0030 */ lh $t3, 0x30($v0) -/* 0F7DC4 8028E7B4 29610050 */ slti $at, $t3, 0x50 -/* 0F7DC8 8028E7B8 50200004 */ beql $at, $zero, .L8028E7CC -/* 0F7DCC 8028E7BC 8CC30000 */ lw $v1, ($a2) -/* 0F7DD0 8028E7C0 A44C0030 */ sh $t4, 0x30($v0) -/* 0F7DD4 8028E7C4 24840001 */ addiu $a0, $a0, 1 -/* 0F7DD8 8028E7C8 8CC30000 */ lw $v1, ($a2) -.L8028E7CC: -/* 0F7DDC 8028E7CC 846D0030 */ lh $t5, 0x30($v1) -/* 0F7DE0 8028E7D0 29A100F1 */ slti $at, $t5, 0xf1 -/* 0F7DE4 8028E7D4 54200004 */ bnel $at, $zero, .L8028E7E8 -/* 0F7DE8 8028E7D8 8CA20000 */ lw $v0, ($a1) -/* 0F7DEC 8028E7DC A4680030 */ sh $t0, 0x30($v1) -/* 0F7DF0 8028E7E0 24840001 */ addiu $a0, $a0, 1 -/* 0F7DF4 8028E7E4 8CA20000 */ lw $v0, ($a1) -.L8028E7E8: -/* 0F7DF8 8028E7E8 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015 -/* 0F7DFC 8028E7EC 844E002C */ lh $t6, 0x2c($v0) -/* 0F7E00 8028E7F0 844F002E */ lh $t7, 0x2e($v0) -/* 0F7E04 8028E7F4 448E2000 */ mtc1 $t6, $f4 -/* 0F7E08 8028E7F8 448F4000 */ mtc1 $t7, $f8 -/* 0F7E0C 8028E7FC 468021A0 */ cvt.s.w $f6, $f4 -/* 0F7E10 8028E800 468042A0 */ cvt.s.w $f10, $f8 -/* 0F7E14 8028E804 460A3403 */ div.s $f16, $f6, $f10 -/* 0F7E18 8028E808 E4300148 */ swc1 $f16, %lo(D_80150148)($at) -/* 0F7E1C 8028E80C 24010004 */ li $at, 4 -/* 0F7E20 8028E810 54810106 */ bnel $a0, $at, .L8028EC2C -/* 0F7E24 8028E814 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F7E28 8028E818 0C024940 */ jal func_80092500 -/* 0F7E2C 8028E81C A4F80000 */ sh $t8, ($a3) -/* 0F7E30 8028E820 0C006779 */ jal func_80019DE4 -/* 0F7E34 8028E824 00000000 */ nop -/* 0F7E38 8028E828 0C010749 */ jal func_80041D24 -/* 0F7E3C 8028E82C 00000000 */ nop -/* 0F7E40 8028E830 100000FE */ b .L8028EC2C -/* 0F7E44 8028E834 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028E838 -/* 0F7E48 8028E838 3C05800E */ lui $a1, %hi(D_800DC5EC) # $a1, 0x800e -/* 0F7E4C 8028E83C 24A5C5EC */ addiu $a1, %lo(D_800DC5EC) # addiu $a1, $a1, -0x3a14 -/* 0F7E50 8028E840 8CA20000 */ lw $v0, ($a1) -/* 0F7E54 8028E844 3C06800E */ lui $a2, %hi(D_800DC5F0) # $a2, 0x800e -/* 0F7E58 8028E848 24C6C5F0 */ addiu $a2, %lo(D_800DC5F0) # addiu $a2, $a2, -0x3a10 -/* 0F7E5C 8028E84C 8459002E */ lh $t9, 0x2e($v0) -/* 0F7E60 8028E850 2729FFFC */ addiu $t1, $t9, -4 -/* 0F7E64 8028E854 A449002E */ sh $t1, 0x2e($v0) -/* 0F7E68 8028E858 8CC30000 */ lw $v1, ($a2) -/* 0F7E6C 8028E85C 24190078 */ li $t9, 120 -/* 0F7E70 8028E860 846A002E */ lh $t2, 0x2e($v1) -/* 0F7E74 8028E864 254BFFFC */ addiu $t3, $t2, -4 -/* 0F7E78 8028E868 A46B002E */ sh $t3, 0x2e($v1) -/* 0F7E7C 8028E86C 8CA20000 */ lw $v0, ($a1) -/* 0F7E80 8028E870 240A0078 */ li $t2, 120 -/* 0F7E84 8028E874 844C0032 */ lh $t4, 0x32($v0) -/* 0F7E88 8028E878 258DFFFE */ addiu $t5, $t4, -2 -/* 0F7E8C 8028E87C A44D0032 */ sh $t5, 0x32($v0) -/* 0F7E90 8028E880 8CC30000 */ lw $v1, ($a2) -/* 0F7E94 8028E884 240C003C */ li $t4, 60 -/* 0F7E98 8028E888 846E0032 */ lh $t6, 0x32($v1) -/* 0F7E9C 8028E88C 25CF0002 */ addiu $t7, $t6, 2 -/* 0F7EA0 8028E890 A46F0032 */ sh $t7, 0x32($v1) -/* 0F7EA4 8028E894 8CA20000 */ lw $v0, ($a1) -/* 0F7EA8 8028E898 240E00B4 */ li $t6, 180 -/* 0F7EAC 8028E89C 8458002E */ lh $t8, 0x2e($v0) -/* 0F7EB0 8028E8A0 2B010078 */ slti $at, $t8, 0x78 -/* 0F7EB4 8028E8A4 50200004 */ beql $at, $zero, .L8028E8B8 -/* 0F7EB8 8028E8A8 8CC30000 */ lw $v1, ($a2) -/* 0F7EBC 8028E8AC A459002E */ sh $t9, 0x2e($v0) -/* 0F7EC0 8028E8B0 24040001 */ li $a0, 1 -/* 0F7EC4 8028E8B4 8CC30000 */ lw $v1, ($a2) -.L8028E8B8: -/* 0F7EC8 8028E8B8 24190003 */ li $t9, 3 -/* 0F7ECC 8028E8BC 8469002E */ lh $t1, 0x2e($v1) -/* 0F7ED0 8028E8C0 29210078 */ slti $at, $t1, 0x78 -/* 0F7ED4 8028E8C4 50200004 */ beql $at, $zero, .L8028E8D8 -/* 0F7ED8 8028E8C8 8CA20000 */ lw $v0, ($a1) -/* 0F7EDC 8028E8CC A46A002E */ sh $t2, 0x2e($v1) -/* 0F7EE0 8028E8D0 24840001 */ addiu $a0, $a0, 1 -/* 0F7EE4 8028E8D4 8CA20000 */ lw $v0, ($a1) -.L8028E8D8: -/* 0F7EE8 8028E8D8 844B0032 */ lh $t3, 0x32($v0) -/* 0F7EEC 8028E8DC 2961003C */ slti $at, $t3, 0x3c -/* 0F7EF0 8028E8E0 50200004 */ beql $at, $zero, .L8028E8F4 -/* 0F7EF4 8028E8E4 8CC30000 */ lw $v1, ($a2) -/* 0F7EF8 8028E8E8 A44C0032 */ sh $t4, 0x32($v0) -/* 0F7EFC 8028E8EC 24840001 */ addiu $a0, $a0, 1 -/* 0F7F00 8028E8F0 8CC30000 */ lw $v1, ($a2) -.L8028E8F4: -/* 0F7F04 8028E8F4 846D0032 */ lh $t5, 0x32($v1) -/* 0F7F08 8028E8F8 29A100B5 */ slti $at, $t5, 0xb5 -/* 0F7F0C 8028E8FC 54200004 */ bnel $at, $zero, .L8028E910 -/* 0F7F10 8028E900 8CA20000 */ lw $v0, ($a1) -/* 0F7F14 8028E904 A46E0032 */ sh $t6, 0x32($v1) -/* 0F7F18 8028E908 24840001 */ addiu $a0, $a0, 1 -/* 0F7F1C 8028E90C 8CA20000 */ lw $v0, ($a1) -.L8028E910: -/* 0F7F20 8028E910 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015 -/* 0F7F24 8028E914 844F002C */ lh $t7, 0x2c($v0) -/* 0F7F28 8028E918 8458002E */ lh $t8, 0x2e($v0) -/* 0F7F2C 8028E91C 448F9000 */ mtc1 $t7, $f18 -/* 0F7F30 8028E920 44984000 */ mtc1 $t8, $f8 -/* 0F7F34 8028E924 46809120 */ cvt.s.w $f4, $f18 -/* 0F7F38 8028E928 468041A0 */ cvt.s.w $f6, $f8 -/* 0F7F3C 8028E92C 46062283 */ div.s $f10, $f4, $f6 -/* 0F7F40 8028E930 E42A0148 */ swc1 $f10, %lo(D_80150148)($at) -/* 0F7F44 8028E934 24010004 */ li $at, 4 -/* 0F7F48 8028E938 548100BC */ bnel $a0, $at, .L8028EC2C -/* 0F7F4C 8028E93C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F7F50 8028E940 0C024940 */ jal func_80092500 -/* 0F7F54 8028E944 A4F90000 */ sh $t9, ($a3) -/* 0F7F58 8028E948 0C006779 */ jal func_80019DE4 -/* 0F7F5C 8028E94C 00000000 */ nop -/* 0F7F60 8028E950 100000B6 */ b .L8028EC2C -/* 0F7F64 8028E954 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028E958 -/* 0F7F68 8028E958 3C05800E */ lui $a1, %hi(D_800DC5EC) # $a1, 0x800e -/* 0F7F6C 8028E95C 24A5C5EC */ addiu $a1, %lo(D_800DC5EC) # addiu $a1, $a1, -0x3a14 -/* 0F7F70 8028E960 8CA20000 */ lw $v0, ($a1) -/* 0F7F74 8028E964 24030140 */ li $v1, 320 -/* 0F7F78 8028E968 240800F0 */ li $t0, 240 -/* 0F7F7C 8028E96C 8449002E */ lh $t1, 0x2e($v0) -/* 0F7F80 8028E970 240F0078 */ li $t7, 120 -/* 0F7F84 8028E974 252AFFFE */ addiu $t2, $t1, -2 -/* 0F7F88 8028E978 A44A002E */ sh $t2, 0x2e($v0) -/* 0F7F8C 8028E97C 8CA20000 */ lw $v0, ($a1) -/* 0F7F90 8028E980 844B002E */ lh $t3, 0x2e($v0) -/* 0F7F94 8028E984 01630019 */ multu $t3, $v1 -/* 0F7F98 8028E988 00006012 */ mflo $t4 -/* 0F7F9C 8028E98C 00000000 */ nop -/* 0F7FA0 8028E990 00000000 */ nop -/* 0F7FA4 8028E994 0188001A */ div $zero, $t4, $t0 -/* 0F7FA8 8028E998 00006812 */ mflo $t5 -/* 0F7FAC 8028E99C A44D002C */ sh $t5, 0x2c($v0) -/* 0F7FB0 8028E9A0 8CA20000 */ lw $v0, ($a1) -/* 0F7FB4 8028E9A4 15000002 */ bnez $t0, .L8028E9B0 -/* 0F7FB8 8028E9A8 00000000 */ nop -/* 0F7FBC 8028E9AC 0007000D */ break 7 -.L8028E9B0: -/* 0F7FC0 8028E9B0 2401FFFF */ li $at, -1 -/* 0F7FC4 8028E9B4 15010004 */ bne $t0, $at, .L8028E9C8 -/* 0F7FC8 8028E9B8 3C018000 */ lui $at, 0x8000 -/* 0F7FCC 8028E9BC 15810002 */ bne $t4, $at, .L8028E9C8 -/* 0F7FD0 8028E9C0 00000000 */ nop -/* 0F7FD4 8028E9C4 0006000D */ break 6 -.L8028E9C8: -/* 0F7FD8 8028E9C8 844E002E */ lh $t6, 0x2e($v0) -/* 0F7FDC 8028E9CC 29C10078 */ slti $at, $t6, 0x78 -/* 0F7FE0 8028E9D0 50200096 */ beql $at, $zero, .L8028EC2C -/* 0F7FE4 8028E9D4 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F7FE8 8028E9D8 A44F002E */ sh $t7, 0x2e($v0) -/* 0F7FEC 8028E9DC 8CA20000 */ lw $v0, ($a1) -/* 0F7FF0 8028E9E0 3C06800E */ lui $a2, %hi(D_800DC5F0) # $a2, 0x800e -/* 0F7FF4 8028E9E4 240A0002 */ li $t2, 2 -/* 0F7FF8 8028E9E8 8458002E */ lh $t8, 0x2e($v0) -/* 0F7FFC 8028E9EC 24C6C5F0 */ addiu $a2, %lo(D_800DC5F0) # addiu $a2, $a2, -0x3a10 -/* 0F8000 8028E9F0 03030019 */ multu $t8, $v1 -/* 0F8004 8028E9F4 0000C812 */ mflo $t9 -/* 0F8008 8028E9F8 00000000 */ nop -/* 0F800C 8028E9FC 00000000 */ nop -/* 0F8010 8028EA00 0328001A */ div $zero, $t9, $t0 -/* 0F8014 8028EA04 00004812 */ mflo $t1 -/* 0F8018 8028EA08 A449002C */ sh $t1, 0x2c($v0) -/* 0F801C 8028EA0C 8CAB0000 */ lw $t3, ($a1) -/* 0F8020 8028EA10 A4EA0000 */ sh $t2, ($a3) -/* 0F8024 8028EA14 8CCD0000 */ lw $t5, ($a2) -/* 0F8028 8028EA18 856C002C */ lh $t4, 0x2c($t3) -/* 0F802C 8028EA1C 15000002 */ bnez $t0, .L8028EA28 -/* 0F8030 8028EA20 00000000 */ nop -/* 0F8034 8028EA24 0007000D */ break 7 -.L8028EA28: -/* 0F8038 8028EA28 2401FFFF */ li $at, -1 -/* 0F803C 8028EA2C 15010004 */ bne $t0, $at, .L8028EA40 -/* 0F8040 8028EA30 3C018000 */ lui $at, 0x8000 -/* 0F8044 8028EA34 17210002 */ bne $t9, $at, .L8028EA40 -/* 0F8048 8028EA38 00000000 */ nop -/* 0F804C 8028EA3C 0006000D */ break 6 -.L8028EA40: -/* 0F8050 8028EA40 A5AC002C */ sh $t4, 0x2c($t5) -/* 0F8054 8028EA44 8CAE0000 */ lw $t6, ($a1) -/* 0F8058 8028EA48 8CD80000 */ lw $t8, ($a2) -/* 0F805C 8028EA4C 3C01800E */ lui $at, %hi(D_800DC52C) # $at, 0x800e -/* 0F8060 8028EA50 85CF002E */ lh $t7, 0x2e($t6) -/* 0F8064 8028EA54 240E0002 */ li $t6, 2 -/* 0F8068 8028EA58 A70F002E */ sh $t7, 0x2e($t8) -/* 0F806C 8028EA5C 8CB90000 */ lw $t9, ($a1) -/* 0F8070 8028EA60 8CCA0000 */ lw $t2, ($a2) -/* 0F8074 8028EA64 240F0002 */ li $t7, 2 -/* 0F8078 8028EA68 87290030 */ lh $t1, 0x30($t9) -/* 0F807C 8028EA6C A5490030 */ sh $t1, 0x30($t2) -/* 0F8080 8028EA70 8CAB0000 */ lw $t3, ($a1) -/* 0F8084 8028EA74 8CCD0000 */ lw $t5, ($a2) -/* 0F8088 8028EA78 856C0032 */ lh $t4, 0x32($t3) -/* 0F808C 8028EA7C A5AC0032 */ sh $t4, 0x32($t5) -/* 0F8090 8028EA80 AC2EC52C */ sw $t6, %lo(D_800DC52C)($at) -/* 0F8094 8028EA84 3C01802C */ lui $at, %hi(D_802B9200) # $at, 0x802c -/* 0F8098 8028EA88 C4309200 */ lwc1 $f16, %lo(D_802B9200)($at) -/* 0F809C 8028EA8C 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015 -/* 0F80A0 8028EA90 E4300148 */ swc1 $f16, %lo(D_80150148)($at) -/* 0F80A4 8028EA94 3C01800E */ lui $at, %hi(gPlayerCountSelection1) # $at, 0x800e -/* 0F80A8 8028EA98 0C00F6D7 */ jal func_8003DB5C -/* 0F80AC 8028EA9C AC2FC538 */ sw $t7, %lo(gPlayerCountSelection1)($at) -/* 0F80B0 8028EAA0 0C016653 */ jal func_8005994C -/* 0F80B4 8028EAA4 00000000 */ nop -/* 0F80B8 8028EAA8 10000060 */ b .L8028EC2C -/* 0F80BC 8028EAAC 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028EAB0 -/* 0F80C0 8028EAB0 3C05800E */ lui $a1, %hi(D_800DC5EC) # $a1, 0x800e -/* 0F80C4 8028EAB4 24A5C5EC */ addiu $a1, %lo(D_800DC5EC) # addiu $a1, $a1, -0x3a14 -/* 0F80C8 8028EAB8 8CA20000 */ lw $v0, ($a1) -/* 0F80CC 8028EABC 3C06800E */ lui $a2, %hi(D_800DC5F0) # $a2, 0x800e -/* 0F80D0 8028EAC0 240C0050 */ li $t4, 80 -/* 0F80D4 8028EAC4 84580030 */ lh $t8, 0x30($v0) -/* 0F80D8 8028EAC8 240E003C */ li $t6, 60 -/* 0F80DC 8028EACC 24C6C5F0 */ addiu $a2, %lo(D_800DC5F0) # addiu $a2, $a2, -0x3a10 -/* 0F80E0 8028EAD0 2719FFFC */ addiu $t9, $t8, -4 -/* 0F80E4 8028EAD4 A4590030 */ sh $t9, 0x30($v0) -/* 0F80E8 8028EAD8 8CA20000 */ lw $v0, ($a1) -/* 0F80EC 8028EADC 240800F0 */ li $t0, 240 -/* 0F80F0 8028EAE0 84490032 */ lh $t1, 0x32($v0) -/* 0F80F4 8028EAE4 252AFFFE */ addiu $t2, $t1, -2 -/* 0F80F8 8028EAE8 A44A0032 */ sh $t2, 0x32($v0) -/* 0F80FC 8028EAEC 8CA20000 */ lw $v0, ($a1) -/* 0F8100 8028EAF0 844B0030 */ lh $t3, 0x30($v0) -/* 0F8104 8028EAF4 29610050 */ slti $at, $t3, 0x50 -/* 0F8108 8028EAF8 50200006 */ beql $at, $zero, .L8028EB14 -/* 0F810C 8028EAFC 844D0032 */ lh $t5, 0x32($v0) -/* 0F8110 8028EB00 A44C0030 */ sh $t4, 0x30($v0) -/* 0F8114 8028EB04 3C02800E */ lui $v0, %hi(D_800DC5EC) # $v0, 0x800e -/* 0F8118 8028EB08 8C42C5EC */ lw $v0, %lo(D_800DC5EC)($v0) -/* 0F811C 8028EB0C 24040001 */ li $a0, 1 -/* 0F8120 8028EB10 844D0032 */ lh $t5, 0x32($v0) -.L8028EB14: -/* 0F8124 8028EB14 240C00B4 */ li $t4, 180 -/* 0F8128 8028EB18 29A1003C */ slti $at, $t5, 0x3c -/* 0F812C 8028EB1C 10200003 */ beqz $at, .L8028EB2C -/* 0F8130 8028EB20 240D0007 */ li $t5, 7 -/* 0F8134 8028EB24 A44E0032 */ sh $t6, 0x32($v0) -/* 0F8138 8028EB28 24840001 */ addiu $a0, $a0, 1 -.L8028EB2C: -/* 0F813C 8028EB2C 8CC30000 */ lw $v1, ($a2) -/* 0F8140 8028EB30 3C02802C */ lui $v0, %hi(D_802BA030) # $v0, 0x802c -/* 0F8144 8028EB34 2442A030 */ addiu $v0, %lo(D_802BA030) # addiu $v0, $v0, -0x5fd0 -/* 0F8148 8028EB38 846F0030 */ lh $t7, 0x30($v1) -/* 0F814C 8028EB3C 240E0003 */ li $t6, 3 -/* 0F8150 8028EB40 25F80004 */ addiu $t8, $t7, 4 -/* 0F8154 8028EB44 A4780030 */ sh $t8, 0x30($v1) -/* 0F8158 8028EB48 8CC30000 */ lw $v1, ($a2) -/* 0F815C 8028EB4C 84790032 */ lh $t9, 0x32($v1) -/* 0F8160 8028EB50 27290002 */ addiu $t1, $t9, 2 -/* 0F8164 8028EB54 A4690032 */ sh $t1, 0x32($v1) -/* 0F8168 8028EB58 8CC30000 */ lw $v1, ($a2) -/* 0F816C 8028EB5C 846A0030 */ lh $t2, 0x30($v1) -/* 0F8170 8028EB60 294100F1 */ slti $at, $t2, 0xf1 -/* 0F8174 8028EB64 54200006 */ bnel $at, $zero, .L8028EB80 -/* 0F8178 8028EB68 846B0032 */ lh $t3, 0x32($v1) -/* 0F817C 8028EB6C A4680030 */ sh $t0, 0x30($v1) -/* 0F8180 8028EB70 3C03800E */ lui $v1, %hi(D_800DC5F0) # $v1, 0x800e -/* 0F8184 8028EB74 8C63C5F0 */ lw $v1, %lo(D_800DC5F0)($v1) -/* 0F8188 8028EB78 24840001 */ addiu $a0, $a0, 1 -/* 0F818C 8028EB7C 846B0032 */ lh $t3, 0x32($v1) -.L8028EB80: -/* 0F8190 8028EB80 296100B5 */ slti $at, $t3, 0xb5 -/* 0F8194 8028EB84 54200004 */ bnel $at, $zero, .L8028EB98 -/* 0F8198 8028EB88 24010004 */ li $at, 4 -/* 0F819C 8028EB8C A46C0032 */ sh $t4, 0x32($v1) -/* 0F81A0 8028EB90 24840001 */ addiu $a0, $a0, 1 -/* 0F81A4 8028EB94 24010004 */ li $at, 4 -.L8028EB98: -/* 0F81A8 8028EB98 54810024 */ bnel $a0, $at, .L8028EC2C -/* 0F81AC 8028EB9C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F81B0 8028EBA0 A4ED0000 */ sh $t5, ($a3) -/* 0F81B4 8028EBA4 10000020 */ b .L8028EC28 -/* 0F81B8 8028EBA8 A44E0000 */ sh $t6, ($v0) -glabel L8028EBAC -/* 0F81BC 8028EBAC 3C02802C */ lui $v0, %hi(D_802BA030) # $v0, 0x802c -/* 0F81C0 8028EBB0 2442A030 */ addiu $v0, %lo(D_802BA030) # addiu $v0, $v0, -0x5fd0 -/* 0F81C4 8028EBB4 944F0000 */ lhu $t7, ($v0) -/* 0F81C8 8028EBB8 24090003 */ li $t1, 3 -/* 0F81CC 8028EBBC 25F8FFFF */ addiu $t8, $t7, -1 -/* 0F81D0 8028EBC0 3319FFFF */ andi $t9, $t8, 0xffff -/* 0F81D4 8028EBC4 17200018 */ bnez $t9, .L8028EC28 -/* 0F81D8 8028EBC8 A4580000 */ sh $t8, ($v0) -/* 0F81DC 8028EBCC 0C024940 */ jal func_80092500 -/* 0F81E0 8028EBD0 A4E90000 */ sh $t1, ($a3) -/* 0F81E4 8028EBD4 3C0A800E */ lui $t2, %hi(gModeSelection) # $t2, 0x800e -/* 0F81E8 8028EBD8 8D4AC53C */ lw $t2, %lo(gModeSelection)($t2) -/* 0F81EC 8028EBDC 15400005 */ bnez $t2, .L8028EBF4 -/* 0F81F0 8028EBE0 00000000 */ nop -/* 0F81F4 8028EBE4 0C006779 */ jal func_80019DE4 -/* 0F81F8 8028EBE8 00000000 */ nop -/* 0F81FC 8028EBEC 1000000F */ b .L8028EC2C -/* 0F8200 8028EBF0 8FBF0014 */ lw $ra, 0x14($sp) -.L8028EBF4: -/* 0F8204 8028EBF4 0C006796 */ jal func_80019E58 -/* 0F8208 8028EBF8 00000000 */ nop -/* 0F820C 8028EBFC 1000000B */ b .L8028EC2C -/* 0F8210 8028EC00 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028EC04 -/* 0F8214 8028EC04 3C01800E */ lui $at, %hi(D_800DC5C0) # $at, 0x800e -/* 0F8218 8028EC08 A423C5C0 */ sh $v1, %lo(D_800DC5C0)($at) -/* 0F821C 8028EC0C 3C01800E */ lui $at, %hi(D_800DC5C4) # $at, 0x800e -/* 0F8220 8028EC10 240B0005 */ li $t3, 5 -/* 0F8224 8028EC14 A42BC5C4 */ sh $t3, %lo(D_800DC5C4)($at) -/* 0F8228 8028EC18 3C01800E */ lui $at, %hi(D_800DC510) # $at, 0x800e -/* 0F822C 8028EC1C 240C0007 */ li $t4, 7 -/* 0F8230 8028EC20 0C0A38E8 */ jal func_8028E3A0 -/* 0F8234 8028EC24 AC2CC510 */ sw $t4, %lo(D_800DC510)($at) -.L8028EC28: -glabel L8028EC28 -/* 0F8238 8028EC28 8FBF0014 */ lw $ra, 0x14($sp) -.L8028EC2C: -/* 0F823C 8028EC2C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F8240 8028EC30 03E00008 */ jr $ra -/* 0F8244 8028EC34 00000000 */ nop - -/* 0F8248 8028EC38 3C018015 */ lui $at, %hi(D_80150124) # $at, 0x8015 -/* 0F824C 8028EC3C 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F8250 8028EC40 AC240124 */ sw $a0, %lo(D_80150124)($at) -/* 0F8254 8028EC44 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F8258 8028EC48 3C01800E */ lui $at, %hi(D_800DC510) # $at, 0x800e -/* 0F825C 8028EC4C 240E0006 */ li $t6, 6 -/* 0F8260 8028EC50 AC2EC510 */ sw $t6, %lo(D_800DC510)($at) -/* 0F8264 8028EC54 0C0328CC */ jal func_800CA330 -/* 0F8268 8028EC58 24040019 */ li $a0, 25 -/* 0F826C 8028EC5C 0C0328E2 */ jal func_800CA388 -/* 0F8270 8028EC60 24040019 */ li $a0, 25 -/* 0F8274 8028EC64 24020001 */ li $v0, 1 -/* 0F8278 8028EC68 3C01800E */ lui $at, %hi(D_800DC5B4) # $at, 0x800e -/* 0F827C 8028EC6C A422C5B4 */ sh $v0, %lo(D_800DC5B4)($at) -/* 0F8280 8028EC70 3C01800E */ lui $at, %hi(D_800DC5B0) # $at, 0x800e -/* 0F8284 8028EC74 A422C5B0 */ sh $v0, %lo(D_800DC5B0)($at) -/* 0F8288 8028EC78 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F828C 8028EC7C 3C01800E */ lui $at, %hi(D_800DC5B8) # $at, 0x800e -/* 0F8290 8028EC80 A420C5B8 */ sh $zero, %lo(D_800DC5B8)($at) -/* 0F8294 8028EC84 3C01802C */ lui $at, %hi(D_802BA038) # $at, 0x802c -/* 0F8298 8028EC88 240F0005 */ li $t7, 5 -/* 0F829C 8028EC8C AC2FA038 */ sw $t7, %lo(D_802BA038)($at) -/* 0F82A0 8028EC90 03E00008 */ jr $ra -/* 0F82A4 8028EC94 27BD0018 */ addiu $sp, $sp, 0x18 - -glabel func_8028EC98 -/* 0F82A8 8028EC98 3C0E800E */ lui $t6, %hi(D_800DC530) # $t6, 0x800e -/* 0F82AC 8028EC9C 8DCEC530 */ lw $t6, %lo(D_800DC530)($t6) -/* 0F82B0 8028ECA0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F82B4 8028ECA4 24010003 */ li $at, 3 -/* 0F82B8 8028ECA8 AFBF0014 */ sw $ra, 0x14($sp) -/* 0F82BC 8028ECAC 11C1003A */ beq $t6, $at, .L8028ED98 -/* 0F82C0 8028ECB0 AFA40018 */ sw $a0, 0x18($sp) -/* 0F82C4 8028ECB4 0C000A6C */ jal func_800029B0 -/* 0F82C8 8028ECB8 00000000 */ nop -/* 0F82CC 8028ECBC 8FAF0018 */ lw $t7, 0x18($sp) -/* 0F82D0 8028ECC0 2DE10014 */ sltiu $at, $t7, 0x14 -/* 0F82D4 8028ECC4 10200034 */ beqz $at, .L8028ED98 -/* 0F82D8 8028ECC8 000F7880 */ sll $t7, $t7, 2 -/* 0F82DC 8028ECCC 3C01802C */ lui $at, %hi(D_802B9204) -/* 0F82E0 8028ECD0 002F0821 */ addu $at, $at, $t7 -/* 0F82E4 8028ECD4 8C2F9204 */ lw $t7, %lo(D_802B9204)($at) -/* 0F82E8 8028ECD8 01E00008 */ jr $t7 -/* 0F82EC 8028ECDC 00000000 */ nop -glabel L8028ECE0 -/* 0F82F0 8028ECE0 0C0323AB */ jal func_800C8EAC -/* 0F82F4 8028ECE4 24040003 */ li $a0, 3 -/* 0F82F8 8028ECE8 1000002C */ b .L8028ED9C -/* 0F82FC 8028ECEC 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ECF0 -/* 0F8300 8028ECF0 0C0323AB */ jal func_800C8EAC -/* 0F8304 8028ECF4 24040015 */ li $a0, 21 -/* 0F8308 8028ECF8 10000028 */ b .L8028ED9C -/* 0F830C 8028ECFC 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED00 -/* 0F8310 8028ED00 0C0323AB */ jal func_800C8EAC -/* 0F8314 8028ED04 24040004 */ li $a0, 4 -/* 0F8318 8028ED08 10000024 */ b .L8028ED9C -/* 0F831C 8028ED0C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED10 -/* 0F8320 8028ED10 0C0323AB */ jal func_800C8EAC -/* 0F8324 8028ED14 24040005 */ li $a0, 5 -/* 0F8328 8028ED18 10000020 */ b .L8028ED9C -/* 0F832C 8028ED1C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED20 -/* 0F8330 8028ED20 0C0323AB */ jal func_800C8EAC -/* 0F8334 8028ED24 2404000A */ li $a0, 10 -/* 0F8338 8028ED28 1000001C */ b .L8028ED9C -/* 0F833C 8028ED2C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED30 -/* 0F8340 8028ED30 0C0323AB */ jal func_800C8EAC -/* 0F8344 8028ED34 24040006 */ li $a0, 6 -/* 0F8348 8028ED38 10000018 */ b .L8028ED9C -/* 0F834C 8028ED3C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED40 -/* 0F8350 8028ED40 0C0323AB */ jal func_800C8EAC -/* 0F8354 8028ED44 24040009 */ li $a0, 9 -/* 0F8358 8028ED48 10000014 */ b .L8028ED9C -/* 0F835C 8028ED4C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED50 -/* 0F8360 8028ED50 0C0323AB */ jal func_800C8EAC -/* 0F8364 8028ED54 24040007 */ li $a0, 7 -/* 0F8368 8028ED58 10000010 */ b .L8028ED9C -/* 0F836C 8028ED5C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED60 -/* 0F8370 8028ED60 0C0323AB */ jal func_800C8EAC -/* 0F8374 8028ED64 24040008 */ li $a0, 8 -/* 0F8378 8028ED68 1000000C */ b .L8028ED9C -/* 0F837C 8028ED6C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED70 -/* 0F8380 8028ED70 0C0323AB */ jal func_800C8EAC -/* 0F8384 8028ED74 24040012 */ li $a0, 18 -/* 0F8388 8028ED78 10000008 */ b .L8028ED9C -/* 0F838C 8028ED7C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED80 -/* 0F8390 8028ED80 0C0323AB */ jal func_800C8EAC -/* 0F8394 8028ED84 24040013 */ li $a0, 19 -/* 0F8398 8028ED88 10000004 */ b .L8028ED9C -/* 0F839C 8028ED8C 8FBF0014 */ lw $ra, 0x14($sp) -glabel L8028ED90 -/* 0F83A0 8028ED90 0C0323AB */ jal func_800C8EAC -/* 0F83A4 8028ED94 24040019 */ li $a0, 25 -.L8028ED98: -/* 0F83A8 8028ED98 8FBF0014 */ lw $ra, 0x14($sp) -.L8028ED9C: -/* 0F83AC 8028ED9C 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F83B0 8028EDA0 03E00008 */ jr $ra -/* 0F83B4 8028EDA4 00000000 */ nop - -glabel func_8028EDA8 -/* 0F83B8 8028EDA8 3C0F800E */ lui $t7, %hi(D_800DC51C) # $t7, 0x800e -/* 0F83BC 8028EDAC 95EFC51C */ lhu $t7, %lo(D_800DC51C)($t7) -/* 0F83C0 8028EDB0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* 0F83C4 8028EDB4 340EFFFF */ li $t6, 65535 -/* 0F83C8 8028EDB8 3C018015 */ lui $at, %hi(D_8015011E) # $at, 0x8015 -/* 0F83CC 8028EDBC AFBF0014 */ sw $ra, 0x14($sp) -/* 0F83D0 8028EDC0 15E00004 */ bnez $t7, .L8028EDD4 -/* 0F83D4 8028EDC4 A42E011E */ sh $t6, %lo(D_8015011E)($at) -/* 0F83D8 8028EDC8 3C04800E */ lui $a0, %hi(gCurrentCourseId) # $a0, 0x800e -/* 0F83DC 8028EDCC 0C0A3B26 */ jal func_8028EC98 -/* 0F83E0 8028EDD0 8484C5A0 */ lh $a0, %lo(gCurrentCourseId)($a0) -.L8028EDD4: -/* 0F83E4 8028EDD4 3C02800E */ lui $v0, %hi(D_800DC510) # $v0, 0x800e -/* 0F83E8 8028EDD8 2442C510 */ addiu $v0, %lo(D_800DC510) # addiu $v0, $v0, -0x3af0 -/* 0F83EC 8028EDDC 8C580000 */ lw $t8, ($v0) -/* 0F83F0 8028EDE0 24010002 */ li $at, 2 -/* 0F83F4 8028EDE4 3C03800F */ lui $v1, %hi(D_800F6990) # $v1, 0x800f -/* 0F83F8 8028EDE8 17010003 */ bne $t8, $at, .L8028EDF8 -/* 0F83FC 8028EDEC 24636990 */ addiu $v1, %lo(D_800F6990) # addiu $v1, $v1, 0x6990 -/* 0F8400 8028EDF0 24190003 */ li $t9, 3 -/* 0F8404 8028EDF4 AC590000 */ sw $t9, ($v0) -.L8028EDF8: -/* 0F8408 8028EDF8 3C048010 */ lui $a0, %hi(D_800FD850) # $a0, 0x8010 -/* 0F840C 8028EDFC 2484D850 */ addiu $a0, %lo(D_800FD850) # addiu $a0, $a0, -0x27b0 -/* 0F8410 8028EE00 94620000 */ lhu $v0, ($v1) -.L8028EE04: -/* 0F8414 8028EE04 30488000 */ andi $t0, $v0, 0x8000 -/* 0F8418 8028EE08 11000004 */ beqz $t0, .L8028EE1C -/* 0F841C 8028EE0C 30492000 */ andi $t1, $v0, 0x2000 -/* 0F8420 8028EE10 11200002 */ beqz $t1, .L8028EE1C -/* 0F8424 8028EE14 384A2000 */ xori $t2, $v0, 0x2000 -/* 0F8428 8028EE18 A46A0000 */ sh $t2, ($v1) -.L8028EE1C: -/* 0F842C 8028EE1C 94620DD8 */ lhu $v0, 0xdd8($v1) -/* 0F8430 8028EE20 304B8000 */ andi $t3, $v0, 0x8000 -/* 0F8434 8028EE24 11600004 */ beqz $t3, .L8028EE38 -/* 0F8438 8028EE28 304C2000 */ andi $t4, $v0, 0x2000 -/* 0F843C 8028EE2C 11800002 */ beqz $t4, .L8028EE38 -/* 0F8440 8028EE30 384D2000 */ xori $t5, $v0, 0x2000 -/* 0F8444 8028EE34 A46D0DD8 */ sh $t5, 0xdd8($v1) -.L8028EE38: -/* 0F8448 8028EE38 94621BB0 */ lhu $v0, 0x1bb0($v1) -/* 0F844C 8028EE3C 304E8000 */ andi $t6, $v0, 0x8000 -/* 0F8450 8028EE40 11C00004 */ beqz $t6, .L8028EE54 -/* 0F8454 8028EE44 304F2000 */ andi $t7, $v0, 0x2000 -/* 0F8458 8028EE48 11E00002 */ beqz $t7, .L8028EE54 -/* 0F845C 8028EE4C 38582000 */ xori $t8, $v0, 0x2000 -/* 0F8460 8028EE50 A4781BB0 */ sh $t8, 0x1bb0($v1) -.L8028EE54: -/* 0F8464 8028EE54 94622988 */ lhu $v0, 0x2988($v1) -/* 0F8468 8028EE58 30598000 */ andi $t9, $v0, 0x8000 -/* 0F846C 8028EE5C 13200004 */ beqz $t9, .L8028EE70 -/* 0F8470 8028EE60 30482000 */ andi $t0, $v0, 0x2000 -/* 0F8474 8028EE64 11000002 */ beqz $t0, .L8028EE70 -/* 0F8478 8028EE68 38492000 */ xori $t1, $v0, 0x2000 -/* 0F847C 8028EE6C A4692988 */ sh $t1, 0x2988($v1) -.L8028EE70: -/* 0F8480 8028EE70 24633760 */ addiu $v1, $v1, 0x3760 -/* 0F8484 8028EE74 5464FFE3 */ bnel $v1, $a0, .L8028EE04 -/* 0F8488 8028EE78 94620000 */ lhu $v0, ($v1) -/* 0F848C 8028EE7C 8FBF0014 */ lw $ra, 0x14($sp) -/* 0F8490 8028EE80 27BD0018 */ addiu $sp, $sp, 0x18 -/* 0F8494 8028EE84 03E00008 */ jr $ra -/* 0F8498 8028EE88 00000000 */ nop - -/* 0F849C 8028EE8C 000470C0 */ sll $t6, $a0, 3 -/* 0F84A0 8028EE90 01C47023 */ subu $t6, $t6, $a0 -/* 0F84A4 8028EE94 000E7100 */ sll $t6, $t6, 4 -/* 0F84A8 8028EE98 01C47023 */ subu $t6, $t6, $a0 -/* 0F84AC 8028EE9C 000E7080 */ sll $t6, $t6, 2 -/* 0F84B0 8028EEA0 01C47023 */ subu $t6, $t6, $a0 -/* 0F84B4 8028EEA4 3C0F800F */ lui $t7, %hi(D_800F6990) # $t7, 0x800f -/* 0F84B8 8028EEA8 25EF6990 */ addiu $t7, %lo(D_800F6990) # addiu $t7, $t7, 0x6990 -/* 0F84BC 8028EEAC 000E70C0 */ sll $t6, $t6, 3 -/* 0F84C0 8028EEB0 01CF1021 */ addu $v0, $t6, $t7 -/* 0F84C4 8028EEB4 3C018016 */ lui $at, %hi(D_8015F8D8) # $at, 0x8016 -/* 0F84C8 8028EEB8 C442001C */ lwc1 $f2, 0x1c($v0) -/* 0F84CC 8028EEBC C430F8D8 */ lwc1 $f16, %lo(D_8015F8D8)($at) -/* 0F84D0 8028EEC0 C44C0028 */ lwc1 $f12, 0x28($v0) -/* 0F84D4 8028EEC4 3C01802C */ lui $at, %hi(D_802B9254) # $at, 0x802c -/* 0F84D8 8028EEC8 46028381 */ sub.s $f14, $f16, $f2 -/* 0F84DC 8028EECC C4249254 */ lwc1 $f4, %lo(D_802B9254)($at) -/* 0F84E0 8028EED0 3C01800E */ lui $at, %hi(gCourseTimer) # $at, 0x800e -/* 0F84E4 8028EED4 46106481 */ sub.s $f18, $f12, $f16 -/* 0F84E8 8028EED8 460E2182 */ mul.s $f6, $f4, $f14 -/* 0F84EC 8028EEDC C424C598 */ lwc1 $f4, %lo(gCourseTimer)($at) -/* 0F84F0 8028EEE0 46127200 */ add.s $f8, $f14, $f18 -/* 0F84F4 8028EEE4 46083283 */ div.s $f10, $f6, $f8 -/* 0F84F8 8028EEE8 03E00008 */ jr $ra -/* 0F84FC 8028EEEC 460A2001 */ sub.s $f0, $f4, $f10 - -glabel func_8028EEF0 -/* 0F8500 8028EEF0 000470C0 */ sll $t6, $a0, 3 -/* 0F8504 8028EEF4 01C47023 */ subu $t6, $t6, $a0 -/* 0F8508 8028EEF8 000E7100 */ sll $t6, $t6, 4 -/* 0F850C 8028EEFC 01C47023 */ subu $t6, $t6, $a0 -/* 0F8510 8028EF00 000E7080 */ sll $t6, $t6, 2 -/* 0F8514 8028EF04 01C47023 */ subu $t6, $t6, $a0 -/* 0F8518 8028EF08 3C0F800F */ lui $t7, %hi(D_800F6990) # $t7, 0x800f -/* 0F851C 8028EF0C 25EF6990 */ addiu $t7, %lo(D_800F6990) # addiu $t7, $t7, 0x6990 -/* 0F8520 8028EF10 000E70C0 */ sll $t6, $t6, 3 -/* 0F8524 8028EF14 01CF1021 */ addu $v0, $t6, $t7 -/* 0F8528 8028EF18 94580000 */ lhu $t8, ($v0) -/* 0F852C 8028EF1C 37190800 */ ori $t9, $t8, 0x800 -/* 0F8530 8028EF20 03E00008 */ jr $ra -/* 0F8534 8028EF24 A4590000 */ sh $t9, ($v0) - -glabel func_8028EF28 -/* 0F8538 8028EF28 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* 0F853C 8028EF2C AFB70034 */ sw $s7, 0x34($sp) -/* 0F8540 8028EF30 AFB60030 */ sw $s6, 0x30($sp) -/* 0F8544 8028EF34 AFB00018 */ sw $s0, 0x18($sp) -/* 0F8548 8028EF38 AFBE0038 */ sw $fp, 0x38($sp) -/* 0F854C 8028EF3C AFB5002C */ sw $s5, 0x2c($sp) -/* 0F8550 8028EF40 AFB40028 */ sw $s4, 0x28($sp) -/* 0F8554 8028EF44 AFB30024 */ sw $s3, 0x24($sp) -/* 0F8558 8028EF48 AFB20020 */ sw $s2, 0x20($sp) -/* 0F855C 8028EF4C 3C10800F */ lui $s0, %hi(D_800F6990) # $s0, 0x800f -/* 0F8560 8028EF50 3C16802C */ lui $s6, %hi(D_802BA032) # $s6, 0x802c -/* 0F8564 8028EF54 3C17800E */ lui $s7, %hi(D_800DC510) # $s7, 0x800e -/* 0F8568 8028EF58 AFBF003C */ sw $ra, 0x3c($sp) -/* 0F856C 8028EF5C AFB1001C */ sw $s1, 0x1c($sp) -/* 0F8570 8028EF60 26F7C510 */ addiu $s7, %lo(D_800DC510) # addiu $s7, $s7, -0x3af0 -/* 0F8574 8028EF64 26D6A032 */ addiu $s6, %lo(D_802BA032) # addiu $s6, $s6, -0x5fce -/* 0F8578 8028EF68 26106990 */ addiu $s0, %lo(D_800F6990) # addiu $s0, $s0, 0x6990 -/* 0F857C 8028EF6C 00009025 */ move $s2, $zero -/* 0F8580 8028EF70 24130002 */ li $s3, 2 -/* 0F8584 8028EF74 24140003 */ li $s4, 3 -/* 0F8588 8028EF78 24150001 */ li $s5, 1 -/* 0F858C 8028EF7C 241E0063 */ li $fp, 99 -.L8028EF80: -/* 0F8590 8028EF80 96040000 */ lhu $a0, ($s0) -/* 0F8594 8028EF84 308E8000 */ andi $t6, $a0, 0x8000 -/* 0F8598 8028EF88 11C000FD */ beqz $t6, .L8028F380 -/* 0F859C 8028EF8C 00127880 */ sll $t7, $s2, 2 -/* 0F85A0 8028EF90 3C038016 */ lui $v1, %hi(D_80164390) # 0x8016 -/* 0F85A4 8028EF94 006F1821 */ addu $v1, $v1, $t7 -/* 0F85A8 8028EF98 8C634390 */ lw $v1, %lo(D_80164390)($v1) # 0x4390($v1) -/* 0F85AC 8028EF9C 86020008 */ lh $v0, 8($s0) -/* 0F85B0 8028EFA0 0062082A */ slt $at, $v1, $v0 -/* 0F85B4 8028EFA4 10200003 */ beqz $at, .L8028EFB4 -/* 0F85B8 8028EFA8 2458FFFF */ addiu $t8, $v0, -1 -/* 0F85BC 8028EFAC 100000F4 */ b .L8028F380 -/* 0F85C0 8028EFB0 A6180008 */ sh $t8, 8($s0) -.L8028EFB4: -/* 0F85C4 8028EFB4 0043082A */ slt $at, $v0, $v1 -/* 0F85C8 8028EFB8 102000F1 */ beqz $at, .L8028F380 -/* 0F85CC 8028EFBC 24590001 */ addiu $t9, $v0, 1 -/* 0F85D0 8028EFC0 30884000 */ andi $t0, $a0, 0x4000 -/* 0F85D4 8028EFC4 110000E3 */ beqz $t0, .L8028F354 -/* 0F85D8 8028EFC8 A6190008 */ sh $t9, 8($s0) -/* 0F85DC 8028EFCC 86020008 */ lh $v0, 8($s0) -/* 0F85E0 8028EFD0 168200D3 */ bne $s4, $v0, .L8028F320 -/* 0F85E4 8028EFD4 00000000 */ nop -/* 0F85E8 8028EFD8 0C0A3BBC */ jal func_8028EEF0 -/* 0F85EC 8028EFDC 02402025 */ move $a0, $s2 -/* 0F85F0 8028EFE0 86110004 */ lh $s1, 4($s0) -/* 0F85F4 8028EFE4 96090000 */ lhu $t1, ($s0) -/* 0F85F8 8028EFE8 2A210004 */ slti $at, $s1, 4 -/* 0F85FC 8028EFEC 352A1000 */ ori $t2, $t1, 0x1000 -/* 0F8600 8028EFF0 10200003 */ beqz $at, .L8028F000 -/* 0F8604 8028EFF4 A60A0000 */ sh $t2, ($s0) -/* 0F8608 8028EFF8 3C018015 */ lui $at, %hi(D_80150120) # $at, 0x8015 -/* 0F860C 8028EFFC AC350120 */ sw $s5, %lo(D_80150120)($at) -.L8028F000: -/* 0F8610 8028F000 0C032846 */ jal func_800CA118 -/* 0F8614 8028F004 324400FF */ andi $a0, $s2, 0xff -/* 0F8618 8028F008 96C20000 */ lhu $v0, ($s6) -/* 0F861C 8028F00C 3C0D800E */ lui $t5, %hi(gPlayerCountSelection1) # $t5, 0x800e -/* 0F8620 8028F010 24080004 */ li $t0, 4 -/* 0F8624 8028F014 304B8000 */ andi $t3, $v0, 0x8000 -/* 0F8628 8028F018 15600002 */ bnez $t3, .L8028F024 -/* 0F862C 8028F01C 344C8000 */ ori $t4, $v0, 0x8000 -/* 0F8630 8028F020 A6CC0000 */ sh $t4, ($s6) -.L8028F024: -/* 0F8634 8028F024 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e -/* 0F8638 8028F028 8C42C53C */ lw $v0, %lo(gModeSelection)($v0) -/* 0F863C 8028F02C 5440000C */ bnel $v0, $zero, .L8028F060 -/* 0F8640 8028F030 96180000 */ lhu $t8, ($s0) -/* 0F8644 8028F034 8DADC538 */ lw $t5, %lo(gPlayerCountSelection1)($t5) -/* 0F8648 8028F038 3C0E802C */ lui $t6, %hi(D_802BA048) # $t6, 0x802c -/* 0F864C 8028F03C 566D0008 */ bnel $s3, $t5, .L8028F060 -/* 0F8650 8028F040 96180000 */ lhu $t8, ($s0) -/* 0F8654 8028F044 95CEA048 */ lhu $t6, %lo(D_802BA048)($t6) -/* 0F8658 8028F048 240F0001 */ li $t7, 1 -/* 0F865C 8028F04C 3C01802C */ lui $at, %hi(D_802BA048) # $at, 0x802c -/* 0F8660 8028F050 55C00003 */ bnel $t6, $zero, .L8028F060 -/* 0F8664 8028F054 96180000 */ lhu $t8, ($s0) -/* 0F8668 8028F058 A42FA048 */ sh $t7, %lo(D_802BA048)($at) -/* 0F866C 8028F05C 96180000 */ lhu $t8, ($s0) -.L8028F060: -/* 0F8670 8028F060 33190100 */ andi $t9, $t8, 0x100 -/* 0F8674 8028F064 17200002 */ bnez $t9, .L8028F070 -/* 0F8678 8028F068 00000000 */ nop -/* 0F867C 8028F06C AEE80000 */ sw $t0, ($s7) -.L8028F070: -/* 0F8680 8028F070 16A20005 */ bne $s5, $v0, .L8028F088 -/* 0F8684 8028F074 00000000 */ nop -/* 0F8688 8028F078 0C0016BA */ jal func_80005AE8 -/* 0F868C 8028F07C 02002025 */ move $a0, $s0 -/* 0F8690 8028F080 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e -/* 0F8694 8028F084 8C42C53C */ lw $v0, %lo(gModeSelection)($v0) -.L8028F088: -/* 0F8698 8028F088 166200BD */ bne $s3, $v0, .L8028F380 -/* 0F869C 8028F08C 240900B4 */ li $t1, 180 -/* 0F86A0 8028F090 3C01802C */ lui $at, %hi(D_802BA038) # $at, 0x802c -/* 0F86A4 8028F094 3C03800E */ lui $v1, %hi(gPlayerCountSelection1) # $v1, 0x800e -/* 0F86A8 8028F098 AC29A038 */ sw $t1, %lo(D_802BA038)($at) -/* 0F86AC 8028F09C 16200003 */ bnez $s1, .L8028F0AC -/* 0F86B0 8028F0A0 8C63C538 */ lw $v1, %lo(gPlayerCountSelection1)($v1) -/* 0F86B4 8028F0A4 3C01800E */ lui $at, %hi(D_800DC5E8) # $at, 0x800e -/* 0F86B8 8028F0A8 AC32C5E8 */ sw $s2, %lo(D_800DC5E8)($at) -.L8028F0AC: -/* 0F86BC 8028F0AC 10730008 */ beq $v1, $s3, .L8028F0D0 -/* 0F86C0 8028F0B0 00000000 */ nop -/* 0F86C4 8028F0B4 1074002E */ beq $v1, $s4, .L8028F170 -/* 0F86C8 8028F0B8 00121080 */ sll $v0, $s2, 2 -/* 0F86CC 8028F0BC 24010004 */ li $at, 4 -/* 0F86D0 8028F0C0 10610069 */ beq $v1, $at, .L8028F268 -/* 0F86D4 8028F0C4 00121080 */ sll $v0, $s2, 2 -/* 0F86D8 8028F0C8 100000AE */ b .L8028F384 -/* 0F86DC 8028F0CC 26520001 */ addiu $s2, $s2, 1 -.L8028F0D0: -/* 0F86E0 8028F0D0 16200007 */ bnez $s1, .L8028F0F0 -/* 0F86E4 8028F0D4 3C0D8016 */ lui $t5, %hi(D_8015F8B8) # $t5, 0x8016 -/* 0F86E8 8028F0D8 3C0A8016 */ lui $t2, %hi(D_8015F8B8) # $t2, 0x8016 -/* 0F86EC 8028F0DC 8D4AF8B8 */ lw $t2, %lo(D_8015F8B8)($t2) -/* 0F86F0 8028F0E0 01521021 */ addu $v0, $t2, $s2 -/* 0F86F4 8028F0E4 904B0000 */ lbu $t3, ($v0) -/* 0F86F8 8028F0E8 256C0001 */ addiu $t4, $t3, 1 -/* 0F86FC 8028F0EC A04C0000 */ sb $t4, ($v0) -.L8028F0F0: -/* 0F8700 8028F0F0 8DADF8B8 */ lw $t5, %lo(D_8015F8B8)($t5) -/* 0F8704 8028F0F4 240F0005 */ li $t7, 5 -/* 0F8708 8028F0F8 3C19800F */ lui $t9, %hi(D_800F6990) # $t9, 0x800f -/* 0F870C 8028F0FC 01B21021 */ addu $v0, $t5, $s2 -/* 0F8710 8028F100 904E0000 */ lbu $t6, ($v0) -/* 0F8714 8028F104 3C128016 */ lui $s2, %hi(D_8015F8F2) # $s2, 0x8016 -/* 0F8718 8028F108 29C10064 */ slti $at, $t6, 0x64 -/* 0F871C 8028F10C 54200003 */ bnel $at, $zero, .L8028F11C -/* 0F8720 8028F110 AEEF0000 */ sw $t7, ($s7) -/* 0F8724 8028F114 A05E0000 */ sb $fp, ($v0) -/* 0F8728 8028F118 AEEF0000 */ sw $t7, ($s7) -.L8028F11C: -/* 0F872C 8028F11C 8652F8F2 */ lh $s2, %lo(D_8015F8F2)($s2) -/* 0F8730 8028F120 27396990 */ addiu $t9, %lo(D_800F6990) # addiu $t9, $t9, 0x6990 -/* 0F8734 8028F124 3C010020 */ lui $at, 0x20 -/* 0F8738 8028F128 0012C0C0 */ sll $t8, $s2, 3 -/* 0F873C 8028F12C 0312C023 */ subu $t8, $t8, $s2 -/* 0F8740 8028F130 0018C100 */ sll $t8, $t8, 4 -/* 0F8744 8028F134 0312C023 */ subu $t8, $t8, $s2 -/* 0F8748 8028F138 0018C080 */ sll $t8, $t8, 2 -/* 0F874C 8028F13C 0312C023 */ subu $t8, $t8, $s2 -/* 0F8750 8028F140 0018C0C0 */ sll $t8, $t8, 3 -/* 0F8754 8028F144 03198021 */ addu $s0, $t8, $t9 -/* 0F8758 8028F148 8E08000C */ lw $t0, 0xc($s0) -/* 0F875C 8028F14C 960A0000 */ lhu $t2, ($s0) -/* 0F8760 8028F150 324400FF */ andi $a0, $s2, 0xff -/* 0F8764 8028F154 01014825 */ or $t1, $t0, $at -/* 0F8768 8028F158 354B1000 */ ori $t3, $t2, 0x1000 -/* 0F876C 8028F15C AE09000C */ sw $t1, 0xc($s0) -/* 0F8770 8028F160 0C032846 */ jal func_800CA118 -/* 0F8774 8028F164 A60B0000 */ sh $t3, ($s0) -/* 0F8778 8028F168 10000086 */ b .L8028F384 -/* 0F877C 8028F16C 26520001 */ addiu $s2, $s2, 1 -.L8028F170: -/* 0F8780 8028F170 2A210003 */ slti $at, $s1, 3 -/* 0F8784 8028F174 10200008 */ beqz $at, .L8028F198 -/* 0F8788 8028F178 00521023 */ subu $v0, $v0, $s2 -/* 0F878C 8028F17C 3C0C8016 */ lui $t4, %hi(D_8015F8BC) # $t4, 0x8016 -/* 0F8790 8028F180 8D8CF8BC */ lw $t4, %lo(D_8015F8BC)($t4) -/* 0F8794 8028F184 004C6821 */ addu $t5, $v0, $t4 -/* 0F8798 8028F188 01B11821 */ addu $v1, $t5, $s1 -/* 0F879C 8028F18C 906E0000 */ lbu $t6, ($v1) -/* 0F87A0 8028F190 25CF0001 */ addiu $t7, $t6, 1 -/* 0F87A4 8028F194 A06F0000 */ sb $t7, ($v1) -.L8028F198: -/* 0F87A8 8028F198 3C188016 */ lui $t8, %hi(D_8015F8BC) # $t8, 0x8016 -/* 0F87AC 8028F19C 8F18F8BC */ lw $t8, %lo(D_8015F8BC)($t8) -/* 0F87B0 8028F1A0 24090005 */ li $t1, 5 -/* 0F87B4 8028F1A4 0058C821 */ addu $t9, $v0, $t8 -/* 0F87B8 8028F1A8 03311821 */ addu $v1, $t9, $s1 -/* 0F87BC 8028F1AC 90680000 */ lbu $t0, ($v1) -/* 0F87C0 8028F1B0 3C18800F */ lui $t8, %hi(D_800F6990) # $t8, 0x800f -/* 0F87C4 8028F1B4 27186990 */ addiu $t8, %lo(D_800F6990) # addiu $t8, $t8, 0x6990 -/* 0F87C8 8028F1B8 29010064 */ slti $at, $t0, 0x64 -/* 0F87CC 8028F1BC 14200002 */ bnez $at, .L8028F1C8 -/* 0F87D0 8028F1C0 00000000 */ nop -/* 0F87D4 8028F1C4 A07E0000 */ sb $fp, ($v1) -.L8028F1C8: -/* 0F87D8 8028F1C8 5635006E */ bnel $s1, $s5, .L8028F384 -/* 0F87DC 8028F1CC 26520001 */ addiu $s2, $s2, 1 -/* 0F87E0 8028F1D0 AEE90000 */ sw $t1, ($s7) -/* 0F87E4 8028F1D4 3C128016 */ lui $s2, %hi(D_8015F8F4) # $s2, 0x8016 -/* 0F87E8 8028F1D8 8652F8F4 */ lh $s2, %lo(D_8015F8F4)($s2) -/* 0F87EC 8028F1DC 3C0A8016 */ lui $t2, %hi(D_8015F8BC) # $t2, 0x8016 -/* 0F87F0 8028F1E0 8D4AF8BC */ lw $t2, %lo(D_8015F8BC)($t2) -/* 0F87F4 8028F1E4 02540019 */ multu $s2, $s4 -/* 0F87F8 8028F1E8 3C0D8016 */ lui $t5, %hi(D_8015F8BC) # $t5, 0x8016 -/* 0F87FC 8028F1EC 001278C0 */ sll $t7, $s2, 3 -/* 0F8800 8028F1F0 01F27823 */ subu $t7, $t7, $s2 -/* 0F8804 8028F1F4 000F7900 */ sll $t7, $t7, 4 -/* 0F8808 8028F1F8 01F27823 */ subu $t7, $t7, $s2 -/* 0F880C 8028F1FC 000F7880 */ sll $t7, $t7, 2 -/* 0F8810 8028F200 01F27823 */ subu $t7, $t7, $s2 -/* 0F8814 8028F204 000F78C0 */ sll $t7, $t7, 3 -/* 0F8818 8028F208 01F88021 */ addu $s0, $t7, $t8 -/* 0F881C 8028F20C 00001012 */ mflo $v0 -/* 0F8820 8028F210 004A1821 */ addu $v1, $v0, $t2 -/* 0F8824 8028F214 906B0002 */ lbu $t3, 2($v1) -/* 0F8828 8028F218 324400FF */ andi $a0, $s2, 0xff -/* 0F882C 8028F21C 256C0001 */ addiu $t4, $t3, 1 -/* 0F8830 8028F220 A06C0002 */ sb $t4, 2($v1) -/* 0F8834 8028F224 8DADF8BC */ lw $t5, %lo(D_8015F8BC)($t5) -/* 0F8838 8028F228 004D1821 */ addu $v1, $v0, $t5 -/* 0F883C 8028F22C 906E0002 */ lbu $t6, 2($v1) -/* 0F8840 8028F230 29C10064 */ slti $at, $t6, 0x64 -/* 0F8844 8028F234 54200003 */ bnel $at, $zero, .L8028F244 -/* 0F8848 8028F238 8E19000C */ lw $t9, 0xc($s0) -/* 0F884C 8028F23C A07E0002 */ sb $fp, 2($v1) -/* 0F8850 8028F240 8E19000C */ lw $t9, 0xc($s0) -.L8028F244: -/* 0F8854 8028F244 96090000 */ lhu $t1, ($s0) -/* 0F8858 8028F248 3C010020 */ lui $at, 0x20 -/* 0F885C 8028F24C 03214025 */ or $t0, $t9, $at -/* 0F8860 8028F250 352A1000 */ ori $t2, $t1, 0x1000 -/* 0F8864 8028F254 AE08000C */ sw $t0, 0xc($s0) -/* 0F8868 8028F258 0C032846 */ jal func_800CA118 -/* 0F886C 8028F25C A60A0000 */ sh $t2, ($s0) -/* 0F8870 8028F260 10000048 */ b .L8028F384 -/* 0F8874 8028F264 26520001 */ addiu $s2, $s2, 1 -.L8028F268: -/* 0F8878 8028F268 2A210003 */ slti $at, $s1, 3 -/* 0F887C 8028F26C 10200008 */ beqz $at, .L8028F290 -/* 0F8880 8028F270 00521023 */ subu $v0, $v0, $s2 -/* 0F8884 8028F274 3C0B8016 */ lui $t3, %hi(D_8015F8C0) # $t3, 0x8016 -/* 0F8888 8028F278 8D6BF8C0 */ lw $t3, %lo(D_8015F8C0)($t3) -/* 0F888C 8028F27C 004B6021 */ addu $t4, $v0, $t3 -/* 0F8890 8028F280 01911821 */ addu $v1, $t4, $s1 -/* 0F8894 8028F284 906D0000 */ lbu $t5, ($v1) -/* 0F8898 8028F288 25AE0001 */ addiu $t6, $t5, 1 -/* 0F889C 8028F28C A06E0000 */ sb $t6, ($v1) -.L8028F290: -/* 0F88A0 8028F290 3C0F8016 */ lui $t7, %hi(D_8015F8C0) # $t7, 0x8016 -/* 0F88A4 8028F294 8DEFF8C0 */ lw $t7, %lo(D_8015F8C0)($t7) -/* 0F88A8 8028F298 24080005 */ li $t0, 5 -/* 0F88AC 8028F29C 3C0A800F */ lui $t2, %hi(D_800F6990) # $t2, 0x800f -/* 0F88B0 8028F2A0 004FC021 */ addu $t8, $v0, $t7 -/* 0F88B4 8028F2A4 03111821 */ addu $v1, $t8, $s1 -/* 0F88B8 8028F2A8 90790000 */ lbu $t9, ($v1) -/* 0F88BC 8028F2AC 2B210064 */ slti $at, $t9, 0x64 -/* 0F88C0 8028F2B0 14200002 */ bnez $at, .L8028F2BC -/* 0F88C4 8028F2B4 00000000 */ nop -/* 0F88C8 8028F2B8 A07E0000 */ sb $fp, ($v1) -.L8028F2BC: -/* 0F88CC 8028F2BC 56330031 */ bnel $s1, $s3, .L8028F384 -/* 0F88D0 8028F2C0 26520001 */ addiu $s2, $s2, 1 -/* 0F88D4 8028F2C4 AEE80000 */ sw $t0, ($s7) -/* 0F88D8 8028F2C8 3C128016 */ lui $s2, %hi(D_8015F8F6) # $s2, 0x8016 -/* 0F88DC 8028F2CC 8652F8F6 */ lh $s2, %lo(D_8015F8F6)($s2) -/* 0F88E0 8028F2D0 254A6990 */ addiu $t2, %lo(D_800F6990) # addiu $t2, $t2, 0x6990 -/* 0F88E4 8028F2D4 3C010020 */ lui $at, 0x20 -/* 0F88E8 8028F2D8 001248C0 */ sll $t1, $s2, 3 -/* 0F88EC 8028F2DC 01324823 */ subu $t1, $t1, $s2 -/* 0F88F0 8028F2E0 00094900 */ sll $t1, $t1, 4 -/* 0F88F4 8028F2E4 01324823 */ subu $t1, $t1, $s2 -/* 0F88F8 8028F2E8 00094880 */ sll $t1, $t1, 2 -/* 0F88FC 8028F2EC 01324823 */ subu $t1, $t1, $s2 -/* 0F8900 8028F2F0 000948C0 */ sll $t1, $t1, 3 -/* 0F8904 8028F2F4 012A8021 */ addu $s0, $t1, $t2 -/* 0F8908 8028F2F8 8E0B000C */ lw $t3, 0xc($s0) -/* 0F890C 8028F2FC 960D0000 */ lhu $t5, ($s0) -/* 0F8910 8028F300 324400FF */ andi $a0, $s2, 0xff -/* 0F8914 8028F304 01616025 */ or $t4, $t3, $at -/* 0F8918 8028F308 35AE1000 */ ori $t6, $t5, 0x1000 -/* 0F891C 8028F30C AE0C000C */ sw $t4, 0xc($s0) -/* 0F8920 8028F310 0C032846 */ jal func_800CA118 -/* 0F8924 8028F314 A60E0000 */ sh $t6, ($s0) -/* 0F8928 8028F318 1000001A */ b .L8028F384 -/* 0F892C 8028F31C 26520001 */ addiu $s2, $s2, 1 -.L8028F320: -/* 0F8930 8028F320 16620017 */ bne $s3, $v0, .L8028F380 -/* 0F8934 8028F324 308F0100 */ andi $t7, $a0, 0x100 -/* 0F8938 8028F328 55E00024 */ bnel $t7, $zero, .L8028F3BC -/* 0F893C 8028F32C 8FBF003C */ lw $ra, 0x3c($sp) -/* 0F8940 8028F330 96C20000 */ lhu $v0, ($s6) -/* 0F8944 8028F334 324400FF */ andi $a0, $s2, 0xff -/* 0F8948 8028F338 30584000 */ andi $t8, $v0, 0x4000 -/* 0F894C 8028F33C 17000010 */ bnez $t8, .L8028F380 -/* 0F8950 8028F340 34594000 */ ori $t9, $v0, 0x4000 -/* 0F8954 8028F344 0C032927 */ jal func_800CA49C -/* 0F8958 8028F348 A6D90000 */ sh $t9, ($s6) -/* 0F895C 8028F34C 1000000D */ b .L8028F384 -/* 0F8960 8028F350 26520001 */ addiu $s2, $s2, 1 -.L8028F354: -/* 0F8964 8028F354 86080008 */ lh $t0, 8($s0) -/* 0F8968 8028F358 5688000A */ bnel $s4, $t0, .L8028F384 -/* 0F896C 8028F35C 26520001 */ addiu $s2, $s2, 1 -/* 0F8970 8028F360 0C0A3BBC */ jal func_8028EEF0 -/* 0F8974 8028F364 02402025 */ move $a0, $s2 -/* 0F8978 8028F368 3C09800E */ lui $t1, %hi(gModeSelection) # $t1, 0x800e -/* 0F897C 8028F36C 8D29C53C */ lw $t1, %lo(gModeSelection)($t1) -/* 0F8980 8028F370 56A90004 */ bnel $s5, $t1, .L8028F384 -/* 0F8984 8028F374 26520001 */ addiu $s2, $s2, 1 -/* 0F8988 8028F378 0C0016BA */ jal func_80005AE8 -/* 0F898C 8028F37C 02002025 */ move $a0, $s0 -.L8028F380: -/* 0F8990 8028F380 26520001 */ addiu $s2, $s2, 1 -.L8028F384: -/* 0F8994 8028F384 2A410008 */ slti $at, $s2, 8 -/* 0F8998 8028F388 1420FEFD */ bnez $at, .L8028EF80 -/* 0F899C 8028F38C 26100DD8 */ addiu $s0, $s0, 0xdd8 -/* 0F89A0 8028F390 3C02802C */ lui $v0, %hi(D_802BA048) # $v0, 0x802c -/* 0F89A4 8028F394 9442A048 */ lhu $v0, %lo(D_802BA048)($v0) -/* 0F89A8 8028F398 24010064 */ li $at, 100 -/* 0F89AC 8028F39C 50400007 */ beql $v0, $zero, .L8028F3BC -/* 0F89B0 8028F3A0 8FBF003C */ lw $ra, 0x3c($sp) -/* 0F89B4 8028F3A4 10410004 */ beq $v0, $at, .L8028F3B8 -/* 0F89B8 8028F3A8 240A0064 */ li $t2, 100 -/* 0F89BC 8028F3AC 3C01802C */ lui $at, %hi(D_802BA048) # $at, 0x802c -/* 0F89C0 8028F3B0 0C001D35 */ jal func_800074D4 -/* 0F89C4 8028F3B4 A42AA048 */ sh $t2, %lo(D_802BA048)($at) -.L8028F3B8: -/* 0F89C8 8028F3B8 8FBF003C */ lw $ra, 0x3c($sp) -.L8028F3BC: -/* 0F89CC 8028F3BC 8FB00018 */ lw $s0, 0x18($sp) -/* 0F89D0 8028F3C0 8FB1001C */ lw $s1, 0x1c($sp) -/* 0F89D4 8028F3C4 8FB20020 */ lw $s2, 0x20($sp) -/* 0F89D8 8028F3C8 8FB30024 */ lw $s3, 0x24($sp) -/* 0F89DC 8028F3CC 8FB40028 */ lw $s4, 0x28($sp) -/* 0F89E0 8028F3D0 8FB5002C */ lw $s5, 0x2c($sp) -/* 0F89E4 8028F3D4 8FB60030 */ lw $s6, 0x30($sp) -/* 0F89E8 8028F3D8 8FB70034 */ lw $s7, 0x34($sp) -/* 0F89EC 8028F3DC 8FBE0038 */ lw $fp, 0x38($sp) -/* 0F89F0 8028F3E0 03E00008 */ jr $ra -/* 0F89F4 8028F3E4 27BD0040 */ addiu $sp, $sp, 0x40 - -glabel func_8028F3E8 -/* 0F89F8 8028F3E8 03E00008 */ jr $ra -/* 0F89FC 8028F3EC 00000000 */ nop - glabel func_8028F3F0 /* 0F8A00 8028F3F0 3C088016 */ lui $t0, %hi(D_8015F8F0) # $t0, 0x8016 /* 0F8A04 8028F3F4 3C078016 */ lui $a3, %hi(D_801643B8) # $a3, 0x8016 @@ -2021,8 +528,8 @@ glabel func_8028F970 /* 0F914C 8028FB3C 51A1001F */ beql $t5, $at, .L8028FBBC /* 0F9150 8028FB40 8FBF0024 */ lw $ra, 0x24($sp) /* 0F9154 8028FB44 8CA5C4BC */ lw $a1, %lo(D_800DC4BC)($a1) -/* 0F9158 8028FB48 3C028016 */ lui $v0, %hi(D_80164390) # $v0, 0x8016 -/* 0F915C 8028FB4C 24424390 */ addiu $v0, %lo(D_80164390) # addiu $v0, $v0, 0x4390 +/* 0F9158 8028FB48 3C028016 */ lui $v0, %hi(lapCount) # $v0, 0x8016 +/* 0F915C 8028FB4C 24424390 */ addiu $v0, %lo(lapCount) # addiu $v0, $v0, 0x4390 /* 0F9160 8028FB50 94A40006 */ lhu $a0, 6($a1) /* 0F9164 8028FB54 24030002 */ li $v1, 2 /* 0F9168 8028FB58 308E0800 */ andi $t6, $a0, 0x800 @@ -2031,9 +538,9 @@ glabel func_8028F970 /* 0F9174 8028FB64 AC430000 */ sw $v1, ($v0) /* 0F9178 8028FB68 94A40006 */ lhu $a0, 6($a1) .L8028FB6C: -/* 0F917C 8028FB6C 3C028016 */ lui $v0, %hi(D_80164390) # $v0, 0x8016 +/* 0F917C 8028FB6C 3C028016 */ lui $v0, %hi(lapCount) # $v0, 0x8016 /* 0F9180 8028FB70 308F0100 */ andi $t7, $a0, 0x100 -/* 0F9184 8028FB74 24424390 */ addiu $v0, %lo(D_80164390) # addiu $v0, $v0, 0x4390 +/* 0F9184 8028FB74 24424390 */ addiu $v0, %lo(lapCount) # addiu $v0, $v0, 0x4390 /* 0F9188 8028FB78 11E00004 */ beqz $t7, .L8028FB8C /* 0F918C 8028FB7C 24030002 */ li $v1, 2 /* 0F9190 8028FB80 AC430000 */ sw $v1, ($v0) diff --git a/asm/non_matchings/code_8028DF00/func_8028DF00.s b/asm/non_matchings/code_8028DF00/func_8028DF00.s new file mode 100644 index 000000000..2ffdd5040 --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028DF00.s @@ -0,0 +1,15 @@ +glabel func_8028DF00 +/* 0F7510 8028DF00 3C0E800F */ lui $t6, %hi(D_800F6914) # $t6, 0x800f +/* 0F7514 8028DF04 95CE6914 */ lhu $t6, %lo(D_800F6914)($t6) +/* 0F7518 8028DF08 3C01802C */ lui $at, %hi(D_802BA040) # $at, 0x802c +/* 0F751C 8028DF0C 3C02800F */ lui $v0, %hi(gPlayer2Controller) # $v0, 0x800f +/* 0F7520 8028DF10 24426920 */ addiu $v0, %lo(gPlayer2Controller) # addiu $v0, $v0, 0x6920 +/* 0F7524 8028DF14 A42EA040 */ sh $t6, %lo(D_802BA040)($at) +/* 0F7528 8028DF18 944F0004 */ lhu $t7, 4($v0) +/* 0F752C 8028DF1C 24420020 */ addiu $v0, $v0, 0x20 +/* 0F7530 8028DF20 A42FA042 */ sh $t7, %lo(D_802BA040+0x2)($at) +/* 0F7534 8028DF24 9458FFF4 */ lhu $t8, -0xc($v0) +/* 0F7538 8028DF28 A438A044 */ sh $t8, %lo(D_802BA040+0x4)($at) +/* 0F753C 8028DF2C 94590004 */ lhu $t9, 4($v0) +/* 0F7540 8028DF30 03E00008 */ jr $ra +/* 0F7544 8028DF34 A439A046 */ sh $t9, %lo(D_802BA040+0x6)($at) \ No newline at end of file diff --git a/asm/non_matchings/code_8028DF00/func_8028DF38.s b/asm/non_matchings/code_8028DF00/func_8028DF38.s new file mode 100644 index 000000000..ea3f60d75 --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028DF38.s @@ -0,0 +1,61 @@ +glabel func_8028DF38 +/* 0F7548 8028DF38 3C04800F */ lui $a0, %hi(D_800F6914) # $a0, 0x800f +/* 0F754C 8028DF3C 3C0E802C */ lui $t6, %hi(D_802BA040) # $t6, 0x802c +/* 0F7550 8028DF40 85CEA040 */ lh $t6, %lo(D_802BA040)($t6) +/* 0F7554 8028DF44 94846914 */ lhu $a0, %lo(D_800F6914)($a0) +/* 0F7558 8028DF48 3C01800F */ lui $at, %hi(D_800F6916) # $at, 0x800f +/* 0F755C 8028DF4C 3C02800F */ lui $v0, %hi(gPlayer2Controller) # $v0, 0x800f +/* 0F7560 8028DF50 01C47826 */ xor $t7, $t6, $a0 +/* 0F7564 8028DF54 01E4C024 */ and $t8, $t7, $a0 +/* 0F7568 8028DF58 A4386916 */ sh $t8, %lo(D_800F6916)($at) +/* 0F756C 8028DF5C 01C4C826 */ xor $t9, $t6, $a0 +/* 0F7570 8028DF60 3C01800F */ lui $at, %hi(D_800F6918) # $at, 0x800f +/* 0F7574 8028DF64 032E4024 */ and $t0, $t9, $t6 +/* 0F7578 8028DF68 A4286918 */ sh $t0, %lo(D_800F6918)($at) +/* 0F757C 8028DF6C 3C01800F */ lui $at, %hi(D_800F6914) # $at, 0x800f +/* 0F7580 8028DF70 3C09802C */ lui $t1, %hi(D_802BA042) # $t1, 0x802c +/* 0F7584 8028DF74 24426920 */ addiu $v0, %lo(gPlayer2Controller) # addiu $v0, $v0, 0x6920 +/* 0F7588 8028DF78 A42E6914 */ sh $t6, %lo(D_800F6914)($at) +/* 0F758C 8028DF7C 94430004 */ lhu $v1, 4($v0) +/* 0F7590 8028DF80 8529A042 */ lh $t1, %lo(D_802BA042)($t1) +/* 0F7594 8028DF84 3C0C802C */ lui $t4, %hi(D_802BA042) # $t4, 0x802c +/* 0F7598 8028DF88 3C18802C */ lui $t8, %hi(D_802BA042) # $t8, 0x802c +/* 0F759C 8028DF8C 01235026 */ xor $t2, $t1, $v1 +/* 0F75A0 8028DF90 01435824 */ and $t3, $t2, $v1 +/* 0F75A4 8028DF94 A44B0006 */ sh $t3, 6($v0) +/* 0F75A8 8028DF98 858CA042 */ lh $t4, %lo(D_802BA042)($t4) +/* 0F75AC 8028DF9C 3C19802C */ lui $t9, %hi(D_802BA044) # $t9, 0x802c +/* 0F75B0 8028DFA0 3C09802C */ lui $t1, %hi(D_802BA044) # $t1, 0x802c +/* 0F75B4 8028DFA4 01836826 */ xor $t5, $t4, $v1 +/* 0F75B8 8028DFA8 01AC7824 */ and $t7, $t5, $t4 +/* 0F75BC 8028DFAC A44F0008 */ sh $t7, 8($v0) +/* 0F75C0 8028DFB0 8718A042 */ lh $t8, %lo(D_802BA042)($t8) +/* 0F75C4 8028DFB4 94430014 */ lhu $v1, 0x14($v0) +/* 0F75C8 8028DFB8 3C0D802C */ lui $t5, %hi(D_802BA044) # $t5, 0x802c +/* 0F75CC 8028DFBC A4580004 */ sh $t8, 4($v0) +/* 0F75D0 8028DFC0 8739A044 */ lh $t9, %lo(D_802BA044)($t9) +/* 0F75D4 8028DFC4 3C0C802C */ lui $t4, %hi(D_802BA046) # $t4, 0x802c +/* 0F75D8 8028DFC8 24420020 */ addiu $v0, $v0, 0x20 +/* 0F75DC 8028DFCC 03234026 */ xor $t0, $t9, $v1 +/* 0F75E0 8028DFD0 01037024 */ and $t6, $t0, $v1 +/* 0F75E4 8028DFD4 A44EFFF6 */ sh $t6, -0xa($v0) +/* 0F75E8 8028DFD8 8529A044 */ lh $t1, %lo(D_802BA044)($t1) +/* 0F75EC 8028DFDC 3C19802C */ lui $t9, %hi(D_802BA046) # $t9, 0x802c +/* 0F75F0 8028DFE0 01235026 */ xor $t2, $t1, $v1 +/* 0F75F4 8028DFE4 01495824 */ and $t3, $t2, $t1 +/* 0F75F8 8028DFE8 A44BFFF8 */ sh $t3, -8($v0) +/* 0F75FC 8028DFEC 85ADA044 */ lh $t5, %lo(D_802BA044)($t5) +/* 0F7600 8028DFF0 94430004 */ lhu $v1, 4($v0) +/* 0F7604 8028DFF4 3C0A802C */ lui $t2, %hi(D_802BA046) # $t2, 0x802c +/* 0F7608 8028DFF8 A44DFFF4 */ sh $t5, -0xc($v0) +/* 0F760C 8028DFFC 858CA046 */ lh $t4, %lo(D_802BA046)($t4) +/* 0F7610 8028E000 01837826 */ xor $t7, $t4, $v1 +/* 0F7614 8028E004 01E3C024 */ and $t8, $t7, $v1 +/* 0F7618 8028E008 A4580006 */ sh $t8, 6($v0) +/* 0F761C 8028E00C 8739A046 */ lh $t9, %lo(D_802BA046)($t9) +/* 0F7620 8028E010 03234026 */ xor $t0, $t9, $v1 +/* 0F7624 8028E014 01197024 */ and $t6, $t0, $t9 +/* 0F7628 8028E018 A44E0008 */ sh $t6, 8($v0) +/* 0F762C 8028E01C 854AA046 */ lh $t2, %lo(D_802BA046)($t2) +/* 0F7630 8028E020 03E00008 */ jr $ra +/* 0F7634 8028E024 A44A0004 */ sh $t2, 4($v0) diff --git a/asm/non_matchings/code_8028DF00/func_8028E0F0.s b/asm/non_matchings/code_8028DF00/func_8028E0F0.s new file mode 100644 index 000000000..af581c523 --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028E0F0.s @@ -0,0 +1,118 @@ +glabel func_8028E0F0 +/* 0F7700 8028E0F0 27BDFF98 */ addiu $sp, $sp, -0x68 +/* 0F7704 8028E0F4 AFB70034 */ sw $s7, 0x34($sp) +/* 0F7708 8028E0F8 AFB40028 */ sw $s4, 0x28($sp) +/* 0F770C 8028E0FC AFB00018 */ sw $s0, 0x18($sp) +/* 0F7710 8028E100 AFBE0038 */ sw $fp, 0x38($sp) +/* 0F7714 8028E104 AFB60030 */ sw $s6, 0x30($sp) +/* 0F7718 8028E108 AFB5002C */ sw $s5, 0x2c($sp) +/* 0F771C 8028E10C AFB30024 */ sw $s3, 0x24($sp) +/* 0F7720 8028E110 AFB20020 */ sw $s2, 0x20($sp) +/* 0F7724 8028E114 AFB1001C */ sw $s1, 0x1c($sp) +/* 0F7728 8028E118 3C10800F */ lui $s0, %hi(D_800F6990) # $s0, 0x800f +/* 0F772C 8028E11C 3C14800E */ lui $s4, %hi(D_800DC4DC) # $s4, 0x800e +/* 0F7730 8028E120 3C178019 */ lui $s7, %hi(D_8018D8C0) # $s7, 0x8019 +/* 0F7734 8028E124 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F7738 8028E128 00009825 */ move $s3, $zero +/* 0F773C 8028E12C 00009025 */ move $s2, $zero +/* 0F7740 8028E130 26F7D8C0 */ addiu $s7, %lo(D_8018D8C0) # addiu $s7, $s7, -0x2740 +/* 0F7744 8028E134 2694C4DC */ addiu $s4, %lo(D_800DC4DC) # addiu $s4, $s4, -0x3b24 +/* 0F7748 8028E138 26106990 */ addiu $s0, %lo(D_800F6990) # addiu $s0, $s0, 0x6990 +/* 0F774C 8028E13C 00008825 */ move $s1, $zero +/* 0F7750 8028E140 24150DD8 */ li $s5, 3544 +/* 0F7754 8028E144 24160004 */ li $s6, 4 +/* 0F7758 8028E148 27BE0050 */ addiu $fp, $sp, 0x50 +.L8028E14C: +/* 0F775C 8028E14C 96020000 */ lhu $v0, ($s0) +/* 0F7760 8028E150 304E8000 */ andi $t6, $v0, 0x8000 +/* 0F7764 8028E154 11C00034 */ beqz $t6, .L8028E228 +/* 0F7768 8028E158 304F0800 */ andi $t7, $v0, 0x800 +/* 0F776C 8028E15C 15E00032 */ bnez $t7, .L8028E228 +/* 0F7770 8028E160 0011C040 */ sll $t8, $s1, 1 +/* 0F7774 8028E164 02F8C821 */ addu $t9, $s7, $t8 +/* 0F7778 8028E168 87280000 */ lh $t0, ($t9) +/* 0F777C 8028E16C 00135040 */ sll $t2, $s3, 1 +/* 0F7780 8028E170 03AA5821 */ addu $t3, $sp, $t2 +/* 0F7784 8028E174 0503001B */ bgezl $t0, .L8028E1E4 +/* 0F7788 8028E178 8E990000 */ lw $t9, ($s4) +/* 0F778C 8028E17C 8E8A0000 */ lw $t2, ($s4) +/* 0F7790 8028E180 00126840 */ sll $t5, $s2, 1 +/* 0F7794 8028E184 26520001 */ addiu $s2, $s2, 1 +/* 0F7798 8028E188 020A5823 */ subu $t3, $s0, $t2 +/* 0F779C 8028E18C 0175001A */ div $zero, $t3, $s5 +/* 0F77A0 8028E190 34490800 */ ori $t1, $v0, 0x800 +/* 0F77A4 8028E194 00006012 */ mflo $t4 +/* 0F77A8 8028E198 03CD7021 */ addu $t6, $fp, $t5 +/* 0F77AC 8028E19C 00127C00 */ sll $t7, $s2, 0x10 +/* 0F77B0 8028E1A0 A6090000 */ sh $t1, ($s0) +/* 0F77B4 8028E1A4 16A00002 */ bnez $s5, .L8028E1B0 +/* 0F77B8 8028E1A8 00000000 */ nop +/* 0F77BC 8028E1AC 0007000D */ break 7 +.L8028E1B0: +/* 0F77C0 8028E1B0 2401FFFF */ li $at, -1 +/* 0F77C4 8028E1B4 16A10004 */ bne $s5, $at, .L8028E1C8 +/* 0F77C8 8028E1B8 3C018000 */ lui $at, 0x8000 +/* 0F77CC 8028E1BC 15610002 */ bne $t3, $at, .L8028E1C8 +/* 0F77D0 8028E1C0 00000000 */ nop +/* 0F77D4 8028E1C4 0006000D */ break 6 +.L8028E1C8: +/* 0F77D8 8028E1C8 A5CC0000 */ sh $t4, ($t6) +/* 0F77DC 8028E1CC 000F9403 */ sra $s2, $t7, 0x10 +/* 0F77E0 8028E1D0 0C032846 */ jal func_800CA118 +/* 0F77E4 8028E1D4 322400FF */ andi $a0, $s1, 0xff +/* 0F77E8 8028E1D8 10000014 */ b .L8028E22C +/* 0F77EC 8028E1DC 26310001 */ addiu $s1, $s1, 1 +/* 0F77F0 8028E1E0 8E990000 */ lw $t9, ($s4) +.L8028E1E4: +/* 0F77F4 8028E1E4 26730001 */ addiu $s3, $s3, 1 +/* 0F77F8 8028E1E8 00136C00 */ sll $t5, $s3, 0x10 +/* 0F77FC 8028E1EC 02194023 */ subu $t0, $s0, $t9 +/* 0F7800 8028E1F0 0115001A */ div $zero, $t0, $s5 +/* 0F7804 8028E1F4 00004812 */ mflo $t1 +/* 0F7808 8028E1F8 000D6403 */ sra $t4, $t5, 0x10 +/* 0F780C 8028E1FC A5690058 */ sh $t1, 0x58($t3) +/* 0F7810 8028E200 16A00002 */ bnez $s5, .L8028E20C +/* 0F7814 8028E204 00000000 */ nop +/* 0F7818 8028E208 0007000D */ break 7 +.L8028E20C: +/* 0F781C 8028E20C 2401FFFF */ li $at, -1 +/* 0F7820 8028E210 16A10004 */ bne $s5, $at, .L8028E224 +/* 0F7824 8028E214 3C018000 */ lui $at, 0x8000 +/* 0F7828 8028E218 15010002 */ bne $t0, $at, .L8028E224 +/* 0F782C 8028E21C 00000000 */ nop +/* 0F7830 8028E220 0006000D */ break 6 +.L8028E224: +/* 0F7834 8028E224 01809825 */ move $s3, $t4 +.L8028E228: +/* 0F7838 8028E228 26310001 */ addiu $s1, $s1, 1 +.L8028E22C: +/* 0F783C 8028E22C 1636FFC7 */ bne $s1, $s6, .L8028E14C +/* 0F7840 8028E230 26100DD8 */ addiu $s0, $s0, 0xdd8 +/* 0F7844 8028E234 24010001 */ li $at, 1 +/* 0F7848 8028E238 16610006 */ bne $s3, $at, .L8028E254 +/* 0F784C 8028E23C 87AE0058 */ lh $t6, 0x58($sp) +/* 0F7850 8028E240 3C01800E */ lui $at, %hi(D_800DC5E8) # $at, 0x800e +/* 0F7854 8028E244 0C0A380A */ jal func_8028E028 +/* 0F7858 8028E248 AC2EC5E8 */ sw $t6, %lo(D_800DC5E8)($at) +/* 0F785C 8028E24C 10000007 */ b .L8028E26C +/* 0F7860 8028E250 8FBF003C */ lw $ra, 0x3c($sp) +.L8028E254: +/* 0F7864 8028E254 16600004 */ bnez $s3, .L8028E268 +/* 0F7868 8028E258 87AF0050 */ lh $t7, 0x50($sp) +/* 0F786C 8028E25C 3C01800E */ lui $at, %hi(D_800DC5E8) # $at, 0x800e +/* 0F7870 8028E260 0C0A380A */ jal func_8028E028 +/* 0F7874 8028E264 AC2FC5E8 */ sw $t7, %lo(D_800DC5E8)($at) +.L8028E268: +/* 0F7878 8028E268 8FBF003C */ lw $ra, 0x3c($sp) +.L8028E26C: +/* 0F787C 8028E26C 8FB00018 */ lw $s0, 0x18($sp) +/* 0F7880 8028E270 8FB1001C */ lw $s1, 0x1c($sp) +/* 0F7884 8028E274 8FB20020 */ lw $s2, 0x20($sp) +/* 0F7888 8028E278 8FB30024 */ lw $s3, 0x24($sp) +/* 0F788C 8028E27C 8FB40028 */ lw $s4, 0x28($sp) +/* 0F7890 8028E280 8FB5002C */ lw $s5, 0x2c($sp) +/* 0F7894 8028E284 8FB60030 */ lw $s6, 0x30($sp) +/* 0F7898 8028E288 8FB70034 */ lw $s7, 0x34($sp) +/* 0F789C 8028E28C 8FBE0038 */ lw $fp, 0x38($sp) +/* 0F78A0 8028E290 03E00008 */ jr $ra +/* 0F78A4 8028E294 27BD0068 */ addiu $sp, $sp, 0x68 \ No newline at end of file diff --git a/asm/non_matchings/code_8028DF00/func_8028E298.s b/asm/non_matchings/code_8028DF00/func_8028E298.s new file mode 100644 index 000000000..93410c9ea --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028E298.s @@ -0,0 +1,70 @@ +glabel func_8028E298 +/* 0F78A8 8028E298 3C014170 */ li $at, 0x41700000 # 15.000000 +/* 0F78AC 8028E29C 44816000 */ mtc1 $at, $f12 +/* 0F78B0 8028E2A0 3C013F80 */ li $at, 0x3F800000 # 1.000000 +/* 0F78B4 8028E2A4 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F78B8 8028E2A8 3C05800F */ lui $a1, %hi(D_800F6990) # $a1, 0x800f +/* 0F78BC 8028E2AC 3C0D800E */ lui $t5, %hi(gCourseTimer) # $t5, 0x800e +/* 0F78C0 8028E2B0 3C0C8016 */ lui $t4, %hi(D_8015F898) # $t4, 0x8016 +/* 0F78C4 8028E2B4 3C0B8016 */ lui $t3, %hi(D_801644A8) # $t3, 0x8016 +/* 0F78C8 8028E2B8 3C098016 */ lui $t1, %hi(D_801645C8) # $t1, 0x8016 +/* 0F78CC 8028E2BC 3C088016 */ lui $t0, %hi(D_801645B0) # $t0, 0x8016 +/* 0F78D0 8028E2C0 44811000 */ mtc1 $at, $f2 +/* 0F78D4 8028E2C4 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F78D8 8028E2C8 250845B0 */ addiu $t0, %lo(D_801645B0) # addiu $t0, $t0, 0x45b0 +/* 0F78DC 8028E2CC 252945C8 */ addiu $t1, %lo(D_801645C8) # addiu $t1, $t1, 0x45c8 +/* 0F78E0 8028E2D0 256B44A8 */ addiu $t3, %lo(D_801644A8) # addiu $t3, $t3, 0x44a8 +/* 0F78E4 8028E2D4 258CF898 */ addiu $t4, %lo(D_8015F898) # addiu $t4, $t4, -0x768 +/* 0F78E8 8028E2D8 25ADC598 */ addiu $t5, %lo(gCourseTimer) # addiu $t5, $t5, -0x3a68 +/* 0F78EC 8028E2DC 24A56990 */ addiu $a1, %lo(D_800F6990) # addiu $a1, $a1, 0x6990 +/* 0F78F0 8028E2E0 00002025 */ move $a0, $zero +/* 0F78F4 8028E2E4 240A0002 */ li $t2, 2 +/* 0F78F8 8028E2E8 24070008 */ li $a3, 8 +.L8028E2EC: +/* 0F78FC 8028E2EC 94AE0000 */ lhu $t6, ($a1) +/* 0F7900 8028E2F0 0004C040 */ sll $t8, $a0, 1 +/* 0F7904 8028E2F4 0118C821 */ addu $t9, $t0, $t8 +/* 0F7908 8028E2F8 31CF0800 */ andi $t7, $t6, 0x800 +/* 0F790C 8028E2FC 55E0001E */ bnel $t7, $zero, .L8028E378 +/* 0F7910 8028E300 24840001 */ addiu $a0, $a0, 1 +/* 0F7914 8028E304 97260000 */ lhu $a2, ($t9) +/* 0F7918 8028E308 84B80008 */ lh $t8, 8($a1) +/* 0F791C 8028E30C 00041880 */ sll $v1, $a0, 2 +/* 0F7920 8028E310 00067040 */ sll $t6, $a2, 1 +/* 0F7924 8028E314 012E7821 */ addu $t7, $t1, $t6 +/* 0F7928 8028E318 95E20000 */ lhu $v0, ($t7) +/* 0F792C 8028E31C 0158C823 */ subu $t9, $t2, $t8 +/* 0F7930 8028E320 01637821 */ addu $t7, $t3, $v1 +/* 0F7934 8028E324 00590019 */ multu $v0, $t9 +/* 0F7938 8028E328 44823000 */ mtc1 $v0, $f6 +/* 0F793C 8028E32C 3C014F80 */ li $at, 0x4F800000 # 4294967296.000000 +/* 0F7940 8028E330 46803220 */ cvt.s.w $f8, $f6 +/* 0F7944 8028E334 00007012 */ mflo $t6 +/* 0F7948 8028E338 448E2000 */ mtc1 $t6, $f4 +/* 0F794C 8028E33C 04410004 */ bgez $v0, .L8028E350 +/* 0F7950 8028E340 46802020 */ cvt.s.w $f0, $f4 +/* 0F7954 8028E344 44815000 */ mtc1 $at, $f10 +/* 0F7958 8028E348 00000000 */ nop +/* 0F795C 8028E34C 460A4200 */ add.s $f8, $f8, $f10 +.L8028E350: +/* 0F7960 8028E350 C5F00000 */ lwc1 $f16, ($t7) +/* 0F7964 8028E354 C5A60000 */ lwc1 $f6, ($t5) +/* 0F7968 8028E358 0183C021 */ addu $t8, $t4, $v1 +/* 0F796C 8028E35C 46101481 */ sub.s $f18, $f2, $f16 +/* 0F7970 8028E360 46124102 */ mul.s $f4, $f8, $f18 +/* 0F7974 8028E364 46040000 */ add.s $f0, $f0, $f4 +/* 0F7978 8028E368 460C0003 */ div.s $f0, $f0, $f12 +/* 0F797C 8028E36C 46003280 */ add.s $f10, $f6, $f0 +/* 0F7980 8028E370 E70A0000 */ swc1 $f10, ($t8) +/* 0F7984 8028E374 24840001 */ addiu $a0, $a0, 1 +.L8028E378: +/* 0F7988 8028E378 1487FFDC */ bne $a0, $a3, .L8028E2EC +/* 0F798C 8028E37C 24A50DD8 */ addiu $a1, $a1, 0xdd8 +/* 0F7990 8028E380 24190001 */ li $t9, 1 +/* 0F7994 8028E384 3C018016 */ lui $at, %hi(D_8016348C) # $at, 0x8016 +/* 0F7998 8028E388 0C001C3D */ jal func_800070F4 +/* 0F799C 8028E38C A439348C */ sh $t9, %lo(D_8016348C)($at) +/* 0F79A0 8028E390 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F79A4 8028E394 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F79A8 8028E398 03E00008 */ jr $ra +/* 0F79AC 8028E39C 00000000 */ nop \ No newline at end of file diff --git a/asm/non_matchings/code_8028DF00/func_8028E438.s b/asm/non_matchings/code_8028DF00/func_8028E438.s new file mode 100644 index 000000000..e0c8818d0 --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028E438.s @@ -0,0 +1,160 @@ +glabel func_8028E438 +/* 0F7A48 8028E438 24040001 */ li $a0, 1 +/* 0F7A4C 8028E43C 3C078016 */ lui $a3, %hi(D_8015F894) # $a3, 0x8016 +/* 0F7A50 8028E440 3C0E800E */ lui $t6, %hi(D_800DC5E8) # $t6, 0x800e +/* 0F7A54 8028E444 3C01800E */ lui $at, %hi(D_800DC5B0) # $at, 0x800e +/* 0F7A58 8028E448 8DCEC5E8 */ lw $t6, %lo(D_800DC5E8)($t6) +/* 0F7A5C 8028E44C 24E7F894 */ addiu $a3, %lo(D_8015F894) # addiu $a3, $a3, -0x76c +/* 0F7A60 8028E450 A424C5B0 */ sh $a0, %lo(D_800DC5B0)($at) +/* 0F7A64 8028E454 94E30000 */ lhu $v1, ($a3) +/* 0F7A68 8028E458 3C188016 */ lui $t8, %hi(D_8015F480) # $t8, 0x8016 +/* 0F7A6C 8028E45C 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F7A70 8028E460 2718F480 */ addiu $t8, %lo(D_8015F480) # addiu $t8, $t8, -0xb80 +/* 0F7A74 8028E464 000E7980 */ sll $t7, $t6, 6 +/* 0F7A78 8028E468 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F7A7C 8028E46C 10600008 */ beqz $v1, .L8028E490 +/* 0F7A80 8028E470 01F81021 */ addu $v0, $t7, $t8 +/* 0F7A84 8028E474 24010001 */ li $at, 1 +/* 0F7A88 8028E478 10610011 */ beq $v1, $at, .L8028E4C0 +/* 0F7A8C 8028E47C 24010002 */ li $at, 2 +/* 0F7A90 8028E480 5061007A */ beql $v1, $at, .L8028E66C +/* 0F7A94 8028E484 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7A98 8028E488 10000078 */ b .L8028E66C +/* 0F7A9C 8028E48C 8FBF0014 */ lw $ra, 0x14($sp) +.L8028E490: +/* 0F7AA0 8028E490 3C01800E */ lui $at, %hi(D_800DC5B8) # $at, 0x800e +/* 0F7AA4 8028E494 A420C5B8 */ sh $zero, %lo(D_800DC5B8)($at) +/* 0F7AA8 8028E498 A4E40000 */ sh $a0, ($a3) +/* 0F7AAC 8028E49C 3C19800E */ lui $t9, %hi(gPlayerCountSelection1) # $t9, 0x800e +/* 0F7AB0 8028E4A0 8F39C538 */ lw $t9, %lo(gPlayerCountSelection1)($t9) +/* 0F7AB4 8028E4A4 24010003 */ li $at, 3 +/* 0F7AB8 8028E4A8 57210070 */ bnel $t9, $at, .L8028E66C +/* 0F7ABC 8028E4AC 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7AC0 8028E4B0 0C024973 */ jal func_800925CC +/* 0F7AC4 8028E4B4 00000000 */ nop +/* 0F7AC8 8028E4B8 1000006C */ b .L8028E66C +/* 0F7ACC 8028E4BC 8FBF0014 */ lw $ra, 0x14($sp) +.L8028E4C0: +/* 0F7AD0 8028E4C0 8444002C */ lh $a0, 0x2c($v0) +/* 0F7AD4 8028E4C4 28810140 */ slti $at, $a0, 0x140 +/* 0F7AD8 8028E4C8 10200002 */ beqz $at, .L8028E4D4 +/* 0F7ADC 8028E4CC 24880002 */ addiu $t0, $a0, 2 +/* 0F7AE0 8028E4D0 A448002C */ sh $t0, 0x2c($v0) +.L8028E4D4: +/* 0F7AE4 8028E4D4 8446002E */ lh $a2, 0x2e($v0) +/* 0F7AE8 8028E4D8 28C100F0 */ slti $at, $a2, 0xf0 +/* 0F7AEC 8028E4DC 10200002 */ beqz $at, .L8028E4E8 +/* 0F7AF0 8028E4E0 24C90002 */ addiu $t1, $a2, 2 +/* 0F7AF4 8028E4E4 A449002E */ sh $t1, 0x2e($v0) +.L8028E4E8: +/* 0F7AF8 8028E4E8 84450030 */ lh $a1, 0x30($v0) +/* 0F7AFC 8028E4EC 240F00F0 */ li $t7, 240 +/* 0F7B00 8028E4F0 28A100A0 */ slti $at, $a1, 0xa0 +/* 0F7B04 8028E4F4 10200003 */ beqz $at, .L8028E504 +/* 0F7B08 8028E4F8 24AA0001 */ addiu $t2, $a1, 1 +/* 0F7B0C 8028E4FC 10000005 */ b .L8028E514 +/* 0F7B10 8028E500 A44A0030 */ sh $t2, 0x30($v0) +.L8028E504: +/* 0F7B14 8028E504 28A100A1 */ slti $at, $a1, 0xa1 +/* 0F7B18 8028E508 14200002 */ bnez $at, .L8028E514 +/* 0F7B1C 8028E50C 24ABFFFF */ addiu $t3, $a1, -1 +/* 0F7B20 8028E510 A44B0030 */ sh $t3, 0x30($v0) +.L8028E514: +/* 0F7B24 8028E514 84430032 */ lh $v1, 0x32($v0) +/* 0F7B28 8028E518 24180140 */ li $t8, 320 +/* 0F7B2C 8028E51C 28610078 */ slti $at, $v1, 0x78 +/* 0F7B30 8028E520 10200003 */ beqz $at, .L8028E530 +/* 0F7B34 8028E524 246C0001 */ addiu $t4, $v1, 1 +/* 0F7B38 8028E528 10000005 */ b .L8028E540 +/* 0F7B3C 8028E52C A44C0032 */ sh $t4, 0x32($v0) +.L8028E530: +/* 0F7B40 8028E530 28610079 */ slti $at, $v1, 0x79 +/* 0F7B44 8028E534 14200002 */ bnez $at, .L8028E540 +/* 0F7B48 8028E538 246DFFFF */ addiu $t5, $v1, -1 +/* 0F7B4C 8028E53C A44D0032 */ sh $t5, 0x32($v0) +.L8028E540: +/* 0F7B50 8028E540 844E002E */ lh $t6, 0x2e($v0) +/* 0F7B54 8028E544 00001825 */ move $v1, $zero +/* 0F7B58 8028E548 24080002 */ li $t0, 2 +/* 0F7B5C 8028E54C 29C100F0 */ slti $at, $t6, 0xf0 +/* 0F7B60 8028E550 54200004 */ bnel $at, $zero, .L8028E564 +/* 0F7B64 8028E554 8444002C */ lh $a0, 0x2c($v0) +/* 0F7B68 8028E558 24030001 */ li $v1, 1 +/* 0F7B6C 8028E55C A44F002E */ sh $t7, 0x2e($v0) +/* 0F7B70 8028E560 8444002C */ lh $a0, 0x2c($v0) +.L8028E564: +/* 0F7B74 8028E564 28810140 */ slti $at, $a0, 0x140 +/* 0F7B78 8028E568 54200005 */ bnel $at, $zero, .L8028E580 +/* 0F7B7C 8028E56C 84590032 */ lh $t9, 0x32($v0) +/* 0F7B80 8028E570 A458002C */ sh $t8, 0x2c($v0) +/* 0F7B84 8028E574 8444002C */ lh $a0, 0x2c($v0) +/* 0F7B88 8028E578 24630001 */ addiu $v1, $v1, 1 +/* 0F7B8C 8028E57C 84590032 */ lh $t9, 0x32($v0) +.L8028E580: +/* 0F7B90 8028E580 24010078 */ li $at, 120 +/* 0F7B94 8028E584 8446002E */ lh $a2, 0x2e($v0) +/* 0F7B98 8028E588 17210002 */ bne $t9, $at, .L8028E594 +/* 0F7B9C 8028E58C 84450030 */ lh $a1, 0x30($v0) +/* 0F7BA0 8028E590 24630001 */ addiu $v1, $v1, 1 +.L8028E594: +/* 0F7BA4 8028E594 44842000 */ mtc1 $a0, $f4 +/* 0F7BA8 8028E598 240100A0 */ li $at, 160 +/* 0F7BAC 8028E59C 14A10002 */ bne $a1, $at, .L8028E5A8 +/* 0F7BB0 8028E5A0 468021A0 */ cvt.s.w $f6, $f4 +/* 0F7BB4 8028E5A4 24630001 */ addiu $v1, $v1, 1 +.L8028E5A8: +/* 0F7BB8 8028E5A8 44864000 */ mtc1 $a2, $f8 +/* 0F7BBC 8028E5AC 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015 +/* 0F7BC0 8028E5B0 468042A0 */ cvt.s.w $f10, $f8 +/* 0F7BC4 8028E5B4 460A3403 */ div.s $f16, $f6, $f10 +/* 0F7BC8 8028E5B8 E4300148 */ swc1 $f16, %lo(D_80150148)($at) +/* 0F7BCC 8028E5BC 24010004 */ li $at, 4 +/* 0F7BD0 8028E5C0 5461002A */ bnel $v1, $at, .L8028E66C +/* 0F7BD4 8028E5C4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7BD8 8028E5C8 A4E80000 */ sh $t0, ($a3) +/* 0F7BDC 8028E5CC 3C01800E */ lui $at, %hi(D_800DC52C) # $at, 0x800e +/* 0F7BE0 8028E5D0 3C03800E */ lui $v1, %hi(D_800DC5EC) # $v1, 0x800e +/* 0F7BE4 8028E5D4 AC20C52C */ sw $zero, %lo(D_800DC52C)($at) +/* 0F7BE8 8028E5D8 2463C5EC */ addiu $v1, %lo(D_800DC5EC) # addiu $v1, $v1, -0x3a14 +/* 0F7BEC 8028E5DC 8C6A0000 */ lw $t2, ($v1) +/* 0F7BF0 8028E5E0 8449002C */ lh $t1, 0x2c($v0) +/* 0F7BF4 8028E5E4 3C04800E */ lui $a0, %hi(gModeSelection) # $a0, 0x800e +/* 0F7BF8 8028E5E8 24010003 */ li $at, 3 +/* 0F7BFC 8028E5EC A549002C */ sh $t1, 0x2c($t2) +/* 0F7C00 8028E5F0 8C6C0000 */ lw $t4, ($v1) +/* 0F7C04 8028E5F4 844B002E */ lh $t3, 0x2e($v0) +/* 0F7C08 8028E5F8 A58B002E */ sh $t3, 0x2e($t4) +/* 0F7C0C 8028E5FC 8C6E0000 */ lw $t6, ($v1) +/* 0F7C10 8028E600 844D0030 */ lh $t5, 0x30($v0) +/* 0F7C14 8028E604 A5CD0030 */ sh $t5, 0x30($t6) +/* 0F7C18 8028E608 8C780000 */ lw $t8, ($v1) +/* 0F7C1C 8028E60C 844F0032 */ lh $t7, 0x32($v0) +/* 0F7C20 8028E610 A70F0032 */ sh $t7, 0x32($t8) +/* 0F7C24 8028E614 8C84C53C */ lw $a0, %lo(gModeSelection)($a0) +/* 0F7C28 8028E618 54810006 */ bnel $a0, $at, .L8028E634 +/* 0F7C2C 8028E61C 24010002 */ li $at, 2 +/* 0F7C30 8028E620 0C024981 */ jal func_80092604 +/* 0F7C34 8028E624 00000000 */ nop +/* 0F7C38 8028E628 10000010 */ b .L8028E66C +/* 0F7C3C 8028E62C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7C40 8028E630 24010002 */ li $at, 2 +.L8028E634: +/* 0F7C44 8028E634 14810007 */ bne $a0, $at, .L8028E654 +/* 0F7C48 8028E638 00000000 */ nop +/* 0F7C4C 8028E63C 0C024981 */ jal func_80092604 +/* 0F7C50 8028E640 00000000 */ nop +/* 0F7C54 8028E644 0C00677D */ jal func_80019DF4 +/* 0F7C58 8028E648 00000000 */ nop +/* 0F7C5C 8028E64C 10000007 */ b .L8028E66C +/* 0F7C60 8028E650 8FBF0014 */ lw $ra, 0x14($sp) +.L8028E654: +/* 0F7C64 8028E654 0C024959 */ jal func_80092564 +/* 0F7C68 8028E658 00000000 */ nop +/* 0F7C6C 8028E65C 24190007 */ li $t9, 7 +/* 0F7C70 8028E660 3C01800E */ lui $at, %hi(D_800DC510) # $at, 0x800e +/* 0F7C74 8028E664 AC39C510 */ sw $t9, %lo(D_800DC510)($at) +/* 0F7C78 8028E668 8FBF0014 */ lw $ra, 0x14($sp) +.L8028E66C: +/* 0F7C7C 8028E66C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F7C80 8028E670 03E00008 */ jr $ra +/* 0F7C84 8028E674 00000000 */ nop diff --git a/asm/non_matchings/code_8028DF00/func_8028E678.s b/asm/non_matchings/code_8028DF00/func_8028E678.s new file mode 100644 index 000000000..170077d18 --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028E678.s @@ -0,0 +1,400 @@ +glabel func_8028E678 +/* 0F7C88 8028E678 24030001 */ li $v1, 1 +/* 0F7C8C 8028E67C 3C078016 */ lui $a3, %hi(D_8015F894) # $a3, 0x8016 +/* 0F7C90 8028E680 3C01800E */ lui $at, %hi(D_800DC5B0) # $at, 0x800e +/* 0F7C94 8028E684 24E7F894 */ addiu $a3, %lo(D_8015F894) # addiu $a3, $a3, -0x76c +/* 0F7C98 8028E688 A423C5B0 */ sh $v1, %lo(D_800DC5B0)($at) +/* 0F7C9C 8028E68C 94EE0000 */ lhu $t6, ($a3) +/* 0F7CA0 8028E690 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F7CA4 8028E694 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F7CA8 8028E698 2DC10008 */ sltiu $at, $t6, 8 +/* 0F7CAC 8028E69C 10200162 */ beqz $at, .L8028EC28 +/* 0F7CB0 8028E6A0 00002025 */ move $a0, $zero +/* 0F7CB4 8028E6A4 000E7080 */ sll $t6, $t6, 2 +/* 0F7CB8 8028E6A8 3C01802C */ lui $at, %hi(D_802B91E0) +/* 0F7CBC 8028E6AC 002E0821 */ addu $at, $at, $t6 +/* 0F7CC0 8028E6B0 8C2E91E0 */ lw $t6, %lo(D_802B91E0)($at) +/* 0F7CC4 8028E6B4 01C00008 */ jr $t6 +/* 0F7CC8 8028E6B8 00000000 */ nop +glabel L8028E6BC +/* 0F7CCC 8028E6BC 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e +/* 0F7CD0 8028E6C0 8C42C53C */ lw $v0, %lo(gModeSelection)($v0) +/* 0F7CD4 8028E6C4 10400000 */ beqz $v0, .L8028E6C8 +.L8028E6C8: +/* 0F7CD8 8028E6C8 3C02800E */ lui $v0, %hi(D_800DC530) # $v0, 0x800e +/* 0F7CDC 8028E6CC 8C42C530 */ lw $v0, %lo(D_800DC530)($v0) +/* 0F7CE0 8028E6D0 3C01800E */ lui $at, %hi(D_800DC5B8) # $at, 0x800e +/* 0F7CE4 8028E6D4 A420C5B8 */ sh $zero, %lo(D_800DC5B8)($at) +/* 0F7CE8 8028E6D8 10400008 */ beqz $v0, .L8028E6FC +/* 0F7CEC 8028E6DC 24010001 */ li $at, 1 +/* 0F7CF0 8028E6E0 10410008 */ beq $v0, $at, .L8028E704 +/* 0F7CF4 8028E6E4 240F0005 */ li $t7, 5 +/* 0F7CF8 8028E6E8 24010002 */ li $at, 2 +/* 0F7CFC 8028E6EC 10410007 */ beq $v0, $at, .L8028E70C +/* 0F7D00 8028E6F0 24180006 */ li $t8, 6 +/* 0F7D04 8028E6F4 1000014D */ b .L8028EC2C +/* 0F7D08 8028E6F8 8FBF0014 */ lw $ra, 0x14($sp) +.L8028E6FC: +/* 0F7D0C 8028E6FC 1000014A */ b .L8028EC28 +/* 0F7D10 8028E700 A4E30000 */ sh $v1, ($a3) +.L8028E704: +/* 0F7D14 8028E704 10000148 */ b .L8028EC28 +/* 0F7D18 8028E708 A4EF0000 */ sh $t7, ($a3) +.L8028E70C: +/* 0F7D1C 8028E70C 10000146 */ b .L8028EC28 +/* 0F7D20 8028E710 A4F80000 */ sh $t8, ($a3) +glabel L8028E714 +/* 0F7D24 8028E714 3C05800E */ lui $a1, %hi(D_800DC5EC) # $a1, 0x800e +/* 0F7D28 8028E718 24A5C5EC */ addiu $a1, %lo(D_800DC5EC) # addiu $a1, $a1, -0x3a14 +/* 0F7D2C 8028E71C 8CA20000 */ lw $v0, ($a1) +/* 0F7D30 8028E720 3C06800E */ lui $a2, %hi(D_800DC5F0) # $a2, 0x800e +/* 0F7D34 8028E724 24C6C5F0 */ addiu $a2, %lo(D_800DC5F0) # addiu $a2, $a2, -0x3a10 +/* 0F7D38 8028E728 8459002C */ lh $t9, 0x2c($v0) +/* 0F7D3C 8028E72C 240800F0 */ li $t0, 240 +/* 0F7D40 8028E730 2729FFFC */ addiu $t1, $t9, -4 +/* 0F7D44 8028E734 A449002C */ sh $t1, 0x2c($v0) +/* 0F7D48 8028E738 8CC30000 */ lw $v1, ($a2) +/* 0F7D4C 8028E73C 241900A0 */ li $t9, 160 +/* 0F7D50 8028E740 846A002C */ lh $t2, 0x2c($v1) +/* 0F7D54 8028E744 254BFFFC */ addiu $t3, $t2, -4 +/* 0F7D58 8028E748 A46B002C */ sh $t3, 0x2c($v1) +/* 0F7D5C 8028E74C 8CA20000 */ lw $v0, ($a1) +/* 0F7D60 8028E750 240A00A0 */ li $t2, 160 +/* 0F7D64 8028E754 844C0030 */ lh $t4, 0x30($v0) +/* 0F7D68 8028E758 258DFFFE */ addiu $t5, $t4, -2 +/* 0F7D6C 8028E75C A44D0030 */ sh $t5, 0x30($v0) +/* 0F7D70 8028E760 8CC30000 */ lw $v1, ($a2) +/* 0F7D74 8028E764 240C0050 */ li $t4, 80 +/* 0F7D78 8028E768 846E0030 */ lh $t6, 0x30($v1) +/* 0F7D7C 8028E76C 25CF0002 */ addiu $t7, $t6, 2 +/* 0F7D80 8028E770 A46F0030 */ sh $t7, 0x30($v1) +/* 0F7D84 8028E774 8CA20000 */ lw $v0, ($a1) +/* 0F7D88 8028E778 8458002C */ lh $t8, 0x2c($v0) +/* 0F7D8C 8028E77C 2B0100A0 */ slti $at, $t8, 0xa0 +/* 0F7D90 8028E780 10200003 */ beqz $at, .L8028E790 +/* 0F7D94 8028E784 24180003 */ li $t8, 3 +/* 0F7D98 8028E788 A459002C */ sh $t9, 0x2c($v0) +/* 0F7D9C 8028E78C 24040001 */ li $a0, 1 +.L8028E790: +/* 0F7DA0 8028E790 8CC30000 */ lw $v1, ($a2) +/* 0F7DA4 8028E794 8469002C */ lh $t1, 0x2c($v1) +/* 0F7DA8 8028E798 292100A0 */ slti $at, $t1, 0xa0 +/* 0F7DAC 8028E79C 50200004 */ beql $at, $zero, .L8028E7B0 +/* 0F7DB0 8028E7A0 8CA20000 */ lw $v0, ($a1) +/* 0F7DB4 8028E7A4 A46A002C */ sh $t2, 0x2c($v1) +/* 0F7DB8 8028E7A8 24840001 */ addiu $a0, $a0, 1 +/* 0F7DBC 8028E7AC 8CA20000 */ lw $v0, ($a1) +.L8028E7B0: +/* 0F7DC0 8028E7B0 844B0030 */ lh $t3, 0x30($v0) +/* 0F7DC4 8028E7B4 29610050 */ slti $at, $t3, 0x50 +/* 0F7DC8 8028E7B8 50200004 */ beql $at, $zero, .L8028E7CC +/* 0F7DCC 8028E7BC 8CC30000 */ lw $v1, ($a2) +/* 0F7DD0 8028E7C0 A44C0030 */ sh $t4, 0x30($v0) +/* 0F7DD4 8028E7C4 24840001 */ addiu $a0, $a0, 1 +/* 0F7DD8 8028E7C8 8CC30000 */ lw $v1, ($a2) +.L8028E7CC: +/* 0F7DDC 8028E7CC 846D0030 */ lh $t5, 0x30($v1) +/* 0F7DE0 8028E7D0 29A100F1 */ slti $at, $t5, 0xf1 +/* 0F7DE4 8028E7D4 54200004 */ bnel $at, $zero, .L8028E7E8 +/* 0F7DE8 8028E7D8 8CA20000 */ lw $v0, ($a1) +/* 0F7DEC 8028E7DC A4680030 */ sh $t0, 0x30($v1) +/* 0F7DF0 8028E7E0 24840001 */ addiu $a0, $a0, 1 +/* 0F7DF4 8028E7E4 8CA20000 */ lw $v0, ($a1) +.L8028E7E8: +/* 0F7DF8 8028E7E8 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015 +/* 0F7DFC 8028E7EC 844E002C */ lh $t6, 0x2c($v0) +/* 0F7E00 8028E7F0 844F002E */ lh $t7, 0x2e($v0) +/* 0F7E04 8028E7F4 448E2000 */ mtc1 $t6, $f4 +/* 0F7E08 8028E7F8 448F4000 */ mtc1 $t7, $f8 +/* 0F7E0C 8028E7FC 468021A0 */ cvt.s.w $f6, $f4 +/* 0F7E10 8028E800 468042A0 */ cvt.s.w $f10, $f8 +/* 0F7E14 8028E804 460A3403 */ div.s $f16, $f6, $f10 +/* 0F7E18 8028E808 E4300148 */ swc1 $f16, %lo(D_80150148)($at) +/* 0F7E1C 8028E80C 24010004 */ li $at, 4 +/* 0F7E20 8028E810 54810106 */ bnel $a0, $at, .L8028EC2C +/* 0F7E24 8028E814 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7E28 8028E818 0C024940 */ jal func_80092500 +/* 0F7E2C 8028E81C A4F80000 */ sh $t8, ($a3) +/* 0F7E30 8028E820 0C006779 */ jal func_80019DE4 +/* 0F7E34 8028E824 00000000 */ nop +/* 0F7E38 8028E828 0C010749 */ jal func_80041D24 +/* 0F7E3C 8028E82C 00000000 */ nop +/* 0F7E40 8028E830 100000FE */ b .L8028EC2C +/* 0F7E44 8028E834 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028E838 +/* 0F7E48 8028E838 3C05800E */ lui $a1, %hi(D_800DC5EC) # $a1, 0x800e +/* 0F7E4C 8028E83C 24A5C5EC */ addiu $a1, %lo(D_800DC5EC) # addiu $a1, $a1, -0x3a14 +/* 0F7E50 8028E840 8CA20000 */ lw $v0, ($a1) +/* 0F7E54 8028E844 3C06800E */ lui $a2, %hi(D_800DC5F0) # $a2, 0x800e +/* 0F7E58 8028E848 24C6C5F0 */ addiu $a2, %lo(D_800DC5F0) # addiu $a2, $a2, -0x3a10 +/* 0F7E5C 8028E84C 8459002E */ lh $t9, 0x2e($v0) +/* 0F7E60 8028E850 2729FFFC */ addiu $t1, $t9, -4 +/* 0F7E64 8028E854 A449002E */ sh $t1, 0x2e($v0) +/* 0F7E68 8028E858 8CC30000 */ lw $v1, ($a2) +/* 0F7E6C 8028E85C 24190078 */ li $t9, 120 +/* 0F7E70 8028E860 846A002E */ lh $t2, 0x2e($v1) +/* 0F7E74 8028E864 254BFFFC */ addiu $t3, $t2, -4 +/* 0F7E78 8028E868 A46B002E */ sh $t3, 0x2e($v1) +/* 0F7E7C 8028E86C 8CA20000 */ lw $v0, ($a1) +/* 0F7E80 8028E870 240A0078 */ li $t2, 120 +/* 0F7E84 8028E874 844C0032 */ lh $t4, 0x32($v0) +/* 0F7E88 8028E878 258DFFFE */ addiu $t5, $t4, -2 +/* 0F7E8C 8028E87C A44D0032 */ sh $t5, 0x32($v0) +/* 0F7E90 8028E880 8CC30000 */ lw $v1, ($a2) +/* 0F7E94 8028E884 240C003C */ li $t4, 60 +/* 0F7E98 8028E888 846E0032 */ lh $t6, 0x32($v1) +/* 0F7E9C 8028E88C 25CF0002 */ addiu $t7, $t6, 2 +/* 0F7EA0 8028E890 A46F0032 */ sh $t7, 0x32($v1) +/* 0F7EA4 8028E894 8CA20000 */ lw $v0, ($a1) +/* 0F7EA8 8028E898 240E00B4 */ li $t6, 180 +/* 0F7EAC 8028E89C 8458002E */ lh $t8, 0x2e($v0) +/* 0F7EB0 8028E8A0 2B010078 */ slti $at, $t8, 0x78 +/* 0F7EB4 8028E8A4 50200004 */ beql $at, $zero, .L8028E8B8 +/* 0F7EB8 8028E8A8 8CC30000 */ lw $v1, ($a2) +/* 0F7EBC 8028E8AC A459002E */ sh $t9, 0x2e($v0) +/* 0F7EC0 8028E8B0 24040001 */ li $a0, 1 +/* 0F7EC4 8028E8B4 8CC30000 */ lw $v1, ($a2) +.L8028E8B8: +/* 0F7EC8 8028E8B8 24190003 */ li $t9, 3 +/* 0F7ECC 8028E8BC 8469002E */ lh $t1, 0x2e($v1) +/* 0F7ED0 8028E8C0 29210078 */ slti $at, $t1, 0x78 +/* 0F7ED4 8028E8C4 50200004 */ beql $at, $zero, .L8028E8D8 +/* 0F7ED8 8028E8C8 8CA20000 */ lw $v0, ($a1) +/* 0F7EDC 8028E8CC A46A002E */ sh $t2, 0x2e($v1) +/* 0F7EE0 8028E8D0 24840001 */ addiu $a0, $a0, 1 +/* 0F7EE4 8028E8D4 8CA20000 */ lw $v0, ($a1) +.L8028E8D8: +/* 0F7EE8 8028E8D8 844B0032 */ lh $t3, 0x32($v0) +/* 0F7EEC 8028E8DC 2961003C */ slti $at, $t3, 0x3c +/* 0F7EF0 8028E8E0 50200004 */ beql $at, $zero, .L8028E8F4 +/* 0F7EF4 8028E8E4 8CC30000 */ lw $v1, ($a2) +/* 0F7EF8 8028E8E8 A44C0032 */ sh $t4, 0x32($v0) +/* 0F7EFC 8028E8EC 24840001 */ addiu $a0, $a0, 1 +/* 0F7F00 8028E8F0 8CC30000 */ lw $v1, ($a2) +.L8028E8F4: +/* 0F7F04 8028E8F4 846D0032 */ lh $t5, 0x32($v1) +/* 0F7F08 8028E8F8 29A100B5 */ slti $at, $t5, 0xb5 +/* 0F7F0C 8028E8FC 54200004 */ bnel $at, $zero, .L8028E910 +/* 0F7F10 8028E900 8CA20000 */ lw $v0, ($a1) +/* 0F7F14 8028E904 A46E0032 */ sh $t6, 0x32($v1) +/* 0F7F18 8028E908 24840001 */ addiu $a0, $a0, 1 +/* 0F7F1C 8028E90C 8CA20000 */ lw $v0, ($a1) +.L8028E910: +/* 0F7F20 8028E910 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015 +/* 0F7F24 8028E914 844F002C */ lh $t7, 0x2c($v0) +/* 0F7F28 8028E918 8458002E */ lh $t8, 0x2e($v0) +/* 0F7F2C 8028E91C 448F9000 */ mtc1 $t7, $f18 +/* 0F7F30 8028E920 44984000 */ mtc1 $t8, $f8 +/* 0F7F34 8028E924 46809120 */ cvt.s.w $f4, $f18 +/* 0F7F38 8028E928 468041A0 */ cvt.s.w $f6, $f8 +/* 0F7F3C 8028E92C 46062283 */ div.s $f10, $f4, $f6 +/* 0F7F40 8028E930 E42A0148 */ swc1 $f10, %lo(D_80150148)($at) +/* 0F7F44 8028E934 24010004 */ li $at, 4 +/* 0F7F48 8028E938 548100BC */ bnel $a0, $at, .L8028EC2C +/* 0F7F4C 8028E93C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7F50 8028E940 0C024940 */ jal func_80092500 +/* 0F7F54 8028E944 A4F90000 */ sh $t9, ($a3) +/* 0F7F58 8028E948 0C006779 */ jal func_80019DE4 +/* 0F7F5C 8028E94C 00000000 */ nop +/* 0F7F60 8028E950 100000B6 */ b .L8028EC2C +/* 0F7F64 8028E954 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028E958 +/* 0F7F68 8028E958 3C05800E */ lui $a1, %hi(D_800DC5EC) # $a1, 0x800e +/* 0F7F6C 8028E95C 24A5C5EC */ addiu $a1, %lo(D_800DC5EC) # addiu $a1, $a1, -0x3a14 +/* 0F7F70 8028E960 8CA20000 */ lw $v0, ($a1) +/* 0F7F74 8028E964 24030140 */ li $v1, 320 +/* 0F7F78 8028E968 240800F0 */ li $t0, 240 +/* 0F7F7C 8028E96C 8449002E */ lh $t1, 0x2e($v0) +/* 0F7F80 8028E970 240F0078 */ li $t7, 120 +/* 0F7F84 8028E974 252AFFFE */ addiu $t2, $t1, -2 +/* 0F7F88 8028E978 A44A002E */ sh $t2, 0x2e($v0) +/* 0F7F8C 8028E97C 8CA20000 */ lw $v0, ($a1) +/* 0F7F90 8028E980 844B002E */ lh $t3, 0x2e($v0) +/* 0F7F94 8028E984 01630019 */ multu $t3, $v1 +/* 0F7F98 8028E988 00006012 */ mflo $t4 +/* 0F7F9C 8028E98C 00000000 */ nop +/* 0F7FA0 8028E990 00000000 */ nop +/* 0F7FA4 8028E994 0188001A */ div $zero, $t4, $t0 +/* 0F7FA8 8028E998 00006812 */ mflo $t5 +/* 0F7FAC 8028E99C A44D002C */ sh $t5, 0x2c($v0) +/* 0F7FB0 8028E9A0 8CA20000 */ lw $v0, ($a1) +/* 0F7FB4 8028E9A4 15000002 */ bnez $t0, .L8028E9B0 +/* 0F7FB8 8028E9A8 00000000 */ nop +/* 0F7FBC 8028E9AC 0007000D */ break 7 +.L8028E9B0: +/* 0F7FC0 8028E9B0 2401FFFF */ li $at, -1 +/* 0F7FC4 8028E9B4 15010004 */ bne $t0, $at, .L8028E9C8 +/* 0F7FC8 8028E9B8 3C018000 */ lui $at, 0x8000 +/* 0F7FCC 8028E9BC 15810002 */ bne $t4, $at, .L8028E9C8 +/* 0F7FD0 8028E9C0 00000000 */ nop +/* 0F7FD4 8028E9C4 0006000D */ break 6 +.L8028E9C8: +/* 0F7FD8 8028E9C8 844E002E */ lh $t6, 0x2e($v0) +/* 0F7FDC 8028E9CC 29C10078 */ slti $at, $t6, 0x78 +/* 0F7FE0 8028E9D0 50200096 */ beql $at, $zero, .L8028EC2C +/* 0F7FE4 8028E9D4 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F7FE8 8028E9D8 A44F002E */ sh $t7, 0x2e($v0) +/* 0F7FEC 8028E9DC 8CA20000 */ lw $v0, ($a1) +/* 0F7FF0 8028E9E0 3C06800E */ lui $a2, %hi(D_800DC5F0) # $a2, 0x800e +/* 0F7FF4 8028E9E4 240A0002 */ li $t2, 2 +/* 0F7FF8 8028E9E8 8458002E */ lh $t8, 0x2e($v0) +/* 0F7FFC 8028E9EC 24C6C5F0 */ addiu $a2, %lo(D_800DC5F0) # addiu $a2, $a2, -0x3a10 +/* 0F8000 8028E9F0 03030019 */ multu $t8, $v1 +/* 0F8004 8028E9F4 0000C812 */ mflo $t9 +/* 0F8008 8028E9F8 00000000 */ nop +/* 0F800C 8028E9FC 00000000 */ nop +/* 0F8010 8028EA00 0328001A */ div $zero, $t9, $t0 +/* 0F8014 8028EA04 00004812 */ mflo $t1 +/* 0F8018 8028EA08 A449002C */ sh $t1, 0x2c($v0) +/* 0F801C 8028EA0C 8CAB0000 */ lw $t3, ($a1) +/* 0F8020 8028EA10 A4EA0000 */ sh $t2, ($a3) +/* 0F8024 8028EA14 8CCD0000 */ lw $t5, ($a2) +/* 0F8028 8028EA18 856C002C */ lh $t4, 0x2c($t3) +/* 0F802C 8028EA1C 15000002 */ bnez $t0, .L8028EA28 +/* 0F8030 8028EA20 00000000 */ nop +/* 0F8034 8028EA24 0007000D */ break 7 +.L8028EA28: +/* 0F8038 8028EA28 2401FFFF */ li $at, -1 +/* 0F803C 8028EA2C 15010004 */ bne $t0, $at, .L8028EA40 +/* 0F8040 8028EA30 3C018000 */ lui $at, 0x8000 +/* 0F8044 8028EA34 17210002 */ bne $t9, $at, .L8028EA40 +/* 0F8048 8028EA38 00000000 */ nop +/* 0F804C 8028EA3C 0006000D */ break 6 +.L8028EA40: +/* 0F8050 8028EA40 A5AC002C */ sh $t4, 0x2c($t5) +/* 0F8054 8028EA44 8CAE0000 */ lw $t6, ($a1) +/* 0F8058 8028EA48 8CD80000 */ lw $t8, ($a2) +/* 0F805C 8028EA4C 3C01800E */ lui $at, %hi(D_800DC52C) # $at, 0x800e +/* 0F8060 8028EA50 85CF002E */ lh $t7, 0x2e($t6) +/* 0F8064 8028EA54 240E0002 */ li $t6, 2 +/* 0F8068 8028EA58 A70F002E */ sh $t7, 0x2e($t8) +/* 0F806C 8028EA5C 8CB90000 */ lw $t9, ($a1) +/* 0F8070 8028EA60 8CCA0000 */ lw $t2, ($a2) +/* 0F8074 8028EA64 240F0002 */ li $t7, 2 +/* 0F8078 8028EA68 87290030 */ lh $t1, 0x30($t9) +/* 0F807C 8028EA6C A5490030 */ sh $t1, 0x30($t2) +/* 0F8080 8028EA70 8CAB0000 */ lw $t3, ($a1) +/* 0F8084 8028EA74 8CCD0000 */ lw $t5, ($a2) +/* 0F8088 8028EA78 856C0032 */ lh $t4, 0x32($t3) +/* 0F808C 8028EA7C A5AC0032 */ sh $t4, 0x32($t5) +/* 0F8090 8028EA80 AC2EC52C */ sw $t6, %lo(D_800DC52C)($at) +/* 0F8094 8028EA84 3C01802C */ lui $at, %hi(D_802B9200) # $at, 0x802c +/* 0F8098 8028EA88 C4309200 */ lwc1 $f16, %lo(D_802B9200)($at) +/* 0F809C 8028EA8C 3C018015 */ lui $at, %hi(D_80150148) # $at, 0x8015 +/* 0F80A0 8028EA90 E4300148 */ swc1 $f16, %lo(D_80150148)($at) +/* 0F80A4 8028EA94 3C01800E */ lui $at, %hi(gPlayerCountSelection1) # $at, 0x800e +/* 0F80A8 8028EA98 0C00F6D7 */ jal func_8003DB5C +/* 0F80AC 8028EA9C AC2FC538 */ sw $t7, %lo(gPlayerCountSelection1)($at) +/* 0F80B0 8028EAA0 0C016653 */ jal func_8005994C +/* 0F80B4 8028EAA4 00000000 */ nop +/* 0F80B8 8028EAA8 10000060 */ b .L8028EC2C +/* 0F80BC 8028EAAC 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028EAB0 +/* 0F80C0 8028EAB0 3C05800E */ lui $a1, %hi(D_800DC5EC) # $a1, 0x800e +/* 0F80C4 8028EAB4 24A5C5EC */ addiu $a1, %lo(D_800DC5EC) # addiu $a1, $a1, -0x3a14 +/* 0F80C8 8028EAB8 8CA20000 */ lw $v0, ($a1) +/* 0F80CC 8028EABC 3C06800E */ lui $a2, %hi(D_800DC5F0) # $a2, 0x800e +/* 0F80D0 8028EAC0 240C0050 */ li $t4, 80 +/* 0F80D4 8028EAC4 84580030 */ lh $t8, 0x30($v0) +/* 0F80D8 8028EAC8 240E003C */ li $t6, 60 +/* 0F80DC 8028EACC 24C6C5F0 */ addiu $a2, %lo(D_800DC5F0) # addiu $a2, $a2, -0x3a10 +/* 0F80E0 8028EAD0 2719FFFC */ addiu $t9, $t8, -4 +/* 0F80E4 8028EAD4 A4590030 */ sh $t9, 0x30($v0) +/* 0F80E8 8028EAD8 8CA20000 */ lw $v0, ($a1) +/* 0F80EC 8028EADC 240800F0 */ li $t0, 240 +/* 0F80F0 8028EAE0 84490032 */ lh $t1, 0x32($v0) +/* 0F80F4 8028EAE4 252AFFFE */ addiu $t2, $t1, -2 +/* 0F80F8 8028EAE8 A44A0032 */ sh $t2, 0x32($v0) +/* 0F80FC 8028EAEC 8CA20000 */ lw $v0, ($a1) +/* 0F8100 8028EAF0 844B0030 */ lh $t3, 0x30($v0) +/* 0F8104 8028EAF4 29610050 */ slti $at, $t3, 0x50 +/* 0F8108 8028EAF8 50200006 */ beql $at, $zero, .L8028EB14 +/* 0F810C 8028EAFC 844D0032 */ lh $t5, 0x32($v0) +/* 0F8110 8028EB00 A44C0030 */ sh $t4, 0x30($v0) +/* 0F8114 8028EB04 3C02800E */ lui $v0, %hi(D_800DC5EC) # $v0, 0x800e +/* 0F8118 8028EB08 8C42C5EC */ lw $v0, %lo(D_800DC5EC)($v0) +/* 0F811C 8028EB0C 24040001 */ li $a0, 1 +/* 0F8120 8028EB10 844D0032 */ lh $t5, 0x32($v0) +.L8028EB14: +/* 0F8124 8028EB14 240C00B4 */ li $t4, 180 +/* 0F8128 8028EB18 29A1003C */ slti $at, $t5, 0x3c +/* 0F812C 8028EB1C 10200003 */ beqz $at, .L8028EB2C +/* 0F8130 8028EB20 240D0007 */ li $t5, 7 +/* 0F8134 8028EB24 A44E0032 */ sh $t6, 0x32($v0) +/* 0F8138 8028EB28 24840001 */ addiu $a0, $a0, 1 +.L8028EB2C: +/* 0F813C 8028EB2C 8CC30000 */ lw $v1, ($a2) +/* 0F8140 8028EB30 3C02802C */ lui $v0, %hi(D_802BA030) # $v0, 0x802c +/* 0F8144 8028EB34 2442A030 */ addiu $v0, %lo(D_802BA030) # addiu $v0, $v0, -0x5fd0 +/* 0F8148 8028EB38 846F0030 */ lh $t7, 0x30($v1) +/* 0F814C 8028EB3C 240E0003 */ li $t6, 3 +/* 0F8150 8028EB40 25F80004 */ addiu $t8, $t7, 4 +/* 0F8154 8028EB44 A4780030 */ sh $t8, 0x30($v1) +/* 0F8158 8028EB48 8CC30000 */ lw $v1, ($a2) +/* 0F815C 8028EB4C 84790032 */ lh $t9, 0x32($v1) +/* 0F8160 8028EB50 27290002 */ addiu $t1, $t9, 2 +/* 0F8164 8028EB54 A4690032 */ sh $t1, 0x32($v1) +/* 0F8168 8028EB58 8CC30000 */ lw $v1, ($a2) +/* 0F816C 8028EB5C 846A0030 */ lh $t2, 0x30($v1) +/* 0F8170 8028EB60 294100F1 */ slti $at, $t2, 0xf1 +/* 0F8174 8028EB64 54200006 */ bnel $at, $zero, .L8028EB80 +/* 0F8178 8028EB68 846B0032 */ lh $t3, 0x32($v1) +/* 0F817C 8028EB6C A4680030 */ sh $t0, 0x30($v1) +/* 0F8180 8028EB70 3C03800E */ lui $v1, %hi(D_800DC5F0) # $v1, 0x800e +/* 0F8184 8028EB74 8C63C5F0 */ lw $v1, %lo(D_800DC5F0)($v1) +/* 0F8188 8028EB78 24840001 */ addiu $a0, $a0, 1 +/* 0F818C 8028EB7C 846B0032 */ lh $t3, 0x32($v1) +.L8028EB80: +/* 0F8190 8028EB80 296100B5 */ slti $at, $t3, 0xb5 +/* 0F8194 8028EB84 54200004 */ bnel $at, $zero, .L8028EB98 +/* 0F8198 8028EB88 24010004 */ li $at, 4 +/* 0F819C 8028EB8C A46C0032 */ sh $t4, 0x32($v1) +/* 0F81A0 8028EB90 24840001 */ addiu $a0, $a0, 1 +/* 0F81A4 8028EB94 24010004 */ li $at, 4 +.L8028EB98: +/* 0F81A8 8028EB98 54810024 */ bnel $a0, $at, .L8028EC2C +/* 0F81AC 8028EB9C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F81B0 8028EBA0 A4ED0000 */ sh $t5, ($a3) +/* 0F81B4 8028EBA4 10000020 */ b .L8028EC28 +/* 0F81B8 8028EBA8 A44E0000 */ sh $t6, ($v0) +glabel L8028EBAC +/* 0F81BC 8028EBAC 3C02802C */ lui $v0, %hi(D_802BA030) # $v0, 0x802c +/* 0F81C0 8028EBB0 2442A030 */ addiu $v0, %lo(D_802BA030) # addiu $v0, $v0, -0x5fd0 +/* 0F81C4 8028EBB4 944F0000 */ lhu $t7, ($v0) +/* 0F81C8 8028EBB8 24090003 */ li $t1, 3 +/* 0F81CC 8028EBBC 25F8FFFF */ addiu $t8, $t7, -1 +/* 0F81D0 8028EBC0 3319FFFF */ andi $t9, $t8, 0xffff +/* 0F81D4 8028EBC4 17200018 */ bnez $t9, .L8028EC28 +/* 0F81D8 8028EBC8 A4580000 */ sh $t8, ($v0) +/* 0F81DC 8028EBCC 0C024940 */ jal func_80092500 +/* 0F81E0 8028EBD0 A4E90000 */ sh $t1, ($a3) +/* 0F81E4 8028EBD4 3C0A800E */ lui $t2, %hi(gModeSelection) # $t2, 0x800e +/* 0F81E8 8028EBD8 8D4AC53C */ lw $t2, %lo(gModeSelection)($t2) +/* 0F81EC 8028EBDC 15400005 */ bnez $t2, .L8028EBF4 +/* 0F81F0 8028EBE0 00000000 */ nop +/* 0F81F4 8028EBE4 0C006779 */ jal func_80019DE4 +/* 0F81F8 8028EBE8 00000000 */ nop +/* 0F81FC 8028EBEC 1000000F */ b .L8028EC2C +/* 0F8200 8028EBF0 8FBF0014 */ lw $ra, 0x14($sp) +.L8028EBF4: +/* 0F8204 8028EBF4 0C006796 */ jal func_80019E58 +/* 0F8208 8028EBF8 00000000 */ nop +/* 0F820C 8028EBFC 1000000B */ b .L8028EC2C +/* 0F8210 8028EC00 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028EC04 +/* 0F8214 8028EC04 3C01800E */ lui $at, %hi(D_800DC5C0) # $at, 0x800e +/* 0F8218 8028EC08 A423C5C0 */ sh $v1, %lo(D_800DC5C0)($at) +/* 0F821C 8028EC0C 3C01800E */ lui $at, %hi(D_800DC5C4) # $at, 0x800e +/* 0F8220 8028EC10 240B0005 */ li $t3, 5 +/* 0F8224 8028EC14 A42BC5C4 */ sh $t3, %lo(D_800DC5C4)($at) +/* 0F8228 8028EC18 3C01800E */ lui $at, %hi(D_800DC510) # $at, 0x800e +/* 0F822C 8028EC1C 240C0007 */ li $t4, 7 +/* 0F8230 8028EC20 0C0A38E8 */ jal func_8028E3A0 +/* 0F8234 8028EC24 AC2CC510 */ sw $t4, %lo(D_800DC510)($at) +.L8028EC28: +glabel L8028EC28 +/* 0F8238 8028EC28 8FBF0014 */ lw $ra, 0x14($sp) +.L8028EC2C: +/* 0F823C 8028EC2C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F8240 8028EC30 03E00008 */ jr $ra +/* 0F8244 8028EC34 00000000 */ nop \ No newline at end of file diff --git a/asm/non_matchings/code_8028DF00/func_8028EC98.s b/asm/non_matchings/code_8028DF00/func_8028EC98.s new file mode 100644 index 000000000..9bc5377a9 --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028EC98.s @@ -0,0 +1,83 @@ +glabel func_8028EC98 +/* 0F82A8 8028EC98 3C0E800E */ lui $t6, %hi(D_800DC530) # $t6, 0x800e +/* 0F82AC 8028EC9C 8DCEC530 */ lw $t6, %lo(D_800DC530)($t6) +/* 0F82B0 8028ECA0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F82B4 8028ECA4 24010003 */ li $at, 3 +/* 0F82B8 8028ECA8 AFBF0014 */ sw $ra, 0x14($sp) +/* 0F82BC 8028ECAC 11C1003A */ beq $t6, $at, .L8028ED98 +/* 0F82C0 8028ECB0 AFA40018 */ sw $a0, 0x18($sp) +/* 0F82C4 8028ECB4 0C000A6C */ jal func_800029B0 +/* 0F82C8 8028ECB8 00000000 */ nop +/* 0F82CC 8028ECBC 8FAF0018 */ lw $t7, 0x18($sp) +/* 0F82D0 8028ECC0 2DE10014 */ sltiu $at, $t7, 0x14 +/* 0F82D4 8028ECC4 10200034 */ beqz $at, .L8028ED98 +/* 0F82D8 8028ECC8 000F7880 */ sll $t7, $t7, 2 +/* 0F82DC 8028ECCC 3C01802C */ lui $at, %hi(D_802B9204) +/* 0F82E0 8028ECD0 002F0821 */ addu $at, $at, $t7 +/* 0F82E4 8028ECD4 8C2F9204 */ lw $t7, %lo(D_802B9204)($at) +/* 0F82E8 8028ECD8 01E00008 */ jr $t7 +/* 0F82EC 8028ECDC 00000000 */ nop +glabel L8028ECE0 +/* 0F82F0 8028ECE0 0C0323AB */ jal func_800C8EAC +/* 0F82F4 8028ECE4 24040003 */ li $a0, 3 +/* 0F82F8 8028ECE8 1000002C */ b .L8028ED9C +/* 0F82FC 8028ECEC 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ECF0 +/* 0F8300 8028ECF0 0C0323AB */ jal func_800C8EAC +/* 0F8304 8028ECF4 24040015 */ li $a0, 21 +/* 0F8308 8028ECF8 10000028 */ b .L8028ED9C +/* 0F830C 8028ECFC 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED00 +/* 0F8310 8028ED00 0C0323AB */ jal func_800C8EAC +/* 0F8314 8028ED04 24040004 */ li $a0, 4 +/* 0F8318 8028ED08 10000024 */ b .L8028ED9C +/* 0F831C 8028ED0C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED10 +/* 0F8320 8028ED10 0C0323AB */ jal func_800C8EAC +/* 0F8324 8028ED14 24040005 */ li $a0, 5 +/* 0F8328 8028ED18 10000020 */ b .L8028ED9C +/* 0F832C 8028ED1C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED20 +/* 0F8330 8028ED20 0C0323AB */ jal func_800C8EAC +/* 0F8334 8028ED24 2404000A */ li $a0, 10 +/* 0F8338 8028ED28 1000001C */ b .L8028ED9C +/* 0F833C 8028ED2C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED30 +/* 0F8340 8028ED30 0C0323AB */ jal func_800C8EAC +/* 0F8344 8028ED34 24040006 */ li $a0, 6 +/* 0F8348 8028ED38 10000018 */ b .L8028ED9C +/* 0F834C 8028ED3C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED40 +/* 0F8350 8028ED40 0C0323AB */ jal func_800C8EAC +/* 0F8354 8028ED44 24040009 */ li $a0, 9 +/* 0F8358 8028ED48 10000014 */ b .L8028ED9C +/* 0F835C 8028ED4C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED50 +/* 0F8360 8028ED50 0C0323AB */ jal func_800C8EAC +/* 0F8364 8028ED54 24040007 */ li $a0, 7 +/* 0F8368 8028ED58 10000010 */ b .L8028ED9C +/* 0F836C 8028ED5C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED60 +/* 0F8370 8028ED60 0C0323AB */ jal func_800C8EAC +/* 0F8374 8028ED64 24040008 */ li $a0, 8 +/* 0F8378 8028ED68 1000000C */ b .L8028ED9C +/* 0F837C 8028ED6C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED70 +/* 0F8380 8028ED70 0C0323AB */ jal func_800C8EAC +/* 0F8384 8028ED74 24040012 */ li $a0, 18 +/* 0F8388 8028ED78 10000008 */ b .L8028ED9C +/* 0F838C 8028ED7C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED80 +/* 0F8390 8028ED80 0C0323AB */ jal func_800C8EAC +/* 0F8394 8028ED84 24040013 */ li $a0, 19 +/* 0F8398 8028ED88 10000004 */ b .L8028ED9C +/* 0F839C 8028ED8C 8FBF0014 */ lw $ra, 0x14($sp) +glabel L8028ED90 +/* 0F83A0 8028ED90 0C0323AB */ jal func_800C8EAC +/* 0F83A4 8028ED94 24040019 */ li $a0, 25 +.L8028ED98: +/* 0F83A8 8028ED98 8FBF0014 */ lw $ra, 0x14($sp) +.L8028ED9C: +/* 0F83AC 8028ED9C 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F83B0 8028EDA0 03E00008 */ jr $ra +/* 0F83B4 8028EDA4 00000000 */ nop \ No newline at end of file diff --git a/asm/non_matchings/code_8028DF00/func_8028EDA8.s b/asm/non_matchings/code_8028DF00/func_8028EDA8.s new file mode 100644 index 000000000..6d3b9b9d2 --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028EDA8.s @@ -0,0 +1,65 @@ +glabel func_8028EDA8 +/* 0F83B8 8028EDA8 3C0F800E */ lui $t7, %hi(D_800DC51C) # $t7, 0x800e +/* 0F83BC 8028EDAC 95EFC51C */ lhu $t7, %lo(D_800DC51C)($t7) +/* 0F83C0 8028EDB0 27BDFFE8 */ addiu $sp, $sp, -0x18 +/* 0F83C4 8028EDB4 340EFFFF */ li $t6, 65535 +/* 0F83C8 8028EDB8 3C018015 */ lui $at, %hi(D_8015011E) # $at, 0x8015 +/* 0F83CC 8028EDBC AFBF0014 */ sw $ra, 0x14($sp) +/* 0F83D0 8028EDC0 15E00004 */ bnez $t7, .L8028EDD4 +/* 0F83D4 8028EDC4 A42E011E */ sh $t6, %lo(D_8015011E)($at) +/* 0F83D8 8028EDC8 3C04800E */ lui $a0, %hi(gCurrentCourseId) # $a0, 0x800e +/* 0F83DC 8028EDCC 0C0A3B26 */ jal func_8028EC98 +/* 0F83E0 8028EDD0 8484C5A0 */ lh $a0, %lo(gCurrentCourseId)($a0) +.L8028EDD4: +/* 0F83E4 8028EDD4 3C02800E */ lui $v0, %hi(D_800DC510) # $v0, 0x800e +/* 0F83E8 8028EDD8 2442C510 */ addiu $v0, %lo(D_800DC510) # addiu $v0, $v0, -0x3af0 +/* 0F83EC 8028EDDC 8C580000 */ lw $t8, ($v0) +/* 0F83F0 8028EDE0 24010002 */ li $at, 2 +/* 0F83F4 8028EDE4 3C03800F */ lui $v1, %hi(D_800F6990) # $v1, 0x800f +/* 0F83F8 8028EDE8 17010003 */ bne $t8, $at, .L8028EDF8 +/* 0F83FC 8028EDEC 24636990 */ addiu $v1, %lo(D_800F6990) # addiu $v1, $v1, 0x6990 +/* 0F8400 8028EDF0 24190003 */ li $t9, 3 +/* 0F8404 8028EDF4 AC590000 */ sw $t9, ($v0) +.L8028EDF8: +/* 0F8408 8028EDF8 3C048010 */ lui $a0, %hi(D_800FD850) # $a0, 0x8010 +/* 0F840C 8028EDFC 2484D850 */ addiu $a0, %lo(D_800FD850) # addiu $a0, $a0, -0x27b0 +/* 0F8410 8028EE00 94620000 */ lhu $v0, ($v1) +.L8028EE04: +/* 0F8414 8028EE04 30488000 */ andi $t0, $v0, 0x8000 +/* 0F8418 8028EE08 11000004 */ beqz $t0, .L8028EE1C +/* 0F841C 8028EE0C 30492000 */ andi $t1, $v0, 0x2000 +/* 0F8420 8028EE10 11200002 */ beqz $t1, .L8028EE1C +/* 0F8424 8028EE14 384A2000 */ xori $t2, $v0, 0x2000 +/* 0F8428 8028EE18 A46A0000 */ sh $t2, ($v1) +.L8028EE1C: +/* 0F842C 8028EE1C 94620DD8 */ lhu $v0, 0xdd8($v1) +/* 0F8430 8028EE20 304B8000 */ andi $t3, $v0, 0x8000 +/* 0F8434 8028EE24 11600004 */ beqz $t3, .L8028EE38 +/* 0F8438 8028EE28 304C2000 */ andi $t4, $v0, 0x2000 +/* 0F843C 8028EE2C 11800002 */ beqz $t4, .L8028EE38 +/* 0F8440 8028EE30 384D2000 */ xori $t5, $v0, 0x2000 +/* 0F8444 8028EE34 A46D0DD8 */ sh $t5, 0xdd8($v1) +.L8028EE38: +/* 0F8448 8028EE38 94621BB0 */ lhu $v0, 0x1bb0($v1) +/* 0F844C 8028EE3C 304E8000 */ andi $t6, $v0, 0x8000 +/* 0F8450 8028EE40 11C00004 */ beqz $t6, .L8028EE54 +/* 0F8454 8028EE44 304F2000 */ andi $t7, $v0, 0x2000 +/* 0F8458 8028EE48 11E00002 */ beqz $t7, .L8028EE54 +/* 0F845C 8028EE4C 38582000 */ xori $t8, $v0, 0x2000 +/* 0F8460 8028EE50 A4781BB0 */ sh $t8, 0x1bb0($v1) +.L8028EE54: +/* 0F8464 8028EE54 94622988 */ lhu $v0, 0x2988($v1) +/* 0F8468 8028EE58 30598000 */ andi $t9, $v0, 0x8000 +/* 0F846C 8028EE5C 13200004 */ beqz $t9, .L8028EE70 +/* 0F8470 8028EE60 30482000 */ andi $t0, $v0, 0x2000 +/* 0F8474 8028EE64 11000002 */ beqz $t0, .L8028EE70 +/* 0F8478 8028EE68 38492000 */ xori $t1, $v0, 0x2000 +/* 0F847C 8028EE6C A4692988 */ sh $t1, 0x2988($v1) +.L8028EE70: +/* 0F8480 8028EE70 24633760 */ addiu $v1, $v1, 0x3760 +/* 0F8484 8028EE74 5464FFE3 */ bnel $v1, $a0, .L8028EE04 +/* 0F8488 8028EE78 94620000 */ lhu $v0, ($v1) +/* 0F848C 8028EE7C 8FBF0014 */ lw $ra, 0x14($sp) +/* 0F8490 8028EE80 27BD0018 */ addiu $sp, $sp, 0x18 +/* 0F8494 8028EE84 03E00008 */ jr $ra +/* 0F8498 8028EE88 00000000 */ nop \ No newline at end of file diff --git a/asm/non_matchings/code_8028DF00/func_8028EE8C.s b/asm/non_matchings/code_8028DF00/func_8028EE8C.s new file mode 100644 index 000000000..a44c582eb --- /dev/null +++ b/asm/non_matchings/code_8028DF00/func_8028EE8C.s @@ -0,0 +1,27 @@ + +glabel func_8028EE8C +/* 0F849C 8028EE8C 000470C0 */ sll $t6, $a0, 3 +/* 0F84A0 8028EE90 01C47023 */ subu $t6, $t6, $a0 +/* 0F84A4 8028EE94 000E7100 */ sll $t6, $t6, 4 +/* 0F84A8 8028EE98 01C47023 */ subu $t6, $t6, $a0 +/* 0F84AC 8028EE9C 000E7080 */ sll $t6, $t6, 2 +/* 0F84B0 8028EEA0 01C47023 */ subu $t6, $t6, $a0 +/* 0F84B4 8028EEA4 3C0F800F */ lui $t7, %hi(D_800F6990) # $t7, 0x800f +/* 0F84B8 8028EEA8 25EF6990 */ addiu $t7, %lo(D_800F6990) # addiu $t7, $t7, 0x6990 +/* 0F84BC 8028EEAC 000E70C0 */ sll $t6, $t6, 3 +/* 0F84C0 8028EEB0 01CF1021 */ addu $v0, $t6, $t7 +/* 0F84C4 8028EEB4 3C018016 */ lui $at, %hi(D_8015F8D8) # $at, 0x8016 +/* 0F84C8 8028EEB8 C442001C */ lwc1 $f2, 0x1c($v0) +/* 0F84CC 8028EEBC C430F8D8 */ lwc1 $f16, %lo(D_8015F8D8)($at) +/* 0F84D0 8028EEC0 C44C0028 */ lwc1 $f12, 0x28($v0) +/* 0F84D4 8028EEC4 3C01802C */ lui $at, %hi(D_802B9254) # $at, 0x802c +/* 0F84D8 8028EEC8 46028381 */ sub.s $f14, $f16, $f2 +/* 0F84DC 8028EECC C4249254 */ lwc1 $f4, %lo(D_802B9254)($at) +/* 0F84E0 8028EED0 3C01800E */ lui $at, %hi(gCourseTimer) # $at, 0x800e +/* 0F84E4 8028EED4 46106481 */ sub.s $f18, $f12, $f16 +/* 0F84E8 8028EED8 460E2182 */ mul.s $f6, $f4, $f14 +/* 0F84EC 8028EEDC C424C598 */ lwc1 $f4, %lo(gCourseTimer)($at) +/* 0F84F0 8028EEE0 46127200 */ add.s $f8, $f14, $f18 +/* 0F84F4 8028EEE4 46083283 */ div.s $f10, $f6, $f8 +/* 0F84F8 8028EEE8 03E00008 */ jr $ra +/* 0F84FC 8028EEEC 460A2001 */ sub.s $f0, $f4, $f10 diff --git a/asm/non_matchings/code_8028DF00/wip.s b/asm/non_matchings/code_8028DF00/wip.s new file mode 100644 index 000000000..965a2d327 --- /dev/null +++ b/asm/non_matchings/code_8028DF00/wip.s @@ -0,0 +1,329 @@ +glabel func_8028EF28 +/* 0F8538 8028EF28 27BDFFC0 */ addiu $sp, $sp, -0x40 +/* 0F853C 8028EF2C AFB70034 */ sw $s7, 0x34($sp) +/* 0F8540 8028EF30 AFB60030 */ sw $s6, 0x30($sp) +/* 0F8544 8028EF34 AFB00018 */ sw $s0, 0x18($sp) +/* 0F8548 8028EF38 AFBE0038 */ sw $fp, 0x38($sp) +/* 0F854C 8028EF3C AFB5002C */ sw $s5, 0x2c($sp) +/* 0F8550 8028EF40 AFB40028 */ sw $s4, 0x28($sp) +/* 0F8554 8028EF44 AFB30024 */ sw $s3, 0x24($sp) +/* 0F8558 8028EF48 AFB20020 */ sw $s2, 0x20($sp) +/* 0F855C 8028EF4C 3C10800F */ lui $s0, %hi(D_800F6990) # $s0, 0x800f +/* 0F8560 8028EF50 3C16802C */ lui $s6, %hi(D_802BA032) # $s6, 0x802c +/* 0F8564 8028EF54 3C17800E */ lui $s7, %hi(D_800DC510) # $s7, 0x800e +/* 0F8568 8028EF58 AFBF003C */ sw $ra, 0x3c($sp) +/* 0F856C 8028EF5C AFB1001C */ sw $s1, 0x1c($sp) +/* 0F8570 8028EF60 26F7C510 */ addiu $s7, %lo(D_800DC510) # addiu $s7, $s7, -0x3af0 +/* 0F8574 8028EF64 26D6A032 */ addiu $s6, %lo(D_802BA032) # addiu $s6, $s6, -0x5fce +/* 0F8578 8028EF68 26106990 */ addiu $s0, %lo(D_800F6990) # addiu $s0, $s0, 0x6990 +/* 0F857C 8028EF6C 00009025 */ move $s2, $zero +/* 0F8580 8028EF70 24130002 */ li $s3, 2 +/* 0F8584 8028EF74 24140003 */ li $s4, 3 +/* 0F8588 8028EF78 24150001 */ li $s5, 1 +/* 0F858C 8028EF7C 241E0063 */ li $fp, 99 +.L8028EF80: +/* 0F8590 8028EF80 96040000 */ lhu $a0, ($s0) +/* 0F8594 8028EF84 308E8000 */ andi $t6, $a0, 0x8000 +/* 0F8598 8028EF88 11C000FD */ beqz $t6, .L8028F380 +/* 0F859C 8028EF8C 00127880 */ sll $t7, $s2, 2 +/* 0F85A0 8028EF90 3C038016 */ lui $v1, %hi(lapCount) # 0x8016 +/* 0F85A4 8028EF94 006F1821 */ addu $v1, $v1, $t7 +/* 0F85A8 8028EF98 8C634390 */ lw $v1, %lo(lapCount)($v1) # 0x4390($v1) +/* 0F85AC 8028EF9C 86020008 */ lh $v0, 8($s0) +/* 0F85B0 8028EFA0 0062082A */ slt $at, $v1, $v0 +/* 0F85B4 8028EFA4 10200003 */ beqz $at, .L8028EFB4 +/* 0F85B8 8028EFA8 2458FFFF */ addiu $t8, $v0, -1 +/* 0F85BC 8028EFAC 100000F4 */ b .L8028F380 +/* 0F85C0 8028EFB0 A6180008 */ sh $t8, 8($s0) +.L8028EFB4: +/* 0F85C4 8028EFB4 0043082A */ slt $at, $v0, $v1 +/* 0F85C8 8028EFB8 102000F1 */ beqz $at, .L8028F380 +/* 0F85CC 8028EFBC 24590001 */ addiu $t9, $v0, 1 +/* 0F85D0 8028EFC0 30884000 */ andi $t0, $a0, 0x4000 +/* 0F85D4 8028EFC4 110000E3 */ beqz $t0, .L8028F354 +/* 0F85D8 8028EFC8 A6190008 */ sh $t9, 8($s0) +/* 0F85DC 8028EFCC 86020008 */ lh $v0, 8($s0) +/* 0F85E0 8028EFD0 168200D3 */ bne $s4, $v0, .L8028F320 +/* 0F85E4 8028EFD4 00000000 */ nop +/* 0F85E8 8028EFD8 0C0A3BBC */ jal func_8028EEF0 +/* 0F85EC 8028EFDC 02402025 */ move $a0, $s2 +/* 0F85F0 8028EFE0 86110004 */ lh $s1, 4($s0) +/* 0F85F4 8028EFE4 96090000 */ lhu $t1, ($s0) +/* 0F85F8 8028EFE8 2A210004 */ slti $at, $s1, 4 +/* 0F85FC 8028EFEC 352A1000 */ ori $t2, $t1, 0x1000 +/* 0F8600 8028EFF0 10200003 */ beqz $at, .L8028F000 +/* 0F8604 8028EFF4 A60A0000 */ sh $t2, ($s0) +/* 0F8608 8028EFF8 3C018015 */ lui $at, %hi(D_80150120) # $at, 0x8015 +/* 0F860C 8028EFFC AC350120 */ sw $s5, %lo(D_80150120)($at) +.L8028F000: +/* 0F8610 8028F000 0C032846 */ jal func_800CA118 +/* 0F8614 8028F004 324400FF */ andi $a0, $s2, 0xff +/* 0F8618 8028F008 96C20000 */ lhu $v0, ($s6) +/* 0F861C 8028F00C 3C0D800E */ lui $t5, %hi(gPlayerCountSelection1) # $t5, 0x800e +/* 0F8620 8028F010 24080004 */ li $t0, 4 +/* 0F8624 8028F014 304B8000 */ andi $t3, $v0, 0x8000 +/* 0F8628 8028F018 15600002 */ bnez $t3, .L8028F024 +/* 0F862C 8028F01C 344C8000 */ ori $t4, $v0, 0x8000 +/* 0F8630 8028F020 A6CC0000 */ sh $t4, ($s6) +.L8028F024: +/* 0F8634 8028F024 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e +/* 0F8638 8028F028 8C42C53C */ lw $v0, %lo(gModeSelection)($v0) +/* 0F863C 8028F02C 5440000C */ bnel $v0, $zero, .L8028F060 +/* 0F8640 8028F030 96180000 */ lhu $t8, ($s0) +/* 0F8644 8028F034 8DADC538 */ lw $t5, %lo(gPlayerCountSelection1)($t5) +/* 0F8648 8028F038 3C0E802C */ lui $t6, %hi(D_802BA048) # $t6, 0x802c +/* 0F864C 8028F03C 566D0008 */ bnel $s3, $t5, .L8028F060 +/* 0F8650 8028F040 96180000 */ lhu $t8, ($s0) +/* 0F8654 8028F044 95CEA048 */ lhu $t6, %lo(D_802BA048)($t6) +/* 0F8658 8028F048 240F0001 */ li $t7, 1 +/* 0F865C 8028F04C 3C01802C */ lui $at, %hi(D_802BA048) # $at, 0x802c +/* 0F8660 8028F050 55C00003 */ bnel $t6, $zero, .L8028F060 +/* 0F8664 8028F054 96180000 */ lhu $t8, ($s0) +/* 0F8668 8028F058 A42FA048 */ sh $t7, %lo(D_802BA048)($at) +/* 0F866C 8028F05C 96180000 */ lhu $t8, ($s0) +.L8028F060: +/* 0F8670 8028F060 33190100 */ andi $t9, $t8, 0x100 +/* 0F8674 8028F064 17200002 */ bnez $t9, .L8028F070 +/* 0F8678 8028F068 00000000 */ nop +/* 0F867C 8028F06C AEE80000 */ sw $t0, ($s7) +.L8028F070: +/* 0F8680 8028F070 16A20005 */ bne $s5, $v0, .L8028F088 +/* 0F8684 8028F074 00000000 */ nop +/* 0F8688 8028F078 0C0016BA */ jal func_80005AE8 +/* 0F868C 8028F07C 02002025 */ move $a0, $s0 +/* 0F8690 8028F080 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e +/* 0F8694 8028F084 8C42C53C */ lw $v0, %lo(gModeSelection)($v0) +.L8028F088: +/* 0F8698 8028F088 166200BD */ bne $s3, $v0, .L8028F380 +/* 0F869C 8028F08C 240900B4 */ li $t1, 180 +/* 0F86A0 8028F090 3C01802C */ lui $at, %hi(D_802BA038) # $at, 0x802c +/* 0F86A4 8028F094 3C03800E */ lui $v1, %hi(gPlayerCountSelection1) # $v1, 0x800e +/* 0F86A8 8028F098 AC29A038 */ sw $t1, %lo(D_802BA038)($at) +/* 0F86AC 8028F09C 16200003 */ bnez $s1, .L8028F0AC +/* 0F86B0 8028F0A0 8C63C538 */ lw $v1, %lo(gPlayerCountSelection1)($v1) +/* 0F86B4 8028F0A4 3C01800E */ lui $at, %hi(D_800DC5E8) # $at, 0x800e +/* 0F86B8 8028F0A8 AC32C5E8 */ sw $s2, %lo(D_800DC5E8)($at) +.L8028F0AC: +/* 0F86BC 8028F0AC 10730008 */ beq $v1, $s3, .L8028F0D0 +/* 0F86C0 8028F0B0 00000000 */ nop +/* 0F86C4 8028F0B4 1074002E */ beq $v1, $s4, .L8028F170 +/* 0F86C8 8028F0B8 00121080 */ sll $v0, $s2, 2 +/* 0F86CC 8028F0BC 24010004 */ li $at, 4 +/* 0F86D0 8028F0C0 10610069 */ beq $v1, $at, .L8028F268 +/* 0F86D4 8028F0C4 00121080 */ sll $v0, $s2, 2 +/* 0F86D8 8028F0C8 100000AE */ b .L8028F384 +/* 0F86DC 8028F0CC 26520001 */ addiu $s2, $s2, 1 +.L8028F0D0: +/* 0F86E0 8028F0D0 16200007 */ bnez $s1, .L8028F0F0 +/* 0F86E4 8028F0D4 3C0D8016 */ lui $t5, %hi(D_8015F8B8) # $t5, 0x8016 +/* 0F86E8 8028F0D8 3C0A8016 */ lui $t2, %hi(D_8015F8B8) # $t2, 0x8016 +/* 0F86EC 8028F0DC 8D4AF8B8 */ lw $t2, %lo(D_8015F8B8)($t2) +/* 0F86F0 8028F0E0 01521021 */ addu $v0, $t2, $s2 +/* 0F86F4 8028F0E4 904B0000 */ lbu $t3, ($v0) +/* 0F86F8 8028F0E8 256C0001 */ addiu $t4, $t3, 1 +/* 0F86FC 8028F0EC A04C0000 */ sb $t4, ($v0) +.L8028F0F0: +/* 0F8700 8028F0F0 8DADF8B8 */ lw $t5, %lo(D_8015F8B8)($t5) +/* 0F8704 8028F0F4 240F0005 */ li $t7, 5 +/* 0F8708 8028F0F8 3C19800F */ lui $t9, %hi(D_800F6990) # $t9, 0x800f +/* 0F870C 8028F0FC 01B21021 */ addu $v0, $t5, $s2 +/* 0F8710 8028F100 904E0000 */ lbu $t6, ($v0) +/* 0F8714 8028F104 3C128016 */ lui $s2, %hi(D_8015F8F2) # $s2, 0x8016 +/* 0F8718 8028F108 29C10064 */ slti $at, $t6, 0x64 +/* 0F871C 8028F10C 54200003 */ bnel $at, $zero, .L8028F11C +/* 0F8720 8028F110 AEEF0000 */ sw $t7, ($s7) +/* 0F8724 8028F114 A05E0000 */ sb $fp, ($v0) +/* 0F8728 8028F118 AEEF0000 */ sw $t7, ($s7) +.L8028F11C: +/* 0F872C 8028F11C 8652F8F2 */ lh $s2, %lo(D_8015F8F2)($s2) +/* 0F8730 8028F120 27396990 */ addiu $t9, %lo(D_800F6990) # addiu $t9, $t9, 0x6990 +/* 0F8734 8028F124 3C010020 */ lui $at, 0x20 +/* 0F8738 8028F128 0012C0C0 */ sll $t8, $s2, 3 +/* 0F873C 8028F12C 0312C023 */ subu $t8, $t8, $s2 +/* 0F8740 8028F130 0018C100 */ sll $t8, $t8, 4 +/* 0F8744 8028F134 0312C023 */ subu $t8, $t8, $s2 +/* 0F8748 8028F138 0018C080 */ sll $t8, $t8, 2 +/* 0F874C 8028F13C 0312C023 */ subu $t8, $t8, $s2 +/* 0F8750 8028F140 0018C0C0 */ sll $t8, $t8, 3 +/* 0F8754 8028F144 03198021 */ addu $s0, $t8, $t9 +/* 0F8758 8028F148 8E08000C */ lw $t0, 0xc($s0) +/* 0F875C 8028F14C 960A0000 */ lhu $t2, ($s0) +/* 0F8760 8028F150 324400FF */ andi $a0, $s2, 0xff +/* 0F8764 8028F154 01014825 */ or $t1, $t0, $at +/* 0F8768 8028F158 354B1000 */ ori $t3, $t2, 0x1000 +/* 0F876C 8028F15C AE09000C */ sw $t1, 0xc($s0) +/* 0F8770 8028F160 0C032846 */ jal func_800CA118 +/* 0F8774 8028F164 A60B0000 */ sh $t3, ($s0) +/* 0F8778 8028F168 10000086 */ b .L8028F384 +/* 0F877C 8028F16C 26520001 */ addiu $s2, $s2, 1 +.L8028F170: +/* 0F8780 8028F170 2A210003 */ slti $at, $s1, 3 +/* 0F8784 8028F174 10200008 */ beqz $at, .L8028F198 +/* 0F8788 8028F178 00521023 */ subu $v0, $v0, $s2 +/* 0F878C 8028F17C 3C0C8016 */ lui $t4, %hi(D_8015F8BC) # $t4, 0x8016 +/* 0F8790 8028F180 8D8CF8BC */ lw $t4, %lo(D_8015F8BC)($t4) +/* 0F8794 8028F184 004C6821 */ addu $t5, $v0, $t4 +/* 0F8798 8028F188 01B11821 */ addu $v1, $t5, $s1 +/* 0F879C 8028F18C 906E0000 */ lbu $t6, ($v1) +/* 0F87A0 8028F190 25CF0001 */ addiu $t7, $t6, 1 +/* 0F87A4 8028F194 A06F0000 */ sb $t7, ($v1) +.L8028F198: +/* 0F87A8 8028F198 3C188016 */ lui $t8, %hi(D_8015F8BC) # $t8, 0x8016 +/* 0F87AC 8028F19C 8F18F8BC */ lw $t8, %lo(D_8015F8BC)($t8) +/* 0F87B0 8028F1A0 24090005 */ li $t1, 5 +/* 0F87B4 8028F1A4 0058C821 */ addu $t9, $v0, $t8 +/* 0F87B8 8028F1A8 03311821 */ addu $v1, $t9, $s1 +/* 0F87BC 8028F1AC 90680000 */ lbu $t0, ($v1) +/* 0F87C0 8028F1B0 3C18800F */ lui $t8, %hi(D_800F6990) # $t8, 0x800f +/* 0F87C4 8028F1B4 27186990 */ addiu $t8, %lo(D_800F6990) # addiu $t8, $t8, 0x6990 +/* 0F87C8 8028F1B8 29010064 */ slti $at, $t0, 0x64 +/* 0F87CC 8028F1BC 14200002 */ bnez $at, .L8028F1C8 +/* 0F87D0 8028F1C0 00000000 */ nop +/* 0F87D4 8028F1C4 A07E0000 */ sb $fp, ($v1) +.L8028F1C8: +/* 0F87D8 8028F1C8 5635006E */ bnel $s1, $s5, .L8028F384 +/* 0F87DC 8028F1CC 26520001 */ addiu $s2, $s2, 1 +/* 0F87E0 8028F1D0 AEE90000 */ sw $t1, ($s7) +/* 0F87E4 8028F1D4 3C128016 */ lui $s2, %hi(D_8015F8F4) # $s2, 0x8016 +/* 0F87E8 8028F1D8 8652F8F4 */ lh $s2, %lo(D_8015F8F4)($s2) +/* 0F87EC 8028F1DC 3C0A8016 */ lui $t2, %hi(D_8015F8BC) # $t2, 0x8016 +/* 0F87F0 8028F1E0 8D4AF8BC */ lw $t2, %lo(D_8015F8BC)($t2) +/* 0F87F4 8028F1E4 02540019 */ multu $s2, $s4 +/* 0F87F8 8028F1E8 3C0D8016 */ lui $t5, %hi(D_8015F8BC) # $t5, 0x8016 +/* 0F87FC 8028F1EC 001278C0 */ sll $t7, $s2, 3 +/* 0F8800 8028F1F0 01F27823 */ subu $t7, $t7, $s2 +/* 0F8804 8028F1F4 000F7900 */ sll $t7, $t7, 4 +/* 0F8808 8028F1F8 01F27823 */ subu $t7, $t7, $s2 +/* 0F880C 8028F1FC 000F7880 */ sll $t7, $t7, 2 +/* 0F8810 8028F200 01F27823 */ subu $t7, $t7, $s2 +/* 0F8814 8028F204 000F78C0 */ sll $t7, $t7, 3 +/* 0F8818 8028F208 01F88021 */ addu $s0, $t7, $t8 +/* 0F881C 8028F20C 00001012 */ mflo $v0 +/* 0F8820 8028F210 004A1821 */ addu $v1, $v0, $t2 +/* 0F8824 8028F214 906B0002 */ lbu $t3, 2($v1) +/* 0F8828 8028F218 324400FF */ andi $a0, $s2, 0xff +/* 0F882C 8028F21C 256C0001 */ addiu $t4, $t3, 1 +/* 0F8830 8028F220 A06C0002 */ sb $t4, 2($v1) +/* 0F8834 8028F224 8DADF8BC */ lw $t5, %lo(D_8015F8BC)($t5) +/* 0F8838 8028F228 004D1821 */ addu $v1, $v0, $t5 +/* 0F883C 8028F22C 906E0002 */ lbu $t6, 2($v1) +/* 0F8840 8028F230 29C10064 */ slti $at, $t6, 0x64 +/* 0F8844 8028F234 54200003 */ bnel $at, $zero, .L8028F244 +/* 0F8848 8028F238 8E19000C */ lw $t9, 0xc($s0) +/* 0F884C 8028F23C A07E0002 */ sb $fp, 2($v1) +/* 0F8850 8028F240 8E19000C */ lw $t9, 0xc($s0) +.L8028F244: +/* 0F8854 8028F244 96090000 */ lhu $t1, ($s0) +/* 0F8858 8028F248 3C010020 */ lui $at, 0x20 +/* 0F885C 8028F24C 03214025 */ or $t0, $t9, $at +/* 0F8860 8028F250 352A1000 */ ori $t2, $t1, 0x1000 +/* 0F8864 8028F254 AE08000C */ sw $t0, 0xc($s0) +/* 0F8868 8028F258 0C032846 */ jal func_800CA118 +/* 0F886C 8028F25C A60A0000 */ sh $t2, ($s0) +/* 0F8870 8028F260 10000048 */ b .L8028F384 +/* 0F8874 8028F264 26520001 */ addiu $s2, $s2, 1 +.L8028F268: +/* 0F8878 8028F268 2A210003 */ slti $at, $s1, 3 +/* 0F887C 8028F26C 10200008 */ beqz $at, .L8028F290 +/* 0F8880 8028F270 00521023 */ subu $v0, $v0, $s2 +/* 0F8884 8028F274 3C0B8016 */ lui $t3, %hi(D_8015F8C0) # $t3, 0x8016 +/* 0F8888 8028F278 8D6BF8C0 */ lw $t3, %lo(D_8015F8C0)($t3) +/* 0F888C 8028F27C 004B6021 */ addu $t4, $v0, $t3 +/* 0F8890 8028F280 01911821 */ addu $v1, $t4, $s1 +/* 0F8894 8028F284 906D0000 */ lbu $t5, ($v1) +/* 0F8898 8028F288 25AE0001 */ addiu $t6, $t5, 1 +/* 0F889C 8028F28C A06E0000 */ sb $t6, ($v1) +.L8028F290: +/* 0F88A0 8028F290 3C0F8016 */ lui $t7, %hi(D_8015F8C0) # $t7, 0x8016 +/* 0F88A4 8028F294 8DEFF8C0 */ lw $t7, %lo(D_8015F8C0)($t7) +/* 0F88A8 8028F298 24080005 */ li $t0, 5 +/* 0F88AC 8028F29C 3C0A800F */ lui $t2, %hi(D_800F6990) # $t2, 0x800f +/* 0F88B0 8028F2A0 004FC021 */ addu $t8, $v0, $t7 +/* 0F88B4 8028F2A4 03111821 */ addu $v1, $t8, $s1 +/* 0F88B8 8028F2A8 90790000 */ lbu $t9, ($v1) +/* 0F88BC 8028F2AC 2B210064 */ slti $at, $t9, 0x64 +/* 0F88C0 8028F2B0 14200002 */ bnez $at, .L8028F2BC +/* 0F88C4 8028F2B4 00000000 */ nop +/* 0F88C8 8028F2B8 A07E0000 */ sb $fp, ($v1) +.L8028F2BC: +/* 0F88CC 8028F2BC 56330031 */ bnel $s1, $s3, .L8028F384 +/* 0F88D0 8028F2C0 26520001 */ addiu $s2, $s2, 1 +/* 0F88D4 8028F2C4 AEE80000 */ sw $t0, ($s7) +/* 0F88D8 8028F2C8 3C128016 */ lui $s2, %hi(D_8015F8F6) # $s2, 0x8016 +/* 0F88DC 8028F2CC 8652F8F6 */ lh $s2, %lo(D_8015F8F6)($s2) +/* 0F88E0 8028F2D0 254A6990 */ addiu $t2, %lo(D_800F6990) # addiu $t2, $t2, 0x6990 +/* 0F88E4 8028F2D4 3C010020 */ lui $at, 0x20 +/* 0F88E8 8028F2D8 001248C0 */ sll $t1, $s2, 3 +/* 0F88EC 8028F2DC 01324823 */ subu $t1, $t1, $s2 +/* 0F88F0 8028F2E0 00094900 */ sll $t1, $t1, 4 +/* 0F88F4 8028F2E4 01324823 */ subu $t1, $t1, $s2 +/* 0F88F8 8028F2E8 00094880 */ sll $t1, $t1, 2 +/* 0F88FC 8028F2EC 01324823 */ subu $t1, $t1, $s2 +/* 0F8900 8028F2F0 000948C0 */ sll $t1, $t1, 3 +/* 0F8904 8028F2F4 012A8021 */ addu $s0, $t1, $t2 +/* 0F8908 8028F2F8 8E0B000C */ lw $t3, 0xc($s0) +/* 0F890C 8028F2FC 960D0000 */ lhu $t5, ($s0) +/* 0F8910 8028F300 324400FF */ andi $a0, $s2, 0xff +/* 0F8914 8028F304 01616025 */ or $t4, $t3, $at +/* 0F8918 8028F308 35AE1000 */ ori $t6, $t5, 0x1000 +/* 0F891C 8028F30C AE0C000C */ sw $t4, 0xc($s0) +/* 0F8920 8028F310 0C032846 */ jal func_800CA118 +/* 0F8924 8028F314 A60E0000 */ sh $t6, ($s0) +/* 0F8928 8028F318 1000001A */ b .L8028F384 +/* 0F892C 8028F31C 26520001 */ addiu $s2, $s2, 1 +.L8028F320: +/* 0F8930 8028F320 16620017 */ bne $s3, $v0, .L8028F380 +/* 0F8934 8028F324 308F0100 */ andi $t7, $a0, 0x100 +/* 0F8938 8028F328 55E00024 */ bnel $t7, $zero, .L8028F3BC +/* 0F893C 8028F32C 8FBF003C */ lw $ra, 0x3c($sp) +/* 0F8940 8028F330 96C20000 */ lhu $v0, ($s6) +/* 0F8944 8028F334 324400FF */ andi $a0, $s2, 0xff +/* 0F8948 8028F338 30584000 */ andi $t8, $v0, 0x4000 +/* 0F894C 8028F33C 17000010 */ bnez $t8, .L8028F380 +/* 0F8950 8028F340 34594000 */ ori $t9, $v0, 0x4000 +/* 0F8954 8028F344 0C032927 */ jal func_800CA49C +/* 0F8958 8028F348 A6D90000 */ sh $t9, ($s6) +/* 0F895C 8028F34C 1000000D */ b .L8028F384 +/* 0F8960 8028F350 26520001 */ addiu $s2, $s2, 1 +.L8028F354: +/* 0F8964 8028F354 86080008 */ lh $t0, 8($s0) +/* 0F8968 8028F358 5688000A */ bnel $s4, $t0, .L8028F384 +/* 0F896C 8028F35C 26520001 */ addiu $s2, $s2, 1 +/* 0F8970 8028F360 0C0A3BBC */ jal func_8028EEF0 +/* 0F8974 8028F364 02402025 */ move $a0, $s2 +/* 0F8978 8028F368 3C09800E */ lui $t1, %hi(gModeSelection) # $t1, 0x800e +/* 0F897C 8028F36C 8D29C53C */ lw $t1, %lo(gModeSelection)($t1) +/* 0F8980 8028F370 56A90004 */ bnel $s5, $t1, .L8028F384 +/* 0F8984 8028F374 26520001 */ addiu $s2, $s2, 1 +/* 0F8988 8028F378 0C0016BA */ jal func_80005AE8 +/* 0F898C 8028F37C 02002025 */ move $a0, $s0 +.L8028F380: +/* 0F8990 8028F380 26520001 */ addiu $s2, $s2, 1 +.L8028F384: +/* 0F8994 8028F384 2A410008 */ slti $at, $s2, 8 +/* 0F8998 8028F388 1420FEFD */ bnez $at, .L8028EF80 +/* 0F899C 8028F38C 26100DD8 */ addiu $s0, $s0, 0xdd8 +/* 0F89A0 8028F390 3C02802C */ lui $v0, %hi(D_802BA048) # $v0, 0x802c +/* 0F89A4 8028F394 9442A048 */ lhu $v0, %lo(D_802BA048)($v0) +/* 0F89A8 8028F398 24010064 */ li $at, 100 +/* 0F89AC 8028F39C 50400007 */ beql $v0, $zero, .L8028F3BC +/* 0F89B0 8028F3A0 8FBF003C */ lw $ra, 0x3c($sp) +/* 0F89B4 8028F3A4 10410004 */ beq $v0, $at, .L8028F3B8 +/* 0F89B8 8028F3A8 240A0064 */ li $t2, 100 +/* 0F89BC 8028F3AC 3C01802C */ lui $at, %hi(D_802BA048) # $at, 0x802c +/* 0F89C0 8028F3B0 0C001D35 */ jal func_800074D4 +/* 0F89C4 8028F3B4 A42AA048 */ sh $t2, %lo(D_802BA048)($at) +.L8028F3B8: +/* 0F89C8 8028F3B8 8FBF003C */ lw $ra, 0x3c($sp) +.L8028F3BC: +/* 0F89CC 8028F3BC 8FB00018 */ lw $s0, 0x18($sp) +/* 0F89D0 8028F3C0 8FB1001C */ lw $s1, 0x1c($sp) +/* 0F89D4 8028F3C4 8FB20020 */ lw $s2, 0x20($sp) +/* 0F89D8 8028F3C8 8FB30024 */ lw $s3, 0x24($sp) +/* 0F89DC 8028F3CC 8FB40028 */ lw $s4, 0x28($sp) +/* 0F89E0 8028F3D0 8FB5002C */ lw $s5, 0x2c($sp) +/* 0F89E4 8028F3D4 8FB60030 */ lw $s6, 0x30($sp) +/* 0F89E8 8028F3D8 8FB70034 */ lw $s7, 0x34($sp) +/* 0F89EC 8028F3DC 8FBE0038 */ lw $fp, 0x38($sp) +/* 0F89F0 8028F3E0 03E00008 */ jr $ra +/* 0F89F4 8028F3E4 27BD0040 */ addiu $sp, $sp, 0x40 diff --git a/data/data_121DA0_2.s b/data/data_121DA0_2.s index faf96eacb..42bf62f1d 100644 --- a/data/data_121DA0_2.s +++ b/data/data_121DA0_2.s @@ -60,6 +60,12 @@ glabel D_802B9204 .word L8028ED60, L8028ED70, L8028ECE0, L8028ED10 .word L8028ED90, L8028ED10, L8028ED80, L8028ED90 + + + + + + glabel D_802B9254 .float 0.01666666 diff --git a/data/data_121DA0_2_1.s b/data/data_121DA0_2_1.s new file mode 100644 index 000000000..e69de29bb diff --git a/include/common_structs.h b/include/common_structs.h index 781d89f00..c46ddf3c3 100644 --- a/include/common_structs.h +++ b/include/common_structs.h @@ -35,7 +35,7 @@ typedef enum { typedef struct { /* 0x0000 */ u16 unk_000; /* 0x0002 */ s16 unk_002; - /* 0x0004 */ char unk_004[0x2]; + /* 0x0004 */ s16 unk_004; /* 0x0006 */ s16 unk_006; /* 0x0008 */ s16 unk_008; /* 0x000A */ char unk_00A[0x2]; diff --git a/mk64.ld b/mk64.ld index 3bc5dceea..a003a234b 100644 --- a/mk64.ld +++ b/mk64.ld @@ -230,6 +230,7 @@ SECTIONS BUILD_DIR/data/rodata_libultra.o(.rodata); BUILD_DIR/src/os/_Litob.o(.data); BUILD_DIR/data/rodata_main.o(.rodata); + BUILD_DIR/src/main.o(.rodata); BUILD_DIR/src/code_800029B0.o(.rodata); BUILD_DIR/data/data_0DD0A0_3.o(.rodata); BUILD_DIR/src/os/__osDevMgrMain.o(.rodata); @@ -274,7 +275,7 @@ SECTIONS /* 0x8028DF00 0F7510-123640 [2C130] */ BEGIN_SEG(code_8028DF00, SEG_8028DF00) { - BUILD_DIR/asm/code_8028DF00.o(.text); + BUILD_DIR/src/code_8028DF00.o(.text); BUILD_DIR/asm/code_80290C20.o(.text); BUILD_DIR/asm/code_80296A50.o(.text); BUILD_DIR/asm/code_802A3730.o(.text); @@ -284,6 +285,8 @@ SECTIONS BUILD_DIR/data/data_121DA0.o(.data); BUILD_DIR/courses/courseTable.inc.o(.data); BUILD_DIR/data/data_121DA0_2.o(.data); + //BUILD_DIR/src/code_8028DF00.o(.rodata); + BUILD_DIR/data/data_121DA0_2_1.o(.data); } END_SEG(code_8028DF00) diff --git a/src/code_800029B0.c b/src/code_800029B0.c index ee2248b91..8d687f6a4 100644 --- a/src/code_800029B0.c +++ b/src/code_800029B0.c @@ -44,7 +44,7 @@ extern u32 D_800DC530; extern u32 D_8015F730; extern u32 D_8015F734; extern u32 gPrevLoadedAddress; -extern u32 D_80150120; +extern s32 D_80150120; extern s16 gCupTrackOrder[][4]; void func_800CA008(u8, u8); diff --git a/src/code_8028DF00.c b/src/code_8028DF00.c new file mode 100644 index 000000000..3ece24985 --- /dev/null +++ b/src/code_8028DF00.c @@ -0,0 +1,773 @@ +#include +#include +#include "types.h" +#include "common_structs.h" + + +extern s16 D_802BA040[4]; +extern struct Controller *D_800F6914; +extern struct Controller *gControllers; +extern struct Controller *gPlayer2Controller; +extern struct Controller *gPlayer3Controller; +extern struct Controller *gPlayer4Controller; +extern struct Controller *D_800F6950; + +extern unsigned char *D_8015F8C4; +extern unsigned char *D_8015F8C8; +extern unsigned char *D_8015F8CC; +extern u8 D_800DC5EB; +extern s16 D_8018D8C0[]; +extern s32 D_8016348C; +extern s8 gCourseSelection; +extern s32 D_800DC544; + +extern Player D_800F6990[]; +extern Player D_800DC4E0[]; +extern Player D_800DC4DC[]; +extern s32 lapCount[]; +extern s32 D_80150120; +extern u16 D_802BA032; +extern s32 gModeSelection; +extern s32 gPlayerCountSelection1; +extern u16 D_802BA048; +extern s32 D_800DC510; + +extern s32 D_80150124; +extern u16 D_800DC5B4; +extern u16 D_800DC5B0; +extern u16 D_800DC5B8; +extern s32 D_802BA038; +extern s32 D_800E86A0; + +extern struct Controller *D_800DC4CC; + +extern s32 D_8018EE08; +extern u16 D_800DC51C; +extern s32 D_80150118; +extern u16 D_800DC518; +extern u16 D_8015011E; +extern float gCourseTimer; +extern float D_800DC594; +extern float D_802BA034; +extern s32 D_800DC530; +extern s32 D_8018D2AC; +extern s32 D_800DC52C; +extern s16 gCurrentCourseId; +extern u16 D_80162DD6; +extern u16 D_8015F890; +extern u32 D_800DC5AC; +extern u16 gEnableDebugMode; +extern s32 D_800DC5E8; +extern u16 D_800DC5C0, D_800DC5C4; +extern s32 D_802B91E0; +extern s16 D_8015F8F6[]; + +extern f32 D_8015F8D8; +extern f32 D_802B9254; + +extern void func_800CA118(); +extern void func_800CA49C(); +extern void func_8028E678(); +extern void func_80009B60(); + +extern void func_800CA330(); +extern void func_800CA388(); + +extern void func_80092630(); +extern void func_8028E438(); +extern void func_800C8EF8(); +extern void play_sound2(); +extern void func_80002DAC(); +extern void func_8005C64C(); +extern void func_8028F914(); +extern void func_802A7940(); +extern void func_802A7728(); +extern void func_80078F64(); +extern void func_800925A0(); +extern void func_8028F4E8(); +extern void func_8028EDA8(); +extern void func_8028E0F0(); +extern void func_8028F3F0(); +extern void func_8028F970(); +extern void func_8028E298(); +extern void func_80092564(); +extern void func_8028F8BC(); +extern void func_800029B0(); +extern void func_800C8EAC(); +extern void func_800074D4(); +extern void func_80005AE8(); + +extern u16 D_8015F894; + +// Likely bss memed need to declare controllers likely in main.c +/* +void func_8028DF00(void) { + struct Controller *controllers = (u16) &D_800F6914[0]; + s32 i; + for (i = 0; i < 4; i ++) { + D_802BA040[i] = controllers->unk4; + controllers++; + } +} +*/ +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028DF00.s") +/* +void func_8028DF38(void) { + struct Controller *controllers = &gControllers[0]; + s32 i; + for (i = 0; i < 4; i++) { + D_800F6916 = (s16) ((D_802BA040 ^ D_800F6914) & D_800F6914); + D_800F6918 = (s16) ((D_802BA040 ^ D_800F6914) & D_802BA040); + D_800F6914 = (u16) temp_t6; + + gPlayer2Controller.unk6 = (s16) ((D_802BA042[i] ^ gPlayer2Controller.unk4) & gPlayer2Controller.unk4); + + gPlayer2Controller.unk8 = (s16) ((D_802BA042[i] ^ gPlayer2Controller.unk4;) & D_802BA042[i]); + temp_v1_2 = gPlayer2Controller.unk14; + + + + + gPlayer2Controller.unk4 = (u16) D_802BA042; + temp_v0 = &gPlayer2Controller + 0x20; + temp_v0->unk-A = (s16) ((D_802BA044 ^ temp_v1_2) & temp_v1_2); + temp_t1 = D_802BA044; + temp_v0->unk-8 = (s16) ((temp_t1 ^ temp_v1_2) & temp_t1); + temp_v1_3 = temp_v0->unk4; + temp_v0->unk-C = (s16) D_802BA044; + temp_v0->unk6 = (s16) ((D_802BA046 ^ temp_v1_3) & temp_v1_3); + temp_t9 = D_802BA046; + temp_v0->unk8 = (s16) ((temp_t9 ^ temp_v1_3) & temp_t9); + temp_v0->unk4 = (u16) D_802BA046; + } +} +*/ +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028DF38.s") + +void func_8028E028(void) { + + switch(gPlayerCountSelection1) { + case 2: + *(D_8015F8C4 + D_800DC5E8) += 1; + break; + case 3: + *(D_8015F8C8 + D_800DC5E8) += 1; + break; + case 4: + *(D_8015F8CC + D_800DC5E8) += 1; + break; + } + func_800CA118(D_800DC5EB); + D_800DC510 = 5; + D_802BA038 = 10; +} +/* +void func_8028E0F0(void) { + Player *ply; + s32 i; + s16 unk_arr[4]; + s16 unk_arr2[4]; + s16 phi_s1 = 0; + s16 phi_s2 = 0; + + for(i = 0; i < 4; i++) { + ply = (Player *)&D_800F6990[i]; + if (!(ply->unk_000 & 0x8000)) { + continue; + } + if (ply->unk_000 & 0x800) { + continue; + } + if (D_8018D8C0[i] < 0) { + ply->unk_000 |= 0x800; + unk_arr[phi_s1] = (s16) (ply - D_800DC4DC); + func_800CA118((u8) i); + } else { + unk_arr2[phi_s2] = (s16) (ply - D_800DC4DC); + phi_s2++; + } + } + if (phi_s2 == 1) { + D_800DC5E8 = (s32) unk_arr2; + func_8028E028(); + } else if (phi_s2 == 0) { + D_800DC5E8 = (s32) unk_arr; + func_8028E028(); + } +} +*/ +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028E0F0.s") + +/* +void func_8028E298(u16 arg2) { + ? *temp_a1; + f32 temp_f8; + s32 temp_a0; + s32 temp_v1; + u16 temp_a2; + u16 temp_v0; + ? *phi_a1; + s32 phi_a0; + f32 phi_f8; + u16 phi_a2; + s32 i; + phi_a1 = &D_800F6990; + phi_a0 = 0; + phi_a2 = arg2; + for (i = 0; i < 8; i++) { + if ((D_800F6990[i].unk_000 & 0x800) == 0) { + temp_a2 = *(&D_801645B0 + (phi_a0 * 2)); + temp_v1 = phi_a0 * 4; + temp_v0 = *(&D_801645C8 + (temp_a2 * 2)); + temp_f8 = (f32) temp_v0; + phi_f8 = temp_f8; + if ((s32) temp_v0 < 0) { + phi_f8 = temp_f8 + 4294967296.0f; + } + *(&D_8015F898 + temp_v1) = (f32) (gCourseTimer + (((f32) (temp_v0 * (2 - phi_a1->unk8)) + (phi_f8 * (1.0f - *(&D_801644A8 + temp_v1)))) / 15.0f)); + phi_a2 = temp_a2; + } + temp_a0 = phi_a0 + 1; + temp_a1 = phi_a1 + 0xDD8; + phi_a1 = temp_a1; + phi_a0 = temp_a0; + } + D_8016348C = 1; + func_800070F4(); +} +*/ +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028E298.s") + +void func_8028E3A0(void) { + + if (D_80150120) { + + if (gCourseSelection == 3) { + D_80150124 = 5; + } else { + D_800DC544++; + gCourseSelection++; + D_80150124 = 4; + } + } else { + D_800DC544++; + gCourseSelection++; + D_80150124 = 4; + } +} + +/* +void func_8028E3A0(void) { + // Todo: Decomp +} +*/ +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028E438.s") + +/* +void func_8028E678(void) { + s32 temp_v0; + u16 temp_t8; + + void *temp_v0_10; + void *temp_v0_11; + void *temp_v0_12; + void *temp_v0_13; + void *temp_v0_14; + void *temp_v0_15; + void *temp_v0_16; + void *temp_v0_17; + void *temp_v0_18; + void *temp_v0_2; + void *temp_v0_3; + void *temp_v0_4; + void *temp_v0_5; + void *temp_v0_6; + void *temp_v0_7; + void *temp_v0_8; + void *temp_v0_9; + void *temp_v1; + void *temp_v1_10; + void *temp_v1_11; + void *temp_v1_2; + void *temp_v1_3; + void *temp_v1_4; + void *temp_v1_5; + void *temp_v1_6; + void *temp_v1_7; + void *temp_v1_8; + void *temp_v1_9; + + s32 phi_a0; + s32 phi_a0_2; + void *phi_v0; + void *phi_v1; + s32 phi_a0_3; + s32 phi_a0_4; + s32 phi_a0_5; + s32 phi_a0_6; + s32 phi_a0_7; + s32 phi_a0_8; + s32 phi_a0_9; + s32 phi_a0_10; + s32 phi_a0_11; + s32 phi_a0_12; + + D_800DC5B0 = 1; + + if (D_8015F894) { + switch (D_8015F894) { + case 0: + if (gModeSelection != 0) { + + } + temp_v0 = D_800DC530; + D_800DC5B8 = 0; + if (temp_v0 != 0) { + if (temp_v0 != 1) { + if (temp_v0 != 2) { + return; + } + D_8015F894 = 6U; + return; + } + D_8015F894 = 5U; + return; + } + D_8015F894 = 1U; + return; + case 5: + temp_v0_2 = D_800DC5EC; + temp_v0_2->unk2C = (s16) (temp_v0_2->unk2C - 4); + temp_v1 = D_800DC5F0; + temp_v1->unk2C = (s16) (temp_v1->unk2C - 4); + temp_v0_3 = D_800DC5EC; + temp_v0_3->unk30 = (s16) (temp_v0_3->unk30 - 2); + temp_v1_2 = D_800DC5F0; + temp_v1_2->unk30 = (s16) (temp_v1_2->unk30 + 2); + temp_v0_4 = D_800DC5EC; + phi_a0_10 = 0; + if ((s32) temp_v0_4->unk2C < 0xA0) { + temp_v0_4->unk2C = 0xA0; + phi_a0_10 = 1; + } + temp_v1_3 = D_800DC5F0; + phi_a0_7 = phi_a0_10; + if ((s32) temp_v1_3->unk2C < 0xA0) { + temp_v1_3->unk2C = 0xA0; + phi_a0_7 = phi_a0_10 + 1; + } + temp_v0_5 = D_800DC5EC; + phi_a0_4 = phi_a0_7; + if ((s32) temp_v0_5->unk30 < 0x50) { + temp_v0_5->unk30 = 0x50; + phi_a0_4 = phi_a0_7 + 1; + } + temp_v1_4 = D_800DC5F0; + phi_a0 = phi_a0_4; + if ((s32) temp_v1_4->unk30 >= 0xF1) { + temp_v1_4->unk30 = 0xF0; + phi_a0 = phi_a0_4 + 1; + } + temp_v0_6 = D_800DC5EC; + D_80150148 = (f32) ((f32) temp_v0_6->unk2C / (f32) temp_v0_6->unk2E); + if (phi_a0 == 4) { + D_8015F894 = 3U; + func_80092500(phi_a0, &D_800DC5EC, &D_800DC5F0, &D_8015F894); + func_80019DE4(); + func_80041D24(); + return; + } + // Duplicate return node #47. Try simplifying control flow for better match + return; + case 6: + temp_v0_7 = D_800DC5EC; + temp_v0_7->unk2E = (s16) (temp_v0_7->unk2E - 4); + temp_v1_5 = D_800DC5F0; + temp_v1_5->unk2E = (s16) (temp_v1_5->unk2E - 4); + temp_v0_8 = D_800DC5EC; + temp_v0_8->unk32 = (s16) (temp_v0_8->unk32 - 2); + temp_v1_6 = D_800DC5F0; + temp_v1_6->unk32 = (s16) (temp_v1_6->unk32 + 2); + temp_v0_9 = D_800DC5EC; + phi_a0_11 = 0; + if ((s32) temp_v0_9->unk2E < 0x78) { + temp_v0_9->unk2E = 0x78; + phi_a0_11 = 1; + } + temp_v1_7 = D_800DC5F0; + phi_a0_8 = phi_a0_11; + if ((s32) temp_v1_7->unk2E < 0x78) { + temp_v1_7->unk2E = 0x78; + phi_a0_8 = phi_a0_11 + 1; + } + temp_v0_10 = D_800DC5EC; + phi_a0_5 = phi_a0_8; + if ((s32) temp_v0_10->unk32 < 0x3C) { + temp_v0_10->unk32 = 0x3C; + phi_a0_5 = phi_a0_8 + 1; + } + temp_v1_8 = D_800DC5F0; + phi_a0_2 = phi_a0_5; + if ((s32) temp_v1_8->unk32 >= 0xB5) { + temp_v1_8->unk32 = 0xB4; + phi_a0_2 = phi_a0_5 + 1; + } + temp_v0_11 = D_800DC5EC; + D_80150148 = (f32) ((f32) temp_v0_11->unk2C / (f32) temp_v0_11->unk2E); + if (phi_a0_2 == 4) { + D_8015F894 = 3U; + func_80092500(phi_a0_2, &D_800DC5EC, &D_800DC5F0, &D_8015F894); + func_80019DE4(); + return; + } + // Duplicate return node #47. Try simplifying control flow for better match + return; + case 1: + temp_v0_12 = D_800DC5EC; + temp_v0_12->unk2E = (s16) (temp_v0_12->unk2E - 2); + temp_v0_13 = D_800DC5EC; + temp_v0_13->unk2C = (s16) ((s32) (temp_v0_13->unk2E * 0x140) / 0xF0); + temp_v0_14 = D_800DC5EC; + if ((s32) temp_v0_14->unk2E < 0x78) { + temp_v0_14->unk2E = 0x78; + temp_v0_15 = D_800DC5EC; + temp_v0_15->unk2C = (s16) ((s32) (temp_v0_15->unk2E * 0x140) / 0xF0); + D_8015F894 = 2U; + D_800DC5F0->unk2C = (s16) D_800DC5EC->unk2C; + D_800DC5F0->unk2E = (s16) D_800DC5EC->unk2E; + D_800DC5F0->unk30 = (s16) D_800DC5EC->unk30; + D_800DC5F0->unk32 = (s16) D_800DC5EC->unk32; + D_800DC52C = 2; + D_80150148 = (f32) D_802B9200; + gPlayerCountSelection1 = 2; + func_8003DB5C(0, &D_800DC5EC, &D_800DC5F0, &D_8015F894); + func_8005994C(); + return; + } + // Duplicate return node #47. Try simplifying control flow for better match + return; + case 2: + temp_v0_16 = D_800DC5EC; + temp_v0_16->unk30 = (s16) (temp_v0_16->unk30 - 4); + temp_v0_17 = D_800DC5EC; + temp_v0_17->unk32 = (s16) (temp_v0_17->unk32 - 2); + temp_v0_18 = D_800DC5EC; + phi_v0 = temp_v0_18; + phi_a0_12 = 0; + if ((s32) temp_v0_18->unk30 < 0x50) { + temp_v0_18->unk30 = 0x50; + phi_v0 = D_800DC5EC; + phi_a0_12 = 1; + } + phi_a0_9 = phi_a0_12; + if ((s32) phi_v0->unk32 < 0x3C) { + phi_v0->unk32 = 0x3C; + phi_a0_9 = phi_a0_12 + 1; + } + temp_v1_9 = D_800DC5F0; + temp_v1_9->unk30 = (s16) (temp_v1_9->unk30 + 4); + temp_v1_10 = D_800DC5F0; + temp_v1_10->unk32 = (s16) (temp_v1_10->unk32 + 2); + temp_v1_11 = D_800DC5F0; + phi_v1 = temp_v1_11; + phi_a0_6 = phi_a0_9; + if ((s32) temp_v1_11->unk30 >= 0xF1) { + temp_v1_11->unk30 = 0xF0; + phi_v1 = D_800DC5F0; + phi_a0_6 = phi_a0_9 + 1; + } + phi_a0_3 = phi_a0_6; + if ((s32) phi_v1->unk32 >= 0xB5) { + phi_v1->unk32 = 0xB4; + phi_a0_3 = phi_a0_6 + 1; + } + if (phi_a0_3 == 4) { + D_8015F894 = 7U; + D_802BA030 = 3U; + return; + } + // Duplicate return node #47. Try simplifying control flow for better match + return; + case 7: + temp_t8 = D_802BA030 - 1; + D_802BA030 = temp_t8; + if ((temp_t8 & 0xFFFF) == 0) { + D_8015F894 = 3U; + func_80092500(0, &D_8015F894); + if (gModeSelection == 0) { + func_80019DE4(); + return; + } + func_80019E58(); + return; + } + // Duplicate return node #47. Try simplifying control flow for better match + return; + case 4: + D_800DC5C0 = 1U; + D_800DC5C4 = 5; + D_800DC510 = 7; + func_8028E3A0(0, &D_8015F894); + // Duplicate return node #47. Try simplifying control flow for better match + return; + } + } else { + default: + } +} +*/ + +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028E678.s") + +void func_8028EC38(s32 arg0) { + D_80150124 = arg0; + D_800DC510 = 6; + func_800CA330(25); + func_800CA388(25); + D_800DC5B4 = 1; + D_800DC5B0 = 1; + D_800DC5B8 = 0; + D_802BA038 = 5; +} + +// Data misalignment +/* +void func_8028EC98(s32 arg0) { + + if (D_800DC530 == 3) { + return; + } + + func_800029B0(); + + switch (arg0) { + case 0: + case 7: + case 8: + case 14: + func_800C8EAC(3); + break; + case 10: + func_800C8EAC(21); + break; + case 4: + case 9: + func_800C8EAC(4); + break; + case 1: + case 15: + case 17: + func_800C8EAC(5); + break; + case 11: + func_800C8EAC(10); + break; + case 6: + func_800C8EAC(6); + break; + case 2: + func_800C8EAC(9); + break; + case 3: + func_800C8EAC(7); + break; + case 5: + case 12: + func_800C8EAC(8); + break; + case 13: + func_800C8EAC(18); + break; + case 18: + func_800C8EAC(19); + break; + case 16: + case 19: + func_800C8EAC(25); + break; + } + +} +*/ +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028EC98.s") +/* +void func_8028EDA8(void) { + ? *temp_v1; + u16 temp_v0; + u16 temp_v0_2; + u16 temp_v0_3; + u16 temp_v0_4; + ? *phi_v1; + + D_8015011E = 0xFFFF; + if (D_800DC51C == 0) { + func_8028EC98(gCurrentCourseId); + } + if (D_800DC510 == 2) { + D_800DC510 = 3; + } + phi_v1 = &D_800F6990; + do { + temp_v0 = phi_v1->unk0; + if (((temp_v0 & 0x8000) != 0) && ((temp_v0 & 0x2000) != 0)) { + phi_v1->unk0 = (u16) (temp_v0 ^ 0x2000); + } + temp_v0_2 = phi_v1->unkDD8; + if (((temp_v0_2 & 0x8000) != 0) && ((temp_v0_2 & 0x2000) != 0)) { + phi_v1->unkDD8 = (u16) (temp_v0_2 ^ 0x2000); + } + temp_v0_3 = phi_v1->unk1BB0; + if (((temp_v0_3 & 0x8000) != 0) && ((temp_v0_3 & 0x2000) != 0)) { + phi_v1->unk1BB0 = (u16) (temp_v0_3 ^ 0x2000); + } + temp_v0_4 = phi_v1->unk2988; + if (((temp_v0_4 & 0x8000) != 0) && ((temp_v0_4 & 0x2000) != 0)) { + phi_v1->unk2988 = (u16) (temp_v0_4 ^ 0x2000); + } + temp_v1 = phi_v1 + 0x3760; + phi_v1 = temp_v1; + } while (temp_v1 != &D_800FD850); +} +*/ +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028EDA8.s") + +// Probably data memed +/* +f32 func_8028EE8C(s32 i) { + f32 temp_f14; + temp_f14 = D_8015F8D8 - D_800F6990[i].unk_01C; + return gCourseTimer - ((D_802B9254 * temp_f14) / (temp_f14 + (D_800F6990[i].unk_028 - D_8015F8D8))); +} +*/ + +GLOBAL_ASM("asm/non_matchings/code_8028DF00/func_8028EE8C.s") + +void func_8028EEF0(s32 i) { + D_800F6990[i].unk_000 |= 0x800; +} +/* + +void func_8028EF28(void) { + Player *ply; + s16 currentPosition; + s32 i; + for(i = 0; i < 8; i++) + { + ply = (Player *)&D_800F6990[i]; + if ((D_800F6990[i].unk_000 & 0x8000) == 0) { + continue; + } + if (lapCount[i] < D_800F6990[i].unk_008) { + D_800F6990[i].unk_008--; + } else if (lapCount[i] > D_800F6990[i].unk_008) { + D_800F6990[i].unk_008++; + } + if ((D_800F6990[i].unk_000 & 0x4000) != 0) { + if (D_800F6990[i].unk_008 == 3) { + func_8028EEF0(i); + + currentPosition = D_800F6990[i].unk_004; + D_800F6990[i].unk_000 |= 0x1000; + if (currentPosition < 4) { + D_80150120 = 1; + } + func_800CA118((u8)i); + if ((D_802BA032 & 0x8000) == 0) { + D_802BA032 |= 0x8000; + } + if (gModeSelection == 0 && gPlayerCountSelection1 == 2 && D_802BA048 == 0) { + D_802BA048 = 1; + } + if ((D_800F6990[i].unk_000 & 0x100) == 0) { + D_800DC510 = 4; + } + if (gModeSelection == 1) { + func_80005AE8(ply); + } + if (gModeSelection == 2) { + D_802BA038 = 180; + if (currentPosition == 0) { + D_800DC5E8 = i; + } + switch(gPlayerCountSelection1) { + case 2: + if (currentPosition == 0) { + *(D_8015F8C4 + i) += 1; + } + if (*(D_8015F8C4 + i) > 99) { + *(D_8015F8C4 + i) = 99; + } + D_800DC510 = 5; + D_8015F8F6[1] = i; + D_800F6990->unk_00C |= 0x200000; + D_800F6990->unk_000 |= 0x1000; + func_800CA118((u8)i); + break; + case 3: + if (currentPosition < 3) { + *(D_8015F8C8 + i * 3 + currentPosition) += 1; + } + if (*(D_8015F8C8 + i * 3 + currentPosition) > 99) { + *(D_8015F8C8 + i * 3 + currentPosition) = 99; + } + if (currentPosition == 1) { + D_800DC510 = 5; + D_8015F8F6[2] = i; + *(D_8015F8C8 + i * 3 + 2) += 1; + if (*(D_8015F8C8 + i * 3 + 2) > 99) { + *(D_8015F8C8 + i * 3 + 2) == 99; + } + D_800F6990->unk_00C |= 0x200000; + D_800F6990->unk_000 |= 0x1000; + func_800CA118((u8)i); + } + break; + case 4: + if (currentPosition < 3) { + *(D_8015F8CC + i * 3 + currentPosition) += 1; + } + if (*(D_8015F8CC + i * 3 + currentPosition) > 99) { + *(D_8015F8CC + i * 3 + currentPosition) = 99; + } + if (currentPosition == 2) { + D_800DC510 = 5; + D_8015F8F6[3] = i; + D_800F6990->unk_00C |= 0x200000; + D_800F6990->unk_000 |= 0x1000; + func_800CA118((u8)i); + } + break; + } + + } + + } else if (D_800F6990[i].unk_008 == 2) { + if ((D_800F6990[i].unk_000 & 0x100) == 0) { + return; + } + if ((D_802BA032 & 0x4000) == 0) { + D_802BA032 |= 0x4000; + func_800CA49C(i); + } + } + } else if (D_800F6990[i].unk_008 == 3) { + func_8028EEF0(i); + if (gModeSelection == 1) { + func_80005AE8(ply); + } + } + + if ((D_802BA048 != 0) && (D_802BA048 != 100)) { + D_802BA048 = 100; + func_800074D4(); + } + } + +} +*/ +GLOBAL_ASM("asm/non_matchings/code_8028DF00/wip.s") +void func_8028F3E8(void) { + +} + +GLOBAL_ASM("asm/non_matchings/code_8028DF00/code_8028DF00.s") diff --git a/src/main.c b/src/main.c index c19883de2..7b3c13b71 100644 --- a/src/main.c +++ b/src/main.c @@ -57,8 +57,8 @@ extern u64 gspF3DLXTextStart[], gspF3DLXTextEnd[]; extern u64 gspF3DEXDataStart[]; extern u64 gspF3DLXDataStart[]; -extern u32 gPlayerCountSelection1; -extern u32 D_800DC50C; +extern s32 gPlayerCountSelection1; +extern s32 D_800DC50C; extern u32 gGfxSPTaskStack; extern u64 gGfxSPTaskOutputBuffer[]; @@ -86,6 +86,19 @@ extern u16 sController1Unplugged; extern u32 D_801502B4; extern u32 D_802F9F80; +extern s32 D_8031F780; +extern s32 D_80344F80[]; +extern s32 D_8036A780; + +extern s32 D_8015AB80; +extern s32 D_801589D0; +extern void thread5_game_logic(); +extern void thread4_audio(); +extern s32 D_8015CD30; +extern f64 D_800EB610; + +extern s16 gCurrentlyLoadedCourseId; + extern struct SPTask* sNextDisplaySPTask; extern u16 sRenderingFramebuffer; @@ -850,8 +863,34 @@ GLOBAL_ASM("asm/non_matchings/main/func_8000142C.s") #endif #ifdef MIPS_TO_C -// generated by mips_to_c commit cae1414eb1bf34873a831a523692fe29870a6f3b -// TODO: implement jtables +// Cannot match until data compilable +void func_80001ECC(void) { + + switch (D_800DC50C) { + case 7: + func_80001404(); + break; + case 0: + case 1: + case 2: + case 3: + osViBlack(0); + func_800B0350(); + func_80000CA8(); + func_80094A64(gGfxPool); + break; + case 4: + func_8000142C(); + break; + case 5: + func_80281548(); + break; + case 9: + func_802802AC(); + // Duplicate return node #7. Try simplifying control flow for better match + break; + } +} #else GLOBAL_ASM("asm/non_matchings/main/func_80001ECC.s") #endif @@ -1035,29 +1074,24 @@ GLOBAL_ASM("asm/non_matchings/main/func_800022DC.s") #ifdef MIPS_TO_C // generated by mips_to_c commit cae1414eb1bf34873a831a523692fe29870a6f3b +/* void thread3_video(void *arg0) { - void *temp_v0; - void *phi_v0; - - gPhysicalFramebuffers.unk0 = &D_8031F780; - gPhysicalFramebuffers.unk4 = &D_80344F80; - gPhysicalFramebuffers.unk8 = &D_8036A780; - phi_v0 = &D_80344F80; -loop_1: + u64 *temp_v0; + s32 i; + gPhysicalFramebuffers[0] = (uintptr_t *) &D_8031F780; + gPhysicalFramebuffers[1] = (uintptr_t *) &D_80344F80; + gPhysicalFramebuffers[2] = (uintptr_t *) &D_8036A780; + //phi_v0 = &D_80344F80; +//loop_1: // potential unrolled loop? - temp_v0 = phi_v0 + 0x20; - temp_v0->unk-4 = 0; - temp_v0->unk-8 = 0; - temp_v0->unk-C = 0; - temp_v0->unk-10 = 0; - temp_v0->unk-14 = 0; - temp_v0->unk-18 = 0; - temp_v0->unk-1C = 0; - temp_v0->unk-20 = 0; - phi_v0 = temp_v0; - if (temp_v0 != &D_8036A780) { - goto loop_1; + temp_v0 = &D_80344F80[0]; + for (i = 0; i < D_8036A780; i++) { + temp_v0[i] = 0; } + + //if (D_80344F80 != &D_8036A780) { + // goto loop_1; + //} setup_mesg_queues(); init_game(); create_thread(&D_8015AB80, 4, &thread4_audio, 0, &D_8015CD30, 0x14); @@ -1069,7 +1103,7 @@ loop_1: while (1) { OSMesg msg; osRecvMesg(&gIntrMesgQueue, &msg, OS_MESG_BLOCK); - switch (msg) { + switch ((u32) msg) { case MESG_SP_COMPLETE: func_800022DC(); break; @@ -1085,6 +1119,7 @@ loop_1: } } } +*/ #else GLOBAL_ASM("asm/non_matchings/main/thread3_video.s") #endif @@ -1114,7 +1149,43 @@ void func_80002658(void) { } #ifdef MIPS_TO_C -// TODO: implement jtables +void func_80002684(void) { + switch (D_800DC50C) { + case 0: + func_80002658(); + gCurrentlyLoadedCourseId = 255; + break; + case 1: + func_800025D4(); + gCurrentlyLoadedCourseId = 255; + break; + case 2: + func_80002600(); + gCurrentlyLoadedCourseId = 255; + break; + case 3: + func_8000262C(); + gCurrentlyLoadedCourseId = 255; + break; + case 4: + func_800010CC(); + func_80002A18(); + break; + case 5: + gCurrentlyLoadedCourseId = 255; + func_8000105C(); + load_ending_sequence_royalraceway(); + break; + case 9: + gCurrentlyLoadedCourseId = 255; + func_800010CC(); + func_8000105C(); + func_80280420(); + // Duplicate return node #9. Try simplifying control flow for better match + break; + } +} + #else GLOBAL_ASM("asm/non_matchings/main/func_80002684.s") #endif