Match Mario Kart 64 (#709)

* Commit unpr'd matches

* fix compile

* Commit matching func_80086074

* More matches

* Fix missed labelling

* menus.c formatting

* More matches

* Match update_player_path_completion

* Formatting

* Match func_80050E34

* Match EU Audio init

* Match func_800C16E8

* Match synthesis_process_note

* Match func_80009B60

* Match

* Match cpu_use_item_strategy

* Match render_menus

* match last func
This commit is contained in:
MegaMech
2025-05-11 18:03:50 -06:00
committed by GitHub
parent 30fef62f81
commit 89fb420555
52 changed files with 1841 additions and 16811 deletions
-170
View File
@@ -1,170 +0,0 @@
.section .late_rodata
glabel D_800F35C0
.float 3.333333333
.section .text
glabel func_800C16E8
/* 0C22E8 800C16E8 27ADFFE8 */ addiu $t5, $sp, -0x18
/* 0C22EC 800C16EC F5B40010 */ sdc1 $f20, 0x10($t5)
/* 0C22F0 800C16F0 E5AE001C */ swc1 $f14, 0x1c($t5)
/* 0C22F4 800C16F4 ADA60020 */ sw $a2, 0x20($t5)
/* 0C22F8 800C16F8 3C0F800F */ lui $t7, %hi(D_800EA1C0) # $t7, 0x800f
/* 0C22FC 800C16FC 91EFA1C0 */ lbu $t7, %lo(D_800EA1C0)($t7)
/* 0C2300 800C1700 30CE00FF */ andi $t6, $a2, 0xff
/* 0C2304 800C1704 01C03025 */ move $a2, $t6
/* 0C2308 800C1708 15E00082 */ bnez $t7, .L800C1914
/* 0C230C 800C170C 01A0E825 */ move $sp, $t5
/* 0C2310 800C1710 3C18800F */ lui $t8, %hi(D_800EA0F4) # $t8, 0x800f
/* 0C2314 800C1714 9318A0F4 */ lbu $t8, %lo(D_800EA0F4)($t8)
/* 0C2318 800C1718 44802000 */ mtc1 $zero, $f4
/* 0C231C 800C171C 44804000 */ mtc1 $zero, $f8
/* 0C2320 800C1720 44805000 */ mtc1 $zero, $f10
/* 0C2324 800C1724 13000009 */ beqz $t8, .L800C174C
/* 0C2328 800C1728 3C0142C8 */ li $at, 0x42C80000 # 100.000000
/* 0C232C 800C172C 3C014120 */ li $at, 0x41200000 # 10.000000
/* 0C2330 800C1730 44818000 */ mtc1 $at, $f16
/* 0C2334 800C1734 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 0C2338 800C1738 44817000 */ mtc1 $at, $f14
/* 0C233C 800C173C 3C014020 */ li $at, 0x40200000 # 2.500000
/* 0C2340 800C1740 44819000 */ mtc1 $at, $f18
/* 0C2344 800C1744 10000008 */ b .L800C1768
/* 0C2348 800C1748 46008086 */ mov.s $f2, $f16
.L800C174C:
/* 0C234C 800C174C 44811000 */ mtc1 $at, $f2
/* 0C2350 800C1750 3C014348 */ li $at, 0x43480000 # 200.000000
/* 0C2354 800C1754 44817000 */ mtc1 $at, $f14
/* 0C2358 800C1758 3C0140A0 */ li $at, 0x40A00000 # 5.000000
/* 0C235C 800C175C 44818000 */ mtc1 $at, $f16
/* 0C2360 800C1760 3C01800F */ lui $at, %hi(D_800F35C0) # $at, 0x800f
/* 0C2364 800C1764 C43235C0 */ lwc1 $f18, %lo(D_800F35C0)($at)
.L800C1768:
/* 0C2368 800C1768 4604603C */ c.lt.s $f12, $f4
/* 0C236C 800C176C 00000000 */ nop
/* 0C2370 800C1770 45020004 */ bc1fl .L800C1784
/* 0C2374 800C1774 46006506 */ mov.s $f20, $f12
/* 0C2378 800C1778 10000002 */ b .L800C1784
/* 0C237C 800C177C 46006507 */ neg.s $f20, $f12
/* 0C2380 800C1780 46006506 */ mov.s $f20, $f12
.L800C1784:
/* 0C2384 800C1784 4614103C */ c.lt.s $f2, $f20
/* 0C2388 800C1788 00000000 */ nop
/* 0C238C 800C178C 45020003 */ bc1fl .L800C179C
/* 0C2390 800C1790 C5A6001C */ lwc1 $f6, 0x1c($t5)
/* 0C2394 800C1794 46001506 */ mov.s $f20, $f2
/* 0C2398 800C1798 C5A6001C */ lwc1 $f6, 0x1c($t5)
.L800C179C:
/* 0C239C 800C179C 4608303C */ c.lt.s $f6, $f8
/* 0C23A0 800C17A0 00000000 */ nop
/* 0C23A4 800C17A4 45020004 */ bc1fl .L800C17B8
/* 0C23A8 800C17A8 C5A0001C */ lwc1 $f0, 0x1c($t5)
/* 0C23AC 800C17AC 10000002 */ b .L800C17B8
/* 0C23B0 800C17B0 46003007 */ neg.s $f0, $f6
/* 0C23B4 800C17B4 C5A0001C */ lwc1 $f0, 0x1c($t5)
.L800C17B8:
/* 0C23B8 800C17B8 4600103C */ c.lt.s $f2, $f0
/* 0C23BC 800C17BC 00000000 */ nop
/* 0C23C0 800C17C0 45020003 */ bc1fl .L800C17D0
/* 0C23C4 800C17C4 460A6032 */ c.eq.s $f12, $f10
/* 0C23C8 800C17C8 46001006 */ mov.s $f0, $f2
/* 0C23CC 800C17CC 460A6032 */ c.eq.s $f12, $f10
.L800C17D0:
/* 0C23D0 800C17D0 00000000 */ nop
/* 0C23D4 800C17D4 4502000E */ bc1fl .L800C1810
/* 0C23D8 800C17D8 44803000 */ mtc1 $zero, $f6
/* 0C23DC 800C17DC C5A4001C */ lwc1 $f4, 0x1c($t5)
/* 0C23E0 800C17E0 44804000 */ mtc1 $zero, $f8
/* 0C23E4 800C17E4 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0C23E8 800C17E8 46082032 */ c.eq.s $f4, $f8
/* 0C23EC 800C17EC 00000000 */ nop
/* 0C23F0 800C17F0 45020007 */ bc1fl .L800C1810
/* 0C23F4 800C17F4 44803000 */ mtc1 $zero, $f6
/* 0C23F8 800C17F8 44811000 */ mtc1 $at, $f2
/* 0C23FC 800C17FC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C2400 800C1800 44816000 */ mtc1 $at, $f12
/* 0C2404 800C1804 1000002C */ b .L800C18B8
/* 0C2408 800C1808 4602603C */ c.lt.s $f12, $f2
/* 0C240C 800C180C 44803000 */ mtc1 $zero, $f6
.L800C1810:
/* 0C2410 800C1810 00000000 */ nop
/* 0C2414 800C1814 460C303E */ c.le.s $f6, $f12
/* 0C2418 800C1818 00000000 */ nop
/* 0C241C 800C181C 4502000E */ bc1fl .L800C1858
/* 0C2420 800C1820 44802000 */ mtc1 $zero, $f4
/* 0C2424 800C1824 4614003E */ c.le.s $f0, $f20
/* 0C2428 800C1828 00000000 */ nop
/* 0C242C 800C182C 4502000A */ bc1fl .L800C1858
/* 0C2430 800C1830 44802000 */ mtc1 $zero, $f4
/* 0C2434 800C1834 46007101 */ sub.s $f4, $f14, $f0
/* 0C2438 800C1838 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C243C 800C183C 44816000 */ mtc1 $at, $f12
/* 0C2440 800C1840 46147281 */ sub.s $f10, $f14, $f20
/* 0C2444 800C1844 46048202 */ mul.s $f8, $f16, $f4
/* 0C2448 800C1848 46085183 */ div.s $f6, $f10, $f8
/* 0C244C 800C184C 10000019 */ b .L800C18B4
/* 0C2450 800C1850 46066081 */ sub.s $f2, $f12, $f6
/* 0C2454 800C1854 44802000 */ mtc1 $zero, $f4
.L800C1858:
/* 0C2458 800C1858 00000000 */ nop
/* 0C245C 800C185C 4604603C */ c.lt.s $f12, $f4
/* 0C2460 800C1860 00000000 */ nop
/* 0C2464 800C1864 4500000C */ bc1f .L800C1898
/* 0C2468 800C1868 00000000 */ nop
/* 0C246C 800C186C 4614003E */ c.le.s $f0, $f20
/* 0C2470 800C1870 00000000 */ nop
/* 0C2474 800C1874 45000008 */ bc1f .L800C1898
/* 0C2478 800C1878 00000000 */ nop
/* 0C247C 800C187C 46007201 */ sub.s $f8, $f14, $f0
/* 0C2480 800C1880 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C2484 800C1884 44816000 */ mtc1 $at, $f12
/* 0C2488 800C1888 46147281 */ sub.s $f10, $f14, $f20
/* 0C248C 800C188C 46088182 */ mul.s $f6, $f16, $f8
/* 0C2490 800C1890 10000008 */ b .L800C18B4
/* 0C2494 800C1894 46065083 */ div.s $f2, $f10, $f6
.L800C1898:
/* 0C2498 800C1898 46009102 */ mul.s $f4, $f18, $f0
/* 0C249C 800C189C 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0C24A0 800C18A0 44815000 */ mtc1 $at, $f10
/* 0C24A4 800C18A4 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0C24A8 800C18A8 46046203 */ div.s $f8, $f12, $f4
/* 0C24AC 800C18AC 44816000 */ mtc1 $at, $f12
/* 0C24B0 800C18B0 460A4080 */ add.s $f2, $f8, $f10
.L800C18B4:
/* 0C24B4 800C18B4 4602603C */ c.lt.s $f12, $f2
.L800C18B8:
/* 0C24B8 800C18B8 3C0142FE */ li $at, 0x42FE0000 # 127.000000
/* 0C24BC 800C18BC 44803000 */ mtc1 $zero, $f6
/* 0C24C0 800C18C0 44812000 */ mtc1 $at, $f4
/* 0C24C4 800C18C4 45020003 */ bc1fl .L800C18D4
/* 0C24C8 800C18C8 4606103C */ c.lt.s $f2, $f6
/* 0C24CC 800C18CC 46006086 */ mov.s $f2, $f12
/* 0C24D0 800C18D0 4606103C */ c.lt.s $f2, $f6
.L800C18D4:
/* 0C24D4 800C18D4 00000000 */ nop
/* 0C24D8 800C18D8 45000003 */ bc1f .L800C18E8
/* 0C24DC 800C18DC 00000000 */ nop
/* 0C24E0 800C18E0 44801000 */ mtc1 $zero, $f2
/* 0C24E4 800C18E4 00000000 */ nop
.L800C18E8:
/* 0C24E8 800C18E8 46041202 */ mul.s $f8, $f2, $f4
/* 0C24EC 800C18EC 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0C24F0 800C18F0 44815000 */ mtc1 $at, $f10
/* 0C24F4 800C18F4 00000000 */ nop
/* 0C24F8 800C18F8 460A4180 */ add.s $f6, $f8, $f10
/* 0C24FC 800C18FC 4600310D */ trunc.w.s $f4, $f6
/* 0C2500 800C1900 44022000 */ mfc1 $v0, $f4
/* 0C2504 800C1904 00000000 */ nop
/* 0C2508 800C1908 00024600 */ sll $t0, $v0, 0x18
/* 0C250C 800C190C 10000006 */ b .L800C1928
/* 0C2510 800C1910 00081603 */ sra $v0, $t0, 0x18
.L800C1914:
/* 0C2514 800C1914 30C20001 */ andi $v0, $a2, 1
/* 0C2518 800C1918 000251C0 */ sll $t2, $v0, 7
/* 0C251C 800C191C 01425023 */ subu $t2, $t2, $v0
/* 0C2520 800C1920 000A5E00 */ sll $t3, $t2, 0x18
/* 0C2524 800C1924 000B1603 */ sra $v0, $t3, 0x18
.L800C1928:
/* 0C2528 800C1928 D5B40010 */ ldc1 $f20, 0x10($t5)
/* 0C252C 800C192C 03E00008 */ jr $ra
/* 0C2530 800C1930 25BD0018 */ addiu $sp, $t5, 0x18
-530
View File
@@ -1,530 +0,0 @@
.section .late_rodata
glabel D_800F366C
.float 4000000.0
glabel D_800F3670
.float 10000000000.0
.section .text
glabel func_800C4888
/* 0C5488 800C4888 27BDFF30 */ addiu $sp, $sp, -0xd0
/* 0C548C 800C488C AFBE0048 */ sw $fp, 0x48($sp)
/* 0C5490 800C4890 AFB5003C */ sw $s5, 0x3c($sp)
/* 0C5494 800C4894 AFB40038 */ sw $s4, 0x38($sp)
/* 0C5498 800C4898 AFB20030 */ sw $s2, 0x30($sp)
/* 0C549C 800C489C AFB1002C */ sw $s1, 0x2c($sp)
/* 0C54A0 800C48A0 3C027FFF */ lui $v0, (0x7FFFFFFF >> 16) # lui $v0, 0x7fff
/* 0C54A4 800C48A4 309500FF */ andi $s5, $a0, 0xff
/* 0C54A8 800C48A8 03A0F025 */ move $fp, $sp
/* 0C54AC 800C48AC AFBF004C */ sw $ra, 0x4c($sp)
/* 0C54B0 800C48B0 AFB70044 */ sw $s7, 0x44($sp)
/* 0C54B4 800C48B4 AFB60040 */ sw $s6, 0x40($sp)
/* 0C54B8 800C48B8 AFB30034 */ sw $s3, 0x34($sp)
/* 0C54BC 800C48BC AFB00028 */ sw $s0, 0x28($sp)
/* 0C54C0 800C48C0 AFA400D0 */ sw $a0, 0xd0($sp)
/* 0C54C4 800C48C4 00009025 */ move $s2, $zero
/* 0C54C8 800C48C8 3442FFFF */ ori $v0, (0x7FFFFFFF & 0xFFFF) # ori $v0, $v0, 0xffff
/* 0C54CC 800C48CC 27B1007C */ addiu $s1, $sp, 0x7c
/* 0C54D0 800C48D0 241400FF */ li $s4, 255
/* 0C54D4 800C48D4 00005825 */ move $t3, $zero
.L800C48D8:
/* 0C54D8 800C48D8 000B70C0 */ sll $t6, $t3, 3
/* 0C54DC 800C48DC 256B0001 */ addiu $t3, $t3, 1
/* 0C54E0 800C48E0 316F00FF */ andi $t7, $t3, 0xff
/* 0C54E4 800C48E4 29E10008 */ slti $at, $t7, 8
/* 0C54E8 800C48E8 022E3821 */ addu $a3, $s1, $t6
/* 0C54EC 800C48EC 01E05825 */ move $t3, $t7
/* 0C54F0 800C48F0 ACE20000 */ sw $v0, ($a3)
/* 0C54F4 800C48F4 1420FFF8 */ bnez $at, .L800C48D8
/* 0C54F8 800C48F8 A0F40004 */ sb $s4, 4($a3)
/* 0C54FC 800C48FC 0015C100 */ sll $t8, $s5, 4
/* 0C5500 800C4900 3C1F8019 */ lui $ra, %hi(sSoundBanks) # $ra, 0x8019
/* 0C5504 800C4904 0315C023 */ subu $t8, $t8, $s5
/* 0C5508 800C4908 27FF1420 */ addiu $ra, %lo(sSoundBanks) # addiu $ra, $ra, 0x1420
/* 0C550C 800C490C 0018C180 */ sll $t8, $t8, 6
/* 0C5510 800C4910 03F8C821 */ addu $t9, $ra, $t8
/* 0C5514 800C4914 9333002B */ lbu $s3, 0x2b($t9)
/* 0C5518 800C4918 241700FF */ li $s7, 255
/* 0C551C 800C491C 00008025 */ move $s0, $zero
/* 0C5520 800C4920 12F300F7 */ beq $s7, $s3, .L800C4D00
/* 0C5524 800C4924 00157100 */ sll $t6, $s5, 4
/* 0C5528 800C4928 01D57023 */ subu $t6, $t6, $s5
/* 0C552C 800C492C 000E7180 */ sll $t6, $t6, 6
/* 0C5530 800C4930 03EE7821 */ addu $t7, $ra, $t6
/* 0C5534 800C4934 AFCF006C */ sw $t7, 0x6c($fp)
/* 0C5538 800C4938 24160030 */ li $s6, 48
/* 0C553C 800C493C 240D0001 */ li $t5, 1
/* 0C5540 800C4940 3C020800 */ lui $v0, 0x800
.L800C4944:
/* 0C5544 800C4944 02760019 */ multu $s3, $s6
/* 0C5548 800C4948 8FD8006C */ lw $t8, 0x6c($fp)
/* 0C554C 800C494C 32A400FF */ andi $a0, $s5, 0xff
/* 0C5550 800C4950 0000C812 */ mflo $t9
/* 0C5554 800C4954 03195021 */ addu $t2, $t8, $t9
/* 0C5558 800C4958 914E0028 */ lbu $t6, 0x28($t2)
/* 0C555C 800C495C 55AE0009 */ bnel $t5, $t6, .L800C4984
/* 0C5560 800C4960 914F0029 */ lbu $t7, 0x29($t2)
/* 0C5564 800C4964 8D4F0024 */ lw $t7, 0x24($t2)
/* 0C5568 800C4968 01E2C024 */ and $t8, $t7, $v0
/* 0C556C 800C496C 54580005 */ bnel $v0, $t8, .L800C4984
/* 0C5570 800C4970 914F0029 */ lbu $t7, 0x29($t2)
/* 0C5574 800C4974 91590029 */ lbu $t9, 0x29($t2)
/* 0C5578 800C4978 272EFFFF */ addiu $t6, $t9, -1
/* 0C557C 800C497C A14E0029 */ sb $t6, 0x29($t2)
/* 0C5580 800C4980 914F0029 */ lbu $t7, 0x29($t2)
.L800C4984:
/* 0C5584 800C4984 55E00009 */ bnel $t7, $zero, .L800C49AC
/* 0C5588 800C4988 91580028 */ lbu $t8, 0x28($t2)
/* 0C558C 800C498C 0C0311CF */ jal delete_sound_from_bank
/* 0C5590 800C4990 326500FF */ andi $a1, $s3, 0xff
/* 0C5594 800C4994 3C1F8019 */ lui $ra, %hi(sSoundBanks) # $ra, 0x8019
/* 0C5598 800C4998 27FF1420 */ addiu $ra, %lo(sSoundBanks) # addiu $ra, $ra, 0x1420
/* 0C559C 800C499C 240D0001 */ li $t5, 1
/* 0C55A0 800C49A0 100000D0 */ b .L800C4CE4
/* 0C55A4 800C49A4 3C020800 */ lui $v0, 0x800
/* 0C55A8 800C49A8 91580028 */ lbu $t8, 0x28($t2)
.L800C49AC:
/* 0C55AC 800C49AC 130000CD */ beqz $t8, .L800C4CE4
/* 0C55B0 800C49B0 00000000 */ nop
/* 0C55B4 800C49B4 8D420000 */ lw $v0, ($t2)
/* 0C55B8 800C49B8 3C19800F */ lui $t9, %hi(D_800EA1C8) # $t9, 0x800f
/* 0C55BC 800C49BC 2739A1C8 */ addiu $t9, %lo(D_800EA1C8) # addiu $t9, $t9, -0x5e38
/* 0C55C0 800C49C0 57220005 */ bnel $t9, $v0, .L800C49D8
/* 0C55C4 800C49C4 8D4E0008 */ lw $t6, 8($t2)
/* 0C55C8 800C49C8 44802000 */ mtc1 $zero, $f4
/* 0C55CC 800C49CC 10000009 */ b .L800C49F4
/* 0C55D0 800C49D0 E544001C */ swc1 $f4, 0x1c($t2)
/* 0C55D4 800C49D4 8D4E0008 */ lw $t6, 8($t2)
.L800C49D8:
/* 0C55D8 800C49D8 C4420000 */ lwc1 $f2, ($v0)
/* 0C55DC 800C49DC C5C00000 */ lwc1 $f0, ($t6)
/* 0C55E0 800C49E0 46000182 */ mul.s $f6, $f0, $f0
/* 0C55E4 800C49E4 00000000 */ nop
/* 0C55E8 800C49E8 46021202 */ mul.s $f8, $f2, $f2
/* 0C55EC 800C49EC 46083280 */ add.s $f10, $f6, $f8
/* 0C55F0 800C49F0 E54A001C */ swc1 $f10, 0x1c($t2)
.L800C49F4:
/* 0C55F4 800C49F4 8D420024 */ lw $v0, 0x24($t2)
/* 0C55F8 800C49F8 3043FF00 */ andi $v1, $v0, 0xff00
/* 0C55FC 800C49FC 00037A02 */ srl $t7, $v1, 8
/* 0C5600 800C4A00 31F800FF */ andi $t8, $t7, 0xff
/* 0C5604 800C4A04 0002CAC0 */ sll $t9, $v0, 0xb
/* 0C5608 800C4A08 07210010 */ bgez $t9, .L800C4A4C
/* 0C560C 800C4A0C 03001825 */ move $v1, $t8
/* 0C5610 800C4A10 02F81023 */ subu $v0, $s7, $t8
/* 0C5614 800C4A14 00420019 */ multu $v0, $v0
/* 0C5618 800C4A18 C542001C */ lwc1 $f2, 0x1c($t2)
/* 0C561C 800C4A1C 00007012 */ mflo $t6
/* 0C5620 800C4A20 000E7880 */ sll $t7, $t6, 2
/* 0C5624 800C4A24 01EE7823 */ subu $t7, $t7, $t6
/* 0C5628 800C4A28 000F7880 */ sll $t7, $t7, 2
/* 0C562C 800C4A2C 01EE7823 */ subu $t7, $t7, $t6
/* 0C5630 800C4A30 000F7880 */ sll $t7, $t7, 2
/* 0C5634 800C4A34 01EE7821 */ addu $t7, $t7, $t6
/* 0C5638 800C4A38 000F78C0 */ sll $t7, $t7, 3
/* 0C563C 800C4A3C 01EE7821 */ addu $t7, $t7, $t6
/* 0C5640 800C4A40 000F7880 */ sll $t7, $t7, 2
/* 0C5644 800C4A44 10000041 */ b .L800C4B4C
/* 0C5648 800C4A48 AD4F0020 */ sw $t7, 0x20($t2)
.L800C4A4C:
/* 0C564C 800C4A4C 4458F800 */ cfc1 $t8, $31
/* 0C5650 800C4A50 24190001 */ li $t9, 1
/* 0C5654 800C4A54 44D9F800 */ ctc1 $t9, $31
/* 0C5658 800C4A58 C542001C */ lwc1 $f2, 0x1c($t2)
/* 0C565C 800C4A5C 02E31023 */ subu $v0, $s7, $v1
/* 0C5660 800C4A60 3C014F00 */ li $at, 0x4F000000 # 2147483648.000000
/* 0C5664 800C4A64 46001424 */ cvt.w.s $f16, $f2
/* 0C5668 800C4A68 4459F800 */ cfc1 $t9, $31
/* 0C566C 800C4A6C 00000000 */ nop
/* 0C5670 800C4A70 33390078 */ andi $t9, $t9, 0x78
/* 0C5674 800C4A74 53200013 */ beql $t9, $zero, .L800C4AC4
/* 0C5678 800C4A78 44198000 */ mfc1 $t9, $f16
/* 0C567C 800C4A7C 44818000 */ mtc1 $at, $f16
/* 0C5680 800C4A80 24190001 */ li $t9, 1
/* 0C5684 800C4A84 46101401 */ sub.s $f16, $f2, $f16
/* 0C5688 800C4A88 44D9F800 */ ctc1 $t9, $31
/* 0C568C 800C4A8C 00000000 */ nop
/* 0C5690 800C4A90 46008424 */ cvt.w.s $f16, $f16
/* 0C5694 800C4A94 4459F800 */ cfc1 $t9, $31
/* 0C5698 800C4A98 00000000 */ nop
/* 0C569C 800C4A9C 33390078 */ andi $t9, $t9, 0x78
/* 0C56A0 800C4AA0 17200005 */ bnez $t9, .L800C4AB8
/* 0C56A4 800C4AA4 00000000 */ nop
/* 0C56A8 800C4AA8 44198000 */ mfc1 $t9, $f16
/* 0C56AC 800C4AAC 3C018000 */ lui $at, 0x8000
/* 0C56B0 800C4AB0 10000007 */ b .L800C4AD0
/* 0C56B4 800C4AB4 0321C825 */ or $t9, $t9, $at
.L800C4AB8:
/* 0C56B8 800C4AB8 10000005 */ b .L800C4AD0
/* 0C56BC 800C4ABC 2419FFFF */ li $t9, -1
/* 0C56C0 800C4AC0 44198000 */ mfc1 $t9, $f16
.L800C4AC4:
/* 0C56C4 800C4AC4 00000000 */ nop
/* 0C56C8 800C4AC8 0720FFFB */ bltz $t9, .L800C4AB8
/* 0C56CC 800C4ACC 00000000 */ nop
.L800C4AD0:
/* 0C56D0 800C4AD0 00420019 */ multu $v0, $v0
/* 0C56D4 800C4AD4 44D8F800 */ ctc1 $t8, $31
/* 0C56D8 800C4AD8 44809000 */ mtc1 $zero, $f18
/* 0C56DC 800C4ADC 3C0140C0 */ li $at, 0x40C00000 # 6.000000
/* 0C56E0 800C4AE0 00007012 */ mflo $t6
/* 0C56E4 800C4AE4 000E7880 */ sll $t7, $t6, 2
/* 0C56E8 800C4AE8 01EE7823 */ subu $t7, $t7, $t6
/* 0C56EC 800C4AEC 000F7880 */ sll $t7, $t7, 2
/* 0C56F0 800C4AF0 01EE7823 */ subu $t7, $t7, $t6
/* 0C56F4 800C4AF4 000F7880 */ sll $t7, $t7, 2
/* 0C56F8 800C4AF8 01EE7821 */ addu $t7, $t7, $t6
/* 0C56FC 800C4AFC 000F78C0 */ sll $t7, $t7, 3
/* 0C5700 800C4B00 01EE7821 */ addu $t7, $t7, $t6
/* 0C5704 800C4B04 8D4E0008 */ lw $t6, 8($t2)
/* 0C5708 800C4B08 000F7880 */ sll $t7, $t7, 2
/* 0C570C 800C4B0C 032FC021 */ addu $t8, $t9, $t7
/* 0C5710 800C4B10 AD580020 */ sw $t8, 0x20($t2)
/* 0C5714 800C4B14 C5C00000 */ lwc1 $f0, ($t6)
/* 0C5718 800C4B18 4600903C */ c.lt.s $f18, $f0
/* 0C571C 800C4B1C 00000000 */ nop
/* 0C5720 800C4B20 4502000B */ bc1fl .L800C4B50
/* 0C5724 800C4B24 8D430024 */ lw $v1, 0x24($t2)
/* 0C5728 800C4B28 44812000 */ mtc1 $at, $f4
/* 0C572C 800C4B2C 0300C825 */ move $t9, $t8
/* 0C5730 800C4B30 C542001C */ lwc1 $f2, 0x1c($t2)
/* 0C5734 800C4B34 46040182 */ mul.s $f6, $f0, $f4
/* 0C5738 800C4B38 4600320D */ trunc.w.s $f8, $f6
/* 0C573C 800C4B3C 44184000 */ mfc1 $t8, $f8
/* 0C5740 800C4B40 00000000 */ nop
/* 0C5744 800C4B44 03387021 */ addu $t6, $t9, $t8
/* 0C5748 800C4B48 AD4E0020 */ sw $t6, 0x20($t2)
.L800C4B4C:
/* 0C574C 800C4B4C 8D430024 */ lw $v1, 0x24($t2)
.L800C4B50:
/* 0C5750 800C4B50 3C010003 */ lui $at, 3
/* 0C5754 800C4B54 00617824 */ and $t7, $v1, $at
/* 0C5758 800C4B58 000FCC02 */ srl $t9, $t7, 0x10
/* 0C575C 800C4B5C 333800FF */ andi $t8, $t9, 0xff
/* 0C5760 800C4B60 1300000A */ beqz $t8, .L800C4B8C
/* 0C5764 800C4B64 3C01800F */ lui $at, %hi(D_800F3670)
/* 0C5768 800C4B68 03180019 */ multu $t8, $t8
/* 0C576C 800C4B6C 3C01800F */ lui $at, %hi(D_800F366C) # $at, 0x800f
/* 0C5770 800C4B70 C42A366C */ lwc1 $f10, %lo(D_800F366C)($at)
/* 0C5774 800C4B74 00007012 */ mflo $t6
/* 0C5778 800C4B78 448E8000 */ mtc1 $t6, $f16
/* 0C577C 800C4B7C 00000000 */ nop
/* 0C5780 800C4B80 468084A0 */ cvt.s.w $f18, $f16
/* 0C5784 800C4B84 10000002 */ b .L800C4B90
/* 0C5788 800C4B88 46125003 */ div.s $f0, $f10, $f18
.L800C4B8C:
/* 0C578C 800C4B8C C4203670 */ lwc1 $f0, %lo(D_800F3670)($at)
.L800C4B90:
/* 0C5790 800C4B90 4602003C */ c.lt.s $f0, $f2
/* 0C5794 800C4B94 3C18800F */ lui $t8, %hi(D_800EA1C0) # $t8, 0x800f
/* 0C5798 800C4B98 4500001C */ bc1f .L800C4C0C
/* 0C579C 800C4B9C 00000000 */ nop
/* 0C57A0 800C4BA0 914F0028 */ lbu $t7, 0x28($t2)
/* 0C57A4 800C4BA4 24010004 */ li $at, 4
/* 0C57A8 800C4BA8 00002825 */ move $a1, $zero
/* 0C57AC 800C4BAC 55E1004C */ bnel $t7, $at, .L800C4CE0
/* 0C57B0 800C4BB0 327000FF */ andi $s0, $s3, 0xff
/* 0C57B4 800C4BB4 9159002C */ lbu $t9, 0x2c($t2)
/* 0C57B8 800C4BB8 3C010602 */ lui $at, 0x602
/* 0C57BC 800C4BBC AFCA0068 */ sw $t2, 0x68($fp)
/* 0C57C0 800C4BC0 0019C200 */ sll $t8, $t9, 8
/* 0C57C4 800C4BC4 0C032EFA */ jal func_800CBBE8
/* 0C57C8 800C4BC8 03012025 */ or $a0, $t8, $at
/* 0C57CC 800C4BCC 8FCA0068 */ lw $t2, 0x68($fp)
/* 0C57D0 800C4BD0 3C1F8019 */ lui $ra, %hi(sSoundBanks) # $ra, 0x8019
/* 0C57D4 800C4BD4 27FF1420 */ addiu $ra, %lo(sSoundBanks) # addiu $ra, $ra, 0x1420
/* 0C57D8 800C4BD8 8D4F0024 */ lw $t7, 0x24($t2)
/* 0C57DC 800C4BDC 240D0001 */ li $t5, 1
/* 0C57E0 800C4BE0 32A400FF */ andi $a0, $s5, 0xff
/* 0C57E4 800C4BE4 000FC900 */ sll $t9, $t7, 4
/* 0C57E8 800C4BE8 0723003D */ bgezl $t9, .L800C4CE0
/* 0C57EC 800C4BEC 327000FF */ andi $s0, $s3, 0xff
/* 0C57F0 800C4BF0 0C0311CF */ jal delete_sound_from_bank
/* 0C57F4 800C4BF4 326500FF */ andi $a1, $s3, 0xff
/* 0C57F8 800C4BF8 3C1F8019 */ lui $ra, %hi(sSoundBanks) # $ra, 0x8019
/* 0C57FC 800C4BFC 27FF1420 */ addiu $ra, %lo(sSoundBanks) # addiu $ra, $ra, 0x1420
/* 0C5800 800C4C00 240D0001 */ li $t5, 1
/* 0C5804 800C4C04 10000035 */ b .L800C4CDC
/* 0C5808 800C4C08 321300FF */ andi $s3, $s0, 0xff
.L800C4C0C:
/* 0C580C 800C4C0C 9318A1C0 */ lbu $t8, %lo(D_800EA1C0)($t8)
/* 0C5810 800C4C10 3C0C800F */ lui $t4, %hi(D_800EA188)
/* 0C5814 800C4C14 00005825 */ move $t3, $zero
/* 0C5818 800C4C18 00187080 */ sll $t6, $t8, 2
/* 0C581C 800C4C1C 01D87023 */ subu $t6, $t6, $t8
/* 0C5820 800C4C20 000E7040 */ sll $t6, $t6, 1
/* 0C5824 800C4C24 01D57821 */ addu $t7, $t6, $s5
/* 0C5828 800C4C28 018F6021 */ addu $t4, $t4, $t7
/* 0C582C 800C4C2C 918CA188 */ lbu $t4, %lo(D_800EA188)($t4)
/* 0C5830 800C4C30 01804825 */ move $t1, $t4
/* 0C5834 800C4C34 19200029 */ blez $t1, .L800C4CDC
/* 0C5838 800C4C38 01204025 */ move $t0, $t1
.L800C4C3C:
/* 0C583C 800C4C3C 000BC8C0 */ sll $t9, $t3, 3
/* 0C5840 800C4C40 02393821 */ addu $a3, $s1, $t9
/* 0C5844 800C4C44 8CF80000 */ lw $t8, ($a3)
/* 0C5848 800C4C48 8D430020 */ lw $v1, 0x20($t2)
/* 0C584C 800C4C4C 2502FFFF */ addiu $v0, $t0, -1
/* 0C5850 800C4C50 304500FF */ andi $a1, $v0, 0xff
/* 0C5854 800C4C54 0303082B */ sltu $at, $t8, $v1
/* 0C5858 800C4C58 1420001B */ bnez $at, .L800C4CC8
/* 0C585C 800C4C5C 01603025 */ move $a2, $t3
/* 0C5860 800C4C60 024C082A */ slt $at, $s2, $t4
/* 0C5864 800C4C64 10200004 */ beqz $at, .L800C4C78
/* 0C5868 800C4C68 304400FF */ andi $a0, $v0, 0xff
/* 0C586C 800C4C6C 26520001 */ addiu $s2, $s2, 1
/* 0C5870 800C4C70 324E00FF */ andi $t6, $s2, 0xff
/* 0C5874 800C4C74 01C09025 */ move $s2, $t6
.L800C4C78:
/* 0C5878 800C4C78 00C4082A */ slt $at, $a2, $a0
/* 0C587C 800C4C7C 10200010 */ beqz $at, .L800C4CC0
/* 0C5880 800C4C80 312B00FF */ andi $t3, $t1, 0xff
/* 0C5884 800C4C84 00A01825 */ move $v1, $a1
.L800C4C88:
/* 0C5888 800C4C88 0003C8C0 */ sll $t9, $v1, 3
/* 0C588C 800C4C8C 02391021 */ addu $v0, $s1, $t9
/* 0C5890 800C4C90 8C58FFF8 */ lw $t8, -8($v0)
/* 0C5894 800C4C94 000578C0 */ sll $t7, $a1, 3
/* 0C5898 800C4C98 022F2021 */ addu $a0, $s1, $t7
/* 0C589C 800C4C9C 24A5FFFF */ addiu $a1, $a1, -1
/* 0C58A0 800C4CA0 AC980000 */ sw $t8, ($a0)
/* 0C58A4 800C4CA4 904EFFFC */ lbu $t6, -4($v0)
/* 0C58A8 800C4CA8 30A300FF */ andi $v1, $a1, 0xff
/* 0C58AC 800C4CAC 00C3082A */ slt $at, $a2, $v1
/* 0C58B0 800C4CB0 00602825 */ move $a1, $v1
/* 0C58B4 800C4CB4 1420FFF4 */ bnez $at, .L800C4C88
/* 0C58B8 800C4CB8 A08E0004 */ sb $t6, 4($a0)
/* 0C58BC 800C4CBC 8D430020 */ lw $v1, 0x20($t2)
.L800C4CC0:
/* 0C58C0 800C4CC0 ACE30000 */ sw $v1, ($a3)
/* 0C58C4 800C4CC4 A0F30004 */ sb $s3, 4($a3)
.L800C4CC8:
/* 0C58C8 800C4CC8 256B0001 */ addiu $t3, $t3, 1
/* 0C58CC 800C4CCC 317900FF */ andi $t9, $t3, 0xff
/* 0C58D0 800C4CD0 0328082A */ slt $at, $t9, $t0
/* 0C58D4 800C4CD4 1420FFD9 */ bnez $at, .L800C4C3C
/* 0C58D8 800C4CD8 03205825 */ move $t3, $t9
.L800C4CDC:
/* 0C58DC 800C4CDC 327000FF */ andi $s0, $s3, 0xff
.L800C4CE0:
/* 0C58E0 800C4CE0 3C020800 */ lui $v0, 0x800
.L800C4CE4:
/* 0C58E4 800C4CE4 02160019 */ multu $s0, $s6
/* 0C58E8 800C4CE8 8FD8006C */ lw $t8, 0x6c($fp)
/* 0C58EC 800C4CEC 00007012 */ mflo $t6
/* 0C58F0 800C4CF0 030E7821 */ addu $t7, $t8, $t6
/* 0C58F4 800C4CF4 91F3002B */ lbu $s3, 0x2b($t7)
/* 0C58F8 800C4CF8 16F3FF12 */ bne $s7, $s3, .L800C4944
/* 0C58FC 800C4CFC 00000000 */ nop
.L800C4D00:
/* 0C5900 800C4D00 3C19800F */ lui $t9, %hi(D_800EA1C0) # $t9, 0x800f
/* 0C5904 800C4D04 9339A1C0 */ lbu $t9, %lo(D_800EA1C0)($t9)
/* 0C5908 800C4D08 3C09800F */ lui $t1, %hi(D_800EA188)
/* 0C590C 800C4D0C 240D0001 */ li $t5, 1
/* 0C5910 800C4D10 0019C080 */ sll $t8, $t9, 2
/* 0C5914 800C4D14 0319C023 */ subu $t8, $t8, $t9
/* 0C5918 800C4D18 0018C040 */ sll $t8, $t8, 1
/* 0C591C 800C4D1C 03157021 */ addu $t6, $t8, $s5
/* 0C5920 800C4D20 012E4821 */ addu $t1, $t1, $t6
/* 0C5924 800C4D24 24160030 */ li $s6, 48
/* 0C5928 800C4D28 9129A188 */ lbu $t1, %lo(D_800EA188)($t1)
/* 0C592C 800C4D2C 00005825 */ move $t3, $zero
/* 0C5930 800C4D30 1A40001E */ blez $s2, .L800C4DAC
/* 0C5934 800C4D34 02403025 */ move $a2, $s2
/* 0C5938 800C4D38 00157900 */ sll $t7, $s5, 4
/* 0C593C 800C4D3C 01F57823 */ subu $t7, $t7, $s5
/* 0C5940 800C4D40 000F7980 */ sll $t7, $t7, 6
/* 0C5944 800C4D44 03EFC821 */ addu $t9, $ra, $t7
/* 0C5948 800C4D48 AFD9006C */ sw $t9, 0x6c($fp)
/* 0C594C 800C4D4C 24050003 */ li $a1, 3
/* 0C5950 800C4D50 24040002 */ li $a0, 2
.L800C4D54:
/* 0C5954 800C4D54 000B70C0 */ sll $t6, $t3, 3
/* 0C5958 800C4D58 022E7821 */ addu $t7, $s1, $t6
/* 0C595C 800C4D5C 91F90004 */ lbu $t9, 4($t7)
/* 0C5960 800C4D60 8FD8006C */ lw $t8, 0x6c($fp)
/* 0C5964 800C4D64 256B0001 */ addiu $t3, $t3, 1
/* 0C5968 800C4D68 03360019 */ multu $t9, $s6
/* 0C596C 800C4D6C 316F00FF */ andi $t7, $t3, 0xff
/* 0C5970 800C4D70 24010004 */ li $at, 4
/* 0C5974 800C4D74 00007012 */ mflo $t6
/* 0C5978 800C4D78 030E1021 */ addu $v0, $t8, $t6
/* 0C597C 800C4D7C 90430028 */ lbu $v1, 0x28($v0)
/* 0C5980 800C4D80 15A30003 */ bne $t5, $v1, .L800C4D90
/* 0C5984 800C4D84 00000000 */ nop
/* 0C5988 800C4D88 10000004 */ b .L800C4D9C
/* 0C598C 800C4D8C A0440028 */ sb $a0, 0x28($v0)
.L800C4D90:
/* 0C5990 800C4D90 54610003 */ bnel $v1, $at, .L800C4DA0
/* 0C5994 800C4D94 01E6082A */ slt $at, $t7, $a2
/* 0C5998 800C4D98 A0450028 */ sb $a1, 0x28($v0)
.L800C4D9C:
/* 0C599C 800C4D9C 01E6082A */ slt $at, $t7, $a2
.L800C4DA0:
/* 0C59A0 800C4DA0 1420FFEC */ bnez $at, .L800C4D54
/* 0C59A4 800C4DA4 01E05825 */ move $t3, $t7
/* 0C59A8 800C4DA8 00005825 */ move $t3, $zero
.L800C4DAC:
/* 0C59AC 800C4DAC 19200080 */ blez $t1, .L800C4FB0
/* 0C59B0 800C4DB0 01204025 */ move $t0, $t1
/* 0C59B4 800C4DB4 3C188019 */ lui $t8, %hi(D_80192AB8) # $t8, 0x8019
/* 0C59B8 800C4DB8 27182AB8 */ addiu $t8, %lo(D_80192AB8) # addiu $t8, $t8, 0x2ab8
/* 0C59BC 800C4DBC 0015C980 */ sll $t9, $s5, 6
/* 0C59C0 800C4DC0 03383021 */ addu $a2, $t9, $t8
/* 0C59C4 800C4DC4 240C0003 */ li $t4, 3
.L800C4DC8:
/* 0C59C8 800C4DC8 000B70C0 */ sll $t6, $t3, 3
/* 0C59CC 800C4DCC 00CE9821 */ addu $s3, $a2, $t6
/* 0C59D0 800C4DD0 92650004 */ lbu $a1, 4($s3)
/* 0C59D4 800C4DD4 00001825 */ move $v1, $zero
/* 0C59D8 800C4DD8 16E50003 */ bne $s7, $a1, .L800C4DE8
/* 0C59DC 800C4DDC 00A01025 */ move $v0, $a1
/* 0C59E0 800C4DE0 1000003A */ b .L800C4ECC
/* 0C59E4 800C4DE4 24030001 */ li $v1, 1
.L800C4DE8:
/* 0C59E8 800C4DE8 00B60019 */ multu $a1, $s6
/* 0C59EC 800C4DEC 00157900 */ sll $t7, $s5, 4
/* 0C59F0 800C4DF0 01F57823 */ subu $t7, $t7, $s5
/* 0C59F4 800C4DF4 000F7980 */ sll $t7, $t7, 6
/* 0C59F8 800C4DF8 03EFC821 */ addu $t9, $ra, $t7
/* 0C59FC 800C4DFC 24010004 */ li $at, 4
/* 0C5A00 800C4E00 0000C012 */ mflo $t8
/* 0C5A04 800C4E04 03382021 */ addu $a0, $t9, $t8
/* 0C5A08 800C4E08 90870028 */ lbu $a3, 0x28($a0)
/* 0C5A0C 800C4E0C 14E10019 */ bne $a3, $at, .L800C4E74
/* 0C5A10 800C4E10 00000000 */ nop
/* 0C5A14 800C4E14 8C8E0024 */ lw $t6, 0x24($a0)
/* 0C5A18 800C4E18 24190001 */ li $t9, 1
/* 0C5A1C 800C4E1C 000E7900 */ sll $t7, $t6, 4
/* 0C5A20 800C4E20 05E30012 */ bgezl $t7, .L800C4E6C
/* 0C5A24 800C4E24 A0990028 */ sb $t9, 0x28($a0)
/* 0C5A28 800C4E28 32A400FF */ andi $a0, $s5, 0xff
/* 0C5A2C 800C4E2C AFC60070 */ sw $a2, 0x70($fp)
/* 0C5A30 800C4E30 AFC80060 */ sw $t0, 0x60($fp)
/* 0C5A34 800C4E34 A3C900CE */ sb $t1, 0xce($fp)
/* 0C5A38 800C4E38 0C0311CF */ jal delete_sound_from_bank
/* 0C5A3C 800C4E3C A3CB00CC */ sb $t3, 0xcc($fp)
/* 0C5A40 800C4E40 3C1F8019 */ lui $ra, %hi(sSoundBanks) # $ra, 0x8019
/* 0C5A44 800C4E44 27FF1420 */ addiu $ra, %lo(sSoundBanks) # addiu $ra, $ra, 0x1420
/* 0C5A48 800C4E48 8FC60070 */ lw $a2, 0x70($fp)
/* 0C5A4C 800C4E4C 8FC80060 */ lw $t0, 0x60($fp)
/* 0C5A50 800C4E50 93C900CE */ lbu $t1, 0xce($fp)
/* 0C5A54 800C4E54 93CB00CC */ lbu $t3, 0xcc($fp)
/* 0C5A58 800C4E58 240C0003 */ li $t4, 3
/* 0C5A5C 800C4E5C 240D0001 */ li $t5, 1
/* 0C5A60 800C4E60 1000001A */ b .L800C4ECC
/* 0C5A64 800C4E64 24030001 */ li $v1, 1
/* 0C5A68 800C4E68 A0990028 */ sb $t9, 0x28($a0)
.L800C4E6C:
/* 0C5A6C 800C4E6C 10000017 */ b .L800C4ECC
/* 0C5A70 800C4E70 24030001 */ li $v1, 1
.L800C4E74:
/* 0C5A74 800C4E74 14E00004 */ bnez $a3, .L800C4E88
/* 0C5A78 800C4E78 00000000 */ nop
/* 0C5A7C 800C4E7C A2740004 */ sb $s4, 4($s3)
/* 0C5A80 800C4E80 10000012 */ b .L800C4ECC
/* 0C5A84 800C4E84 24030001 */ li $v1, 1
.L800C4E88:
/* 0C5A88 800C4E88 1900000D */ blez $t0, .L800C4EC0
/* 0C5A8C 800C4E8C 00002825 */ move $a1, $zero
.L800C4E90:
/* 0C5A90 800C4E90 0005C0C0 */ sll $t8, $a1, 3
/* 0C5A94 800C4E94 02382021 */ addu $a0, $s1, $t8
/* 0C5A98 800C4E98 908E0004 */ lbu $t6, 4($a0)
/* 0C5A9C 800C4E9C 544E0004 */ bnel $v0, $t6, .L800C4EB0
/* 0C5AA0 800C4EA0 24A50001 */ addiu $a1, $a1, 1
/* 0C5AA4 800C4EA4 A0940004 */ sb $s4, 4($a0)
/* 0C5AA8 800C4EA8 312500FF */ andi $a1, $t1, 0xff
/* 0C5AAC 800C4EAC 24A50001 */ addiu $a1, $a1, 1
.L800C4EB0:
/* 0C5AB0 800C4EB0 30AF00FF */ andi $t7, $a1, 0xff
/* 0C5AB4 800C4EB4 01E8082A */ slt $at, $t7, $t0
/* 0C5AB8 800C4EB8 1420FFF5 */ bnez $at, .L800C4E90
/* 0C5ABC 800C4EBC 01E02825 */ move $a1, $t7
.L800C4EC0:
/* 0C5AC0 800C4EC0 2652FFFF */ addiu $s2, $s2, -1
/* 0C5AC4 800C4EC4 325900FF */ andi $t9, $s2, 0xff
/* 0C5AC8 800C4EC8 03209025 */ move $s2, $t9
.L800C4ECC:
/* 0C5ACC 800C4ECC 15A30033 */ bne $t5, $v1, .L800C4F9C
/* 0C5AD0 800C4ED0 00605025 */ move $t2, $v1
/* 0C5AD4 800C4ED4 1900002E */ blez $t0, .L800C4F90
/* 0C5AD8 800C4ED8 00002825 */ move $a1, $zero
.L800C4EDC:
/* 0C5ADC 800C4EDC 0005C0C0 */ sll $t8, $a1, 3
/* 0C5AE0 800C4EE0 02382021 */ addu $a0, $s1, $t8
/* 0C5AE4 800C4EE4 90870004 */ lbu $a3, 4($a0)
/* 0C5AE8 800C4EE8 12E70024 */ beq $s7, $a3, .L800C4F7C
/* 0C5AEC 800C4EEC 00E01025 */ move $v0, $a3
/* 0C5AF0 800C4EF0 00F60019 */ multu $a3, $s6
/* 0C5AF4 800C4EF4 00157100 */ sll $t6, $s5, 4
/* 0C5AF8 800C4EF8 01D57023 */ subu $t6, $t6, $s5
/* 0C5AFC 800C4EFC 000E7180 */ sll $t6, $t6, 6
/* 0C5B00 800C4F00 03EE7821 */ addu $t7, $ra, $t6
/* 0C5B04 800C4F04 0000C812 */ mflo $t9
/* 0C5B08 800C4F08 01F9C021 */ addu $t8, $t7, $t9
/* 0C5B0C 800C4F0C 930E0028 */ lbu $t6, 0x28($t8)
/* 0C5B10 800C4F10 518E001B */ beql $t4, $t6, .L800C4F80
/* 0C5B14 800C4F14 24A50001 */ addiu $a1, $a1, 1
/* 0C5B18 800C4F18 1900000E */ blez $t0, .L800C4F54
/* 0C5B1C 800C4F1C 00008025 */ move $s0, $zero
.L800C4F20:
/* 0C5B20 800C4F20 001078C0 */ sll $t7, $s0, 3
/* 0C5B24 800C4F24 00CFC821 */ addu $t9, $a2, $t7
/* 0C5B28 800C4F28 93380004 */ lbu $t8, 4($t9)
/* 0C5B2C 800C4F2C 54580004 */ bnel $v0, $t8, .L800C4F40
/* 0C5B30 800C4F30 26100001 */ addiu $s0, $s0, 1
/* 0C5B34 800C4F34 00001825 */ move $v1, $zero
/* 0C5B38 800C4F38 313000FF */ andi $s0, $t1, 0xff
/* 0C5B3C 800C4F3C 26100001 */ addiu $s0, $s0, 1
.L800C4F40:
/* 0C5B40 800C4F40 320E00FF */ andi $t6, $s0, 0xff
/* 0C5B44 800C4F44 01C8082A */ slt $at, $t6, $t0
/* 0C5B48 800C4F48 1420FFF5 */ bnez $at, .L800C4F20
/* 0C5B4C 800C4F4C 01C08025 */ move $s0, $t6
/* 0C5B50 800C4F50 00605025 */ move $t2, $v1
.L800C4F54:
/* 0C5B54 800C4F54 55AA000A */ bnel $t5, $t2, .L800C4F80
/* 0C5B58 800C4F58 24A50001 */ addiu $a1, $a1, 1
/* 0C5B5C 800C4F5C 25050001 */ addiu $a1, $t0, 1
/* 0C5B60 800C4F60 2652FFFF */ addiu $s2, $s2, -1
/* 0C5B64 800C4F64 30AF00FF */ andi $t7, $a1, 0xff
/* 0C5B68 800C4F68 325900FF */ andi $t9, $s2, 0xff
/* 0C5B6C 800C4F6C A2670004 */ sb $a3, 4($s3)
/* 0C5B70 800C4F70 A0940004 */ sb $s4, 4($a0)
/* 0C5B74 800C4F74 01E02825 */ move $a1, $t7
/* 0C5B78 800C4F78 03209025 */ move $s2, $t9
.L800C4F7C:
/* 0C5B7C 800C4F7C 24A50001 */ addiu $a1, $a1, 1
.L800C4F80:
/* 0C5B80 800C4F80 30B800FF */ andi $t8, $a1, 0xff
/* 0C5B84 800C4F84 0308082A */ slt $at, $t8, $t0
/* 0C5B88 800C4F88 1420FFD4 */ bnez $at, .L800C4EDC
/* 0C5B8C 800C4F8C 03002825 */ move $a1, $t8
.L800C4F90:
/* 0C5B90 800C4F90 55050003 */ bnel $t0, $a1, .L800C4FA0
/* 0C5B94 800C4F94 256B0001 */ addiu $t3, $t3, 1
/* 0C5B98 800C4F98 A2740004 */ sb $s4, 4($s3)
.L800C4F9C:
/* 0C5B9C 800C4F9C 256B0001 */ addiu $t3, $t3, 1
.L800C4FA0:
/* 0C5BA0 800C4FA0 316E00FF */ andi $t6, $t3, 0xff
/* 0C5BA4 800C4FA4 01C8082A */ slt $at, $t6, $t0
/* 0C5BA8 800C4FA8 1420FF87 */ bnez $at, .L800C4DC8
/* 0C5BAC 800C4FAC 01C05825 */ move $t3, $t6
.L800C4FB0:
/* 0C5BB0 800C4FB0 8FDF004C */ lw $ra, 0x4c($fp)
/* 0C5BB4 800C4FB4 03C0E825 */ move $sp, $fp
/* 0C5BB8 800C4FB8 8FD00028 */ lw $s0, 0x28($fp)
/* 0C5BBC 800C4FBC 8FD1002C */ lw $s1, 0x2c($fp)
/* 0C5BC0 800C4FC0 8FD20030 */ lw $s2, 0x30($fp)
/* 0C5BC4 800C4FC4 8FD30034 */ lw $s3, 0x34($fp)
/* 0C5BC8 800C4FC8 8FD40038 */ lw $s4, 0x38($fp)
/* 0C5BCC 800C4FCC 8FD5003C */ lw $s5, 0x3c($fp)
/* 0C5BD0 800C4FD0 8FD60040 */ lw $s6, 0x40($fp)
/* 0C5BD4 800C4FD4 8FD70044 */ lw $s7, 0x44($fp)
/* 0C5BD8 800C4FD8 8FDE0048 */ lw $fp, 0x48($fp)
/* 0C5BDC 800C4FDC 03E00008 */ jr $ra
/* 0C5BE0 800C4FE0 27BD00D0 */ addiu $sp, $sp, 0xd0
@@ -1,236 +0,0 @@
glabel func_800B86A0
/* 0B92A0 800B86A0 94AA0006 */ lhu $t2, 6($a1)
/* 0B92A4 800B86A4 94C20010 */ lhu $v0, 0x10($a2)
/* 0B92A8 800B86A8 000768C3 */ sra $t5, $a3, 3
/* 0B92AC 800B86AC 000A7100 */ sll $t6, $t2, 4
/* 0B92B0 800B86B0 31CFFFFF */ andi $t7, $t6, 0xffff
/* 0B92B4 800B86B4 01E27023 */ subu $t6, $t7, $v0
/* 0B92B8 800B86B8 01CD001A */ div $zero, $t6, $t5
/* 0B92BC 800B86BC 94AB0008 */ lhu $t3, 8($a1)
/* 0B92C0 800B86C0 94C30012 */ lhu $v1, 0x12($a2)
/* 0B92C4 800B86C4 01E05025 */ move $t2, $t7
/* 0B92C8 800B86C8 000BC100 */ sll $t8, $t3, 4
/* 0B92CC 800B86CC 00007812 */ mflo $t7
/* 0B92D0 800B86D0 3319FFFF */ andi $t9, $t8, 0xffff
/* 0B92D4 800B86D4 03205825 */ move $t3, $t9
/* 0B92D8 800B86D8 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 0B92DC 800B86DC AFAF0008 */ sw $t7, 8($sp)
/* 0B92E0 800B86E0 87B8000A */ lh $t8, 0xa($sp)
/* 0B92E4 800B86E4 00406025 */ move $t4, $v0
/* 0B92E8 800B86E8 15A00002 */ bnez $t5, .L800B86F4
/* 0B92EC 800B86EC 00000000 */ nop
/* 0B92F0 800B86F0 0007000D */ break 7
.L800B86F4:
/* 0B92F4 800B86F4 2401FFFF */ li $at, -1
/* 0B92F8 800B86F8 15A10004 */ bne $t5, $at, .L800B870C
/* 0B92FC 800B86FC 3C018000 */ lui $at, 0x8000
/* 0B9300 800B8700 15C10002 */ bne $t6, $at, .L800B870C
/* 0B9304 800B8704 00000000 */ nop
/* 0B9308 800B8708 0006000D */ break 6
.L800B870C:
/* 0B930C 800B870C 01637023 */ subu $t6, $t3, $v1
/* 0B9310 800B8710 01CD001A */ div $zero, $t6, $t5
/* 0B9314 800B8714 00007812 */ mflo $t7
/* 0B9318 800B8718 AFAF0000 */ sw $t7, ($sp)
/* 0B931C 800B871C 03004025 */ move $t0, $t8
/* 0B9320 800B8720 030D0019 */ multu $t8, $t5
/* 0B9324 800B8724 0060C825 */ move $t9, $v1
/* 0B9328 800B8728 AFA30004 */ sw $v1, 4($sp)
/* 0B932C 800B872C 15A00002 */ bnez $t5, .L800B8738
/* 0B9330 800B8730 00000000 */ nop
/* 0B9334 800B8734 0007000D */ break 7
.L800B8738:
/* 0B9338 800B8738 2401FFFF */ li $at, -1
/* 0B933C 800B873C 15A10004 */ bne $t5, $at, .L800B8750
/* 0B9340 800B8740 3C018000 */ lui $at, 0x8000
/* 0B9344 800B8744 15C10002 */ bne $t6, $at, .L800B8750
/* 0B9348 800B8748 00000000 */ nop
/* 0B934C 800B874C 0006000D */ break 6
.L800B8750:
/* 0B9350 800B8750 87AE0002 */ lh $t6, 2($sp)
/* 0B9354 800B8754 00007812 */ mflo $t7
/* 0B9358 800B8758 018F5021 */ addu $t2, $t4, $t7
/* 0B935C 800B875C 3158FFFF */ andi $t8, $t2, 0xffff
/* 0B9360 800B8760 01CD0019 */ multu $t6, $t5
/* 0B9364 800B8764 03005025 */ move $t2, $t8
/* 0B9368 800B8768 A4CA0010 */ sh $t2, 0x10($a2)
/* 0B936C 800B876C 01C04825 */ move $t1, $t6
/* 0B9370 800B8770 00805025 */ move $t2, $a0
/* 0B9374 800B8774 3C011200 */ lui $at, 0x1200
/* 0B9378 800B8778 00007812 */ mflo $t7
/* 0B937C 800B877C 032F5821 */ addu $t3, $t9, $t7
/* 0B9380 800B8780 3178FFFF */ andi $t8, $t3, 0xffff
/* 0B9384 800B8784 A4D80012 */ sh $t8, 0x12($a2)
/* 0B9388 800B8788 90AE0000 */ lbu $t6, ($a1)
/* 0B938C 800B878C 03005825 */ move $t3, $t8
/* 0B9390 800B8790 00803025 */ move $a2, $a0
/* 0B9394 800B8794 31D90001 */ andi $t9, $t6, 1
/* 0B9398 800B8798 13200073 */ beqz $t9, .L800B8968
/* 0B939C 800B879C 304F00FF */ andi $t7, $v0, 0xff
/* 0B93A0 800B87A0 3C0F0200 */ lui $t7, (0x02000200 >> 16) # lui $t7, 0x200
/* 0B93A4 800B87A4 35EF0200 */ ori $t7, (0x02000200 & 0xFFFF) # ori $t7, $t7, 0x200
/* 0B93A8 800B87A8 24180180 */ li $t8, 384
/* 0B93AC 800B87AC ACD80004 */ sw $t8, 4($a2)
/* 0B93B0 800B87B0 ACCF0000 */ sw $t7, ($a2)
/* 0B93B4 800B87B4 90B90005 */ lbu $t9, 5($a1)
/* 0B93B8 800B87B8 304E00FF */ andi $t6, $v0, 0xff
/* 0B93BC 800B87BC 3C011200 */ lui $at, 0x1200
/* 0B93C0 800B87C0 00197C00 */ sll $t7, $t9, 0x10
/* 0B93C4 800B87C4 000ECA00 */ sll $t9, $t6, 8
/* 0B93C8 800B87C8 01E1C025 */ or $t8, $t7, $at
/* 0B93CC 800B87CC 03197825 */ or $t7, $t8, $t9
/* 0B93D0 800B87D0 306E00FF */ andi $t6, $v1, 0xff
/* 0B93D4 800B87D4 01EEC025 */ or $t8, $t7, $t6
/* 0B93D8 800B87D8 24840008 */ addiu $a0, $a0, 8
/* 0B93DC 800B87DC 00805025 */ move $t2, $a0
/* 0B93E0 800B87E0 AD580000 */ sw $t8, ($t2)
/* 0B93E4 800B87E4 312EFFFF */ andi $t6, $t1, 0xffff
/* 0B93E8 800B87E8 00087C00 */ sll $t7, $t0, 0x10
/* 0B93EC 800B87EC 01EEC025 */ or $t8, $t7, $t6
/* 0B93F0 800B87F0 AD580004 */ sw $t8, 4($t2)
/* 0B93F4 800B87F4 24840008 */ addiu $a0, $a0, 8
/* 0B93F8 800B87F8 00805825 */ move $t3, $a0
/* 0B93FC 800B87FC 00407825 */ move $t7, $v0
/* 0B9400 800B8800 3C191600 */ lui $t9, 0x1600
/* 0B9404 800B8804 AD790000 */ sw $t9, ($t3)
/* 0B9408 800B8808 000F7400 */ sll $t6, $t7, 0x10
/* 0B940C 800B880C 3078FFFF */ andi $t8, $v1, 0xffff
/* 0B9410 800B8810 01D8C825 */ or $t9, $t6, $t8
/* 0B9414 800B8814 AD790004 */ sw $t9, 4($t3)
/* 0B9418 800B8818 8FA20064 */ lw $v0, 0x64($sp)
/* 0B941C 800B881C 24010001 */ li $at, 1
/* 0B9420 800B8820 24840008 */ addiu $a0, $a0, 8
/* 0B9424 800B8824 1041001E */ beq $v0, $at, .L800B88A0
/* 0B9428 800B8828 97AF0062 */ lhu $t7, 0x62($sp)
/* 0B942C 800B882C 24010002 */ li $at, 2
/* 0B9430 800B8830 10410034 */ beq $v0, $at, .L800B8904
/* 0B9434 800B8834 97AF0062 */ lhu $t7, 0x62($sp)
/* 0B9438 800B8838 97AF0062 */ lhu $t7, 0x62($sp)
/* 0B943C 800B883C 8CA60000 */ lw $a2, ($a1)
/* 0B9440 800B8840 3C011300 */ lui $at, 0x1300
/* 0B9444 800B8844 000F7103 */ sra $t6, $t7, 4
/* 0B9448 800B8848 31D800FF */ andi $t8, $t6, 0xff
/* 0B944C 800B884C 0018CC00 */ sll $t9, $t8, 0x10
/* 0B9450 800B8850 30EE00FF */ andi $t6, $a3, 0xff
/* 0B9454 800B8854 000EC200 */ sll $t8, $t6, 8
/* 0B9458 800B8858 03217825 */ or $t7, $t9, $at
/* 0B945C 800B885C 01F8C825 */ or $t9, $t7, $t8
/* 0B9460 800B8860 00067100 */ sll $t6, $a2, 4
/* 0B9464 800B8864 000E7FC2 */ srl $t7, $t6, 0x1f
/* 0B9468 800B8868 31F80001 */ andi $t8, $t7, 1
/* 0B946C 800B886C 00187040 */ sll $t6, $t8, 1
/* 0B9470 800B8870 032E7825 */ or $t7, $t9, $t6
/* 0B9474 800B8874 0006C140 */ sll $t8, $a2, 5
/* 0B9478 800B8878 0018CFC2 */ srl $t9, $t8, 0x1f
/* 0B947C 800B887C 332E0001 */ andi $t6, $t9, 1
/* 0B9480 800B8880 3C19546C */ lui $t9, (0x546C849C >> 16) # lui $t9, 0x546c
/* 0B9484 800B8884 00801025 */ move $v0, $a0
/* 0B9488 800B8888 3739849C */ ori $t9, (0x546C849C & 0xFFFF) # ori $t9, $t9, 0x849c
/* 0B948C 800B888C 01EEC025 */ or $t8, $t7, $t6
/* 0B9490 800B8890 AC580000 */ sw $t8, ($v0)
/* 0B9494 800B8894 AC590004 */ sw $t9, 4($v0)
/* 0B9498 800B8898 10000061 */ b .L800B8A20
/* 0B949C 800B889C 24840008 */ addiu $a0, $a0, 8
.L800B88A0:
/* 0B94A0 800B88A0 000F7103 */ sra $t6, $t7, 4
/* 0B94A4 800B88A4 31D800FF */ andi $t8, $t6, 0xff
/* 0B94A8 800B88A8 8CA60000 */ lw $a2, ($a1)
/* 0B94AC 800B88AC 0018CC00 */ sll $t9, $t8, 0x10
/* 0B94B0 800B88B0 30EE00FF */ andi $t6, $a3, 0xff
/* 0B94B4 800B88B4 000EC200 */ sll $t8, $t6, 8
/* 0B94B8 800B88B8 3C011300 */ lui $at, 0x1300
/* 0B94BC 800B88BC 03217825 */ or $t7, $t9, $at
/* 0B94C0 800B88C0 01F8C825 */ or $t9, $t7, $t8
/* 0B94C4 800B88C4 00067100 */ sll $t6, $a2, 4
/* 0B94C8 800B88C8 000E7FC2 */ srl $t7, $t6, 0x1f
/* 0B94CC 800B88CC 31F80001 */ andi $t8, $t7, 1
/* 0B94D0 800B88D0 00187040 */ sll $t6, $t8, 1
/* 0B94D4 800B88D4 032E7825 */ or $t7, $t9, $t6
/* 0B94D8 800B88D8 0006C140 */ sll $t8, $a2, 5
/* 0B94DC 800B88DC 0018CFC2 */ srl $t9, $t8, 0x1f
/* 0B94E0 800B88E0 332E0001 */ andi $t6, $t9, 1
/* 0B94E4 800B88E4 3C19206C */ lui $t9, (0x206C849C >> 16) # lui $t9, 0x206c
/* 0B94E8 800B88E8 00801025 */ move $v0, $a0
/* 0B94EC 800B88EC 3739849C */ ori $t9, (0x206C849C & 0xFFFF) # ori $t9, $t9, 0x849c
/* 0B94F0 800B88F0 01EEC025 */ or $t8, $t7, $t6
/* 0B94F4 800B88F4 AC580000 */ sw $t8, ($v0)
/* 0B94F8 800B88F8 AC590004 */ sw $t9, 4($v0)
/* 0B94FC 800B88FC 10000048 */ b .L800B8A20
/* 0B9500 800B8900 24840008 */ addiu $a0, $a0, 8
.L800B8904:
/* 0B9504 800B8904 000F7103 */ sra $t6, $t7, 4
/* 0B9508 800B8908 31D800FF */ andi $t8, $t6, 0xff
/* 0B950C 800B890C 8CA60000 */ lw $a2, ($a1)
/* 0B9510 800B8910 0018CC00 */ sll $t9, $t8, 0x10
/* 0B9514 800B8914 30EE00FF */ andi $t6, $a3, 0xff
/* 0B9518 800B8918 000EC200 */ sll $t8, $t6, 8
/* 0B951C 800B891C 3C011300 */ lui $at, 0x1300
/* 0B9520 800B8920 03217825 */ or $t7, $t9, $at
/* 0B9524 800B8924 01F8C825 */ or $t9, $t7, $t8
/* 0B9528 800B8928 00067100 */ sll $t6, $a2, 4
/* 0B952C 800B892C 000E7FC2 */ srl $t7, $t6, 0x1f
/* 0B9530 800B8930 31F80001 */ andi $t8, $t7, 1
/* 0B9534 800B8934 00187040 */ sll $t6, $t8, 1
/* 0B9538 800B8938 032E7825 */ or $t7, $t9, $t6
/* 0B953C 800B893C 0006C140 */ sll $t8, $a2, 5
/* 0B9540 800B8940 0018CFC2 */ srl $t9, $t8, 0x1f
/* 0B9544 800B8944 332E0001 */ andi $t6, $t9, 1
/* 0B9548 800B8948 3C195420 */ lui $t9, (0x5420849C >> 16) # lui $t9, 0x5420
/* 0B954C 800B894C 00801025 */ move $v0, $a0
/* 0B9550 800B8950 3739849C */ ori $t9, (0x5420849C & 0xFFFF) # ori $t9, $t9, 0x849c
/* 0B9554 800B8954 01EEC025 */ or $t8, $t7, $t6
/* 0B9558 800B8958 AC580000 */ sw $t8, ($v0)
/* 0B955C 800B895C AC590004 */ sw $t9, 4($v0)
/* 0B9560 800B8960 1000002F */ b .L800B8A20
/* 0B9564 800B8964 24840008 */ addiu $a0, $a0, 8
.L800B8968:
/* 0B9568 800B8968 90AE0005 */ lbu $t6, 5($a1)
/* 0B956C 800B896C 24840008 */ addiu $a0, $a0, 8
/* 0B9570 800B8970 00805825 */ move $t3, $a0
/* 0B9574 800B8974 000EC400 */ sll $t8, $t6, 0x10
/* 0B9578 800B8978 000F7200 */ sll $t6, $t7, 8
/* 0B957C 800B897C 0301C825 */ or $t9, $t8, $at
/* 0B9580 800B8980 032EC025 */ or $t8, $t9, $t6
/* 0B9584 800B8984 306F00FF */ andi $t7, $v1, 0xff
/* 0B9588 800B8988 030FC825 */ or $t9, $t8, $t7
/* 0B958C 800B898C AD590000 */ sw $t9, ($t2)
/* 0B9590 800B8990 312FFFFF */ andi $t7, $t1, 0xffff
/* 0B9594 800B8994 0008C400 */ sll $t8, $t0, 0x10
/* 0B9598 800B8998 030FC825 */ or $t9, $t8, $t7
/* 0B959C 800B899C AD590004 */ sw $t9, 4($t2)
/* 0B95A0 800B89A0 3C0E1600 */ lui $t6, 0x1600
/* 0B95A4 800B89A4 AD6E0000 */ sw $t6, ($t3)
/* 0B95A8 800B89A8 3079FFFF */ andi $t9, $v1, 0xffff
/* 0B95AC 800B89AC 00027C00 */ sll $t7, $v0, 0x10
/* 0B95B0 800B89B0 01F97025 */ or $t6, $t7, $t9
/* 0B95B4 800B89B4 AD6E0004 */ sw $t6, 4($t3)
/* 0B95B8 800B89B8 97B80062 */ lhu $t8, 0x62($sp)
/* 0B95BC 800B89BC 8CA60000 */ lw $a2, ($a1)
/* 0B95C0 800B89C0 3C011300 */ lui $at, 0x1300
/* 0B95C4 800B89C4 00187903 */ sra $t7, $t8, 4
/* 0B95C8 800B89C8 31F900FF */ andi $t9, $t7, 0xff
/* 0B95CC 800B89CC 00197400 */ sll $t6, $t9, 0x10
/* 0B95D0 800B89D0 30EF00FF */ andi $t7, $a3, 0xff
/* 0B95D4 800B89D4 000FCA00 */ sll $t9, $t7, 8
/* 0B95D8 800B89D8 01C1C025 */ or $t8, $t6, $at
/* 0B95DC 800B89DC 03197025 */ or $t6, $t8, $t9
/* 0B95E0 800B89E0 00067900 */ sll $t7, $a2, 4
/* 0B95E4 800B89E4 000FC7C2 */ srl $t8, $t7, 0x1f
/* 0B95E8 800B89E8 33190001 */ andi $t9, $t8, 1
/* 0B95EC 800B89EC 00197840 */ sll $t7, $t9, 1
/* 0B95F0 800B89F0 01CFC025 */ or $t8, $t6, $t7
/* 0B95F4 800B89F4 0006C940 */ sll $t9, $a2, 5
/* 0B95F8 800B89F8 24840008 */ addiu $a0, $a0, 8
/* 0B95FC 800B89FC 001977C2 */ srl $t6, $t9, 0x1f
/* 0B9600 800B8A00 31CF0001 */ andi $t7, $t6, 1
/* 0B9604 800B8A04 00806025 */ move $t4, $a0
/* 0B9608 800B8A08 3C0E546C */ lui $t6, (0x546C849C >> 16) # lui $t6, 0x546c
/* 0B960C 800B8A0C 35CE849C */ ori $t6, (0x546C849C & 0xFFFF) # ori $t6, $t6, 0x849c
/* 0B9610 800B8A10 030FC825 */ or $t9, $t8, $t7
/* 0B9614 800B8A14 AD990000 */ sw $t9, ($t4)
/* 0B9618 800B8A18 AD8E0004 */ sw $t6, 4($t4)
/* 0B961C 800B8A1C 24840008 */ addiu $a0, $a0, 8
.L800B8A20:
/* 0B9620 800B8A20 00801025 */ move $v0, $a0
/* 0B9624 800B8A24 03E00008 */ jr $ra
/* 0B9628 800B8A28 27BD0050 */ addiu $sp, $sp, 0x50
@@ -1,658 +0,0 @@
glabel synthesis_process_note
/* 0B8830 800B7C30 27BDFEC0 */ addiu $sp, $sp, -0x140
/* 0B8834 800B7C34 3C18803B */ lui $t8, %hi(gNotes) # $t8, 0x803b
/* 0B8838 800B7C38 8F181508 */ lw $t8, %lo(gNotes)($t8)
/* 0B883C 800B7C3C 00047880 */ sll $t7, $a0, 2
/* 0B8840 800B7C40 01E47823 */ subu $t7, $t7, $a0
/* 0B8844 800B7C44 000F7980 */ sll $t7, $t7, 6
/* 0B8848 800B7C48 01F8C821 */ addu $t9, $t7, $t8
/* 0B884C 800B7C4C AFBF004C */ sw $ra, 0x4c($sp)
/* 0B8850 800B7C50 AFBE0048 */ sw $fp, 0x48($sp)
/* 0B8854 800B7C54 AFB70044 */ sw $s7, 0x44($sp)
/* 0B8858 800B7C58 AFB60040 */ sw $s6, 0x40($sp)
/* 0B885C 800B7C5C AFB5003C */ sw $s5, 0x3c($sp)
/* 0B8860 800B7C60 AFB40038 */ sw $s4, 0x38($sp)
/* 0B8864 800B7C64 AFB30034 */ sw $s3, 0x34($sp)
/* 0B8868 800B7C68 AFB20030 */ sw $s2, 0x30($sp)
/* 0B886C 800B7C6C AFB1002C */ sw $s1, 0x2c($sp)
/* 0B8870 800B7C70 AFB00028 */ sw $s0, 0x28($sp)
/* 0B8874 800B7C74 AFA40140 */ sw $a0, 0x140($sp)
/* 0B8878 800B7C78 AFA50144 */ sw $a1, 0x144($sp)
/* 0B887C 800B7C7C AFA7014C */ sw $a3, 0x14c($sp)
/* 0B8880 800B7C80 AFA00128 */ sw $zero, 0x128($sp)
/* 0B8884 800B7C84 AFB9008C */ sw $t9, 0x8c($sp)
/* 0B8888 800B7C88 8CAF0000 */ lw $t7, ($a1)
/* 0B888C 800B7C8C 24010001 */ li $at, 1
/* 0B8890 800B7C90 00C0B825 */ move $s7, $a2
/* 0B8894 800B7C94 000FC040 */ sll $t8, $t7, 1
/* 0B8898 800B7C98 0018CFC2 */ srl $t9, $t8, 0x1f
/* 0B889C 800B7C9C 17210009 */ bne $t9, $at, .L800B7CC4
/* 0B88A0 800B7CA0 00001825 */ move $v1, $zero
/* 0B88A4 800B7CA4 24030001 */ li $v1, 1
/* 0B88A8 800B7CA8 A0C00000 */ sb $zero, ($a2)
/* 0B88AC 800B7CAC ACC00008 */ sw $zero, 8($a2)
/* 0B88B0 800B7CB0 A4C00004 */ sh $zero, 4($a2)
/* 0B88B4 800B7CB4 A4C00010 */ sh $zero, 0x10($a2)
/* 0B88B8 800B7CB8 A4C00012 */ sh $zero, 0x12($a2)
/* 0B88BC 800B7CBC A0C00002 */ sb $zero, 2($a2)
/* 0B88C0 800B7CC0 A0C00003 */ sb $zero, 3($a2)
.L800B7CC4:
/* 0B88C4 800B7CC4 8FAE0144 */ lw $t6, 0x144($sp)
/* 0B88C8 800B7CC8 02E03025 */ move $a2, $s7
/* 0B88CC 800B7CCC 95CF000A */ lhu $t7, 0xa($t6)
/* 0B88D0 800B7CD0 A7AF0112 */ sh $t7, 0x112($sp)
/* 0B88D4 800B7CD4 95D80000 */ lhu $t8, ($t6)
/* 0B88D8 800B7CD8 33190001 */ andi $t9, $t8, 1
/* 0B88DC 800B7CDC 8FB80150 */ lw $t8, 0x150($sp)
/* 0B88E0 800B7CE0 272E0001 */ addiu $t6, $t9, 1
/* 0B88E4 800B7CE4 AFAE00B0 */ sw $t6, 0xb0($sp)
/* 0B88E8 800B7CE8 01F80019 */ multu $t7, $t8
/* 0B88EC 800B7CEC 96EF0004 */ lhu $t7, 4($s7)
/* 0B88F0 800B7CF0 0000C812 */ mflo $t9
/* 0B88F4 800B7CF4 00197040 */ sll $t6, $t9, 1
/* 0B88F8 800B7CF8 01CF1021 */ addu $v0, $t6, $t7
/* 0B88FC 800B7CFC A6E20004 */ sh $v0, 4($s7)
/* 0B8900 800B7D00 8FB90144 */ lw $t9, 0x144($sp)
/* 0B8904 800B7D04 00028402 */ srl $s0, $v0, 0x10
/* 0B8908 800B7D08 02003825 */ move $a3, $s0
/* 0B890C 800B7D0C 8F240000 */ lw $a0, ($t9)
/* 0B8910 800B7D10 8FB80144 */ lw $t8, 0x144($sp)
/* 0B8914 800B7D14 03202825 */ move $a1, $t9
/* 0B8918 800B7D18 00047B80 */ sll $t7, $a0, 0xe
/* 0B891C 800B7D1C 05E3000E */ bgezl $t7, .L800B7D58
/* 0B8920 800B7D20 8F0E000C */ lw $t6, 0xc($t8)
/* 0B8924 800B7D24 0C02E16D */ jal load_wave_samples
/* 0B8928 800B7D28 8FA40154 */ lw $a0, 0x154($sp)
/* 0B892C 800B7D2C 8EE60008 */ lw $a2, 8($s7)
/* 0B8930 800B7D30 0006C040 */ sll $t8, $a2, 1
/* 0B8934 800B7D34 270E01A0 */ addiu $t6, $t8, 0x1a0
/* 0B8938 800B7D38 A7AE009E */ sh $t6, 0x9e($sp)
/* 0B893C 800B7D3C 00D07821 */ addu $t7, $a2, $s0
/* 0B8940 800B7D40 AEEF0008 */ sw $t7, 8($s7)
/* 0B8944 800B7D44 8FB90144 */ lw $t9, 0x144($sp)
/* 0B8948 800B7D48 8F240000 */ lw $a0, ($t9)
/* 0B894C 800B7D4C 100001CF */ b .L800B848C
/* 0B8950 800B7D50 AFA20154 */ sw $v0, 0x154($sp)
/* 0B8954 800B7D54 8F0E000C */ lw $t6, 0xc($t8)
.L800B7D58:
/* 0B8958 800B7D58 8DCF0000 */ lw $t7, ($t6)
/* 0B895C 800B7D5C AFAF0130 */ sw $t7, 0x130($sp)
/* 0B8960 800B7D60 8DF90008 */ lw $t9, 8($t7)
/* 0B8964 800B7D64 AFB9012C */ sw $t9, 0x12c($sp)
/* 0B8968 800B7D68 8F380004 */ lw $t8, 4($t9)
/* 0B896C 800B7D6C 8FB900B0 */ lw $t9, 0xb0($sp)
/* 0B8970 800B7D70 AFB800DC */ sw $t8, 0xdc($sp)
/* 0B8974 800B7D74 8DEE0004 */ lw $t6, 4($t7)
/* 0B8978 800B7D78 AFA000A0 */ sw $zero, 0xa0($sp)
/* 0B897C 800B7D7C AFA000AC */ sw $zero, 0xac($sp)
/* 0B8980 800B7D80 1B2001C2 */ blez $t9, .L800B848C
/* 0B8984 800B7D84 AFAE00EC */ sw $t6, 0xec($sp)
/* 0B8988 800B7D88 0002C402 */ srl $t8, $v0, 0x10
/* 0B898C 800B7D8C AFB80050 */ sw $t8, 0x50($sp)
/* 0B8990 800B7D90 AFA30114 */ sw $v1, 0x114($sp)
/* 0B8994 800B7D94 8FB20154 */ lw $s2, 0x154($sp)
/* 0B8998 800B7D98 8FAF0130 */ lw $t7, 0x130($sp)
.L800B7D9C:
/* 0B899C 800B7D9C 8FAE00B0 */ lw $t6, 0xb0($sp)
/* 0B89A0 800B7DA0 24010001 */ li $at, 1
/* 0B89A4 800B7DA4 8DE5000C */ lw $a1, 0xc($t7)
/* 0B89A8 800B7DA8 0000F025 */ move $fp, $zero
/* 0B89AC 800B7DAC 0000A025 */ move $s4, $zero
/* 0B89B0 800B7DB0 15C10003 */ bne $t6, $at, .L800B7DC0
/* 0B89B4 800B7DB4 24A60008 */ addiu $a2, $a1, 8
/* 0B89B8 800B7DB8 1000000B */ b .L800B7DE8
/* 0B89BC 800B7DBC 8FAD0050 */ lw $t5, 0x50($sp)
.L800B7DC0:
/* 0B89C0 800B7DC0 8FB90050 */ lw $t9, 0x50($sp)
/* 0B89C4 800B7DC4 8FAE00AC */ lw $t6, 0xac($sp)
/* 0B89C8 800B7DC8 8FAD0050 */ lw $t5, 0x50($sp)
/* 0B89CC 800B7DCC 33380001 */ andi $t8, $t9, 1
/* 0B89D0 800B7DD0 13000005 */ beqz $t8, .L800B7DE8
/* 0B89D4 800B7DD4 2401FFFE */ li $at, -2
/* 0B89D8 800B7DD8 03217824 */ and $t7, $t9, $at
/* 0B89DC 800B7DDC 000EC040 */ sll $t8, $t6, 1
/* 0B89E0 800B7DE0 10000001 */ b .L800B7DE8
/* 0B89E4 800B7DE4 01F86821 */ addu $t5, $t7, $t8
.L800B7DE8:
/* 0B89E8 800B7DE8 8FB90128 */ lw $t9, 0x128($sp)
/* 0B89EC 800B7DEC 5326001B */ beql $t9, $a2, .L800B7E5C
/* 0B89F0 800B7DF0 00047AC0 */ sll $t7, $a0, 0xb
/* 0B89F4 800B7DF4 8CAE0000 */ lw $t6, ($a1)
/* 0B89F8 800B7DF8 8CB80004 */ lw $t8, 4($a1)
/* 0B89FC 800B7DFC 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0B8A00 800B7E00 000E7900 */ sll $t7, $t6, 4
/* 0B8A04 800B7E04 01F80019 */ multu $t7, $t8
/* 0B8A08 800B7E08 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0B8A0C 800B7E0C 02401025 */ move $v0, $s2
/* 0B8A10 800B7E10 26520008 */ addiu $s2, $s2, 8
/* 0B8A14 800B7E14 00001812 */ mflo $v1
/* 0B8A18 800B7E18 0061C824 */ and $t9, $v1, $at
/* 0B8A1C 800B7E1C 3C010B00 */ lui $at, 0xb00
/* 0B8A20 800B7E20 03217025 */ or $t6, $t9, $at
/* 0B8A24 800B7E24 AC4E0000 */ sw $t6, ($v0)
/* 0B8A28 800B7E28 8FAF0144 */ lw $t7, 0x144($sp)
/* 0B8A2C 800B7E2C 3C018000 */ lui $at, 0x8000
/* 0B8A30 800B7E30 8DF80000 */ lw $t8, ($t7)
/* 0B8A34 800B7E34 0018CAC0 */ sll $t9, $t8, 0xb
/* 0B8A38 800B7E38 00197742 */ srl $t6, $t9, 0x1d
/* 0B8A3C 800B7E3C 000E7840 */ sll $t7, $t6, 1
/* 0B8A40 800B7E40 01E6C021 */ addu $t8, $t7, $a2
/* 0B8A44 800B7E44 0301C821 */ addu $t9, $t8, $at
/* 0B8A48 800B7E48 AC590004 */ sw $t9, 4($v0)
/* 0B8A4C 800B7E4C 8FAE0144 */ lw $t6, 0x144($sp)
/* 0B8A50 800B7E50 8DC40000 */ lw $a0, ($t6)
/* 0B8A54 800B7E54 AFA60128 */ sw $a2, 0x128($sp)
/* 0B8A58 800B7E58 00047AC0 */ sll $t7, $a0, 0xb
.L800B7E5C:
/* 0B8A5C 800B7E5C 000FC742 */ srl $t8, $t7, 0x1d
/* 0B8A60 800B7E60 13000003 */ beqz $t8, .L800B7E70
/* 0B8A64 800B7E64 3C19800F */ lui $t9, %hi(gUnknownData_800F6290) # $t9, 0x800f
/* 0B8A68 800B7E68 27396290 */ addiu $t9, %lo(gUnknownData_800F6290) # addiu $t9, $t9, 0x6290
/* 0B8A6C 800B7E6C AFB90128 */ sw $t9, 0x128($sp)
.L800B7E70:
/* 0B8A70 800B7E70 51A0011F */ beql $t5, $zero, .L800B82F0
/* 0B8A74 800B7E74 8FB900B0 */ lw $t9, 0xb0($sp)
/* 0B8A78 800B7E78 8EE60008 */ lw $a2, 8($s7)
.L800B7E7C:
/* 0B8A7C 800B7E7C 8FAE00DC */ lw $t6, 0xdc($sp)
/* 0B8A80 800B7E80 01BE2023 */ subu $a0, $t5, $fp
/* 0B8A84 800B7E84 30D3000F */ andi $s3, $a2, 0xf
/* 0B8A88 800B7E88 00005825 */ move $t3, $zero
/* 0B8A8C 800B7E8C 00006025 */ move $t4, $zero
/* 0B8A90 800B7E90 0080F825 */ move $ra, $a0
/* 0B8A94 800B7E94 16600005 */ bnez $s3, .L800B7EAC
/* 0B8A98 800B7E98 01C61823 */ subu $v1, $t6, $a2
/* 0B8A9C 800B7E9C 92EF0000 */ lbu $t7, ($s7)
/* 0B8AA0 800B7EA0 55E00003 */ bnel $t7, $zero, .L800B7EB0
/* 0B8AA4 800B7EA4 24180010 */ li $t8, 16
/* 0B8AA8 800B7EA8 24130010 */ li $s3, 16
.L800B7EAC:
/* 0B8AAC 800B7EAC 24180010 */ li $t8, 16
.L800B7EB0:
/* 0B8AB0 800B7EB0 03132823 */ subu $a1, $t8, $s3
/* 0B8AB4 800B7EB4 0083082A */ slt $at, $a0, $v1
/* 0B8AB8 800B7EB8 1020000C */ beqz $at, .L800B7EEC
/* 0B8ABC 800B7EBC 00A0A825 */ move $s5, $a1
/* 0B8AC0 800B7EC0 00851023 */ subu $v0, $a0, $a1
/* 0B8AC4 800B7EC4 2442000F */ addiu $v0, $v0, 0xf
/* 0B8AC8 800B7EC8 04410003 */ bgez $v0, .L800B7ED8
/* 0B8ACC 800B7ECC 0002C903 */ sra $t9, $v0, 4
/* 0B8AD0 800B7ED0 2441000F */ addiu $at, $v0, 0xf
/* 0B8AD4 800B7ED4 0001C903 */ sra $t9, $at, 4
.L800B7ED8:
/* 0B8AD8 800B7ED8 00198900 */ sll $s1, $t9, 4
/* 0B8ADC 800B7EDC 00B17021 */ addu $t6, $a1, $s1
/* 0B8AE0 800B7EE0 03204025 */ move $t0, $t9
/* 0B8AE4 800B7EE4 10000013 */ b .L800B7F34
/* 0B8AE8 800B7EE8 01C4B023 */ subu $s6, $t6, $a0
.L800B7EEC:
/* 0B8AEC 800B7EEC 00658823 */ subu $s1, $v1, $a1
/* 0B8AF0 800B7EF0 1E200003 */ bgtz $s1, .L800B7F00
/* 0B8AF4 800B7EF4 0000B025 */ move $s6, $zero
/* 0B8AF8 800B7EF8 00008825 */ move $s1, $zero
/* 0B8AFC 800B7EFC 0060A825 */ move $s5, $v1
.L800B7F00:
/* 0B8B00 800B7F00 8FB8012C */ lw $t8, 0x12c($sp)
/* 0B8B04 800B7F04 2628000F */ addiu $t0, $s1, 0xf
/* 0B8B08 800B7F08 05010003 */ bgez $t0, .L800B7F18
/* 0B8B0C 800B7F0C 00087903 */ sra $t7, $t0, 4
/* 0B8B10 800B7F10 2501000F */ addiu $at, $t0, 0xf
/* 0B8B14 800B7F14 00017903 */ sra $t7, $at, 4
.L800B7F18:
/* 0B8B18 800B7F18 8F190008 */ lw $t9, 8($t8)
/* 0B8B1C 800B7F1C 01E04025 */ move $t0, $t7
/* 0B8B20 800B7F20 53200004 */ beql $t9, $zero, .L800B7F34
/* 0B8B24 800B7F24 240B0001 */ li $t3, 1
/* 0B8B28 800B7F28 10000002 */ b .L800B7F34
/* 0B8B2C 800B7F2C 240C0001 */ li $t4, 1
/* 0B8B30 800B7F30 240B0001 */ li $t3, 1
.L800B7F34:
/* 0B8B34 800B7F34 11000044 */ beqz $t0, .L800B8048
/* 0B8B38 800B7F38 00005025 */ move $t2, $zero
/* 0B8B3C 800B7F3C 8FAF0130 */ lw $t7, 0x130($sp)
/* 0B8B40 800B7F40 00D31023 */ subu $v0, $a2, $s3
/* 0B8B44 800B7F44 24420010 */ addiu $v0, $v0, 0x10
/* 0B8B48 800B7F48 91F80001 */ lbu $t8, 1($t7)
/* 0B8B4C 800B7F4C 04410003 */ bgez $v0, .L800B7F5C
/* 0B8B50 800B7F50 00027103 */ sra $t6, $v0, 4
/* 0B8B54 800B7F54 2441000F */ addiu $at, $v0, 0xf
/* 0B8B58 800B7F58 00017103 */ sra $t6, $at, 4
.L800B7F5C:
/* 0B8B5C 800B7F5C 24010081 */ li $at, 129
/* 0B8B60 800B7F60 1701000C */ bne $t8, $at, .L800B7F94
/* 0B8B64 800B7F64 01C01025 */ move $v0, $t6
/* 0B8B68 800B7F68 000EC8C0 */ sll $t9, $t6, 3
/* 0B8B6C 800B7F6C 000880C0 */ sll $s0, $t0, 3
/* 0B8B70 800B7F70 02088021 */ addu $s0, $s0, $t0
/* 0B8B74 800B7F74 032EC821 */ addu $t9, $t9, $t6
/* 0B8B78 800B7F78 8FAE00EC */ lw $t6, 0xec($sp)
/* 0B8B7C 800B7F7C 2610001F */ addiu $s0, $s0, 0x1f
/* 0B8B80 800B7F80 2401FFF0 */ li $at, -16
/* 0B8B84 800B7F84 02017824 */ and $t7, $s0, $at
/* 0B8B88 800B7F88 01E08025 */ move $s0, $t7
/* 0B8B8C 800B7F8C 10000019 */ b .L800B7FF4
/* 0B8B90 800B7F90 032E2021 */ addu $a0, $t9, $t6
.L800B7F94:
/* 0B8B94 800B7F94 24030009 */ li $v1, 9
/* 0B8B98 800B7F98 00430019 */ multu $v0, $v1
/* 0B8B9C 800B7F9C 8FB900EC */ lw $t9, 0xec($sp)
/* 0B8BA0 800B7FA0 2401FFF0 */ li $at, -16
/* 0B8BA4 800B7FA4 AFBF00D8 */ sw $ra, 0xd8($sp)
/* 0B8BA8 800B7FA8 8FA60114 */ lw $a2, 0x114($sp)
/* 0B8BAC 800B7FAC 26E70001 */ addiu $a3, $s7, 1
/* 0B8BB0 800B7FB0 AFAB011C */ sw $t3, 0x11c($sp)
/* 0B8BB4 800B7FB4 AFAC0118 */ sw $t4, 0x118($sp)
/* 0B8BB8 800B7FB8 AFAD00E4 */ sw $t5, 0xe4($sp)
/* 0B8BBC 800B7FBC 0000C012 */ mflo $t8
/* 0B8BC0 800B7FC0 03192021 */ addu $a0, $t8, $t9
/* 0B8BC4 800B7FC4 00000000 */ nop
/* 0B8BC8 800B7FC8 01030019 */ multu $t0, $v1
/* 0B8BCC 800B7FCC 00008012 */ mflo $s0
/* 0B8BD0 800B7FD0 2610001F */ addiu $s0, $s0, 0x1f
/* 0B8BD4 800B7FD4 02012824 */ and $a1, $s0, $at
/* 0B8BD8 800B7FD8 0C02EB43 */ jal dma_sample_data
/* 0B8BDC 800B7FDC 00A08025 */ move $s0, $a1
/* 0B8BE0 800B7FE0 8FAB011C */ lw $t3, 0x11c($sp)
/* 0B8BE4 800B7FE4 8FAC0118 */ lw $t4, 0x118($sp)
/* 0B8BE8 800B7FE8 8FAD00E4 */ lw $t5, 0xe4($sp)
/* 0B8BEC 800B7FEC 8FBF00D8 */ lw $ra, 0xd8($sp)
/* 0B8BF0 800B7FF0 00402025 */ move $a0, $v0
.L800B7FF4:
/* 0B8BF4 800B7FF4 240F0540 */ li $t7, 1344
/* 0B8BF8 800B7FF8 01F04823 */ subu $t1, $t7, $s0
/* 0B8BFC 800B7FFC 0009C400 */ sll $t8, $t1, 0x10
/* 0B8C00 800B8000 00107103 */ sra $t6, $s0, 4
/* 0B8C04 800B8004 31CF00FF */ andi $t7, $t6, 0xff
/* 0B8C08 800B8008 00184C03 */ sra $t1, $t8, 0x10
/* 0B8C0C 800B800C 000FC400 */ sll $t8, $t7, 0x10
/* 0B8C10 800B8010 3C011400 */ lui $at, 0x1400
/* 0B8C14 800B8014 0301C825 */ or $t9, $t8, $at
/* 0B8C18 800B8018 308A000F */ andi $t2, $a0, 0xf
/* 0B8C1C 800B801C 312EFFFF */ andi $t6, $t1, 0xffff
/* 0B8C20 800B8020 032E7825 */ or $t7, $t9, $t6
/* 0B8C24 800B8024 008AC023 */ subu $t8, $a0, $t2
/* 0B8C28 800B8028 3C018000 */ lui $at, 0x8000
/* 0B8C2C 800B802C 02401825 */ move $v1, $s2
/* 0B8C30 800B8030 0301C821 */ addu $t9, $t8, $at
/* 0B8C34 800B8034 AC790004 */ sw $t9, 4($v1)
/* 0B8C38 800B8038 AC6F0000 */ sw $t7, ($v1)
/* 0B8C3C 800B803C 92E50000 */ lbu $a1, ($s7)
/* 0B8C40 800B8040 1000000B */ b .L800B8070
/* 0B8C44 800B8044 26520008 */ addiu $s2, $s2, 8
.L800B8048:
/* 0B8C48 800B8048 000870C0 */ sll $t6, $t0, 3
/* 0B8C4C 800B804C 01C87021 */ addu $t6, $t6, $t0
/* 0B8C50 800B8050 25CF001F */ addiu $t7, $t6, 0x1f
/* 0B8C54 800B8054 31F8FFF0 */ andi $t8, $t7, 0xfff0
/* 0B8C58 800B8058 24190540 */ li $t9, 1344
/* 0B8C5C 800B805C 03384823 */ subu $t1, $t9, $t8
/* 0B8C60 800B8060 00097400 */ sll $t6, $t1, 0x10
/* 0B8C64 800B8064 00008825 */ move $s1, $zero
/* 0B8C68 800B8068 000E4C03 */ sra $t1, $t6, 0x10
/* 0B8C6C 800B806C 92E50000 */ lbu $a1, ($s7)
.L800B8070:
/* 0B8C70 800B8070 10A0000D */ beqz $a1, .L800B80A8
/* 0B8C74 800B8074 02401025 */ move $v0, $s2
/* 0B8C78 800B8078 3C190F00 */ lui $t9, 0xf00
/* 0B8C7C 800B807C AC590000 */ sw $t9, ($v0)
/* 0B8C80 800B8080 8FB80130 */ lw $t8, 0x130($sp)
/* 0B8C84 800B8084 3C018000 */ lui $at, (0x80000010 >> 16) # lui $at, 0x8000
/* 0B8C88 800B8088 34210010 */ ori $at, (0x80000010 & 0xFFFF) # ori $at, $at, 0x10
/* 0B8C8C 800B808C 8F0E0008 */ lw $t6, 8($t8)
/* 0B8C90 800B8090 24190002 */ li $t9, 2
/* 0B8C94 800B8094 26520008 */ addiu $s2, $s2, 8
/* 0B8C98 800B8098 01C17821 */ addu $t7, $t6, $at
/* 0B8C9C 800B809C AC4F0004 */ sw $t7, 4($v0)
/* 0B8CA0 800B80A0 AFB90114 */ sw $t9, 0x114($sp)
/* 0B8CA4 800B80A4 A2E00000 */ sb $zero, ($s7)
.L800B80A8:
/* 0B8CA8 800B80A8 17C0001E */ bnez $fp, .L800B8124
/* 0B8CAC 800B80AC 02401825 */ move $v1, $s2
/* 0B8CB0 800B80B0 012AC021 */ addu $t8, $t1, $t2
/* 0B8CB4 800B80B4 330EFFFF */ andi $t6, $t8, 0xffff
/* 0B8CB8 800B80B8 3C010800 */ lui $at, 0x800
/* 0B8CBC 800B80BC 01C17825 */ or $t7, $t6, $at
/* 0B8CC0 800B80C0 00113040 */ sll $a2, $s1, 1
/* 0B8CC4 800B80C4 30D9FFFF */ andi $t9, $a2, 0xffff
/* 0B8CC8 800B80C8 3C0101A0 */ lui $at, 0x1a0
/* 0B8CCC 800B80CC 02401025 */ move $v0, $s2
/* 0B8CD0 800B80D0 0321C025 */ or $t8, $t9, $at
/* 0B8CD4 800B80D4 AC580004 */ sw $t8, 4($v0)
/* 0B8CD8 800B80D8 AC4F0000 */ sw $t7, ($v0)
/* 0B8CDC 800B80DC 8FAE0114 */ lw $t6, 0x114($sp)
/* 0B8CE0 800B80E0 26520008 */ addiu $s2, $s2, 8
/* 0B8CE4 800B80E4 3C010100 */ lui $at, 0x100
/* 0B8CE8 800B80E8 31CF00FF */ andi $t7, $t6, 0xff
/* 0B8CEC 800B80EC 000FCC00 */ sll $t9, $t7, 0x10
/* 0B8CF0 800B80F0 0321C025 */ or $t8, $t9, $at
/* 0B8CF4 800B80F4 02401825 */ move $v1, $s2
/* 0B8CF8 800B80F8 AC780000 */ sw $t8, ($v1)
/* 0B8CFC 800B80FC 8EEE000C */ lw $t6, 0xc($s7)
/* 0B8D00 800B8100 3C018000 */ lui $at, 0x8000
/* 0B8D04 800B8104 0235C021 */ addu $t8, $s1, $s5
/* 0B8D08 800B8108 01C17821 */ addu $t7, $t6, $at
/* 0B8D0C 800B810C AC6F0004 */ sw $t7, 4($v1)
/* 0B8D10 800B8110 0013C840 */ sll $t9, $s3, 1
/* 0B8D14 800B8114 26520008 */ addiu $s2, $s2, 8
/* 0B8D18 800B8118 AFB900FC */ sw $t9, 0xfc($sp)
/* 0B8D1C 800B811C 10000030 */ b .L800B81E0
/* 0B8D20 800B8120 03163823 */ subu $a3, $t8, $s6
.L800B8124:
/* 0B8D24 800B8124 012A7021 */ addu $t6, $t1, $t2
/* 0B8D28 800B8128 31CFFFFF */ andi $t7, $t6, 0xffff
/* 0B8D2C 800B812C 3C010800 */ lui $at, 0x800
/* 0B8D30 800B8130 01E1C825 */ or $t9, $t7, $at
/* 0B8D34 800B8134 2401FFF0 */ li $at, -16
/* 0B8D38 800B8138 2682001F */ addiu $v0, $s4, 0x1f
/* 0B8D3C 800B813C 0041C024 */ and $t8, $v0, $at
/* 0B8D40 800B8140 270F01A0 */ addiu $t7, $t8, 0x1a0
/* 0B8D44 800B8144 03001025 */ move $v0, $t8
/* 0B8D48 800B8148 AC790000 */ sw $t9, ($v1)
/* 0B8D4C 800B814C 00113040 */ sll $a2, $s1, 1
/* 0B8D50 800B8150 30D8FFFF */ andi $t8, $a2, 0xffff
/* 0B8D54 800B8154 000FCC00 */ sll $t9, $t7, 0x10
/* 0B8D58 800B8158 03387025 */ or $t6, $t9, $t8
/* 0B8D5C 800B815C AC6E0004 */ sw $t6, 4($v1)
/* 0B8D60 800B8160 8FAF0114 */ lw $t7, 0x114($sp)
/* 0B8D64 800B8164 26520008 */ addiu $s2, $s2, 8
/* 0B8D68 800B8168 3C010100 */ lui $at, 0x100
/* 0B8D6C 800B816C 31F900FF */ andi $t9, $t7, 0xff
/* 0B8D70 800B8170 0019C400 */ sll $t8, $t9, 0x10
/* 0B8D74 800B8174 03017025 */ or $t6, $t8, $at
/* 0B8D78 800B8178 02402025 */ move $a0, $s2
/* 0B8D7C 800B817C AC8E0000 */ sw $t6, ($a0)
/* 0B8D80 800B8180 8EEF000C */ lw $t7, 0xc($s7)
/* 0B8D84 800B8184 3C018000 */ lui $at, 0x8000
/* 0B8D88 800B8188 0013C040 */ sll $t8, $s3, 1
/* 0B8D8C 800B818C 01E1C821 */ addu $t9, $t7, $at
/* 0B8D90 800B8190 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0B8D94 800B8194 00587021 */ addu $t6, $v0, $t8
/* 0B8D98 800B8198 AC990004 */ sw $t9, 4($a0)
/* 0B8D9C 800B819C 25CF01A0 */ addiu $t7, $t6, 0x1a0
/* 0B8DA0 800B81A0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0B8DA4 800B81A4 01E1C824 */ and $t9, $t7, $at
/* 0B8DA8 800B81A8 3C010A00 */ lui $at, 0xa00
/* 0B8DAC 800B81AC 26520008 */ addiu $s2, $s2, 8
/* 0B8DB0 800B81B0 0321C025 */ or $t8, $t9, $at
/* 0B8DB4 800B81B4 02357021 */ addu $t6, $s1, $s5
/* 0B8DB8 800B81B8 01D63823 */ subu $a3, $t6, $s6
/* 0B8DBC 800B81BC 02402825 */ move $a1, $s2
/* 0B8DC0 800B81C0 ACB80000 */ sw $t8, ($a1)
/* 0B8DC4 800B81C4 00077040 */ sll $t6, $a3, 1
/* 0B8DC8 800B81C8 269901A0 */ addiu $t9, $s4, 0x1a0
/* 0B8DCC 800B81CC 0019C400 */ sll $t8, $t9, 0x10
/* 0B8DD0 800B81D0 31CFFFFF */ andi $t7, $t6, 0xffff
/* 0B8DD4 800B81D4 030FC825 */ or $t9, $t8, $t7
/* 0B8DD8 800B81D8 ACB90004 */ sw $t9, 4($a1)
/* 0B8DDC 800B81DC 26520008 */ addiu $s2, $s2, 8
.L800B81E0:
/* 0B8DE0 800B81E0 8FAE0114 */ lw $t6, 0x114($sp)
/* 0B8DE4 800B81E4 24010001 */ li $at, 1
/* 0B8DE8 800B81E8 03C7F021 */ addu $fp, $fp, $a3
/* 0B8DEC 800B81EC 11C10006 */ beq $t6, $at, .L800B8208
/* 0B8DF0 800B81F0 24180020 */ li $t8, 32
/* 0B8DF4 800B81F4 39C20002 */ xori $v0, $t6, 2
/* 0B8DF8 800B81F8 10400007 */ beqz $v0, .L800B8218
/* 0B8DFC 800B81FC AFA00114 */ sw $zero, 0x114($sp)
/* 0B8E00 800B8200 10000008 */ b .L800B8224
/* 0B8E04 800B8204 0007C840 */ sll $t9, $a3, 1
.L800B8208:
/* 0B8E08 800B8208 AFB800FC */ sw $t8, 0xfc($sp)
/* 0B8E0C 800B820C 24D40020 */ addiu $s4, $a2, 0x20
/* 0B8E10 800B8210 1000000B */ b .L800B8240
/* 0B8E14 800B8214 AFA00114 */ sw $zero, 0x114($sp)
.L800B8218:
/* 0B8E18 800B8218 00077840 */ sll $t7, $a3, 1
/* 0B8E1C 800B821C 10000008 */ b .L800B8240
/* 0B8E20 800B8220 01F4A021 */ addu $s4, $t7, $s4
.L800B8224:
/* 0B8E24 800B8224 52800004 */ beql $s4, $zero, .L800B8238
/* 0B8E28 800B8228 0267A021 */ addu $s4, $s3, $a3
/* 0B8E2C 800B822C 10000004 */ b .L800B8240
/* 0B8E30 800B8230 0334A021 */ addu $s4, $t9, $s4
/* 0B8E34 800B8234 0267A021 */ addu $s4, $s3, $a3
.L800B8238:
/* 0B8E38 800B8238 00147040 */ sll $t6, $s4, 1
/* 0B8E3C 800B823C 01C0A025 */ move $s4, $t6
.L800B8240:
/* 0B8E40 800B8240 1160001E */ beqz $t3, .L800B82BC
/* 0B8E44 800B8244 240F0001 */ li $t7, 1
/* 0B8E48 800B8248 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0B8E4C 800B824C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0B8E50 800B8250 269801A0 */ addiu $t8, $s4, 0x1a0
/* 0B8E54 800B8254 03017824 */ and $t7, $t8, $at
/* 0B8E58 800B8258 8FB00144 */ lw $s0, 0x144($sp)
/* 0B8E5C 800B825C 8FB1008C */ lw $s1, 0x8c($sp)
/* 0B8E60 800B8260 3C010200 */ lui $at, 0x200
/* 0B8E64 800B8264 02401025 */ move $v0, $s2
/* 0B8E68 800B8268 01BE7023 */ subu $t6, $t5, $fp
/* 0B8E6C 800B826C 000EC040 */ sll $t8, $t6, 1
/* 0B8E70 800B8270 01E1C825 */ or $t9, $t7, $at
/* 0B8E74 800B8274 AC590000 */ sw $t9, ($v0)
/* 0B8E78 800B8278 AC580004 */ sw $t8, 4($v0)
/* 0B8E7C 800B827C 92190000 */ lbu $t9, ($s0)
/* 0B8E80 800B8280 26520008 */ addiu $s2, $s2, 8
/* 0B8E84 800B8284 372E0020 */ ori $t6, $t9, 0x20
/* 0B8E88 800B8288 A20E0000 */ sb $t6, ($s0)
/* 0B8E8C 800B828C 922F00B0 */ lbu $t7, 0xb0($s1)
/* 0B8E90 800B8290 35F90020 */ ori $t9, $t7, 0x20
/* 0B8E94 800B8294 A23900B0 */ sb $t9, 0xb0($s1)
/* 0B8E98 800B8298 922E00B0 */ lbu $t6, 0xb0($s1)
/* 0B8E9C 800B829C 31D8FF7F */ andi $t8, $t6, 0xff7f
/* 0B8EA0 800B82A0 A23800B0 */ sb $t8, 0xb0($s1)
/* 0B8EA4 800B82A4 AFAD00E4 */ sw $t5, 0xe4($sp)
/* 0B8EA8 800B82A8 8FA50140 */ lw $a1, 0x140($sp)
/* 0B8EAC 800B82AC 0C02DBED */ jal func_800B6FB4
/* 0B8EB0 800B82B0 8FA40158 */ lw $a0, 0x158($sp)
/* 0B8EB4 800B82B4 1000000D */ b .L800B82EC
/* 0B8EB8 800B82B8 8FAD00E4 */ lw $t5, 0xe4($sp)
.L800B82BC:
/* 0B8EBC 800B82BC 51800007 */ beql $t4, $zero, .L800B82DC
/* 0B8EC0 800B82C0 8EF80008 */ lw $t8, 8($s7)
/* 0B8EC4 800B82C4 A2EF0000 */ sb $t7, ($s7)
/* 0B8EC8 800B82C8 8FB9012C */ lw $t9, 0x12c($sp)
/* 0B8ECC 800B82CC 8F2E0000 */ lw $t6, ($t9)
/* 0B8ED0 800B82D0 10000004 */ b .L800B82E4
/* 0B8ED4 800B82D4 AEEE0008 */ sw $t6, 8($s7)
/* 0B8ED8 800B82D8 8EF80008 */ lw $t8, 8($s7)
.L800B82DC:
/* 0B8EDC 800B82DC 031F7821 */ addu $t7, $t8, $ra
/* 0B8EE0 800B82E0 AEEF0008 */ sw $t7, 8($s7)
.L800B82E4:
/* 0B8EE4 800B82E4 57CDFEE5 */ bnel $fp, $t5, .L800B7E7C
/* 0B8EE8 800B82E8 8EE60008 */ lw $a2, 8($s7)
.L800B82EC:
/* 0B8EEC 800B82EC 8FB900B0 */ lw $t9, 0xb0($sp)
.L800B82F0:
/* 0B8EF0 800B82F0 24010001 */ li $at, 1
/* 0B8EF4 800B82F4 8FB00144 */ lw $s0, 0x144($sp)
/* 0B8EF8 800B82F8 13210009 */ beq $t9, $at, .L800B8320
/* 0B8EFC 800B82FC 8FB800FC */ lw $t8, 0xfc($sp)
/* 0B8F00 800B8300 24010002 */ li $at, 2
/* 0B8F04 800B8304 1321000E */ beq $t9, $at, .L800B8340
/* 0B8F08 800B8308 8FB800AC */ lw $t8, 0xac($sp)
/* 0B8F0C 800B830C 8E040000 */ lw $a0, ($s0)
/* 0B8F10 800B8310 00041880 */ sll $v1, $a0, 2
/* 0B8F14 800B8314 000377C2 */ srl $t6, $v1, 0x1f
/* 0B8F18 800B8318 10000052 */ b .L800B8464
/* 0B8F1C 800B831C 01C01825 */ move $v1, $t6
.L800B8320:
/* 0B8F20 800B8320 8FB90144 */ lw $t9, 0x144($sp)
/* 0B8F24 800B8324 270F01A0 */ addiu $t7, $t8, 0x1a0
/* 0B8F28 800B8328 A7AF009E */ sh $t7, 0x9e($sp)
/* 0B8F2C 800B832C 8F240000 */ lw $a0, ($t9)
/* 0B8F30 800B8330 00041880 */ sll $v1, $a0, 2
/* 0B8F34 800B8334 000377C2 */ srl $t6, $v1, 0x1f
/* 0B8F38 800B8338 1000004A */ b .L800B8464
/* 0B8F3C 800B833C 01C01825 */ move $v1, $t6
.L800B8340:
/* 0B8F40 800B8340 13000009 */ beqz $t8, .L800B8368
/* 0B8F44 800B8344 8FA50144 */ lw $a1, 0x144($sp)
/* 0B8F48 800B8348 24010001 */ li $at, 1
/* 0B8F4C 800B834C 1301002E */ beq $t8, $at, .L800B8408
/* 0B8F50 800B8350 02401025 */ move $v0, $s2
/* 0B8F54 800B8354 8E040000 */ lw $a0, ($s0)
/* 0B8F58 800B8358 00041880 */ sll $v1, $a0, 2
/* 0B8F5C 800B835C 00037FC2 */ srl $t7, $v1, 0x1f
/* 0B8F60 800B8360 10000040 */ b .L800B8464
/* 0B8F64 800B8364 01E01825 */ move $v1, $t7
.L800B8368:
/* 0B8F68 800B8368 02401025 */ move $v0, $s2
/* 0B8F6C 800B836C 26520008 */ addiu $s2, $s2, 8
/* 0B8F70 800B8370 05A10003 */ bgez $t5, .L800B8380
/* 0B8F74 800B8374 000DC843 */ sra $t9, $t5, 1
/* 0B8F78 800B8378 25A10001 */ addiu $at, $t5, 1
/* 0B8F7C 800B837C 0001C843 */ sra $t9, $at, 1
.L800B8380:
/* 0B8F80 800B8380 27380007 */ addiu $t8, $t9, 7
/* 0B8F84 800B8384 330FFFF8 */ andi $t7, $t8, 0xfff8
/* 0B8F88 800B8388 3C011100 */ lui $at, 0x1100
/* 0B8F8C 800B838C 01E1C825 */ or $t9, $t7, $at
/* 0B8F90 800B8390 AC590000 */ sw $t9, ($v0)
/* 0B8F94 800B8394 8FAE00FC */ lw $t6, 0xfc($sp)
/* 0B8F98 800B8398 24180020 */ li $t8, 32
/* 0B8F9C 800B839C 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 0B8FA0 800B83A0 25CF01A0 */ addiu $t7, $t6, 0x1a0
/* 0B8FA4 800B83A4 000FCC00 */ sll $t9, $t7, 0x10
/* 0B8FA8 800B83A8 372E0020 */ ori $t6, $t9, 0x20
/* 0B8FAC 800B83AC AC4E0004 */ sw $t6, 4($v0)
/* 0B8FB0 800B83B0 AFAD00A0 */ sw $t5, 0xa0($sp)
/* 0B8FB4 800B83B4 A7B8009E */ sh $t8, 0x9e($sp)
/* 0B8FB8 800B83B8 8CA40000 */ lw $a0, ($a1)
/* 0B8FBC 800B83BC 02401025 */ move $v0, $s2
/* 0B8FC0 800B83C0 25B90020 */ addiu $t9, $t5, 0x20
/* 0B8FC4 800B83C4 00041880 */ sll $v1, $a0, 2
/* 0B8FC8 800B83C8 00037FC2 */ srl $t7, $v1, 0x1f
/* 0B8FCC 800B83CC 11E00025 */ beqz $t7, .L800B8464
/* 0B8FD0 800B83D0 01E01825 */ move $v1, $t7
/* 0B8FD4 800B83D4 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0B8FD8 800B83D8 03217024 */ and $t6, $t9, $at
/* 0B8FDC 800B83DC 3C010200 */ lui $at, 0x200
/* 0B8FE0 800B83E0 01C1C025 */ or $t8, $t6, $at
/* 0B8FE4 800B83E4 25AF0010 */ addiu $t7, $t5, 0x10
/* 0B8FE8 800B83E8 AC4F0004 */ sw $t7, 4($v0)
/* 0B8FEC 800B83EC AC580000 */ sw $t8, ($v0)
/* 0B8FF0 800B83F0 8CA40000 */ lw $a0, ($a1)
/* 0B8FF4 800B83F4 26520008 */ addiu $s2, $s2, 8
/* 0B8FF8 800B83F8 00041880 */ sll $v1, $a0, 2
/* 0B8FFC 800B83FC 0003CFC2 */ srl $t9, $v1, 0x1f
/* 0B9000 800B8400 10000018 */ b .L800B8464
/* 0B9004 800B8404 03201825 */ move $v1, $t9
.L800B8408:
/* 0B9008 800B8408 26520008 */ addiu $s2, $s2, 8
/* 0B900C 800B840C 05A10003 */ bgez $t5, .L800B841C
/* 0B9010 800B8410 000D7043 */ sra $t6, $t5, 1
/* 0B9014 800B8414 25A10001 */ addiu $at, $t5, 1
/* 0B9018 800B8418 00017043 */ sra $t6, $at, 1
.L800B841C:
/* 0B901C 800B841C 25CF0007 */ addiu $t7, $t6, 7
/* 0B9020 800B8420 31F9FFF8 */ andi $t9, $t7, 0xfff8
/* 0B9024 800B8424 3C011100 */ lui $at, 0x1100
/* 0B9028 800B8428 03217025 */ or $t6, $t9, $at
/* 0B902C 800B842C AC4E0000 */ sw $t6, ($v0)
/* 0B9030 800B8430 8FB800FC */ lw $t8, 0xfc($sp)
/* 0B9034 800B8434 271901A0 */ addiu $t9, $t8, 0x1a0
/* 0B9038 800B8438 8FB800A0 */ lw $t8, 0xa0($sp)
/* 0B903C 800B843C 00197400 */ sll $t6, $t9, 0x10
/* 0B9040 800B8440 270F0020 */ addiu $t7, $t8, 0x20
/* 0B9044 800B8444 31F9FFFF */ andi $t9, $t7, 0xffff
/* 0B9048 800B8448 01D9C025 */ or $t8, $t6, $t9
/* 0B904C 800B844C AC580004 */ sw $t8, 4($v0)
/* 0B9050 800B8450 8FAF0144 */ lw $t7, 0x144($sp)
/* 0B9054 800B8454 8DE40000 */ lw $a0, ($t7)
/* 0B9058 800B8458 00041880 */ sll $v1, $a0, 2
/* 0B905C 800B845C 000377C2 */ srl $t6, $v1, 0x1f
/* 0B9060 800B8460 01C01825 */ move $v1, $t6
.L800B8464:
/* 0B9064 800B8464 10600003 */ beqz $v1, .L800B8474
/* 0B9068 800B8468 8FA200AC */ lw $v0, 0xac($sp)
/* 0B906C 800B846C 10000007 */ b .L800B848C
/* 0B9070 800B8470 AFB20154 */ sw $s2, 0x154($sp)
.L800B8474:
/* 0B9074 800B8474 8FB900B0 */ lw $t9, 0xb0($sp)
/* 0B9078 800B8478 24420001 */ addiu $v0, $v0, 1
/* 0B907C 800B847C AFA200AC */ sw $v0, 0xac($sp)
/* 0B9080 800B8480 5459FE46 */ bnel $v0, $t9, .L800B7D9C
/* 0B9084 800B8484 8FAF0130 */ lw $t7, 0x130($sp)
/* 0B9088 800B8488 AFB20154 */ sw $s2, 0x154($sp)
.L800B848C:
/* 0B908C 800B848C 0004C040 */ sll $t8, $a0, 1
/* 0B9090 800B8490 00187FC2 */ srl $t7, $t8, 0x1f
/* 0B9094 800B8494 24010001 */ li $at, 1
/* 0B9098 800B8498 8FB20154 */ lw $s2, 0x154($sp)
/* 0B909C 800B849C 15E10006 */ bne $t7, $at, .L800B84B8
/* 0B90A0 800B84A0 00001825 */ move $v1, $zero
/* 0B90A4 800B84A4 8FAE0144 */ lw $t6, 0x144($sp)
/* 0B90A8 800B84A8 24030001 */ li $v1, 1
/* 0B90AC 800B84AC 91D90000 */ lbu $t9, ($t6)
/* 0B90B0 800B84B0 3338FFBF */ andi $t8, $t9, 0xffbf
/* 0B90B4 800B84B4 A1D80000 */ sb $t8, ($t6)
.L800B84B8:
/* 0B90B8 800B84B8 8FB30150 */ lw $s3, 0x150($sp)
/* 0B90BC 800B84BC 97B9009E */ lhu $t9, 0x9e($sp)
/* 0B90C0 800B84C0 02402025 */ move $a0, $s2
/* 0B90C4 800B84C4 00133040 */ sll $a2, $s3, 1
/* 0B90C8 800B84C8 00C09825 */ move $s3, $a2
/* 0B90CC 800B84CC 02E02825 */ move $a1, $s7
/* 0B90D0 800B84D0 97A70112 */ lhu $a3, 0x112($sp)
/* 0B90D4 800B84D4 AFA30014 */ sw $v1, 0x14($sp)
/* 0B90D8 800B84D8 AFA30114 */ sw $v1, 0x114($sp)
/* 0B90DC 800B84DC 0C02E191 */ jal final_resample
/* 0B90E0 800B84E0 AFB90010 */ sw $t9, 0x10($sp)
/* 0B90E4 800B84E4 8FB10144 */ lw $s1, 0x144($sp)
/* 0B90E8 800B84E8 00409025 */ move $s2, $v0
/* 0B90EC 800B84EC 8FB40114 */ lw $s4, 0x114($sp)
/* 0B90F0 800B84F0 92380003 */ lbu $t8, 3($s1)
/* 0B90F4 800B84F4 02402025 */ move $a0, $s2
/* 0B90F8 800B84F8 02E03025 */ move $a2, $s7
/* 0B90FC 800B84FC 17000004 */ bnez $t8, .L800B8510
/* 0B9100 800B8500 02202825 */ move $a1, $s1
/* 0B9104 800B8504 92EE0002 */ lbu $t6, 2($s7)
/* 0B9108 800B8508 51C00004 */ beql $t6, $zero, .L800B851C
/* 0B910C 800B850C 922F0004 */ lbu $t7, 4($s1)
.L800B8510:
/* 0B9110 800B8510 1000000A */ b .L800B853C
/* 0B9114 800B8514 24100001 */ li $s0, 1
/* 0B9118 800B8518 922F0004 */ lbu $t7, 4($s1)
.L800B851C:
/* 0B911C 800B851C 15E00005 */ bnez $t7, .L800B8534
/* 0B9120 800B8520 00000000 */ nop
/* 0B9124 800B8524 92F90003 */ lbu $t9, 3($s7)
/* 0B9128 800B8528 00008025 */ move $s0, $zero
/* 0B912C 800B852C 13200003 */ beqz $t9, .L800B853C
/* 0B9130 800B8530 00000000 */ nop
.L800B8534:
/* 0B9134 800B8534 10000001 */ b .L800B853C
/* 0B9138 800B8538 24100002 */ li $s0, 2
.L800B853C:
/* 0B913C 800B853C 8FA70150 */ lw $a3, 0x150($sp)
/* 0B9140 800B8540 AFA00010 */ sw $zero, 0x10($sp)
/* 0B9144 800B8544 AFB00014 */ sw $s0, 0x14($sp)
/* 0B9148 800B8548 0C02E1A8 */ jal func_800B86A0
/* 0B914C 800B854C AFB40018 */ sw $s4, 0x18($sp)
/* 0B9150 800B8550 92380000 */ lbu $t8, ($s1)
/* 0B9154 800B8554 00409025 */ move $s2, $v0
/* 0B9158 800B8558 00402025 */ move $a0, $v0
/* 0B915C 800B855C 330E0001 */ andi $t6, $t8, 1
/* 0B9160 800B8560 11C00007 */ beqz $t6, .L800B8580
/* 0B9164 800B8564 02202825 */ move $a1, $s1
/* 0B9168 800B8568 02E03025 */ move $a2, $s7
/* 0B916C 800B856C 02603825 */ move $a3, $s3
/* 0B9170 800B8570 AFB40010 */ sw $s4, 0x10($sp)
/* 0B9174 800B8574 0C02E28B */ jal note_apply_headset_pan_effects
/* 0B9178 800B8578 AFB00014 */ sw $s0, 0x14($sp)
/* 0B917C 800B857C 00409025 */ move $s2, $v0
.L800B8580:
/* 0B9180 800B8580 8FBF004C */ lw $ra, 0x4c($sp)
/* 0B9184 800B8584 02401025 */ move $v0, $s2
/* 0B9188 800B8588 8FB20030 */ lw $s2, 0x30($sp)
/* 0B918C 800B858C 8FB00028 */ lw $s0, 0x28($sp)
/* 0B9190 800B8590 8FB1002C */ lw $s1, 0x2c($sp)
/* 0B9194 800B8594 8FB30034 */ lw $s3, 0x34($sp)
/* 0B9198 800B8598 8FB40038 */ lw $s4, 0x38($sp)
/* 0B919C 800B859C 8FB5003C */ lw $s5, 0x3c($sp)
/* 0B91A0 800B85A0 8FB60040 */ lw $s6, 0x40($sp)
/* 0B91A4 800B85A4 8FB70044 */ lw $s7, 0x44($sp)
/* 0B91A8 800B85A8 8FBE0048 */ lw $fp, 0x48($sp)
/* 0B91AC 800B85AC 03E00008 */ jr $ra
/* 0B91B0 800B85B0 27BD0140 */ addiu $sp, $sp, 0x140
@@ -1,822 +0,0 @@
.section .late_rodata
glabel jpt_800EE52C
.word L800603C8, L8005F9A0, L8005FF28, L800603C8
.word L800602A0, L800603C8, L8005FE00, L8005FC60
.word L800604EC, L80060050, L800602A0, L800604EC
.word L80060178
.section .text
glabel func_8005F90C
/* 06050C 8005F90C 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 060510 8005F910 AFBF0034 */ sw $ra, 0x34($sp)
/* 060514 8005F914 AFB20030 */ sw $s2, 0x30($sp)
/* 060518 8005F918 AFB1002C */ sw $s1, 0x2c($sp)
/* 06051C 8005F91C AFB00028 */ sw $s0, 0x28($sp)
/* 060520 8005F920 AFA5003C */ sw $a1, 0x3c($sp)
/* 060524 8005F924 AFA70044 */ sw $a3, 0x44($sp)
/* 060528 8005F928 8C8E00BC */ lw $t6, 0xbc($a0)
/* 06052C 8005F92C 24010080 */ li $at, 128
/* 060530 8005F930 00808825 */ move $s1, $a0
/* 060534 8005F934 31CF0080 */ andi $t7, $t6, 0x80
/* 060538 8005F938 15E10009 */ bne $t7, $at, .L8005F960
/* 06053C 8005F93C 00004825 */ move $t1, $zero
/* 060540 8005F940 C4840018 */ lwc1 $f4, 0x18($a0)
/* 060544 8005F944 C4860070 */ lwc1 $f6, 0x70($a0)
/* 060548 8005F948 C4800014 */ lwc1 $f0, 0x14($a0)
/* 06054C 8005F94C C48C001C */ lwc1 $f12, 0x1c($a0)
/* 060550 8005F950 24090001 */ li $t1, 1
/* 060554 8005F954 908201D4 */ lbu $v0, 0x1d4($a0)
/* 060558 8005F958 10000007 */ b .L8005F978
/* 06055C 8005F95C 46062081 */ sub.s $f2, $f4, $f6
.L8005F960:
/* 060560 8005F960 C6280018 */ lwc1 $f8, 0x18($s1)
/* 060564 8005F964 C62A0070 */ lwc1 $f10, 0x70($s1)
/* 060568 8005F968 C6200014 */ lwc1 $f0, 0x14($s1)
/* 06056C 8005F96C C62C001C */ lwc1 $f12, 0x1c($s1)
/* 060570 8005F970 922201EC */ lbu $v0, 0x1ec($s1)
/* 060574 8005F974 460A4081 */ sub.s $f2, $f8, $f10
.L8005F978:
/* 060578 8005F978 244CFFFF */ addiu $t4, $v0, -1
/* 06057C 8005F97C 2D81000D */ sltiu $at, $t4, 0xd
/* 060580 8005F980 102002DA */ beqz $at, .L800604EC
/* 060584 8005F984 00401825 */ move $v1, $v0
/* 060588 8005F988 000C6080 */ sll $t4, $t4, 2
/* 06058C 8005F98C 3C01800F */ lui $at, %hi(jpt_800EE52C)
/* 060590 8005F990 002C0821 */ addu $at, $at, $t4
/* 060594 8005F994 8C2CE52C */ lw $t4, %lo(jpt_800EE52C)($at)
/* 060598 8005F998 01800008 */ jr $t4
/* 06059C 8005F99C 00000000 */ nop
glabel L8005F9A0
/* 0605A0 8005F9A0 87AD003E */ lh $t5, 0x3e($sp)
/* 0605A4 8005F9A4 24080048 */ li $t0, 72
/* 0605A8 8005F9A8 55A00059 */ bnel $t5, $zero, .L8005FB10
/* 0605AC 8005F9AC 24080048 */ li $t0, 72
/* 0605B0 8005F9B0 00C80019 */ multu $a2, $t0
/* 0605B4 8005F9B4 87B9003E */ lh $t9, 0x3e($sp)
/* 0605B8 8005F9B8 00007012 */ mflo $t6
/* 0605BC 8005F9BC 022E1021 */ addu $v0, $s1, $t6
/* 0605C0 8005F9C0 844F0546 */ lh $t7, 0x546($v0)
/* 0605C4 8005F9C4 1DE00004 */ bgtz $t7, .L8005F9D8
/* 0605C8 8005F9C8 00000000 */ nop
/* 0605CC 8005F9CC 84580544 */ lh $t8, 0x544($v0)
/* 0605D0 8005F9D0 5700004F */ bnel $t8, $zero, .L8005FB10
/* 0605D4 8005F9D4 24080048 */ li $t0, 72
.L8005F9D8:
/* 0605D8 8005F9D8 03280019 */ multu $t9, $t0
/* 0605DC 8005F9DC 44060000 */ mfc1 $a2, $f0
/* 0605E0 8005F9E0 44071000 */ mfc1 $a3, $f2
/* 0605E4 8005F9E4 02202025 */ move $a0, $s1
/* 0605E8 8005F9E8 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 0605EC 8005F9EC AFA30014 */ sw $v1, 0x14($sp)
/* 0605F0 8005F9F0 AFA90018 */ sw $t1, 0x18($sp)
/* 0605F4 8005F9F4 00005012 */ mflo $t2
/* 0605F8 8005F9F8 022A9021 */ addu $s2, $s1, $t2
/* 0605FC 8005F9FC 26500528 */ addiu $s0, $s2, 0x528
/* 060600 8005FA00 0C0175E5 */ jal func_8005D794
/* 060604 8005FA04 02002825 */ move $a1, $s0
/* 060608 8005FA08 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 06060C 8005FA0C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060610 8005FA10 02002025 */ move $a0, $s0
/* 060614 8005FA14 0C0175F6 */ jal func_8005D7D8
/* 060618 8005FA18 24050004 */ li $a1, 4
/* 06061C 8005FA1C 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060620 8005FA20 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
/* 060624 8005FA24 24010001 */ li $at, 1
/* 060628 8005FA28 02002025 */ move $a0, $s0
/* 06062C 8005FA2C 10610003 */ beq $v1, $at, .L8005FA3C
/* 060630 8005FA30 24050001 */ li $a1, 1
/* 060634 8005FA34 24010007 */ li $at, 7
/* 060638 8005FA38 14610005 */ bne $v1, $at, .L8005FA50
.L8005FA3C:
/* 06063C 8005FA3C 00003025 */ move $a2, $zero
/* 060640 8005FA40 0C0176B6 */ jal func_8005DAD8
/* 060644 8005FA44 24070080 */ li $a3, 128
/* 060648 8005FA48 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 06064C 8005FA4C 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FA50:
/* 060650 8005FA50 2401000B */ li $at, 11
/* 060654 8005FA54 14610007 */ bne $v1, $at, .L8005FA74
/* 060658 8005FA58 02002025 */ move $a0, $s0
/* 06065C 8005FA5C 24050007 */ li $a1, 7
/* 060660 8005FA60 00003025 */ move $a2, $zero
/* 060664 8005FA64 0C0176B6 */ jal func_8005DAD8
/* 060668 8005FA68 24070080 */ li $a3, 128
/* 06066C 8005FA6C 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060670 8005FA70 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FA74:
/* 060674 8005FA74 24010009 */ li $at, 9
/* 060678 8005FA78 14610007 */ bne $v1, $at, .L8005FA98
/* 06067C 8005FA7C 02002025 */ move $a0, $s0
/* 060680 8005FA80 24050008 */ li $a1, 8
/* 060684 8005FA84 00003025 */ move $a2, $zero
/* 060688 8005FA88 0C0176B6 */ jal func_8005DAD8
/* 06068C 8005FA8C 24070080 */ li $a3, 128
/* 060690 8005FA90 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060694 8005FA94 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FA98:
/* 060698 8005FA98 2401000E */ li $at, 14
/* 06069C 8005FA9C 14610007 */ bne $v1, $at, .L8005FABC
/* 0606A0 8005FAA0 02002025 */ move $a0, $s0
/* 0606A4 8005FAA4 24050009 */ li $a1, 9
/* 0606A8 8005FAA8 00003025 */ move $a2, $zero
/* 0606AC 8005FAAC 0C0176B6 */ jal func_8005DAD8
/* 0606B0 8005FAB0 24070080 */ li $a3, 128
/* 0606B4 8005FAB4 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0606B8 8005FAB8 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FABC:
/* 0606BC 8005FABC 24010004 */ li $at, 4
/* 0606C0 8005FAC0 14610007 */ bne $v1, $at, .L8005FAE0
/* 0606C4 8005FAC4 02002025 */ move $a0, $s0
/* 0606C8 8005FAC8 2405000A */ li $a1, 10
/* 0606CC 8005FACC 00003025 */ move $a2, $zero
/* 0606D0 8005FAD0 0C0176B6 */ jal func_8005DAD8
/* 0606D4 8005FAD4 24070080 */ li $a3, 128
/* 0606D8 8005FAD8 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0606DC 8005FADC 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FAE0:
/* 0606E0 8005FAE0 24010012 */ li $at, 18
/* 0606E4 8005FAE4 14610005 */ bne $v1, $at, .L8005FAFC
/* 0606E8 8005FAE8 02002025 */ move $a0, $s0
/* 0606EC 8005FAEC 2405000B */ li $a1, 11
/* 0606F0 8005FAF0 00003025 */ move $a2, $zero
/* 0606F4 8005FAF4 0C0176B6 */ jal func_8005DAD8
/* 0606F8 8005FAF8 24070080 */ li $a3, 128
.L8005FAFC:
/* 0606FC 8005FAFC 0C0ADF8D */ jal random_int
/* 060700 8005FB00 24040010 */ li $a0, 16
/* 060704 8005FB04 10000279 */ b .L800604EC
/* 060708 8005FB08 A6420562 */ sh $v0, 0x562($s2)
/* 06070C 8005FB0C 24080048 */ li $t0, 72
.L8005FB10:
/* 060710 8005FB10 00C80019 */ multu $a2, $t0
/* 060714 8005FB14 87AE003E */ lh $t6, 0x3e($sp)
/* 060718 8005FB18 00005812 */ mflo $t3
/* 06071C 8005FB1C 022B6021 */ addu $t4, $s1, $t3
/* 060720 8005FB20 858D0546 */ lh $t5, 0x546($t4)
/* 060724 8005FB24 59A00272 */ blezl $t5, .L800604F0
/* 060728 8005FB28 8FBF0034 */ lw $ra, 0x34($sp)
/* 06072C 8005FB2C 01C80019 */ multu $t6, $t0
/* 060730 8005FB30 44060000 */ mfc1 $a2, $f0
/* 060734 8005FB34 44071000 */ mfc1 $a3, $f2
/* 060738 8005FB38 02202025 */ move $a0, $s1
/* 06073C 8005FB3C E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060740 8005FB40 AFA30014 */ sw $v1, 0x14($sp)
/* 060744 8005FB44 AFA90018 */ sw $t1, 0x18($sp)
/* 060748 8005FB48 00007812 */ mflo $t7
/* 06074C 8005FB4C 022F9021 */ addu $s2, $s1, $t7
/* 060750 8005FB50 26500528 */ addiu $s0, $s2, 0x528
/* 060754 8005FB54 0C0175E5 */ jal func_8005D794
/* 060758 8005FB58 02002825 */ move $a1, $s0
/* 06075C 8005FB5C 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060760 8005FB60 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060764 8005FB64 02002025 */ move $a0, $s0
/* 060768 8005FB68 0C0175F6 */ jal func_8005D7D8
/* 06076C 8005FB6C 24050004 */ li $a1, 4
/* 060770 8005FB70 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060774 8005FB74 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
/* 060778 8005FB78 24010001 */ li $at, 1
/* 06077C 8005FB7C 02002025 */ move $a0, $s0
/* 060780 8005FB80 10610003 */ beq $v1, $at, .L8005FB90
/* 060784 8005FB84 24050001 */ li $a1, 1
/* 060788 8005FB88 24010007 */ li $at, 7
/* 06078C 8005FB8C 14610005 */ bne $v1, $at, .L8005FBA4
.L8005FB90:
/* 060790 8005FB90 00003025 */ move $a2, $zero
/* 060794 8005FB94 0C0176B6 */ jal func_8005DAD8
/* 060798 8005FB98 24070080 */ li $a3, 128
/* 06079C 8005FB9C 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0607A0 8005FBA0 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FBA4:
/* 0607A4 8005FBA4 2401000B */ li $at, 11
/* 0607A8 8005FBA8 14610007 */ bne $v1, $at, .L8005FBC8
/* 0607AC 8005FBAC 02002025 */ move $a0, $s0
/* 0607B0 8005FBB0 24050007 */ li $a1, 7
/* 0607B4 8005FBB4 00003025 */ move $a2, $zero
/* 0607B8 8005FBB8 0C0176B6 */ jal func_8005DAD8
/* 0607BC 8005FBBC 24070080 */ li $a3, 128
/* 0607C0 8005FBC0 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0607C4 8005FBC4 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FBC8:
/* 0607C8 8005FBC8 24010009 */ li $at, 9
/* 0607CC 8005FBCC 14610007 */ bne $v1, $at, .L8005FBEC
/* 0607D0 8005FBD0 02002025 */ move $a0, $s0
/* 0607D4 8005FBD4 24050008 */ li $a1, 8
/* 0607D8 8005FBD8 00003025 */ move $a2, $zero
/* 0607DC 8005FBDC 0C0176B6 */ jal func_8005DAD8
/* 0607E0 8005FBE0 24070080 */ li $a3, 128
/* 0607E4 8005FBE4 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 0607E8 8005FBE8 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FBEC:
/* 0607EC 8005FBEC 2401000E */ li $at, 14
/* 0607F0 8005FBF0 14610007 */ bne $v1, $at, .L8005FC10
/* 0607F4 8005FBF4 02002025 */ move $a0, $s0
/* 0607F8 8005FBF8 24050009 */ li $a1, 9
/* 0607FC 8005FBFC 00003025 */ move $a2, $zero
/* 060800 8005FC00 0C0176B6 */ jal func_8005DAD8
/* 060804 8005FC04 24070080 */ li $a3, 128
/* 060808 8005FC08 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 06080C 8005FC0C 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FC10:
/* 060810 8005FC10 24010004 */ li $at, 4
/* 060814 8005FC14 14610007 */ bne $v1, $at, .L8005FC34
/* 060818 8005FC18 02002025 */ move $a0, $s0
/* 06081C 8005FC1C 2405000A */ li $a1, 10
/* 060820 8005FC20 00003025 */ move $a2, $zero
/* 060824 8005FC24 0C0176B6 */ jal func_8005DAD8
/* 060828 8005FC28 24070080 */ li $a3, 128
/* 06082C 8005FC2C 3C03800E */ lui $v1, %hi(gCurrentCourseId) # $v1, 0x800e
/* 060830 8005FC30 8463C5A0 */ lh $v1, %lo(gCurrentCourseId)($v1)
.L8005FC34:
/* 060834 8005FC34 24010012 */ li $at, 18
/* 060838 8005FC38 14610005 */ bne $v1, $at, .L8005FC50
/* 06083C 8005FC3C 02002025 */ move $a0, $s0
/* 060840 8005FC40 2405000B */ li $a1, 11
/* 060844 8005FC44 00003025 */ move $a2, $zero
/* 060848 8005FC48 0C0176B6 */ jal func_8005DAD8
/* 06084C 8005FC4C 24070080 */ li $a3, 128
.L8005FC50:
/* 060850 8005FC50 0C0ADF8D */ jal random_int
/* 060854 8005FC54 24040010 */ li $a0, 16
/* 060858 8005FC58 10000224 */ b .L800604EC
/* 06085C 8005FC5C A6420562 */ sh $v0, 0x562($s2)
glabel L8005FC60
/* 060860 8005FC60 87B8003E */ lh $t8, 0x3e($sp)
/* 060864 8005FC64 24080048 */ li $t0, 72
/* 060868 8005FC68 5700002F */ bnel $t8, $zero, .L8005FD28
/* 06086C 8005FC6C 24080048 */ li $t0, 72
/* 060870 8005FC70 00C80019 */ multu $a2, $t0
/* 060874 8005FC74 87AC003E */ lh $t4, 0x3e($sp)
/* 060878 8005FC78 0000C812 */ mflo $t9
/* 06087C 8005FC7C 02391021 */ addu $v0, $s1, $t9
/* 060880 8005FC80 844A0546 */ lh $t2, 0x546($v0)
/* 060884 8005FC84 1D400004 */ bgtz $t2, .L8005FC98
/* 060888 8005FC88 00000000 */ nop
/* 06088C 8005FC8C 844B0544 */ lh $t3, 0x544($v0)
/* 060890 8005FC90 55600025 */ bnel $t3, $zero, .L8005FD28
/* 060894 8005FC94 24080048 */ li $t0, 72
.L8005FC98:
/* 060898 8005FC98 01880019 */ multu $t4, $t0
/* 06089C 8005FC9C 44060000 */ mfc1 $a2, $f0
/* 0608A0 8005FCA0 44071000 */ mfc1 $a3, $f2
/* 0608A4 8005FCA4 02202025 */ move $a0, $s1
/* 0608A8 8005FCA8 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 0608AC 8005FCAC AFA30014 */ sw $v1, 0x14($sp)
/* 0608B0 8005FCB0 AFA90018 */ sw $t1, 0x18($sp)
/* 0608B4 8005FCB4 00006812 */ mflo $t5
/* 0608B8 8005FCB8 022D9021 */ addu $s2, $s1, $t5
/* 0608BC 8005FCBC 26500528 */ addiu $s0, $s2, 0x528
/* 0608C0 8005FCC0 0C0175E5 */ jal func_8005D794
/* 0608C4 8005FCC4 02002825 */ move $a1, $s0
/* 0608C8 8005FCC8 3C063DCC */ lui $a2, (0x3DCCCCCD >> 16) # lui $a2, 0x3dcc
/* 0608CC 8005FCCC 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
/* 0608D0 8005FCD0 02002025 */ move $a0, $s0
/* 0608D4 8005FCD4 0C0175F6 */ jal func_8005D7D8
/* 0608D8 8005FCD8 24050004 */ li $a1, 4
/* 0608DC 8005FCDC 3C0500FF */ lui $a1, (0x00FFFFFF >> 16) # lui $a1, 0xff
/* 0608E0 8005FCE0 34A5FFFF */ ori $a1, (0x00FFFFFF & 0xFFFF) # ori $a1, $a1, 0xffff
/* 0608E4 8005FCE4 02002025 */ move $a0, $s0
/* 0608E8 8005FCE8 0C017600 */ jal func_8005D800
/* 0608EC 8005FCEC 240600FF */ li $a2, 255
/* 0608F0 8005FCF0 87A3003E */ lh $v1, 0x3e($sp)
/* 0608F4 8005FCF4 864F0560 */ lh $t7, 0x560($s2)
/* 0608F8 8005FCF8 86590562 */ lh $t9, 0x562($s2)
/* 0608FC 8005FCFC 864B0564 */ lh $t3, 0x564($s2)
/* 060900 8005FD00 000370C0 */ sll $t6, $v1, 3
/* 060904 8005FD04 01EEC023 */ subu $t8, $t7, $t6
/* 060908 8005FD08 032E5023 */ subu $t2, $t9, $t6
/* 06090C 8005FD0C 016E6023 */ subu $t4, $t3, $t6
/* 060910 8005FD10 24080048 */ li $t0, 72
/* 060914 8005FD14 A6580560 */ sh $t8, 0x560($s2)
/* 060918 8005FD18 A64A0562 */ sh $t2, 0x562($s2)
/* 06091C 8005FD1C 1000002B */ b .L8005FDCC
/* 060920 8005FD20 A64C0564 */ sh $t4, 0x564($s2)
/* 060924 8005FD24 24080048 */ li $t0, 72
.L8005FD28:
/* 060928 8005FD28 00C80019 */ multu $a2, $t0
/* 06092C 8005FD2C 87B8003E */ lh $t8, 0x3e($sp)
/* 060930 8005FD30 00006812 */ mflo $t5
/* 060934 8005FD34 022D7021 */ addu $t6, $s1, $t5
/* 060938 8005FD38 85CF0546 */ lh $t7, 0x546($t6)
/* 06093C 8005FD3C 59E00024 */ blezl $t7, .L8005FDD0
/* 060940 8005FD40 87B9003E */ lh $t9, 0x3e($sp)
/* 060944 8005FD44 03080019 */ multu $t8, $t0
/* 060948 8005FD48 44060000 */ mfc1 $a2, $f0
/* 06094C 8005FD4C 44071000 */ mfc1 $a3, $f2
/* 060950 8005FD50 02202025 */ move $a0, $s1
/* 060954 8005FD54 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060958 8005FD58 AFA30014 */ sw $v1, 0x14($sp)
/* 06095C 8005FD5C AFA90018 */ sw $t1, 0x18($sp)
/* 060960 8005FD60 0000C812 */ mflo $t9
/* 060964 8005FD64 02399021 */ addu $s2, $s1, $t9
/* 060968 8005FD68 26500528 */ addiu $s0, $s2, 0x528
/* 06096C 8005FD6C 0C0175E5 */ jal func_8005D794
/* 060970 8005FD70 02002825 */ move $a1, $s0
/* 060974 8005FD74 3C063DCC */ lui $a2, (0x3DCCCCCD >> 16) # lui $a2, 0x3dcc
/* 060978 8005FD78 34C6CCCD */ ori $a2, (0x3DCCCCCD & 0xFFFF) # ori $a2, $a2, 0xcccd
/* 06097C 8005FD7C 02002025 */ move $a0, $s0
/* 060980 8005FD80 0C0175F6 */ jal func_8005D7D8
/* 060984 8005FD84 24050004 */ li $a1, 4
/* 060988 8005FD88 3C0500FF */ lui $a1, (0x00FFFFFF >> 16) # lui $a1, 0xff
/* 06098C 8005FD8C 34A5FFFF */ ori $a1, (0x00FFFFFF & 0xFFFF) # ori $a1, $a1, 0xffff
/* 060990 8005FD90 02002025 */ move $a0, $s0
/* 060994 8005FD94 0C017600 */ jal func_8005D800
/* 060998 8005FD98 240600FF */ li $a2, 255
/* 06099C 8005FD9C 87A3003E */ lh $v1, 0x3e($sp)
/* 0609A0 8005FDA0 864B0560 */ lh $t3, 0x560($s2)
/* 0609A4 8005FDA4 864D0562 */ lh $t5, 0x562($s2)
/* 0609A8 8005FDA8 864F0564 */ lh $t7, 0x564($s2)
/* 0609AC 8005FDAC 000350C0 */ sll $t2, $v1, 3
/* 0609B0 8005FDB0 016A6023 */ subu $t4, $t3, $t2
/* 0609B4 8005FDB4 01AA7023 */ subu $t6, $t5, $t2
/* 0609B8 8005FDB8 01EAC023 */ subu $t8, $t7, $t2
/* 0609BC 8005FDBC 24080048 */ li $t0, 72
/* 0609C0 8005FDC0 A64C0560 */ sh $t4, 0x560($s2)
/* 0609C4 8005FDC4 A64E0562 */ sh $t6, 0x562($s2)
/* 0609C8 8005FDC8 A6580564 */ sh $t8, 0x564($s2)
.L8005FDCC:
/* 0609CC 8005FDCC 87B9003E */ lh $t9, 0x3e($sp)
.L8005FDD0:
/* 0609D0 8005FDD0 3C013FF8 */ li $at, 0x3FF80000 # 1.937500
/* 0609D4 8005FDD4 44812800 */ mtc1 $at, $f5
/* 0609D8 8005FDD8 03280019 */ multu $t9, $t0
/* 0609DC 8005FDDC 44802000 */ mtc1 $zero, $f4
/* 0609E0 8005FDE0 00005012 */ mflo $t2
/* 0609E4 8005FDE4 022A9021 */ addu $s2, $s1, $t2
/* 0609E8 8005FDE8 C650052C */ lwc1 $f16, 0x52c($s2)
/* 0609EC 8005FDEC 460084A1 */ cvt.d.s $f18, $f16
/* 0609F0 8005FDF0 46249181 */ sub.d $f6, $f18, $f4
/* 0609F4 8005FDF4 46203220 */ cvt.s.d $f8, $f6
/* 0609F8 8005FDF8 100001BC */ b .L800604EC
/* 0609FC 8005FDFC E648052C */ swc1 $f8, 0x52c($s2)
glabel L8005FE00
/* 060A00 8005FE00 87AB003E */ lh $t3, 0x3e($sp)
/* 060A04 8005FE04 24080048 */ li $t0, 72
/* 060A08 8005FE08 55600026 */ bnel $t3, $zero, .L8005FEA4
/* 060A0C 8005FE0C 24080048 */ li $t0, 72
/* 060A10 8005FE10 00C80019 */ multu $a2, $t0
/* 060A14 8005FE14 87AF003E */ lh $t7, 0x3e($sp)
/* 060A18 8005FE18 00006012 */ mflo $t4
/* 060A1C 8005FE1C 022C1021 */ addu $v0, $s1, $t4
/* 060A20 8005FE20 844D0546 */ lh $t5, 0x546($v0)
/* 060A24 8005FE24 1DA00004 */ bgtz $t5, .L8005FE38
/* 060A28 8005FE28 00000000 */ nop
/* 060A2C 8005FE2C 844E0544 */ lh $t6, 0x544($v0)
/* 060A30 8005FE30 55C0001C */ bnel $t6, $zero, .L8005FEA4
/* 060A34 8005FE34 24080048 */ li $t0, 72
.L8005FE38:
/* 060A38 8005FE38 01E80019 */ multu $t7, $t0
/* 060A3C 8005FE3C 44060000 */ mfc1 $a2, $f0
/* 060A40 8005FE40 44071000 */ mfc1 $a3, $f2
/* 060A44 8005FE44 02202025 */ move $a0, $s1
/* 060A48 8005FE48 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060A4C 8005FE4C AFA30014 */ sw $v1, 0x14($sp)
/* 060A50 8005FE50 AFA90018 */ sw $t1, 0x18($sp)
/* 060A54 8005FE54 0000C012 */ mflo $t8
/* 060A58 8005FE58 02389021 */ addu $s2, $s1, $t8
/* 060A5C 8005FE5C 26500528 */ addiu $s0, $s2, 0x528
/* 060A60 8005FE60 0C0175E5 */ jal func_8005D794
/* 060A64 8005FE64 02002825 */ move $a1, $s0
/* 060A68 8005FE68 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060A6C 8005FE6C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060A70 8005FE70 02002025 */ move $a0, $s0
/* 060A74 8005FE74 0C0175F6 */ jal func_8005D7D8
/* 060A78 8005FE78 24050004 */ li $a1, 4
/* 060A7C 8005FE7C 02002025 */ move $a0, $s0
/* 060A80 8005FE80 24050002 */ li $a1, 2
/* 060A84 8005FE84 24060001 */ li $a2, 1
/* 060A88 8005FE88 0C0176B6 */ jal func_8005DAD8
/* 060A8C 8005FE8C 240700A8 */ li $a3, 168
/* 060A90 8005FE90 0C0ADF8D */ jal random_int
/* 060A94 8005FE94 24040010 */ li $a0, 16
/* 060A98 8005FE98 10000194 */ b .L800604EC
/* 060A9C 8005FE9C A6420562 */ sh $v0, 0x562($s2)
/* 060AA0 8005FEA0 24080048 */ li $t0, 72
.L8005FEA4:
/* 060AA4 8005FEA4 00C80019 */ multu $a2, $t0
/* 060AA8 8005FEA8 87AC003E */ lh $t4, 0x3e($sp)
/* 060AAC 8005FEAC 0000C812 */ mflo $t9
/* 060AB0 8005FEB0 02395021 */ addu $t2, $s1, $t9
/* 060AB4 8005FEB4 854B0546 */ lh $t3, 0x546($t2)
/* 060AB8 8005FEB8 5960018D */ blezl $t3, .L800604F0
/* 060ABC 8005FEBC 8FBF0034 */ lw $ra, 0x34($sp)
/* 060AC0 8005FEC0 01880019 */ multu $t4, $t0
/* 060AC4 8005FEC4 44060000 */ mfc1 $a2, $f0
/* 060AC8 8005FEC8 44071000 */ mfc1 $a3, $f2
/* 060ACC 8005FECC 02202025 */ move $a0, $s1
/* 060AD0 8005FED0 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060AD4 8005FED4 AFA30014 */ sw $v1, 0x14($sp)
/* 060AD8 8005FED8 AFA90018 */ sw $t1, 0x18($sp)
/* 060ADC 8005FEDC 00006812 */ mflo $t5
/* 060AE0 8005FEE0 022D9021 */ addu $s2, $s1, $t5
/* 060AE4 8005FEE4 26500528 */ addiu $s0, $s2, 0x528
/* 060AE8 8005FEE8 0C0175E5 */ jal func_8005D794
/* 060AEC 8005FEEC 02002825 */ move $a1, $s0
/* 060AF0 8005FEF0 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060AF4 8005FEF4 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060AF8 8005FEF8 02002025 */ move $a0, $s0
/* 060AFC 8005FEFC 0C0175F6 */ jal func_8005D7D8
/* 060B00 8005FF00 24050004 */ li $a1, 4
/* 060B04 8005FF04 02002025 */ move $a0, $s0
/* 060B08 8005FF08 24050002 */ li $a1, 2
/* 060B0C 8005FF0C 24060001 */ li $a2, 1
/* 060B10 8005FF10 0C0176B6 */ jal func_8005DAD8
/* 060B14 8005FF14 240700A8 */ li $a3, 168
/* 060B18 8005FF18 0C0ADF8D */ jal random_int
/* 060B1C 8005FF1C 24040010 */ li $a0, 16
/* 060B20 8005FF20 10000172 */ b .L800604EC
/* 060B24 8005FF24 A6420562 */ sh $v0, 0x562($s2)
glabel L8005FF28
/* 060B28 8005FF28 87AE003E */ lh $t6, 0x3e($sp)
/* 060B2C 8005FF2C 24080048 */ li $t0, 72
/* 060B30 8005FF30 55C00026 */ bnel $t6, $zero, .L8005FFCC
/* 060B34 8005FF34 24080048 */ li $t0, 72
/* 060B38 8005FF38 00C80019 */ multu $a2, $t0
/* 060B3C 8005FF3C 87AA003E */ lh $t2, 0x3e($sp)
/* 060B40 8005FF40 00007812 */ mflo $t7
/* 060B44 8005FF44 022F1021 */ addu $v0, $s1, $t7
/* 060B48 8005FF48 84580546 */ lh $t8, 0x546($v0)
/* 060B4C 8005FF4C 1F000004 */ bgtz $t8, .L8005FF60
/* 060B50 8005FF50 00000000 */ nop
/* 060B54 8005FF54 84590544 */ lh $t9, 0x544($v0)
/* 060B58 8005FF58 5720001C */ bnel $t9, $zero, .L8005FFCC
/* 060B5C 8005FF5C 24080048 */ li $t0, 72
.L8005FF60:
/* 060B60 8005FF60 01480019 */ multu $t2, $t0
/* 060B64 8005FF64 44060000 */ mfc1 $a2, $f0
/* 060B68 8005FF68 44071000 */ mfc1 $a3, $f2
/* 060B6C 8005FF6C 02202025 */ move $a0, $s1
/* 060B70 8005FF70 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060B74 8005FF74 AFA30014 */ sw $v1, 0x14($sp)
/* 060B78 8005FF78 AFA90018 */ sw $t1, 0x18($sp)
/* 060B7C 8005FF7C 00005812 */ mflo $t3
/* 060B80 8005FF80 022B9021 */ addu $s2, $s1, $t3
/* 060B84 8005FF84 26500528 */ addiu $s0, $s2, 0x528
/* 060B88 8005FF88 0C0175E5 */ jal func_8005D794
/* 060B8C 8005FF8C 02002825 */ move $a1, $s0
/* 060B90 8005FF90 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060B94 8005FF94 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060B98 8005FF98 02002025 */ move $a0, $s0
/* 060B9C 8005FF9C 0C0175F6 */ jal func_8005D7D8
/* 060BA0 8005FFA0 24050004 */ li $a1, 4
/* 060BA4 8005FFA4 02002025 */ move $a0, $s0
/* 060BA8 8005FFA8 24050003 */ li $a1, 3
/* 060BAC 8005FFAC 24060001 */ li $a2, 1
/* 060BB0 8005FFB0 0C0176B6 */ jal func_8005DAD8
/* 060BB4 8005FFB4 240700A8 */ li $a3, 168
/* 060BB8 8005FFB8 0C0ADF8D */ jal random_int
/* 060BBC 8005FFBC 24040010 */ li $a0, 16
/* 060BC0 8005FFC0 1000014A */ b .L800604EC
/* 060BC4 8005FFC4 A6420562 */ sh $v0, 0x562($s2)
/* 060BC8 8005FFC8 24080048 */ li $t0, 72
.L8005FFCC:
/* 060BCC 8005FFCC 00C80019 */ multu $a2, $t0
/* 060BD0 8005FFD0 87AF003E */ lh $t7, 0x3e($sp)
/* 060BD4 8005FFD4 00006012 */ mflo $t4
/* 060BD8 8005FFD8 022C6821 */ addu $t5, $s1, $t4
/* 060BDC 8005FFDC 85AE0546 */ lh $t6, 0x546($t5)
/* 060BE0 8005FFE0 59C00143 */ blezl $t6, .L800604F0
/* 060BE4 8005FFE4 8FBF0034 */ lw $ra, 0x34($sp)
/* 060BE8 8005FFE8 01E80019 */ multu $t7, $t0
/* 060BEC 8005FFEC 44060000 */ mfc1 $a2, $f0
/* 060BF0 8005FFF0 44071000 */ mfc1 $a3, $f2
/* 060BF4 8005FFF4 02202025 */ move $a0, $s1
/* 060BF8 8005FFF8 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060BFC 8005FFFC AFA30014 */ sw $v1, 0x14($sp)
/* 060C00 80060000 AFA90018 */ sw $t1, 0x18($sp)
/* 060C04 80060004 0000C012 */ mflo $t8
/* 060C08 80060008 02389021 */ addu $s2, $s1, $t8
/* 060C0C 8006000C 26500528 */ addiu $s0, $s2, 0x528
/* 060C10 80060010 0C0175E5 */ jal func_8005D794
/* 060C14 80060014 02002825 */ move $a1, $s0
/* 060C18 80060018 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060C1C 8006001C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060C20 80060020 02002025 */ move $a0, $s0
/* 060C24 80060024 0C0175F6 */ jal func_8005D7D8
/* 060C28 80060028 24050004 */ li $a1, 4
/* 060C2C 8006002C 02002025 */ move $a0, $s0
/* 060C30 80060030 24050003 */ li $a1, 3
/* 060C34 80060034 24060001 */ li $a2, 1
/* 060C38 80060038 0C0176B6 */ jal func_8005DAD8
/* 060C3C 8006003C 240700A8 */ li $a3, 168
/* 060C40 80060040 0C0ADF8D */ jal random_int
/* 060C44 80060044 24040010 */ li $a0, 16
/* 060C48 80060048 10000128 */ b .L800604EC
/* 060C4C 8006004C A6420562 */ sh $v0, 0x562($s2)
glabel L80060050
/* 060C50 80060050 87B9003E */ lh $t9, 0x3e($sp)
/* 060C54 80060054 24080048 */ li $t0, 72
/* 060C58 80060058 57200026 */ bnel $t9, $zero, .L800600F4
/* 060C5C 8006005C 24080048 */ li $t0, 72
/* 060C60 80060060 00C80019 */ multu $a2, $t0
/* 060C64 80060064 87AD003E */ lh $t5, 0x3e($sp)
/* 060C68 80060068 00005012 */ mflo $t2
/* 060C6C 8006006C 022A1021 */ addu $v0, $s1, $t2
/* 060C70 80060070 844B0546 */ lh $t3, 0x546($v0)
/* 060C74 80060074 1D600004 */ bgtz $t3, .L80060088
/* 060C78 80060078 00000000 */ nop
/* 060C7C 8006007C 844C0544 */ lh $t4, 0x544($v0)
/* 060C80 80060080 5580001C */ bnel $t4, $zero, .L800600F4
/* 060C84 80060084 24080048 */ li $t0, 72
.L80060088:
/* 060C88 80060088 01A80019 */ multu $t5, $t0
/* 060C8C 8006008C 44060000 */ mfc1 $a2, $f0
/* 060C90 80060090 44071000 */ mfc1 $a3, $f2
/* 060C94 80060094 02202025 */ move $a0, $s1
/* 060C98 80060098 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060C9C 8006009C AFA30014 */ sw $v1, 0x14($sp)
/* 060CA0 800600A0 AFA90018 */ sw $t1, 0x18($sp)
/* 060CA4 800600A4 00007012 */ mflo $t6
/* 060CA8 800600A8 022E9021 */ addu $s2, $s1, $t6
/* 060CAC 800600AC 26500528 */ addiu $s0, $s2, 0x528
/* 060CB0 800600B0 0C0175E5 */ jal func_8005D794
/* 060CB4 800600B4 02002825 */ move $a1, $s0
/* 060CB8 800600B8 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060CBC 800600BC 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060CC0 800600C0 02002025 */ move $a0, $s0
/* 060CC4 800600C4 0C0175F6 */ jal func_8005D7D8
/* 060CC8 800600C8 24050004 */ li $a1, 4
/* 060CCC 800600CC 02002025 */ move $a0, $s0
/* 060CD0 800600D0 24050004 */ li $a1, 4
/* 060CD4 800600D4 24060001 */ li $a2, 1
/* 060CD8 800600D8 0C0176B6 */ jal func_8005DAD8
/* 060CDC 800600DC 240700A8 */ li $a3, 168
/* 060CE0 800600E0 0C0ADF8D */ jal random_int
/* 060CE4 800600E4 24040010 */ li $a0, 16
/* 060CE8 800600E8 10000100 */ b .L800604EC
/* 060CEC 800600EC A6420562 */ sh $v0, 0x562($s2)
/* 060CF0 800600F0 24080048 */ li $t0, 72
.L800600F4:
/* 060CF4 800600F4 00C80019 */ multu $a2, $t0
/* 060CF8 800600F8 87AA003E */ lh $t2, 0x3e($sp)
/* 060CFC 800600FC 00007812 */ mflo $t7
/* 060D00 80060100 022FC021 */ addu $t8, $s1, $t7
/* 060D04 80060104 87190546 */ lh $t9, 0x546($t8)
/* 060D08 80060108 5B2000F9 */ blezl $t9, .L800604F0
/* 060D0C 8006010C 8FBF0034 */ lw $ra, 0x34($sp)
/* 060D10 80060110 01480019 */ multu $t2, $t0
/* 060D14 80060114 44060000 */ mfc1 $a2, $f0
/* 060D18 80060118 44071000 */ mfc1 $a3, $f2
/* 060D1C 8006011C 02202025 */ move $a0, $s1
/* 060D20 80060120 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060D24 80060124 AFA30014 */ sw $v1, 0x14($sp)
/* 060D28 80060128 AFA90018 */ sw $t1, 0x18($sp)
/* 060D2C 8006012C 00005812 */ mflo $t3
/* 060D30 80060130 022B9021 */ addu $s2, $s1, $t3
/* 060D34 80060134 26500528 */ addiu $s0, $s2, 0x528
/* 060D38 80060138 0C0175E5 */ jal func_8005D794
/* 060D3C 8006013C 02002825 */ move $a1, $s0
/* 060D40 80060140 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060D44 80060144 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060D48 80060148 02002025 */ move $a0, $s0
/* 060D4C 8006014C 0C0175F6 */ jal func_8005D7D8
/* 060D50 80060150 24050004 */ li $a1, 4
/* 060D54 80060154 02002025 */ move $a0, $s0
/* 060D58 80060158 24050004 */ li $a1, 4
/* 060D5C 8006015C 24060001 */ li $a2, 1
/* 060D60 80060160 0C0176B6 */ jal func_8005DAD8
/* 060D64 80060164 240700A8 */ li $a3, 168
/* 060D68 80060168 0C0ADF8D */ jal random_int
/* 060D6C 8006016C 24040010 */ li $a0, 16
/* 060D70 80060170 100000DE */ b .L800604EC
/* 060D74 80060174 A6420562 */ sh $v0, 0x562($s2)
glabel L80060178
/* 060D78 80060178 87AC003E */ lh $t4, 0x3e($sp)
/* 060D7C 8006017C 24080048 */ li $t0, 72
/* 060D80 80060180 55800026 */ bnel $t4, $zero, .L8006021C
/* 060D84 80060184 24080048 */ li $t0, 72
/* 060D88 80060188 00C80019 */ multu $a2, $t0
/* 060D8C 8006018C 87B8003E */ lh $t8, 0x3e($sp)
/* 060D90 80060190 00006812 */ mflo $t5
/* 060D94 80060194 022D1021 */ addu $v0, $s1, $t5
/* 060D98 80060198 844E0546 */ lh $t6, 0x546($v0)
/* 060D9C 8006019C 1DC00004 */ bgtz $t6, .L800601B0
/* 060DA0 800601A0 00000000 */ nop
/* 060DA4 800601A4 844F0544 */ lh $t7, 0x544($v0)
/* 060DA8 800601A8 55E0001C */ bnel $t7, $zero, .L8006021C
/* 060DAC 800601AC 24080048 */ li $t0, 72
.L800601B0:
/* 060DB0 800601B0 03080019 */ multu $t8, $t0
/* 060DB4 800601B4 44060000 */ mfc1 $a2, $f0
/* 060DB8 800601B8 44071000 */ mfc1 $a3, $f2
/* 060DBC 800601BC 02202025 */ move $a0, $s1
/* 060DC0 800601C0 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060DC4 800601C4 AFA30014 */ sw $v1, 0x14($sp)
/* 060DC8 800601C8 AFA90018 */ sw $t1, 0x18($sp)
/* 060DCC 800601CC 0000C812 */ mflo $t9
/* 060DD0 800601D0 02399021 */ addu $s2, $s1, $t9
/* 060DD4 800601D4 26500528 */ addiu $s0, $s2, 0x528
/* 060DD8 800601D8 0C0175E5 */ jal func_8005D794
/* 060DDC 800601DC 02002825 */ move $a1, $s0
/* 060DE0 800601E0 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060DE4 800601E4 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060DE8 800601E8 02002025 */ move $a0, $s0
/* 060DEC 800601EC 0C0175F6 */ jal func_8005D7D8
/* 060DF0 800601F0 24050004 */ li $a1, 4
/* 060DF4 800601F4 02002025 */ move $a0, $s0
/* 060DF8 800601F8 24050005 */ li $a1, 5
/* 060DFC 800601FC 24060001 */ li $a2, 1
/* 060E00 80060200 0C0176B6 */ jal func_8005DAD8
/* 060E04 80060204 240700A8 */ li $a3, 168
/* 060E08 80060208 0C0ADF8D */ jal random_int
/* 060E0C 8006020C 24040010 */ li $a0, 16
/* 060E10 80060210 100000B6 */ b .L800604EC
/* 060E14 80060214 A6420562 */ sh $v0, 0x562($s2)
/* 060E18 80060218 24080048 */ li $t0, 72
.L8006021C:
/* 060E1C 8006021C 00C80019 */ multu $a2, $t0
/* 060E20 80060220 87AD003E */ lh $t5, 0x3e($sp)
/* 060E24 80060224 00005012 */ mflo $t2
/* 060E28 80060228 022A5821 */ addu $t3, $s1, $t2
/* 060E2C 8006022C 856C0546 */ lh $t4, 0x546($t3)
/* 060E30 80060230 598000AF */ blezl $t4, .L800604F0
/* 060E34 80060234 8FBF0034 */ lw $ra, 0x34($sp)
/* 060E38 80060238 01A80019 */ multu $t5, $t0
/* 060E3C 8006023C 44060000 */ mfc1 $a2, $f0
/* 060E40 80060240 44071000 */ mfc1 $a3, $f2
/* 060E44 80060244 02202025 */ move $a0, $s1
/* 060E48 80060248 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060E4C 8006024C AFA30014 */ sw $v1, 0x14($sp)
/* 060E50 80060250 AFA90018 */ sw $t1, 0x18($sp)
/* 060E54 80060254 00007012 */ mflo $t6
/* 060E58 80060258 022E9021 */ addu $s2, $s1, $t6
/* 060E5C 8006025C 26500528 */ addiu $s0, $s2, 0x528
/* 060E60 80060260 0C0175E5 */ jal func_8005D794
/* 060E64 80060264 02002825 */ move $a1, $s0
/* 060E68 80060268 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060E6C 8006026C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060E70 80060270 02002025 */ move $a0, $s0
/* 060E74 80060274 0C0175F6 */ jal func_8005D7D8
/* 060E78 80060278 24050004 */ li $a1, 4
/* 060E7C 8006027C 02002025 */ move $a0, $s0
/* 060E80 80060280 24050005 */ li $a1, 5
/* 060E84 80060284 24060001 */ li $a2, 1
/* 060E88 80060288 0C0176B6 */ jal func_8005DAD8
/* 060E8C 8006028C 240700A8 */ li $a3, 168
/* 060E90 80060290 0C0ADF8D */ jal random_int
/* 060E94 80060294 24040010 */ li $a0, 16
/* 060E98 80060298 10000094 */ b .L800604EC
/* 060E9C 8006029C A6420562 */ sh $v0, 0x562($s2)
glabel L800602A0
/* 060EA0 800602A0 87AF003E */ lh $t7, 0x3e($sp)
/* 060EA4 800602A4 24080048 */ li $t0, 72
/* 060EA8 800602A8 55E00026 */ bnel $t7, $zero, .L80060344
/* 060EAC 800602AC 24080048 */ li $t0, 72
/* 060EB0 800602B0 00C80019 */ multu $a2, $t0
/* 060EB4 800602B4 87AB003E */ lh $t3, 0x3e($sp)
/* 060EB8 800602B8 0000C012 */ mflo $t8
/* 060EBC 800602BC 02381021 */ addu $v0, $s1, $t8
/* 060EC0 800602C0 84590546 */ lh $t9, 0x546($v0)
/* 060EC4 800602C4 1F200004 */ bgtz $t9, .L800602D8
/* 060EC8 800602C8 00000000 */ nop
/* 060ECC 800602CC 844A0544 */ lh $t2, 0x544($v0)
/* 060ED0 800602D0 5540001C */ bnel $t2, $zero, .L80060344
/* 060ED4 800602D4 24080048 */ li $t0, 72
.L800602D8:
/* 060ED8 800602D8 01680019 */ multu $t3, $t0
/* 060EDC 800602DC 44060000 */ mfc1 $a2, $f0
/* 060EE0 800602E0 44071000 */ mfc1 $a3, $f2
/* 060EE4 800602E4 02202025 */ move $a0, $s1
/* 060EE8 800602E8 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060EEC 800602EC AFA30014 */ sw $v1, 0x14($sp)
/* 060EF0 800602F0 AFA90018 */ sw $t1, 0x18($sp)
/* 060EF4 800602F4 00006012 */ mflo $t4
/* 060EF8 800602F8 022C9021 */ addu $s2, $s1, $t4
/* 060EFC 800602FC 26500528 */ addiu $s0, $s2, 0x528
/* 060F00 80060300 0C0175E5 */ jal func_8005D794
/* 060F04 80060304 02002825 */ move $a1, $s0
/* 060F08 80060308 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060F0C 8006030C 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060F10 80060310 02002025 */ move $a0, $s0
/* 060F14 80060314 0C0175F6 */ jal func_8005D7D8
/* 060F18 80060318 24050004 */ li $a1, 4
/* 060F1C 8006031C 02002025 */ move $a0, $s0
/* 060F20 80060320 24050006 */ li $a1, 6
/* 060F24 80060324 24060001 */ li $a2, 1
/* 060F28 80060328 0C0176B6 */ jal func_8005DAD8
/* 060F2C 8006032C 240700A8 */ li $a3, 168
/* 060F30 80060330 0C0ADF8D */ jal random_int
/* 060F34 80060334 24040010 */ li $a0, 16
/* 060F38 80060338 1000006C */ b .L800604EC
/* 060F3C 8006033C A6420562 */ sh $v0, 0x562($s2)
/* 060F40 80060340 24080048 */ li $t0, 72
.L80060344:
/* 060F44 80060344 00C80019 */ multu $a2, $t0
/* 060F48 80060348 87B8003E */ lh $t8, 0x3e($sp)
/* 060F4C 8006034C 00006812 */ mflo $t5
/* 060F50 80060350 022D7021 */ addu $t6, $s1, $t5
/* 060F54 80060354 85CF0546 */ lh $t7, 0x546($t6)
/* 060F58 80060358 59E00065 */ blezl $t7, .L800604F0
/* 060F5C 8006035C 8FBF0034 */ lw $ra, 0x34($sp)
/* 060F60 80060360 03080019 */ multu $t8, $t0
/* 060F64 80060364 44060000 */ mfc1 $a2, $f0
/* 060F68 80060368 44071000 */ mfc1 $a3, $f2
/* 060F6C 8006036C 02202025 */ move $a0, $s1
/* 060F70 80060370 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 060F74 80060374 AFA30014 */ sw $v1, 0x14($sp)
/* 060F78 80060378 AFA90018 */ sw $t1, 0x18($sp)
/* 060F7C 8006037C 0000C812 */ mflo $t9
/* 060F80 80060380 02399021 */ addu $s2, $s1, $t9
/* 060F84 80060384 26500528 */ addiu $s0, $s2, 0x528
/* 060F88 80060388 0C0175E5 */ jal func_8005D794
/* 060F8C 8006038C 02002825 */ move $a1, $s0
/* 060F90 80060390 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 060F94 80060394 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 060F98 80060398 02002025 */ move $a0, $s0
/* 060F9C 8006039C 0C0175F6 */ jal func_8005D7D8
/* 060FA0 800603A0 24050004 */ li $a1, 4
/* 060FA4 800603A4 02002025 */ move $a0, $s0
/* 060FA8 800603A8 24050006 */ li $a1, 6
/* 060FAC 800603AC 24060001 */ li $a2, 1
/* 060FB0 800603B0 0C0176B6 */ jal func_8005DAD8
/* 060FB4 800603B4 240700A8 */ li $a3, 168
/* 060FB8 800603B8 0C0ADF8D */ jal random_int
/* 060FBC 800603BC 24040010 */ li $a0, 16
/* 060FC0 800603C0 1000004A */ b .L800604EC
/* 060FC4 800603C4 A6420562 */ sh $v0, 0x562($s2)
glabel L800603C8
/* 060FC8 800603C8 87AA003E */ lh $t2, 0x3e($sp)
/* 060FCC 800603CC 24080048 */ li $t0, 72
/* 060FD0 800603D0 55400026 */ bnel $t2, $zero, .L8006046C
/* 060FD4 800603D4 24080048 */ li $t0, 72
/* 060FD8 800603D8 00C80019 */ multu $a2, $t0
/* 060FDC 800603DC 87AE003E */ lh $t6, 0x3e($sp)
/* 060FE0 800603E0 00005812 */ mflo $t3
/* 060FE4 800603E4 022B1021 */ addu $v0, $s1, $t3
/* 060FE8 800603E8 844C0546 */ lh $t4, 0x546($v0)
/* 060FEC 800603EC 1D800004 */ bgtz $t4, .L80060400
/* 060FF0 800603F0 00000000 */ nop
/* 060FF4 800603F4 844D0544 */ lh $t5, 0x544($v0)
/* 060FF8 800603F8 55A0001C */ bnel $t5, $zero, .L8006046C
/* 060FFC 800603FC 24080048 */ li $t0, 72
.L80060400:
/* 061000 80060400 01C80019 */ multu $t6, $t0
/* 061004 80060404 44060000 */ mfc1 $a2, $f0
/* 061008 80060408 44071000 */ mfc1 $a3, $f2
/* 06100C 8006040C 02202025 */ move $a0, $s1
/* 061010 80060410 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 061014 80060414 AFA30014 */ sw $v1, 0x14($sp)
/* 061018 80060418 AFA90018 */ sw $t1, 0x18($sp)
/* 06101C 8006041C 00007812 */ mflo $t7
/* 061020 80060420 022F9021 */ addu $s2, $s1, $t7
/* 061024 80060424 26500528 */ addiu $s0, $s2, 0x528
/* 061028 80060428 0C0175E5 */ jal func_8005D794
/* 06102C 8006042C 02002825 */ move $a1, $s0
/* 061030 80060430 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 061034 80060434 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 061038 80060438 02002025 */ move $a0, $s0
/* 06103C 8006043C 0C0175F6 */ jal func_8005D7D8
/* 061040 80060440 24050004 */ li $a1, 4
/* 061044 80060444 02002025 */ move $a0, $s0
/* 061048 80060448 00002825 */ move $a1, $zero
/* 06104C 8006044C 00003025 */ move $a2, $zero
/* 061050 80060450 0C0176B6 */ jal func_8005DAD8
/* 061054 80060454 24070080 */ li $a3, 128
/* 061058 80060458 0C0ADF8D */ jal random_int
/* 06105C 8006045C 24040010 */ li $a0, 16
/* 061060 80060460 10000022 */ b .L800604EC
/* 061064 80060464 A6420562 */ sh $v0, 0x562($s2)
/* 061068 80060468 24080048 */ li $t0, 72
.L8006046C:
/* 06106C 8006046C 00C80019 */ multu $a2, $t0
/* 061070 80060470 87AB003E */ lh $t3, 0x3e($sp)
/* 061074 80060474 0000C012 */ mflo $t8
/* 061078 80060478 0238C821 */ addu $t9, $s1, $t8
/* 06107C 8006047C 872A0546 */ lh $t2, 0x546($t9)
/* 061080 80060480 5940001B */ blezl $t2, .L800604F0
/* 061084 80060484 8FBF0034 */ lw $ra, 0x34($sp)
/* 061088 80060488 01680019 */ multu $t3, $t0
/* 06108C 8006048C 44060000 */ mfc1 $a2, $f0
/* 061090 80060490 44071000 */ mfc1 $a3, $f2
/* 061094 80060494 02202025 */ move $a0, $s1
/* 061098 80060498 E7AC0010 */ swc1 $f12, 0x10($sp)
/* 06109C 8006049C AFA30014 */ sw $v1, 0x14($sp)
/* 0610A0 800604A0 AFA90018 */ sw $t1, 0x18($sp)
/* 0610A4 800604A4 00006012 */ mflo $t4
/* 0610A8 800604A8 022C9021 */ addu $s2, $s1, $t4
/* 0610AC 800604AC 26500528 */ addiu $s0, $s2, 0x528
/* 0610B0 800604B0 0C0175E5 */ jal func_8005D794
/* 0610B4 800604B4 02002825 */ move $a1, $s0
/* 0610B8 800604B8 3C063EEB */ lui $a2, (0x3EEB851F >> 16) # lui $a2, 0x3eeb
/* 0610BC 800604BC 34C6851F */ ori $a2, (0x3EEB851F & 0xFFFF) # ori $a2, $a2, 0x851f
/* 0610C0 800604C0 02002025 */ move $a0, $s0
/* 0610C4 800604C4 0C0175F6 */ jal func_8005D7D8
/* 0610C8 800604C8 24050004 */ li $a1, 4
/* 0610CC 800604CC 02002025 */ move $a0, $s0
/* 0610D0 800604D0 00002825 */ move $a1, $zero
/* 0610D4 800604D4 00003025 */ move $a2, $zero
/* 0610D8 800604D8 0C0176B6 */ jal func_8005DAD8
/* 0610DC 800604DC 24070080 */ li $a3, 128
/* 0610E0 800604E0 0C0ADF8D */ jal random_int
/* 0610E4 800604E4 24040010 */ li $a0, 16
/* 0610E8 800604E8 A6420562 */ sh $v0, 0x562($s2)
.L800604EC:
glabel L800604EC
/* 0610EC 800604EC 8FBF0034 */ lw $ra, 0x34($sp)
.L800604F0:
/* 0610F0 800604F0 8FB00028 */ lw $s0, 0x28($sp)
/* 0610F4 800604F4 8FB1002C */ lw $s1, 0x2c($sp)
/* 0610F8 800604F8 8FB20030 */ lw $s2, 0x30($sp)
/* 0610FC 800604FC 03E00008 */ jr $ra
/* 061100 80060500 27BD0038 */ addiu $sp, $sp, 0x38
@@ -1,291 +0,0 @@
.section .data
glabel D_800E48C8
.word 0x00ffffff, 0x00ffff00, 0x00ff9600
.section .text
glabel func_80065AB0
/* 0666B0 80065AB0 27BDFF40 */ addiu $sp, $sp, -0xc0
/* 0666B4 80065AB4 AFA600C8 */ sw $a2, 0xc8($sp)
/* 0666B8 80065AB8 00067400 */ sll $t6, $a2, 0x10
/* 0666BC 80065ABC 000E3403 */ sra $a2, $t6, 0x10
/* 0666C0 80065AC0 3C0E800E */ lui $t6, %hi(D_800E48C8) # $t6, 0x800e
/* 0666C4 80065AC4 AFBF002C */ sw $ra, 0x2c($sp)
/* 0666C8 80065AC8 AFB00028 */ sw $s0, 0x28($sp)
/* 0666CC 80065ACC AFA400C0 */ sw $a0, 0xc0($sp)
/* 0666D0 80065AD0 AFA500C4 */ sw $a1, 0xc4($sp)
/* 0666D4 80065AD4 AFA700CC */ sw $a3, 0xcc($sp)
/* 0666D8 80065AD8 25CE48C8 */ addiu $t6, %lo(D_800E48C8) # addiu $t6, $t6, 0x48c8
/* 0666DC 80065ADC 8DC10000 */ lw $at, ($t6)
/* 0666E0 80065AE0 27A5008C */ addiu $a1, $sp, 0x8c
/* 0666E4 80065AE4 0007C600 */ sll $t8, $a3, 0x18
/* 0666E8 80065AE8 ACA10000 */ sw $at, ($a1)
/* 0666EC 80065AEC 8DD90004 */ lw $t9, 4($t6)
/* 0666F0 80065AF0 00183E03 */ sra $a3, $t8, 0x18
/* 0666F4 80065AF4 000678C0 */ sll $t7, $a2, 3
/* 0666F8 80065AF8 ACB90004 */ sw $t9, 4($a1)
/* 0666FC 80065AFC 8DC10008 */ lw $at, 8($t6)
/* 066700 80065B00 01E67821 */ addu $t7, $t7, $a2
/* 066704 80065B04 000F78C0 */ sll $t7, $t7, 3
/* 066708 80065B08 ACA10008 */ sw $at, 8($a1)
/* 06670C 80065B0C 8FB800C0 */ lw $t8, 0xc0($sp)
/* 066710 80065B10 24010001 */ li $at, 1
/* 066714 80065B14 030F1821 */ addu $v1, $t8, $t7
/* 066718 80065B18 846E0544 */ lh $t6, 0x544($v1)
/* 06671C 80065B1C 55C100F7 */ bnel $t6, $at, .L80065EFC
/* 066720 80065B20 8FBF002C */ lw $ra, 0x2c($sp)
/* 066724 80065B24 87190204 */ lh $t9, 0x204($t8)
/* 066728 80065B28 00008025 */ move $s0, $zero
/* 06672C 80065B2C 2B210032 */ slti $at, $t9, 0x32
/* 066730 80065B30 14200003 */ bnez $at, .L80065B40
/* 066734 80065B34 00000000 */ nop
/* 066738 80065B38 10000001 */ b .L80065B40
/* 06673C 80065B3C 24100001 */ li $s0, 1
.L80065B40:
/* 066740 80065B40 846F0560 */ lh $t7, 0x560($v1)
/* 066744 80065B44 27A400B4 */ addiu $a0, $sp, 0xb4
/* 066748 80065B48 A7AF00A6 */ sh $t7, 0xa6($sp)
/* 06674C 80065B4C 846E0562 */ lh $t6, 0x562($v1)
/* 066750 80065B50 A7AE00A4 */ sh $t6, 0xa4($sp)
/* 066754 80065B54 84780564 */ lh $t8, 0x564($v1)
/* 066758 80065B58 A7B800A2 */ sh $t8, 0xa2($sp)
/* 06675C 80065B5C 84790566 */ lh $t9, 0x566($v1)
/* 066760 80065B60 A7B900A0 */ sh $t9, 0xa0($sp)
/* 066764 80065B64 846F0568 */ lh $t7, 0x568($v1)
/* 066768 80065B68 000F7080 */ sll $t6, $t7, 2
/* 06676C 80065B6C 00AEC021 */ addu $t8, $a1, $t6
/* 066770 80065B70 8F020000 */ lw $v0, ($t8)
/* 066774 80065B74 27A500AC */ addiu $a1, $sp, 0xac
/* 066778 80065B78 0002CC03 */ sra $t9, $v0, 0x10
/* 06677C 80065B7C 332F00FF */ andi $t7, $t9, 0xff
/* 066780 80065B80 00027203 */ sra $t6, $v0, 8
/* 066784 80065B84 31D800FF */ andi $t8, $t6, 0xff
/* 066788 80065B88 305900FF */ andi $t9, $v0, 0xff
/* 06678C 80065B8C A7AF009E */ sh $t7, 0x9e($sp)
/* 066790 80065B90 A7B8009C */ sh $t8, 0x9c($sp)
/* 066794 80065B94 A7B9009A */ sh $t9, 0x9a($sp)
/* 066798 80065B98 C4640528 */ lwc1 $f4, 0x528($v1)
/* 06679C 80065B9C 8FAF00C0 */ lw $t7, 0xc0($sp)
/* 0667A0 80065BA0 00077040 */ sll $t6, $a3, 1
/* 0667A4 80065BA4 E7A400B4 */ swc1 $f4, 0xb4($sp)
/* 0667A8 80065BA8 C466052C */ lwc1 $f6, 0x52c($v1)
/* 0667AC 80065BAC 01EEC021 */ addu $t8, $t7, $t6
/* 0667B0 80065BB0 E7A600B8 */ swc1 $f6, 0xb8($sp)
/* 0667B4 80065BB4 C4680530 */ lwc1 $f8, 0x530($v1)
/* 0667B8 80065BB8 A7A000AC */ sh $zero, 0xac($sp)
/* 0667BC 80065BBC E7A800BC */ swc1 $f8, 0xbc($sp)
/* 0667C0 80065BC0 87190048 */ lh $t9, 0x48($t8)
/* 0667C4 80065BC4 A7A000B0 */ sh $zero, 0xb0($sp)
/* 0667C8 80065BC8 A7B900AE */ sh $t9, 0xae($sp)
/* 0667CC 80065BCC C46A0534 */ lwc1 $f10, 0x534($v1)
/* 0667D0 80065BD0 C5F00224 */ lwc1 $f16, 0x224($t7)
/* 0667D4 80065BD4 46105482 */ mul.s $f18, $f10, $f16
/* 0667D8 80065BD8 44069000 */ mfc1 $a2, $f18
/* 0667DC 80065BDC 0C0194B5 */ jal func_800652D4
/* 0667E0 80065BE0 00000000 */ nop
/* 0667E4 80065BE4 16000061 */ bnez $s0, .L80065D6C
/* 0667E8 80065BE8 3C038015 */ lui $v1, %hi(gDisplayListHead)
/* 0667EC 80065BEC 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 0667F0 80065BF0 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 0667F4 80065BF4 8C620000 */ lw $v0, ($v1)
/* 0667F8 80065BF8 3C190D01 */ lui $t9, %hi(D_0D008DB8) # $t9, 0xd01
/* 0667FC 80065BFC 27398DB8 */ addiu $t9, %lo(D_0D008DB8) # addiu $t9, $t9, -0x7248
/* 066800 80065C00 244E0008 */ addiu $t6, $v0, 8
/* 066804 80065C04 AC6E0000 */ sw $t6, ($v1)
/* 066808 80065C08 3C180600 */ lui $t8, 0x600
/* 06680C 80065C0C AC580000 */ sw $t8, ($v0)
/* 066810 80065C10 AC590004 */ sw $t9, 4($v0)
/* 066814 80065C14 8C620000 */ lw $v0, ($v1)
/* 066818 80065C18 3C19800E */ lui $t9, %hi(D_800E4770)
/* 06681C 80065C1C 0010C080 */ sll $t8, $s0, 2
/* 066820 80065C20 244F0008 */ addiu $t7, $v0, 8
/* 066824 80065C24 AC6F0000 */ sw $t7, ($v1)
/* 066828 80065C28 3C0EFD90 */ lui $t6, 0xfd90
/* 06682C 80065C2C 0338C821 */ addu $t9, $t9, $t8
/* 066830 80065C30 AC4E0000 */ sw $t6, ($v0)
/* 066834 80065C34 8F394770 */ lw $t9, %lo(D_800E4770)($t9)
/* 066838 80065C38 3C18F590 */ lui $t8, 0xf590
/* 06683C 80065C3C 8F2F0000 */ lw $t7, ($t9)
/* 066840 80065C40 3C190700 */ lui $t9, 0x700
/* 066844 80065C44 AC4F0004 */ sw $t7, 4($v0)
/* 066848 80065C48 8C620000 */ lw $v0, ($v1)
/* 06684C 80065C4C 244E0008 */ addiu $t6, $v0, 8
/* 066850 80065C50 AC6E0000 */ sw $t6, ($v1)
/* 066854 80065C54 AC580000 */ sw $t8, ($v0)
/* 066858 80065C58 AC590004 */ sw $t9, 4($v0)
/* 06685C 80065C5C 8C620000 */ lw $v0, ($v1)
/* 066860 80065C60 3C0EE600 */ lui $t6, 0xe600
/* 066864 80065C64 3C19F300 */ lui $t9, 0xf300
/* 066868 80065C68 244F0008 */ addiu $t7, $v0, 8
/* 06686C 80065C6C AC6F0000 */ sw $t7, ($v1)
/* 066870 80065C70 AC4E0000 */ sw $t6, ($v0)
/* 066874 80065C74 AC400004 */ sw $zero, 4($v0)
/* 066878 80065C78 8C620000 */ lw $v0, ($v1)
/* 06687C 80065C7C 3C0F0707 */ lui $t7, (0x0707F400 >> 16) # lui $t7, 0x707
/* 066880 80065C80 35EFF400 */ ori $t7, (0x0707F400 & 0xFFFF) # ori $t7, $t7, 0xf400
/* 066884 80065C84 24580008 */ addiu $t8, $v0, 8
/* 066888 80065C88 AC780000 */ sw $t8, ($v1)
/* 06688C 80065C8C AC590000 */ sw $t9, ($v0)
/* 066890 80065C90 AC4F0004 */ sw $t7, 4($v0)
/* 066894 80065C94 8C620000 */ lw $v0, ($v1)
/* 066898 80065C98 3C18E700 */ lui $t8, 0xe700
/* 06689C 80065C9C 3C0FF588 */ lui $t7, (0xF5880400 >> 16) # lui $t7, 0xf588
/* 0668A0 80065CA0 244E0008 */ addiu $t6, $v0, 8
/* 0668A4 80065CA4 AC6E0000 */ sw $t6, ($v1)
/* 0668A8 80065CA8 AC580000 */ sw $t8, ($v0)
/* 0668AC 80065CAC AC400004 */ sw $zero, 4($v0)
/* 0668B0 80065CB0 8C620000 */ lw $v0, ($v1)
/* 0668B4 80065CB4 35EF0400 */ ori $t7, (0xF5880400 & 0xFFFF) # ori $t7, $t7, 0x400
/* 0668B8 80065CB8 3C18F200 */ lui $t8, 0xf200
/* 0668BC 80065CBC 24590008 */ addiu $t9, $v0, 8
/* 0668C0 80065CC0 AC790000 */ sw $t9, ($v1)
/* 0668C4 80065CC4 AC4F0000 */ sw $t7, ($v0)
/* 0668C8 80065CC8 AC400004 */ sw $zero, 4($v0)
/* 0668CC 80065CCC 8C620000 */ lw $v0, ($v1)
/* 0668D0 80065CD0 3C0F0003 */ lui $t7, (0x0003C03C >> 16) # lui $t7, 3
/* 0668D4 80065CD4 35EFC03C */ ori $t7, (0x0003C03C & 0xFFFF) # ori $t7, $t7, 0xc03c
/* 0668D8 80065CD8 244E0008 */ addiu $t6, $v0, 8
/* 0668DC 80065CDC AC6E0000 */ sw $t6, ($v1)
/* 0668E0 80065CE0 AFA2006C */ sw $v0, 0x6c($sp)
/* 0668E4 80065CE4 AC580000 */ sw $t8, ($v0)
/* 0668E8 80065CE8 8FAE006C */ lw $t6, 0x6c($sp)
/* 0668EC 80065CEC ADCF0004 */ sw $t7, 4($t6)
/* 0668F0 80065CF0 87AF00A0 */ lh $t7, 0xa0($sp)
/* 0668F4 80065CF4 87B9009A */ lh $t9, 0x9a($sp)
/* 0668F8 80065CF8 87B8009C */ lh $t8, 0x9c($sp)
/* 0668FC 80065CFC 87A7009E */ lh $a3, 0x9e($sp)
/* 066900 80065D00 87A600A2 */ lh $a2, 0xa2($sp)
/* 066904 80065D04 87A500A4 */ lh $a1, 0xa4($sp)
/* 066908 80065D08 87A400A6 */ lh $a0, 0xa6($sp)
/* 06690C 80065D0C AFAF0018 */ sw $t7, 0x18($sp)
/* 066910 80065D10 AFB90014 */ sw $t9, 0x14($sp)
/* 066914 80065D14 0C012DCB */ jal func_8004B72C
/* 066918 80065D18 AFB80010 */ sw $t8, 0x10($sp)
/* 06691C 80065D1C 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 066920 80065D20 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 066924 80065D24 8C620000 */ lw $v0, ($v1)
/* 066928 80065D28 3C18B900 */ lui $t8, (0xB900031D >> 16) # lui $t8, 0xb900
/* 06692C 80065D2C 3C190050 */ lui $t9, (0x00504A50 >> 16) # lui $t9, 0x50
/* 066930 80065D30 244E0008 */ addiu $t6, $v0, 8
/* 066934 80065D34 AC6E0000 */ sw $t6, ($v1)
/* 066938 80065D38 37394A50 */ ori $t9, (0x00504A50 & 0xFFFF) # ori $t9, $t9, 0x4a50
/* 06693C 80065D3C 3718031D */ ori $t8, (0xB900031D & 0xFFFF) # ori $t8, $t8, 0x31d
/* 066940 80065D40 AC580000 */ sw $t8, ($v0)
/* 066944 80065D44 AC590004 */ sw $t9, 4($v0)
/* 066948 80065D48 8C620000 */ lw $v0, ($v1)
/* 06694C 80065D4C 3C180D01 */ lui $t8, %hi(D_0D008DF8) # $t8, 0xd01
/* 066950 80065D50 27188DF8 */ addiu $t8, %lo(D_0D008DF8) # addiu $t8, $t8, -0x7208
/* 066954 80065D54 244F0008 */ addiu $t7, $v0, 8
/* 066958 80065D58 AC6F0000 */ sw $t7, ($v1)
/* 06695C 80065D5C 3C0E0600 */ lui $t6, 0x600
/* 066960 80065D60 AC4E0000 */ sw $t6, ($v0)
/* 066964 80065D64 1000005F */ b .L80065EE4
/* 066968 80065D68 AC580004 */ sw $t8, 4($v0)
.L80065D6C:
/* 06696C 80065D6C 24630298 */ addiu $v1, $v1, %lo(gDisplayListHead)
/* 066970 80065D70 8C620000 */ lw $v0, ($v1)
/* 066974 80065D74 3C0E0D01 */ lui $t6, %hi(D_0D008DB8) # $t6, 0xd01
/* 066978 80065D78 25CE8DB8 */ addiu $t6, %lo(D_0D008DB8) # addiu $t6, $t6, -0x7248
/* 06697C 80065D7C 24590008 */ addiu $t9, $v0, 8
/* 066980 80065D80 AC790000 */ sw $t9, ($v1)
/* 066984 80065D84 3C0F0600 */ lui $t7, 0x600
/* 066988 80065D88 AC4F0000 */ sw $t7, ($v0)
/* 06698C 80065D8C AC4E0004 */ sw $t6, 4($v0)
/* 066990 80065D90 8C620000 */ lw $v0, ($v1)
/* 066994 80065D94 3C0E800E */ lui $t6, %hi(D_800E4770)
/* 066998 80065D98 00107880 */ sll $t7, $s0, 2
/* 06699C 80065D9C 24580008 */ addiu $t8, $v0, 8
/* 0669A0 80065DA0 AC780000 */ sw $t8, ($v1)
/* 0669A4 80065DA4 3C19FD90 */ lui $t9, 0xfd90
/* 0669A8 80065DA8 01CF7021 */ addu $t6, $t6, $t7
/* 0669AC 80065DAC AC590000 */ sw $t9, ($v0)
/* 0669B0 80065DB0 8DCE4770 */ lw $t6, %lo(D_800E4770)($t6)
/* 0669B4 80065DB4 3C0FF590 */ lui $t7, 0xf590
/* 0669B8 80065DB8 8DD80000 */ lw $t8, ($t6)
/* 0669BC 80065DBC 3C0E0700 */ lui $t6, 0x700
/* 0669C0 80065DC0 AC580004 */ sw $t8, 4($v0)
/* 0669C4 80065DC4 8C620000 */ lw $v0, ($v1)
/* 0669C8 80065DC8 24590008 */ addiu $t9, $v0, 8
/* 0669CC 80065DCC AC790000 */ sw $t9, ($v1)
/* 0669D0 80065DD0 AC4F0000 */ sw $t7, ($v0)
/* 0669D4 80065DD4 AC4E0004 */ sw $t6, 4($v0)
/* 0669D8 80065DD8 8C620000 */ lw $v0, ($v1)
/* 0669DC 80065DDC 3C19E600 */ lui $t9, 0xe600
/* 0669E0 80065DE0 3C0EF300 */ lui $t6, 0xf300
/* 0669E4 80065DE4 24580008 */ addiu $t8, $v0, 8
/* 0669E8 80065DE8 AC780000 */ sw $t8, ($v1)
/* 0669EC 80065DEC AC590000 */ sw $t9, ($v0)
/* 0669F0 80065DF0 AC400004 */ sw $zero, 4($v0)
/* 0669F4 80065DF4 8C620000 */ lw $v0, ($v1)
/* 0669F8 80065DF8 3C18071F */ lui $t8, (0x071FF200 >> 16) # lui $t8, 0x71f
/* 0669FC 80065DFC 3718F200 */ ori $t8, (0x071FF200 & 0xFFFF) # ori $t8, $t8, 0xf200
/* 066A00 80065E00 244F0008 */ addiu $t7, $v0, 8
/* 066A04 80065E04 AC6F0000 */ sw $t7, ($v1)
/* 066A08 80065E08 AC4E0000 */ sw $t6, ($v0)
/* 066A0C 80065E0C AC580004 */ sw $t8, 4($v0)
/* 066A10 80065E10 8C620000 */ lw $v0, ($v1)
/* 066A14 80065E14 3C0FE700 */ lui $t7, 0xe700
/* 066A18 80065E18 3C18F588 */ lui $t8, (0xF5880800 >> 16) # lui $t8, 0xf588
/* 066A1C 80065E1C 24590008 */ addiu $t9, $v0, 8
/* 066A20 80065E20 AC790000 */ sw $t9, ($v1)
/* 066A24 80065E24 AC4F0000 */ sw $t7, ($v0)
/* 066A28 80065E28 AC400004 */ sw $zero, 4($v0)
/* 066A2C 80065E2C 8C620000 */ lw $v0, ($v1)
/* 066A30 80065E30 37180800 */ ori $t8, (0xF5880800 & 0xFFFF) # ori $t8, $t8, 0x800
/* 066A34 80065E34 3C0FF200 */ lui $t7, 0xf200
/* 066A38 80065E38 244E0008 */ addiu $t6, $v0, 8
/* 066A3C 80065E3C AC6E0000 */ sw $t6, ($v1)
/* 066A40 80065E40 AC580000 */ sw $t8, ($v0)
/* 066A44 80065E44 AC400004 */ sw $zero, 4($v0)
/* 066A48 80065E48 8C620000 */ lw $v0, ($v1)
/* 066A4C 80065E4C 3C180007 */ lui $t8, (0x0007C07C >> 16) # lui $t8, 7
/* 066A50 80065E50 3718C07C */ ori $t8, (0x0007C07C & 0xFFFF) # ori $t8, $t8, 0xc07c
/* 066A54 80065E54 24590008 */ addiu $t9, $v0, 8
/* 066A58 80065E58 AC790000 */ sw $t9, ($v1)
/* 066A5C 80065E5C AFA20044 */ sw $v0, 0x44($sp)
/* 066A60 80065E60 AC4F0000 */ sw $t7, ($v0)
/* 066A64 80065E64 8FB90044 */ lw $t9, 0x44($sp)
/* 066A68 80065E68 AF380004 */ sw $t8, 4($t9)
/* 066A6C 80065E6C 87B800A0 */ lh $t8, 0xa0($sp)
/* 066A70 80065E70 87AE009A */ lh $t6, 0x9a($sp)
/* 066A74 80065E74 87AF009C */ lh $t7, 0x9c($sp)
/* 066A78 80065E78 87A7009E */ lh $a3, 0x9e($sp)
/* 066A7C 80065E7C 87A600A2 */ lh $a2, 0xa2($sp)
/* 066A80 80065E80 87A500A4 */ lh $a1, 0xa4($sp)
/* 066A84 80065E84 87A400A6 */ lh $a0, 0xa6($sp)
/* 066A88 80065E88 AFB80018 */ sw $t8, 0x18($sp)
/* 066A8C 80065E8C AFAE0014 */ sw $t6, 0x14($sp)
/* 066A90 80065E90 0C012DCB */ jal func_8004B72C
/* 066A94 80065E94 AFAF0010 */ sw $t7, 0x10($sp)
/* 066A98 80065E98 3C038015 */ lui $v1, %hi(gDisplayListHead) # $v1, 0x8015
/* 066A9C 80065E9C 24630298 */ addiu $v1, %lo(gDisplayListHead) # addiu $v1, $v1, 0x298
/* 066AA0 80065EA0 8C620000 */ lw $v0, ($v1)
/* 066AA4 80065EA4 3C0FB900 */ lui $t7, (0xB900031D >> 16) # lui $t7, 0xb900
/* 066AA8 80065EA8 3C0E0050 */ lui $t6, (0x00504A50 >> 16) # lui $t6, 0x50
/* 066AAC 80065EAC 24590008 */ addiu $t9, $v0, 8
/* 066AB0 80065EB0 AC790000 */ sw $t9, ($v1)
/* 066AB4 80065EB4 35CE4A50 */ ori $t6, (0x00504A50 & 0xFFFF) # ori $t6, $t6, 0x4a50
/* 066AB8 80065EB8 35EF031D */ ori $t7, (0xB900031D & 0xFFFF) # ori $t7, $t7, 0x31d
/* 066ABC 80065EBC AC4F0000 */ sw $t7, ($v0)
/* 066AC0 80065EC0 AC4E0004 */ sw $t6, 4($v0)
/* 066AC4 80065EC4 8C620000 */ lw $v0, ($v1)
/* 066AC8 80065EC8 3C0F0D01 */ lui $t7, %hi(D_0D008E48) # $t7, 0xd01
/* 066ACC 80065ECC 25EF8E48 */ addiu $t7, %lo(D_0D008E48) # addiu $t7, $t7, -0x71b8
/* 066AD0 80065ED0 24580008 */ addiu $t8, $v0, 8
/* 066AD4 80065ED4 AC780000 */ sw $t8, ($v1)
/* 066AD8 80065ED8 3C190600 */ lui $t9, 0x600
/* 066ADC 80065EDC AC590000 */ sw $t9, ($v0)
/* 066AE0 80065EE0 AC4F0004 */ sw $t7, 4($v0)
.L80065EE4:
/* 066AE4 80065EE4 3C028016 */ lui $v0, %hi(gMatrixEffectCount) # $v0, 0x8016
/* 066AE8 80065EE8 24424AF0 */ addiu $v0, %lo(gMatrixEffectCount) # addiu $v0, $v0, 0x4af0
/* 066AEC 80065EEC 844E0000 */ lh $t6, ($v0)
/* 066AF0 80065EF0 25D80001 */ addiu $t8, $t6, 1
/* 066AF4 80065EF4 A4580000 */ sh $t8, ($v0)
/* 066AF8 80065EF8 8FBF002C */ lw $ra, 0x2c($sp)
.L80065EFC:
/* 066AFC 80065EFC 8FB00028 */ lw $s0, 0x28($sp)
/* 066B00 80065F00 27BD00C0 */ addiu $sp, $sp, 0xc0
/* 066B04 80065F04 03E00008 */ jr $ra
/* 066B08 80065F08 00000000 */ nop
@@ -1,379 +0,0 @@
glabel func_80065F0C
/* 066B0C 80065F0C 27BDFF18 */ addiu $sp, $sp, -0xe8
/* 066B10 80065F10 00067400 */ sll $t6, $a2, 0x10
/* 066B14 80065F14 000E7C03 */ sra $t7, $t6, 0x10
/* 066B18 80065F18 000F70C0 */ sll $t6, $t7, 3
/* 066B1C 80065F1C 01CF7021 */ addu $t6, $t6, $t7
/* 066B20 80065F20 000E70C0 */ sll $t6, $t6, 3
/* 066B24 80065F24 AFBF0034 */ sw $ra, 0x34($sp)
/* 066B28 80065F28 AFB30030 */ sw $s3, 0x30($sp)
/* 066B2C 80065F2C AFB2002C */ sw $s2, 0x2c($sp)
/* 066B30 80065F30 AFB10028 */ sw $s1, 0x28($sp)
/* 066B34 80065F34 AFB00024 */ sw $s0, 0x24($sp)
/* 066B38 80065F38 AFA500EC */ sw $a1, 0xec($sp)
/* 066B3C 80065F3C AFA600F0 */ sw $a2, 0xf0($sp)
/* 066B40 80065F40 AFA700F4 */ sw $a3, 0xf4($sp)
/* 066B44 80065F44 008E1021 */ addu $v0, $a0, $t6
/* 066B48 80065F48 844F0544 */ lh $t7, 0x544($v0)
/* 066B4C 80065F4C 0007C600 */ sll $t8, $a3, 0x18
/* 066B50 80065F50 24010001 */ li $at, 1
/* 066B54 80065F54 0018CE03 */ sra $t9, $t8, 0x18
/* 066B58 80065F58 15E1015A */ bne $t7, $at, .L800664C4
/* 066B5C 80065F5C 00808025 */ move $s0, $a0
/* 066B60 80065F60 84580546 */ lh $t8, 0x546($v0)
/* 066B64 80065F64 53000158 */ beql $t8, $zero, .L800664C8
/* 066B68 80065F68 8FBF0034 */ lw $ra, 0x34($sp)
/* 066B6C 80065F6C C4440528 */ lwc1 $f4, 0x528($v0)
/* 066B70 80065F70 0019C840 */ sll $t9, $t9, 1
/* 066B74 80065F74 00997021 */ addu $t6, $a0, $t9
/* 066B78 80065F78 E7A400DC */ swc1 $f4, 0xdc($sp)
/* 066B7C 80065F7C C446052C */ lwc1 $f6, 0x52c($v0)
/* 066B80 80065F80 27A400DC */ addiu $a0, $sp, 0xdc
/* 066B84 80065F84 27A500D4 */ addiu $a1, $sp, 0xd4
/* 066B88 80065F88 E7A600E0 */ swc1 $f6, 0xe0($sp)
/* 066B8C 80065F8C C4480530 */ lwc1 $f8, 0x530($v0)
/* 066B90 80065F90 A7A000D4 */ sh $zero, 0xd4($sp)
/* 066B94 80065F94 E7A800E4 */ swc1 $f8, 0xe4($sp)
/* 066B98 80065F98 85CF0048 */ lh $t7, 0x48($t6)
/* 066B9C 80065F9C A7A000D8 */ sh $zero, 0xd8($sp)
/* 066BA0 80065FA0 A7AF00D6 */ sh $t7, 0xd6($sp)
/* 066BA4 80065FA4 C6100224 */ lwc1 $f16, 0x224($s0)
/* 066BA8 80065FA8 C44A0534 */ lwc1 $f10, 0x534($v0)
/* 066BAC 80065FAC AFA20044 */ sw $v0, 0x44($sp)
/* 066BB0 80065FB0 46105482 */ mul.s $f18, $f10, $f16
/* 066BB4 80065FB4 44069000 */ mfc1 $a2, $f18
/* 066BB8 80065FB8 0C0194B5 */ jal func_800652D4
/* 066BBC 80065FBC 00000000 */ nop
/* 066BC0 80065FC0 8FA20044 */ lw $v0, 0x44($sp)
/* 066BC4 80065FC4 24010008 */ li $at, 8
/* 066BC8 80065FC8 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015
/* 066BCC 80065FCC C444053C */ lwc1 $f4, 0x53c($v0)
/* 066BD0 80065FD0 3C0F0D01 */ lui $t7, %hi(D_0D008C90) # $t7, 0xd01
/* 066BD4 80065FD4 3C03800E */ lui $v1, %hi(D_800E47DC)
/* 066BD8 80065FD8 4600218D */ trunc.w.s $f6, $f4
/* 066BDC 80065FDC 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298
/* 066BE0 80065FE0 25EF8C90 */ addiu $t7, %lo(D_0D008C90) # addiu $t7, $t7, -0x7370
/* 066BE4 80065FE4 3C0E0600 */ lui $t6, 0x600
/* 066BE8 80065FE8 44193000 */ mfc1 $t9, $f6
/* 066BEC 80065FEC 00000000 */ nop
/* 066BF0 80065FF0 532100D0 */ beql $t9, $at, .L80066334
/* 066BF4 80065FF4 8E300000 */ lw $s0, ($s1)
/* 066BF8 80065FF8 84450560 */ lh $a1, 0x560($v0)
/* 066BFC 80065FFC 84440562 */ lh $a0, 0x562($v0)
/* 066C00 80066000 3C06800E */ lui $a2, %hi(D_800E480C)
/* 066C04 80066004 00057080 */ sll $t6, $a1, 2
/* 066C08 80066008 006E1821 */ addu $v1, $v1, $t6
/* 066C0C 8006600C 8C6347DC */ lw $v1, %lo(D_800E47DC)($v1)
/* 066C10 80066010 01C02825 */ move $a1, $t6
/* 066C14 80066014 00C53021 */ addu $a2, $a2, $a1
/* 066C18 80066018 00037C03 */ sra $t7, $v1, 0x10
/* 066C1C 8006601C 31F800FF */ andi $t8, $t7, 0xff
/* 066C20 80066020 0304F823 */ subu $ra, $t8, $a0
/* 066C24 80066024 00037A03 */ sra $t7, $v1, 8
/* 066C28 80066028 31F800FF */ andi $t8, $t7, 0xff
/* 066C2C 8006602C 8CC6480C */ lw $a2, %lo(D_800E480C)($a2)
/* 066C30 80066030 306F00FF */ andi $t7, $v1, 0xff
/* 066C34 80066034 001FCC00 */ sll $t9, $ra, 0x10
/* 066C38 80066038 03049023 */ subu $s2, $t8, $a0
/* 066C3C 8006603C 01E49823 */ subu $s3, $t7, $a0
/* 066C40 80066040 0019FC03 */ sra $ra, $t9, 0x10
/* 066C44 80066044 0012CC00 */ sll $t9, $s2, 0x10
/* 066C48 80066048 0013C400 */ sll $t8, $s3, 0x10
/* 066C4C 8006604C 00067403 */ sra $t6, $a2, 0x10
/* 066C50 80066050 00199403 */ sra $s2, $t9, 0x10
/* 066C54 80066054 00189C03 */ sra $s3, $t8, 0x10
/* 066C58 80066058 31CF00FF */ andi $t7, $t6, 0xff
/* 066C5C 8006605C 01E4C023 */ subu $t8, $t7, $a0
/* 066C60 80066060 0006CA03 */ sra $t9, $a2, 8
/* 066C64 80066064 A7B800CA */ sh $t8, 0xca($sp)
/* 066C68 80066068 332E00FF */ andi $t6, $t9, 0xff
/* 066C6C 8006606C 30D800FF */ andi $t8, $a2, 0xff
/* 066C70 80066070 01C47823 */ subu $t7, $t6, $a0
/* 066C74 80066074 0304C823 */ subu $t9, $t8, $a0
/* 066C78 80066078 A7AF00C8 */ sh $t7, 0xc8($sp)
/* 066C7C 8006607C A7B900C6 */ sh $t9, 0xc6($sp)
/* 066C80 80066080 844E0566 */ lh $t6, 0x566($v0)
/* 066C84 80066084 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015
/* 066C88 80066088 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298
/* 066C8C 8006608C A7AE00CC */ sh $t6, 0xcc($sp)
/* 066C90 80066090 844F0568 */ lh $t7, 0x568($v0)
/* 066C94 80066094 3C0E0D01 */ lui $t6, %hi(D_0D008DB8) # $t6, 0xd01
/* 066C98 80066098 3C190D01 */ lui $t9, 0xd01
/* 066C9C 8006609C 15E00050 */ bnez $t7, .L800661E0
/* 066CA0 800660A0 3C180600 */ lui $t8, 0x600
/* 066CA4 800660A4 3C118015 */ lui $s1, %hi(gDisplayListHead) # $s1, 0x8015
/* 066CA8 800660A8 26310298 */ addiu $s1, %lo(gDisplayListHead) # addiu $s1, $s1, 0x298
/* 066CAC 800660AC 8E300000 */ lw $s0, ($s1)
/* 066CB0 800660B0 3C190600 */ lui $t9, 0x600
/* 066CB4 800660B4 25CE8DB8 */ addiu $t6, %lo(D_0D008DB8) # addiu $t6, $t6, -0x7248
/* 066CB8 800660B8 26180008 */ addiu $t8, $s0, 8
/* 066CBC 800660BC AE380000 */ sw $t8, ($s1)
/* 066CC0 800660C0 AE0E0004 */ sw $t6, 4($s0)
/* 066CC4 800660C4 AE190000 */ sw $t9, ($s0)
/* 066CC8 800660C8 8E300000 */ lw $s0, ($s1)
/* 066CCC 800660CC 3C18FD90 */ lui $t8, 0xfd90
/* 066CD0 800660D0 3C198019 */ lui $t9, %hi(D_8018D494) # $t9, 0x8019
/* 066CD4 800660D4 260F0008 */ addiu $t7, $s0, 8
/* 066CD8 800660D8 AE2F0000 */ sw $t7, ($s1)
/* 066CDC 800660DC AE180000 */ sw $t8, ($s0)
/* 066CE0 800660E0 8F39D494 */ lw $t9, %lo(D_8018D494)($t9)
/* 066CE4 800660E4 3C180700 */ lui $t8, 0x700
/* 066CE8 800660E8 3C0FF590 */ lui $t7, 0xf590
/* 066CEC 800660EC AE190004 */ sw $t9, 4($s0)
/* 066CF0 800660F0 8E300000 */ lw $s0, ($s1)
/* 066CF4 800660F4 03E02025 */ move $a0, $ra
/* 066CF8 800660F8 02402825 */ move $a1, $s2
/* 066CFC 800660FC 260E0008 */ addiu $t6, $s0, 8
/* 066D00 80066100 AE2E0000 */ sw $t6, ($s1)
/* 066D04 80066104 AE180004 */ sw $t8, 4($s0)
/* 066D08 80066108 AE0F0000 */ sw $t7, ($s0)
/* 066D0C 8006610C 8E300000 */ lw $s0, ($s1)
/* 066D10 80066110 3C0EE600 */ lui $t6, 0xe600
/* 066D14 80066114 3C18F300 */ lui $t8, 0xf300
/* 066D18 80066118 26190008 */ addiu $t9, $s0, 8
/* 066D1C 8006611C AE390000 */ sw $t9, ($s1)
/* 066D20 80066120 AE000004 */ sw $zero, 4($s0)
/* 066D24 80066124 AE0E0000 */ sw $t6, ($s0)
/* 066D28 80066128 8E300000 */ lw $s0, ($s1)
/* 066D2C 8006612C 3C19071F */ lui $t9, (0x071FF200 >> 16) # lui $t9, 0x71f
/* 066D30 80066130 3739F200 */ ori $t9, (0x071FF200 & 0xFFFF) # ori $t9, $t9, 0xf200
/* 066D34 80066134 260F0008 */ addiu $t7, $s0, 8
/* 066D38 80066138 AE2F0000 */ sw $t7, ($s1)
/* 066D3C 8006613C AE190004 */ sw $t9, 4($s0)
/* 066D40 80066140 AE180000 */ sw $t8, ($s0)
/* 066D44 80066144 8E300000 */ lw $s0, ($s1)
/* 066D48 80066148 3C0FE700 */ lui $t7, 0xe700
/* 066D4C 8006614C 3C19F588 */ lui $t9, (0xF5880800 >> 16) # lui $t9, 0xf588
/* 066D50 80066150 260E0008 */ addiu $t6, $s0, 8
/* 066D54 80066154 AE2E0000 */ sw $t6, ($s1)
/* 066D58 80066158 AE000004 */ sw $zero, 4($s0)
/* 066D5C 8006615C AE0F0000 */ sw $t7, ($s0)
/* 066D60 80066160 8E300000 */ lw $s0, ($s1)
/* 066D64 80066164 37390800 */ ori $t9, (0xF5880800 & 0xFFFF) # ori $t9, $t9, 0x800
/* 066D68 80066168 3C0FF200 */ lui $t7, 0xf200
/* 066D6C 8006616C 26180008 */ addiu $t8, $s0, 8
/* 066D70 80066170 AE380000 */ sw $t8, ($s1)
/* 066D74 80066174 AE000004 */ sw $zero, 4($s0)
/* 066D78 80066178 AE190000 */ sw $t9, ($s0)
/* 066D7C 8006617C 8E300000 */ lw $s0, ($s1)
/* 066D80 80066180 3C180007 */ lui $t8, (0x0007C07C >> 16) # lui $t8, 7
/* 066D84 80066184 3718C07C */ ori $t8, (0x0007C07C & 0xFFFF) # ori $t8, $t8, 0xc07c
/* 066D88 80066188 260E0008 */ addiu $t6, $s0, 8
/* 066D8C 8006618C AE2E0000 */ sw $t6, ($s1)
/* 066D90 80066190 AE180004 */ sw $t8, 4($s0)
/* 066D94 80066194 AE0F0000 */ sw $t7, ($s0)
/* 066D98 80066198 87AF00CC */ lh $t7, 0xcc($sp)
/* 066D9C 8006619C 87AE00C6 */ lh $t6, 0xc6($sp)
/* 066DA0 800661A0 87B900C8 */ lh $t9, 0xc8($sp)
/* 066DA4 800661A4 87A700CA */ lh $a3, 0xca($sp)
/* 066DA8 800661A8 02603025 */ move $a2, $s3
/* 066DAC 800661AC AFAF0018 */ sw $t7, 0x18($sp)
/* 066DB0 800661B0 AFAE0014 */ sw $t6, 0x14($sp)
/* 066DB4 800661B4 0C012DCB */ jal func_8004B72C
/* 066DB8 800661B8 AFB90010 */ sw $t9, 0x10($sp)
/* 066DBC 800661BC 8E300000 */ lw $s0, ($s1)
/* 066DC0 800661C0 3C0E0D01 */ lui $t6, %hi(D_0D008E48) # $t6, 0xd01
/* 066DC4 800661C4 25CE8E48 */ addiu $t6, %lo(D_0D008E48) # addiu $t6, $t6, -0x71b8
/* 066DC8 800661C8 26180008 */ addiu $t8, $s0, 8
/* 066DCC 800661CC AE380000 */ sw $t8, ($s1)
/* 066DD0 800661D0 3C190600 */ lui $t9, %hi(D_05FF8DB8) # $t9, 0x600
/* 066DD4 800661D4 AE190000 */ sw $t9, ($s0)
/* 066DD8 800661D8 100000B5 */ b .L800664B0
/* 066DDC 800661DC AE0E0004 */ sw $t6, 4($s0)
.L800661E0:
/* 066DE0 800661E0 8E300000 */ lw $s0, ($s1)
/* 066DE4 800661E4 27398DB8 */ addiu $t9, %lo(D_05FF8DB8) # addiu $t9, $t9, -0x7248
/* 066DE8 800661E8 03E02025 */ move $a0, $ra
/* 066DEC 800661EC 260F0008 */ addiu $t7, $s0, 8
/* 066DF0 800661F0 AE2F0000 */ sw $t7, ($s1)
/* 066DF4 800661F4 AE190004 */ sw $t9, 4($s0)
/* 066DF8 800661F8 AE180000 */ sw $t8, ($s0)
/* 066DFC 800661FC 8E300000 */ lw $s0, ($s1)
/* 066E00 80066200 3C0FFD90 */ lui $t7, 0xfd90
/* 066E04 80066204 3C188019 */ lui $t8, %hi(D_8018D494) # $t8, 0x8019
/* 066E08 80066208 260E0008 */ addiu $t6, $s0, 8
/* 066E0C 8006620C AE2E0000 */ sw $t6, ($s1)
/* 066E10 80066210 AE0F0000 */ sw $t7, ($s0)
/* 066E14 80066214 8F18D494 */ lw $t8, %lo(D_8018D494)($t8)
/* 066E18 80066218 3C0F0700 */ lui $t7, 0x700
/* 066E1C 8006621C 3C0EF590 */ lui $t6, 0xf590
/* 066E20 80066220 AE180004 */ sw $t8, 4($s0)
/* 066E24 80066224 8E300000 */ lw $s0, ($s1)
/* 066E28 80066228 02402825 */ move $a1, $s2
/* 066E2C 8006622C 02603025 */ move $a2, $s3
/* 066E30 80066230 26190008 */ addiu $t9, $s0, 8
/* 066E34 80066234 AE390000 */ sw $t9, ($s1)
/* 066E38 80066238 AE0F0004 */ sw $t7, 4($s0)
/* 066E3C 8006623C AE0E0000 */ sw $t6, ($s0)
/* 066E40 80066240 8E300000 */ lw $s0, ($s1)
/* 066E44 80066244 3C19E600 */ lui $t9, 0xe600
/* 066E48 80066248 3C0FF300 */ lui $t7, 0xf300
/* 066E4C 8006624C 26180008 */ addiu $t8, $s0, 8
/* 066E50 80066250 AE380000 */ sw $t8, ($s1)
/* 066E54 80066254 AE000004 */ sw $zero, 4($s0)
/* 066E58 80066258 AE190000 */ sw $t9, ($s0)
/* 066E5C 8006625C 8E300000 */ lw $s0, ($s1)
/* 066E60 80066260 3C18071F */ lui $t8, (0x071FF200 >> 16) # lui $t8, 0x71f
/* 066E64 80066264 3718F200 */ ori $t8, (0x071FF200 & 0xFFFF) # ori $t8, $t8, 0xf200
/* 066E68 80066268 260E0008 */ addiu $t6, $s0, 8
/* 066E6C 8006626C AE2E0000 */ sw $t6, ($s1)
/* 066E70 80066270 AE180004 */ sw $t8, 4($s0)
/* 066E74 80066274 AE0F0000 */ sw $t7, ($s0)
/* 066E78 80066278 8E300000 */ lw $s0, ($s1)
/* 066E7C 8006627C 3C0EE700 */ lui $t6, 0xe700
/* 066E80 80066280 3C18F588 */ lui $t8, (0xF5880800 >> 16) # lui $t8, 0xf588
/* 066E84 80066284 26190008 */ addiu $t9, $s0, 8
/* 066E88 80066288 AE390000 */ sw $t9, ($s1)
/* 066E8C 8006628C AE000004 */ sw $zero, 4($s0)
/* 066E90 80066290 AE0E0000 */ sw $t6, ($s0)
/* 066E94 80066294 8E300000 */ lw $s0, ($s1)
/* 066E98 80066298 37180800 */ ori $t8, (0xF5880800 & 0xFFFF) # ori $t8, $t8, 0x800
/* 066E9C 8006629C 3C0EF200 */ lui $t6, 0xf200
/* 066EA0 800662A0 260F0008 */ addiu $t7, $s0, 8
/* 066EA4 800662A4 AE2F0000 */ sw $t7, ($s1)
/* 066EA8 800662A8 AE000004 */ sw $zero, 4($s0)
/* 066EAC 800662AC AE180000 */ sw $t8, ($s0)
/* 066EB0 800662B0 8E300000 */ lw $s0, ($s1)
/* 066EB4 800662B4 3C0F0007 */ lui $t7, (0x0007C07C >> 16) # lui $t7, 7
/* 066EB8 800662B8 35EFC07C */ ori $t7, (0x0007C07C & 0xFFFF) # ori $t7, $t7, 0xc07c
/* 066EBC 800662BC 26190008 */ addiu $t9, $s0, 8
/* 066EC0 800662C0 AE390000 */ sw $t9, ($s1)
/* 066EC4 800662C4 AE0F0004 */ sw $t7, 4($s0)
/* 066EC8 800662C8 AE0E0000 */ sw $t6, ($s0)
/* 066ECC 800662CC 87AE00CC */ lh $t6, 0xcc($sp)
/* 066ED0 800662D0 87B900C6 */ lh $t9, 0xc6($sp)
/* 066ED4 800662D4 87B800C8 */ lh $t8, 0xc8($sp)
/* 066ED8 800662D8 87A700CA */ lh $a3, 0xca($sp)
/* 066EDC 800662DC AFAE0018 */ sw $t6, 0x18($sp)
/* 066EE0 800662E0 AFB90014 */ sw $t9, 0x14($sp)
/* 066EE4 800662E4 0C012DCB */ jal func_8004B72C
/* 066EE8 800662E8 AFB80010 */ sw $t8, 0x10($sp)
/* 066EEC 800662EC 8E300000 */ lw $s0, ($s1)
/* 066EF0 800662F0 3C18B900 */ lui $t8, (0xB9000002 >> 16) # lui $t8, 0xb900
/* 066EF4 800662F4 37180002 */ ori $t8, (0xB9000002 & 0xFFFF) # ori $t8, $t8, 2
/* 066EF8 800662F8 260F0008 */ addiu $t7, $s0, 8
/* 066EFC 800662FC AE2F0000 */ sw $t7, ($s1)
/* 066F00 80066300 24190003 */ li $t9, 3
/* 066F04 80066304 AE190004 */ sw $t9, 4($s0)
/* 066F08 80066308 AE180000 */ sw $t8, ($s0)
/* 066F0C 8006630C 8E300000 */ lw $s0, ($s1)
/* 066F10 80066310 3C180D01 */ lui $t8, %hi(D_0D008E48) # $t8, 0xd01
/* 066F14 80066314 27188E48 */ addiu $t8, %lo(D_0D008E48) # addiu $t8, $t8, -0x71b8
/* 066F18 80066318 260E0008 */ addiu $t6, $s0, 8
/* 066F1C 8006631C AE2E0000 */ sw $t6, ($s1)
/* 066F20 80066320 3C0F0600 */ lui $t7, 0x600
/* 066F24 80066324 AE0F0000 */ sw $t7, ($s0)
/* 066F28 80066328 10000061 */ b .L800664B0
/* 066F2C 8006632C AE180004 */ sw $t8, 4($s0)
/* 066F30 80066330 8E300000 */ lw $s0, ($s1)
.L80066334:
/* 066F34 80066334 84440560 */ lh $a0, 0x560($v0)
/* 066F38 80066338 84450562 */ lh $a1, 0x562($v0)
/* 066F3C 8006633C 84460564 */ lh $a2, 0x564($v0)
/* 066F40 80066340 26190008 */ addiu $t9, $s0, 8
/* 066F44 80066344 AE390000 */ sw $t9, ($s1)
/* 066F48 80066348 AE0F0004 */ sw $t7, 4($s0)
/* 066F4C 8006634C AE0E0000 */ sw $t6, ($s0)
/* 066F50 80066350 8E300000 */ lw $s0, ($s1)
/* 066F54 80066354 3C19BA00 */ lui $t9, (0xBA000E02 >> 16) # lui $t9, 0xba00
/* 066F58 80066358 37390E02 */ ori $t9, (0xBA000E02 & 0xFFFF) # ori $t9, $t9, 0xe02
/* 066F5C 8006635C 26180008 */ addiu $t8, $s0, 8
/* 066F60 80066360 AE380000 */ sw $t8, ($s1)
/* 066F64 80066364 AE000004 */ sw $zero, 4($s0)
/* 066F68 80066368 AE190000 */ sw $t9, ($s0)
/* 066F6C 8006636C 8E300000 */ lw $s0, ($s1)
/* 066F70 80066370 3C0FFD10 */ lui $t7, 0xfd10
/* 066F74 80066374 3C188019 */ lui $t8, %hi(D_8018D498) # $t8, 0x8019
/* 066F78 80066378 260E0008 */ addiu $t6, $s0, 8
/* 066F7C 8006637C AE2E0000 */ sw $t6, ($s1)
/* 066F80 80066380 AE0F0000 */ sw $t7, ($s0)
/* 066F84 80066384 8F18D498 */ lw $t8, %lo(D_8018D498)($t8)
/* 066F88 80066388 3C0F0708 */ lui $t7, (0x07080200 >> 16) # lui $t7, 0x708
/* 066F8C 8006638C 35EF0200 */ ori $t7, (0x07080200 & 0xFFFF) # ori $t7, $t7, 0x200
/* 066F90 80066390 AE180004 */ sw $t8, 4($s0)
/* 066F94 80066394 8E300000 */ lw $s0, ($s1)
/* 066F98 80066398 3C0EF510 */ lui $t6, 0xf510
/* 066F9C 8006639C 240700FF */ li $a3, 255
/* 066FA0 800663A0 26190008 */ addiu $t9, $s0, 8
/* 066FA4 800663A4 AE390000 */ sw $t9, ($s1)
/* 066FA8 800663A8 AE0F0004 */ sw $t7, 4($s0)
/* 066FAC 800663AC AE0E0000 */ sw $t6, ($s0)
/* 066FB0 800663B0 8E300000 */ lw $s0, ($s1)
/* 066FB4 800663B4 3C19E600 */ lui $t9, 0xe600
/* 066FB8 800663B8 3C0FF300 */ lui $t7, 0xf300
/* 066FBC 800663BC 26180008 */ addiu $t8, $s0, 8
/* 066FC0 800663C0 AE380000 */ sw $t8, ($s1)
/* 066FC4 800663C4 AE000004 */ sw $zero, 4($s0)
/* 066FC8 800663C8 AE190000 */ sw $t9, ($s0)
/* 066FCC 800663CC 8E300000 */ lw $s0, ($s1)
/* 066FD0 800663D0 3C18077F */ lui $t8, (0x077FF100 >> 16) # lui $t8, 0x77f
/* 066FD4 800663D4 3718F100 */ ori $t8, (0x077FF100 & 0xFFFF) # ori $t8, $t8, 0xf100
/* 066FD8 800663D8 260E0008 */ addiu $t6, $s0, 8
/* 066FDC 800663DC AE2E0000 */ sw $t6, ($s1)
/* 066FE0 800663E0 AE180004 */ sw $t8, 4($s0)
/* 066FE4 800663E4 AE0F0000 */ sw $t7, ($s0)
/* 066FE8 800663E8 8E300000 */ lw $s0, ($s1)
/* 066FEC 800663EC 3C0EE700 */ lui $t6, 0xe700
/* 066FF0 800663F0 3C18F510 */ lui $t8, (0xF5101000 >> 16) # lui $t8, 0xf510
/* 066FF4 800663F4 26190008 */ addiu $t9, $s0, 8
/* 066FF8 800663F8 AE390000 */ sw $t9, ($s1)
/* 066FFC 800663FC AE000004 */ sw $zero, 4($s0)
/* 067000 80066400 AE0E0000 */ sw $t6, ($s0)
/* 067004 80066404 8E300000 */ lw $s0, ($s1)
/* 067008 80066408 3C190008 */ lui $t9, (0x00080200 >> 16) # lui $t9, 8
/* 06700C 8006640C 37390200 */ ori $t9, (0x00080200 & 0xFFFF) # ori $t9, $t9, 0x200
/* 067010 80066410 260F0008 */ addiu $t7, $s0, 8
/* 067014 80066414 AE2F0000 */ sw $t7, ($s1)
/* 067018 80066418 37181000 */ ori $t8, (0xF5101000 & 0xFFFF) # ori $t8, $t8, 0x1000
/* 06701C 8006641C AE180000 */ sw $t8, ($s0)
/* 067020 80066420 AE190004 */ sw $t9, 4($s0)
/* 067024 80066424 8E300000 */ lw $s0, ($s1)
/* 067028 80066428 3C180007 */ lui $t8, (0x0007C0FC >> 16) # lui $t8, 7
/* 06702C 8006642C 3718C0FC */ ori $t8, (0x0007C0FC & 0xFFFF) # ori $t8, $t8, 0xc0fc
/* 067030 80066430 260E0008 */ addiu $t6, $s0, 8
/* 067034 80066434 AE2E0000 */ sw $t6, ($s1)
/* 067038 80066438 3C0FF200 */ lui $t7, 0xf200
/* 06703C 8006643C AE0F0000 */ sw $t7, ($s0)
/* 067040 80066440 0C012CD7 */ jal func_8004B35C
/* 067044 80066444 AE180004 */ sw $t8, 4($s0)
/* 067048 80066448 8E300000 */ lw $s0, ($s1)
/* 06704C 8006644C 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900
/* 067050 80066450 3C0F0055 */ lui $t7, (0x00553078 >> 16) # lui $t7, 0x55
/* 067054 80066454 26190008 */ addiu $t9, $s0, 8
/* 067058 80066458 AE390000 */ sw $t9, ($s1)
/* 06705C 8006645C 35EF3078 */ ori $t7, (0x00553078 & 0xFFFF) # ori $t7, $t7, 0x3078
/* 067060 80066460 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d
/* 067064 80066464 AE0E0000 */ sw $t6, ($s0)
/* 067068 80066468 AE0F0004 */ sw $t7, 4($s0)
/* 06706C 8006646C 8E300000 */ lw $s0, ($s1)
/* 067070 80066470 3C0E800F */ lui $t6, %hi(D_800E8C00) # $t6, 0x800f
/* 067074 80066474 3C190400 */ lui $t9, (0x0400103F >> 16) # lui $t9, 0x400
/* 067078 80066478 26180008 */ addiu $t8, $s0, 8
/* 06707C 8006647C AE380000 */ sw $t8, ($s1)
/* 067080 80066480 3739103F */ ori $t9, (0x0400103F & 0xFFFF) # ori $t9, $t9, 0x103f
/* 067084 80066484 25CE8C00 */ addiu $t6, %lo(D_800E8C00) # addiu $t6, $t6, -0x7400
/* 067088 80066488 AE0E0004 */ sw $t6, 4($s0)
/* 06708C 8006648C AE190000 */ sw $t9, ($s0)
/* 067090 80066490 8E300000 */ lw $s0, ($s1)
/* 067094 80066494 3C190D01 */ lui $t9, %hi(D_0D008DA0) # $t9, 0xd01
/* 067098 80066498 27398DA0 */ addiu $t9, %lo(D_0D008DA0) # addiu $t9, $t9, -0x7260
/* 06709C 8006649C 260F0008 */ addiu $t7, $s0, 8
/* 0670A0 800664A0 AE2F0000 */ sw $t7, ($s1)
/* 0670A4 800664A4 3C180600 */ lui $t8, 0x600
/* 0670A8 800664A8 AE180000 */ sw $t8, ($s0)
/* 0670AC 800664AC AE190004 */ sw $t9, 4($s0)
.L800664B0:
/* 0670B0 800664B0 3C028016 */ lui $v0, %hi(gMatrixEffectCount) # $v0, 0x8016
/* 0670B4 800664B4 24424AF0 */ addiu $v0, %lo(gMatrixEffectCount) # addiu $v0, $v0, 0x4af0
/* 0670B8 800664B8 844E0000 */ lh $t6, ($v0)
/* 0670BC 800664BC 25CF0001 */ addiu $t7, $t6, 1
/* 0670C0 800664C0 A44F0000 */ sh $t7, ($v0)
.L800664C4:
/* 0670C4 800664C4 8FBF0034 */ lw $ra, 0x34($sp)
.L800664C8:
/* 0670C8 800664C8 8FB00024 */ lw $s0, 0x24($sp)
/* 0670CC 800664CC 8FB10028 */ lw $s1, 0x28($sp)
/* 0670D0 800664D0 8FB2002C */ lw $s2, 0x2c($sp)
/* 0670D4 800664D4 8FB30030 */ lw $s3, 0x30($sp)
/* 0670D8 800664D8 03E00008 */ jr $ra
/* 0670DC 800664DC 27BD00E8 */ addiu $sp, $sp, 0xe8
File diff suppressed because it is too large Load Diff
@@ -1,344 +0,0 @@
glabel func_800088D8
/* 0094D8 800088D8 27BDFFA8 */ addiu $sp, $sp, -0x58
/* 0094DC 800088DC AFA5005C */ sw $a1, 0x5c($sp)
/* 0094E0 800088E0 00057400 */ sll $t6, $a1, 0x10
/* 0094E4 800088E4 000E2C03 */ sra $a1, $t6, 0x10
/* 0094E8 800088E8 3C0E8016 */ lui $t6, %hi(D_80163128) # $t6, 0x8016
/* 0094EC 800088EC 00044080 */ sll $t0, $a0, 2
/* 0094F0 800088F0 3C0F8016 */ lui $t7, %hi(D_80163150) # $t7, 0x8016
/* 0094F4 800088F4 AFA60060 */ sw $a2, 0x60($sp)
/* 0094F8 800088F8 0006C400 */ sll $t8, $a2, 0x10
/* 0094FC 800088FC 2402FFFF */ li $v0, -1
/* 009500 80008900 25CE3128 */ addiu $t6, %lo(D_80163128) # addiu $t6, $t6, 0x3128
/* 009504 80008904 25EF3150 */ addiu $t7, %lo(D_80163150) # addiu $t7, $t7, 0x3150
/* 009508 80008908 00183403 */ sra $a2, $t8, 0x10
/* 00950C 8000890C 010E6821 */ addu $t5, $t0, $t6
/* 009510 80008910 010F6021 */ addu $t4, $t0, $t7
/* 009514 80008914 ADA20000 */ sw $v0, ($t5)
/* 009518 80008918 AD820000 */ sw $v0, ($t4)
/* 00951C 8000891C 3C18800E */ lui $t8, %hi(gModeSelection)
/* 009520 80008920 8F18C53C */ lw $t8, %lo(gModeSelection)($t8)
/* 009524 80008924 24030001 */ li $v1, 1
/* 009528 80008928 14780003 */ bne $v1, $t8, .L80008938
/* 00952C 8000892C 00000000 */ nop
/* 009530 80008930 10000121 */ b .L80008DB8
/* 009534 80008934 24020001 */ li $v0, 1
.L80008938:
/* 009538 80008938 04A10003 */ bgez $a1, .L80008948
/* 00953C 8000893C 28A10004 */ slti $at, $a1, 4
/* 009540 80008940 1000011D */ b .L80008DB8
/* 009544 80008944 24020001 */ li $v0, 1
.L80008948:
/* 009548 80008948 14200002 */ bnez $at, .L80008954
/* 00954C 8000894C 00045840 */ sll $t3, $a0, 1
/* 009550 80008950 24050003 */ li $a1, 3
.L80008954:
/* 009554 80008954 3C198016 */ lui $t9, %hi(D_80163330) # 0x8016
/* 009558 80008958 032BC821 */ addu $t9, $t9, $t3
/* 00955C 8000895C 97393330 */ lhu $t9, %lo(D_80163330)($t9) # 0x3330($t9)
/* 009560 80008960 000470C0 */ sll $t6, $a0, 3
/* 009564 80008964 01C47023 */ subu $t6, $t6, $a0
/* 009568 80008968 14790003 */ bne $v1, $t9, .L80008978
/* 00956C 8000896C 000E7100 */ sll $t6, $t6, 4
/* 009570 80008970 10000111 */ b .L80008DB8
/* 009574 80008974 24020001 */ li $v0, 1
.L80008978:
/* 009578 80008978 01C47023 */ subu $t6, $t6, $a0
/* 00957C 8000897C 000E7080 */ sll $t6, $t6, 2
/* 009580 80008980 01C47023 */ subu $t6, $t6, $a0
/* 009584 80008984 3C0F800F */ lui $t7, %hi(gPlayers) # $t7, 0x800f
/* 009588 80008988 25EF6990 */ addiu $t7, %lo(gPlayers) # addiu $t7, $t7, 0x6990
/* 00958C 8000898C 000E70C0 */ sll $t6, $t6, 3
/* 009590 80008990 01CF4821 */ addu $t1, $t6, $t7
/* 009594 80008994 95380000 */ lhu $t8, ($t1)
/* 009598 80008998 3C0E800E */ lui $t6, %hi(gCurrentCourseId)
/* 00959C 8000899C 33194000 */ andi $t9, $t8, 0x4000
/* 0095A0 800089A0 13200003 */ beqz $t9, .L800089B0
/* 0095A4 800089A4 00000000 */ nop
/* 0095A8 800089A8 10000103 */ b .L80008DB8
/* 0095AC 800089AC 24020001 */ li $v0, 1
.L800089B0:
/* 0095B0 800089B0 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
/* 0095B4 800089B4 3C18800E */ lui $t8, %hi(D_800DCBB4)
/* 0095B8 800089B8 000550C0 */ sll $t2, $a1, 3
/* 0095BC 800089BC 000E7880 */ sll $t7, $t6, 2
/* 0095C0 800089C0 030FC021 */ addu $t8, $t8, $t7
/* 0095C4 800089C4 8F18CBB4 */ lw $t8, %lo(D_800DCBB4)($t8)
/* 0095C8 800089C8 000AC840 */ sll $t9, $t2, 1
/* 0095CC 800089CC 14C0008E */ bnez $a2, .L80008C08
/* 0095D0 800089D0 03193821 */ addu $a3, $t8, $t9
/* 0095D4 800089D4 3C0E800E */ lui $t6, %hi(gDemoMode)
/* 0095D8 800089D8 95CEC51C */ lhu $t6, %lo(gDemoMode)($t6)
/* 0095DC 800089DC 3C048016 */ lui $a0, %hi(gNumPathPointsTraversed) # $a0, 0x8016
/* 0095E0 800089E0 24844450 */ addiu $a0, %lo(gNumPathPointsTraversed) # addiu $a0, $a0, 0x4450
/* 0095E4 800089E4 146E003A */ bne $v1, $t6, .L80008AD0
/* 0095E8 800089E8 0088C021 */ addu $t8, $a0, $t0
/* 0095EC 800089EC 3C188016 */ lui $t8, %hi(D_80164378 + 0xE) # $t8, 0x8016
/* 0095F0 800089F0 87184386 */ lh $t8, %lo(D_80164378 + 0xE)($t8)
/* 0095F4 800089F4 3C048016 */ lui $a0, %hi(gNumPathPointsTraversed) # $a0, 0x8016
/* 0095F8 800089F8 24844450 */ addiu $a0, %lo(gNumPathPointsTraversed) # addiu $a0, $a0, 0x4450
/* 0095FC 800089FC 0018C880 */ sll $t9, $t8, 2
/* 009600 80008A00 00887821 */ addu $t7, $a0, $t0
/* 009604 80008A04 00997021 */ addu $t6, $a0, $t9
/* 009608 80008A08 85E20002 */ lh $v0, 2($t7)
/* 00960C 80008A0C 85C30002 */ lh $v1, 2($t6)
/* 009610 80008A10 29410018 */ slti $at, $t2, 0x18
/* 009614 80008A14 00433023 */ subu $a2, $v0, $v1
/* 009618 80008A18 04C10002 */ bgez $a2, .L80008A24
/* 00961C 80008A1C 00C02825 */ move $a1, $a2
/* 009620 80008A20 00062823 */ negu $a1, $a2
.L80008A24:
/* 009624 80008A24 50200016 */ beql $at, $zero, .L80008A80
/* 009628 80008A28 84E40000 */ lh $a0, ($a3)
/* 00962C 80008A2C 84E20000 */ lh $v0, ($a3)
/* 009630 80008A30 3C018016 */ lui $at, %hi(gLapCompletionPercentByPlayerId)
/* 009634 80008A34 00280821 */ addu $at, $at, $t0
/* 009638 80008A38 84E30010 */ lh $v1, 0x10($a3)
/* 00963C 80008A3C C42044A8 */ lwc1 $f0, %lo(gLapCompletionPercentByPlayerId)($at)
/* 009640 80008A40 44822000 */ mtc1 $v0, $f4
/* 009644 80008A44 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 009648 80008A48 44814000 */ mtc1 $at, $f8
/* 00964C 80008A4C 468021A0 */ cvt.s.w $f6, $f4
/* 009650 80008A50 44839000 */ mtc1 $v1, $f18
/* 009654 80008A54 46004281 */ sub.s $f10, $f8, $f0
/* 009658 80008A58 46809120 */ cvt.s.w $f4, $f18
/* 00965C 80008A5C 460A3402 */ mul.s $f16, $f6, $f10
/* 009660 80008A60 00000000 */ nop
/* 009664 80008A64 46002202 */ mul.s $f8, $f4, $f0
/* 009668 80008A68 46104180 */ add.s $f6, $f8, $f16
/* 00966C 80008A6C 4600328D */ trunc.w.s $f10, $f6
/* 009670 80008A70 44045000 */ mfc1 $a0, $f10
/* 009674 80008A74 10000002 */ b .L80008A80
/* 009678 80008A78 00000000 */ nop
/* 00967C 80008A7C 84E40000 */ lh $a0, ($a3)
.L80008A80:
/* 009680 80008A80 0085082A */ slt $at, $a0, $a1
/* 009684 80008A84 10200010 */ beqz $at, .L80008AC8
/* 009688 80008A88 AD840000 */ sw $a0, ($t4)
/* 00968C 80008A8C 3C014190 */ li $at, 0x41900000 # 18.000000
/* 009690 80008A90 44812000 */ mtc1 $at, $f4
/* 009694 80008A94 C5320094 */ lwc1 $f18, 0x94($t1)
/* 009698 80008A98 3C014358 */ li $at, 0x43580000 # 216.000000
/* 00969C 80008A9C 44818000 */ mtc1 $at, $f16
/* 0096A0 80008AA0 46049203 */ div.s $f8, $f18, $f4
/* 0096A4 80008AA4 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 0096A8 80008AA8 44815000 */ mtc1 $at, $f10
/* 0096AC 80008AAC 46104182 */ mul.s $f6, $f8, $f16
/* 0096B0 80008AB0 4606503E */ c.le.s $f10, $f6
/* 0096B4 80008AB4 00000000 */ nop
/* 0096B8 80008AB8 45000003 */ bc1f .L80008AC8
/* 0096BC 80008ABC 00000000 */ nop
/* 0096C0 80008AC0 100000BD */ b .L80008DB8
/* 0096C4 80008AC4 00001025 */ move $v0, $zero
.L80008AC8:
/* 0096C8 80008AC8 100000BB */ b .L80008DB8
/* 0096CC 80008ACC 24020001 */ li $v0, 1
.L80008AD0:
/* 0096D0 80008AD0 3C0F8016 */ lui $t7, %hi(gPathCountByPathIndex) # $t7, 0x8016
/* 0096D4 80008AD4 95EF45C8 */ lhu $t7, %lo(gPathCountByPathIndex)($t7)
/* 0096D8 80008AD8 87020002 */ lh $v0, 2($t8)
/* 0096DC 80008ADC 24010003 */ li $at, 3
/* 0096E0 80008AE0 000FC040 */ sll $t8, $t7, 1
/* 0096E4 80008AE4 0301001A */ div $zero, $t8, $at
/* 0096E8 80008AE8 3C0B8016 */ lui $t3, %hi(gBestRankedHumanPlayer) # $t3, 0x8016
/* 0096EC 80008AEC 856B3478 */ lh $t3, %lo(gBestRankedHumanPlayer)($t3)
/* 0096F0 80008AF0 3C0D8016 */ lui $t5, %hi(gGPCurrentRaceRankByPlayerId + 0x2) # 0x8016
/* 0096F4 80008AF4 000BC880 */ sll $t9, $t3, 2
/* 0096F8 80008AF8 00997021 */ addu $t6, $a0, $t9
/* 0096FC 80008AFC 85C30002 */ lh $v1, 2($t6)
/* 009700 80008B00 01B96821 */ addu $t5, $t5, $t9
/* 009704 80008B04 0000C812 */ mflo $t9
/* 009708 80008B08 00432823 */ subu $a1, $v0, $v1
/* 00970C 80008B0C 0325082A */ slt $at, $t9, $a1
/* 009710 80008B10 1020000B */ beqz $at, .L80008B40
/* 009714 80008B14 85AD43BA */ lh $t5, %lo(gGPCurrentRaceRankByPlayerId + 0x2)($t5) # 0x43ba($t5)
/* 009718 80008B18 29A10006 */ slti $at, $t5, 6
/* 00971C 80008B1C 14200008 */ bnez $at, .L80008B40
/* 009720 80008B20 000D7040 */ sll $t6, $t5, 1
/* 009724 80008B24 3C0F8016 */ lui $t7, %hi(gLapCountByPlayerId - 0x1A) # 0x8016
/* 009728 80008B28 01EE7821 */ addu $t7, $t7, $t6
/* 00972C 80008B2C 85EF4376 */ lh $t7, %lo(gLapCountByPlayerId - 0x1A)($t7) # 0x4376($t7)
/* 009730 80008B30 000FC080 */ sll $t8, $t7, 2
/* 009734 80008B34 0098C821 */ addu $t9, $a0, $t8
/* 009738 80008B38 87230002 */ lh $v1, 2($t9)
/* 00973C 80008B3C 00432823 */ subu $a1, $v0, $v1
.L80008B40:
/* 009740 80008B40 04A10002 */ bgez $a1, .L80008B4C
/* 009744 80008B44 29410018 */ slti $at, $t2, 0x18
/* 009748 80008B48 00052823 */ negu $a1, $a1
.L80008B4C:
/* 00974C 80008B4C 10200015 */ beqz $at, .L80008BA4
/* 009750 80008B50 3C0F800E */ lui $t7, %hi(gCCSelection)
/* 009754 80008B54 84E20000 */ lh $v0, ($a3)
/* 009758 80008B58 3C018016 */ lui $at, %hi(gLapCompletionPercentByPlayerId)
/* 00975C 80008B5C 00280821 */ addu $at, $at, $t0
/* 009760 80008B60 84E30010 */ lh $v1, 0x10($a3)
/* 009764 80008B64 C42044A8 */ lwc1 $f0, %lo(gLapCompletionPercentByPlayerId)($at)
/* 009768 80008B68 44829000 */ mtc1 $v0, $f18
/* 00976C 80008B6C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 009770 80008B70 44814000 */ mtc1 $at, $f8
/* 009774 80008B74 46809120 */ cvt.s.w $f4, $f18
/* 009778 80008B78 44835000 */ mtc1 $v1, $f10
/* 00977C 80008B7C 46004401 */ sub.s $f16, $f8, $f0
/* 009780 80008B80 468054A0 */ cvt.s.w $f18, $f10
/* 009784 80008B84 46102182 */ mul.s $f6, $f4, $f16
/* 009788 80008B88 00000000 */ nop
/* 00978C 80008B8C 46009202 */ mul.s $f8, $f18, $f0
/* 009790 80008B90 46064100 */ add.s $f4, $f8, $f6
/* 009794 80008B94 4600240D */ trunc.w.s $f16, $f4
/* 009798 80008B98 44048000 */ mfc1 $a0, $f16
/* 00979C 80008B9C 10000002 */ b .L80008BA8
/* 0097A0 80008BA0 00000000 */ nop
.L80008BA4:
/* 0097A4 80008BA4 84E40000 */ lh $a0, ($a3)
.L80008BA8:
/* 0097A8 80008BA8 8DEFC548 */ lw $t7, %lo(gCCSelection)($t7)
/* 0097AC 80008BAC 25F80001 */ addiu $t8, $t7, 1
/* 0097B0 80008BB0 03040019 */ multu $t8, $a0
/* 0097B4 80008BB4 00002012 */ mflo $a0
/* 0097B8 80008BB8 0085082A */ slt $at, $a0, $a1
/* 0097BC 80008BBC 10200010 */ beqz $at, .L80008C00
/* 0097C0 80008BC0 AD840000 */ sw $a0, ($t4)
/* 0097C4 80008BC4 3C014190 */ li $at, 0x41900000 # 18.000000
/* 0097C8 80008BC8 44819000 */ mtc1 $at, $f18
/* 0097CC 80008BCC C52A0094 */ lwc1 $f10, 0x94($t1)
/* 0097D0 80008BD0 3C014358 */ li $at, 0x43580000 # 216.000000
/* 0097D4 80008BD4 44813000 */ mtc1 $at, $f6
/* 0097D8 80008BD8 46125203 */ div.s $f8, $f10, $f18
/* 0097DC 80008BDC 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 0097E0 80008BE0 44818000 */ mtc1 $at, $f16
/* 0097E4 80008BE4 46064102 */ mul.s $f4, $f8, $f6
/* 0097E8 80008BE8 4604803E */ c.le.s $f16, $f4
/* 0097EC 80008BEC 00000000 */ nop
/* 0097F0 80008BF0 45000003 */ bc1f .L80008C00
/* 0097F4 80008BF4 00000000 */ nop
/* 0097F8 80008BF8 1000006F */ b .L80008DB8
/* 0097FC 80008BFC 00001025 */ move $v0, $zero
.L80008C00:
/* 009800 80008C00 1000006D */ b .L80008DB8
/* 009804 80008C04 24020001 */ li $v0, 1
.L80008C08:
/* 009808 80008C08 3C098016 */ lui $t1, %hi(D_80163344) # $t1, 0x8016
/* 00980C 80008C0C 85293344 */ lh $t1, %lo(D_80163344)($t1)
/* 009810 80008C10 3C048016 */ lui $a0, %hi(gNumPathPointsTraversed) # $a0, 0x8016
/* 009814 80008C14 24844450 */ addiu $a0, %lo(gNumPathPointsTraversed) # addiu $a0, $a0, 0x4450
/* 009818 80008C18 00097080 */ sll $t6, $t1, 2
/* 00981C 80008C1C 0088C821 */ addu $t9, $a0, $t0
/* 009820 80008C20 008E7821 */ addu $t7, $a0, $t6
/* 009824 80008C24 87220002 */ lh $v0, 2($t9)
/* 009828 80008C28 85E30002 */ lh $v1, 2($t7)
/* 00982C 80008C2C 3C048016 */ lui $a0, %hi(D_80163344) # $a0, 0x8016
/* 009830 80008C30 24843344 */ addiu $a0, %lo(D_80163344) # addiu $a0, $a0, 0x3344
/* 009834 80008C34 0062C023 */ subu $t8, $v1, $v0
/* 009838 80008C38 AFB80010 */ sw $t8, 0x10($sp)
/* 00983C 80008C3C 07010002 */ bgez $t8, .L80008C48
/* 009840 80008C40 03002825 */ move $a1, $t8
/* 009844 80008C44 00182823 */ negu $a1, $t8
.L80008C48:
/* 009848 80008C48 3C038016 */ lui $v1, %hi(D_80163348) # $v1, 0x8016
/* 00984C 80008C4C 00001025 */ move $v0, $zero
/* 009850 80008C50 24633348 */ addiu $v1, %lo(D_80163348) # addiu $v1, $v1, 0x3348
/* 009854 80008C54 948F0000 */ lhu $t7, ($a0)
.L80008C58:
/* 009858 80008C58 3C198016 */ lui $t9, %hi(gGPCurrentRaceRankByPlayerId)
/* 00985C 80008C5C 24840002 */ addiu $a0, $a0, 2
/* 009860 80008C60 000FC080 */ sll $t8, $t7, 2
/* 009864 80008C64 0338C821 */ addu $t9, $t9, $t8
/* 009868 80008C68 8F3943B8 */ lw $t9, %lo(gGPCurrentRaceRankByPlayerId)($t9)
/* 00986C 80008C6C 0326082A */ slt $at, $t9, $a2
/* 009870 80008C70 50200005 */ beql $at, $zero, .L80008C88
/* 009874 80008C74 0083082B */ sltu $at, $a0, $v1
/* 009878 80008C78 24420001 */ addiu $v0, $v0, 1
/* 00987C 80008C7C 00027400 */ sll $t6, $v0, 0x10
/* 009880 80008C80 000E1403 */ sra $v0, $t6, 0x10
/* 009884 80008C84 0083082B */ sltu $at, $a0, $v1
.L80008C88:
/* 009888 80008C88 5420FFF3 */ bnel $at, $zero, .L80008C58
/* 00988C 80008C8C 948F0000 */ lhu $t7, ($a0)
/* 009890 80008C90 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019
/* 009894 80008C94 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1)
/* 009898 80008C98 3C188016 */ lui $t8, %hi(gGPCurrentRaceRankByPlayerId)
/* 00989C 80008C9C 00002025 */ move $a0, $zero
/* 0098A0 80008CA0 19200010 */ blez $t1, .L80008CE4
/* 0098A4 80008CA4 270343B8 */ addiu $v1, $t8, %lo(gGPCurrentRaceRankByPlayerId)
/* 0098A8 80008CA8 0009C880 */ sll $t9, $t1, 2
/* 0098AC 80008CAC 03237021 */ addu $t6, $t9, $v1
/* 0098B0 80008CB0 AFAE0004 */ sw $t6, 4($sp)
/* 0098B4 80008CB4 8C6F0000 */ lw $t7, ($v1)
.L80008CB8:
/* 0098B8 80008CB8 8FAE0004 */ lw $t6, 4($sp)
/* 0098BC 80008CBC 01E6082A */ slt $at, $t7, $a2
/* 0098C0 80008CC0 50200005 */ beql $at, $zero, .L80008CD8
/* 0098C4 80008CC4 24630004 */ addiu $v1, $v1, 4
/* 0098C8 80008CC8 24840001 */ addiu $a0, $a0, 1
/* 0098CC 80008CCC 0004CC00 */ sll $t9, $a0, 0x10
/* 0098D0 80008CD0 00192403 */ sra $a0, $t9, 0x10
/* 0098D4 80008CD4 24630004 */ addiu $v1, $v1, 4
.L80008CD8:
/* 0098D8 80008CD8 006E082B */ sltu $at, $v1, $t6
/* 0098DC 80008CDC 5420FFF6 */ bnel $at, $zero, .L80008CB8
/* 0098E0 80008CE0 8C6F0000 */ lw $t7, ($v1)
.L80008CE4:
/* 0098E4 80008CE4 00C2C823 */ subu $t9, $a2, $v0
/* 0098E8 80008CE8 03244823 */ subu $t1, $t9, $a0
/* 0098EC 80008CEC 0009C400 */ sll $t8, $t1, 0x10
/* 0098F0 80008CF0 1C400003 */ bgtz $v0, .L80008D00
/* 0098F4 80008CF4 00184C03 */ sra $t1, $t8, 0x10
/* 0098F8 80008CF8 18800004 */ blez $a0, .L80008D0C
/* 0098FC 80008CFC 00000000 */ nop
.L80008D00:
/* 009900 80008D00 25290001 */ addiu $t1, $t1, 1
/* 009904 80008D04 00097C00 */ sll $t7, $t1, 0x10
/* 009908 80008D08 000F4C03 */ sra $t1, $t7, 0x10
.L80008D0C:
/* 00990C 80008D0C 3C018016 */ lui $at, %hi(D_80164538) # 0x8016
/* 009910 80008D10 002B0821 */ addu $at, $at, $t3
/* 009914 80008D14 05200004 */ bltz $t1, .L80008D28
/* 009918 80008D18 A4294538 */ sh $t1, %lo(D_80164538)($at) # 0x4538($at)
/* 00991C 80008D1C 29210008 */ slti $at, $t1, 8
/* 009920 80008D20 54200004 */ bnel $at, $zero, .L80008D34
/* 009924 80008D24 29410018 */ slti $at, $t2, 0x18
.L80008D28:
/* 009928 80008D28 10000023 */ b .L80008DB8
/* 00992C 80008D2C 00001025 */ move $v0, $zero
/* 009930 80008D30 29410018 */ slti $at, $t2, 0x18
.L80008D34:
/* 009934 80008D34 10200017 */ beqz $at, .L80008D94
/* 009938 80008D38 00097840 */ sll $t7, $t1, 1
/* 00993C 80008D3C 0009C040 */ sll $t8, $t1, 1
/* 009940 80008D40 00F83021 */ addu $a2, $a3, $t8
/* 009944 80008D44 84C20000 */ lh $v0, ($a2)
/* 009948 80008D48 3C018016 */ lui $at, %hi(gLapCompletionPercentByPlayerId)
/* 00994C 80008D4C 00280821 */ addu $at, $at, $t0
/* 009950 80008D50 84C30010 */ lh $v1, 0x10($a2)
/* 009954 80008D54 C42044A8 */ lwc1 $f0, %lo(gLapCompletionPercentByPlayerId)($at)
/* 009958 80008D58 44825000 */ mtc1 $v0, $f10
/* 00995C 80008D5C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 009960 80008D60 44814000 */ mtc1 $at, $f8
/* 009964 80008D64 468054A0 */ cvt.s.w $f18, $f10
/* 009968 80008D68 44838000 */ mtc1 $v1, $f16
/* 00996C 80008D6C 46004181 */ sub.s $f6, $f8, $f0
/* 009970 80008D70 468082A0 */ cvt.s.w $f10, $f16
/* 009974 80008D74 46069102 */ mul.s $f4, $f18, $f6
/* 009978 80008D78 00000000 */ nop
/* 00997C 80008D7C 46005202 */ mul.s $f8, $f10, $f0
/* 009980 80008D80 46044480 */ add.s $f18, $f8, $f4
/* 009984 80008D84 4600918D */ trunc.w.s $f6, $f18
/* 009988 80008D88 44043000 */ mfc1 $a0, $f6
/* 00998C 80008D8C 10000003 */ b .L80008D9C
/* 009990 80008D90 00000000 */ nop
.L80008D94:
/* 009994 80008D94 00EFC821 */ addu $t9, $a3, $t7
/* 009998 80008D98 87240000 */ lh $a0, ($t9)
.L80008D9C:
/* 00999C 80008D9C 0085082A */ slt $at, $a0, $a1
/* 0099A0 80008DA0 ADA50000 */ sw $a1, ($t5)
/* 0099A4 80008DA4 10200003 */ beqz $at, .L80008DB4
/* 0099A8 80008DA8 AD840000 */ sw $a0, ($t4)
/* 0099AC 80008DAC 10000002 */ b .L80008DB8
/* 0099B0 80008DB0 24020001 */ li $v0, 1
.L80008DB4:
/* 0099B4 80008DB4 00001025 */ move $v0, $zero
.L80008DB8:
/* 0099B8 80008DB8 03E00008 */ jr $ra
/* 0099BC 80008DBC 27BD0058 */ addiu $sp, $sp, 0x58
@@ -1,466 +0,0 @@
.section .late_rodata
glabel D_800ED270
.double -10000.0
glabel D_800ED278
.double 10000.0
glabel D_800ED280
.double 10000.0
.section .text
glabel func_80017054
/* 017C54 80017054 00077080 */ sll $t6, $a3, 2
/* 017C58 80017058 3C0F8016 */ lui $t7, %hi(D_80164648) # $t7, 0x8016
/* 017C5C 8001705C 25EF4648 */ addiu $t7, %lo(D_80164648) # addiu $t7, $t7, 0x4648
/* 017C60 80017060 3C018016 */ lui $at, %hi(D_80164658)
/* 017C64 80017064 002E0821 */ addu $at, $at, $t6
/* 017C68 80017068 01CF4821 */ addu $t1, $t6, $t7
/* 017C6C 8001706C C5220000 */ lwc1 $f2, ($t1)
/* 017C70 80017070 C4244658 */ lwc1 $f4, %lo(D_80164658)($at)
/* 017C74 80017074 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 017C78 80017078 44814000 */ mtc1 $at, $f8
/* 017C7C 8001707C 46022181 */ sub.s $f6, $f4, $f2
/* 017C80 80017080 27BDFF48 */ addiu $sp, $sp, -0xb8
/* 017C84 80017084 3C188016 */ lui $t8, %hi(D_80163DD8) # $t8, 0x8016
/* 017C88 80017088 AFA500BC */ sw $a1, 0xbc($sp)
/* 017C8C 8001708C 46083282 */ mul.s $f10, $f6, $f8
/* 017C90 80017090 27183DD8 */ addiu $t8, %lo(D_80163DD8) # addiu $t8, $t8, 0x3dd8
/* 017C94 80017094 01D82821 */ addu $a1, $t6, $t8
/* 017C98 80017098 8CAA0000 */ lw $t2, ($a1)
/* 017C9C 8001709C AFBF0024 */ sw $ra, 0x24($sp)
/* 017CA0 800170A0 AFB00020 */ sw $s0, 0x20($sp)
/* 017CA4 800170A4 AFA600C0 */ sw $a2, 0xc0($sp)
/* 017CA8 800170A8 460A1100 */ add.s $f4, $f2, $f10
/* 017CAC 800170AC AFA700C4 */ sw $a3, 0xc4($sp)
/* 017CB0 800170B0 848200AE */ lh $v0, 0xae($a0)
/* 017CB4 800170B4 01C01825 */ move $v1, $t6
/* 017CB8 800170B8 3C0F8016 */ lui $t7, %hi(gNearestPathPointByCameraId) # $t7, 0x8016
/* 017CBC 800170BC E5240000 */ swc1 $f4, ($t1)
/* 017CC0 800170C0 3C0C8016 */ lui $t4, %hi(gPathCountByPathIndex) # 0x8016
/* 017CC4 800170C4 3C018016 */ lui $at, %hi(D_80163238) # $at, 0x8016
/* 017CC8 800170C8 25EF4668 */ addiu $t7, %lo(gNearestPathPointByCameraId) # addiu $t7, $t7, 0x4668
/* 017CCC 800170CC 00077040 */ sll $t6, $a3, 1
/* 017CD0 800170D0 000AC840 */ sll $t9, $t2, 1
/* 017CD4 800170D4 01996021 */ addu $t4, $t4, $t9
/* 017CD8 800170D8 01CF4021 */ addu $t0, $t6, $t7
/* 017CDC 800170DC AC223238 */ sw $v0, %lo(D_80163238)($at)
/* 017CE0 800170E0 958C45C8 */ lhu $t4, %lo(gPathCountByPathIndex)($t4) # 0x45c8($t4)
/* 017CE4 800170E4 85070000 */ lh $a3, ($t0)
/* 017CE8 800170E8 00808025 */ move $s0, $a0
/* 017CEC 800170EC AFAC0058 */ sw $t4, 0x58($sp)
/* 017CF0 800170F0 A7A70056 */ sh $a3, 0x56($sp)
/* 017CF4 800170F4 8C860008 */ lw $a2, 8($a0)
/* 017CF8 800170F8 C48E0004 */ lwc1 $f14, 4($a0)
/* 017CFC 800170FC C48C0000 */ lwc1 $f12, ($a0)
/* 017D00 80017100 AFA90048 */ sw $t1, 0x48($sp)
/* 017D04 80017104 AFA80040 */ sw $t0, 0x40($sp)
/* 017D08 80017108 AFA50044 */ sw $a1, 0x44($sp)
/* 017D0C 8001710C AFA3004C */ sw $v1, 0x4c($sp)
/* 017D10 80017110 AFAA005C */ sw $t2, 0x5c($sp)
/* 017D14 80017114 0C0034CF */ jal func_8000D33C
/* 017D18 80017118 AFAA0010 */ sw $t2, 0x10($sp)
/* 017D1C 8001711C 8FA90040 */ lw $t1, 0x40($sp)
/* 017D20 80017120 3C18800E */ lui $t8, %hi(gCurrentCourseId)
/* 017D24 80017124 24010004 */ li $at, 4
/* 017D28 80017128 A5220000 */ sh $v0, ($t1)
/* 017D2C 8001712C 8718C5A0 */ lh $t8, %lo(gCurrentCourseId)($t8)
/* 017D30 80017130 57010018 */ bnel $t8, $at, .L80017194
/* 017D34 80017134 8FA80058 */ lw $t0, 0x58($sp)
/* 017D38 80017138 85270000 */ lh $a3, ($t1)
/* 017D3C 8001713C 87B90056 */ lh $t9, 0x56($sp)
/* 017D40 80017140 53270014 */ beql $t9, $a3, .L80017194
/* 017D44 80017144 8FA80058 */ lw $t0, 0x58($sp)
/* 017D48 80017148 24010001 */ li $at, 1
/* 017D4C 8001714C 54E10011 */ bnel $a3, $at, .L80017194
/* 017D50 80017150 8FA80058 */ lw $t0, 0x58($sp)
/* 017D54 80017154 0C0ADF8D */ jal random_int
/* 017D58 80017158 24040004 */ li $a0, 4
/* 017D5C 8001715C 8FAC0044 */ lw $t4, 0x44($sp)
/* 017D60 80017160 AD820000 */ sw $v0, ($t4)
/* 017D64 80017164 AFA2005C */ sw $v0, 0x5c($sp)
/* 017D68 80017168 8FAD0040 */ lw $t5, 0x40($sp)
/* 017D6C 8001716C 8E060008 */ lw $a2, 8($s0)
/* 017D70 80017170 C60E0004 */ lwc1 $f14, 4($s0)
/* 017D74 80017174 C60C0000 */ lwc1 $f12, ($s0)
/* 017D78 80017178 85A70000 */ lh $a3, ($t5)
/* 017D7C 8001717C 0C0034CF */ jal func_8000D33C
/* 017D80 80017180 AFA20010 */ sw $v0, 0x10($sp)
/* 017D84 80017184 8FAE0040 */ lw $t6, 0x40($sp)
/* 017D88 80017188 A5C20000 */ sh $v0, ($t6)
/* 017D8C 8001718C 8FA90040 */ lw $t1, 0x40($sp)
/* 017D90 80017190 8FA80058 */ lw $t0, 0x58($sp)
.L80017194:
/* 017D94 80017194 85270000 */ lh $a3, ($t1)
/* 017D98 80017198 8FAE004C */ lw $t6, 0x4c($sp)
/* 017D9C 8001719C 87A6005E */ lh $a2, 0x5e($sp)
/* 017DA0 800171A0 24EF000A */ addiu $t7, $a3, 0xa
/* 017DA4 800171A4 01E8001A */ div $zero, $t7, $t0
/* 017DA8 800171A8 24EC000B */ addiu $t4, $a3, 0xb
/* 017DAC 800171AC 00001010 */ mfhi $v0
/* 017DB0 800171B0 0002C400 */ sll $t8, $v0, 0x10
/* 017DB4 800171B4 15000002 */ bnez $t0, .L800171C0
/* 017DB8 800171B8 00000000 */ nop
/* 017DBC 800171BC 0007000D */ break 7
.L800171C0:
/* 017DC0 800171C0 2401FFFF */ li $at, -1
/* 017DC4 800171C4 15010004 */ bne $t0, $at, .L800171D8
/* 017DC8 800171C8 3C018000 */ lui $at, 0x8000
/* 017DCC 800171CC 15E10002 */ bne $t7, $at, .L800171D8
/* 017DD0 800171D0 00000000 */ nop
/* 017DD4 800171D4 0006000D */ break 6
.L800171D8:
/* 017DD8 800171D8 0188001A */ div $zero, $t4, $t0
/* 017DDC 800171DC 3C0F8016 */ lui $t7, %hi(D_80164688) # $t7, 0x8016
/* 017DE0 800171E0 0018CC03 */ sra $t9, $t8, 0x10
/* 017DE4 800171E4 25EF4688 */ addiu $t7, %lo(D_80164688) # addiu $t7, $t7, 0x4688
/* 017DE8 800171E8 03201025 */ move $v0, $t9
/* 017DEC 800171EC 00006810 */ mfhi $t5
/* 017DF0 800171F0 01CF1821 */ addu $v1, $t6, $t7
/* 017DF4 800171F4 15000002 */ bnez $t0, .L80017200
/* 017DF8 800171F8 00000000 */ nop
/* 017DFC 800171FC 0007000D */ break 7
.L80017200:
/* 017E00 80017200 2401FFFF */ li $at, -1
/* 017E04 80017204 15010004 */ bne $t0, $at, .L80017218
/* 017E08 80017208 3C018000 */ lui $at, 0x8000
/* 017E0C 8001720C 15810002 */ bne $t4, $at, .L80017218
/* 017E10 80017210 00000000 */ nop
/* 017E14 80017214 0006000D */ break 6
.L80017218:
/* 017E18 80017218 A7AD006C */ sh $t5, 0x6c($sp)
/* 017E1C 8001721C 8C650000 */ lw $a1, ($v1)
/* 017E20 80017220 AFA30044 */ sw $v1, 0x44($sp)
/* 017E24 80017224 3044FFFF */ andi $a0, $v0, 0xffff
/* 017E28 80017228 0C002EF6 */ jal set_track_offset_position
/* 017E2C 8001722C AFA6003C */ sw $a2, 0x3c($sp)
/* 017E30 80017230 3C038016 */ lui $v1, %hi(gOffsetPosition) # $v1, 0x8016
/* 017E34 80017234 24632FA0 */ addiu $v1, %lo(gOffsetPosition) # addiu $v1, $v1, 0x2fa0
/* 017E38 80017238 C4660000 */ lwc1 $f6, ($v1)
/* 017E3C 8001723C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 017E40 80017240 44810800 */ mtc1 $at, $f1
/* 017E44 80017244 44800000 */ mtc1 $zero, $f0
/* 017E48 80017248 46003221 */ cvt.d.s $f8, $f6
/* 017E4C 8001724C C4660008 */ lwc1 $f6, 8($v1)
/* 017E50 80017250 46204282 */ mul.d $f10, $f8, $f0
/* 017E54 80017254 8FB80044 */ lw $t8, 0x44($sp)
/* 017E58 80017258 46003221 */ cvt.d.s $f8, $f6
/* 017E5C 8001725C 97A4006C */ lhu $a0, 0x6c($sp)
/* 017E60 80017260 87A6003E */ lh $a2, 0x3e($sp)
/* 017E64 80017264 46205120 */ cvt.s.d $f4, $f10
/* 017E68 80017268 46204282 */ mul.d $f10, $f8, $f0
/* 017E6C 8001726C E7A4008C */ swc1 $f4, 0x8c($sp)
/* 017E70 80017270 46205120 */ cvt.s.d $f4, $f10
/* 017E74 80017274 E7A40084 */ swc1 $f4, 0x84($sp)
/* 017E78 80017278 0C002EF6 */ jal set_track_offset_position
/* 017E7C 8001727C 8F050000 */ lw $a1, ($t8)
/* 017E80 80017280 3C038016 */ lui $v1, %hi(gOffsetPosition) # $v1, 0x8016
/* 017E84 80017284 24632FA0 */ addiu $v1, %lo(gOffsetPosition) # addiu $v1, $v1, 0x2fa0
/* 017E88 80017288 C46A0000 */ lwc1 $f10, ($v1)
/* 017E8C 8001728C C7A6008C */ lwc1 $f6, 0x8c($sp)
/* 017E90 80017290 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 017E94 80017294 44810800 */ mtc1 $at, $f1
/* 017E98 80017298 44800000 */ mtc1 $zero, $f0
/* 017E9C 8001729C 46005121 */ cvt.d.s $f4, $f10
/* 017EA0 800172A0 46003221 */ cvt.d.s $f8, $f6
/* 017EA4 800172A4 46202182 */ mul.d $f6, $f4, $f0
/* 017EA8 800172A8 8FAB0058 */ lw $t3, 0x58($sp)
/* 017EAC 800172AC 8FB90040 */ lw $t9, 0x40($sp)
/* 017EB0 800172B0 87A6003E */ lh $a2, 0x3e($sp)
/* 017EB4 800172B4 46264280 */ add.d $f10, $f8, $f6
/* 017EB8 800172B8 C7A80084 */ lwc1 $f8, 0x84($sp)
/* 017EBC 800172BC 46205120 */ cvt.s.d $f4, $f10
/* 017EC0 800172C0 C46A0008 */ lwc1 $f10, 8($v1)
/* 017EC4 800172C4 460041A1 */ cvt.d.s $f6, $f8
/* 017EC8 800172C8 E7A4008C */ swc1 $f4, 0x8c($sp)
/* 017ECC 800172CC 46005121 */ cvt.d.s $f4, $f10
/* 017ED0 800172D0 46202202 */ mul.d $f8, $f4, $f0
/* 017ED4 800172D4 46283280 */ add.d $f10, $f6, $f8
/* 017ED8 800172D8 46205120 */ cvt.s.d $f4, $f10
/* 017EDC 800172DC E7A40084 */ swc1 $f4, 0x84($sp)
/* 017EE0 800172E0 87270000 */ lh $a3, ($t9)
/* 017EE4 800172E4 24EC0005 */ addiu $t4, $a3, 5
/* 017EE8 800172E8 018B001A */ div $zero, $t4, $t3
/* 017EEC 800172EC 24EF0006 */ addiu $t7, $a3, 6
/* 017EF0 800172F0 00001010 */ mfhi $v0
/* 017EF4 800172F4 00026C00 */ sll $t5, $v0, 0x10
/* 017EF8 800172F8 15600002 */ bnez $t3, .L80017304
/* 017EFC 800172FC 00000000 */ nop
/* 017F00 80017300 0007000D */ break 7
.L80017304:
/* 017F04 80017304 2401FFFF */ li $at, -1
/* 017F08 80017308 15610004 */ bne $t3, $at, .L8001731C
/* 017F0C 8001730C 3C018000 */ lui $at, 0x8000
/* 017F10 80017310 15810002 */ bne $t4, $at, .L8001731C
/* 017F14 80017314 00000000 */ nop
/* 017F18 80017318 0006000D */ break 6
.L8001731C:
/* 017F1C 8001731C 01EB001A */ div $zero, $t7, $t3
/* 017F20 80017320 8FAC005C */ lw $t4, 0x5c($sp)
/* 017F24 80017324 000D7403 */ sra $t6, $t5, 0x10
/* 017F28 80017328 01C01025 */ move $v0, $t6
/* 017F2C 8001732C 3C0E8016 */ lui $t6, %hi(gTrackPaths) # $t6, 0x8016
/* 017F30 80017330 00004810 */ mfhi $t1
/* 017F34 80017334 25CE4550 */ addiu $t6, %lo(gTrackPaths) # addiu $t6, $t6, 0x4550
/* 017F38 80017338 000C6880 */ sll $t5, $t4, 2
/* 017F3C 8001733C 0009C400 */ sll $t8, $t1, 0x10
/* 017F40 80017340 01AE5021 */ addu $t2, $t5, $t6
/* 017F44 80017344 8D480000 */ lw $t0, ($t2)
/* 017F48 80017348 0018CC03 */ sra $t9, $t8, 0x10
/* 017F4C 8001734C 15600002 */ bnez $t3, .L80017358
/* 017F50 80017350 00000000 */ nop
/* 017F54 80017354 0007000D */ break 7
.L80017358:
/* 017F58 80017358 2401FFFF */ li $at, -1
/* 017F5C 8001735C 15610004 */ bne $t3, $at, .L80017370
/* 017F60 80017360 3C018000 */ lui $at, 0x8000
/* 017F64 80017364 15E10002 */ bne $t7, $at, .L80017370
/* 017F68 80017368 00000000 */ nop
/* 017F6C 8001736C 0006000D */ break 6
.L80017370:
/* 017F70 80017370 001978C0 */ sll $t7, $t9, 3
/* 017F74 80017374 03204825 */ move $t1, $t9
/* 017F78 80017378 010FC021 */ addu $t8, $t0, $t7
/* 017F7C 8001737C 87190002 */ lh $t9, 2($t8)
/* 017F80 80017380 24F80001 */ addiu $t8, $a3, 1
/* 017F84 80017384 030B001A */ div $zero, $t8, $t3
/* 017F88 80017388 000260C0 */ sll $t4, $v0, 3
/* 017F8C 8001738C 010C6821 */ addu $t5, $t0, $t4
/* 017F90 80017390 85AE0002 */ lh $t6, 2($t5)
/* 017F94 80017394 00001010 */ mfhi $v0
/* 017F98 80017398 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 017F9C 8001739C 032E7821 */ addu $t7, $t9, $t6
/* 017FA0 800173A0 24F90002 */ addiu $t9, $a3, 2
/* 017FA4 800173A4 032B001A */ div $zero, $t9, $t3
/* 017FA8 800173A8 448F3000 */ mtc1 $t7, $f6
/* 017FAC 800173AC 44815000 */ mtc1 $at, $f10
/* 017FB0 800173B0 00026400 */ sll $t4, $v0, 0x10
/* 017FB4 800173B4 46803220 */ cvt.s.w $f8, $f6
/* 017FB8 800173B8 000C6C03 */ sra $t5, $t4, 0x10
/* 017FBC 800173BC 01A01025 */ move $v0, $t5
/* 017FC0 800173C0 00007810 */ mfhi $t7
/* 017FC4 800173C4 3044FFFF */ andi $a0, $v0, 0xffff
/* 017FC8 800173C8 460A4102 */ mul.s $f4, $f8, $f10
/* 017FCC 800173CC E7A40088 */ swc1 $f4, 0x88($sp)
/* 017FD0 800173D0 15600002 */ bnez $t3, .L800173DC
/* 017FD4 800173D4 00000000 */ nop
/* 017FD8 800173D8 0007000D */ break 7
.L800173DC:
/* 017FDC 800173DC 2401FFFF */ li $at, -1
/* 017FE0 800173E0 15610004 */ bne $t3, $at, .L800173F4
/* 017FE4 800173E4 3C018000 */ lui $at, 0x8000
/* 017FE8 800173E8 17010002 */ bne $t8, $at, .L800173F4
/* 017FEC 800173EC 00000000 */ nop
/* 017FF0 800173F0 0006000D */ break 6
.L800173F4:
/* 017FF4 800173F4 8FB80044 */ lw $t8, 0x44($sp)
/* 017FF8 800173F8 15600002 */ bnez $t3, .L80017404
/* 017FFC 800173FC 00000000 */ nop
/* 018000 80017400 0007000D */ break 7
.L80017404:
/* 018004 80017404 2401FFFF */ li $at, -1
/* 018008 80017408 15610004 */ bne $t3, $at, .L8001741C
/* 01800C 8001740C 3C018000 */ lui $at, 0x8000
/* 018010 80017410 17210002 */ bne $t9, $at, .L8001741C
/* 018014 80017414 00000000 */ nop
/* 018018 80017418 0006000D */ break 6
.L8001741C:
/* 01801C 8001741C 8F050000 */ lw $a1, ($t8)
/* 018020 80017420 AFAA002C */ sw $t2, 0x2c($sp)
/* 018024 80017424 A7AF006C */ sh $t7, 0x6c($sp)
/* 018028 80017428 0C002EF6 */ jal set_track_offset_position
/* 01802C 8001742C A7A2006E */ sh $v0, 0x6e($sp)
/* 018030 80017430 3C038016 */ lui $v1, %hi(gOffsetPosition) # $v1, 0x8016
/* 018034 80017434 24632FA0 */ addiu $v1, %lo(gOffsetPosition) # addiu $v1, $v1, 0x2fa0
/* 018038 80017438 C4660000 */ lwc1 $f6, ($v1)
/* 01803C 8001743C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 018040 80017440 44810800 */ mtc1 $at, $f1
/* 018044 80017444 44800000 */ mtc1 $zero, $f0
/* 018048 80017448 C4640008 */ lwc1 $f4, 8($v1)
/* 01804C 8001744C 46003221 */ cvt.d.s $f8, $f6
/* 018050 80017450 8FAC0044 */ lw $t4, 0x44($sp)
/* 018054 80017454 46204282 */ mul.d $f10, $f8, $f0
/* 018058 80017458 460021A1 */ cvt.d.s $f6, $f4
/* 01805C 8001745C 8D850000 */ lw $a1, ($t4)
/* 018060 80017460 97A4006C */ lhu $a0, 0x6c($sp)
/* 018064 80017464 46203202 */ mul.d $f8, $f6, $f0
/* 018068 80017468 87A6003E */ lh $a2, 0x3e($sp)
/* 01806C 8001746C 462053A0 */ cvt.s.d $f14, $f10
/* 018070 80017470 46204420 */ cvt.s.d $f16, $f8
/* 018074 80017474 E7AE0098 */ swc1 $f14, 0x98($sp)
/* 018078 80017478 0C002EF6 */ jal set_track_offset_position
/* 01807C 8001747C E7B00090 */ swc1 $f16, 0x90($sp)
/* 018080 80017480 3C038016 */ lui $v1, %hi(gOffsetPosition) # $v1, 0x8016
/* 018084 80017484 24632FA0 */ addiu $v1, %lo(gOffsetPosition) # addiu $v1, $v1, 0x2fa0
/* 018088 80017488 C4640000 */ lwc1 $f4, ($v1)
/* 01808C 8001748C 3C013FE0 */ li $at, 0x3FE00000 # 1.750000
/* 018090 80017490 44810800 */ mtc1 $at, $f1
/* 018094 80017494 44800000 */ mtc1 $zero, $f0
/* 018098 80017498 460021A1 */ cvt.d.s $f6, $f4
/* 01809C 8001749C C7AE0098 */ lwc1 $f14, 0x98($sp)
/* 0180A0 800174A0 46203202 */ mul.d $f8, $f6, $f0
/* 0180A4 800174A4 8FAD002C */ lw $t5, 0x2c($sp)
/* 0180A8 800174A8 460072A1 */ cvt.d.s $f10, $f14
/* 0180AC 800174AC 87A2006E */ lh $v0, 0x6e($sp)
/* 0180B0 800174B0 87B9006C */ lh $t9, 0x6c($sp)
/* 0180B4 800174B4 8DA80000 */ lw $t0, ($t5)
/* 0180B8 800174B8 000260C0 */ sll $t4, $v0, 3
/* 0180BC 800174BC 001970C0 */ sll $t6, $t9, 3
/* 0180C0 800174C0 46285100 */ add.d $f4, $f10, $f8
/* 0180C4 800174C4 C46A0008 */ lwc1 $f10, 8($v1)
/* 0180C8 800174C8 010E7821 */ addu $t7, $t0, $t6
/* 0180CC 800174CC 010C6821 */ addu $t5, $t0, $t4
/* 0180D0 800174D0 46005221 */ cvt.d.s $f8, $f10
/* 0180D4 800174D4 462023A0 */ cvt.s.d $f14, $f4
/* 0180D8 800174D8 46204102 */ mul.d $f4, $f8, $f0
/* 0180DC 800174DC 85B90002 */ lh $t9, 2($t5)
/* 0180E0 800174E0 85F80002 */ lh $t8, 2($t7)
/* 0180E4 800174E4 C7B00090 */ lwc1 $f16, 0x90($sp)
/* 0180E8 800174E8 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0180EC 800174EC 03197021 */ addu $t6, $t8, $t9
/* 0180F0 800174F0 448E4000 */ mtc1 $t6, $f8
/* 0180F4 800174F4 460081A1 */ cvt.d.s $f6, $f16
/* 0180F8 800174F8 8FA7004C */ lw $a3, 0x4c($sp)
/* 0180FC 800174FC 46243280 */ add.d $f10, $f6, $f4
/* 018100 80017500 44812000 */ mtc1 $at, $f4
/* 018104 80017504 3C0F8016 */ lui $t7, %hi(D_801645F8) # $t7, 0x8016
/* 018108 80017508 468041A0 */ cvt.s.w $f6, $f8
/* 01810C 8001750C 25EF45F8 */ addiu $t7, %lo(D_801645F8) # addiu $t7, $t7, 0x45f8
/* 018110 80017510 3C0C8016 */ lui $t4, %hi(D_80164618) # $t4, 0x8016
/* 018114 80017514 00EF2021 */ addu $a0, $a3, $t7
/* 018118 80017518 C4880000 */ lwc1 $f8, ($a0)
/* 01811C 8001751C 46205420 */ cvt.s.d $f16, $f10
/* 018120 80017520 46043282 */ mul.s $f10, $f6, $f4
/* 018124 80017524 258C4618 */ addiu $t4, %lo(D_80164618) # addiu $t4, $t4, 0x4618
/* 018128 80017528 00EC2821 */ addu $a1, $a3, $t4
/* 01812C 8001752C C4A60000 */ lwc1 $f6, ($a1)
/* 018130 80017530 3C0D8016 */ lui $t5, %hi(D_80164638) # $t5, 0x8016
/* 018134 80017534 46087481 */ sub.s $f18, $f14, $f8
/* 018138 80017538 25AD4638 */ addiu $t5, %lo(D_80164638) # addiu $t5, $t5, 0x4638
/* 01813C 8001753C E7AA0094 */ swc1 $f10, 0x94($sp)
/* 018140 80017540 46065081 */ sub.s $f2, $f10, $f6
/* 018144 80017544 00ED3021 */ addu $a2, $a3, $t5
/* 018148 80017548 46129282 */ mul.s $f10, $f18, $f18
/* 01814C 8001754C C4C40000 */ lwc1 $f4, ($a2)
/* 018150 80017550 AFA6003C */ sw $a2, 0x3c($sp)
/* 018154 80017554 46021182 */ mul.s $f6, $f2, $f2
/* 018158 80017558 E7A2007C */ swc1 $f2, 0x7c($sp)
/* 01815C 8001755C 46048201 */ sub.s $f8, $f16, $f4
/* 018160 80017560 E7B20080 */ swc1 $f18, 0x80($sp)
/* 018164 80017564 AFA50040 */ sw $a1, 0x40($sp)
/* 018168 80017568 AFA40044 */ sw $a0, 0x44($sp)
/* 01816C 8001756C E7A80078 */ swc1 $f8, 0x78($sp)
/* 018170 80017570 C7A80078 */ lwc1 $f8, 0x78($sp)
/* 018174 80017574 46065100 */ add.s $f4, $f10, $f6
/* 018178 80017578 46084282 */ mul.s $f10, $f8, $f8
/* 01817C 8001757C 0C033850 */ jal sqrtf
/* 018180 80017580 460A2300 */ add.s $f12, $f4, $f10
/* 018184 80017584 44803800 */ mtc1 $zero, $f7
/* 018188 80017588 44803000 */ mtc1 $zero, $f6
/* 01818C 8001758C 46000221 */ cvt.d.s $f8, $f0
/* 018190 80017590 8FA40044 */ lw $a0, 0x44($sp)
/* 018194 80017594 46283032 */ c.eq.d $f6, $f8
/* 018198 80017598 8FA50040 */ lw $a1, 0x40($sp)
/* 01819C 8001759C 8FA6003C */ lw $a2, 0x3c($sp)
/* 0181A0 800175A0 C7B20080 */ lwc1 $f18, 0x80($sp)
/* 0181A4 800175A4 45010013 */ bc1t .L800175F4
/* 0181A8 800175A8 3C01800F */ lui $at, %hi(D_800ED270)
/* 0181AC 800175AC 8FB80048 */ lw $t8, 0x48($sp)
/* 0181B0 800175B0 C7A8007C */ lwc1 $f8, 0x7c($sp)
/* 0181B4 800175B4 C4860000 */ lwc1 $f6, ($a0)
/* 0181B8 800175B8 C7020000 */ lwc1 $f2, ($t8)
/* 0181BC 800175BC 46121102 */ mul.s $f4, $f2, $f18
/* 0181C0 800175C0 46002283 */ div.s $f10, $f4, $f0
/* 0181C4 800175C4 46081102 */ mul.s $f4, $f2, $f8
/* 0181C8 800175C8 46065380 */ add.s $f14, $f10, $f6
/* 0181CC 800175CC C4A60000 */ lwc1 $f6, ($a1)
/* 0181D0 800175D0 46002283 */ div.s $f10, $f4, $f0
/* 0181D4 800175D4 C7A40078 */ lwc1 $f4, 0x78($sp)
/* 0181D8 800175D8 46065200 */ add.s $f8, $f10, $f6
/* 0181DC 800175DC 46041282 */ mul.s $f10, $f2, $f4
/* 0181E0 800175E0 E7A80094 */ swc1 $f8, 0x94($sp)
/* 0181E4 800175E4 C4C80000 */ lwc1 $f8, ($a2)
/* 0181E8 800175E8 46005183 */ div.s $f6, $f10, $f0
/* 0181EC 800175EC 10000005 */ b .L80017604
/* 0181F0 800175F0 46083400 */ add.s $f16, $f6, $f8
.L800175F4:
/* 0181F4 800175F4 C4A40000 */ lwc1 $f4, ($a1)
/* 0181F8 800175F8 C48E0000 */ lwc1 $f14, ($a0)
/* 0181FC 800175FC C4D00000 */ lwc1 $f16, ($a2)
/* 018200 80017600 E7A40094 */ swc1 $f4, 0x94($sp)
.L80017604:
/* 018204 80017604 D422D270 */ ldc1 $f2, %lo(D_800ED270)($at)
/* 018208 80017608 46007021 */ cvt.d.s $f0, $f14
/* 01820C 8001760C 44804000 */ mtc1 $zero, $f8
/* 018210 80017610 4622003C */ c.lt.d $f0, $f2
/* 018214 80017614 3C01800F */ lui $at, %hi(D_800ED278)
/* 018218 80017618 C7B2008C */ lwc1 $f18, 0x8c($sp)
/* 01821C 8001761C 45010006 */ bc1t .L80017638
/* 018220 80017620 00000000 */ nop
/* 018224 80017624 D42CD278 */ ldc1 $f12, %lo(D_800ED278)($at)
/* 018228 80017628 4620603C */ c.lt.d $f12, $f0
/* 01822C 8001762C 00000000 */ nop
/* 018230 80017630 45020002 */ bc1fl .L8001763C
/* 018234 80017634 E60E0000 */ swc1 $f14, ($s0)
.L80017638:
/* 018238 80017638 E60E0000 */ swc1 $f14, ($s0)
.L8001763C:
/* 01823C 8001763C E6100008 */ swc1 $f16, 8($s0)
/* 018240 80017640 C7AA0094 */ lwc1 $f10, 0x94($sp)
/* 018244 80017644 3C014024 */ li $at, 0x40240000 # 2.562500
/* 018248 80017648 44814800 */ mtc1 $at, $f9
/* 01824C 8001764C 460051A1 */ cvt.d.s $f6, $f10
/* 018250 80017650 3C014020 */ li $at, 0x40200000 # 2.500000
/* 018254 80017654 46283100 */ add.d $f4, $f6, $f8
/* 018258 80017658 462022A0 */ cvt.s.d $f10, $f4
/* 01825C 8001765C 44815800 */ mtc1 $at, $f11
/* 018260 80017660 E60A0004 */ swc1 $f10, 4($s0)
/* 018264 80017664 C7A60094 */ lwc1 $f6, 0x94($sp)
/* 018268 80017668 E48E0000 */ swc1 $f14, ($a0)
/* 01826C 8001766C E4D00000 */ swc1 $f16, ($a2)
/* 018270 80017670 E4A60000 */ swc1 $f6, ($a1)
/* 018274 80017674 C7AE0084 */ lwc1 $f14, 0x84($sp)
/* 018278 80017678 E612000C */ swc1 $f18, 0xc($s0)
/* 01827C 8001767C C7A80088 */ lwc1 $f8, 0x88($sp)
/* 018280 80017680 44805000 */ mtc1 $zero, $f10
/* 018284 80017684 E60E0014 */ swc1 $f14, 0x14($s0)
/* 018288 80017688 46004121 */ cvt.d.s $f4, $f8
/* 01828C 8001768C 462A2180 */ add.d $f6, $f4, $f10
/* 018290 80017690 46203220 */ cvt.s.d $f8, $f6
/* 018294 80017694 E6080010 */ swc1 $f8, 0x10($s0)
/* 018298 80017698 8FA5005C */ lw $a1, 0x5c($sp)
/* 01829C 8001769C 0C00534C */ jal func_80014D30
/* 0182A0 800176A0 8FA400C4 */ lw $a0, 0xc4($sp)
/* 0182A4 800176A4 C604000C */ lwc1 $f4, 0xc($s0)
/* 0182A8 800176A8 C60A0000 */ lwc1 $f10, ($s0)
/* 0182AC 800176AC C6060010 */ lwc1 $f6, 0x10($s0)
/* 0182B0 800176B0 C6080004 */ lwc1 $f8, 4($s0)
/* 0182B4 800176B4 460A2301 */ sub.s $f12, $f4, $f10
/* 0182B8 800176B8 46083101 */ sub.s $f4, $f6, $f8
/* 0182BC 800176BC E7A400A8 */ swc1 $f4, 0xa8($sp)
/* 0182C0 800176C0 C6060008 */ lwc1 $f6, 8($s0)
/* 0182C4 800176C4 C60A0014 */ lwc1 $f10, 0x14($s0)
/* 0182C8 800176C8 E7AC00AC */ swc1 $f12, 0xac($sp)
/* 0182CC 800176CC 46065381 */ sub.s $f14, $f10, $f6
/* 0182D0 800176D0 0C0ADE0C */ jal atan2s
/* 0182D4 800176D4 E7AE00A4 */ swc1 $f14, 0xa4($sp)
/* 0182D8 800176D8 C7A000AC */ lwc1 $f0, 0xac($sp)
/* 0182DC 800176DC C7AE00A4 */ lwc1 $f14, 0xa4($sp)
/* 0182E0 800176E0 A6020026 */ sh $v0, 0x26($s0)
/* 0182E4 800176E4 46000202 */ mul.s $f8, $f0, $f0
/* 0182E8 800176E8 00000000 */ nop
/* 0182EC 800176EC 460E7102 */ mul.s $f4, $f14, $f14
/* 0182F0 800176F0 0C033850 */ jal sqrtf
/* 0182F4 800176F4 46044300 */ add.s $f12, $f8, $f4
/* 0182F8 800176F8 46000306 */ mov.s $f12, $f0
/* 0182FC 800176FC 0C0ADE0C */ jal atan2s
/* 018300 80017700 C7AE00A8 */ lwc1 $f14, 0xa8($sp)
/* 018304 80017704 A6020024 */ sh $v0, 0x24($s0)
/* 018308 80017708 A6000028 */ sh $zero, 0x28($s0)
/* 01830C 8001770C 8FBF0024 */ lw $ra, 0x24($sp)
/* 018310 80017710 8FB00020 */ lw $s0, 0x20($sp)
/* 018314 80017714 27BD00B8 */ addiu $sp, $sp, 0xb8
/* 018318 80017718 03E00008 */ jr $ra
/* 01831C 8001771C 00000000 */ nop
@@ -1,69 +0,0 @@
glabel func_80019FB4
/* 01ABB4 80019FB4 3C0F800E */ lui $t7, %hi(gControllerOne)
/* 01ABB8 80019FB8 8DEFC4BC */ lw $t7, %lo(gControllerOne)($t7)
/* 01ABBC 80019FBC 00047100 */ sll $t6, $a0, 4
/* 01ABC0 80019FC0 3C088016 */ lui $t0, %hi(D_801645D0) # $t0, 0x8016
/* 01ABC4 80019FC4 01CF1021 */ addu $v0, $t6, $t7
/* 01ABC8 80019FC8 94580006 */ lhu $t8, 6($v0)
/* 01ABCC 80019FCC 250845D0 */ addiu $t0, %lo(D_801645D0) # addiu $t0, $t0, 0x45d0
/* 01ABD0 80019FD0 00041880 */ sll $v1, $a0, 2
/* 01ABD4 80019FD4 33190002 */ andi $t9, $t8, 2
/* 01ABD8 80019FD8 13200005 */ beqz $t9, .L80019FF0
/* 01ABDC 80019FDC 00682821 */ addu $a1, $v1, $t0
/* 01ABE0 80019FE0 8CA90000 */ lw $t1, ($a1)
/* 01ABE4 80019FE4 252A0001 */ addiu $t2, $t1, 1
/* 01ABE8 80019FE8 10000005 */ b .L8001A000
/* 01ABEC 80019FEC ACAA0000 */ sw $t2, ($a1)
.L80019FF0:
/* 01ABF0 80019FF0 00041880 */ sll $v1, $a0, 2
/* 01ABF4 80019FF4 3C018016 */ lui $at, %hi(D_801645D0) # 0x8016
/* 01ABF8 80019FF8 00230821 */ addu $at, $at, $v1
/* 01ABFC 80019FFC AC2045D0 */ sw $zero, %lo(D_801645D0)($at) # 0x45d0($at)
.L8001A000:
/* 01AC00 8001A000 944B0006 */ lhu $t3, 6($v0)
/* 01AC04 8001A004 3C0D8016 */ lui $t5, %hi(D_801645E8) # $t5, 0x8016
/* 01AC08 8001A008 25AD45E8 */ addiu $t5, %lo(D_801645E8) # addiu $t5, $t5, 0x45e8
/* 01AC0C 8001A00C 316C0004 */ andi $t4, $t3, 4
/* 01AC10 8001A010 11800005 */ beqz $t4, .L8001A028
/* 01AC14 8001A014 006D2021 */ addu $a0, $v1, $t5
/* 01AC18 8001A018 8C8E0000 */ lw $t6, ($a0)
/* 01AC1C 8001A01C 25CF0001 */ addiu $t7, $t6, 1
/* 01AC20 8001A020 10000004 */ b .L8001A034
/* 01AC24 8001A024 AC8F0000 */ sw $t7, ($a0)
.L8001A028:
/* 01AC28 8001A028 3C018016 */ lui $at, %hi(D_801645E8) # 0x8016
/* 01AC2C 8001A02C 00230821 */ addu $at, $at, $v1
/* 01AC30 8001A030 AC2045E8 */ sw $zero, %lo(D_801645E8)($at) # 0x45e8($at)
.L8001A034:
/* 01AC34 8001A034 94580006 */ lhu $t8, 6($v0)
/* 01AC38 8001A038 3C088016 */ lui $t0, %hi(D_80164608) # $t0, 0x8016
/* 01AC3C 8001A03C 25084608 */ addiu $t0, %lo(D_80164608) # addiu $t0, $t0, 0x4608
/* 01AC40 8001A040 33190008 */ andi $t9, $t8, 8
/* 01AC44 8001A044 13200005 */ beqz $t9, .L8001A05C
/* 01AC48 8001A048 00682021 */ addu $a0, $v1, $t0
/* 01AC4C 8001A04C 8C890000 */ lw $t1, ($a0)
/* 01AC50 8001A050 252A0001 */ addiu $t2, $t1, 1
/* 01AC54 8001A054 10000004 */ b .L8001A068
/* 01AC58 8001A058 AC8A0000 */ sw $t2, ($a0)
.L8001A05C:
/* 01AC5C 8001A05C 3C018016 */ lui $at, %hi(D_80164608) # 0x8016
/* 01AC60 8001A060 00230821 */ addu $at, $at, $v1
/* 01AC64 8001A064 AC204608 */ sw $zero, %lo(D_80164608)($at) # 0x4608($at)
.L8001A068:
/* 01AC68 8001A068 944B0006 */ lhu $t3, 6($v0)
/* 01AC6C 8001A06C 3C0D8016 */ lui $t5, %hi(D_80164628) # $t5, 0x8016
/* 01AC70 8001A070 25AD4628 */ addiu $t5, %lo(D_80164628) # addiu $t5, $t5, 0x4628
/* 01AC74 8001A074 316C0001 */ andi $t4, $t3, 1
/* 01AC78 8001A078 11800005 */ beqz $t4, .L8001A090
/* 01AC7C 8001A07C 006D1021 */ addu $v0, $v1, $t5
/* 01AC80 8001A080 8C4E0000 */ lw $t6, ($v0)
/* 01AC84 8001A084 25CF0001 */ addiu $t7, $t6, 1
/* 01AC88 8001A088 03E00008 */ jr $ra
/* 01AC8C 8001A08C AC4F0000 */ sw $t7, ($v0)
.L8001A090:
/* 01AC90 8001A090 3C018016 */ lui $at, %hi(D_80164628) # 0x8016
/* 01AC94 8001A094 00230821 */ addu $at, $at, $v1
/* 01AC98 8001A098 AC204628 */ sw $zero, %lo(D_80164628)($at) # 0x4628($at)
/* 01AC9C 8001A09C 03E00008 */ jr $ra
/* 01ACA0 8001A0A0 00000000 */ nop
File diff suppressed because it is too large Load Diff
@@ -1,372 +0,0 @@
.section .late_rodata
glabel D_800ECFA8
.float 1300.0
glabel D_800ECFAC
.float -1300.0
.section .text
glabel update_player_path_completion
/* 009E9C 8000929C 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 009EA0 800092A0 AFBF0024 */ sw $ra, 0x24($sp)
/* 009EA4 800092A4 C4A0001C */ lwc1 $f0, 0x1c($a1)
/* 009EA8 800092A8 C4AC0014 */ lwc1 $f12, 0x14($a1)
/* 009EAC 800092AC C4AE0018 */ lwc1 $f14, 0x18($a1)
/* 009EB0 800092B0 3C0E8016 */ lui $t6, %hi(D_80163240) # $t6, 0x8016
/* 009EB4 800092B4 3C018016 */ lui $at, %hi(gIsPlayerNewPathPoint) # $at, 0x8016
/* 009EB8 800092B8 25CE3240 */ addiu $t6, %lo(D_80163240) # addiu $t6, $t6, 0x3240
/* 009EBC 800092BC 00041040 */ sll $v0, $a0, 1
/* 009EC0 800092C0 A42030E2 */ sh $zero, %lo(gIsPlayerNewPathPoint)($at)
/* 009EC4 800092C4 004E1821 */ addu $v1, $v0, $t6
/* 009EC8 800092C8 A4600000 */ sh $zero, ($v1)
/* 009ECC 800092CC 3C0F8016 */ lui $t7, %hi(gNearestPathPointByPlayerId) # $t7, 0x8016
/* 009ED0 800092D0 3C188016 */ lui $t8, %hi(gPlayerPathIndex) # $t8, 0x8016
/* 009ED4 800092D4 8F183448 */ lw $t8, %lo(gPlayerPathIndex)($t8)
/* 009ED8 800092D8 25EF4438 */ addiu $t7, %lo(gNearestPathPointByPlayerId) # addiu $t7, $t7, 0x4438
/* 009EDC 800092DC 004F4021 */ addu $t0, $v0, $t7
/* 009EE0 800092E0 44060000 */ mfc1 $a2, $f0
/* 009EE4 800092E4 85070000 */ lh $a3, ($t0)
/* 009EE8 800092E8 AFA80030 */ sw $t0, 0x30($sp)
/* 009EEC 800092EC AFA3002C */ sw $v1, 0x2c($sp)
/* 009EF0 800092F0 AFA50054 */ sw $a1, 0x54($sp)
/* 009EF4 800092F4 AFA40050 */ sw $a0, 0x50($sp)
/* 009EF8 800092F8 AFA40014 */ sw $a0, 0x14($sp)
/* 009EFC 800092FC AFA50010 */ sw $a1, 0x10($sp)
/* 009F00 80009300 E7A00044 */ swc1 $f0, 0x44($sp)
/* 009F04 80009304 E7AC004C */ swc1 $f12, 0x4c($sp)
/* 009F08 80009308 0C003349 */ jal update_player_path
/* 009F0C 8000930C AFB80018 */ sw $t8, 0x18($sp)
/* 009F10 80009310 3C058016 */ lui $a1, %hi(sSomeNearestPathPoint) # $a1, 0x8016
/* 009F14 80009314 24A52FCE */ addiu $a1, %lo(sSomeNearestPathPoint) # addiu $a1, $a1, 0x2fce
/* 009F18 80009318 A4A20000 */ sh $v0, ($a1)
/* 009F1C 8000931C 84A70000 */ lh $a3, ($a1)
/* 009F20 80009320 8FA80030 */ lw $t0, 0x30($sp)
/* 009F24 80009324 3C018016 */ lui $at, %hi(gCurrentNearestPathPoint) # $at, 0x8016
/* 009F28 80009328 A42730E0 */ sh $a3, %lo(gCurrentNearestPathPoint)($at)
/* 009F2C 8000932C 95190000 */ lhu $t9, ($t0)
/* 009F30 80009330 8FA40050 */ lw $a0, 0x50($sp)
/* 009F34 80009334 C7AC004C */ lwc1 $f12, 0x4c($sp)
/* 009F38 80009338 10F9000C */ beq $a3, $t9, .L8000936C
/* 009F3C 8000933C 00E01825 */ move $v1, $a3
/* 009F40 80009340 A5030000 */ sh $v1, ($t0)
/* 009F44 80009344 24090001 */ li $t1, 1
/* 009F48 80009348 3C018016 */ lui $at, %hi(gIsPlayerNewPathPoint) # $at, 0x8016
/* 009F4C 8000934C A42930E2 */ sh $t1, %lo(gIsPlayerNewPathPoint)($at)
/* 009F50 80009350 AFA40050 */ sw $a0, 0x50($sp)
/* 009F54 80009354 0C0023CE */ jal update_player_completion
/* 009F58 80009358 E7AC004C */ swc1 $f12, 0x4c($sp)
/* 009F5C 8000935C 3C078016 */ lui $a3, %hi(sSomeNearestPathPoint) # $a3, 0x8016
/* 009F60 80009360 84E72FCE */ lh $a3, %lo(sSomeNearestPathPoint)($a3)
/* 009F64 80009364 8FA40050 */ lw $a0, 0x50($sp)
/* 009F68 80009368 C7AC004C */ lwc1 $f12, 0x4c($sp)
.L8000936C:
/* 009F6C 8000936C 3C02800E */ lui $v0, %hi(gCurrentCourseId)
/* 009F70 80009370 8442C5A0 */ lh $v0, %lo(gCurrentCourseId)($v0)
/* 009F74 80009374 24010014 */ li $at, 20
/* 009F78 80009378 30E5FFFF */ andi $a1, $a3, 0xffff
/* 009F7C 8000937C 14410005 */ bne $v0, $at, .L80009394
/* 009F80 80009380 3C068016 */ lui $a2, %hi(gPlayerPathIndex) # $a2, 0x8016
/* 009F84 80009384 0C002E57 */ jal update_player_position_factor
/* 009F88 80009388 8CC63448 */ lw $a2, %lo(gPlayerPathIndex)($a2)
/* 009F8C 8000938C 10000111 */ b .L800097D4
/* 009F90 80009390 8FBF0024 */ lw $ra, 0x24($sp)
.L80009394:
/* 009F94 80009394 28E10014 */ slti $at, $a3, 0x14
/* 009F98 80009398 1420000B */ bnez $at, .L800093C8
/* 009F9C 8000939C 3C0A8016 */ lui $t2, %hi(gPlayerPathIndex) # $t2, 0x8016
/* 009FA0 800093A0 8D4A3448 */ lw $t2, %lo(gPlayerPathIndex)($t2)
/* 009FA4 800093A4 3C0C8016 */ lui $t4, %hi(gPathCountByPathIndex) # 0x8016
/* 009FA8 800093A8 000A5840 */ sll $t3, $t2, 1
/* 009FAC 800093AC 018B6021 */ addu $t4, $t4, $t3
/* 009FB0 800093B0 958C45C8 */ lhu $t4, %lo(gPathCountByPathIndex)($t4) # 0x45c8($t4)
/* 009FB4 800093B4 258DFFEC */ addiu $t5, $t4, -0x14
/* 009FB8 800093B8 01A7082A */ slt $at, $t5, $a3
/* 009FBC 800093BC 14200002 */ bnez $at, .L800093C8
/* 009FC0 800093C0 2401000B */ li $at, 11
/* 009FC4 800093C4 144100BC */ bne $v0, $at, .L800096B8
.L800093C8:
/* 009FC8 800093C8 2401000B */ li $at, 11
/* 009FCC 800093CC 00001825 */ move $v1, $zero
/* 009FD0 800093D0 1441004A */ bne $v0, $at, .L800094FC
/* 009FD4 800093D4 00004025 */ move $t0, $zero
/* 009FD8 800093D8 8FAE0054 */ lw $t6, 0x54($sp)
/* 009FDC 800093DC 3C028016 */ lui $v0, %hi(D_801634EC) # $v0, 0x8016
/* 009FE0 800093E0 244234EC */ addiu $v0, %lo(D_801634EC) # addiu $v0, $v0, 0x34ec
/* 009FE4 800093E4 A4400000 */ sh $zero, ($v0)
/* 009FE8 800093E8 8DCF00BC */ lw $t7, 0xbc($t6)
/* 009FEC 800093EC 24190001 */ li $t9, 1
/* 009FF0 800093F0 3C09800E */ lui $t1, %hi(gIsMirrorMode)
/* 009FF4 800093F4 31F80200 */ andi $t8, $t7, 0x200
/* 009FF8 800093F8 13000002 */ beqz $t8, .L80009404
/* 009FFC 800093FC 3C01C396 */ li $at, 0xC3960000 # -300.000000
/* 00A000 80009400 A4590000 */ sh $t9, ($v0)
.L80009404:
/* 00A004 80009404 8D29C604 */ lw $t1, %lo(gIsMirrorMode)($t1)
/* 00A008 80009408 51200020 */ beql $t1, $zero, .L8000948C
/* 00A00C 8000940C 44814000 */ mtc1 $at, $f8
/* 00A010 80009410 3C014396 */ li $at, 0x43960000 # 300.000000
/* 00A014 80009414 44812000 */ mtc1 $at, $f4
/* 00A018 80009418 3C01800F */ lui $at, %hi(D_800ECFA8) # -0.000000
/* 00A01C 8000941C 00043880 */ sll $a3, $a0, 2
/* 00A020 80009420 4604603C */ c.lt.s $f12, $f4
/* 00A024 80009424 00000000 */ nop
/* 00A028 80009428 45000004 */ bc1f .L8000943C
/* 00A02C 8000942C 00000000 */ nop
/* 00A030 80009430 24030001 */ li $v1, 1
/* 00A034 80009434 10000034 */ b .L80009508
/* 00A038 80009438 24080001 */ li $t0, 1
.L8000943C:
/* 00A03C 8000943C C426CFA8 */ lwc1 $f6, %lo(D_800ECFA8)($at)
/* 00A040 80009440 00045080 */ sll $t2, $a0, 2
/* 00A044 80009444 3C0B8016 */ lui $t3, %hi(gLapCountByPlayerId) # 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(gLapCountByPlayerId)($t3) # 0x4390($t3)
/* 00A05C 8000945C 29610002 */ slti $at, $t3, 2
/* 00A060 80009460 10200024 */ beqz $at, .L800094F4
/* 00A064 80009464 00000000 */ nop
/* 00A068 80009468 844C0000 */ lh $t4, ($v0)
/* 00A06C 8000946C 24010001 */ li $at, 1
/* 00A070 80009470 00043880 */ sll $a3, $a0, 2
/* 00A074 80009474 1581001F */ bne $t4, $at, .L800094F4
/* 00A078 80009478 00000000 */ nop
/* 00A07C 8000947C 24030001 */ li $v1, 1
/* 00A080 80009480 10000021 */ b .L80009508
/* 00A084 80009484 24080001 */ li $t0, 1
/* 00A088 80009488 44814000 */ mtc1 $at, $f8
.L8000948C:
/* 00A08C 8000948C 3C01800F */ lui $at, %hi(D_800ECFAC) # $at, 0x800f
/* 00A090 80009490 00043880 */ sll $a3, $a0, 2
/* 00A094 80009494 460C403C */ c.lt.s $f8, $f12
/* 00A098 80009498 00000000 */ nop
/* 00A09C 8000949C 45000004 */ bc1f .L800094B0
/* 00A0A0 800094A0 00000000 */ nop
/* 00A0A4 800094A4 24030001 */ li $v1, 1
/* 00A0A8 800094A8 10000017 */ b .L80009508
/* 00A0AC 800094AC 24080001 */ li $t0, 1
.L800094B0:
/* 00A0B0 800094B0 C42ACFAC */ lwc1 $f10, %lo(D_800ECFAC)($at)
/* 00A0B4 800094B4 00046880 */ sll $t5, $a0, 2
/* 00A0B8 800094B8 3C0E8016 */ lui $t6, %hi(gLapCountByPlayerId) # 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(gLapCountByPlayerId)($t6) # 0x4390($t6)
/* 00A0D0 800094D0 29C10002 */ slti $at, $t6, 2
/* 00A0D4 800094D4 10200007 */ beqz $at, .L800094F4
/* 00A0D8 800094D8 00000000 */ nop
/* 00A0DC 800094DC 844F0000 */ lh $t7, ($v0)
/* 00A0E0 800094E0 24010001 */ li $at, 1
/* 00A0E4 800094E4 15E10003 */ bne $t7, $at, .L800094F4
/* 00A0E8 800094E8 00000000 */ nop
/* 00A0EC 800094EC 24030001 */ li $v1, 1
/* 00A0F0 800094F0 24080001 */ li $t0, 1
.L800094F4:
/* 00A0F4 800094F4 10000004 */ b .L80009508
/* 00A0F8 800094F8 00043880 */ sll $a3, $a0, 2
.L800094FC:
/* 00A0FC 800094FC 24030001 */ li $v1, 1
/* 00A100 80009500 24080001 */ li $t0, 1
/* 00A104 80009504 00043880 */ sll $a3, $a0, 2
.L80009508:
/* 00A108 80009508 3C018016 */ lui $at, %hi(gPreviousPlayerZ)
/* 00A10C 8000950C 00270821 */ addu $at, $at, $a3
/* 00A110 80009510 C4303450 */ lwc1 $f16, %lo(gPreviousPlayerZ)($at)
/* 00A114 80009514 3C018016 */ lui $at, %hi(gPathStartZ) # $at, 0x8016
/* 00A118 80009518 10600052 */ beqz $v1, .L80009664
/* 00A11C 8000951C E7B00038 */ swc1 $f16, 0x38($sp)
/* 00A120 80009520 C420344C */ lwc1 $f0, %lo(gPathStartZ)($at)
/* 00A124 80009524 C7B20044 */ lwc1 $f18, 0x44($sp)
/* 00A128 80009528 C7A40038 */ lwc1 $f4, 0x38($sp)
/* 00A12C 8000952C 4600903E */ c.le.s $f18, $f0
/* 00A130 80009530 00000000 */ nop
/* 00A134 80009534 4500004B */ bc1f .L80009664
/* 00A138 80009538 00000000 */ nop
/* 00A13C 8000953C 4604003C */ c.lt.s $f0, $f4
/* 00A140 80009540 3C188016 */ lui $t8, %hi(gLapCountByPlayerId) # $t8, 0x8016
/* 00A144 80009544 27184390 */ addiu $t8, %lo(gLapCountByPlayerId) # addiu $t8, $t8, 0x4390
/* 00A148 80009548 00F81021 */ addu $v0, $a3, $t8
/* 00A14C 8000954C 45000045 */ bc1f .L80009664
/* 00A150 80009550 00000000 */ nop
/* 00A154 80009554 8C590000 */ lw $t9, ($v0)
/* 00A158 80009558 3C0A800E */ lui $t2, %hi(gModeSelection)
/* 00A15C 8000955C 24010005 */ li $at, 5
/* 00A160 80009560 27290001 */ addiu $t1, $t9, 1
/* 00A164 80009564 AC490000 */ sw $t1, ($v0)
/* 00A168 80009568 8D4AC53C */ lw $t2, %lo(gModeSelection)($t2)
/* 00A16C 8000956C 5540001A */ bnel $t2, $zero, .L800095D8
/* 00A170 80009570 8FAD002C */ lw $t5, 0x2c($sp)
/* 00A174 80009574 15210017 */ bne $t1, $at, .L800095D4
/* 00A178 80009578 3C0C8016 */ lui $t4, %hi(gGPCurrentRaceRankByPlayerIdDup) # 0x8016
/* 00A17C 8000957C 01876021 */ addu $t4, $t4, $a3
/* 00A180 80009580 8D8C4408 */ lw $t4, %lo(gGPCurrentRaceRankByPlayerIdDup)($t4) # 0x4408($t4)
/* 00A184 80009584 24010007 */ li $at, 7
/* 00A188 80009588 3C028016 */ lui $v0, %hi(gLapCountByPlayerId) # $v0, 0x8016
/* 00A18C 8000958C 15810011 */ bne $t4, $at, .L800095D4
/* 00A190 80009590 24424390 */ addiu $v0, %lo(gLapCountByPlayerId) # addiu $v0, $v0, 0x4390
/* 00A194 80009594 3C038016 */ lui $v1, %hi(gLapCountByPlayerId + 0x20) # $v1, 0x8016
/* 00A198 80009598 246343B0 */ addiu $v1, %lo(gLapCountByPlayerId + 0x20) # addiu $v1, $v1, 0x43b0
.L8000959C:
/* 00A19C 8000959C 8C4D0000 */ lw $t5, ($v0)
/* 00A1A0 800095A0 8C4F0004 */ lw $t7, 4($v0)
/* 00A1A4 800095A4 8C590008 */ lw $t9, 8($v0)
/* 00A1A8 800095A8 8C4A000C */ lw $t2, 0xc($v0)
/* 00A1AC 800095AC 24420010 */ addiu $v0, $v0, 0x10
/* 00A1B0 800095B0 25AEFFFF */ addiu $t6, $t5, -1
/* 00A1B4 800095B4 25F8FFFF */ addiu $t8, $t7, -1
/* 00A1B8 800095B8 2729FFFF */ addiu $t1, $t9, -1
/* 00A1BC 800095BC 254BFFFF */ addiu $t3, $t2, -1
/* 00A1C0 800095C0 AC4BFFFC */ sw $t3, -4($v0)
/* 00A1C4 800095C4 AC49FFF8 */ sw $t1, -8($v0)
/* 00A1C8 800095C8 AC58FFF4 */ sw $t8, -0xc($v0)
/* 00A1CC 800095CC 1443FFF3 */ bne $v0, $v1, .L8000959C
/* 00A1D0 800095D0 AC4EFFF0 */ sw $t6, -0x10($v0)
.L800095D4:
/* 00A1D4 800095D4 8FAD002C */ lw $t5, 0x2c($sp)
.L800095D8:
/* 00A1D8 800095D8 240C0001 */ li $t4, 1
/* 00A1DC 800095DC A5AC0000 */ sh $t4, ($t5)
/* 00A1E0 800095E0 A7A80034 */ sh $t0, 0x34($sp)
/* 00A1E4 800095E4 AFA70030 */ sw $a3, 0x30($sp)
/* 00A1E8 800095E8 0C0023CE */ jal update_player_completion
/* 00A1EC 800095EC AFA40050 */ sw $a0, 0x50($sp)
/* 00A1F0 800095F0 0C0046B9 */ jal reset_cpu_behaviour
/* 00A1F4 800095F4 8FA40050 */ lw $a0, 0x50($sp)
/* 00A1F8 800095F8 8FA40050 */ lw $a0, 0x50($sp)
/* 00A1FC 800095FC 3C0F8016 */ lui $t7, %hi(D_8016348C) # $t7, 0x8016
/* 00A200 80009600 85EF348C */ lh $t7, %lo(D_8016348C)($t7)
/* 00A204 80009604 3C018016 */ lui $at, %hi(cpu_ItemStrategy + 0x6) # 0x8016
/* 00A208 80009608 00047100 */ sll $t6, $a0, 4
/* 00A20C 8000960C 002E0821 */ addu $at, $at, $t6
/* 00A210 80009610 8FA70030 */ lw $a3, 0x30($sp)
/* 00A214 80009614 87A80034 */ lh $t0, 0x34($sp)
/* 00A218 80009618 15E00012 */ bnez $t7, .L80009664
/* 00A21C 8000961C A42042DE */ sh $zero, %lo(cpu_ItemStrategy + 0x6)($at) # 0x42de($at)
/* 00A220 80009620 8FB80054 */ lw $t8, 0x54($sp)
/* 00A224 80009624 8FA50038 */ lw $a1, 0x38($sp)
/* 00A228 80009628 8FA60044 */ lw $a2, 0x44($sp)
/* 00A22C 8000962C 97190000 */ lhu $t9, ($t8)
/* 00A230 80009630 33290800 */ andi $t1, $t9, 0x800
/* 00A234 80009634 1520000B */ bnez $t1, .L80009664
/* 00A238 80009638 00000000 */ nop
/* 00A23C 8000963C AFA40050 */ sw $a0, 0x50($sp)
/* 00A240 80009640 AFA70030 */ sw $a3, 0x30($sp)
/* 00A244 80009644 0C002496 */ jal func_80009258
/* 00A248 80009648 A7A80034 */ sh $t0, 0x34($sp)
/* 00A24C 8000964C 8FA70030 */ lw $a3, 0x30($sp)
/* 00A250 80009650 3C018016 */ lui $at, %hi(gTimePlayerLastTouchedFinishLine)
/* 00A254 80009654 8FA40050 */ lw $a0, 0x50($sp)
/* 00A258 80009658 00270821 */ addu $at, $at, $a3
/* 00A25C 8000965C E420F898 */ swc1 $f0, %lo(gTimePlayerLastTouchedFinishLine)($at)
/* 00A260 80009660 87A80034 */ lh $t0, 0x34($sp)
.L80009664:
/* 00A264 80009664 11000014 */ beqz $t0, .L800096B8
/* 00A268 80009668 3C018016 */ lui $at, %hi(gPathStartZ) # $at, 0x8016
/* 00A26C 8000966C C420344C */ lwc1 $f0, %lo(gPathStartZ)($at)
/* 00A270 80009670 C7A60038 */ lwc1 $f6, 0x38($sp)
/* 00A274 80009674 C7A80044 */ lwc1 $f8, 0x44($sp)
/* 00A278 80009678 4600303E */ c.le.s $f6, $f0
/* 00A27C 8000967C 00000000 */ nop
/* 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(gLapCountByPlayerId) # $t2, 0x8016
/* 00A290 80009690 254A4390 */ addiu $t2, %lo(gLapCountByPlayerId) # addiu $t2, $t2, 0x4390
/* 00A294 80009694 00EA1021 */ addu $v0, $a3, $t2
/* 00A298 80009698 45020008 */ bc1fl .L800096BC
/* 00A29C 8000969C C7AA0044 */ lwc1 $f10, 0x44($sp)
/* 00A2A0 800096A0 8C4B0000 */ lw $t3, ($v0)
/* 00A2A4 800096A4 AFA40050 */ sw $a0, 0x50($sp)
/* 00A2A8 800096A8 256CFFFF */ addiu $t4, $t3, -1
/* 00A2AC 800096AC 0C0023CE */ jal update_player_completion
/* 00A2B0 800096B0 AC4C0000 */ sw $t4, ($v0)
/* 00A2B4 800096B4 8FA40050 */ lw $a0, 0x50($sp)
.L800096B8:
/* 00A2B8 800096B8 C7AA0044 */ lwc1 $f10, 0x44($sp)
.L800096BC:
/* 00A2BC 800096BC 00046880 */ sll $t5, $a0, 2
/* 00A2C0 800096C0 3C018016 */ lui $at, %hi(gPreviousPlayerZ)
/* 00A2C4 800096C4 3C0E800E */ lui $t6, %hi(gCurrentCourseId)
/* 00A2C8 800096C8 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
/* 00A2CC 800096CC 002D0821 */ addu $at, $at, $t5
/* 00A2D0 800096D0 E42A3450 */ swc1 $f10, %lo(gPreviousPlayerZ)($at)
/* 00A2D4 800096D4 24010004 */ li $at, 4
/* 00A2D8 800096D8 15C10013 */ bne $t6, $at, .L80009728
/* 00A2DC 800096DC 3C0F8016 */ lui $t7, %hi(gIsPlayerNewPathPoint) # $t7, 0x8016
/* 00A2E0 800096E0 85EF30E2 */ lh $t7, %lo(gIsPlayerNewPathPoint)($t7)
/* 00A2E4 800096E4 24010001 */ li $at, 1
/* 00A2E8 800096E8 55E10010 */ bnel $t7, $at, .L8000972C
/* 00A2EC 800096EC 8FAA0054 */ lw $t2, 0x54($sp)
/* 00A2F0 800096F0 0C002400 */ jal yoshi_valley_cpu_path
/* 00A2F4 800096F4 AFA40050 */ sw $a0, 0x50($sp)
/* 00A2F8 800096F8 8FB80054 */ lw $t8, 0x54($sp)
/* 00A2FC 800096FC 8FA40050 */ lw $a0, 0x50($sp)
/* 00A300 80009700 8FA50054 */ lw $a1, 0x54($sp)
/* 00A304 80009704 97020000 */ lhu $v0, ($t8)
/* 00A308 80009708 30594000 */ andi $t9, $v0, 0x4000
/* 00A30C 8000970C 13200003 */ beqz $t9, .L8000971C
/* 00A310 80009710 30491000 */ andi $t1, $v0, 0x1000
/* 00A314 80009714 51200005 */ beql $t1, $zero, .L8000972C
/* 00A318 80009718 8FAA0054 */ lw $t2, 0x54($sp)
.L8000971C:
/* 00A31C 8000971C 0C00243C */ jal update_cpu_path_completion
/* 00A320 80009720 AFA40050 */ sw $a0, 0x50($sp)
/* 00A324 80009724 8FA40050 */ lw $a0, 0x50($sp)
.L80009728:
/* 00A328 80009728 8FAA0054 */ lw $t2, 0x54($sp)
.L8000972C:
/* 00A32C 8000972C 3C068016 */ lui $a2, %hi(gPlayerPathIndex) # 0x8016
/* 00A330 80009730 3C038016 */ lui $v1, %hi(sSomeNearestPathPoint) # 0x8016
/* 00A334 80009734 95420000 */ lhu $v0, ($t2)
/* 00A338 80009738 304B4000 */ andi $t3, $v0, 0x4000
/* 00A33C 8000973C 11600020 */ beqz $t3, .L800097C0
/* 00A340 80009740 304C1000 */ andi $t4, $v0, 0x1000
/* 00A344 80009744 1580001E */ bnez $t4, .L800097C0
/* 00A348 80009748 01402825 */ move $a1, $t2
/* 00A34C 8000974C 0C001974 */ jal detect_wrong_player_direction
/* 00A350 80009750 AFA40050 */ sw $a0, 0x50($sp)
/* 00A354 80009754 3C0D800E */ lui $t5, %hi(gModeSelection)
/* 00A358 80009758 8DADC53C */ lw $t5, %lo(gModeSelection)($t5)
/* 00A35C 8000975C 8FA40050 */ lw $a0, 0x50($sp)
/* 00A360 80009760 3C068016 */ lui $a2, %hi(gPlayerPathIndex) # $a2, 0x8016
/* 00A364 80009764 15A00013 */ bnez $t5, .L800097B4
/* 00A368 80009768 3C038016 */ lui $v1, %hi(sSomeNearestPathPoint) # $v1, 0x8016
/* 00A36C 8000976C 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019
/* 00A370 80009770 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6)
/* 00A374 80009774 24010002 */ li $at, 2
/* 00A378 80009778 15C1000E */ bne $t6, $at, .L800097B4
/* 00A37C 8000977C 00000000 */ nop
/* 00A380 80009780 1480000C */ bnez $a0, .L800097B4
/* 00A384 80009784 3C0F8016 */ lui $t7, %hi(gGPCurrentRaceRankByPlayerIdDup) # $t7, 0x8016
/* 00A388 80009788 3C188016 */ lui $t8, %hi(gGPCurrentRaceRankByPlayerIdDup + 0x4) # $t8, 0x8016
/* 00A38C 8000978C 8F18440C */ lw $t8, %lo(gGPCurrentRaceRankByPlayerIdDup + 0x4)($t8)
/* 00A390 80009790 8DEF4408 */ lw $t7, %lo(gGPCurrentRaceRankByPlayerIdDup)($t7)
/* 00A394 80009794 24190001 */ li $t9, 1
/* 00A398 80009798 01F8082A */ slt $at, $t7, $t8
/* 00A39C 8000979C 10200003 */ beqz $at, .L800097AC
/* 00A3A0 800097A0 3C018016 */ lui $at, %hi(gBestRankedHumanPlayer) # $at, 0x8016
/* 00A3A4 800097A4 10000003 */ b .L800097B4
/* 00A3A8 800097A8 A4203478 */ sh $zero, %lo(gBestRankedHumanPlayer)($at)
.L800097AC:
/* 00A3AC 800097AC 3C018016 */ lui $at, %hi(gBestRankedHumanPlayer) # $at, 0x8016
/* 00A3B0 800097B0 A4393478 */ sh $t9, %lo(gBestRankedHumanPlayer)($at)
.L800097B4:
/* 00A3B4 800097B4 8CC63448 */ lw $a2, %lo(gPlayerPathIndex)($a2)
/* 00A3B8 800097B8 10000003 */ b .L800097C8
/* 00A3BC 800097BC 84632FCE */ lh $v1, %lo(sSomeNearestPathPoint)($v1)
.L800097C0:
/* 00A3C0 800097C0 8CC63448 */ lw $a2, %lo(gPlayerPathIndex)($a2) # 0x3448($a2)
/* 00A3C4 800097C4 84632FCE */ lh $v1, %lo(sSomeNearestPathPoint)($v1)
.L800097C8:
/* 00A3C8 800097C8 0C002E57 */ jal update_player_position_factor
/* 00A3CC 800097CC 3065FFFF */ andi $a1, $v1, 0xffff
/* 00A3D0 800097D0 8FBF0024 */ lw $ra, 0x24($sp)
.L800097D4:
/* 00A3D4 800097D4 27BD0050 */ addiu $sp, $sp, 0x50
/* 00A3D8 800097D8 03E00008 */ jr $ra
/* 00A3DC 800097DC 00000000 */ nop
File diff suppressed because it is too large Load Diff
@@ -1,391 +0,0 @@
glabel func_80096CD8
/* 0978D8 80096CD8 27BDFF18 */ addiu $sp, $sp, -0xe8
/* 0978DC 80096CDC AFBF0054 */ sw $ra, 0x54($sp)
/* 0978E0 80096CE0 AFB40040 */ sw $s4, 0x40($sp)
/* 0978E4 80096CE4 AFB20038 */ sw $s2, 0x38($sp)
/* 0978E8 80096CE8 AFB00030 */ sw $s0, 0x30($sp)
/* 0978EC 80096CEC 2CE10002 */ sltiu $at, $a3, 2
/* 0978F0 80096CF0 00808025 */ move $s0, $a0
/* 0978F4 80096CF4 00C09025 */ move $s2, $a2
/* 0978F8 80096CF8 00A0A025 */ move $s4, $a1
/* 0978FC 80096CFC AFBE0050 */ sw $fp, 0x50($sp)
/* 097900 80096D00 AFB7004C */ sw $s7, 0x4c($sp)
/* 097904 80096D04 AFB60048 */ sw $s6, 0x48($sp)
/* 097908 80096D08 AFB50044 */ sw $s5, 0x44($sp)
/* 09790C 80096D0C AFB3003C */ sw $s3, 0x3c($sp)
/* 097910 80096D10 AFB10034 */ sw $s1, 0x34($sp)
/* 097914 80096D14 AFA700F4 */ sw $a3, 0xf4($sp)
/* 097918 80096D18 241F0001 */ li $ra, 1
/* 09791C 80096D1C AFA000C8 */ sw $zero, 0xc8($sp)
/* 097920 80096D20 AFA000C4 */ sw $zero, 0xc4($sp)
/* 097924 80096D24 14200007 */ bnez $at, .L80096D44
/* 097928 80096D28 00E07025 */ move $t6, $a3
/* 09792C 80096D2C 8FB800F4 */ lw $t8, 0xf4($sp)
.L80096D30:
/* 097930 80096D30 001F7840 */ sll $t7, $ra, 1
/* 097934 80096D34 01E0F825 */ move $ra, $t7
/* 097938 80096D38 01F8082B */ sltu $at, $t7, $t8
/* 09793C 80096D3C 5420FFFC */ bnel $at, $zero, .L80096D30
/* 097940 80096D40 8FB800F4 */ lw $t8, 0xf4($sp)
.L80096D44:
/* 097944 80096D44 24190400 */ li $t9, 1024
/* 097948 80096D48 033F001A */ div $zero, $t9, $ra
/* 09794C 80096D4C 00001012 */ mflo $v0
/* 097950 80096D50 8FA500F8 */ lw $a1, 0xf8($sp)
/* 097954 80096D54 17E00002 */ bnez $ra, .L80096D60
/* 097958 80096D58 00000000 */ nop
/* 09795C 80096D5C 0007000D */ break 7
.L80096D60:
/* 097960 80096D60 2401FFFF */ li $at, -1
/* 097964 80096D64 17E10004 */ bne $ra, $at, .L80096D78
/* 097968 80096D68 3C018000 */ lui $at, 0x8000
/* 09796C 80096D6C 17210002 */ bne $t9, $at, .L80096D78
/* 097970 80096D70 00000000 */ nop
/* 097974 80096D74 0006000D */ break 6
.L80096D78:
/* 097978 80096D78 AFA200CC */ sw $v0, 0xcc($sp)
/* 09797C 80096D7C 04410003 */ bgez $v0, .L80096D8C
/* 097980 80096D80 00027043 */ sra $t6, $v0, 1
/* 097984 80096D84 24410001 */ addiu $at, $v0, 1
/* 097988 80096D88 00017043 */ sra $t6, $at, 1
.L80096D8C:
/* 09798C 80096D8C 00AE082B */ sltu $at, $a1, $t6
/* 097990 80096D90 1020000F */ beqz $at, .L80096DD0
/* 097994 80096D94 8FA200CC */ lw $v0, 0xcc($sp)
/* 097998 80096D98 04410003 */ bgez $v0, .L80096DA8
/* 09799C 80096D9C 00027843 */ sra $t7, $v0, 1
/* 0979A0 80096DA0 24410001 */ addiu $at, $v0, 1
/* 0979A4 80096DA4 00017843 */ sra $t7, $at, 1
.L80096DA8:
/* 0979A8 80096DA8 01E01025 */ move $v0, $t7
/* 0979AC 80096DAC 00401825 */ move $v1, $v0
.L80096DB0:
/* 0979B0 80096DB0 04610003 */ bgez $v1, .L80096DC0
/* 0979B4 80096DB4 00031043 */ sra $v0, $v1, 1
/* 0979B8 80096DB8 24610001 */ addiu $at, $v1, 1
/* 0979BC 80096DBC 00011043 */ sra $v0, $at, 1
.L80096DC0:
/* 0979C0 80096DC0 00A2082B */ sltu $at, $a1, $v0
/* 0979C4 80096DC4 5420FFFA */ bnel $at, $zero, .L80096DB0
/* 0979C8 80096DC8 00401825 */ move $v1, $v0
/* 0979CC 80096DCC AFA300CC */ sw $v1, 0xcc($sp)
.L80096DD0:
/* 0979D0 80096DD0 2BE10002 */ slti $at, $ra, 2
/* 0979D4 80096DD4 1420000B */ bnez $at, .L80096E04
/* 0979D8 80096DD8 03E08825 */ move $s1, $ra
.L80096DDC:
/* 0979DC 80096DDC 8FB900C8 */ lw $t9, 0xc8($sp)
/* 0979E0 80096DE0 06210003 */ bgez $s1, .L80096DF0
/* 0979E4 80096DE4 0011C043 */ sra $t8, $s1, 1
/* 0979E8 80096DE8 26210001 */ addiu $at, $s1, 1
/* 0979EC 80096DEC 0001C043 */ sra $t8, $at, 1
.L80096DF0:
/* 0979F0 80096DF0 2B010002 */ slti $at, $t8, 2
/* 0979F4 80096DF4 272E0001 */ addiu $t6, $t9, 1
/* 0979F8 80096DF8 03008825 */ move $s1, $t8
/* 0979FC 80096DFC 1020FFF7 */ beqz $at, .L80096DDC
/* 097A00 80096E00 AFAE00C8 */ sw $t6, 0xc8($sp)
.L80096E04:
/* 097A04 80096E04 8FB100CC */ lw $s1, 0xcc($sp)
/* 097A08 80096E08 2A210002 */ slti $at, $s1, 2
/* 097A0C 80096E0C 1420000B */ bnez $at, .L80096E3C
/* 097A10 80096E10 00000000 */ nop
.L80096E14:
/* 097A14 80096E14 8FB900C4 */ lw $t9, 0xc4($sp)
/* 097A18 80096E18 06210003 */ bgez $s1, .L80096E28
/* 097A1C 80096E1C 0011C043 */ sra $t8, $s1, 1
/* 097A20 80096E20 26210001 */ addiu $at, $s1, 1
/* 097A24 80096E24 0001C043 */ sra $t8, $at, 1
.L80096E28:
/* 097A28 80096E28 2B010002 */ slti $at, $t8, 2
/* 097A2C 80096E2C 272E0001 */ addiu $t6, $t9, 1
/* 097A30 80096E30 03008825 */ move $s1, $t8
/* 097A34 80096E34 1020FFF7 */ beqz $at, .L80096E14
/* 097A38 80096E38 AFAE00C4 */ sw $t6, 0xc4($sp)
.L80096E3C:
/* 097A3C 80096E3C 06810006 */ bgez $s4, .L80096E58
/* 097A40 80096E40 8FB900F4 */ lw $t9, 0xf4($sp)
/* 097A44 80096E44 8FAF00F4 */ lw $t7, 0xf4($sp)
/* 097A48 80096E48 01F4C023 */ subu $t8, $t7, $s4
/* 097A4C 80096E4C AFB800F4 */ sw $t8, 0xf4($sp)
/* 097A50 80096E50 10000007 */ b .L80096E70
/* 097A54 80096E54 0000A025 */ move $s4, $zero
.L80096E58:
/* 097A58 80096E58 02997021 */ addu $t6, $s4, $t9
/* 097A5C 80096E5C 2DC10141 */ sltiu $at, $t6, 0x141
/* 097A60 80096E60 14200003 */ bnez $at, .L80096E70
/* 097A64 80096E64 240F0140 */ li $t7, 320
/* 097A68 80096E68 01F4C023 */ subu $t8, $t7, $s4
/* 097A6C 80096E6C AFB800F4 */ sw $t8, 0xf4($sp)
.L80096E70:
/* 097A70 80096E70 06410004 */ bgez $s2, .L80096E84
/* 097A74 80096E74 8FAF00F4 */ lw $t7, 0xf4($sp)
/* 097A78 80096E78 00B22823 */ subu $a1, $a1, $s2
/* 097A7C 80096E7C 10000006 */ b .L80096E98
/* 097A80 80096E80 00009025 */ move $s2, $zero
.L80096E84:
/* 097A84 80096E84 0245C821 */ addu $t9, $s2, $a1
/* 097A88 80096E88 2F2100F1 */ sltiu $at, $t9, 0xf1
/* 097A8C 80096E8C 14200002 */ bnez $at, .L80096E98
/* 097A90 80096E90 240E00F0 */ li $t6, 240
/* 097A94 80096E94 01D22823 */ subu $a1, $t6, $s2
.L80096E98:
/* 097A98 80096E98 15E00003 */ bnez $t7, .L80096EA8
/* 097A9C 80096E9C 00000000 */ nop
/* 097AA0 80096EA0 100000E8 */ b .L80097244
/* 097AA4 80096EA4 02001025 */ move $v0, $s0
.L80096EA8:
/* 097AA8 80096EA8 14A00003 */ bnez $a1, .L80096EB8
/* 097AAC 80096EAC 24040064 */ li $a0, 100
/* 097AB0 80096EB0 100000E4 */ b .L80097244
/* 097AB4 80096EB4 02001025 */ move $v0, $s0
.L80096EB8:
/* 097AB8 80096EB8 8FB800F4 */ lw $t8, 0xf4($sp)
/* 097ABC 80096EBC AFBF00D0 */ sw $ra, 0xd0($sp)
/* 097AC0 80096EC0 02459821 */ addu $s3, $s2, $a1
/* 097AC4 80096EC4 02986021 */ addu $t4, $s4, $t8
/* 097AC8 80096EC8 0C0ADF8D */ jal random_int
/* 097ACC 80096ECC AFAC0084 */ sw $t4, 0x84($sp)
/* 097AD0 80096ED0 8FA70084 */ lw $a3, 0x84($sp)
/* 097AD4 80096ED4 00408825 */ move $s1, $v0
/* 097AD8 80096ED8 02002025 */ move $a0, $s0
/* 097ADC 80096EDC 02802825 */ move $a1, $s4
/* 097AE0 80096EE0 02403025 */ move $a2, $s2
/* 097AE4 80096EE4 AFB30010 */ sw $s3, 0x10($sp)
/* 097AE8 80096EE8 AFA00014 */ sw $zero, 0x14($sp)
/* 097AEC 80096EEC AFA00018 */ sw $zero, 0x18($sp)
/* 097AF0 80096EF0 AFA0001C */ sw $zero, 0x1c($sp)
/* 097AF4 80096EF4 0C02637E */ jal draw_box
/* 097AF8 80096EF8 AFA20020 */ sw $v0, 0x20($sp)
/* 097AFC 80096EFC 8FAC0084 */ lw $t4, 0x84($sp)
/* 097B00 80096F00 8FBF00D0 */ lw $ra, 0xd0($sp)
/* 097B04 80096F04 26310096 */ addiu $s1, $s1, 0x96
/* 097B08 80096F08 3C0EB900 */ lui $t6, (0xB900031D >> 16) # lui $t6, 0xb900
/* 097B0C 80096F0C 3C19E700 */ lui $t9, 0xe700
/* 097B10 80096F10 35CE031D */ ori $t6, (0xB900031D & 0xFFFF) # ori $t6, $t6, 0x31d
/* 097B14 80096F14 3C0F0050 */ lui $t7, (0x00504240 >> 16) # lui $t7, 0x50
/* 097B18 80096F18 322300FF */ andi $v1, $s1, 0xff
/* 097B1C 80096F1C AC590000 */ sw $t9, ($v0)
/* 097B20 80096F20 35EF4240 */ ori $t7, (0x00504240 & 0xFFFF) # ori $t7, $t7, 0x4240
/* 097B24 80096F24 AC4E0008 */ sw $t6, 8($v0)
/* 097B28 80096F28 3C18FA00 */ lui $t8, 0xfa00
/* 097B2C 80096F2C AC4F000C */ sw $t7, 0xc($v0)
/* 097B30 80096F30 AC580010 */ sw $t8, 0x10($v0)
/* 097B34 80096F34 00037400 */ sll $t6, $v1, 0x10
/* 097B38 80096F38 0003CE00 */ sll $t9, $v1, 0x18
/* 097B3C 80096F3C 032E7825 */ or $t7, $t9, $t6
/* 097B40 80096F40 0003C200 */ sll $t8, $v1, 8
/* 097B44 80096F44 01F8C825 */ or $t9, $t7, $t8
/* 097B48 80096F48 3C18FF2F */ lui $t8, (0xFF2FFFFF >> 16) # lui $t8, 0xff2f
/* 097B4C 80096F4C 3C0FFC11 */ lui $t7, (0xFC119623 >> 16) # lui $t7, 0xfc11
/* 097B50 80096F50 03237025 */ or $t6, $t9, $v1
/* 097B54 80096F54 35EF9623 */ ori $t7, (0xFC119623 & 0xFFFF) # ori $t7, $t7, 0x9623
/* 097B58 80096F58 3718FFFF */ ori $t8, (0xFF2FFFFF & 0xFFFF) # ori $t8, $t8, 0xffff
/* 097B5C 80096F5C 0253082B */ sltu $at, $s2, $s3
/* 097B60 80096F60 AC400004 */ sw $zero, 4($v0)
/* 097B64 80096F64 AC4E0014 */ sw $t6, 0x14($v0)
/* 097B68 80096F68 AC58001C */ sw $t8, 0x1c($v0)
/* 097B6C 80096F6C AC4F0018 */ sw $t7, 0x18($v0)
/* 097B70 80096F70 24500020 */ addiu $s0, $v0, 0x20
/* 097B74 80096F74 102000B2 */ beqz $at, .L80097240
/* 097B78 80096F78 0240F025 */ move $fp, $s2
/* 097B7C 80096F7C 8FB900CC */ lw $t9, 0xcc($sp)
.L80096F80:
/* 097B80 80096F80 8FAD00CC */ lw $t5, 0xcc($sp)
/* 097B84 80096F84 02808825 */ move $s1, $s4
/* 097B88 80096F88 033E7021 */ addu $t6, $t9, $fp
/* 097B8C 80096F8C 026E082B */ sltu $at, $s3, $t6
/* 097B90 80096F90 10200006 */ beqz $at, .L80096FAC
/* 097B94 80096F94 AFAE007C */ sw $t6, 0x7c($sp)
/* 097B98 80096F98 027E6823 */ subu $t5, $s3, $fp
/* 097B9C 80096F9C 51A000A9 */ beql $t5, $zero, .L80097244
/* 097BA0 80096FA0 02001025 */ move $v0, $s0
/* 097BA4 80096FA4 10000001 */ b .L80096FAC
/* 097BA8 80096FA8 02808825 */ move $s1, $s4
.L80096FAC:
/* 097BAC 80096FAC 028C082B */ sltu $at, $s4, $t4
/* 097BB0 80096FB0 502000A0 */ beql $at, $zero, .L80097234
/* 097BB4 80096FB4 8FBE007C */ lw $fp, 0x7c($sp)
/* 097BB8 80096FB8 AFB30080 */ sw $s3, 0x80($sp)
/* 097BBC 80096FBC AFB400EC */ sw $s4, 0xec($sp)
.L80096FC0:
/* 097BC0 80096FC0 03F15021 */ addu $t2, $ra, $s1
/* 097BC4 80096FC4 018A082B */ sltu $at, $t4, $t2
/* 097BC8 80096FC8 8FAF0080 */ lw $t7, 0x80($sp)
/* 097BCC 80096FCC 1020001E */ beqz $at, .L80097048
/* 097BD0 80096FD0 8FB800EC */ lw $t8, 0xec($sp)
/* 097BD4 80096FD4 0191A023 */ subu $s4, $t4, $s1
/* 097BD8 80096FD8 16800004 */ bnez $s4, .L80096FEC
/* 097BDC 80096FDC 8FA500F4 */ lw $a1, 0xf4($sp)
/* 097BE0 80096FE0 0300A025 */ move $s4, $t8
/* 097BE4 80096FE4 10000092 */ b .L80097230
/* 097BE8 80096FE8 01E09825 */ move $s3, $t7
.L80096FEC:
/* 097BEC 80096FEC 8FA200C4 */ lw $v0, 0xc4($sp)
/* 097BF0 80096FF0 24A5FFFF */ addiu $a1, $a1, -1
/* 097BF4 80096FF4 8FA300C8 */ lw $v1, 0xc8($sp)
/* 097BF8 80096FF8 30B90FFF */ andi $t9, $a1, 0xfff
/* 097BFC 80096FFC 3C01FD70 */ lui $at, 0xfd70
/* 097C00 80097000 03212825 */ or $a1, $t9, $at
/* 097C04 80097004 3058000F */ andi $t8, $v0, 0xf
/* 097C08 80097008 00181380 */ sll $v0, $t8, 0xe
/* 097C0C 8009700C 3C010700 */ lui $at, 0x700
/* 097C10 80097010 3079000F */ andi $t9, $v1, 0xf
/* 097C14 80097014 00191900 */ sll $v1, $t9, 4
/* 097C18 80097018 0041C025 */ or $t8, $v0, $at
/* 097C1C 8009701C 0303B025 */ or $s6, $t8, $v1
/* 097C20 80097020 001E9080 */ sll $s2, $fp, 2
/* 097C24 80097024 03CD9821 */ addu $s3, $fp, $t5
/* 097C28 80097028 0013C880 */ sll $t9, $s3, 2
/* 097C2C 8009702C 324F0FFF */ andi $t7, $s2, 0xfff
/* 097C30 80097030 001EC140 */ sll $t8, $fp, 5
/* 097C34 80097034 330BFFFF */ andi $t3, $t8, 0xffff
/* 097C38 80097038 01E09025 */ move $s2, $t7
/* 097C3C 8009703C 33330FFF */ andi $s3, $t9, 0xfff
/* 097C40 80097040 10000019 */ b .L800970A8
/* 097C44 80097044 0043B825 */ or $s7, $v0, $v1
.L80097048:
/* 097C48 80097048 8FA500F4 */ lw $a1, 0xf4($sp)
/* 097C4C 8009704C 8FA200C4 */ lw $v0, 0xc4($sp)
/* 097C50 80097050 8FA300C8 */ lw $v1, 0xc8($sp)
/* 097C54 80097054 24A5FFFF */ addiu $a1, $a1, -1
/* 097C58 80097058 30B90FFF */ andi $t9, $a1, 0xfff
/* 097C5C 8009705C 3C01FD70 */ lui $at, 0xfd70
/* 097C60 80097060 03212825 */ or $a1, $t9, $at
/* 097C64 80097064 3058000F */ andi $t8, $v0, 0xf
/* 097C68 80097068 00181380 */ sll $v0, $t8, 0xe
/* 097C6C 8009706C 3C010700 */ lui $at, 0x700
/* 097C70 80097070 3079000F */ andi $t9, $v1, 0xf
/* 097C74 80097074 00191900 */ sll $v1, $t9, 4
/* 097C78 80097078 0041C025 */ or $t8, $v0, $at
/* 097C7C 8009707C 0303B025 */ or $s6, $t8, $v1
/* 097C80 80097080 001E9080 */ sll $s2, $fp, 2
/* 097C84 80097084 03CD9821 */ addu $s3, $fp, $t5
/* 097C88 80097088 0013C880 */ sll $t9, $s3, 2
/* 097C8C 8009708C 324F0FFF */ andi $t7, $s2, 0xfff
/* 097C90 80097090 001EC140 */ sll $t8, $fp, 5
/* 097C94 80097094 330BFFFF */ andi $t3, $t8, 0xffff
/* 097C98 80097098 01E09025 */ move $s2, $t7
/* 097C9C 8009709C 33330FFF */ andi $s3, $t9, 0xfff
/* 097CA0 800970A0 0043B825 */ or $s7, $v0, $v1
/* 097CA4 800970A4 03E0A025 */ move $s4, $ra
.L800970A8:
/* 097CA8 800970A8 0200A825 */ move $s5, $s0
/* 097CAC 800970AC AEA50000 */ sw $a1, ($s5)
/* 097CB0 800970B0 AFBF00D0 */ sw $ra, 0xd0($sp)
/* 097CB4 800970B4 AFAD00D4 */ sw $t5, 0xd4($sp)
/* 097CB8 800970B8 AFAC0084 */ sw $t4, 0x84($sp)
/* 097CBC 800970BC AFAB0058 */ sw $t3, 0x58($sp)
/* 097CC0 800970C0 AFAA0078 */ sw $t2, 0x78($sp)
/* 097CC4 800970C4 26100008 */ addiu $s0, $s0, 8
/* 097CC8 800970C8 0C0ADF8D */ jal random_int
/* 097CCC 800970CC 24040080 */ li $a0, 128
/* 097CD0 800970D0 3C0E0B00 */ lui $t6, %hi(D_0B002A00) # $t6, 0xb00
/* 097CD4 800970D4 02343021 */ addu $a2, $s1, $s4
/* 097CD8 800970D8 00D13823 */ subu $a3, $a2, $s1
/* 097CDC 800970DC 25CE2A00 */ addiu $t6, %lo(D_0B002A00) # addiu $t6, $t6, 0x2a00
/* 097CE0 800970E0 0002C840 */ sll $t9, $v0, 1
/* 097CE4 800970E4 032EC021 */ addu $t8, $t9, $t6
/* 097CE8 800970E8 00077840 */ sll $t7, $a3, 1
/* 097CEC 800970EC 25E70009 */ addiu $a3, $t7, 9
/* 097CF0 800970F0 8FAA0078 */ lw $t2, 0x78($sp)
/* 097CF4 800970F4 8FAB0058 */ lw $t3, 0x58($sp)
/* 097CF8 800970F8 8FAC0084 */ lw $t4, 0x84($sp)
/* 097CFC 800970FC 0007C8C2 */ srl $t9, $a3, 3
/* 097D00 80097100 8FAD00D4 */ lw $t5, 0xd4($sp)
/* 097D04 80097104 8FBF00D0 */ lw $ra, 0xd0($sp)
/* 097D08 80097108 AEB80004 */ sw $t8, 4($s5)
/* 097D0C 8009710C 332E01FF */ andi $t6, $t9, 0x1ff
/* 097D10 80097110 02001825 */ move $v1, $s0
/* 097D14 80097114 26100008 */ addiu $s0, $s0, 8
/* 097D18 80097118 000EC240 */ sll $t8, $t6, 9
/* 097D1C 8009711C 3C01F570 */ lui $at, 0xf570
/* 097D20 80097120 03013825 */ or $a3, $t8, $at
/* 097D24 80097124 02002025 */ move $a0, $s0
/* 097D28 80097128 AC670000 */ sw $a3, ($v1)
/* 097D2C 8009712C AC760004 */ sw $s6, 4($v1)
/* 097D30 80097130 00112880 */ sll $a1, $s1, 2
/* 097D34 80097134 30AE0FFF */ andi $t6, $a1, 0xfff
/* 097D38 80097138 3C19E600 */ lui $t9, 0xe600
/* 097D3C 8009713C AC990000 */ sw $t9, ($a0)
/* 097D40 80097140 000E2B00 */ sll $a1, $t6, 0xc
/* 097D44 80097144 AC800004 */ sw $zero, 4($a0)
/* 097D48 80097148 3C01F400 */ lui $at, 0xf400
/* 097D4C 8009714C 00A17825 */ or $t7, $a1, $at
/* 097D50 80097150 00062080 */ sll $a0, $a2, 2
/* 097D54 80097154 26100008 */ addiu $s0, $s0, 8
/* 097D58 80097158 02004025 */ move $t0, $s0
/* 097D5C 8009715C 308E0FFF */ andi $t6, $a0, 0xfff
/* 097D60 80097160 01F2C825 */ or $t9, $t7, $s2
/* 097D64 80097164 000E2300 */ sll $a0, $t6, 0xc
/* 097D68 80097168 3C010700 */ lui $at, 0x700
/* 097D6C 8009716C 00817825 */ or $t7, $a0, $at
/* 097D70 80097170 AD190000 */ sw $t9, ($t0)
/* 097D74 80097174 26100008 */ addiu $s0, $s0, 8
/* 097D78 80097178 02001025 */ move $v0, $s0
/* 097D7C 8009717C 01F3C825 */ or $t9, $t7, $s3
/* 097D80 80097180 AD190004 */ sw $t9, 4($t0)
/* 097D84 80097184 26100008 */ addiu $s0, $s0, 8
/* 097D88 80097188 3C0EE700 */ lui $t6, 0xe700
/* 097D8C 8009718C AC4E0000 */ sw $t6, ($v0)
/* 097D90 80097190 02001825 */ move $v1, $s0
/* 097D94 80097194 AC400004 */ sw $zero, 4($v0)
/* 097D98 80097198 26100008 */ addiu $s0, $s0, 8
/* 097D9C 8009719C 02004825 */ move $t1, $s0
/* 097DA0 800971A0 3C01F200 */ lui $at, 0xf200
/* 097DA4 800971A4 00A1C025 */ or $t8, $a1, $at
/* 097DA8 800971A8 AC770004 */ sw $s7, 4($v1)
/* 097DAC 800971AC AC670000 */ sw $a3, ($v1)
/* 097DB0 800971B0 03127825 */ or $t7, $t8, $s2
/* 097DB4 800971B4 26100008 */ addiu $s0, $s0, 8
/* 097DB8 800971B8 0093C825 */ or $t9, $a0, $s3
/* 097DBC 800971BC AD390004 */ sw $t9, 4($t1)
/* 097DC0 800971C0 AD2F0000 */ sw $t7, ($t1)
/* 097DC4 800971C4 02001025 */ move $v0, $s0
/* 097DC8 800971C8 3C01E400 */ lui $at, 0xe400
/* 097DCC 800971CC 00817025 */ or $t6, $a0, $at
/* 097DD0 800971D0 01D3C025 */ or $t8, $t6, $s3
/* 097DD4 800971D4 26100008 */ addiu $s0, $s0, 8
/* 097DD8 800971D8 00B27825 */ or $t7, $a1, $s2
/* 097DDC 800971DC AC4F0004 */ sw $t7, 4($v0)
/* 097DE0 800971E0 02001825 */ move $v1, $s0
/* 097DE4 800971E4 AC580000 */ sw $t8, ($v0)
/* 097DE8 800971E8 3C19B300 */ lui $t9, 0xb300
/* 097DEC 800971EC AC790000 */ sw $t9, ($v1)
/* 097DF0 800971F0 0011CD40 */ sll $t9, $s1, 0x15
/* 097DF4 800971F4 26100008 */ addiu $s0, $s0, 8
/* 097DF8 800971F8 02001025 */ move $v0, $s0
/* 097DFC 800971FC 3C0F0400 */ lui $t7, (0x04000400 >> 16) # lui $t7, 0x400
/* 097E00 80097200 032B7025 */ or $t6, $t9, $t3
/* 097E04 80097204 AC6E0004 */ sw $t6, 4($v1)
/* 097E08 80097208 35EF0400 */ ori $t7, (0x04000400 & 0xFFFF) # ori $t7, $t7, 0x400
/* 097E0C 8009720C 3C18B200 */ lui $t8, 0xb200
/* 097E10 80097210 014C082B */ sltu $at, $t2, $t4
/* 097E14 80097214 AC580000 */ sw $t8, ($v0)
/* 097E18 80097218 AC4F0004 */ sw $t7, 4($v0)
/* 097E1C 8009721C 26100008 */ addiu $s0, $s0, 8
/* 097E20 80097220 1420FF67 */ bnez $at, .L80096FC0
/* 097E24 80097224 01408825 */ move $s1, $t2
/* 097E28 80097228 8FB400EC */ lw $s4, 0xec($sp)
/* 097E2C 8009722C 8FB30080 */ lw $s3, 0x80($sp)
.L80097230:
/* 097E30 80097230 8FBE007C */ lw $fp, 0x7c($sp)
.L80097234:
/* 097E34 80097234 03D3082B */ sltu $at, $fp, $s3
/* 097E38 80097238 5420FF51 */ bnel $at, $zero, .L80096F80
/* 097E3C 8009723C 8FB900CC */ lw $t9, 0xcc($sp)
.L80097240:
/* 097E40 80097240 02001025 */ move $v0, $s0
.L80097244:
/* 097E44 80097244 8FBF0054 */ lw $ra, 0x54($sp)
/* 097E48 80097248 8FB00030 */ lw $s0, 0x30($sp)
/* 097E4C 8009724C 8FB10034 */ lw $s1, 0x34($sp)
/* 097E50 80097250 8FB20038 */ lw $s2, 0x38($sp)
/* 097E54 80097254 8FB3003C */ lw $s3, 0x3c($sp)
/* 097E58 80097258 8FB40040 */ lw $s4, 0x40($sp)
/* 097E5C 8009725C 8FB50044 */ lw $s5, 0x44($sp)
/* 097E60 80097260 8FB60048 */ lw $s6, 0x48($sp)
/* 097E64 80097264 8FB7004C */ lw $s7, 0x4c($sp)
/* 097E68 80097268 8FBE0050 */ lw $fp, 0x50($sp)
/* 097E6C 8009726C 03E00008 */ jr $ra
/* 097E70 80097270 27BD00E8 */ addiu $sp, $sp, 0xe8
@@ -1,522 +0,0 @@
glabel func_80097274
/* 097E74 80097274 27BDFEF0 */ addiu $sp, $sp, -0x110
/* 097E78 80097278 AFB00018 */ sw $s0, 0x18($sp)
/* 097E7C 8009727C AFBF003C */ sw $ra, 0x3c($sp)
/* 097E80 80097280 AFBE0038 */ sw $fp, 0x38($sp)
/* 097E84 80097284 AFB70034 */ sw $s7, 0x34($sp)
/* 097E88 80097288 AFB60030 */ sw $s6, 0x30($sp)
/* 097E8C 8009728C AFB5002C */ sw $s5, 0x2c($sp)
/* 097E90 80097290 AFB40028 */ sw $s4, 0x28($sp)
/* 097E94 80097294 AFB30024 */ sw $s3, 0x24($sp)
/* 097E98 80097298 AFB20020 */ sw $s2, 0x20($sp)
/* 097E9C 8009729C AFB1001C */ sw $s1, 0x1c($sp)
/* 097EA0 800972A0 AFA50114 */ sw $a1, 0x114($sp)
/* 097EA4 800972A4 AFA60118 */ sw $a2, 0x118($sp)
/* 097EA8 800972A8 AFA7011C */ sw $a3, 0x11c($sp)
/* 097EAC 800972AC 24900008 */ addiu $s0, $a0, 8
/* 097EB0 800972B0 3C0EE700 */ lui $t6, 0xe700
/* 097EB4 800972B4 AC8E0000 */ sw $t6, ($a0)
/* 097EB8 800972B8 02001825 */ move $v1, $s0
/* 097EBC 800972BC 3C0FBA00 */ lui $t7, (0xBA001402 >> 16) # lui $t7, 0xba00
/* 097EC0 800972C0 AC800004 */ sw $zero, 4($a0)
/* 097EC4 800972C4 35EF1402 */ ori $t7, (0xBA001402 & 0xFFFF) # ori $t7, $t7, 0x1402
/* 097EC8 800972C8 26100008 */ addiu $s0, $s0, 8
/* 097ECC 800972CC AC6F0000 */ sw $t7, ($v1)
/* 097ED0 800972D0 3C180010 */ lui $t8, %hi(D_000FFF00) # $t8, 0x10
/* 097ED4 800972D4 02004825 */ move $t1, $s0
/* 097ED8 800972D8 AC780004 */ sw $t8, 4($v1)
/* 097EDC 800972DC 3C19BA00 */ lui $t9, (0xBA001001 >> 16) # lui $t9, 0xba00
/* 097EE0 800972E0 37391001 */ ori $t9, (0xBA001001 & 0xFFFF) # ori $t9, $t9, 0x1001
/* 097EE4 800972E4 26100008 */ addiu $s0, $s0, 8
/* 097EE8 800972E8 AD390000 */ sw $t9, ($t1)
/* 097EEC 800972EC AD200004 */ sw $zero, 4($t1)
/* 097EF0 800972F0 02005025 */ move $t2, $s0
/* 097EF4 800972F4 3C0EFA00 */ lui $t6, 0xfa00
/* 097EF8 800972F8 AD4E0000 */ sw $t6, ($t2)
/* 097EFC 800972FC 3C0F800E */ lui $t7, %hi(gGlobalTimer) # $t7, 0x800e
/* 097F00 80097300 8DEFC54C */ lw $t7, %lo(gGlobalTimer)($t7)
/* 097F04 80097304 26100008 */ addiu $s0, $s0, 8
/* 097F08 80097308 02006825 */ move $t5, $s0
/* 097F0C 8009730C 3C0EFC25 */ lui $t6, (0xFC2527FF >> 16) # lui $t6, 0xfc25
/* 097F10 80097310 35CE27FF */ ori $t6, (0xFC2527FF & 0xFFFF) # ori $t6, $t6, 0x27ff
/* 097F14 80097314 00801025 */ move $v0, $a0
/* 097F18 80097318 24080001 */ li $t0, 1
/* 097F1C 8009731C 00005825 */ move $t3, $zero
/* 097F20 80097320 00006025 */ move $t4, $zero
/* 097F24 80097324 05E10004 */ bgez $t7, .L80097338
/* 097F28 80097328 31F800FF */ andi $t8, $t7, 0xff
/* 097F2C 8009732C 13000002 */ beqz $t8, .L80097338
/* 097F30 80097330 00000000 */ nop
/* 097F34 80097334 2718FF00 */ addiu $t8, %lo(D_000FFF00) # addiu $t8, $t8, -0x100
.L80097338:
/* 097F38 80097338 331900FF */ andi $t9, $t8, 0xff
/* 097F3C 8009733C AD590004 */ sw $t9, 4($t2)
/* 097F40 80097340 3C0F1FFC */ lui $t7, (0x1FFC9238 >> 16) # lui $t7, 0x1ffc
/* 097F44 80097344 35EF9238 */ ori $t7, (0x1FFC9238 & 0xFFFF) # ori $t7, $t7, 0x9238
/* 097F48 80097348 ADAF0004 */ sw $t7, 4($t5)
/* 097F4C 8009734C ADAE0000 */ sw $t6, ($t5)
/* 097F50 80097350 8FB8013C */ lw $t8, 0x13c($sp)
/* 097F54 80097354 26100008 */ addiu $s0, $s0, 8
/* 097F58 80097358 8FA40140 */ lw $a0, 0x140($sp)
/* 097F5C 8009735C 2F010002 */ sltiu $at, $t8, 2
/* 097F60 80097360 14200007 */ bnez $at, .L80097380
/* 097F64 80097364 240F0400 */ li $t7, 1024
/* 097F68 80097368 8FAE013C */ lw $t6, 0x13c($sp)
.L8009736C:
/* 097F6C 8009736C 0008C840 */ sll $t9, $t0, 1
/* 097F70 80097370 03204025 */ move $t0, $t9
/* 097F74 80097374 032E082B */ sltu $at, $t9, $t6
/* 097F78 80097378 5420FFFC */ bnel $at, $zero, .L8009736C
/* 097F7C 8009737C 8FAE013C */ lw $t6, 0x13c($sp)
.L80097380:
/* 097F80 80097380 01E8001A */ div $zero, $t7, $t0
/* 097F84 80097384 15000002 */ bnez $t0, .L80097390
/* 097F88 80097388 00000000 */ nop
/* 097F8C 8009738C 0007000D */ break 7
.L80097390:
/* 097F90 80097390 2401FFFF */ li $at, -1
/* 097F94 80097394 15010004 */ bne $t0, $at, .L800973A8
/* 097F98 80097398 3C018000 */ lui $at, 0x8000
/* 097F9C 8009739C 15E10002 */ bne $t7, $at, .L800973A8
/* 097FA0 800973A0 00000000 */ nop
/* 097FA4 800973A4 0006000D */ break 6
.L800973A8:
/* 097FA8 800973A8 00001012 */ mflo $v0
/* 097FAC 800973AC AFA200F4 */ sw $v0, 0xf4($sp)
/* 097FB0 800973B0 04410003 */ bgez $v0, .L800973C0
/* 097FB4 800973B4 0002C043 */ sra $t8, $v0, 1
/* 097FB8 800973B8 24410001 */ addiu $at, $v0, 1
/* 097FBC 800973BC 0001C043 */ sra $t8, $at, 1
.L800973C0:
/* 097FC0 800973C0 0098082B */ sltu $at, $a0, $t8
/* 097FC4 800973C4 1020000F */ beqz $at, .L80097404
/* 097FC8 800973C8 8FA200F4 */ lw $v0, 0xf4($sp)
/* 097FCC 800973CC 04410003 */ bgez $v0, .L800973DC
/* 097FD0 800973D0 0002C843 */ sra $t9, $v0, 1
/* 097FD4 800973D4 24410001 */ addiu $at, $v0, 1
/* 097FD8 800973D8 0001C843 */ sra $t9, $at, 1
.L800973DC:
/* 097FDC 800973DC 03201025 */ move $v0, $t9
/* 097FE0 800973E0 00401825 */ move $v1, $v0
.L800973E4:
/* 097FE4 800973E4 04610003 */ bgez $v1, .L800973F4
/* 097FE8 800973E8 00031043 */ sra $v0, $v1, 1
/* 097FEC 800973EC 24610001 */ addiu $at, $v1, 1
/* 097FF0 800973F0 00011043 */ sra $v0, $at, 1
.L800973F4:
/* 097FF4 800973F4 0082082B */ sltu $at, $a0, $v0
/* 097FF8 800973F8 5420FFFA */ bnel $at, $zero, .L800973E4
/* 097FFC 800973FC 00401825 */ move $v1, $v0
/* 098000 80097400 AFA300F4 */ sw $v1, 0xf4($sp)
.L80097404:
/* 098004 80097404 29010002 */ slti $at, $t0, 2
/* 098008 80097408 14200009 */ bnez $at, .L80097430
/* 09800C 8009740C 01001025 */ move $v0, $t0
.L80097410:
/* 098010 80097410 04410003 */ bgez $v0, .L80097420
/* 098014 80097414 00027043 */ sra $t6, $v0, 1
/* 098018 80097418 24410001 */ addiu $at, $v0, 1
/* 09801C 8009741C 00017043 */ sra $t6, $at, 1
.L80097420:
/* 098020 80097420 29C10002 */ slti $at, $t6, 2
/* 098024 80097424 01C01025 */ move $v0, $t6
/* 098028 80097428 1020FFF9 */ beqz $at, .L80097410
/* 09802C 8009742C 256B0001 */ addiu $t3, $t3, 1
.L80097430:
/* 098030 80097430 8FA200F4 */ lw $v0, 0xf4($sp)
/* 098034 80097434 8FA40130 */ lw $a0, 0x130($sp)
/* 098038 80097438 8FB90120 */ lw $t9, 0x120($sp)
/* 09803C 8009743C 28410002 */ slti $at, $v0, 2
/* 098040 80097440 14200009 */ bnez $at, .L80097468
/* 098044 80097444 8FAF0128 */ lw $t7, 0x128($sp)
.L80097448:
/* 098048 80097448 04410003 */ bgez $v0, .L80097458
/* 09804C 8009744C 0002C043 */ sra $t8, $v0, 1
/* 098050 80097450 24410001 */ addiu $at, $v0, 1
/* 098054 80097454 0001C043 */ sra $t8, $at, 1
.L80097458:
/* 098058 80097458 2B010002 */ slti $at, $t8, 2
/* 09805C 8009745C 03001025 */ move $v0, $t8
/* 098060 80097460 1020FFF9 */ beqz $at, .L80097448
/* 098064 80097464 258C0001 */ addiu $t4, $t4, 1
.L80097468:
/* 098068 80097468 04810005 */ bgez $a0, .L80097480
/* 09806C 8009746C 8FA20120 */ lw $v0, 0x120($sp)
/* 098070 80097470 03247023 */ subu $t6, $t9, $a0
/* 098074 80097474 AFAE0120 */ sw $t6, 0x120($sp)
/* 098078 80097478 10000008 */ b .L8009749C
/* 09807C 8009747C 00002025 */ move $a0, $zero
.L80097480:
/* 098080 80097480 01E2C023 */ subu $t8, $t7, $v0
/* 098084 80097484 0304C821 */ addu $t9, $t8, $a0
/* 098088 80097488 2B210141 */ slti $at, $t9, 0x141
/* 09808C 8009748C 14200003 */ bnez $at, .L8009749C
/* 098090 80097490 00441823 */ subu $v1, $v0, $a0
/* 098094 80097494 24630140 */ addiu $v1, $v1, 0x140
/* 098098 80097498 AFA30128 */ sw $v1, 0x128($sp)
.L8009749C:
/* 09809C 8009749C 8FAE0134 */ lw $t6, 0x134($sp)
/* 0980A0 800974A0 8FA30128 */ lw $v1, 0x128($sp)
/* 0980A4 800974A4 8FA20124 */ lw $v0, 0x124($sp)
/* 0980A8 800974A8 05C10005 */ bgez $t6, .L800974C0
/* 0980AC 800974AC 8FAF012C */ lw $t7, 0x12c($sp)
/* 0980B0 800974B0 8FA20124 */ lw $v0, 0x124($sp)
/* 0980B4 800974B4 AFA00134 */ sw $zero, 0x134($sp)
/* 0980B8 800974B8 10000009 */ b .L800974E0
/* 0980BC 800974BC 004E1023 */ subu $v0, $v0, $t6
.L800974C0:
/* 0980C0 800974C0 8FB90134 */ lw $t9, 0x134($sp)
/* 0980C4 800974C4 01E2C023 */ subu $t8, $t7, $v0
/* 0980C8 800974C8 03197021 */ addu $t6, $t8, $t9
/* 0980CC 800974CC 29C100F1 */ slti $at, $t6, 0xf1
/* 0980D0 800974D0 14200003 */ bnez $at, .L800974E0
/* 0980D4 800974D4 00597823 */ subu $t7, $v0, $t9
/* 0980D8 800974D8 25F800F0 */ addiu $t8, $t7, 0xf0
/* 0980DC 800974DC AFB8012C */ sw $t8, 0x12c($sp)
.L800974E0:
/* 0980E0 800974E0 8FAE0120 */ lw $t6, 0x120($sp)
/* 0980E4 800974E4 8FB9012C */ lw $t9, 0x12c($sp)
/* 0980E8 800974E8 006E082A */ slt $at, $v1, $t6
/* 0980EC 800974EC 50200004 */ beql $at, $zero, .L80097500
/* 0980F0 800974F0 0322082A */ slt $at, $t9, $v0
/* 0980F4 800974F4 1000013B */ b .L800979E4
/* 0980F8 800974F8 02001025 */ move $v0, $s0
/* 0980FC 800974FC 0322082A */ slt $at, $t9, $v0
.L80097500:
/* 098100 80097500 50200004 */ beql $at, $zero, .L80097514
/* 098104 80097504 8FAF012C */ lw $t7, 0x12c($sp)
/* 098108 80097508 10000136 */ b .L800979E4
/* 09810C 8009750C 02001025 */ move $v0, $s0
/* 098110 80097510 8FAF012C */ lw $t7, 0x12c($sp)
.L80097514:
/* 098114 80097514 AFA40104 */ sw $a0, 0x104($sp)
/* 098118 80097518 00406825 */ move $t5, $v0
/* 09811C 8009751C 004F082B */ sltu $at, $v0, $t7
/* 098120 80097520 50200128 */ beql $at, $zero, .L800979C4
/* 098124 80097524 26040008 */ addiu $a0, $s0, 8
/* 098128 80097528 AFA40130 */ sw $a0, 0x130($sp)
/* 09812C 8009752C AFA800F8 */ sw $t0, 0xf8($sp)
/* 098130 80097530 AFAB00F0 */ sw $t3, 0xf0($sp)
/* 098134 80097534 AFAC00EC */ sw $t4, 0xec($sp)
.L80097538:
/* 098138 80097538 8FB800F4 */ lw $t8, 0xf4($sp)
/* 09813C 8009753C 8FB9012C */ lw $t9, 0x12c($sp)
/* 098140 80097540 8FAF00F4 */ lw $t7, 0xf4($sp)
/* 098144 80097544 030D7021 */ addu $t6, $t8, $t5
/* 098148 80097548 032E082B */ sltu $at, $t9, $t6
/* 09814C 8009754C 10200006 */ beqz $at, .L80097568
/* 098150 80097550 AFAE0084 */ sw $t6, 0x84($sp)
/* 098154 80097554 032D1023 */ subu $v0, $t9, $t5
/* 098158 80097558 10400119 */ beqz $v0, .L800979C0
/* 09815C 8009755C AFA200FC */ sw $v0, 0xfc($sp)
/* 098160 80097560 10000003 */ b .L80097570
/* 098164 80097564 8FB40120 */ lw $s4, 0x120($sp)
.L80097568:
/* 098168 80097568 AFAF00FC */ sw $t7, 0xfc($sp)
/* 09816C 8009756C 8FB40120 */ lw $s4, 0x120($sp)
.L80097570:
/* 098170 80097570 8FB80120 */ lw $t8, 0x120($sp)
/* 098174 80097574 0303082B */ sltu $at, $t8, $v1
/* 098178 80097578 50200108 */ beql $at, $zero, .L8009799C
/* 09817C 8009757C 8FB80104 */ lw $t8, 0x104($sp)
/* 098180 80097580 AFA30128 */ sw $v1, 0x128($sp)
.L80097584:
/* 098184 80097584 8FAE00F8 */ lw $t6, 0xf8($sp)
/* 098188 80097588 8FA30128 */ lw $v1, 0x128($sp)
/* 09818C 8009758C 8FA800FC */ lw $t0, 0xfc($sp)
/* 098190 80097590 01D4C821 */ addu $t9, $t6, $s4
/* 098194 80097594 0079082B */ sltu $at, $v1, $t9
/* 098198 80097598 1020003A */ beqz $at, .L80097684
/* 09819C 8009759C AFB90080 */ sw $t9, 0x80($sp)
/* 0981A0 800975A0 00745823 */ subu $t3, $v1, $s4
/* 0981A4 800975A4 116000FC */ beqz $t3, .L80097998
/* 0981A8 800975A8 3C01FD00 */ lui $at, 0xfd00
/* 0981AC 800975AC 83A40117 */ lb $a0, 0x117($sp)
/* 0981B0 800975B0 8FA200EC */ lw $v0, 0xec($sp)
/* 0981B4 800975B4 AFA30128 */ sw $v1, 0x128($sp)
/* 0981B8 800975B8 308F0007 */ andi $t7, $a0, 7
/* 0981BC 800975BC 000F2540 */ sll $a0, $t7, 0x15
/* 0981C0 800975C0 8FAF013C */ lw $t7, 0x13c($sp)
/* 0981C4 800975C4 00817025 */ or $t6, $a0, $at
/* 0981C8 800975C8 3C010010 */ lui $at, 0x10
/* 0981CC 800975CC 01C1C825 */ or $t9, $t6, $at
/* 0981D0 800975D0 3C01F500 */ lui $at, 0xf500
/* 0981D4 800975D4 25F8FFFF */ addiu $t8, $t7, -1
/* 0981D8 800975D8 8FA300F0 */ lw $v1, 0xf0($sp)
/* 0981DC 800975DC 330E0FFF */ andi $t6, $t8, 0xfff
/* 0981E0 800975E0 00813825 */ or $a3, $a0, $at
/* 0981E4 800975E4 8FA800FC */ lw $t0, 0xfc($sp)
/* 0981E8 800975E8 3C010010 */ lui $at, 0x10
/* 0981EC 800975EC 00E17825 */ or $t7, $a3, $at
/* 0981F0 800975F0 032E2825 */ or $a1, $t9, $t6
/* 0981F4 800975F4 3058000F */ andi $t8, $v0, 0xf
/* 0981F8 800975F8 8FA90134 */ lw $t1, 0x134($sp)
/* 0981FC 800975FC 00181380 */ sll $v0, $t8, 0xe
/* 098200 80097600 3C010700 */ lui $at, 0x700
/* 098204 80097604 000D3080 */ sll $a2, $t5, 2
/* 098208 80097608 306E000F */ andi $t6, $v1, 0xf
/* 09820C 8009760C 000E1900 */ sll $v1, $t6, 4
/* 098210 80097610 30D90FFF */ andi $t9, $a2, 0xfff
/* 098214 80097614 0041C025 */ or $t8, $v0, $at
/* 098218 80097618 01A89821 */ addu $s3, $t5, $t0
/* 09821C 8009761C 00137080 */ sll $t6, $s3, 2
/* 098220 80097620 03203025 */ move $a2, $t9
/* 098224 80097624 31D30FFF */ andi $s3, $t6, 0xfff
/* 098228 80097628 03036025 */ or $t4, $t8, $v1
/* 09822C 8009762C 3C010100 */ lui $at, 0x100
/* 098230 80097630 0128C821 */ addu $t9, $t1, $t0
/* 098234 80097634 00197080 */ sll $t6, $t9, 2
/* 098238 80097638 0041C025 */ or $t8, $v0, $at
/* 09823C 8009763C 01E03825 */ move $a3, $t7
/* 098240 80097640 31CF0FFF */ andi $t7, $t6, 0xfff
/* 098244 80097644 0303F825 */ or $ra, $t8, $v1
/* 098248 80097648 AFAF004C */ sw $t7, 0x4c($sp)
/* 09824C 8009764C 0009C080 */ sll $t8, $t1, 2
/* 098250 80097650 33190FFF */ andi $t9, $t8, 0xfff
/* 098254 80097654 000D7940 */ sll $t7, $t5, 5
/* 098258 80097658 31F8FFFF */ andi $t8, $t7, 0xffff
/* 09825C 8009765C AFB80044 */ sw $t8, 0x44($sp)
/* 098260 80097660 8FB8011C */ lw $t8, 0x11c($sp)
/* 098264 80097664 8FAE0118 */ lw $t6, 0x118($sp)
/* 098268 80097668 AFB90048 */ sw $t9, 0x48($sp)
/* 09826C 8009766C 3319FFFF */ andi $t9, $t8, 0xffff
/* 098270 80097670 000E7C00 */ sll $t7, $t6, 0x10
/* 098274 80097674 01F97025 */ or $t6, $t7, $t9
/* 098278 80097678 AFAE0040 */ sw $t6, 0x40($sp)
/* 09827C 8009767C 10000036 */ b .L80097758
/* 098280 80097680 00435025 */ or $t2, $v0, $v1
.L80097684:
/* 098284 80097684 83A40117 */ lb $a0, 0x117($sp)
/* 098288 80097688 3C01FD00 */ lui $at, 0xfd00
/* 09828C 8009768C 8FA200EC */ lw $v0, 0xec($sp)
/* 098290 80097690 30980007 */ andi $t8, $a0, 7
/* 098294 80097694 00182540 */ sll $a0, $t8, 0x15
/* 098298 80097698 8FB8013C */ lw $t8, 0x13c($sp)
/* 09829C 8009769C 0081C825 */ or $t9, $a0, $at
/* 0982A0 800976A0 3C010010 */ lui $at, 0x10
/* 0982A4 800976A4 03217025 */ or $t6, $t9, $at
/* 0982A8 800976A8 3C01F500 */ lui $at, 0xf500
/* 0982AC 800976AC 270FFFFF */ addiu $t7, $t8, -1
/* 0982B0 800976B0 8FA300F0 */ lw $v1, 0xf0($sp)
/* 0982B4 800976B4 31F90FFF */ andi $t9, $t7, 0xfff
/* 0982B8 800976B8 00813825 */ or $a3, $a0, $at
/* 0982BC 800976BC 3C010010 */ lui $at, 0x10
/* 0982C0 800976C0 00E1C025 */ or $t8, $a3, $at
/* 0982C4 800976C4 01D92825 */ or $a1, $t6, $t9
/* 0982C8 800976C8 304F000F */ andi $t7, $v0, 0xf
/* 0982CC 800976CC 8FA90134 */ lw $t1, 0x134($sp)
/* 0982D0 800976D0 000F1380 */ sll $v0, $t7, 0xe
/* 0982D4 800976D4 3C010700 */ lui $at, 0x700
/* 0982D8 800976D8 000D3080 */ sll $a2, $t5, 2
/* 0982DC 800976DC 3079000F */ andi $t9, $v1, 0xf
/* 0982E0 800976E0 00191900 */ sll $v1, $t9, 4
/* 0982E4 800976E4 30CE0FFF */ andi $t6, $a2, 0xfff
/* 0982E8 800976E8 00417825 */ or $t7, $v0, $at
/* 0982EC 800976EC 01A89821 */ addu $s3, $t5, $t0
/* 0982F0 800976F0 0013C880 */ sll $t9, $s3, 2
/* 0982F4 800976F4 01C03025 */ move $a2, $t6
/* 0982F8 800976F8 33330FFF */ andi $s3, $t9, 0xfff
/* 0982FC 800976FC 01E36025 */ or $t4, $t7, $v1
/* 098300 80097700 3C010100 */ lui $at, 0x100
/* 098304 80097704 01287021 */ addu $t6, $t1, $t0
/* 098308 80097708 000EC880 */ sll $t9, $t6, 2
/* 09830C 8009770C 00417825 */ or $t7, $v0, $at
/* 098310 80097710 03003825 */ move $a3, $t8
/* 098314 80097714 33380FFF */ andi $t8, $t9, 0xfff
/* 098318 80097718 01E3F825 */ or $ra, $t7, $v1
/* 09831C 8009771C AFB8004C */ sw $t8, 0x4c($sp)
/* 098320 80097720 00097880 */ sll $t7, $t1, 2
/* 098324 80097724 31EE0FFF */ andi $t6, $t7, 0xfff
/* 098328 80097728 000DC140 */ sll $t8, $t5, 5
/* 09832C 8009772C 330FFFFF */ andi $t7, $t8, 0xffff
/* 098330 80097730 AFAF0044 */ sw $t7, 0x44($sp)
/* 098334 80097734 8FAF011C */ lw $t7, 0x11c($sp)
/* 098338 80097738 8FB90118 */ lw $t9, 0x118($sp)
/* 09833C 8009773C AFAE0048 */ sw $t6, 0x48($sp)
/* 098340 80097740 31EEFFFF */ andi $t6, $t7, 0xffff
/* 098344 80097744 0019C400 */ sll $t8, $t9, 0x10
/* 098348 80097748 030EC825 */ or $t9, $t8, $t6
/* 09834C 8009774C AFB90040 */ sw $t9, 0x40($sp)
/* 098350 80097750 00435025 */ or $t2, $v0, $v1
/* 098354 80097754 8FAB00F8 */ lw $t3, 0xf8($sp)
.L80097758:
/* 098358 80097758 02001025 */ move $v0, $s0
/* 09835C 8009775C AC450000 */ sw $a1, ($v0)
/* 098360 80097760 8FAF0138 */ lw $t7, 0x138($sp)
/* 098364 80097764 028B2021 */ addu $a0, $s4, $t3
/* 098368 80097768 0094C023 */ subu $t8, $a0, $s4
/* 09836C 8009776C 00187040 */ sll $t6, $t8, 1
/* 098370 80097770 25D90009 */ addiu $t9, $t6, 9
/* 098374 80097774 AC4F0004 */ sw $t7, 4($v0)
/* 098378 80097778 001978C2 */ srl $t7, $t9, 3
/* 09837C 8009777C 31F801FF */ andi $t8, $t7, 0x1ff
/* 098380 80097780 26100008 */ addiu $s0, $s0, 8
/* 098384 80097784 02001825 */ move $v1, $s0
/* 098388 80097788 00187240 */ sll $t6, $t8, 9
/* 09838C 8009778C 00EE8825 */ or $s1, $a3, $t6
/* 098390 80097790 00143880 */ sll $a3, $s4, 2
/* 098394 80097794 26100008 */ addiu $s0, $s0, 8
/* 098398 80097798 02004025 */ move $t0, $s0
/* 09839C 8009779C 30EF0FFF */ andi $t7, $a3, 0xfff
/* 0983A0 800977A0 AC710000 */ sw $s1, ($v1)
/* 0983A4 800977A4 AC6C0004 */ sw $t4, 4($v1)
/* 0983A8 800977A8 3C19E600 */ lui $t9, 0xe600
/* 0983AC 800977AC AD190000 */ sw $t9, ($t0)
/* 0983B0 800977B0 000F3B00 */ sll $a3, $t7, 0xc
/* 0983B4 800977B4 00049080 */ sll $s2, $a0, 2
/* 0983B8 800977B8 3C01F400 */ lui $at, 0xf400
/* 0983BC 800977BC 00E17025 */ or $t6, $a3, $at
/* 0983C0 800977C0 32590FFF */ andi $t9, $s2, 0xfff
/* 0983C4 800977C4 26100008 */ addiu $s0, $s0, 8
/* 0983C8 800977C8 02001025 */ move $v0, $s0
/* 0983CC 800977CC 00199300 */ sll $s2, $t9, 0xc
/* 0983D0 800977D0 3C010700 */ lui $at, 0x700
/* 0983D4 800977D4 0241C025 */ or $t8, $s2, $at
/* 0983D8 800977D8 AD000004 */ sw $zero, 4($t0)
/* 0983DC 800977DC 0313B025 */ or $s6, $t8, $s3
/* 0983E0 800977E0 26100008 */ addiu $s0, $s0, 8
/* 0983E4 800977E4 01C6A825 */ or $s5, $t6, $a2
/* 0983E8 800977E8 AC550000 */ sw $s5, ($v0)
/* 0983EC 800977EC 02001825 */ move $v1, $s0
/* 0983F0 800977F0 AC560004 */ sw $s6, 4($v0)
/* 0983F4 800977F4 26100008 */ addiu $s0, $s0, 8
/* 0983F8 800977F8 02004825 */ move $t1, $s0
/* 0983FC 800977FC 3C0EE700 */ lui $t6, 0xe700
/* 098400 80097800 AC6E0000 */ sw $t6, ($v1)
/* 098404 80097804 26100008 */ addiu $s0, $s0, 8
/* 098408 80097808 AC600004 */ sw $zero, 4($v1)
/* 09840C 8009780C 02001025 */ move $v0, $s0
/* 098410 80097810 3C01F200 */ lui $at, 0xf200
/* 098414 80097814 00E1C825 */ or $t9, $a3, $at
/* 098418 80097818 AD2A0004 */ sw $t2, 4($t1)
/* 09841C 8009781C AD310000 */ sw $s1, ($t1)
/* 098420 80097820 0326B825 */ or $s7, $t9, $a2
/* 098424 80097824 26100008 */ addiu $s0, $s0, 8
/* 098428 80097828 02537825 */ or $t7, $s2, $s3
/* 09842C 8009782C AC4F0004 */ sw $t7, 4($v0)
/* 098430 80097830 AC570000 */ sw $s7, ($v0)
/* 098434 80097834 0200F025 */ move $fp, $s0
/* 098438 80097838 AFC50000 */ sw $a1, ($fp)
/* 09843C 8009783C AFBF0050 */ sw $ra, 0x50($sp)
/* 098440 80097840 AFAD0108 */ sw $t5, 0x108($sp)
/* 098444 80097844 AFAC0068 */ sw $t4, 0x68($sp)
/* 098448 80097848 AFAB0100 */ sw $t3, 0x100($sp)
/* 09844C 8009784C 26100008 */ addiu $s0, $s0, 8
/* 098450 80097850 0C0ADF8D */ jal random_int
/* 098454 80097854 24040080 */ li $a0, 128
/* 098458 80097858 3C0E0B00 */ lui $t6, %hi(D_0B002A00) # $t6, 0xb00
/* 09845C 8009785C 8FAC0068 */ lw $t4, 0x68($sp)
/* 098460 80097860 25CE2A00 */ addiu $t6, %lo(D_0B002A00) # addiu $t6, $t6, 0x2a00
/* 098464 80097864 0002C040 */ sll $t8, $v0, 1
/* 098468 80097868 8FAB0100 */ lw $t3, 0x100($sp)
/* 09846C 8009786C 8FBF0050 */ lw $ra, 0x50($sp)
/* 098470 80097870 030EC821 */ addu $t9, $t8, $t6
/* 098474 80097874 8FAD0108 */ lw $t5, 0x108($sp)
/* 098478 80097878 02001825 */ move $v1, $s0
/* 09847C 8009787C AFD90004 */ sw $t9, 4($fp)
/* 098480 80097880 26100008 */ addiu $s0, $s0, 8
/* 098484 80097884 36250100 */ ori $a1, $s1, 0x100
/* 098488 80097888 AC650000 */ sw $a1, ($v1)
/* 09848C 8009788C 02002025 */ move $a0, $s0
/* 098490 80097890 AC6C0004 */ sw $t4, 4($v1)
/* 098494 80097894 26100008 */ addiu $s0, $s0, 8
/* 098498 80097898 02003025 */ move $a2, $s0
/* 09849C 8009789C 3C0FE600 */ lui $t7, 0xe600
/* 0984A0 800978A0 AC8F0000 */ sw $t7, ($a0)
/* 0984A4 800978A4 26100008 */ addiu $s0, $s0, 8
/* 0984A8 800978A8 AC800004 */ sw $zero, 4($a0)
/* 0984AC 800978AC 02001025 */ move $v0, $s0
/* 0984B0 800978B0 ACD60004 */ sw $s6, 4($a2)
/* 0984B4 800978B4 ACD50000 */ sw $s5, ($a2)
/* 0984B8 800978B8 26100008 */ addiu $s0, $s0, 8
/* 0984BC 800978BC 3C18E700 */ lui $t8, 0xe700
/* 0984C0 800978C0 AC580000 */ sw $t8, ($v0)
/* 0984C4 800978C4 02001825 */ move $v1, $s0
/* 0984C8 800978C8 AC400004 */ sw $zero, 4($v0)
/* 0984CC 800978CC AC650000 */ sw $a1, ($v1)
/* 0984D0 800978D0 AC7F0004 */ sw $ra, 4($v1)
/* 0984D4 800978D4 8FA50130 */ lw $a1, 0x130($sp)
/* 0984D8 800978D8 3C010100 */ lui $at, 0x100
/* 0984DC 800978DC 02417025 */ or $t6, $s2, $at
/* 0984E0 800978E0 26100008 */ addiu $s0, $s0, 8
/* 0984E4 800978E4 02002025 */ move $a0, $s0
/* 0984E8 800978E8 01D3C825 */ or $t9, $t6, $s3
/* 0984EC 800978EC 00AB7821 */ addu $t7, $a1, $t3
/* 0984F0 800978F0 000FC080 */ sll $t8, $t7, 2
/* 0984F4 800978F4 AC990004 */ sw $t9, 4($a0)
/* 0984F8 800978F8 AC970000 */ sw $s7, ($a0)
/* 0984FC 800978FC 330E0FFF */ andi $t6, $t8, 0xfff
/* 098500 80097900 8FB8004C */ lw $t8, 0x4c($sp)
/* 098504 80097904 000ECB00 */ sll $t9, $t6, 0xc
/* 098508 80097908 3C01E400 */ lui $at, 0xe400
/* 09850C 8009790C 26100008 */ addiu $s0, $s0, 8
/* 098510 80097910 03217825 */ or $t7, $t9, $at
/* 098514 80097914 02001025 */ move $v0, $s0
/* 098518 80097918 01F87025 */ or $t6, $t7, $t8
/* 09851C 8009791C AC4E0000 */ sw $t6, ($v0)
/* 098520 80097920 8FAE0048 */ lw $t6, 0x48($sp)
/* 098524 80097924 0005C880 */ sll $t9, $a1, 2
/* 098528 80097928 332F0FFF */ andi $t7, $t9, 0xfff
/* 09852C 8009792C 000FC300 */ sll $t8, $t7, 0xc
/* 098530 80097930 26100008 */ addiu $s0, $s0, 8
/* 098534 80097934 030EC825 */ or $t9, $t8, $t6
/* 098538 80097938 AC590004 */ sw $t9, 4($v0)
/* 09853C 8009793C 02001825 */ move $v1, $s0
/* 098540 80097940 3C0FB300 */ lui $t7, 0xb300
/* 098544 80097944 AC6F0000 */ sw $t7, ($v1)
/* 098548 80097948 8FB80044 */ lw $t8, 0x44($sp)
/* 09854C 8009794C 00147D40 */ sll $t7, $s4, 0x15
/* 098550 80097950 26100008 */ addiu $s0, $s0, 8
/* 098554 80097954 01F87025 */ or $t6, $t7, $t8
/* 098558 80097958 AC6E0004 */ sw $t6, 4($v1)
/* 09855C 8009795C 02001025 */ move $v0, $s0
/* 098560 80097960 3C19B200 */ lui $t9, 0xb200
/* 098564 80097964 AC590000 */ sw $t9, ($v0)
/* 098568 80097968 8FAF0040 */ lw $t7, 0x40($sp)
/* 09856C 8009796C 26100008 */ addiu $s0, $s0, 8
/* 098570 80097970 AC4F0004 */ sw $t7, 4($v0)
/* 098574 80097974 8FAF0128 */ lw $t7, 0x128($sp)
/* 098578 80097978 8FB40080 */ lw $s4, 0x80($sp)
/* 09857C 8009797C 8FB80130 */ lw $t8, 0x130($sp)
/* 098580 80097980 8FAE00F8 */ lw $t6, 0xf8($sp)
/* 098584 80097984 028F082B */ sltu $at, $s4, $t7
/* 098588 80097988 030EC821 */ addu $t9, $t8, $t6
/* 09858C 8009798C 1420FEFD */ bnez $at, .L80097584
/* 098590 80097990 AFB90130 */ sw $t9, 0x130($sp)
/* 098594 80097994 01E01825 */ move $v1, $t7
.L80097998:
/* 098598 80097998 8FB80104 */ lw $t8, 0x104($sp)
.L8009799C:
/* 09859C 8009799C 8FAD0084 */ lw $t5, 0x84($sp)
/* 0985A0 800979A0 8FAE0134 */ lw $t6, 0x134($sp)
/* 0985A4 800979A4 AFB80130 */ sw $t8, 0x130($sp)
/* 0985A8 800979A8 8FB8012C */ lw $t8, 0x12c($sp)
/* 0985AC 800979AC 8FB900F4 */ lw $t9, 0xf4($sp)
/* 0985B0 800979B0 01B8082B */ sltu $at, $t5, $t8
/* 0985B4 800979B4 01D97821 */ addu $t7, $t6, $t9
/* 0985B8 800979B8 1420FEDF */ bnez $at, .L80097538
/* 0985BC 800979BC AFAF0134 */ sw $t7, 0x134($sp)
.L800979C0:
/* 0985C0 800979C0 26040008 */ addiu $a0, $s0, 8
.L800979C4:
/* 0985C4 800979C4 3C0EE700 */ lui $t6, 0xe700
/* 0985C8 800979C8 AE0E0000 */ sw $t6, ($s0)
/* 0985CC 800979CC AE000004 */ sw $zero, 4($s0)
/* 0985D0 800979D0 3C19BA00 */ lui $t9, (0xBA001402 >> 16) # lui $t9, 0xba00
/* 0985D4 800979D4 37391402 */ ori $t9, (0xBA001402 & 0xFFFF) # ori $t9, $t9, 0x1402
/* 0985D8 800979D8 AC990000 */ sw $t9, ($a0)
/* 0985DC 800979DC AC800004 */ sw $zero, 4($a0)
/* 0985E0 800979E0 24820008 */ addiu $v0, $a0, 8
.L800979E4:
/* 0985E4 800979E4 8FBF003C */ lw $ra, 0x3c($sp)
/* 0985E8 800979E8 8FB00018 */ lw $s0, 0x18($sp)
/* 0985EC 800979EC 8FB1001C */ lw $s1, 0x1c($sp)
/* 0985F0 800979F0 8FB20020 */ lw $s2, 0x20($sp)
/* 0985F4 800979F4 8FB30024 */ lw $s3, 0x24($sp)
/* 0985F8 800979F8 8FB40028 */ lw $s4, 0x28($sp)
/* 0985FC 800979FC 8FB5002C */ lw $s5, 0x2c($sp)
/* 098600 80097A00 8FB60030 */ lw $s6, 0x30($sp)
/* 098604 80097A04 8FB70034 */ lw $s7, 0x34($sp)
/* 098608 80097A08 8FBE0038 */ lw $fp, 0x38($sp)
/* 09860C 80097A0C 03E00008 */ jr $ra
/* 098610 80097A10 27BD0110 */ addiu $sp, $sp, 0x110
@@ -1,240 +0,0 @@
glabel func_80099AEC
/* 09A6EC 80099AEC 27BDFF68 */ addiu $sp, $sp, -0x98
/* 09A6F0 80099AF0 3C0E800E */ lui $t6, %hi(gGamestate) # $t6, 0x800e
/* 09A6F4 80099AF4 8DCEC50C */ lw $t6, %lo(gGamestate)($t6)
/* 09A6F8 80099AF8 24010004 */ li $at, 4
/* 09A6FC 80099AFC AFBF004C */ sw $ra, 0x4c($sp)
/* 09A700 80099B00 AFBE0048 */ sw $fp, 0x48($sp)
/* 09A704 80099B04 AFB70044 */ sw $s7, 0x44($sp)
/* 09A708 80099B08 AFB60040 */ sw $s6, 0x40($sp)
/* 09A70C 80099B0C AFB5003C */ sw $s5, 0x3c($sp)
/* 09A710 80099B10 AFB40038 */ sw $s4, 0x38($sp)
/* 09A714 80099B14 AFB30034 */ sw $s3, 0x34($sp)
/* 09A718 80099B18 AFB20030 */ sw $s2, 0x30($sp)
/* 09A71C 80099B1C AFB1002C */ sw $s1, 0x2c($sp)
/* 09A720 80099B20 15C10004 */ bne $t6, $at, .L80099B34
/* 09A724 80099B24 AFB00028 */ sw $s0, 0x28($sp)
/* 09A728 80099B28 240F0500 */ li $t7, 1280
/* 09A72C 80099B2C 10000003 */ b .L80099B3C
/* 09A730 80099B30 AFAF0060 */ sw $t7, 0x60($sp)
.L80099B34:
/* 09A734 80099B34 24181000 */ li $t8, 4096
/* 09A738 80099B38 AFB80060 */ sw $t8, 0x60($sp)
.L80099B3C:
/* 09A73C 80099B3C 3C028019 */ lui $v0, %hi(D_8018E060) # 0x8019
/* 09A740 80099B40 2451E060 */ addiu $s1, $v0, %lo(D_8018E060) # -0x1fa0
/* 09A744 80099B44 8E320000 */ lw $s2, ($s1)
/* 09A748 80099B48 3C148019 */ lui $s4, %hi(gMenuCompressedBuffer) # $s4, 0x8019
/* 09A74C 80099B4C 0000A825 */ move $s5, $zero
/* 09A750 80099B50 124000B4 */ beqz $s2, .L80099E24
/* 09A754 80099B54 2694D9B4 */ addiu $s4, %lo(gMenuCompressedBuffer) # addiu $s4, $s4, -0x264c
/* 09A758 80099B58 96430010 */ lhu $v1, 0x10($s2)
/* 09A75C 80099B5C 24101400 */ li $s0, 5120
/* 09A760 80099B60 10600003 */ beqz $v1, .L80099B70
/* 09A764 80099B64 00000000 */ nop
/* 09A768 80099B68 10000001 */ b .L80099B70
/* 09A76C 80099B6C 00608025 */ move $s0, $v1
.L80099B70:
/* 09A770 80099B70 06010004 */ bgez $s0, .L80099B84
/* 09A774 80099B74 32190007 */ andi $t9, $s0, 7
/* 09A778 80099B78 13200002 */ beqz $t9, .L80099B84
/* 09A77C 80099B7C 00000000 */ nop
/* 09A780 80099B80 2739FFF8 */ addiu $t9, $t9, -8
.L80099B84:
/* 09A784 80099B84 53200008 */ beql $t9, $zero, .L80099BA8
/* 09A788 80099B88 8E840000 */ lw $a0, ($s4)
/* 09A78C 80099B8C 06010003 */ bgez $s0, .L80099B9C
/* 09A790 80099B90 001040C3 */ sra $t0, $s0, 3
/* 09A794 80099B94 26010007 */ addiu $at, $s0, 7
/* 09A798 80099B98 000140C3 */ sra $t0, $at, 3
.L80099B9C:
/* 09A79C 80099B9C 000848C0 */ sll $t1, $t0, 3
/* 09A7A0 80099BA0 25300008 */ addiu $s0, $t1, 8
/* 09A7A4 80099BA4 8E840000 */ lw $a0, ($s4)
.L80099BA8:
/* 09A7A8 80099BA8 0C0336E0 */ jal osInvalDCache
/* 09A7AC 80099BAC 02002825 */ move $a1, $s0
/* 09A7B0 80099BB0 8E4A0004 */ lw $t2, 4($s2)
/* 09A7B4 80099BB4 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 09A7B8 80099BB8 8E8C0000 */ lw $t4, ($s4)
/* 09A7BC 80099BBC 3C168015 */ lui $s6, %hi(gDmaMesgQueue) # $s6, 0x8015
/* 09A7C0 80099BC0 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 09A7C4 80099BC4 3C020073 */ lui $v0, %hi(_textures_0aSegmentRomStart) # $v0, 0x73
/* 09A7C8 80099BC8 26D6EF58 */ addiu $s6, %lo(gDmaMesgQueue) # addiu $s6, $s6, -0x10a8
/* 09A7CC 80099BCC 24429A30 */ addiu $v0, %lo(_textures_0aSegmentRomStart) # addiu $v0, $v0, -0x65d0
/* 09A7D0 80099BD0 01415824 */ and $t3, $t2, $at
/* 09A7D4 80099BD4 004B3821 */ addu $a3, $v0, $t3
/* 09A7D8 80099BD8 AFA20058 */ sw $v0, 0x58($sp)
/* 09A7DC 80099BDC AFB60018 */ sw $s6, 0x18($sp)
/* 09A7E0 80099BE0 AFB00014 */ sw $s0, 0x14($sp)
/* 09A7E4 80099BE4 27A4006C */ addiu $a0, $sp, 0x6c
/* 09A7E8 80099BE8 00002825 */ move $a1, $zero
/* 09A7EC 80099BEC 00003025 */ move $a2, $zero
/* 09A7F0 80099BF0 0C03370C */ jal osPiStartDma
/* 09A7F4 80099BF4 AFAC0010 */ sw $t4, 0x10($sp)
/* 09A7F8 80099BF8 27B70068 */ addiu $s7, $sp, 0x68
/* 09A7FC 80099BFC 02E02825 */ move $a1, $s7
/* 09A800 80099C00 02C02025 */ move $a0, $s6
/* 09A804 80099C04 0C0335D4 */ jal osRecvMesg
/* 09A808 80099C08 24060001 */ li $a2, 1
/* 09A80C 80099C0C 3C1E8019 */ lui $fp, %hi(sMenuTextureMap) # $fp, 0x8019
/* 09A810 80099C10 27DEE118 */ addiu $fp, %lo(sMenuTextureMap) # addiu $fp, $fp, -0x1ee8
/* 09A814 80099C14 8E220008 */ lw $v0, 8($s1)
.L80099C18:
/* 09A818 80099C18 8FB30060 */ lw $s3, 0x60($sp)
/* 09A81C 80099C1C 54400006 */ bnel $v0, $zero, .L80099C38
/* 09A820 80099C20 94430010 */ lhu $v1, 0x10($v0)
/* 09A824 80099C24 26B50001 */ addiu $s5, $s5, 1
/* 09A828 80099C28 00156E00 */ sll $t5, $s5, 0x18
/* 09A82C 80099C2C 10000029 */ b .L80099CD4
/* 09A830 80099C30 000DAE03 */ sra $s5, $t5, 0x18
/* 09A834 80099C34 94430010 */ lhu $v1, 0x10($v0)
.L80099C38:
/* 09A838 80099C38 00137880 */ sll $t7, $s3, 2
/* 09A83C 80099C3C 00409025 */ move $s2, $v0
/* 09A840 80099C40 10600003 */ beqz $v1, .L80099C50
/* 09A844 80099C44 01E09825 */ move $s3, $t7
/* 09A848 80099C48 10000002 */ b .L80099C54
/* 09A84C 80099C4C 00608025 */ move $s0, $v1
.L80099C50:
/* 09A850 80099C50 24101400 */ li $s0, 5120
.L80099C54:
/* 09A854 80099C54 06010004 */ bgez $s0, .L80099C68
/* 09A858 80099C58 32180007 */ andi $t8, $s0, 7
/* 09A85C 80099C5C 13000002 */ beqz $t8, .L80099C68
/* 09A860 80099C60 00000000 */ nop
/* 09A864 80099C64 2718FFF8 */ addiu $t8, $t8, -8
.L80099C68:
/* 09A868 80099C68 53000008 */ beql $t8, $zero, .L80099C8C
/* 09A86C 80099C6C 8E890000 */ lw $t1, ($s4)
/* 09A870 80099C70 06010003 */ bgez $s0, .L80099C80
/* 09A874 80099C74 0010C8C3 */ sra $t9, $s0, 3
/* 09A878 80099C78 26010007 */ addiu $at, $s0, 7
/* 09A87C 80099C7C 0001C8C3 */ sra $t9, $at, 3
.L80099C80:
/* 09A880 80099C80 001940C0 */ sll $t0, $t9, 3
/* 09A884 80099C84 25100008 */ addiu $s0, $t0, 8
/* 09A888 80099C88 8E890000 */ lw $t1, ($s4)
.L80099C8C:
/* 09A88C 80099C8C 02002825 */ move $a1, $s0
/* 09A890 80099C90 0C0336E0 */ jal osInvalDCache
/* 09A894 80099C94 02692021 */ addu $a0, $s3, $t1
/* 09A898 80099C98 8E4B0004 */ lw $t3, 4($s2)
/* 09A89C 80099C9C 8E8D0000 */ lw $t5, ($s4)
/* 09A8A0 80099CA0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 09A8A4 80099CA4 8FAA0058 */ lw $t2, 0x58($sp)
/* 09A8A8 80099CA8 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 09A8AC 80099CAC 01616024 */ and $t4, $t3, $at
/* 09A8B0 80099CB0 026D7021 */ addu $t6, $s3, $t5
/* 09A8B4 80099CB4 AFAE0010 */ sw $t6, 0x10($sp)
/* 09A8B8 80099CB8 AFB60018 */ sw $s6, 0x18($sp)
/* 09A8BC 80099CBC AFB00014 */ sw $s0, 0x14($sp)
/* 09A8C0 80099CC0 27A4006C */ addiu $a0, $sp, 0x6c
/* 09A8C4 80099CC4 00002825 */ move $a1, $zero
/* 09A8C8 80099CC8 00003025 */ move $a2, $zero
/* 09A8CC 80099CCC 0C03370C */ jal osPiStartDma
/* 09A8D0 80099CD0 014C3821 */ addu $a3, $t2, $t4
.L80099CD4:
/* 09A8D4 80099CD4 8E2F0004 */ lw $t7, 4($s1)
/* 09A8D8 80099CD8 3C098019 */ lui $t1, %hi(gMenuTextureBuffer) # $t1, 0x8019
/* 09A8DC 80099CDC 8D29D9B0 */ lw $t1, %lo(gMenuTextureBuffer)($t1)
/* 09A8E0 80099CE0 000FC0C0 */ sll $t8, $t7, 3
/* 09A8E4 80099CE4 031EC821 */ addu $t9, $t8, $fp
/* 09A8E8 80099CE8 8F220004 */ lw $v0, 4($t9)
/* 09A8EC 80099CEC 8E840000 */ lw $a0, ($s4)
/* 09A8F0 80099CF0 00024040 */ sll $t0, $v0, 1
/* 09A8F4 80099CF4 0C010034 */ jal mio0decode
/* 09A8F8 80099CF8 01092821 */ addu $a1, $t0, $t1
/* 09A8FC 80099CFC AE200000 */ sw $zero, ($s1)
/* 09A900 80099D00 16A00048 */ bnez $s5, .L80099E24
/* 09A904 80099D04 26310008 */ addiu $s1, $s1, 8
/* 09A908 80099D08 8FB30060 */ lw $s3, 0x60($sp)
/* 09A90C 80099D0C 02C02025 */ move $a0, $s6
/* 09A910 80099D10 02E02825 */ move $a1, $s7
/* 09A914 80099D14 00135880 */ sll $t3, $s3, 2
/* 09A918 80099D18 01609825 */ move $s3, $t3
/* 09A91C 80099D1C 0C0335D4 */ jal osRecvMesg
/* 09A920 80099D20 24060001 */ li $a2, 1
/* 09A924 80099D24 8E220008 */ lw $v0, 8($s1)
/* 09A928 80099D28 54400006 */ bnel $v0, $zero, .L80099D44
/* 09A92C 80099D2C 94430010 */ lhu $v1, 0x10($v0)
/* 09A930 80099D30 26B50001 */ addiu $s5, $s5, 1
/* 09A934 80099D34 00155600 */ sll $t2, $s5, 0x18
/* 09A938 80099D38 10000026 */ b .L80099DD4
/* 09A93C 80099D3C 000AAE03 */ sra $s5, $t2, 0x18
/* 09A940 80099D40 94430010 */ lhu $v1, 0x10($v0)
.L80099D44:
/* 09A944 80099D44 00409025 */ move $s2, $v0
/* 09A948 80099D48 24101400 */ li $s0, 5120
/* 09A94C 80099D4C 10600003 */ beqz $v1, .L80099D5C
/* 09A950 80099D50 00000000 */ nop
/* 09A954 80099D54 10000001 */ b .L80099D5C
/* 09A958 80099D58 00608025 */ move $s0, $v1
.L80099D5C:
/* 09A95C 80099D5C 06010004 */ bgez $s0, .L80099D70
/* 09A960 80099D60 320D0007 */ andi $t5, $s0, 7
/* 09A964 80099D64 11A00002 */ beqz $t5, .L80099D70
/* 09A968 80099D68 00000000 */ nop
/* 09A96C 80099D6C 25ADFFF8 */ addiu $t5, $t5, -8
.L80099D70:
/* 09A970 80099D70 51A00008 */ beql $t5, $zero, .L80099D94
/* 09A974 80099D74 8E840000 */ lw $a0, ($s4)
/* 09A978 80099D78 06010003 */ bgez $s0, .L80099D88
/* 09A97C 80099D7C 001070C3 */ sra $t6, $s0, 3
/* 09A980 80099D80 26010007 */ addiu $at, $s0, 7
/* 09A984 80099D84 000170C3 */ sra $t6, $at, 3
.L80099D88:
/* 09A988 80099D88 000E78C0 */ sll $t7, $t6, 3
/* 09A98C 80099D8C 25F00008 */ addiu $s0, $t7, 8
/* 09A990 80099D90 8E840000 */ lw $a0, ($s4)
.L80099D94:
/* 09A994 80099D94 0C0336E0 */ jal osInvalDCache
/* 09A998 80099D98 02002825 */ move $a1, $s0
/* 09A99C 80099D9C 8E590004 */ lw $t9, 4($s2)
/* 09A9A0 80099DA0 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 09A9A4 80099DA4 8FB80058 */ lw $t8, 0x58($sp)
/* 09A9A8 80099DA8 8E890000 */ lw $t1, ($s4)
/* 09A9AC 80099DAC 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 09A9B0 80099DB0 03214024 */ and $t0, $t9, $at
/* 09A9B4 80099DB4 AFB60018 */ sw $s6, 0x18($sp)
/* 09A9B8 80099DB8 AFB00014 */ sw $s0, 0x14($sp)
/* 09A9BC 80099DBC 27A4006C */ addiu $a0, $sp, 0x6c
/* 09A9C0 80099DC0 00002825 */ move $a1, $zero
/* 09A9C4 80099DC4 00003025 */ move $a2, $zero
/* 09A9C8 80099DC8 03083821 */ addu $a3, $t8, $t0
/* 09A9CC 80099DCC 0C03370C */ jal osPiStartDma
/* 09A9D0 80099DD0 AFA90010 */ sw $t1, 0x10($sp)
.L80099DD4:
/* 09A9D4 80099DD4 8E2B0004 */ lw $t3, 4($s1)
/* 09A9D8 80099DD8 3C0F8019 */ lui $t7, %hi(gMenuTextureBuffer) # $t7, 0x8019
/* 09A9DC 80099DDC 8DEFD9B0 */ lw $t7, %lo(gMenuTextureBuffer)($t7)
/* 09A9E0 80099DE0 000B50C0 */ sll $t2, $t3, 3
/* 09A9E4 80099DE4 015E6021 */ addu $t4, $t2, $fp
/* 09A9E8 80099DE8 8D820004 */ lw $v0, 4($t4)
/* 09A9EC 80099DEC 8E8D0000 */ lw $t5, ($s4)
/* 09A9F0 80099DF0 00027040 */ sll $t6, $v0, 1
/* 09A9F4 80099DF4 01CF2821 */ addu $a1, $t6, $t7
/* 09A9F8 80099DF8 0C010034 */ jal mio0decode
/* 09A9FC 80099DFC 026D2021 */ addu $a0, $s3, $t5
/* 09AA00 80099E00 AE200000 */ sw $zero, ($s1)
/* 09AA04 80099E04 16A00007 */ bnez $s5, .L80099E24
/* 09AA08 80099E08 26310008 */ addiu $s1, $s1, 8
/* 09AA0C 80099E0C 02C02025 */ move $a0, $s6
/* 09AA10 80099E10 02E02825 */ move $a1, $s7
/* 09AA14 80099E14 0C0335D4 */ jal osRecvMesg
/* 09AA18 80099E18 24060001 */ li $a2, 1
/* 09AA1C 80099E1C 1000FF7E */ b .L80099C18
/* 09AA20 80099E20 8E220008 */ lw $v0, 8($s1)
.L80099E24:
/* 09AA24 80099E24 8FBF004C */ lw $ra, 0x4c($sp)
/* 09AA28 80099E28 8FB00028 */ lw $s0, 0x28($sp)
/* 09AA2C 80099E2C 8FB1002C */ lw $s1, 0x2c($sp)
/* 09AA30 80099E30 8FB20030 */ lw $s2, 0x30($sp)
/* 09AA34 80099E34 8FB30034 */ lw $s3, 0x34($sp)
/* 09AA38 80099E38 8FB40038 */ lw $s4, 0x38($sp)
/* 09AA3C 80099E3C 8FB5003C */ lw $s5, 0x3c($sp)
/* 09AA40 80099E40 8FB60040 */ lw $s6, 0x40($sp)
/* 09AA44 80099E44 8FB70044 */ lw $s7, 0x44($sp)
/* 09AA48 80099E48 8FBE0048 */ lw $fp, 0x48($sp)
/* 09AA4C 80099E4C 03E00008 */ jr $ra
/* 09AA50 80099E50 27BD0098 */ addiu $sp, $sp, 0x98
@@ -1,244 +0,0 @@
glabel func_80099EC4
/* 09AAC4 80099EC4 27BDFF70 */ addiu $sp, $sp, -0x90
/* 09AAC8 80099EC8 AFB1002C */ sw $s1, 0x2c($sp)
/* 09AACC 80099ECC 3C028019 */ lui $v0, %hi(D_8018E0E8) # 0x8019
/* 09AAD0 80099ED0 2451E0E8 */ addiu $s1, $v0, %lo(D_8018E0E8) # -0x1f18
/* 09AAD4 80099ED4 AFBF004C */ sw $ra, 0x4c($sp)
/* 09AAD8 80099ED8 AFBE0048 */ sw $fp, 0x48($sp)
/* 09AADC 80099EDC AFB70044 */ sw $s7, 0x44($sp)
/* 09AAE0 80099EE0 AFB60040 */ sw $s6, 0x40($sp)
/* 09AAE4 80099EE4 AFB5003C */ sw $s5, 0x3c($sp)
/* 09AAE8 80099EE8 AFB40038 */ sw $s4, 0x38($sp)
/* 09AAEC 80099EEC AFB30034 */ sw $s3, 0x34($sp)
/* 09AAF0 80099EF0 AFB20030 */ sw $s2, 0x30($sp)
/* 09AAF4 80099EF4 AFB00028 */ sw $s0, 0x28($sp)
/* 09AAF8 80099EF8 8E320000 */ lw $s2, ($s1)
/* 09AAFC 80099EFC 3C138019 */ lui $s3, %hi(gMenuCompressedBuffer) # $s3, 0x8019
/* 09AB00 80099F00 0000A025 */ move $s4, $zero
/* 09AB04 80099F04 124000C0 */ beqz $s2, .L8009A208
/* 09AB08 80099F08 2673D9B4 */ addiu $s3, %lo(gMenuCompressedBuffer) # addiu $s3, $s3, -0x264c
/* 09AB0C 80099F0C 96430010 */ lhu $v1, 0x10($s2)
/* 09AB10 80099F10 24101400 */ li $s0, 5120
/* 09AB14 80099F14 10600003 */ beqz $v1, .L80099F24
/* 09AB18 80099F18 00000000 */ nop
/* 09AB1C 80099F1C 10000001 */ b .L80099F24
/* 09AB20 80099F20 00608025 */ move $s0, $v1
.L80099F24:
/* 09AB24 80099F24 06010004 */ bgez $s0, .L80099F38
/* 09AB28 80099F28 320E0007 */ andi $t6, $s0, 7
/* 09AB2C 80099F2C 11C00002 */ beqz $t6, .L80099F38
/* 09AB30 80099F30 00000000 */ nop
/* 09AB34 80099F34 25CEFFF8 */ addiu $t6, $t6, -8
.L80099F38:
/* 09AB38 80099F38 51C00008 */ beql $t6, $zero, .L80099F5C
/* 09AB3C 80099F3C 8E640000 */ lw $a0, ($s3)
/* 09AB40 80099F40 06010003 */ bgez $s0, .L80099F50
/* 09AB44 80099F44 001078C3 */ sra $t7, $s0, 3
/* 09AB48 80099F48 26010007 */ addiu $at, $s0, 7
/* 09AB4C 80099F4C 000178C3 */ sra $t7, $at, 3
.L80099F50:
/* 09AB50 80099F50 000FC0C0 */ sll $t8, $t7, 3
/* 09AB54 80099F54 27100008 */ addiu $s0, $t8, 8
/* 09AB58 80099F58 8E640000 */ lw $a0, ($s3)
.L80099F5C:
/* 09AB5C 80099F5C 0C0336E0 */ jal osInvalDCache
/* 09AB60 80099F60 02002825 */ move $a1, $s0
/* 09AB64 80099F64 8E590004 */ lw $t9, 4($s2)
/* 09AB68 80099F68 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 09AB6C 80099F6C 8E690000 */ lw $t1, ($s3)
/* 09AB70 80099F70 3C158015 */ lui $s5, %hi(gDmaMesgQueue) # $s5, 0x8015
/* 09AB74 80099F74 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 09AB78 80099F78 3C1E0073 */ lui $fp, %hi(_textures_0aSegmentRomStart) # $fp, 0x73
/* 09AB7C 80099F7C 26B5EF58 */ addiu $s5, %lo(gDmaMesgQueue) # addiu $s5, $s5, -0x10a8
/* 09AB80 80099F80 27DE9A30 */ addiu $fp, %lo(_textures_0aSegmentRomStart) # addiu $fp, $fp, -0x65d0
/* 09AB84 80099F84 03214024 */ and $t0, $t9, $at
/* 09AB88 80099F88 03C83821 */ addu $a3, $fp, $t0
/* 09AB8C 80099F8C AFB50018 */ sw $s5, 0x18($sp)
/* 09AB90 80099F90 AFB00014 */ sw $s0, 0x14($sp)
/* 09AB94 80099F94 27A40068 */ addiu $a0, $sp, 0x68
/* 09AB98 80099F98 00002825 */ move $a1, $zero
/* 09AB9C 80099F9C 00003025 */ move $a2, $zero
/* 09ABA0 80099FA0 0C03370C */ jal osPiStartDma
/* 09ABA4 80099FA4 AFA90010 */ sw $t1, 0x10($sp)
/* 09ABA8 80099FA8 27B60064 */ addiu $s6, $sp, 0x64
/* 09ABAC 80099FAC 02C02825 */ move $a1, $s6
/* 09ABB0 80099FB0 02A02025 */ move $a0, $s5
/* 09ABB4 80099FB4 0C0335D4 */ jal osRecvMesg
/* 09ABB8 80099FB8 24060001 */ li $a2, 1
/* 09ABBC 80099FBC 3C17802C */ lui $s7, %hi(D_802BFB80) # $s7, 0x802c
/* 09ABC0 80099FC0 26F7FB80 */ addiu $s7, %lo(D_802BFB80) # addiu $s7, $s7, -0x480
/* 09ABC4 80099FC4 8E220008 */ lw $v0, 8($s1)
.L80099FC8:
/* 09ABC8 80099FC8 54400006 */ bnel $v0, $zero, .L80099FE4
/* 09ABCC 80099FCC 94430010 */ lhu $v1, 0x10($v0)
/* 09ABD0 80099FD0 26940001 */ addiu $s4, $s4, 1
/* 09ABD4 80099FD4 00145600 */ sll $t2, $s4, 0x18
/* 09ABD8 80099FD8 10000027 */ b .L8009A078
/* 09ABDC 80099FDC 000AA603 */ sra $s4, $t2, 0x18
/* 09ABE0 80099FE0 94430010 */ lhu $v1, 0x10($v0)
.L80099FE4:
/* 09ABE4 80099FE4 00409025 */ move $s2, $v0
/* 09ABE8 80099FE8 24101400 */ li $s0, 5120
/* 09ABEC 80099FEC 10600003 */ beqz $v1, .L80099FFC
/* 09ABF0 80099FF0 00000000 */ nop
/* 09ABF4 80099FF4 10000001 */ b .L80099FFC
/* 09ABF8 80099FF8 00608025 */ move $s0, $v1
.L80099FFC:
/* 09ABFC 80099FFC 06010004 */ bgez $s0, .L8009A010
/* 09AC00 8009A000 320C0007 */ andi $t4, $s0, 7
/* 09AC04 8009A004 11800002 */ beqz $t4, .L8009A010
/* 09AC08 8009A008 00000000 */ nop
/* 09AC0C 8009A00C 258CFFF8 */ addiu $t4, $t4, -8
.L8009A010:
/* 09AC10 8009A010 51800008 */ beql $t4, $zero, .L8009A034
/* 09AC14 8009A014 8E640000 */ lw $a0, ($s3)
/* 09AC18 8009A018 06010003 */ bgez $s0, .L8009A028
/* 09AC1C 8009A01C 001068C3 */ sra $t5, $s0, 3
/* 09AC20 8009A020 26010007 */ addiu $at, $s0, 7
/* 09AC24 8009A024 000168C3 */ sra $t5, $at, 3
.L8009A028:
/* 09AC28 8009A028 000D70C0 */ sll $t6, $t5, 3
/* 09AC2C 8009A02C 25D00008 */ addiu $s0, $t6, 8
/* 09AC30 8009A030 8E640000 */ lw $a0, ($s3)
.L8009A034:
/* 09AC34 8009A034 02002825 */ move $a1, $s0
/* 09AC38 8009A038 0C0336E0 */ jal osInvalDCache
/* 09AC3C 8009A03C 24841400 */ addiu $a0, $a0, 0x1400
/* 09AC40 8009A040 8E4F0004 */ lw $t7, 4($s2)
/* 09AC44 8009A044 8E790000 */ lw $t9, ($s3)
/* 09AC48 8009A048 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 09AC4C 8009A04C 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 09AC50 8009A050 01E1C024 */ and $t8, $t7, $at
/* 09AC54 8009A054 27281400 */ addiu $t0, $t9, 0x1400
/* 09AC58 8009A058 AFA80010 */ sw $t0, 0x10($sp)
/* 09AC5C 8009A05C 03D83821 */ addu $a3, $fp, $t8
/* 09AC60 8009A060 AFB50018 */ sw $s5, 0x18($sp)
/* 09AC64 8009A064 AFB00014 */ sw $s0, 0x14($sp)
/* 09AC68 8009A068 27A40068 */ addiu $a0, $sp, 0x68
/* 09AC6C 8009A06C 00002825 */ move $a1, $zero
/* 09AC70 8009A070 0C03370C */ jal osPiStartDma
/* 09AC74 8009A074 00003025 */ move $a2, $zero
.L8009A078:
/* 09AC78 8009A078 86220004 */ lh $v0, 4($s1)
/* 09AC7C 8009A07C 86290006 */ lh $t1, 6($s1)
/* 09AC80 8009A080 8E640000 */ lw $a0, ($s3)
/* 09AC84 8009A084 00095400 */ sll $t2, $t1, 0x10
/* 09AC88 8009A088 02EA5821 */ addu $t3, $s7, $t2
/* 09AC8C 8009A08C 04410003 */ bgez $v0, .L8009A09C
/* 09AC90 8009A090 00026043 */ sra $t4, $v0, 1
/* 09AC94 8009A094 24410001 */ addiu $at, $v0, 1
/* 09AC98 8009A098 00016043 */ sra $t4, $at, 1
.L8009A09C:
/* 09AC9C 8009A09C 000C6BC0 */ sll $t5, $t4, 0xf
/* 09ACA0 8009A0A0 016D7021 */ addu $t6, $t3, $t5
/* 09ACA4 8009A0A4 04410004 */ bgez $v0, .L8009A0B8
/* 09ACA8 8009A0A8 304F0001 */ andi $t7, $v0, 1
/* 09ACAC 8009A0AC 11E00002 */ beqz $t7, .L8009A0B8
/* 09ACB0 8009A0B0 00000000 */ nop
/* 09ACB4 8009A0B4 25EFFFFE */ addiu $t7, $t7, -2
.L8009A0B8:
/* 09ACB8 8009A0B8 000FC340 */ sll $t8, $t7, 0xd
/* 09ACBC 8009A0BC 01D82821 */ addu $a1, $t6, $t8
/* 09ACC0 8009A0C0 0C010034 */ jal mio0decode
/* 09ACC4 8009A0C4 24A54000 */ addiu $a1, $a1, 0x4000
/* 09ACC8 8009A0C8 AE200000 */ sw $zero, ($s1)
/* 09ACCC 8009A0CC 1680004E */ bnez $s4, .L8009A208
/* 09ACD0 8009A0D0 26310008 */ addiu $s1, $s1, 8
/* 09ACD4 8009A0D4 02A02025 */ move $a0, $s5
/* 09ACD8 8009A0D8 02C02825 */ move $a1, $s6
/* 09ACDC 8009A0DC 0C0335D4 */ jal osRecvMesg
/* 09ACE0 8009A0E0 24060001 */ li $a2, 1
/* 09ACE4 8009A0E4 8E220008 */ lw $v0, 8($s1)
/* 09ACE8 8009A0E8 54400006 */ bnel $v0, $zero, .L8009A104
/* 09ACEC 8009A0EC 94430010 */ lhu $v1, 0x10($v0)
/* 09ACF0 8009A0F0 26940001 */ addiu $s4, $s4, 1
/* 09ACF4 8009A0F4 0014CE00 */ sll $t9, $s4, 0x18
/* 09ACF8 8009A0F8 10000025 */ b .L8009A190
/* 09ACFC 8009A0FC 0019A603 */ sra $s4, $t9, 0x18
/* 09AD00 8009A100 94430010 */ lhu $v1, 0x10($v0)
.L8009A104:
/* 09AD04 8009A104 00409025 */ move $s2, $v0
/* 09AD08 8009A108 24101400 */ li $s0, 5120
/* 09AD0C 8009A10C 10600003 */ beqz $v1, .L8009A11C
/* 09AD10 8009A110 00000000 */ nop
/* 09AD14 8009A114 10000001 */ b .L8009A11C
/* 09AD18 8009A118 00608025 */ move $s0, $v1
.L8009A11C:
/* 09AD1C 8009A11C 06010004 */ bgez $s0, .L8009A130
/* 09AD20 8009A120 32090007 */ andi $t1, $s0, 7
/* 09AD24 8009A124 11200002 */ beqz $t1, .L8009A130
/* 09AD28 8009A128 00000000 */ nop
/* 09AD2C 8009A12C 2529FFF8 */ addiu $t1, $t1, -8
.L8009A130:
/* 09AD30 8009A130 51200008 */ beql $t1, $zero, .L8009A154
/* 09AD34 8009A134 8E640000 */ lw $a0, ($s3)
/* 09AD38 8009A138 06010003 */ bgez $s0, .L8009A148
/* 09AD3C 8009A13C 001050C3 */ sra $t2, $s0, 3
/* 09AD40 8009A140 26010007 */ addiu $at, $s0, 7
/* 09AD44 8009A144 000150C3 */ sra $t2, $at, 3
.L8009A148:
/* 09AD48 8009A148 000A60C0 */ sll $t4, $t2, 3
/* 09AD4C 8009A14C 25900008 */ addiu $s0, $t4, 8
/* 09AD50 8009A150 8E640000 */ lw $a0, ($s3)
.L8009A154:
/* 09AD54 8009A154 0C0336E0 */ jal osInvalDCache
/* 09AD58 8009A158 02002825 */ move $a1, $s0
/* 09AD5C 8009A15C 8E4B0004 */ lw $t3, 4($s2)
/* 09AD60 8009A160 3C0100FF */ lui $at, (0x00FFFFFF >> 16) # lui $at, 0xff
/* 09AD64 8009A164 8E6F0000 */ lw $t7, ($s3)
/* 09AD68 8009A168 3421FFFF */ ori $at, (0x00FFFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 09AD6C 8009A16C 01616824 */ and $t5, $t3, $at
/* 09AD70 8009A170 03CD3821 */ addu $a3, $fp, $t5
/* 09AD74 8009A174 AFB50018 */ sw $s5, 0x18($sp)
/* 09AD78 8009A178 AFB00014 */ sw $s0, 0x14($sp)
/* 09AD7C 8009A17C 27A40068 */ addiu $a0, $sp, 0x68
/* 09AD80 8009A180 00002825 */ move $a1, $zero
/* 09AD84 8009A184 00003025 */ move $a2, $zero
/* 09AD88 8009A188 0C03370C */ jal osPiStartDma
/* 09AD8C 8009A18C AFAF0010 */ sw $t7, 0x10($sp)
.L8009A190:
/* 09AD90 8009A190 86220004 */ lh $v0, 4($s1)
/* 09AD94 8009A194 862E0006 */ lh $t6, 6($s1)
/* 09AD98 8009A198 8E640000 */ lw $a0, ($s3)
/* 09AD9C 8009A19C 000EC400 */ sll $t8, $t6, 0x10
/* 09ADA0 8009A1A0 02F8C821 */ addu $t9, $s7, $t8
/* 09ADA4 8009A1A4 24841400 */ addiu $a0, $a0, 0x1400
/* 09ADA8 8009A1A8 04410003 */ bgez $v0, .L8009A1B8
/* 09ADAC 8009A1AC 00024043 */ sra $t0, $v0, 1
/* 09ADB0 8009A1B0 24410001 */ addiu $at, $v0, 1
/* 09ADB4 8009A1B4 00014043 */ sra $t0, $at, 1
.L8009A1B8:
/* 09ADB8 8009A1B8 00084BC0 */ sll $t1, $t0, 0xf
/* 09ADBC 8009A1BC 03295021 */ addu $t2, $t9, $t1
/* 09ADC0 8009A1C0 04410004 */ bgez $v0, .L8009A1D4
/* 09ADC4 8009A1C4 304C0001 */ andi $t4, $v0, 1
/* 09ADC8 8009A1C8 11800002 */ beqz $t4, .L8009A1D4
/* 09ADCC 8009A1CC 00000000 */ nop
/* 09ADD0 8009A1D0 258CFFFE */ addiu $t4, $t4, -2
.L8009A1D4:
/* 09ADD4 8009A1D4 000C5B40 */ sll $t3, $t4, 0xd
/* 09ADD8 8009A1D8 014B2821 */ addu $a1, $t2, $t3
/* 09ADDC 8009A1DC 0C010034 */ jal mio0decode
/* 09ADE0 8009A1E0 24A54000 */ addiu $a1, $a1, 0x4000
/* 09ADE4 8009A1E4 AE200000 */ sw $zero, ($s1)
/* 09ADE8 8009A1E8 16800007 */ bnez $s4, .L8009A208
/* 09ADEC 8009A1EC 26310008 */ addiu $s1, $s1, 8
/* 09ADF0 8009A1F0 02A02025 */ move $a0, $s5
/* 09ADF4 8009A1F4 02C02825 */ move $a1, $s6
/* 09ADF8 8009A1F8 0C0335D4 */ jal osRecvMesg
/* 09ADFC 8009A1FC 24060001 */ li $a2, 1
/* 09AE00 8009A200 1000FF71 */ b .L80099FC8
/* 09AE04 8009A204 8E220008 */ lw $v0, 8($s1)
.L8009A208:
/* 09AE08 8009A208 8FBF004C */ lw $ra, 0x4c($sp)
/* 09AE0C 8009A20C 8FB00028 */ lw $s0, 0x28($sp)
/* 09AE10 8009A210 8FB1002C */ lw $s1, 0x2c($sp)
/* 09AE14 8009A214 8FB20030 */ lw $s2, 0x30($sp)
/* 09AE18 8009A218 8FB30034 */ lw $s3, 0x34($sp)
/* 09AE1C 8009A21C 8FB40038 */ lw $s4, 0x38($sp)
/* 09AE20 8009A220 8FB5003C */ lw $s5, 0x3c($sp)
/* 09AE24 8009A224 8FB60040 */ lw $s6, 0x40($sp)
/* 09AE28 8009A228 8FB70044 */ lw $s7, 0x44($sp)
/* 09AE2C 8009A22C 8FBE0048 */ lw $fp, 0x48($sp)
/* 09AE30 8009A230 03E00008 */ jr $ra
/* 09AE34 8009A234 27BD0090 */ addiu $sp, $sp, 0x90
@@ -1,989 +0,0 @@
.section .late_rodata
glabel jpt_800F1B5C
.word L800A2054, L800A2054, L800A2054, L800A2054
.word L800A2C7C, L800A2C7C, L800A2C7C, L800A2C7C
.word L800A2C7C, L800A2118, L800A2118, L800A21E4
.word L800A2C7C, L800A2C7C, L800A2C7C, L800A2C7C
.word L800A2C7C, L800A2C7C, L800A2C7C, L800A23DC
.word L800A23DC, L800A223C, L800A223C, L800A223C
.word L800A223C, L800A2C7C, L800A2C7C, L800A2C7C
.word L800A2C7C, L800A23DC, L800A23DC, L800A22AC
.word L800A22AC, L800A22AC, L800A22AC, L800A26A8
.word L800A26A8, L800A29D0, L800A29D0, L800A29D0
.word L800A2C7C, L800A2C7C, L800A2C7C, L800A2C7C
.word L800A2314, L800A2314, L800A2C7C, L800A2C7C
.word L800A2C7C, L800A2384, L800A2384
glabel D_800F1C28
.float 0.9
glabel D_800F1C2C
.float 0.9
glabel D_800F1C30
.float 0.8
glabel D_800F1C34
.float 0.9
glabel D_800F1C38
.float 0.6
glabel D_800F1C3C
.float 0.8
glabel D_800F1C40
.float 0.6
glabel D_800F1C44
.float 0.6
glabel jpt_800F1C48
.word L800A2CA0, L800A2CA0, L800A2CBC, L800A2CBC
.word L800A2CBC, L800A2CBC, L800A2CBC, L800A2CBC
.word L800A2CBC, L800A2CBC, L800A2CA0, L800A2CA0
.word L800A2CBC, L800A2CBC, L800A2CBC, L800A2CBC
.word L800A2CA0, L800A2CA0
.section .text
glabel func_800A1FB0
/* 0A2BB0 800A1FB0 27BDFF18 */ addiu $sp, $sp, -0xe8
/* 0A2BB4 800A1FB4 AFB00048 */ sw $s0, 0x48($sp)
/* 0A2BB8 800A1FB8 3C108015 */ lui $s0, %hi(gDisplayListHead) # $s0, 0x8015
/* 0A2BBC 800A1FBC 26100298 */ addiu $s0, %lo(gDisplayListHead) # addiu $s0, $s0, 0x298
/* 0A2BC0 800A1FC0 AFBF006C */ sw $ra, 0x6c($sp)
/* 0A2BC4 800A1FC4 AFA400E8 */ sw $a0, 0xe8($sp)
/* 0A2BC8 800A1FC8 240E00F0 */ li $t6, 240
/* 0A2BCC 800A1FCC 240F0064 */ li $t7, 100
/* 0A2BD0 800A1FD0 AFBE0068 */ sw $fp, 0x68($sp)
/* 0A2BD4 800A1FD4 AFB70064 */ sw $s7, 0x64($sp)
/* 0A2BD8 800A1FD8 AFB60060 */ sw $s6, 0x60($sp)
/* 0A2BDC 800A1FDC AFB5005C */ sw $s5, 0x5c($sp)
/* 0A2BE0 800A1FE0 AFB40058 */ sw $s4, 0x58($sp)
/* 0A2BE4 800A1FE4 AFB30054 */ sw $s3, 0x54($sp)
/* 0A2BE8 800A1FE8 AFB20050 */ sw $s2, 0x50($sp)
/* 0A2BEC 800A1FEC AFB1004C */ sw $s1, 0x4c($sp)
/* 0A2BF0 800A1FF0 F7B80040 */ sdc1 $f24, 0x40($sp)
/* 0A2BF4 800A1FF4 F7B60038 */ sdc1 $f22, 0x38($sp)
/* 0A2BF8 800A1FF8 F7B40030 */ sdc1 $f20, 0x30($sp)
/* 0A2BFC 800A1FFC AFAF0020 */ sw $t7, 0x20($sp)
/* 0A2C00 800A2000 AFAE0010 */ sw $t6, 0x10($sp)
/* 0A2C04 800A2004 8E040000 */ lw $a0, ($s0)
/* 0A2C08 800A2008 AFA00014 */ sw $zero, 0x14($sp)
/* 0A2C0C 800A200C AFA00018 */ sw $zero, 0x18($sp)
/* 0A2C10 800A2010 AFA0001C */ sw $zero, 0x1c($sp)
/* 0A2C14 800A2014 00002825 */ move $a1, $zero
/* 0A2C18 800A2018 00003025 */ move $a2, $zero
/* 0A2C1C 800A201C 0C02637E */ jal draw_box
/* 0A2C20 800A2020 24070140 */ li $a3, 320
/* 0A2C24 800A2024 AE020000 */ sw $v0, ($s0)
/* 0A2C28 800A2028 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2C2C 800A202C 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
/* 0A2C30 800A2030 2478FFEB */ addiu $t8, $v1, -0x15
/* 0A2C34 800A2034 2F010033 */ sltiu $at, $t8, 0x33
/* 0A2C38 800A2038 10200310 */ beqz $at, .L800A2C7C
/* 0A2C3C 800A203C 0018C080 */ sll $t8, $t8, 2
/* 0A2C40 800A2040 3C01800F */ lui $at, %hi(jpt_800F1B5C)
/* 0A2C44 800A2044 00380821 */ addu $at, $at, $t8
/* 0A2C48 800A2048 8C381B5C */ lw $t8, %lo(jpt_800F1B5C)($at)
/* 0A2C4C 800A204C 03000008 */ jr $t8
/* 0A2C50 800A2050 00000000 */ nop
glabel L800A2054
/* 0A2C54 800A2054 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A2C58 800A2058 4481B000 */ mtc1 $at, $f22
/* 0A2C5C 800A205C 3C01800F */ lui $at, %hi(D_800F1C28) # $at, 0x800f
/* 0A2C60 800A2060 3C11800E */ lui $s1, %hi(gTextOptionMenu) # $s1, 0x800e
/* 0A2C64 800A2064 26317868 */ addiu $s1, %lo(gTextOptionMenu) # addiu $s1, $s1, 0x7868
/* 0A2C68 800A2068 C4341C28 */ lwc1 $f20, %lo(D_800F1C28)($at)
/* 0A2C6C 800A206C 00009025 */ move $s2, $zero
/* 0A2C70 800A2070 2464FFEB */ addiu $a0, $v1, -0x15
/* 0A2C74 800A2074 24100055 */ li $s0, 85
/* 0A2C78 800A2078 24130004 */ li $s3, 4
.L800A207C:
/* 0A2C7C 800A207C 02402825 */ move $a1, $s2
/* 0A2C80 800A2080 0C024889 */ jal set_text_color_rainbow_if_selected
/* 0A2C84 800A2084 24060003 */ li $a2, 3
/* 0A2C88 800A2088 24040032 */ li $a0, 50
/* 0A2C8C 800A208C 02002825 */ move $a1, $s0
/* 0A2C90 800A2090 8E260000 */ lw $a2, ($s1)
/* 0A2C94 800A2094 00003825 */ move $a3, $zero
/* 0A2C98 800A2098 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2C9C 800A209C 0C024CC9 */ jal print_text_mode_1
/* 0A2CA0 800A20A0 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2CA4 800A20A4 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019
/* 0A2CA8 800A20A8 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0)
/* 0A2CAC 800A20AC 26310004 */ addiu $s1, $s1, 4
/* 0A2CB0 800A20B0 24190032 */ li $t9, 50
/* 0A2CB4 800A20B4 2484FFEB */ addiu $a0, $a0, -0x15
/* 0A2CB8 800A20B8 56440004 */ bnel $s2, $a0, .L800A20CC
/* 0A2CBC 800A20BC 26520001 */ addiu $s2, $s2, 1
/* 0A2CC0 800A20C0 A7B900E0 */ sh $t9, 0xe0($sp)
/* 0A2CC4 800A20C4 A7B000E2 */ sh $s0, 0xe2($sp)
/* 0A2CC8 800A20C8 26520001 */ addiu $s2, $s2, 1
.L800A20CC:
/* 0A2CCC 800A20CC 1653FFEB */ bne $s2, $s3, .L800A207C
/* 0A2CD0 800A20D0 26100023 */ addiu $s0, $s0, 0x23
/* 0A2CD4 800A20D4 0C024C36 */ jal set_text_color
/* 0A2CD8 800A20D8 24040001 */ li $a0, 1
/* 0A2CDC 800A20DC 3C088019 */ lui $t0, %hi(gSoundMode) # $t0, 0x8019
/* 0A2CE0 800A20E0 9108EDF2 */ lbu $t0, %lo(gSoundMode)($t0)
/* 0A2CE4 800A20E4 3C06800E */ lui $a2, %hi(gSoundModeNames)
/* 0A2CE8 800A20E8 240400E6 */ li $a0, 230
/* 0A2CEC 800A20EC 00084880 */ sll $t1, $t0, 2
/* 0A2CF0 800A20F0 00C93021 */ addu $a2, $a2, $t1
/* 0A2CF4 800A20F4 8CC67710 */ lw $a2, %lo(gSoundModeNames)($a2)
/* 0A2CF8 800A20F8 24050078 */ li $a1, 120
/* 0A2CFC 800A20FC 00003825 */ move $a3, $zero
/* 0A2D00 800A2100 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2D04 800A2104 0C024DBB */ jal print_text1_center_mode_1
/* 0A2D08 800A2108 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2D0C 800A210C 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2D10 800A2110 100002DA */ b .L800A2C7C
/* 0A2D14 800A2114 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A2118
/* 0A2D18 800A2118 0C024C36 */ jal set_text_color
/* 0A2D1C 800A211C 24040003 */ li $a0, 3
/* 0A2D20 800A2120 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A2D24 800A2124 3C11800E */ lui $s1, %hi(D_800E7878) # $s1, 0x800e
/* 0A2D28 800A2128 3C12800E */ lui $s2, %hi(D_800E7884) # $s2, 0x800e
/* 0A2D2C 800A212C 4481B000 */ mtc1 $at, $f22
/* 0A2D30 800A2130 26527884 */ addiu $s2, %lo(D_800E7884) # addiu $s2, $s2, 0x7884
/* 0A2D34 800A2134 26317878 */ addiu $s1, %lo(D_800E7878) # addiu $s1, $s1, 0x7878
/* 0A2D38 800A2138 24100055 */ li $s0, 85
.L800A213C:
/* 0A2D3C 800A213C 24040028 */ li $a0, 40
/* 0A2D40 800A2140 02002825 */ move $a1, $s0
/* 0A2D44 800A2144 8E260000 */ lw $a2, ($s1)
/* 0A2D48 800A2148 00003825 */ move $a3, $zero
/* 0A2D4C 800A214C E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2D50 800A2150 0C024CC9 */ jal print_text_mode_1
/* 0A2D54 800A2154 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2D58 800A2158 26310004 */ addiu $s1, $s1, 4
/* 0A2D5C 800A215C 0232082B */ sltu $at, $s1, $s2
/* 0A2D60 800A2160 1420FFF6 */ bnez $at, .L800A213C
/* 0A2D64 800A2164 26100014 */ addiu $s0, $s0, 0x14
/* 0A2D68 800A2168 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019
/* 0A2D6C 800A216C 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0)
/* 0A2D70 800A2170 3C11800E */ lui $s1, %hi(D_800E7840) # $s1, 0x800e
/* 0A2D74 800A2174 26317840 */ addiu $s1, %lo(D_800E7840) # addiu $s1, $s1, 0x7840
/* 0A2D78 800A2178 00009025 */ move $s2, $zero
/* 0A2D7C 800A217C 24100096 */ li $s0, 150
/* 0A2D80 800A2180 2484FFE2 */ addiu $a0, $a0, -0x1e
.L800A2184:
/* 0A2D84 800A2184 02402825 */ move $a1, $s2
/* 0A2D88 800A2188 0C024889 */ jal set_text_color_rainbow_if_selected
/* 0A2D8C 800A218C 24060001 */ li $a2, 1
/* 0A2D90 800A2190 24040084 */ li $a0, 132
/* 0A2D94 800A2194 02002825 */ move $a1, $s0
/* 0A2D98 800A2198 8E260000 */ lw $a2, ($s1)
/* 0A2D9C 800A219C 00003825 */ move $a3, $zero
/* 0A2DA0 800A21A0 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2DA4 800A21A4 0C024CC9 */ jal print_text_mode_1
/* 0A2DA8 800A21A8 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2DAC 800A21AC 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2DB0 800A21B0 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
/* 0A2DB4 800A21B4 26310004 */ addiu $s1, $s1, 4
/* 0A2DB8 800A21B8 24010002 */ li $at, 2
/* 0A2DBC 800A21BC 2464FFE2 */ addiu $a0, $v1, -0x1e
/* 0A2DC0 800A21C0 16440003 */ bne $s2, $a0, .L800A21D0
/* 0A2DC4 800A21C4 240A0084 */ li $t2, 132
/* 0A2DC8 800A21C8 A7AA00E0 */ sh $t2, 0xe0($sp)
/* 0A2DCC 800A21CC A7B000E2 */ sh $s0, 0xe2($sp)
.L800A21D0:
/* 0A2DD0 800A21D0 26520001 */ addiu $s2, $s2, 1
/* 0A2DD4 800A21D4 1641FFEB */ bne $s2, $at, .L800A2184
/* 0A2DD8 800A21D8 26100019 */ addiu $s0, $s0, 0x19
/* 0A2DDC 800A21DC 100002A8 */ b .L800A2C80
/* 0A2DE0 800A21E0 246FFFD8 */ addiu $t7, $v1, -0x28
glabel L800A21E4
/* 0A2DE4 800A21E4 0C024C36 */ jal set_text_color
/* 0A2DE8 800A21E8 24040003 */ li $a0, 3
/* 0A2DEC 800A21EC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A2DF0 800A21F0 3C11800E */ lui $s1, %hi(D_800E7884) # $s1, 0x800e
/* 0A2DF4 800A21F4 3C12800E */ lui $s2, %hi(D_800E7890) # $s2, 0x800e
/* 0A2DF8 800A21F8 4481B000 */ mtc1 $at, $f22
/* 0A2DFC 800A21FC 26527890 */ addiu $s2, %lo(D_800E7890) # addiu $s2, $s2, 0x7890
/* 0A2E00 800A2200 26317884 */ addiu $s1, %lo(D_800E7884) # addiu $s1, $s1, 0x7884
/* 0A2E04 800A2204 24100055 */ li $s0, 85
.L800A2208:
/* 0A2E08 800A2208 24040032 */ li $a0, 50
/* 0A2E0C 800A220C 02002825 */ move $a1, $s0
/* 0A2E10 800A2210 8E260000 */ lw $a2, ($s1)
/* 0A2E14 800A2214 00003825 */ move $a3, $zero
/* 0A2E18 800A2218 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2E1C 800A221C 0C024CC9 */ jal print_text_mode_1
/* 0A2E20 800A2220 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2E24 800A2224 26310004 */ addiu $s1, $s1, 4
/* 0A2E28 800A2228 1632FFF7 */ bne $s1, $s2, .L800A2208
/* 0A2E2C 800A222C 26100014 */ addiu $s0, $s0, 0x14
/* 0A2E30 800A2230 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2E34 800A2234 10000291 */ b .L800A2C7C
/* 0A2E38 800A2238 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A223C
/* 0A2E3C 800A223C 0C024C36 */ jal set_text_color
/* 0A2E40 800A2240 24040002 */ li $a0, 2
/* 0A2E44 800A2244 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019
/* 0A2E48 800A2248 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0)
/* 0A2E4C 800A224C 3C0D800E */ lui $t5, %hi(D_800E78D0) # $t5, 0x800e
/* 0A2E50 800A2250 25AD78D0 */ addiu $t5, %lo(D_800E78D0) # addiu $t5, $t5, 0x78d0
/* 0A2E54 800A2254 2442FFD6 */ addiu $v0, $v0, -0x2a
/* 0A2E58 800A2258 00025880 */ sll $t3, $v0, 2
/* 0A2E5C 800A225C 01625823 */ subu $t3, $t3, $v0
/* 0A2E60 800A2260 000B6080 */ sll $t4, $t3, 2
/* 0A2E64 800A2264 3C01800F */ lui $at, %hi(D_800F1C2C) # $at, 0x800f
/* 0A2E68 800A2268 C4341C2C */ lwc1 $f20, %lo(D_800F1C2C)($at)
/* 0A2E6C 800A226C 018D8821 */ addu $s1, $t4, $t5
/* 0A2E70 800A2270 24100055 */ li $s0, 85
/* 0A2E74 800A2274 24120091 */ li $s2, 145
.L800A2278:
/* 0A2E78 800A2278 24040032 */ li $a0, 50
/* 0A2E7C 800A227C 02002825 */ move $a1, $s0
/* 0A2E80 800A2280 8E260000 */ lw $a2, ($s1)
/* 0A2E84 800A2284 00003825 */ move $a3, $zero
/* 0A2E88 800A2288 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2E8C 800A228C 0C024CC9 */ jal print_text_mode_1
/* 0A2E90 800A2290 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2E94 800A2294 26100014 */ addiu $s0, $s0, 0x14
/* 0A2E98 800A2298 1612FFF7 */ bne $s0, $s2, .L800A2278
/* 0A2E9C 800A229C 26310004 */ addiu $s1, $s1, 4
/* 0A2EA0 800A22A0 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2EA4 800A22A4 10000275 */ b .L800A2C7C
/* 0A2EA8 800A22A8 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A22AC
/* 0A2EAC 800A22AC 0C024C36 */ jal set_text_color
/* 0A2EB0 800A22B0 24040002 */ li $a0, 2
/* 0A2EB4 800A22B4 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019
/* 0A2EB8 800A22B8 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0)
/* 0A2EBC 800A22BC 3C18800E */ lui $t8, %hi(D_800E7890) # $t8, 0x800e
/* 0A2EC0 800A22C0 27187890 */ addiu $t8, %lo(D_800E7890) # addiu $t8, $t8, 0x7890
/* 0A2EC4 800A22C4 244EFFCC */ addiu $t6, $v0, -0x34
/* 0A2EC8 800A22C8 000E7900 */ sll $t7, $t6, 4
/* 0A2ECC 800A22CC 3C01800F */ lui $at, %hi(D_800F1C30) # $at, 0x800f
/* 0A2ED0 800A22D0 C4341C30 */ lwc1 $f20, %lo(D_800F1C30)($at)
/* 0A2ED4 800A22D4 01F88821 */ addu $s1, $t7, $t8
/* 0A2ED8 800A22D8 24100055 */ li $s0, 85
/* 0A2EDC 800A22DC 241200A5 */ li $s2, 165
.L800A22E0:
/* 0A2EE0 800A22E0 24040023 */ li $a0, 35
/* 0A2EE4 800A22E4 02002825 */ move $a1, $s0
/* 0A2EE8 800A22E8 8E260000 */ lw $a2, ($s1)
/* 0A2EEC 800A22EC 00003825 */ move $a3, $zero
/* 0A2EF0 800A22F0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2EF4 800A22F4 0C024CC9 */ jal print_text_mode_1
/* 0A2EF8 800A22F8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2EFC 800A22FC 26100014 */ addiu $s0, $s0, 0x14
/* 0A2F00 800A2300 1612FFF7 */ bne $s0, $s2, .L800A22E0
/* 0A2F04 800A2304 26310004 */ addiu $s1, $s1, 4
/* 0A2F08 800A2308 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2F0C 800A230C 1000025B */ b .L800A2C7C
/* 0A2F10 800A2310 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A2314
/* 0A2F14 800A2314 0C024C36 */ jal set_text_color
/* 0A2F18 800A2318 24040002 */ li $a0, 2
/* 0A2F1C 800A231C 3C028019 */ lui $v0, %hi(gSubMenuSelection) # $v0, 0x8019
/* 0A2F20 800A2320 8042EDEC */ lb $v0, %lo(gSubMenuSelection)($v0)
/* 0A2F24 800A2324 3C09800E */ lui $t1, %hi(D_800E7900) # $t1, 0x800e
/* 0A2F28 800A2328 25297900 */ addiu $t1, %lo(D_800E7900) # addiu $t1, $t1, 0x7900
/* 0A2F2C 800A232C 2442FFBF */ addiu $v0, $v0, -0x41
/* 0A2F30 800A2330 0002C880 */ sll $t9, $v0, 2
/* 0A2F34 800A2334 0322C823 */ subu $t9, $t9, $v0
/* 0A2F38 800A2338 00194080 */ sll $t0, $t9, 2
/* 0A2F3C 800A233C 3C01800F */ lui $at, %hi(D_800F1C34) # $at, 0x800f
/* 0A2F40 800A2340 C4341C34 */ lwc1 $f20, %lo(D_800F1C34)($at)
/* 0A2F44 800A2344 01098821 */ addu $s1, $t0, $t1
/* 0A2F48 800A2348 24100055 */ li $s0, 85
/* 0A2F4C 800A234C 24120091 */ li $s2, 145
.L800A2350:
/* 0A2F50 800A2350 24040041 */ li $a0, 65
/* 0A2F54 800A2354 02002825 */ move $a1, $s0
/* 0A2F58 800A2358 8E260000 */ lw $a2, ($s1)
/* 0A2F5C 800A235C 00003825 */ move $a3, $zero
/* 0A2F60 800A2360 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2F64 800A2364 0C024CC9 */ jal print_text_mode_1
/* 0A2F68 800A2368 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2F6C 800A236C 26100014 */ addiu $s0, $s0, 0x14
/* 0A2F70 800A2370 1612FFF7 */ bne $s0, $s2, .L800A2350
/* 0A2F74 800A2374 26310004 */ addiu $s1, $s1, 4
/* 0A2F78 800A2378 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2F7C 800A237C 1000023F */ b .L800A2C7C
/* 0A2F80 800A2380 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A2384
/* 0A2F84 800A2384 0C024C36 */ jal set_text_color
/* 0A2F88 800A2388 24040003 */ li $a0, 3
/* 0A2F8C 800A238C 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A2F90 800A2390 3C11800E */ lui $s1, %hi(D_800E7A48) # $s1, 0x800e
/* 0A2F94 800A2394 3C12800E */ lui $s2, %hi(D_800E7A54) # $s2, 0x800e
/* 0A2F98 800A2398 4481B000 */ mtc1 $at, $f22
/* 0A2F9C 800A239C 26527A54 */ addiu $s2, %lo(D_800E7A54) # addiu $s2, $s2, 0x7a54
/* 0A2FA0 800A23A0 26317A48 */ addiu $s1, %lo(D_800E7A48) # addiu $s1, $s1, 0x7a48
/* 0A2FA4 800A23A4 24100055 */ li $s0, 85
.L800A23A8:
/* 0A2FA8 800A23A8 24040050 */ li $a0, 80
/* 0A2FAC 800A23AC 02002825 */ move $a1, $s0
/* 0A2FB0 800A23B0 8E260000 */ lw $a2, ($s1)
/* 0A2FB4 800A23B4 00003825 */ move $a3, $zero
/* 0A2FB8 800A23B8 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A2FBC 800A23BC 0C024CC9 */ jal print_text_mode_1
/* 0A2FC0 800A23C0 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A2FC4 800A23C4 26310004 */ addiu $s1, $s1, 4
/* 0A2FC8 800A23C8 1632FFF7 */ bne $s1, $s2, .L800A23A8
/* 0A2FCC 800A23CC 26100014 */ addiu $s0, $s0, 0x14
/* 0A2FD0 800A23D0 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A2FD4 800A23D4 10000229 */ b .L800A2C7C
/* 0A2FD8 800A23D8 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A23DC
/* 0A2FDC 800A23DC 24010028 */ li $at, 40
/* 0A2FE0 800A23E0 1061000B */ beq $v1, $at, .L800A2410
/* 0A2FE4 800A23E4 24150028 */ li $s5, 40
/* 0A2FE8 800A23E8 24010029 */ li $at, 41
/* 0A2FEC 800A23EC 10610008 */ beq $v1, $at, .L800A2410
/* 0A2FF0 800A23F0 24010032 */ li $at, 50
/* 0A2FF4 800A23F4 10610008 */ beq $v1, $at, .L800A2418
/* 0A2FF8 800A23F8 24150032 */ li $s5, 50
/* 0A2FFC 800A23FC 24010033 */ li $at, 51
/* 0A3000 800A2400 10610005 */ beq $v1, $at, .L800A2418
/* 0A3004 800A2404 8FB400C0 */ lw $s4, 0xc0($sp)
/* 0A3008 800A2408 10000004 */ b .L800A241C
/* 0A300C 800A240C 8FB500C4 */ lw $s5, 0xc4($sp)
.L800A2410:
/* 0A3010 800A2410 10000002 */ b .L800A241C
/* 0A3014 800A2414 0000A025 */ move $s4, $zero
.L800A2418:
/* 0A3018 800A2418 24140001 */ li $s4, 1
.L800A241C:
/* 0A301C 800A241C 0C024C36 */ jal set_text_color
/* 0A3020 800A2420 26840001 */ addiu $a0, $s4, 1
/* 0A3024 800A2424 3C01800F */ lui $at, %hi(D_800F1C38) # $at, 0x800f
/* 0A3028 800A2428 C4361C38 */ lwc1 $f22, %lo(D_800F1C38)($at)
/* 0A302C 800A242C 00145080 */ sll $t2, $s4, 2
/* 0A3030 800A2430 3C06800E */ lui $a2, %hi(D_800E7920)
/* 0A3034 800A2434 00CA3021 */ addu $a2, $a2, $t2
/* 0A3038 800A2438 8CC67920 */ lw $a2, %lo(D_800E7920)($a2)
/* 0A303C 800A243C 240400A0 */ li $a0, 160
/* 0A3040 800A2440 24050055 */ li $a1, 85
/* 0A3044 800A2444 00003825 */ move $a3, $zero
/* 0A3048 800A2448 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A304C 800A244C 0C024DBB */ jal print_text1_center_mode_1
/* 0A3050 800A2450 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A3054 800A2454 00146900 */ sll $t5, $s4, 4
/* 0A3058 800A2458 01B46821 */ addu $t5, $t5, $s4
/* 0A305C 800A245C 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A3060 800A2460 4481C000 */ mtc1 $at, $f24
/* 0A3064 800A2464 000D68C0 */ sll $t5, $t5, 3
/* 0A3068 800A2468 01B46821 */ addu $t5, $t5, $s4
/* 0A306C 800A246C 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0A3070 800A2470 3C0C800E */ lui $t4, %hi(D_800E7918) # $t4, 0x800e
/* 0A3074 800A2474 258C7918 */ addiu $t4, %lo(D_800E7918) # addiu $t4, $t4, 0x7918
/* 0A3078 800A2478 25AE002A */ addiu $t6, $t5, 0x2a
/* 0A307C 800A247C 240B005C */ li $t3, 92
/* 0A3080 800A2480 3C17800E */ lui $s7, %hi(gGlobalTimer) # $s7, 0x800e
/* 0A3084 800A2484 4481A000 */ mtc1 $at, $f20
/* 0A3088 800A2488 26F7C54C */ addiu $s7, %lo(gGlobalTimer) # addiu $s7, $s7, -0x3ab4
/* 0A308C 800A248C AFAB0088 */ sw $t3, 0x88($sp)
/* 0A3090 800A2490 AFAE0078 */ sw $t6, 0x78($sp)
/* 0A3094 800A2494 AFAC0084 */ sw $t4, 0x84($sp)
/* 0A3098 800A2498 24160020 */ li $s6, 32
/* 0A309C 800A249C 2413002A */ li $s3, 42
/* 0A30A0 800A24A0 241E0003 */ li $fp, 3
.L800A24A4:
/* 0A30A4 800A24A4 0C024C36 */ jal set_text_color
/* 0A30A8 800A24A8 03C02025 */ move $a0, $fp
/* 0A30AC 800A24AC 8FAF0084 */ lw $t7, 0x84($sp)
/* 0A30B0 800A24B0 8FA40088 */ lw $a0, 0x88($sp)
/* 0A30B4 800A24B4 2405007D */ li $a1, 125
/* 0A30B8 800A24B8 8DE60000 */ lw $a2, ($t7)
/* 0A30BC 800A24BC E7B80014 */ swc1 $f24, 0x14($sp)
/* 0A30C0 800A24C0 E7B80010 */ swc1 $f24, 0x10($sp)
/* 0A30C4 800A24C4 0C024DBB */ jal print_text1_center_mode_1
/* 0A30C8 800A24C8 00003825 */ move $a3, $zero
/* 0A30CC 800A24CC 00008025 */ move $s0, $zero
/* 0A30D0 800A24D0 24120096 */ li $s2, 150
.L800A24D4:
/* 0A30D4 800A24D4 8FB80078 */ lw $t8, 0x78($sp)
/* 0A30D8 800A24D8 1278000F */ beq $s3, $t8, .L800A2518
/* 0A30DC 800A24DC 00000000 */ nop
/* 0A30E0 800A24E0 3C198019 */ lui $t9, %hi(gSubMenuSelection) # $t9, 0x8019
/* 0A30E4 800A24E4 8339EDEC */ lb $t9, %lo(gSubMenuSelection)($t9)
/* 0A30E8 800A24E8 02002825 */ move $a1, $s0
/* 0A30EC 800A24EC 24060001 */ li $a2, 1
/* 0A30F0 800A24F0 0C024870 */ jal text_rainbow_effect
/* 0A30F4 800A24F4 03352023 */ subu $a0, $t9, $s5
/* 0A30F8 800A24F8 3C088019 */ lui $t0, %hi(gSubMenuSelection) # $t0, 0x8019
/* 0A30FC 800A24FC 8108EDEC */ lb $t0, %lo(gSubMenuSelection)($t0)
/* 0A3100 800A2500 01154823 */ subu $t1, $t0, $s5
/* 0A3104 800A2504 5609001C */ bnel $s0, $t1, .L800A2578
/* 0A3108 800A2508 26110001 */ addiu $s1, $s0, 1
/* 0A310C 800A250C A7B600E0 */ sh $s6, 0xe0($sp)
/* 0A3110 800A2510 10000018 */ b .L800A2574
/* 0A3114 800A2514 A7B200E2 */ sh $s2, 0xe2($sp)
.L800A2518:
/* 0A3118 800A2518 12800014 */ beqz $s4, .L800A256C
/* 0A311C 800A251C 8FAA00E8 */ lw $t2, 0xe8($sp)
/* 0A3120 800A2520 8D4B0020 */ lw $t3, 0x20($t2)
/* 0A3124 800A2524 160B0011 */ bne $s0, $t3, .L800A256C
/* 0A3128 800A2528 00000000 */ nop
/* 0A312C 800A252C 8EEC0000 */ lw $t4, ($s7)
/* 0A3130 800A2530 019E001A */ div $zero, $t4, $fp
/* 0A3134 800A2534 00002010 */ mfhi $a0
/* 0A3138 800A2538 17C00002 */ bnez $fp, .L800A2544
/* 0A313C 800A253C 00000000 */ nop
/* 0A3140 800A2540 0007000D */ break 7
.L800A2544:
/* 0A3144 800A2544 2401FFFF */ li $at, -1
/* 0A3148 800A2548 17C10004 */ bne $fp, $at, .L800A255C
/* 0A314C 800A254C 3C018000 */ lui $at, 0x8000
/* 0A3150 800A2550 15810002 */ bne $t4, $at, .L800A255C
/* 0A3154 800A2554 00000000 */ nop
/* 0A3158 800A2558 0006000D */ break 6
.L800A255C:
/* 0A315C 800A255C 0C024C36 */ jal set_text_color
/* 0A3160 800A2560 00000000 */ nop
/* 0A3164 800A2564 10000004 */ b .L800A2578
/* 0A3168 800A2568 26110001 */ addiu $s1, $s0, 1
.L800A256C:
/* 0A316C 800A256C 0C024C36 */ jal set_text_color
/* 0A3170 800A2570 24040001 */ li $a0, 1
.L800A2574:
/* 0A3174 800A2574 26110001 */ addiu $s1, $s0, 1
.L800A2578:
/* 0A3178 800A2578 02202025 */ move $a0, $s1
/* 0A317C 800A257C 0C029E25 */ jal convert_number_to_ascii
/* 0A3180 800A2580 27A500B8 */ addiu $a1, $sp, 0xb8
/* 0A3184 800A2584 02C02025 */ move $a0, $s6
/* 0A3188 800A2588 02402825 */ move $a1, $s2
/* 0A318C 800A258C 27A600B9 */ addiu $a2, $sp, 0xb9
/* 0A3190 800A2590 00003825 */ move $a3, $zero
/* 0A3194 800A2594 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A3198 800A2598 0C024CC9 */ jal print_text_mode_1
/* 0A319C 800A259C E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A31A0 800A25A0 2401002A */ li $at, 42
/* 0A31A4 800A25A4 16610006 */ bne $s3, $at, .L800A25C0
/* 0A31A8 800A25A8 3C0F8019 */ lui $t7, %hi(gSomeDLBuffer) # $t7, 0x8019
/* 0A31AC 800A25AC 3C0E8019 */ lui $t6, %hi(D_8018EE10) # $t6, 0x8019
/* 0A31B0 800A25B0 25CEEE10 */ addiu $t6, %lo(D_8018EE10) # addiu $t6, $t6, -0x11f0
/* 0A31B4 800A25B4 001069C0 */ sll $t5, $s0, 7
/* 0A31B8 800A25B8 10000004 */ b .L800A25CC
/* 0A31BC 800A25BC 01AE1821 */ addu $v1, $t5, $t6
.L800A25C0:
/* 0A31C0 800A25C0 8DEFD9C0 */ lw $t7, %lo(gSomeDLBuffer)($t7)
/* 0A31C4 800A25C4 0010C1C0 */ sll $t8, $s0, 7
/* 0A31C8 800A25C8 01F81821 */ addu $v1, $t7, $t8
.L800A25CC:
/* 0A31CC 800A25CC 90790004 */ lbu $t9, 4($v1)
/* 0A31D0 800A25D0 02602025 */ move $a0, $s3
/* 0A31D4 800A25D4 02402825 */ move $a1, $s2
/* 0A31D8 800A25D8 1720000B */ bnez $t9, .L800A2608
/* 0A31DC 800A25DC 3C0D800F */ lui $t5, %hi(gCupCourseOrder)
/* 0A31E0 800A25E0 3C06800E */ lui $a2, %hi(D_800E7A44) # $a2, 0x800e
/* 0A31E4 800A25E4 8CC67A44 */ lw $a2, %lo(D_800E7A44)($a2)
/* 0A31E8 800A25E8 02602025 */ move $a0, $s3
/* 0A31EC 800A25EC 02402825 */ move $a1, $s2
/* 0A31F0 800A25F0 00003825 */ move $a3, $zero
/* 0A31F4 800A25F4 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A31F8 800A25F8 0C024CC9 */ jal print_text_mode_1
/* 0A31FC 800A25FC E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A3200 800A2600 10000019 */ b .L800A2668
/* 0A3204 800A2604 24010002 */ li $at, 2
.L800A2608:
/* 0A3208 800A2608 80620005 */ lb $v0, 5($v1)
/* 0A320C 800A260C 3C06800E */ lui $a2, %hi(gCourseNamesDup2)
/* 0A3210 800A2610 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A3214 800A2614 04410003 */ bgez $v0, .L800A2624
/* 0A3218 800A2618 00024083 */ sra $t0, $v0, 2
/* 0A321C 800A261C 24410003 */ addiu $at, $v0, 3
/* 0A3220 800A2620 00014083 */ sra $t0, $at, 2
.L800A2624:
/* 0A3224 800A2624 000848C0 */ sll $t1, $t0, 3
/* 0A3228 800A2628 04410004 */ bgez $v0, .L800A263C
/* 0A322C 800A262C 304A0003 */ andi $t2, $v0, 3
/* 0A3230 800A2630 11400002 */ beqz $t2, .L800A263C
/* 0A3234 800A2634 00000000 */ nop
/* 0A3238 800A2638 254AFFFC */ addiu $t2, $t2, -4
.L800A263C:
/* 0A323C 800A263C 000A5840 */ sll $t3, $t2, 1
/* 0A3240 800A2640 012B6021 */ addu $t4, $t1, $t3
/* 0A3244 800A2644 01AC6821 */ addu $t5, $t5, $t4
/* 0A3248 800A2648 85AD2BB4 */ lh $t5, %lo(gCupCourseOrder)($t5)
/* 0A324C 800A264C E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A3250 800A2650 00003825 */ move $a3, $zero
/* 0A3254 800A2654 000D7080 */ sll $t6, $t5, 2
/* 0A3258 800A2658 00CE3021 */ addu $a2, $a2, $t6
/* 0A325C 800A265C 0C024CC9 */ jal print_text_mode_1
/* 0A3260 800A2660 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A3264 800A2664 24010002 */ li $at, 2
.L800A2668:
/* 0A3268 800A2668 02208025 */ move $s0, $s1
/* 0A326C 800A266C 1621FF99 */ bne $s1, $at, .L800A24D4
/* 0A3270 800A2670 2652001E */ addiu $s2, $s2, 0x1e
/* 0A3274 800A2674 8FAF0088 */ lw $t7, 0x88($sp)
/* 0A3278 800A2678 8FB90084 */ lw $t9, 0x84($sp)
/* 0A327C 800A267C 26730089 */ addiu $s3, $s3, 0x89
/* 0A3280 800A2680 2401013C */ li $at, 316
/* 0A3284 800A2684 25F80082 */ addiu $t8, $t7, 0x82
/* 0A3288 800A2688 27280004 */ addiu $t0, $t9, 4
/* 0A328C 800A268C AFA80084 */ sw $t0, 0x84($sp)
/* 0A3290 800A2690 AFB80088 */ sw $t8, 0x88($sp)
/* 0A3294 800A2694 1661FF83 */ bne $s3, $at, .L800A24A4
/* 0A3298 800A2698 26D60089 */ addiu $s6, $s6, 0x89
/* 0A329C 800A269C 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A32A0 800A26A0 10000176 */ b .L800A2C7C
/* 0A32A4 800A26A4 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A26A8
/* 0A32A8 800A26A8 0C024C36 */ jal set_text_color
/* 0A32AC 800A26AC 24040002 */ li $a0, 2
/* 0A32B0 800A26B0 3C10800E */ lui $s0, %hi(D_800E7928) # $s0, 0x800e
/* 0A32B4 800A26B4 3C01800F */ lui $at, %hi(D_800F1C3C) # $at, 0x800f
/* 0A32B8 800A26B8 3C12800E */ lui $s2, %hi(D_800E7930) # $s2, 0x800e
/* 0A32BC 800A26BC 26527930 */ addiu $s2, %lo(D_800E7930) # addiu $s2, $s2, 0x7930
/* 0A32C0 800A26C0 C4341C3C */ lwc1 $f20, %lo(D_800F1C3C)($at)
/* 0A32C4 800A26C4 26107928 */ addiu $s0, %lo(D_800E7928) # addiu $s0, $s0, 0x7928
/* 0A32C8 800A26C8 2411004D */ li $s1, 77
.L800A26CC:
/* 0A32CC 800A26CC 240400A0 */ li $a0, 160
/* 0A32D0 800A26D0 02202825 */ move $a1, $s1
/* 0A32D4 800A26D4 8E060000 */ lw $a2, ($s0)
/* 0A32D8 800A26D8 00003825 */ move $a3, $zero
/* 0A32DC 800A26DC E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A32E0 800A26E0 0C024DBB */ jal print_text1_center_mode_1
/* 0A32E4 800A26E4 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A32E8 800A26E8 26100004 */ addiu $s0, $s0, 4
/* 0A32EC 800A26EC 0212082B */ sltu $at, $s0, $s2
/* 0A32F0 800A26F0 1420FFF6 */ bnez $at, .L800A26CC
/* 0A32F4 800A26F4 26310014 */ addiu $s1, $s1, 0x14
/* 0A32F8 800A26F8 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A32FC 800A26FC 4481C000 */ mtc1 $at, $f24
/* 0A3300 800A2700 3C01800F */ lui $at, %hi(D_800F1C40) # $at, 0x800f
/* 0A3304 800A2704 C4361C40 */ lwc1 $f22, %lo(D_800F1C40)($at)
/* 0A3308 800A2708 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0A330C 800A270C 3C09800E */ lui $t1, %hi(D_800E7918) # $t1, 0x800e
/* 0A3310 800A2710 25297918 */ addiu $t1, %lo(D_800E7918) # addiu $t1, $t1, 0x7918
/* 0A3314 800A2714 240A005C */ li $t2, 92
/* 0A3318 800A2718 3C17800E */ lui $s7, %hi(gGlobalTimer) # $s7, 0x800e
/* 0A331C 800A271C 4481A000 */ mtc1 $at, $f20
/* 0A3320 800A2720 26F7C54C */ addiu $s7, %lo(gGlobalTimer) # addiu $s7, $s7, -0x3ab4
/* 0A3324 800A2724 AFAA0088 */ sw $t2, 0x88($sp)
/* 0A3328 800A2728 AFA90084 */ sw $t1, 0x84($sp)
/* 0A332C 800A272C 24160020 */ li $s6, 32
/* 0A3330 800A2730 2413002A */ li $s3, 42
/* 0A3334 800A2734 241E0003 */ li $fp, 3
/* 0A3338 800A2738 27B500A8 */ addiu $s5, $sp, 0xa8
/* 0A333C 800A273C 2414002A */ li $s4, 42
.L800A2740:
/* 0A3340 800A2740 0C024C36 */ jal set_text_color
/* 0A3344 800A2744 03C02025 */ move $a0, $fp
/* 0A3348 800A2748 8FAB0084 */ lw $t3, 0x84($sp)
/* 0A334C 800A274C 8FA40088 */ lw $a0, 0x88($sp)
/* 0A3350 800A2750 2405007D */ li $a1, 125
/* 0A3354 800A2754 8D660000 */ lw $a2, ($t3)
/* 0A3358 800A2758 E7B80014 */ swc1 $f24, 0x14($sp)
/* 0A335C 800A275C E7B80010 */ swc1 $f24, 0x10($sp)
/* 0A3360 800A2760 0C024DBB */ jal print_text1_center_mode_1
/* 0A3364 800A2764 00003825 */ move $a3, $zero
/* 0A3368 800A2768 00008025 */ move $s0, $zero
/* 0A336C 800A276C 24120096 */ li $s2, 150
.L800A2770:
/* 0A3370 800A2770 5674001A */ bnel $s3, $s4, .L800A27DC
/* 0A3374 800A2774 8FAF00E8 */ lw $t7, 0xe8($sp)
/* 0A3378 800A2778 8FAC00E8 */ lw $t4, 0xe8($sp)
/* 0A337C 800A277C 8D8D001C */ lw $t5, 0x1c($t4)
/* 0A3380 800A2780 160D0011 */ bne $s0, $t5, .L800A27C8
/* 0A3384 800A2784 00000000 */ nop
/* 0A3388 800A2788 8EEE0000 */ lw $t6, ($s7)
/* 0A338C 800A278C 01DE001A */ div $zero, $t6, $fp
/* 0A3390 800A2790 00002010 */ mfhi $a0
/* 0A3394 800A2794 17C00002 */ bnez $fp, .L800A27A0
/* 0A3398 800A2798 00000000 */ nop
/* 0A339C 800A279C 0007000D */ break 7
.L800A27A0:
/* 0A33A0 800A27A0 2401FFFF */ li $at, -1
/* 0A33A4 800A27A4 17C10004 */ bne $fp, $at, .L800A27B8
/* 0A33A8 800A27A8 3C018000 */ lui $at, 0x8000
/* 0A33AC 800A27AC 15C10002 */ bne $t6, $at, .L800A27B8
/* 0A33B0 800A27B0 00000000 */ nop
/* 0A33B4 800A27B4 0006000D */ break 6
.L800A27B8:
/* 0A33B8 800A27B8 0C024C36 */ jal set_text_color
/* 0A33BC 800A27BC 00000000 */ nop
/* 0A33C0 800A27C0 1000001C */ b .L800A2834
/* 0A33C4 800A27C4 26110001 */ addiu $s1, $s0, 1
.L800A27C8:
/* 0A33C8 800A27C8 0C024C36 */ jal set_text_color
/* 0A33CC 800A27CC 24040001 */ li $a0, 1
/* 0A33D0 800A27D0 10000018 */ b .L800A2834
/* 0A33D4 800A27D4 26110001 */ addiu $s1, $s0, 1
/* 0A33D8 800A27D8 8FAF00E8 */ lw $t7, 0xe8($sp)
.L800A27DC:
/* 0A33DC 800A27DC 8DF80020 */ lw $t8, 0x20($t7)
/* 0A33E0 800A27E0 16180011 */ bne $s0, $t8, .L800A2828
/* 0A33E4 800A27E4 00000000 */ nop
/* 0A33E8 800A27E8 8EF90000 */ lw $t9, ($s7)
/* 0A33EC 800A27EC 033E001A */ div $zero, $t9, $fp
/* 0A33F0 800A27F0 00002010 */ mfhi $a0
/* 0A33F4 800A27F4 17C00002 */ bnez $fp, .L800A2800
/* 0A33F8 800A27F8 00000000 */ nop
/* 0A33FC 800A27FC 0007000D */ break 7
.L800A2800:
/* 0A3400 800A2800 2401FFFF */ li $at, -1
/* 0A3404 800A2804 17C10004 */ bne $fp, $at, .L800A2818
/* 0A3408 800A2808 3C018000 */ lui $at, 0x8000
/* 0A340C 800A280C 17210002 */ bne $t9, $at, .L800A2818
/* 0A3410 800A2810 00000000 */ nop
/* 0A3414 800A2814 0006000D */ break 6
.L800A2818:
/* 0A3418 800A2818 0C024C36 */ jal set_text_color
/* 0A341C 800A281C 00000000 */ nop
/* 0A3420 800A2820 10000004 */ b .L800A2834
/* 0A3424 800A2824 26110001 */ addiu $s1, $s0, 1
.L800A2828:
/* 0A3428 800A2828 0C024C36 */ jal set_text_color
/* 0A342C 800A282C 24040001 */ li $a0, 1
/* 0A3430 800A2830 26110001 */ addiu $s1, $s0, 1
.L800A2834:
/* 0A3434 800A2834 02202025 */ move $a0, $s1
/* 0A3438 800A2838 0C029E25 */ jal convert_number_to_ascii
/* 0A343C 800A283C 02A02825 */ move $a1, $s5
/* 0A3440 800A2840 02C02025 */ move $a0, $s6
/* 0A3444 800A2844 02402825 */ move $a1, $s2
/* 0A3448 800A2848 27A600A9 */ addiu $a2, $sp, 0xa9
/* 0A344C 800A284C 00003825 */ move $a3, $zero
/* 0A3450 800A2850 E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A3454 800A2854 0C024CC9 */ jal print_text_mode_1
/* 0A3458 800A2858 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A345C 800A285C 2401002A */ li $at, 42
/* 0A3460 800A2860 16610006 */ bne $s3, $at, .L800A287C
/* 0A3464 800A2864 3C098019 */ lui $t1, %hi(gSomeDLBuffer) # $t1, 0x8019
/* 0A3468 800A2868 3C0A8019 */ lui $t2, %hi(D_8018EE10) # $t2, 0x8019
/* 0A346C 800A286C 254AEE10 */ addiu $t2, %lo(D_8018EE10) # addiu $t2, $t2, -0x11f0
/* 0A3470 800A2870 001041C0 */ sll $t0, $s0, 7
/* 0A3474 800A2874 10000004 */ b .L800A2888
/* 0A3478 800A2878 010A1821 */ addu $v1, $t0, $t2
.L800A287C:
/* 0A347C 800A287C 8D29D9C0 */ lw $t1, %lo(gSomeDLBuffer)($t1)
/* 0A3480 800A2880 001059C0 */ sll $t3, $s0, 7
/* 0A3484 800A2884 012B1821 */ addu $v1, $t1, $t3
.L800A2888:
/* 0A3488 800A2888 906C0004 */ lbu $t4, 4($v1)
/* 0A348C 800A288C 02602025 */ move $a0, $s3
/* 0A3490 800A2890 02402825 */ move $a1, $s2
/* 0A3494 800A2894 1580000B */ bnez $t4, .L800A28C4
/* 0A3498 800A2898 3C08800F */ lui $t0, %hi(gCupCourseOrder)
/* 0A349C 800A289C 3C06800E */ lui $a2, %hi(D_800E7A44) # $a2, 0x800e
/* 0A34A0 800A28A0 8CC67A44 */ lw $a2, %lo(D_800E7A44)($a2)
/* 0A34A4 800A28A4 02602025 */ move $a0, $s3
/* 0A34A8 800A28A8 02402825 */ move $a1, $s2
/* 0A34AC 800A28AC 00003825 */ move $a3, $zero
/* 0A34B0 800A28B0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A34B4 800A28B4 0C024CC9 */ jal print_text_mode_1
/* 0A34B8 800A28B8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A34BC 800A28BC 10000019 */ b .L800A2924
/* 0A34C0 800A28C0 24010002 */ li $at, 2
.L800A28C4:
/* 0A34C4 800A28C4 80620005 */ lb $v0, 5($v1)
/* 0A34C8 800A28C8 3C06800E */ lui $a2, %hi(gCourseNamesDup2)
/* 0A34CC 800A28CC E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A34D0 800A28D0 04410003 */ bgez $v0, .L800A28E0
/* 0A34D4 800A28D4 00026883 */ sra $t5, $v0, 2
/* 0A34D8 800A28D8 24410003 */ addiu $at, $v0, 3
/* 0A34DC 800A28DC 00016883 */ sra $t5, $at, 2
.L800A28E0:
/* 0A34E0 800A28E0 000D70C0 */ sll $t6, $t5, 3
/* 0A34E4 800A28E4 04410004 */ bgez $v0, .L800A28F8
/* 0A34E8 800A28E8 304F0003 */ andi $t7, $v0, 3
/* 0A34EC 800A28EC 11E00002 */ beqz $t7, .L800A28F8
/* 0A34F0 800A28F0 00000000 */ nop
/* 0A34F4 800A28F4 25EFFFFC */ addiu $t7, $t7, -4
.L800A28F8:
/* 0A34F8 800A28F8 000FC040 */ sll $t8, $t7, 1
/* 0A34FC 800A28FC 01D8C821 */ addu $t9, $t6, $t8
/* 0A3500 800A2900 01194021 */ addu $t0, $t0, $t9
/* 0A3504 800A2904 85082BB4 */ lh $t0, %lo(gCupCourseOrder)($t0)
/* 0A3508 800A2908 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A350C 800A290C 00003825 */ move $a3, $zero
/* 0A3510 800A2910 00085080 */ sll $t2, $t0, 2
/* 0A3514 800A2914 00CA3021 */ addu $a2, $a2, $t2
/* 0A3518 800A2918 0C024CC9 */ jal print_text_mode_1
/* 0A351C 800A291C 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A3520 800A2920 24010002 */ li $at, 2
.L800A2924:
/* 0A3524 800A2924 02208025 */ move $s0, $s1
/* 0A3528 800A2928 1621FF91 */ bne $s1, $at, .L800A2770
/* 0A352C 800A292C 2652001E */ addiu $s2, $s2, 0x1e
/* 0A3530 800A2930 8FA90088 */ lw $t1, 0x88($sp)
/* 0A3534 800A2934 8FAC0084 */ lw $t4, 0x84($sp)
/* 0A3538 800A2938 26730089 */ addiu $s3, $s3, 0x89
/* 0A353C 800A293C 2A61013C */ slti $at, $s3, 0x13c
/* 0A3540 800A2940 252B0082 */ addiu $t3, $t1, 0x82
/* 0A3544 800A2944 258D0004 */ addiu $t5, $t4, 4
/* 0A3548 800A2948 AFAD0084 */ sw $t5, 0x84($sp)
/* 0A354C 800A294C AFAB0088 */ sw $t3, 0x88($sp)
/* 0A3550 800A2950 1420FF7B */ bnez $at, .L800A2740
/* 0A3554 800A2954 26D60089 */ addiu $s6, $s6, 0x89
/* 0A3558 800A2958 3C13800E */ lui $s3, %hi(D_800E7930) # $s3, 0x800e
/* 0A355C 800A295C 26737930 */ addiu $s3, %lo(D_800E7930) # addiu $s3, $s3, 0x7930
/* 0A3560 800A2960 00009025 */ move $s2, $zero
/* 0A3564 800A2964 2411006E */ li $s1, 110
.L800A2968:
/* 0A3568 800A2968 3C048019 */ lui $a0, %hi(gSubMenuSelection) # $a0, 0x8019
/* 0A356C 800A296C 8084EDEC */ lb $a0, %lo(gSubMenuSelection)($a0)
/* 0A3570 800A2970 240F00D2 */ li $t7, 210
/* 0A3574 800A2974 02002825 */ move $a1, $s0
/* 0A3578 800A2978 2484FFC8 */ addiu $a0, $a0, -0x38
/* 0A357C 800A297C 16440003 */ bne $s2, $a0, .L800A298C
/* 0A3580 800A2980 00000000 */ nop
/* 0A3584 800A2984 A7B100E0 */ sh $s1, 0xe0($sp)
/* 0A3588 800A2988 A7AF00E2 */ sh $t7, 0xe2($sp)
.L800A298C:
/* 0A358C 800A298C 0C024870 */ jal text_rainbow_effect
/* 0A3590 800A2990 24060003 */ li $a2, 3
/* 0A3594 800A2994 02202025 */ move $a0, $s1
/* 0A3598 800A2998 240500D2 */ li $a1, 210
/* 0A359C 800A299C 8E660000 */ lw $a2, ($s3)
/* 0A35A0 800A29A0 00003825 */ move $a3, $zero
/* 0A35A4 800A29A4 E7B80010 */ swc1 $f24, 0x10($sp)
/* 0A35A8 800A29A8 0C024CC9 */ jal print_text_mode_1
/* 0A35AC 800A29AC E7B80014 */ swc1 $f24, 0x14($sp)
/* 0A35B0 800A29B0 26520001 */ addiu $s2, $s2, 1
/* 0A35B4 800A29B4 24010002 */ li $at, 2
/* 0A35B8 800A29B8 26310032 */ addiu $s1, $s1, 0x32
/* 0A35BC 800A29BC 1641FFEA */ bne $s2, $at, .L800A2968
/* 0A35C0 800A29C0 26730004 */ addiu $s3, $s3, 4
/* 0A35C4 800A29C4 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A35C8 800A29C8 100000AC */ b .L800A2C7C
/* 0A35CC 800A29CC 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
glabel L800A29D0
/* 0A35D0 800A29D0 2475FFC6 */ addiu $s5, $v1, -0x3a
/* 0A35D4 800A29D4 06A10003 */ bgez $s5, .L800A29E4
/* 0A35D8 800A29D8 00157043 */ sra $t6, $s5, 1
/* 0A35DC 800A29DC 26A10001 */ addiu $at, $s5, 1
/* 0A35E0 800A29E0 00017043 */ sra $t6, $at, 1
.L800A29E4:
/* 0A35E4 800A29E4 01C0A825 */ move $s5, $t6
/* 0A35E8 800A29E8 0C024C36 */ jal set_text_color
/* 0A35EC 800A29EC 24040002 */ li $a0, 2
/* 0A35F0 800A29F0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0A35F4 800A29F4 4481B000 */ mtc1 $at, $f22
/* 0A35F8 800A29F8 3C19800E */ lui $t9, %hi(D_800E7938) # $t9, 0x800e
/* 0A35FC 800A29FC 27397938 */ addiu $t9, %lo(D_800E7938) # addiu $t9, $t9, 0x7938
/* 0A3600 800A2A00 0015C080 */ sll $t8, $s5, 2
/* 0A3604 800A2A04 03191021 */ addu $v0, $t8, $t9
/* 0A3608 800A2A08 8C460000 */ lw $a2, ($v0)
/* 0A360C 800A2A0C AFA20078 */ sw $v0, 0x78($sp)
/* 0A3610 800A2A10 240400A0 */ li $a0, 160
/* 0A3614 800A2A14 24050055 */ li $a1, 85
/* 0A3618 800A2A18 00003825 */ move $a3, $zero
/* 0A361C 800A2A1C E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A3620 800A2A20 0C024DBB */ jal print_text1_center_mode_1
/* 0A3624 800A2A24 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A3628 800A2A28 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A362C 800A2A2C 4481C000 */ mtc1 $at, $f24
/* 0A3630 800A2A30 3C01800F */ lui $at, %hi(D_800F1C44) # $at, 0x800f
/* 0A3634 800A2A34 C4361C44 */ lwc1 $f22, %lo(D_800F1C44)($at)
/* 0A3638 800A2A38 3C013F00 */ li $at, 0x3F000000 # 0.500000
/* 0A363C 800A2A3C 3C0A800E */ lui $t2, %hi(D_800E7918) # $t2, 0x800e
/* 0A3640 800A2A40 254A7918 */ addiu $t2, %lo(D_800E7918) # addiu $t2, $t2, 0x7918
/* 0A3644 800A2A44 2408005C */ li $t0, 92
/* 0A3648 800A2A48 3C17800E */ lui $s7, %hi(gGlobalTimer) # $s7, 0x800e
/* 0A364C 800A2A4C 3C15800E */ lui $s5, %hi(D_800E7938) # $s5, 0x800e
/* 0A3650 800A2A50 4481A000 */ mtc1 $at, $f20
/* 0A3654 800A2A54 26B57938 */ addiu $s5, %lo(D_800E7938) # addiu $s5, $s5, 0x7938
/* 0A3658 800A2A58 26F7C54C */ addiu $s7, %lo(gGlobalTimer) # addiu $s7, $s7, -0x3ab4
/* 0A365C 800A2A5C AFA80088 */ sw $t0, 0x88($sp)
/* 0A3660 800A2A60 AFAA0084 */ sw $t2, 0x84($sp)
/* 0A3664 800A2A64 24160020 */ li $s6, 32
/* 0A3668 800A2A68 2413002A */ li $s3, 42
/* 0A366C 800A2A6C 241E0003 */ li $fp, 3
/* 0A3670 800A2A70 2414002A */ li $s4, 42
.L800A2A74:
/* 0A3674 800A2A74 0C024C36 */ jal set_text_color
/* 0A3678 800A2A78 03C02025 */ move $a0, $fp
/* 0A367C 800A2A7C 8FA90084 */ lw $t1, 0x84($sp)
/* 0A3680 800A2A80 8FA40088 */ lw $a0, 0x88($sp)
/* 0A3684 800A2A84 2405007D */ li $a1, 125
/* 0A3688 800A2A88 8D260000 */ lw $a2, ($t1)
/* 0A368C 800A2A8C E7B80014 */ swc1 $f24, 0x14($sp)
/* 0A3690 800A2A90 E7B80010 */ swc1 $f24, 0x10($sp)
/* 0A3694 800A2A94 0C024DBB */ jal print_text1_center_mode_1
/* 0A3698 800A2A98 00003825 */ move $a3, $zero
/* 0A369C 800A2A9C 00008025 */ move $s0, $zero
/* 0A36A0 800A2AA0 24120096 */ li $s2, 150
.L800A2AA4:
/* 0A36A4 800A2AA4 1674001F */ bne $s3, $s4, .L800A2B24
/* 0A36A8 800A2AA8 8FAB00E8 */ lw $t3, 0xe8($sp)
/* 0A36AC 800A2AAC 8D6C001C */ lw $t4, 0x1c($t3)
/* 0A36B0 800A2AB0 8FAD0078 */ lw $t5, 0x78($sp)
/* 0A36B4 800A2AB4 160C0017 */ bne $s0, $t4, .L800A2B14
/* 0A36B8 800A2AB8 00000000 */ nop
/* 0A36BC 800A2ABC 55B50006 */ bnel $t5, $s5, .L800A2AD8
/* 0A36C0 800A2AC0 8EEF0000 */ lw $t7, ($s7)
/* 0A36C4 800A2AC4 0C024C36 */ jal set_text_color
/* 0A36C8 800A2AC8 24040002 */ li $a0, 2
/* 0A36CC 800A2ACC 10000020 */ b .L800A2B50
/* 0A36D0 800A2AD0 26110001 */ addiu $s1, $s0, 1
/* 0A36D4 800A2AD4 8EEF0000 */ lw $t7, ($s7)
.L800A2AD8:
/* 0A36D8 800A2AD8 01FE001A */ div $zero, $t7, $fp
/* 0A36DC 800A2ADC 00002010 */ mfhi $a0
/* 0A36E0 800A2AE0 17C00002 */ bnez $fp, .L800A2AEC
/* 0A36E4 800A2AE4 00000000 */ nop
/* 0A36E8 800A2AE8 0007000D */ break 7
.L800A2AEC:
/* 0A36EC 800A2AEC 2401FFFF */ li $at, -1
/* 0A36F0 800A2AF0 17C10004 */ bne $fp, $at, .L800A2B04
/* 0A36F4 800A2AF4 3C018000 */ lui $at, 0x8000
/* 0A36F8 800A2AF8 15E10002 */ bne $t7, $at, .L800A2B04
/* 0A36FC 800A2AFC 00000000 */ nop
/* 0A3700 800A2B00 0006000D */ break 6
.L800A2B04:
/* 0A3704 800A2B04 0C024C36 */ jal set_text_color
/* 0A3708 800A2B08 00000000 */ nop
/* 0A370C 800A2B0C 10000010 */ b .L800A2B50
/* 0A3710 800A2B10 26110001 */ addiu $s1, $s0, 1
.L800A2B14:
/* 0A3714 800A2B14 0C024C36 */ jal set_text_color
/* 0A3718 800A2B18 24040001 */ li $a0, 1
/* 0A371C 800A2B1C 1000000C */ b .L800A2B50
/* 0A3720 800A2B20 26110001 */ addiu $s1, $s0, 1
.L800A2B24:
/* 0A3724 800A2B24 8FAE00E8 */ lw $t6, 0xe8($sp)
/* 0A3728 800A2B28 8DD80020 */ lw $t8, 0x20($t6)
/* 0A372C 800A2B2C 16180005 */ bne $s0, $t8, .L800A2B44
/* 0A3730 800A2B30 00000000 */ nop
/* 0A3734 800A2B34 0C024C36 */ jal set_text_color
/* 0A3738 800A2B38 24040002 */ li $a0, 2
/* 0A373C 800A2B3C 10000004 */ b .L800A2B50
/* 0A3740 800A2B40 26110001 */ addiu $s1, $s0, 1
.L800A2B44:
/* 0A3744 800A2B44 0C024C36 */ jal set_text_color
/* 0A3748 800A2B48 24040001 */ li $a0, 1
/* 0A374C 800A2B4C 26110001 */ addiu $s1, $s0, 1
.L800A2B50:
/* 0A3750 800A2B50 02202025 */ move $a0, $s1
/* 0A3754 800A2B54 0C029E25 */ jal convert_number_to_ascii
/* 0A3758 800A2B58 27A50098 */ addiu $a1, $sp, 0x98
/* 0A375C 800A2B5C 02C02025 */ move $a0, $s6
/* 0A3760 800A2B60 02402825 */ move $a1, $s2
/* 0A3764 800A2B64 27A60099 */ addiu $a2, $sp, 0x99
/* 0A3768 800A2B68 00003825 */ move $a3, $zero
/* 0A376C 800A2B6C E7B60010 */ swc1 $f22, 0x10($sp)
/* 0A3770 800A2B70 0C024CC9 */ jal print_text_mode_1
/* 0A3774 800A2B74 E7B60014 */ swc1 $f22, 0x14($sp)
/* 0A3778 800A2B78 2401002A */ li $at, 42
/* 0A377C 800A2B7C 16610006 */ bne $s3, $at, .L800A2B98
/* 0A3780 800A2B80 3C0A8019 */ lui $t2, %hi(gSomeDLBuffer) # $t2, 0x8019
/* 0A3784 800A2B84 3C088019 */ lui $t0, %hi(D_8018EE10) # $t0, 0x8019
/* 0A3788 800A2B88 2508EE10 */ addiu $t0, %lo(D_8018EE10) # addiu $t0, $t0, -0x11f0
/* 0A378C 800A2B8C 0010C9C0 */ sll $t9, $s0, 7
/* 0A3790 800A2B90 10000004 */ b .L800A2BA4
/* 0A3794 800A2B94 03281821 */ addu $v1, $t9, $t0
.L800A2B98:
/* 0A3798 800A2B98 8D4AD9C0 */ lw $t2, %lo(gSomeDLBuffer)($t2)
/* 0A379C 800A2B9C 001049C0 */ sll $t1, $s0, 7
/* 0A37A0 800A2BA0 01491821 */ addu $v1, $t2, $t1
.L800A2BA4:
/* 0A37A4 800A2BA4 906B0004 */ lbu $t3, 4($v1)
/* 0A37A8 800A2BA8 02602025 */ move $a0, $s3
/* 0A37AC 800A2BAC 02402825 */ move $a1, $s2
/* 0A37B0 800A2BB0 1560000B */ bnez $t3, .L800A2BE0
/* 0A37B4 800A2BB4 3C19800F */ lui $t9, %hi(gCupCourseOrder)
/* 0A37B8 800A2BB8 3C06800E */ lui $a2, %hi(D_800E7A44) # $a2, 0x800e
/* 0A37BC 800A2BBC 8CC67A44 */ lw $a2, %lo(D_800E7A44)($a2)
/* 0A37C0 800A2BC0 02602025 */ move $a0, $s3
/* 0A37C4 800A2BC4 02402825 */ move $a1, $s2
/* 0A37C8 800A2BC8 00003825 */ move $a3, $zero
/* 0A37CC 800A2BCC E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A37D0 800A2BD0 0C024CC9 */ jal print_text_mode_1
/* 0A37D4 800A2BD4 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A37D8 800A2BD8 10000019 */ b .L800A2C40
/* 0A37DC 800A2BDC 24010002 */ li $at, 2
.L800A2BE0:
/* 0A37E0 800A2BE0 80620005 */ lb $v0, 5($v1)
/* 0A37E4 800A2BE4 3C06800E */ lui $a2, %hi(gCourseNamesDup2)
/* 0A37E8 800A2BE8 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A37EC 800A2BEC 04410003 */ bgez $v0, .L800A2BFC
/* 0A37F0 800A2BF0 00026083 */ sra $t4, $v0, 2
/* 0A37F4 800A2BF4 24410003 */ addiu $at, $v0, 3
/* 0A37F8 800A2BF8 00016083 */ sra $t4, $at, 2
.L800A2BFC:
/* 0A37FC 800A2BFC 000C68C0 */ sll $t5, $t4, 3
/* 0A3800 800A2C00 04410004 */ bgez $v0, .L800A2C14
/* 0A3804 800A2C04 304F0003 */ andi $t7, $v0, 3
/* 0A3808 800A2C08 11E00002 */ beqz $t7, .L800A2C14
/* 0A380C 800A2C0C 00000000 */ nop
/* 0A3810 800A2C10 25EFFFFC */ addiu $t7, $t7, -4
.L800A2C14:
/* 0A3814 800A2C14 000F7040 */ sll $t6, $t7, 1
/* 0A3818 800A2C18 01AEC021 */ addu $t8, $t5, $t6
/* 0A381C 800A2C1C 0338C821 */ addu $t9, $t9, $t8
/* 0A3820 800A2C20 87392BB4 */ lh $t9, %lo(gCupCourseOrder)($t9)
/* 0A3824 800A2C24 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A3828 800A2C28 00003825 */ move $a3, $zero
/* 0A382C 800A2C2C 00194080 */ sll $t0, $t9, 2
/* 0A3830 800A2C30 00C83021 */ addu $a2, $a2, $t0
/* 0A3834 800A2C34 0C024CC9 */ jal print_text_mode_1
/* 0A3838 800A2C38 8CC675C4 */ lw $a2, %lo(gCourseNamesDup2)($a2)
/* 0A383C 800A2C3C 24010002 */ li $at, 2
.L800A2C40:
/* 0A3840 800A2C40 02208025 */ move $s0, $s1
/* 0A3844 800A2C44 1621FF97 */ bne $s1, $at, .L800A2AA4
/* 0A3848 800A2C48 2652001E */ addiu $s2, $s2, 0x1e
/* 0A384C 800A2C4C 8FAA0088 */ lw $t2, 0x88($sp)
/* 0A3850 800A2C50 8FAB0084 */ lw $t3, 0x84($sp)
/* 0A3854 800A2C54 26730089 */ addiu $s3, $s3, 0x89
/* 0A3858 800A2C58 2401013C */ li $at, 316
/* 0A385C 800A2C5C 25490082 */ addiu $t1, $t2, 0x82
/* 0A3860 800A2C60 256C0004 */ addiu $t4, $t3, 4
/* 0A3864 800A2C64 AFAC0084 */ sw $t4, 0x84($sp)
/* 0A3868 800A2C68 AFA90088 */ sw $t1, 0x88($sp)
/* 0A386C 800A2C6C 1661FF81 */ bne $s3, $at, .L800A2A74
/* 0A3870 800A2C70 26D60089 */ addiu $s6, $s6, 0x89
/* 0A3874 800A2C74 3C038019 */ lui $v1, %hi(gSubMenuSelection) # $v1, 0x8019
/* 0A3878 800A2C78 8063EDEC */ lb $v1, %lo(gSubMenuSelection)($v1)
.L800A2C7C:
glabel L800A2C7C
/* 0A387C 800A2C7C 246FFFD8 */ addiu $t7, $v1, -0x28
.L800A2C80:
/* 0A3880 800A2C80 2DE10012 */ sltiu $at, $t7, 0x12
/* 0A3884 800A2C84 1020000D */ beqz $at, .L800A2CBC
/* 0A3888 800A2C88 000F7880 */ sll $t7, $t7, 2
/* 0A388C 800A2C8C 3C01800F */ lui $at, %hi(jpt_800F1C48)
/* 0A3890 800A2C90 002F0821 */ addu $at, $at, $t7
/* 0A3894 800A2C94 8C2F1C48 */ lw $t7, %lo(jpt_800F1C48)($at)
/* 0A3898 800A2C98 01E00008 */ jr $t7
/* 0A389C 800A2C9C 00000000 */ nop
glabel L800A2CA0
/* 0A38A0 800A2CA0 87AD00E0 */ lh $t5, 0xe0($sp)
/* 0A38A4 800A2CA4 87B800E2 */ lh $t8, 0xe2($sp)
/* 0A38A8 800A2CA8 25AEFFFB */ addiu $t6, $t5, -5
/* 0A38AC 800A2CAC 2719FFFA */ addiu $t9, $t8, -6
/* 0A38B0 800A2CB0 A7AE00E0 */ sh $t6, 0xe0($sp)
/* 0A38B4 800A2CB4 10000007 */ b .L800A2CD4
/* 0A38B8 800A2CB8 A7B900E2 */ sh $t9, 0xe2($sp)
.L800A2CBC:
glabel L800A2CBC
/* 0A38BC 800A2CBC 87A800E0 */ lh $t0, 0xe0($sp)
/* 0A38C0 800A2CC0 87A900E2 */ lh $t1, 0xe2($sp)
/* 0A38C4 800A2CC4 250AFFF6 */ addiu $t2, $t0, -0xa
/* 0A38C8 800A2CC8 252BFFF8 */ addiu $t3, $t1, -8
/* 0A38CC 800A2CCC A7AA00E0 */ sh $t2, 0xe0($sp)
/* 0A38D0 800A2CD0 A7AB00E2 */ sh $t3, 0xe2($sp)
.L800A2CD4:
/* 0A38D4 800A2CD4 8FA400E8 */ lw $a0, 0xe8($sp)
/* 0A38D8 800A2CD8 0C0299AA */ jal func_800A66A8
/* 0A38DC 800A2CDC 27A500E0 */ addiu $a1, $sp, 0xe0
/* 0A38E0 800A2CE0 8FBF006C */ lw $ra, 0x6c($sp)
/* 0A38E4 800A2CE4 D7B40030 */ ldc1 $f20, 0x30($sp)
/* 0A38E8 800A2CE8 D7B60038 */ ldc1 $f22, 0x38($sp)
/* 0A38EC 800A2CEC D7B80040 */ ldc1 $f24, 0x40($sp)
/* 0A38F0 800A2CF0 8FB00048 */ lw $s0, 0x48($sp)
/* 0A38F4 800A2CF4 8FB1004C */ lw $s1, 0x4c($sp)
/* 0A38F8 800A2CF8 8FB20050 */ lw $s2, 0x50($sp)
/* 0A38FC 800A2CFC 8FB30054 */ lw $s3, 0x54($sp)
/* 0A3900 800A2D00 8FB40058 */ lw $s4, 0x58($sp)
/* 0A3904 800A2D04 8FB5005C */ lw $s5, 0x5c($sp)
/* 0A3908 800A2D08 8FB60060 */ lw $s6, 0x60($sp)
/* 0A390C 800A2D0C 8FB70064 */ lw $s7, 0x64($sp)
/* 0A3910 800A2D10 8FBE0068 */ lw $fp, 0x68($sp)
/* 0A3914 800A2D14 03E00008 */ jr $ra
/* 0A3918 800A2D18 27BD00E8 */ addiu $sp, $sp, 0xe8
@@ -1,433 +0,0 @@
glabel func_800AB314
/* 0ABF14 800AB314 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 0ABF18 800AB318 AFBF0014 */ sw $ra, 0x14($sp)
/* 0ABF1C 800AB31C 00803025 */ move $a2, $a0
/* 0ABF20 800AB320 27A30024 */ addiu $v1, $sp, 0x24
/* 0ABF24 800AB324 00002825 */ move $a1, $zero
.L800AB328:
/* 0ABF28 800AB328 24A4005F */ addiu $a0, $a1, 0x5f
/* 0ABF2C 800AB32C AFA3001C */ sw $v1, 0x1c($sp)
/* 0ABF30 800AB330 AFA5003C */ sw $a1, 0x3c($sp)
/* 0ABF34 800AB334 0C02ABBD */ jal find_menu_items_dupe
/* 0ABF38 800AB338 AFA60040 */ sw $a2, 0x40($sp)
/* 0ABF3C 800AB33C 8FA5003C */ lw $a1, 0x3c($sp)
/* 0ABF40 800AB340 8FA3001C */ lw $v1, 0x1c($sp)
/* 0ABF44 800AB344 8FA60040 */ lw $a2, 0x40($sp)
/* 0ABF48 800AB348 24A50001 */ addiu $a1, $a1, 1
/* 0ABF4C 800AB34C 28A10004 */ slti $at, $a1, 4
/* 0ABF50 800AB350 24630004 */ addiu $v1, $v1, 4
/* 0ABF54 800AB354 1420FFF4 */ bnez $at, .L800AB328
/* 0ABF58 800AB358 AC62FFFC */ sw $v0, -4($v1)
/* 0ABF5C 800AB35C 3C0E800E */ lui $t6, %hi(gModeSelection) # $t6, 0x800e
/* 0ABF60 800AB360 8DCEC53C */ lw $t6, %lo(gModeSelection)($t6)
/* 0ABF64 800AB364 3C0F8019 */ lui $t7, %hi(gSubMenuSelection) # $t7, 0x8019
/* 0ABF68 800AB368 51C00053 */ beql $t6, $zero, .L800AB4B8
/* 0ABF6C 800AB36C 8CC20004 */ lw $v0, 4($a2)
/* 0ABF70 800AB370 81EFEDEC */ lb $t7, %lo(gSubMenuSelection)($t7)
/* 0ABF74 800AB374 24040001 */ li $a0, 1
/* 0ABF78 800AB378 24030003 */ li $v1, 3
/* 0ABF7C 800AB37C 108F003A */ beq $a0, $t7, .L800AB468
/* 0ABF80 800AB380 3C028019 */ lui $v0, %hi(gCourseIndexInCup) # $v0, 0x8019
/* 0ABF84 800AB384 ACC00004 */ sw $zero, 4($a2)
/* 0ABF88 800AB388 ACC00020 */ sw $zero, 0x20($a2)
/* 0ABF8C 800AB38C 2442EE0B */ addiu $v0, %lo(gCourseIndexInCup) # addiu $v0, $v0, -0x11f5
/* 0ABF90 800AB390 80580000 */ lb $t8, ($v0)
/* 0ABF94 800AB394 8FB90024 */ lw $t9, 0x24($sp)
/* 0ABF98 800AB398 8FAB0024 */ lw $t3, 0x24($sp)
/* 0ABF9C 800AB39C 57000008 */ bnel $t8, $zero, .L800AB3C0
/* 0ABFA0 800AB3A0 A1600015 */ sb $zero, 0x15($t3)
/* 0ABFA4 800AB3A4 A3240015 */ sb $a0, 0x15($t9)
/* 0ABFA8 800AB3A8 8CCA001C */ lw $t2, 0x1c($a2)
/* 0ABFAC 800AB3AC 51400005 */ beql $t2, $zero, .L800AB3C4
/* 0ABFB0 800AB3B0 804C0000 */ lb $t4, ($v0)
/* 0ABFB4 800AB3B4 10000002 */ b .L800AB3C0
/* 0ABFB8 800AB3B8 ACC0001C */ sw $zero, 0x1c($a2)
/* 0ABFBC 800AB3BC A1600015 */ sb $zero, 0x15($t3)
.L800AB3C0:
/* 0ABFC0 800AB3C0 804C0000 */ lb $t4, ($v0)
.L800AB3C4:
/* 0ABFC4 800AB3C4 24010001 */ li $at, 1
/* 0ABFC8 800AB3C8 8FAF0028 */ lw $t7, 0x28($sp)
/* 0ABFCC 800AB3CC 15810008 */ bne $t4, $at, .L800AB3F0
/* 0ABFD0 800AB3D0 8FAD0028 */ lw $t5, 0x28($sp)
/* 0ABFD4 800AB3D4 A1A40015 */ sb $a0, 0x15($t5)
/* 0ABFD8 800AB3D8 8CCE001C */ lw $t6, 0x1c($a2)
/* 0ABFDC 800AB3DC 24010001 */ li $at, 1
/* 0ABFE0 800AB3E0 51C10005 */ beql $t6, $at, .L800AB3F8
/* 0ABFE4 800AB3E4 80580000 */ lb $t8, ($v0)
/* 0ABFE8 800AB3E8 10000002 */ b .L800AB3F4
/* 0ABFEC 800AB3EC ACC4001C */ sw $a0, 0x1c($a2)
.L800AB3F0:
/* 0ABFF0 800AB3F0 A1E00015 */ sb $zero, 0x15($t7)
.L800AB3F4:
/* 0ABFF4 800AB3F4 80580000 */ lb $t8, ($v0)
.L800AB3F8:
/* 0ABFF8 800AB3F8 24010002 */ li $at, 2
/* 0ABFFC 800AB3FC 8FAC002C */ lw $t4, 0x2c($sp)
/* 0AC000 800AB400 17010009 */ bne $t8, $at, .L800AB428
/* 0AC004 800AB404 8FB9002C */ lw $t9, 0x2c($sp)
/* 0AC008 800AB408 A3240015 */ sb $a0, 0x15($t9)
/* 0AC00C 800AB40C 8CCA001C */ lw $t2, 0x1c($a2)
/* 0AC010 800AB410 24010002 */ li $at, 2
/* 0AC014 800AB414 240B0002 */ li $t3, 2
/* 0AC018 800AB418 51410005 */ beql $t2, $at, .L800AB430
/* 0AC01C 800AB41C 804D0000 */ lb $t5, ($v0)
/* 0AC020 800AB420 10000002 */ b .L800AB42C
/* 0AC024 800AB424 ACCB001C */ sw $t3, 0x1c($a2)
.L800AB428:
/* 0AC028 800AB428 A1800015 */ sb $zero, 0x15($t4)
.L800AB42C:
/* 0AC02C 800AB42C 804D0000 */ lb $t5, ($v0)
.L800AB430:
/* 0AC030 800AB430 24010003 */ li $at, 3
/* 0AC034 800AB434 8FB80030 */ lw $t8, 0x30($sp)
/* 0AC038 800AB438 15A10009 */ bne $t5, $at, .L800AB460
/* 0AC03C 800AB43C 8FAE0030 */ lw $t6, 0x30($sp)
/* 0AC040 800AB440 A1C40015 */ sb $a0, 0x15($t6)
/* 0AC044 800AB444 8CCF001C */ lw $t7, 0x1c($a2)
/* 0AC048 800AB448 24010003 */ li $at, 3
/* 0AC04C 800AB44C 24030003 */ li $v1, 3
/* 0AC050 800AB450 51E10129 */ beql $t7, $at, .L800AB8F8
/* 0AC054 800AB454 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AC058 800AB458 10000126 */ b .L800AB8F4
/* 0AC05C 800AB45C ACC3001C */ sw $v1, 0x1c($a2)
.L800AB460:
/* 0AC060 800AB460 10000124 */ b .L800AB8F4
/* 0AC064 800AB464 A3000015 */ sb $zero, 0x15($t8)
.L800AB468:
/* 0AC068 800AB468 ACC30004 */ sw $v1, 4($a2)
/* 0AC06C 800AB46C 8FB90024 */ lw $t9, 0x24($sp)
/* 0AC070 800AB470 24020006 */ li $v0, 6
/* 0AC074 800AB474 A3240015 */ sb $a0, 0x15($t9)
/* 0AC078 800AB478 8FAA0024 */ lw $t2, 0x24($sp)
/* 0AC07C 800AB47C A1420014 */ sb $v0, 0x14($t2)
/* 0AC080 800AB480 8FAB0028 */ lw $t3, 0x28($sp)
/* 0AC084 800AB484 A1640015 */ sb $a0, 0x15($t3)
/* 0AC088 800AB488 8FAC0028 */ lw $t4, 0x28($sp)
/* 0AC08C 800AB48C A1820014 */ sb $v0, 0x14($t4)
/* 0AC090 800AB490 8FAD002C */ lw $t5, 0x2c($sp)
/* 0AC094 800AB494 A1A40015 */ sb $a0, 0x15($t5)
/* 0AC098 800AB498 8FAE002C */ lw $t6, 0x2c($sp)
/* 0AC09C 800AB49C A1C20014 */ sb $v0, 0x14($t6)
/* 0AC0A0 800AB4A0 8FAF0030 */ lw $t7, 0x30($sp)
/* 0AC0A4 800AB4A4 A1E40015 */ sb $a0, 0x15($t7)
/* 0AC0A8 800AB4A8 8FB80030 */ lw $t8, 0x30($sp)
/* 0AC0AC 800AB4AC 10000111 */ b .L800AB8F4
/* 0AC0B0 800AB4B0 A3020014 */ sb $v0, 0x14($t8)
/* 0AC0B4 800AB4B4 8CC20004 */ lw $v0, 4($a2)
.L800AB4B8:
/* 0AC0B8 800AB4B8 3C038019 */ lui $v1, %hi(gCupSelection) # 0x8019
/* 0AC0BC 800AB4BC 24040001 */ li $a0, 1
/* 0AC0C0 800AB4C0 5040000C */ beql $v0, $zero, .L800AB4F4
/* 0AC0C4 800AB4C4 8CD9001C */ lw $t9, 0x1c($a2)
/* 0AC0C8 800AB4C8 1044002F */ beq $v0, $a0, .L800AB588
/* 0AC0CC 800AB4CC 3C038019 */ lui $v1, %hi(gCupSelection) # $v1, 0x8019
/* 0AC0D0 800AB4D0 24010002 */ li $at, 2
/* 0AC0D4 800AB4D4 1041005C */ beq $v0, $at, .L800AB648
/* 0AC0D8 800AB4D8 3C0D8019 */ lui $t5, %hi(gSubMenuSelection) # 0x8019
/* 0AC0DC 800AB4DC 24030003 */ li $v1, 3
/* 0AC0E0 800AB4E0 1043006A */ beq $v0, $v1, .L800AB68C
/* 0AC0E4 800AB4E4 3C198019 */ lui $t9, %hi(gSubMenuSelection) # 0x8019
/* 0AC0E8 800AB4E8 1000006F */ b .L800AB6A8
/* 0AC0EC 800AB4EC 00000000 */ nop
/* 0AC0F0 800AB4F0 8CD9001C */ lw $t9, 0x1c($a2)
.L800AB4F4:
/* 0AC0F4 800AB4F4 2463EE09 */ addiu $v1, %lo(gCupSelection) # addiu $v1, $v1, -0x11f7
/* 0AC0F8 800AB4F8 806B0000 */ lb $t3, ($v1)
/* 0AC0FC 800AB4FC 07210003 */ bgez $t9, .L800AB50C
/* 0AC100 800AB500 00195083 */ sra $t2, $t9, 2
/* 0AC104 800AB504 27210003 */ addiu $at, $t9, 3
/* 0AC108 800AB508 00015083 */ sra $t2, $at, 2
.L800AB50C:
/* 0AC10C 800AB50C 554B0010 */ bnel $t2, $t3, .L800AB550
/* 0AC110 800AB510 ACC00020 */ sw $zero, 0x20($a2)
/* 0AC114 800AB514 8CCC0020 */ lw $t4, 0x20($a2)
/* 0AC118 800AB518 24040001 */ li $a0, 1
/* 0AC11C 800AB51C 258D0001 */ addiu $t5, $t4, 1
/* 0AC120 800AB520 29A10033 */ slti $at, $t5, 0x33
/* 0AC124 800AB524 14200007 */ bnez $at, .L800AB544
/* 0AC128 800AB528 ACCD0020 */ sw $t5, 0x20($a2)
/* 0AC12C 800AB52C ACC40004 */ sw $a0, 4($a2)
/* 0AC130 800AB530 ACC00020 */ sw $zero, 0x20($a2)
/* 0AC134 800AB534 806F0000 */ lb $t7, ($v1)
/* 0AC138 800AB538 000FC080 */ sll $t8, $t7, 2
/* 0AC13C 800AB53C 27190001 */ addiu $t9, $t8, 1
/* 0AC140 800AB540 ACD9001C */ sw $t9, 0x1c($a2)
.L800AB544:
/* 0AC144 800AB544 10000006 */ b .L800AB560
/* 0AC148 800AB548 24040001 */ li $a0, 1
/* 0AC14C 800AB54C ACC00020 */ sw $zero, 0x20($a2)
.L800AB550:
/* 0AC150 800AB550 806A0000 */ lb $t2, ($v1)
/* 0AC154 800AB554 24040001 */ li $a0, 1
/* 0AC158 800AB558 000A5880 */ sll $t3, $t2, 2
/* 0AC15C 800AB55C ACCB001C */ sw $t3, 0x1c($a2)
.L800AB560:
/* 0AC160 800AB560 3C0C8019 */ lui $t4, %hi(gSubMenuSelection) # $t4, 0x8019
/* 0AC164 800AB564 818CEDEC */ lb $t4, %lo(gSubMenuSelection)($t4)
/* 0AC168 800AB568 24030003 */ li $v1, 3
/* 0AC16C 800AB56C 240D0002 */ li $t5, 2
/* 0AC170 800AB570 146C0003 */ bne $v1, $t4, .L800AB580
/* 0AC174 800AB574 00000000 */ nop
/* 0AC178 800AB578 ACCD0004 */ sw $t5, 4($a2)
/* 0AC17C 800AB57C ACC00020 */ sw $zero, 0x20($a2)
.L800AB580:
/* 0AC180 800AB580 10000049 */ b .L800AB6A8
/* 0AC184 800AB584 8CC20004 */ lw $v0, 4($a2)
.L800AB588:
/* 0AC188 800AB588 8CCE001C */ lw $t6, 0x1c($a2)
/* 0AC18C 800AB58C 2463EE09 */ addiu $v1, $v1, %lo(gCupSelection) # -0x11f7
/* 0AC190 800AB590 80780000 */ lb $t8, ($v1)
/* 0AC194 800AB594 05C10003 */ bgez $t6, .L800AB5A4
/* 0AC198 800AB598 000E7883 */ sra $t7, $t6, 2
/* 0AC19C 800AB59C 25C10003 */ addiu $at, $t6, 3
/* 0AC1A0 800AB5A0 00017883 */ sra $t7, $at, 2
.L800AB5A4:
/* 0AC1A4 800AB5A4 11F80006 */ beq $t7, $t8, .L800AB5C0
/* 0AC1A8 800AB5A8 00001025 */ move $v0, $zero
/* 0AC1AC 800AB5AC ACC00004 */ sw $zero, 4($a2)
/* 0AC1B0 800AB5B0 ACC00020 */ sw $zero, 0x20($a2)
/* 0AC1B4 800AB5B4 ACC0001C */ sw $zero, 0x1c($a2)
/* 0AC1B8 800AB5B8 1000003B */ b .L800AB6A8
/* 0AC1BC 800AB5BC 24030003 */ li $v1, 3
.L800AB5C0:
/* 0AC1C0 800AB5C0 8CD90020 */ lw $t9, 0x20($a2)
/* 0AC1C4 800AB5C4 272A0001 */ addiu $t2, $t9, 1
/* 0AC1C8 800AB5C8 2941001F */ slti $at, $t2, 0x1f
/* 0AC1CC 800AB5CC 14200015 */ bnez $at, .L800AB624
/* 0AC1D0 800AB5D0 ACCA0020 */ sw $t2, 0x20($a2)
/* 0AC1D4 800AB5D4 8CCE001C */ lw $t6, 0x1c($a2)
/* 0AC1D8 800AB5D8 ACC00020 */ sw $zero, 0x20($a2)
/* 0AC1DC 800AB5DC 806C0000 */ lb $t4, ($v1)
/* 0AC1E0 800AB5E0 24030003 */ li $v1, 3
/* 0AC1E4 800AB5E4 8CC20004 */ lw $v0, 4($a2)
/* 0AC1E8 800AB5E8 000C6880 */ sll $t5, $t4, 2
/* 0AC1EC 800AB5EC 05C10004 */ bgez $t6, .L800AB600
/* 0AC1F0 800AB5F0 31CF0003 */ andi $t7, $t6, 3
/* 0AC1F4 800AB5F4 11E00002 */ beqz $t7, .L800AB600
/* 0AC1F8 800AB5F8 00000000 */ nop
/* 0AC1FC 800AB5FC 25EFFFFC */ addiu $t7, $t7, -4
.L800AB600:
/* 0AC200 800AB600 25F80001 */ addiu $t8, $t7, 1
/* 0AC204 800AB604 07010004 */ bgez $t8, .L800AB618
/* 0AC208 800AB608 33190003 */ andi $t9, $t8, 3
/* 0AC20C 800AB60C 13200002 */ beqz $t9, .L800AB618
/* 0AC210 800AB610 00000000 */ nop
/* 0AC214 800AB614 2739FFFC */ addiu $t9, $t9, -4
.L800AB618:
/* 0AC218 800AB618 01B95021 */ addu $t2, $t5, $t9
/* 0AC21C 800AB61C 10000022 */ b .L800AB6A8
/* 0AC220 800AB620 ACCA001C */ sw $t2, 0x1c($a2)
.L800AB624:
/* 0AC224 800AB624 3C0B8019 */ lui $t3, %hi(gSubMenuSelection) # $t3, 0x8019
/* 0AC228 800AB628 816BEDEC */ lb $t3, %lo(gSubMenuSelection)($t3)
/* 0AC22C 800AB62C 24030003 */ li $v1, 3
/* 0AC230 800AB630 146B0003 */ bne $v1, $t3, .L800AB640
/* 0AC234 800AB634 240C0002 */ li $t4, 2
/* 0AC238 800AB638 ACCC0004 */ sw $t4, 4($a2)
/* 0AC23C 800AB63C ACC00020 */ sw $zero, 0x20($a2)
.L800AB640:
/* 0AC240 800AB640 10000019 */ b .L800AB6A8
/* 0AC244 800AB644 8CC20004 */ lw $v0, 4($a2)
.L800AB648:
/* 0AC248 800AB648 8CCE0020 */ lw $t6, 0x20($a2)
/* 0AC24C 800AB64C 24030003 */ li $v1, 3
/* 0AC250 800AB650 25CF0001 */ addiu $t7, $t6, 1
/* 0AC254 800AB654 29E1001A */ slti $at, $t7, 0x1a
/* 0AC258 800AB658 14200003 */ bnez $at, .L800AB668
/* 0AC25C 800AB65C ACCF0020 */ sw $t7, 0x20($a2)
/* 0AC260 800AB660 ACC30004 */ sw $v1, 4($a2)
/* 0AC264 800AB664 ACC00020 */ sw $zero, 0x20($a2)
.L800AB668:
/* 0AC268 800AB668 81ADEDEC */ lb $t5, %lo(gSubMenuSelection)($t5) # -0x1214($t5)
/* 0AC26C 800AB66C 24030003 */ li $v1, 3
/* 0AC270 800AB670 106D0004 */ beq $v1, $t5, .L800AB684
/* 0AC274 800AB674 00000000 */ nop
/* 0AC278 800AB678 ACC00004 */ sw $zero, 4($a2)
/* 0AC27C 800AB67C ACC00020 */ sw $zero, 0x20($a2)
/* 0AC280 800AB680 ACC0001C */ sw $zero, 0x1c($a2)
.L800AB684:
/* 0AC284 800AB684 10000008 */ b .L800AB6A8
/* 0AC288 800AB688 8CC20004 */ lw $v0, 4($a2)
.L800AB68C:
/* 0AC28C 800AB68C 8339EDEC */ lb $t9, %lo(gSubMenuSelection)($t9) # -0x1214($t9)
/* 0AC290 800AB690 10790005 */ beq $v1, $t9, .L800AB6A8
/* 0AC294 800AB694 00000000 */ nop
/* 0AC298 800AB698 ACC00004 */ sw $zero, 4($a2)
/* 0AC29C 800AB69C ACC00020 */ sw $zero, 0x20($a2)
/* 0AC2A0 800AB6A0 ACC0001C */ sw $zero, 0x1c($a2)
/* 0AC2A4 800AB6A4 00001025 */ move $v0, $zero
.L800AB6A8:
/* 0AC2A8 800AB6A8 5040000A */ beql $v0, $zero, .L800AB6D4
/* 0AC2AC 800AB6AC 8CCA001C */ lw $t2, 0x1c($a2)
/* 0AC2B0 800AB6B0 10440007 */ beq $v0, $a0, .L800AB6D0
/* 0AC2B4 800AB6B4 24010002 */ li $at, 2
/* 0AC2B8 800AB6B8 10410042 */ beq $v0, $at, .L800AB7C4
/* 0AC2BC 800AB6BC 00002825 */ move $a1, $zero
/* 0AC2C0 800AB6C0 1043007C */ beq $v0, $v1, .L800AB8B4
/* 0AC2C4 800AB6C4 8FAD0024 */ lw $t5, 0x24($sp)
/* 0AC2C8 800AB6C8 1000008B */ b .L800AB8F8
/* 0AC2CC 800AB6CC 8FBF0014 */ lw $ra, 0x14($sp)
.L800AB6D0:
/* 0AC2D0 800AB6D0 8CCA001C */ lw $t2, 0x1c($a2)
.L800AB6D4:
/* 0AC2D4 800AB6D4 8FAC0024 */ lw $t4, 0x24($sp)
/* 0AC2D8 800AB6D8 8FAE0024 */ lw $t6, 0x24($sp)
/* 0AC2DC 800AB6DC 314B0003 */ andi $t3, $t2, 3
/* 0AC2E0 800AB6E0 55600004 */ bnel $t3, $zero, .L800AB6F4
/* 0AC2E4 800AB6E4 A1C00015 */ sb $zero, 0x15($t6)
/* 0AC2E8 800AB6E8 10000002 */ b .L800AB6F4
/* 0AC2EC 800AB6EC A1840015 */ sb $a0, 0x15($t4)
/* 0AC2F0 800AB6F0 A1C00015 */ sb $zero, 0x15($t6)
.L800AB6F4:
/* 0AC2F4 800AB6F4 8FAF0024 */ lw $t7, 0x24($sp)
/* 0AC2F8 800AB6F8 24020006 */ li $v0, 6
/* 0AC2FC 800AB6FC 24010001 */ li $at, 1
/* 0AC300 800AB700 A1E20014 */ sb $v0, 0x14($t7)
/* 0AC304 800AB704 8CD8001C */ lw $t8, 0x1c($a2)
/* 0AC308 800AB708 8FAA0028 */ lw $t2, 0x28($sp)
/* 0AC30C 800AB70C 8FB90028 */ lw $t9, 0x28($sp)
/* 0AC310 800AB710 07010004 */ bgez $t8, .L800AB724
/* 0AC314 800AB714 330D0003 */ andi $t5, $t8, 3
/* 0AC318 800AB718 11A00002 */ beqz $t5, .L800AB724
/* 0AC31C 800AB71C 00000000 */ nop
/* 0AC320 800AB720 25ADFFFC */ addiu $t5, $t5, -4
.L800AB724:
/* 0AC324 800AB724 55A10004 */ bnel $t5, $at, .L800AB738
/* 0AC328 800AB728 A1400015 */ sb $zero, 0x15($t2)
/* 0AC32C 800AB72C 10000002 */ b .L800AB738
/* 0AC330 800AB730 A3240015 */ sb $a0, 0x15($t9)
/* 0AC334 800AB734 A1400015 */ sb $zero, 0x15($t2)
.L800AB738:
/* 0AC338 800AB738 8FAB0028 */ lw $t3, 0x28($sp)
/* 0AC33C 800AB73C 24010002 */ li $at, 2
/* 0AC340 800AB740 A1620014 */ sb $v0, 0x14($t3)
/* 0AC344 800AB744 8CCC001C */ lw $t4, 0x1c($a2)
/* 0AC348 800AB748 8FB8002C */ lw $t8, 0x2c($sp)
/* 0AC34C 800AB74C 8FAF002C */ lw $t7, 0x2c($sp)
/* 0AC350 800AB750 05810004 */ bgez $t4, .L800AB764
/* 0AC354 800AB754 318E0003 */ andi $t6, $t4, 3
/* 0AC358 800AB758 11C00002 */ beqz $t6, .L800AB764
/* 0AC35C 800AB75C 00000000 */ nop
/* 0AC360 800AB760 25CEFFFC */ addiu $t6, $t6, -4
.L800AB764:
/* 0AC364 800AB764 55C10004 */ bnel $t6, $at, .L800AB778
/* 0AC368 800AB768 A3000015 */ sb $zero, 0x15($t8)
/* 0AC36C 800AB76C 10000002 */ b .L800AB778
/* 0AC370 800AB770 A1E40015 */ sb $a0, 0x15($t7)
/* 0AC374 800AB774 A3000015 */ sb $zero, 0x15($t8)
.L800AB778:
/* 0AC378 800AB778 8FAD002C */ lw $t5, 0x2c($sp)
/* 0AC37C 800AB77C 24010003 */ li $at, 3
/* 0AC380 800AB780 A1A20014 */ sb $v0, 0x14($t5)
/* 0AC384 800AB784 8CD9001C */ lw $t9, 0x1c($a2)
/* 0AC388 800AB788 8FAC0030 */ lw $t4, 0x30($sp)
/* 0AC38C 800AB78C 8FAB0030 */ lw $t3, 0x30($sp)
/* 0AC390 800AB790 07210004 */ bgez $t9, .L800AB7A4
/* 0AC394 800AB794 332A0003 */ andi $t2, $t9, 3
/* 0AC398 800AB798 11400002 */ beqz $t2, .L800AB7A4
/* 0AC39C 800AB79C 00000000 */ nop
/* 0AC3A0 800AB7A0 254AFFFC */ addiu $t2, $t2, -4
.L800AB7A4:
/* 0AC3A4 800AB7A4 55410004 */ bnel $t2, $at, .L800AB7B8
/* 0AC3A8 800AB7A8 A1800015 */ sb $zero, 0x15($t4)
/* 0AC3AC 800AB7AC 10000002 */ b .L800AB7B8
/* 0AC3B0 800AB7B0 A1640015 */ sb $a0, 0x15($t3)
/* 0AC3B4 800AB7B4 A1800015 */ sb $zero, 0x15($t4)
.L800AB7B8:
/* 0AC3B8 800AB7B8 8FAE0030 */ lw $t6, 0x30($sp)
/* 0AC3BC 800AB7BC 1000004D */ b .L800AB8F4
/* 0AC3C0 800AB7C0 A1C20014 */ sb $v0, 0x14($t6)
.L800AB7C4:
/* 0AC3C4 800AB7C4 27A30024 */ addiu $v1, $sp, 0x24
/* 0AC3C8 800AB7C8 24090008 */ li $t1, 8
/* 0AC3CC 800AB7CC 24080005 */ li $t0, 5
/* 0AC3D0 800AB7D0 24070004 */ li $a3, 4
/* 0AC3D4 800AB7D4 24020006 */ li $v0, 6
.L800AB7D8:
/* 0AC3D8 800AB7D8 8CCF001C */ lw $t7, 0x1c($a2)
/* 0AC3DC 800AB7DC 05E10004 */ bgez $t7, .L800AB7F0
/* 0AC3E0 800AB7E0 31F80003 */ andi $t8, $t7, 3
/* 0AC3E4 800AB7E4 13000002 */ beqz $t8, .L800AB7F0
/* 0AC3E8 800AB7E8 00000000 */ nop
/* 0AC3EC 800AB7EC 2718FFFC */ addiu $t8, $t8, -4
.L800AB7F0:
/* 0AC3F0 800AB7F0 14B80004 */ bne $a1, $t8, .L800AB804
/* 0AC3F4 800AB7F4 00000000 */ nop
/* 0AC3F8 800AB7F8 8C6D0000 */ lw $t5, ($v1)
/* 0AC3FC 800AB7FC 1000000C */ b .L800AB830
/* 0AC400 800AB800 A1A20014 */ sb $v0, 0x14($t5)
.L800AB804:
/* 0AC404 800AB804 00A80019 */ multu $a1, $t0
/* 0AC408 800AB808 8CD90020 */ lw $t9, 0x20($a2)
/* 0AC40C 800AB80C 00005012 */ mflo $t2
/* 0AC410 800AB810 032A082A */ slt $at, $t9, $t2
/* 0AC414 800AB814 50200005 */ beql $at, $zero, .L800AB82C
/* 0AC418 800AB818 8C6C0000 */ lw $t4, ($v1)
/* 0AC41C 800AB81C 8C6B0000 */ lw $t3, ($v1)
/* 0AC420 800AB820 10000003 */ b .L800AB830
/* 0AC424 800AB824 A1670014 */ sb $a3, 0x14($t3)
/* 0AC428 800AB828 8C6C0000 */ lw $t4, ($v1)
.L800AB82C:
/* 0AC42C 800AB82C A1890014 */ sb $t1, 0x14($t4)
.L800AB830:
/* 0AC430 800AB830 8C6E0000 */ lw $t6, ($v1)
/* 0AC434 800AB834 24AF0001 */ addiu $t7, $a1, 1
/* 0AC438 800AB838 A1C40015 */ sb $a0, 0x15($t6)
/* 0AC43C 800AB83C 8CD8001C */ lw $t8, 0x1c($a2)
/* 0AC440 800AB840 07010004 */ bgez $t8, .L800AB854
/* 0AC444 800AB844 330D0003 */ andi $t5, $t8, 3
/* 0AC448 800AB848 11A00002 */ beqz $t5, .L800AB854
/* 0AC44C 800AB84C 00000000 */ nop
/* 0AC450 800AB850 25ADFFFC */ addiu $t5, $t5, -4
.L800AB854:
/* 0AC454 800AB854 15ED0004 */ bne $t7, $t5, .L800AB868
/* 0AC458 800AB858 00000000 */ nop
/* 0AC45C 800AB85C 8C790004 */ lw $t9, 4($v1)
/* 0AC460 800AB860 1000000D */ b .L800AB898
/* 0AC464 800AB864 A3220014 */ sb $v0, 0x14($t9)
.L800AB868:
/* 0AC468 800AB868 00A80019 */ multu $a1, $t0
/* 0AC46C 800AB86C 8CCA0020 */ lw $t2, 0x20($a2)
/* 0AC470 800AB870 00005812 */ mflo $t3
/* 0AC474 800AB874 256C0005 */ addiu $t4, $t3, 5
/* 0AC478 800AB878 014C082A */ slt $at, $t2, $t4
/* 0AC47C 800AB87C 50200005 */ beql $at, $zero, .L800AB894
/* 0AC480 800AB880 8C780004 */ lw $t8, 4($v1)
/* 0AC484 800AB884 8C6E0004 */ lw $t6, 4($v1)
/* 0AC488 800AB888 10000003 */ b .L800AB898
/* 0AC48C 800AB88C A1C70014 */ sb $a3, 0x14($t6)
/* 0AC490 800AB890 8C780004 */ lw $t8, 4($v1)
.L800AB894:
/* 0AC494 800AB894 A3090014 */ sb $t1, 0x14($t8)
.L800AB898:
/* 0AC498 800AB898 8C6F0004 */ lw $t7, 4($v1)
/* 0AC49C 800AB89C 24A50002 */ addiu $a1, $a1, 2
/* 0AC4A0 800AB8A0 24630008 */ addiu $v1, $v1, 8
/* 0AC4A4 800AB8A4 14A7FFCC */ bne $a1, $a3, .L800AB7D8
/* 0AC4A8 800AB8A8 A1E40015 */ sb $a0, 0x15($t7)
/* 0AC4AC 800AB8AC 10000012 */ b .L800AB8F8
/* 0AC4B0 800AB8B0 8FBF0014 */ lw $ra, 0x14($sp)
.L800AB8B4:
/* 0AC4B4 800AB8B4 A1A40015 */ sb $a0, 0x15($t5)
/* 0AC4B8 800AB8B8 8FB90024 */ lw $t9, 0x24($sp)
/* 0AC4BC 800AB8BC 24020006 */ li $v0, 6
/* 0AC4C0 800AB8C0 A3220014 */ sb $v0, 0x14($t9)
/* 0AC4C4 800AB8C4 8FAB0028 */ lw $t3, 0x28($sp)
/* 0AC4C8 800AB8C8 A1640015 */ sb $a0, 0x15($t3)
/* 0AC4CC 800AB8CC 8FAA0028 */ lw $t2, 0x28($sp)
/* 0AC4D0 800AB8D0 A1420014 */ sb $v0, 0x14($t2)
/* 0AC4D4 800AB8D4 8FAC002C */ lw $t4, 0x2c($sp)
/* 0AC4D8 800AB8D8 A1840015 */ sb $a0, 0x15($t4)
/* 0AC4DC 800AB8DC 8FAE002C */ lw $t6, 0x2c($sp)
/* 0AC4E0 800AB8E0 A1C20014 */ sb $v0, 0x14($t6)
/* 0AC4E4 800AB8E4 8FB80030 */ lw $t8, 0x30($sp)
/* 0AC4E8 800AB8E8 A3040015 */ sb $a0, 0x15($t8)
/* 0AC4EC 800AB8EC 8FAF0030 */ lw $t7, 0x30($sp)
/* 0AC4F0 800AB8F0 A1E20014 */ sb $v0, 0x14($t7)
.L800AB8F4:
/* 0AC4F4 800AB8F4 8FBF0014 */ lw $ra, 0x14($sp)
.L800AB8F8:
/* 0AC4F8 800AB8F8 27BD0040 */ addiu $sp, $sp, 0x40
/* 0AC4FC 800AB8FC 03E00008 */ jr $ra
/* 0AC500 800AB900 00000000 */ nop
@@ -1,215 +0,0 @@
.section .rodata
glabel D_800F0C54
.asciiz "'"
.balign 4
glabel D_800F0C58
.asciiz "\""
.balign 4
.section .late_rodata
glabel D_800F1DC8
.float 0.65
.section .text
glabel render_lap_times
/* 0A534C 800A474C 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 0A5350 800A4750 3C0E800E */ lui $t6, %hi(gGamestate) # $t6, 0x800e
/* 0A5354 800A4754 8DCEC50C */ lw $t6, %lo(gGamestate)($t6)
/* 0A5358 800A4758 24010004 */ li $at, 4
/* 0A535C 800A475C AFBF0024 */ sw $ra, 0x24($sp)
/* 0A5360 800A4760 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 0A5364 800A4764 AFA40050 */ sw $a0, 0x50($sp)
/* 0A5368 800A4768 AFA50054 */ sw $a1, 0x54($sp)
/* 0A536C 800A476C 15C10003 */ bne $t6, $at, .L800A477C
/* 0A5370 800A4770 AFA60058 */ sw $a2, 0x58($sp)
/* 0A5374 800A4774 10000003 */ b .L800A4784
/* 0A5378 800A4778 AFA00030 */ sw $zero, 0x30($sp)
.L800A477C:
/* 0A537C 800A477C 240F0001 */ li $t7, 1
/* 0A5380 800A4780 AFAF0030 */ sw $t7, 0x30($sp)
.L800A4784:
/* 0A5384 800A4784 8FB80050 */ lw $t8, 0x50($sp)
/* 0A5388 800A4788 2B010005 */ slti $at, $t8, 5
/* 0A538C 800A478C 50200012 */ beql $at, $zero, .L800A47D8
/* 0A5390 800A4790 8FA80030 */ lw $t0, 0x30($sp)
/* 0A5394 800A4794 8FB90030 */ lw $t9, 0x30($sp)
/* 0A5398 800A4798 8FA40050 */ lw $a0, 0x50($sp)
/* 0A539C 800A479C 3C058019 */ lui $a1, %hi(gTimeTrialDataCourseIndex) # $a1, 0x8019
/* 0A53A0 800A47A0 17200005 */ bnez $t9, .L800A47B8
/* 0A53A4 800A47A4 00000000 */ nop
/* 0A53A8 800A47A8 0C02D389 */ jal func_800B4E24
/* 0A53AC 800A47AC 03002025 */ move $a0, $t8
/* 0A53B0 800A47B0 10000004 */ b .L800A47C4
/* 0A53B4 800A47B4 AFA20048 */ sw $v0, 0x48($sp)
.L800A47B8:
/* 0A53B8 800A47B8 0C02D3AD */ jal func_800B4EB4
/* 0A53BC 800A47BC 80A5EDF7 */ lb $a1, %lo(gTimeTrialDataCourseIndex)($a1)
/* 0A53C0 800A47C0 AFA20048 */ sw $v0, 0x48($sp)
.L800A47C4:
/* 0A53C4 800A47C4 0C024C36 */ jal set_text_color
/* 0A53C8 800A47C8 24040001 */ li $a0, 1
/* 0A53CC 800A47CC 1000000D */ b .L800A4804
/* 0A53D0 800A47D0 8FA90050 */ lw $t1, 0x50($sp)
/* 0A53D4 800A47D4 8FA80030 */ lw $t0, 0x30($sp)
.L800A47D8:
/* 0A53D8 800A47D8 3C048019 */ lui $a0, %hi(gTimeTrialDataCourseIndex) # $a0, 0x8019
/* 0A53DC 800A47DC 15000005 */ bnez $t0, .L800A47F4
/* 0A53E0 800A47E0 00000000 */ nop
/* 0A53E4 800A47E4 0C02D3CB */ jal func_800B4F2C
/* 0A53E8 800A47E8 00000000 */ nop
/* 0A53EC 800A47EC 10000004 */ b .L800A4800
/* 0A53F0 800A47F0 AFA20048 */ sw $v0, 0x48($sp)
.L800A47F4:
/* 0A53F4 800A47F4 0C02D3EC */ jal func_800B4FB0
/* 0A53F8 800A47F8 8084EDF7 */ lb $a0, %lo(gTimeTrialDataCourseIndex)($a0)
/* 0A53FC 800A47FC AFA20048 */ sw $v0, 0x48($sp)
.L800A4800:
/* 0A5400 800A4800 8FA90050 */ lw $t1, 0x50($sp)
.L800A4804:
/* 0A5404 800A4804 3C01800F */ lui $at, %hi(D_800F1DC8) # $at, 0x800f
/* 0A5408 800A4808 C4341DC8 */ lwc1 $f20, %lo(D_800F1DC8)($at)
/* 0A540C 800A480C 8FA40054 */ lw $a0, 0x54($sp)
/* 0A5410 800A4810 3C06800E */ lui $a2, %hi(D_800E7744)
/* 0A5414 800A4814 00095080 */ sll $t2, $t1, 2
/* 0A5418 800A4818 00CA3021 */ addu $a2, $a2, $t2
/* 0A541C 800A481C 8CC67744 */ lw $a2, %lo(D_800E7744)($a2)
/* 0A5420 800A4820 8FA50058 */ lw $a1, 0x58($sp)
/* 0A5424 800A4824 24070002 */ li $a3, 2
/* 0A5428 800A4828 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A542C 800A482C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5430 800A4830 0C024E72 */ jal func_800939C8
/* 0A5434 800A4834 24840014 */ addiu $a0, $a0, 0x14
/* 0A5438 800A4838 8FAB0030 */ lw $t3, 0x30($sp)
/* 0A543C 800A483C 55600024 */ bnel $t3, $zero, .L800A48D0
/* 0A5440 800A4840 24020003 */ li $v0, 3
/* 0A5444 800A4844 0C02ABBD */ jal find_menu_items_dupe
/* 0A5448 800A4848 240400BB */ li $a0, 187
/* 0A544C 800A484C 8FAC0050 */ lw $t4, 0x50($sp)
/* 0A5450 800A4850 29810005 */ slti $at, $t4, 5
/* 0A5454 800A4854 50200010 */ beql $at, $zero, .L800A4898
/* 0A5458 800A4858 8C590020 */ lw $t9, 0x20($v0)
/* 0A545C 800A485C 8C4D001C */ lw $t5, 0x1c($v0)
/* 0A5460 800A4860 3C0E800E */ lui $t6, %hi(gGlobalTimer) # $t6, 0x800e
/* 0A5464 800A4864 24020003 */ li $v0, 3
/* 0A5468 800A4868 158D0008 */ bne $t4, $t5, .L800A488C
/* 0A546C 800A486C 00000000 */ nop
/* 0A5470 800A4870 8DCEC54C */ lw $t6, %lo(gGlobalTimer)($t6)
/* 0A5474 800A4874 24010003 */ li $at, 3
/* 0A5478 800A4878 01C1001A */ div $zero, $t6, $at
/* 0A547C 800A487C 00007810 */ mfhi $t7
/* 0A5480 800A4880 AFAF0040 */ sw $t7, 0x40($sp)
/* 0A5484 800A4884 10000013 */ b .L800A48D4
/* 0A5488 800A4888 00000000 */ nop
.L800A488C:
/* 0A548C 800A488C 10000011 */ b .L800A48D4
/* 0A5490 800A4890 AFA20040 */ sw $v0, 0x40($sp)
/* 0A5494 800A4894 8C590020 */ lw $t9, 0x20($v0)
.L800A4898:
/* 0A5498 800A4898 24020003 */ li $v0, 3
/* 0A549C 800A489C 13200009 */ beqz $t9, .L800A48C4
/* 0A54A0 800A48A0 00000000 */ nop
/* 0A54A4 800A48A4 3C02800E */ lui $v0, %hi(gGlobalTimer) # $v0, 0x800e
/* 0A54A8 800A48A8 8C42C54C */ lw $v0, %lo(gGlobalTimer)($v0)
/* 0A54AC 800A48AC 24010003 */ li $at, 3
/* 0A54B0 800A48B0 0041001A */ div $zero, $v0, $at
/* 0A54B4 800A48B4 0000C010 */ mfhi $t8
/* 0A54B8 800A48B8 AFB80040 */ sw $t8, 0x40($sp)
/* 0A54BC 800A48BC 10000005 */ b .L800A48D4
/* 0A54C0 800A48C0 00000000 */ nop
.L800A48C4:
/* 0A54C4 800A48C4 10000003 */ b .L800A48D4
/* 0A54C8 800A48C8 AFA20040 */ sw $v0, 0x40($sp)
/* 0A54CC 800A48CC 24020003 */ li $v0, 3
.L800A48D0:
/* 0A54D0 800A48D0 AFA20040 */ sw $v0, 0x40($sp)
.L800A48D4:
/* 0A54D4 800A48D4 0C024C36 */ jal set_text_color
/* 0A54D8 800A48D8 8FA40040 */ lw $a0, 0x40($sp)
/* 0A54DC 800A48DC 8FA40048 */ lw $a0, 0x48($sp)
/* 0A54E0 800A48E0 3C01000F */ lui $at, (0x000FFFFF >> 16) # lui $at, 0xf
/* 0A54E4 800A48E4 3421FFFF */ ori $at, (0x000FFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0A54E8 800A48E8 00814024 */ and $t0, $a0, $at
/* 0A54EC 800A48EC 01002025 */ move $a0, $t0
/* 0A54F0 800A48F0 AFA8002C */ sw $t0, 0x2c($sp)
/* 0A54F4 800A48F4 0C029E3D */ jal get_time_record_minutes
/* 0A54F8 800A48F8 27A50038 */ addiu $a1, $sp, 0x38
/* 0A54FC 800A48FC 8FA40054 */ lw $a0, 0x54($sp)
/* 0A5500 800A4900 8FA50058 */ lw $a1, 0x58($sp)
/* 0A5504 800A4904 27A60038 */ addiu $a2, $sp, 0x38
/* 0A5508 800A4908 00003825 */ move $a3, $zero
/* 0A550C 800A490C E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A5510 800A4910 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5514 800A4914 0C024E72 */ jal func_800939C8
/* 0A5518 800A4918 24840027 */ addiu $a0, $a0, 0x27
/* 0A551C 800A491C 8FA40054 */ lw $a0, 0x54($sp)
/* 0A5520 800A4920 3C06800F */ lui $a2, %hi(D_800F0C54) # $a2, 0x800f
/* 0A5524 800A4924 24C60C54 */ addiu $a2, %lo(D_800F0C54) # addiu $a2, $a2, 0xc54
/* 0A5528 800A4928 8FA50058 */ lw $a1, 0x58($sp)
/* 0A552C 800A492C 00003825 */ move $a3, $zero
/* 0A5530 800A4930 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A5534 800A4934 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5538 800A4938 0C024CC9 */ jal print_text_mode_1
/* 0A553C 800A493C 24840032 */ addiu $a0, $a0, 0x32
/* 0A5540 800A4940 8FA4002C */ lw $a0, 0x2c($sp)
/* 0A5544 800A4944 0C029E51 */ jal get_time_record_seconds
/* 0A5548 800A4948 27A50038 */ addiu $a1, $sp, 0x38
/* 0A554C 800A494C 8FA40054 */ lw $a0, 0x54($sp)
/* 0A5550 800A4950 8FA50058 */ lw $a1, 0x58($sp)
/* 0A5554 800A4954 27A60038 */ addiu $a2, $sp, 0x38
/* 0A5558 800A4958 00003825 */ move $a3, $zero
/* 0A555C 800A495C E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A5560 800A4960 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5564 800A4964 0C024E72 */ jal func_800939C8
/* 0A5568 800A4968 2484003B */ addiu $a0, $a0, 0x3b
/* 0A556C 800A496C 8FA40054 */ lw $a0, 0x54($sp)
/* 0A5570 800A4970 3C06800F */ lui $a2, %hi(D_800F0C58) # $a2, 0x800f
/* 0A5574 800A4974 24C60C58 */ addiu $a2, %lo(D_800F0C58) # addiu $a2, $a2, 0xc58
/* 0A5578 800A4978 8FA50058 */ lw $a1, 0x58($sp)
/* 0A557C 800A497C 00003825 */ move $a3, $zero
/* 0A5580 800A4980 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A5584 800A4984 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5588 800A4988 0C024CC9 */ jal print_text_mode_1
/* 0A558C 800A498C 24840046 */ addiu $a0, $a0, 0x46
/* 0A5590 800A4990 8FA4002C */ lw $a0, 0x2c($sp)
/* 0A5594 800A4994 0C029E69 */ jal get_time_record_centiseconds
/* 0A5598 800A4998 27A50038 */ addiu $a1, $sp, 0x38
/* 0A559C 800A499C 8FA40054 */ lw $a0, 0x54($sp)
/* 0A55A0 800A49A0 8FA50058 */ lw $a1, 0x58($sp)
/* 0A55A4 800A49A4 27A60038 */ addiu $a2, $sp, 0x38
/* 0A55A8 800A49A8 00003825 */ move $a3, $zero
/* 0A55AC 800A49AC E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A55B0 800A49B0 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A55B4 800A49B4 0C024E72 */ jal func_800939C8
/* 0A55B8 800A49B8 24840050 */ addiu $a0, $a0, 0x50
/* 0A55BC 800A49BC 8FA9002C */ lw $t1, 0x2c($sp)
/* 0A55C0 800A49C0 3C010009 */ lui $at, (0x000927C0 >> 16) # lui $at, 9
/* 0A55C4 800A49C4 342127C0 */ ori $at, (0x000927C0 & 0xFFFF) # ori $at, $at, 0x27c0
/* 0A55C8 800A49C8 0121082B */ sltu $at, $t1, $at
/* 0A55CC 800A49CC 10200005 */ beqz $at, .L800A49E4
/* 0A55D0 800A49D0 8FA40054 */ lw $a0, 0x54($sp)
/* 0A55D4 800A49D4 8FA20048 */ lw $v0, 0x48($sp)
/* 0A55D8 800A49D8 00025502 */ srl $t2, $v0, 0x14
/* 0A55DC 800A49DC 10000002 */ b .L800A49E8
/* 0A55E0 800A49E0 01401025 */ move $v0, $t2
.L800A49E4:
/* 0A55E4 800A49E4 24020008 */ li $v0, 8
.L800A49E8:
/* 0A55E8 800A49E8 00025880 */ sll $t3, $v0, 2
/* 0A55EC 800A49EC 3C06800E */ lui $a2, %hi(D_800E76A8)
/* 0A55F0 800A49F0 00CB3021 */ addu $a2, $a2, $t3
/* 0A55F4 800A49F4 8CC676A8 */ lw $a2, %lo(D_800E76A8)($a2)
/* 0A55F8 800A49F8 24840078 */ addiu $a0, $a0, 0x78
/* 0A55FC 800A49FC 8FA50058 */ lw $a1, 0x58($sp)
/* 0A5600 800A4A00 00003825 */ move $a3, $zero
/* 0A5604 800A4A04 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A5608 800A4A08 0C024DBB */ jal print_text1_center_mode_1
/* 0A560C 800A4A0C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A5610 800A4A10 8FBF0024 */ lw $ra, 0x24($sp)
/* 0A5614 800A4A14 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 0A5618 800A4A18 27BD0050 */ addiu $sp, $sp, 0x50
/* 0A561C 800A4A1C 03E00008 */ jr $ra
/* 0A5620 800A4A20 00000000 */ nop
File diff suppressed because it is too large Load Diff
-769
View File
@@ -1,769 +0,0 @@
.section .late_rodata
glabel jpt_800F2DFC
.word L800B2A6C, L800B3468, L800B3468, L800B2AA4
.word L800B2D30, L800B2F70, L800B32B4
.word L800B32B4, L800B2F70
.section .text
glabel main_menu_act
/* 0B35D8 800B29D8 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 0B35DC 800B29DC AFBF0014 */ sw $ra, 0x14($sp)
/* 0B35E0 800B29E0 AFA50034 */ sw $a1, 0x34($sp)
/* 0B35E4 800B29E4 9498000C */ lhu $t8, 0xc($a0)
/* 0B35E8 800B29E8 948F0006 */ lhu $t7, 6($a0)
/* 0B35EC 800B29EC 3C09800E */ lui $t1, %hi(gEnableDebugMode) # $t1, 0x800e
/* 0B35F0 800B29F0 9529C520 */ lhu $t1, %lo(gEnableDebugMode)($t1)
/* 0B35F4 800B29F4 01F81825 */ or $v1, $t7, $t8
/* 0B35F8 800B29F8 30AEFFFF */ andi $t6, $a1, 0xffff
/* 0B35FC 800B29FC 3079FFFF */ andi $t9, $v1, 0xffff
/* 0B3600 800B2A00 01C02825 */ move $a1, $t6
/* 0B3604 800B2A04 15200007 */ bnez $t1, .L800B2A24
/* 0B3608 800B2A08 03201825 */ move $v1, $t9
/* 0B360C 800B2A0C 332A1000 */ andi $t2, $t9, 0x1000
/* 0B3610 800B2A10 51400005 */ beql $t2, $zero, .L800B2A28
/* 0B3614 800B2A14 A7A3002E */ sh $v1, 0x2e($sp)
/* 0B3618 800B2A18 37238000 */ ori $v1, $t9, 0x8000
/* 0B361C 800B2A1C 306BFFFF */ andi $t3, $v1, 0xffff
/* 0B3620 800B2A20 01601825 */ move $v1, $t3
.L800B2A24:
/* 0B3624 800B2A24 A7A3002E */ sh $v1, 0x2e($sp)
.L800B2A28:
/* 0B3628 800B2A28 0C02D148 */ jal is_screen_being_faded
/* 0B362C 800B2A2C A7A50036 */ sh $a1, 0x36($sp)
/* 0B3630 800B2A30 97A3002E */ lhu $v1, 0x2e($sp)
/* 0B3634 800B2A34 144002A8 */ bnez $v0, .L800B34D8
/* 0B3638 800B2A38 97A50036 */ lhu $a1, 0x36($sp)
/* 0B363C 800B2A3C 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B3640 800B2A40 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3644 800B2A44 910C0000 */ lbu $t4, ($t0)
/* 0B3648 800B2A48 3C188019 */ lui $t8, %hi(gPlayerCount) # 0x8019
/* 0B364C 800B2A4C 2D810009 */ sltiu $at, $t4, 9
/* 0B3650 800B2A50 10200293 */ beqz $at, .L800B34A0
/* 0B3654 800B2A54 000C6080 */ sll $t4, $t4, 2
/* 0B3658 800B2A58 3C01800F */ lui $at, %hi(jpt_800F2DFC) # 0x800f
/* 0B365C 800B2A5C 002C0821 */ addu $at, $at, $t4
/* 0B3660 800B2A60 8C2C2DFC */ lw $t4, %lo(jpt_800F2DFC)($at) # 0x2dfc($at)
/* 0B3664 800B2A64 01800008 */ jr $t4
/* 0B3668 800B2A68 00000000 */ nop
glabel L800B2A6C # case 0
/* 0B366C 800B2A6C 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019
/* 0B3670 800B2A70 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5)
/* 0B3674 800B2A74 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3678 800B2A78 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B367C 800B2A7C 01ED7821 */ addu $t7, $t7, $t5
/* 0B3680 800B2A80 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7)
/* 0B3684 800B2A84 000D7080 */ sll $t6, $t5, 2
/* 0B3688 800B2A88 01CD7023 */ subu $t6, $t6, $t5
/* 0B368C 800B2A8C 000E7080 */ sll $t6, $t6, 2
/* 0B3690 800B2A90 000FC080 */ sll $t8, $t7, 2
/* 0B3694 800B2A94 01D8C821 */ addu $t9, $t6, $t8
/* 0B3698 800B2A98 00791821 */ addu $v1, $v1, $t9
/* 0B369C 800B2A9C 1000028C */ b .L800B34D0
/* 0B36A0 800B2AA0 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
glabel L800B2AA4 # case 3
/* 0B36A4 800B2AA4 30690100 */ andi $t1, $v1, 0x100
/* 0B36A8 800B2AA8 11200010 */ beqz $t1, .L800B2AEC
/* 0B36AC 800B2AAC 00603025 */ move $a2, $v1
/* 0B36B0 800B2AB0 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B36B4 800B2AB4 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B36B8 800B2AB8 28410004 */ slti $at, $v0, 4
/* 0B36BC 800B2ABC 1020000B */ beqz $at, .L800B2AEC
/* 0B36C0 800B2AC0 244A0001 */ addiu $t2, $v0, 1
/* 0B36C4 800B2AC4 3C018019 */ lui $at, %hi(gPlayerCount) # $at, 0x8019
/* 0B36C8 800B2AC8 A02AEDF3 */ sb $t2, %lo(gPlayerCount)($at)
/* 0B36CC 800B2ACC 0C02D12B */ jal reset_cycle_flash_menu
/* 0B36D0 800B2AD0 AFA3001C */ sw $v1, 0x1c($sp)
/* 0B36D4 800B2AD4 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B36D8 800B2AD8 0C032384 */ jal play_sound2
/* 0B36DC 800B2ADC 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B36E0 800B2AE0 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B36E4 800B2AE4 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B36E8 800B2AE8 8FA6001C */ lw $a2, 0x1c($sp)
.L800B2AEC:
/* 0B36EC 800B2AEC 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B36F0 800B2AF0 30CB0200 */ andi $t3, $a2, 0x200
/* 0B36F4 800B2AF4 11600010 */ beqz $t3, .L800B2B38
/* 0B36F8 800B2AF8 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B36FC 800B2AFC 28410002 */ slti $at, $v0, 2
/* 0B3700 800B2B00 1420000D */ bnez $at, .L800B2B38
/* 0B3704 800B2B04 244CFFFF */ addiu $t4, $v0, -1
/* 0B3708 800B2B08 3C018019 */ lui $at, %hi(gPlayerCount) # $at, 0x8019
/* 0B370C 800B2B0C A02CEDF3 */ sb $t4, %lo(gPlayerCount)($at)
/* 0B3710 800B2B10 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3714 800B2B14 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3718 800B2B18 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B371C 800B2B1C 0C032384 */ jal play_sound2
/* 0B3720 800B2B20 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B3724 800B2B24 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3728 800B2B28 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B372C 800B2B2C 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3730 800B2B30 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3734 800B2B34 8FA6001C */ lw $a2, 0x1c($sp)
.L800B2B38:
/* 0B3738 800B2B38 3C04800E */ lui $a0, %hi(gPlayerCountSelection1) # $a0, 0x800e
/* 0B373C 800B2B3C 2484C538 */ addiu $a0, %lo(gPlayerCountSelection1) # addiu $a0, $a0, -0x3ac8
/* 0B3740 800B2B40 24070001 */ li $a3, 1
/* 0B3744 800B2B44 AC820000 */ sw $v0, ($a0)
/* 0B3748 800B2B48 1047000A */ beq $v0, $a3, .L800B2B74
/* 0B374C 800B2B4C 00401825 */ move $v1, $v0
/* 0B3750 800B2B50 24010002 */ li $at, 2
/* 0B3754 800B2B54 1061000A */ beq $v1, $at, .L800B2B80
/* 0B3758 800B2B58 24040003 */ li $a0, 3
/* 0B375C 800B2B5C 1064000B */ beq $v1, $a0, .L800B2B8C
/* 0B3760 800B2B60 24010004 */ li $at, 4
/* 0B3764 800B2B64 10610009 */ beq $v1, $at, .L800B2B8C
/* 0B3768 800B2B68 00000000 */ nop
/* 0B376C 800B2B6C 1000000A */ b .L800B2B98
/* 0B3770 800B2B70 30CD4000 */ andi $t5, $a2, 0x4000
.L800B2B74:
/* 0B3774 800B2B74 3C01800E */ lui $at, %hi(gScreenModeSelection) # $at, 0x800e
/* 0B3778 800B2B78 10000006 */ b .L800B2B94
/* 0B377C 800B2B7C AC20C530 */ sw $zero, %lo(gScreenModeSelection)($at)
.L800B2B80:
/* 0B3780 800B2B80 3C01800E */ lui $at, %hi(gScreenModeSelection) # $at, 0x800e
/* 0B3784 800B2B84 10000003 */ b .L800B2B94
/* 0B3788 800B2B88 AC27C530 */ sw $a3, %lo(gScreenModeSelection)($at)
.L800B2B8C:
/* 0B378C 800B2B8C 3C01800E */ lui $at, %hi(gScreenModeSelection) # $at, 0x800e
/* 0B3790 800B2B90 AC24C530 */ sw $a0, %lo(gScreenModeSelection)($at)
.L800B2B94:
/* 0B3794 800B2B94 30CD4000 */ andi $t5, $a2, 0x4000
.L800B2B98:
/* 0B3798 800B2B98 11A00019 */ beqz $t5, .L800B2C00
/* 0B379C 800B2B9C 30CA8000 */ andi $t2, $a2, 0x8000
/* 0B37A0 800B2BA0 0C02783C */ jal func_8009E0F0
/* 0B37A4 800B2BA4 24040014 */ li $a0, 20
/* 0B37A8 800B2BA8 0C0328CC */ jal func_800CA330
/* 0B37AC 800B2BAC 24040019 */ li $a0, 25
/* 0B37B0 800B2BB0 24070001 */ li $a3, 1
/* 0B37B4 800B2BB4 3C018019 */ lui $at, %hi(gMenuFadeType) # $at, 0x8019
/* 0B37B8 800B2BB8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B37BC 800B2BBC AC27EDE0 */ sw $a3, %lo(gMenuFadeType)($at)
/* 0B37C0 800B2BC0 0C032384 */ jal play_sound2
/* 0B37C4 800B2BC4 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B37C8 800B2BC8 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B37CC 800B2BCC 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B37D0 800B2BD0 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B37D4 800B2BD4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B37D8 800B2BD8 030FC021 */ addu $t8, $t8, $t7
/* 0B37DC 800B2BDC 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8)
/* 0B37E0 800B2BE0 000F7080 */ sll $t6, $t7, 2
/* 0B37E4 800B2BE4 01CF7023 */ subu $t6, $t6, $t7
/* 0B37E8 800B2BE8 000E7080 */ sll $t6, $t6, 2
/* 0B37EC 800B2BEC 0018C880 */ sll $t9, $t8, 2
/* 0B37F0 800B2BF0 01D94821 */ addu $t1, $t6, $t9
/* 0B37F4 800B2BF4 00691821 */ addu $v1, $v1, $t1
/* 0B37F8 800B2BF8 10000235 */ b .L800B34D0
/* 0B37FC 800B2BFC 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B2C00:
/* 0B3800 800B2C00 11400015 */ beqz $t2, .L800B2C58
/* 0B3804 800B2C04 30D90020 */ andi $t9, $a2, 0x20
/* 0B3808 800B2C08 240B0004 */ li $t3, 4
/* 0B380C 800B2C0C 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3810 800B2C10 A10B0000 */ sb $t3, ($t0)
/* 0B3814 800B2C14 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900
/* 0B3818 800B2C18 0C032384 */ jal play_sound2
/* 0B381C 800B2C1C 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001
/* 0B3820 800B2C20 3C0C8019 */ lui $t4, %hi(gPlayerCount) # $t4, 0x8019
/* 0B3824 800B2C24 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4)
/* 0B3828 800B2C28 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B382C 800B2C2C 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3830 800B2C30 01EC7821 */ addu $t7, $t7, $t4
/* 0B3834 800B2C34 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7)
/* 0B3838 800B2C38 000C6880 */ sll $t5, $t4, 2
/* 0B383C 800B2C3C 01AC6823 */ subu $t5, $t5, $t4
/* 0B3840 800B2C40 000D6880 */ sll $t5, $t5, 2
/* 0B3844 800B2C44 000FC080 */ sll $t8, $t7, 2
/* 0B3848 800B2C48 01B87021 */ addu $t6, $t5, $t8
/* 0B384C 800B2C4C 006E1821 */ addu $v1, $v1, $t6
/* 0B3850 800B2C50 1000021F */ b .L800B34D0
/* 0B3854 800B2C54 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B2C58:
/* 0B3858 800B2C58 13200014 */ beqz $t9, .L800B2CAC
/* 0B385C 800B2C5C 30CD0010 */ andi $t5, $a2, 0x10
/* 0B3860 800B2C60 0C0278A0 */ jal func_8009E280
/* 0B3864 800B2C64 A1070000 */ sb $a3, ($t0)
/* 0B3868 800B2C68 3C044900 */ lui $a0, (0x49009010 >> 16) # lui $a0, 0x4900
/* 0B386C 800B2C6C 0C032384 */ jal play_sound2
/* 0B3870 800B2C70 34849010 */ ori $a0, (0x49009010 & 0xFFFF) # ori $a0, $a0, 0x9010
/* 0B3874 800B2C74 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019
/* 0B3878 800B2C78 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1)
/* 0B387C 800B2C7C 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3880 800B2C80 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3884 800B2C84 01695821 */ addu $t3, $t3, $t1
/* 0B3888 800B2C88 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3)
/* 0B388C 800B2C8C 00095080 */ sll $t2, $t1, 2
/* 0B3890 800B2C90 01495023 */ subu $t2, $t2, $t1
/* 0B3894 800B2C94 000A5080 */ sll $t2, $t2, 2
/* 0B3898 800B2C98 000B6080 */ sll $t4, $t3, 2
/* 0B389C 800B2C9C 014C7821 */ addu $t7, $t2, $t4
/* 0B38A0 800B2CA0 006F1821 */ addu $v1, $v1, $t7
/* 0B38A4 800B2CA4 1000020A */ b .L800B34D0
/* 0B38A8 800B2CA8 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B2CAC:
/* 0B38AC 800B2CAC 11A00015 */ beqz $t5, .L800B2D04
/* 0B38B0 800B2CB0 00026080 */ sll $t4, $v0, 2
/* 0B38B4 800B2CB4 24180002 */ li $t8, 2
/* 0B38B8 800B2CB8 0C027896 */ jal func_8009E258
/* 0B38BC 800B2CBC A1180000 */ sb $t8, ($t0)
/* 0B38C0 800B2CC0 3C044900 */ lui $a0, (0x49009011 >> 16) # lui $a0, 0x4900
/* 0B38C4 800B2CC4 0C032384 */ jal play_sound2
/* 0B38C8 800B2CC8 34849011 */ ori $a0, (0x49009011 & 0xFFFF) # ori $a0, $a0, 0x9011
/* 0B38CC 800B2CCC 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019
/* 0B38D0 800B2CD0 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6)
/* 0B38D4 800B2CD4 3C09800F */ lui $t1, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B38D8 800B2CD8 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B38DC 800B2CDC 012E4821 */ addu $t1, $t1, $t6
/* 0B38E0 800B2CE0 812986AB */ lb $t1, %lo((gGameModeMenuColumn - 1))($t1) # -0x7955($t1)
/* 0B38E4 800B2CE4 000EC880 */ sll $t9, $t6, 2
/* 0B38E8 800B2CE8 032EC823 */ subu $t9, $t9, $t6
/* 0B38EC 800B2CEC 0019C880 */ sll $t9, $t9, 2
/* 0B38F0 800B2CF0 00095880 */ sll $t3, $t1, 2
/* 0B38F4 800B2CF4 032B5021 */ addu $t2, $t9, $t3
/* 0B38F8 800B2CF8 006A1821 */ addu $v1, $v1, $t2
/* 0B38FC 800B2CFC 100001F4 */ b .L800B34D0
/* 0B3900 800B2D00 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B2D04:
/* 0B3904 800B2D04 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3908 800B2D08 01E27821 */ addu $t7, $t7, $v0
/* 0B390C 800B2D0C 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7)
/* 0B3910 800B2D10 01826023 */ subu $t4, $t4, $v0
/* 0B3914 800B2D14 000C6080 */ sll $t4, $t4, 2
/* 0B3918 800B2D18 000F6880 */ sll $t5, $t7, 2
/* 0B391C 800B2D1C 018DC021 */ addu $t8, $t4, $t5
/* 0B3920 800B2D20 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3924 800B2D24 00781821 */ addu $v1, $v1, $t8
/* 0B3928 800B2D28 100001E9 */ b .L800B34D0
/* 0B392C 800B2D2C 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
glabel L800B2D30 # case 4
/* 0B3930 800B2D30 306E0400 */ andi $t6, $v1, 0x400
/* 0B3934 800B2D34 11C00017 */ beqz $t6, .L800B2D94
/* 0B3938 800B2D38 00603025 */ move $a2, $v1
/* 0B393C 800B2D3C 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3940 800B2D40 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3944 800B2D44 3C09800F */ lui $t1, %hi(gGameModeMenuColumn) # $t1, 0x800f
/* 0B3948 800B2D48 252986AC */ addiu $t1, %lo(gGameModeMenuColumn) # addiu $t1, $t1, -0x7954
/* 0B394C 800B2D4C 3C19800F */ lui $t9, %hi((gPlayerModeSelection - 1)) # 0x800f
/* 0B3950 800B2D50 0322C821 */ addu $t9, $t9, $v0
/* 0B3954 800B2D54 00491821 */ addu $v1, $v0, $t1
/* 0B3958 800B2D58 8064FFFF */ lb $a0, -1($v1)
/* 0B395C 800B2D5C 83392B5F */ lb $t9, %lo((gPlayerModeSelection - 1))($t9) # 0x2b5f($t9)
/* 0B3960 800B2D60 248B0001 */ addiu $t3, $a0, 1
/* 0B3964 800B2D64 0099082A */ slt $at, $a0, $t9
/* 0B3968 800B2D68 5020000B */ beql $at, $zero, .L800B2D98
/* 0B396C 800B2D6C 30CA0800 */ andi $t2, $a2, 0x800
/* 0B3970 800B2D70 A06BFFFF */ sb $t3, -1($v1)
/* 0B3974 800B2D74 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3978 800B2D78 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B397C 800B2D7C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B3980 800B2D80 0C032384 */ jal play_sound2
/* 0B3984 800B2D84 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B3988 800B2D88 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B398C 800B2D8C 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3990 800B2D90 8FA6001C */ lw $a2, 0x1c($sp)
.L800B2D94:
/* 0B3994 800B2D94 30CA0800 */ andi $t2, $a2, 0x800
.L800B2D98:
/* 0B3998 800B2D98 11400011 */ beqz $t2, .L800B2DE0
/* 0B399C 800B2D9C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B39A0 800B2DA0 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B39A4 800B2DA4 3C0C800F */ lui $t4, %hi(gGameModeMenuColumn) # $t4, 0x800f
/* 0B39A8 800B2DA8 258C86AC */ addiu $t4, %lo(gGameModeMenuColumn) # addiu $t4, $t4, -0x7954
/* 0B39AC 800B2DAC 01EC1821 */ addu $v1, $t7, $t4
/* 0B39B0 800B2DB0 8064FFFF */ lb $a0, -1($v1)
/* 0B39B4 800B2DB4 1880000A */ blez $a0, .L800B2DE0
/* 0B39B8 800B2DB8 248DFFFF */ addiu $t5, $a0, -1
/* 0B39BC 800B2DBC A06DFFFF */ sb $t5, -1($v1)
/* 0B39C0 800B2DC0 0C02D12B */ jal reset_cycle_flash_menu
/* 0B39C4 800B2DC4 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B39C8 800B2DC8 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B39CC 800B2DCC 0C032384 */ jal play_sound2
/* 0B39D0 800B2DD0 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B39D4 800B2DD4 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B39D8 800B2DD8 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B39DC 800B2DDC 8FA6001C */ lw $a2, 0x1c($sp)
.L800B2DE0:
/* 0B39E0 800B2DE0 30D84000 */ andi $t8, $a2, 0x4000
/* 0B39E4 800B2DE4 13000015 */ beqz $t8, .L800B2E3C
/* 0B39E8 800B2DE8 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B39EC 800B2DEC 24040003 */ li $a0, 3
/* 0B39F0 800B2DF0 0C02D12B */ jal reset_cycle_flash_menu
/* 0B39F4 800B2DF4 A1040000 */ sb $a0, ($t0)
/* 0B39F8 800B2DF8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B39FC 800B2DFC 0C032384 */ jal play_sound2
/* 0B3A00 800B2E00 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B3A04 800B2E04 3C0E8019 */ lui $t6, %hi(gPlayerCount) # $t6, 0x8019
/* 0B3A08 800B2E08 81CEEDF3 */ lb $t6, %lo(gPlayerCount)($t6)
/* 0B3A0C 800B2E0C 3C19800F */ lui $t9, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3A10 800B2E10 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3A14 800B2E14 032EC821 */ addu $t9, $t9, $t6
/* 0B3A18 800B2E18 833986AB */ lb $t9, %lo((gGameModeMenuColumn - 1))($t9) # -0x7955($t9)
/* 0B3A1C 800B2E1C 000E4880 */ sll $t1, $t6, 2
/* 0B3A20 800B2E20 012E4823 */ subu $t1, $t1, $t6
/* 0B3A24 800B2E24 00094880 */ sll $t1, $t1, 2
/* 0B3A28 800B2E28 00195880 */ sll $t3, $t9, 2
/* 0B3A2C 800B2E2C 012B5021 */ addu $t2, $t1, $t3
/* 0B3A30 800B2E30 006A1821 */ addu $v1, $v1, $t2
/* 0B3A34 800B2E34 100001A6 */ b .L800B34D0
/* 0B3A38 800B2E38 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B2E3C:
/* 0B3A3C 800B2E3C 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3A40 800B2E40 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3A44 800B2E44 30CF8000 */ andi $t7, $a2, 0x8000
/* 0B3A48 800B2E48 00822021 */ addu $a0, $a0, $v0
/* 0B3A4C 800B2E4C 11E0003F */ beqz $t7, .L800B2F4C
/* 0B3A50 800B2E50 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0)
/* 0B3A54 800B2E54 00026080 */ sll $t4, $v0, 2
/* 0B3A58 800B2E58 01826023 */ subu $t4, $t4, $v0
/* 0B3A5C 800B2E5C 000C6080 */ sll $t4, $t4, 2
/* 0B3A60 800B2E60 00046880 */ sll $t5, $a0, 2
/* 0B3A64 800B2E64 018DC021 */ addu $t8, $t4, $t5
/* 0B3A68 800B2E68 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3A6C 800B2E6C 00781821 */ addu $v1, $v1, $t8
/* 0B3A70 800B2E70 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
/* 0B3A74 800B2E74 3C044900 */ lui $a0, (0x4900900A >> 16) # lui $a0, 0x4900
/* 0B3A78 800B2E78 24190005 */ li $t9, 5
/* 0B3A7C 800B2E7C 1060000D */ beqz $v1, .L800B2EB4
/* 0B3A80 800B2E80 3484900A */ ori $a0, (0x4900900A & 0xFFFF) # ori $a0, $a0, 0x900a
/* 0B3A84 800B2E84 24070001 */ li $a3, 1
/* 0B3A88 800B2E88 10670014 */ beq $v1, $a3, .L800B2EDC
/* 0B3A8C 800B2E8C 240B0005 */ li $t3, 5
/* 0B3A90 800B2E90 24010002 */ li $at, 2
/* 0B3A94 800B2E94 1061000B */ beq $v1, $at, .L800B2EC4
/* 0B3A98 800B2E98 24090005 */ li $t1, 5
/* 0B3A9C 800B2E9C 24040003 */ li $a0, 3
/* 0B3AA0 800B2EA0 10640014 */ beq $v1, $a0, .L800B2EF4
/* 0B3AA4 800B2EA4 240A0006 */ li $t2, 6
/* 0B3AA8 800B2EA8 240E0006 */ li $t6, 6
/* 0B3AAC 800B2EAC 10000015 */ b .L800B2F04
/* 0B3AB0 800B2EB0 A10E0000 */ sb $t6, ($t0)
.L800B2EB4: # case 0
/* 0B3AB4 800B2EB4 0C032384 */ jal play_sound2
/* 0B3AB8 800B2EB8 A1190000 */ sb $t9, ($t0)
/* 0B3ABC 800B2EBC 10000011 */ b .L800B2F04
/* 0B3AC0 800B2EC0 00000000 */ nop
.L800B2EC4:
/* 0B3AC4 800B2EC4 3C044900 */ lui $a0, (0x4900900C >> 16) # lui $a0, 0x4900
/* 0B3AC8 800B2EC8 A1090000 */ sb $t1, ($t0)
/* 0B3ACC 800B2ECC 0C032384 */ jal play_sound2
/* 0B3AD0 800B2ED0 3484900C */ ori $a0, (0x4900900C & 0xFFFF) # ori $a0, $a0, 0x900c
/* 0B3AD4 800B2ED4 1000000B */ b .L800B2F04
/* 0B3AD8 800B2ED8 00000000 */ nop
.L800B2EDC:
/* 0B3ADC 800B2EDC 3C044900 */ lui $a0, (0x4900900B >> 16) # lui $a0, 0x4900
/* 0B3AE0 800B2EE0 A10B0000 */ sb $t3, ($t0)
/* 0B3AE4 800B2EE4 0C032384 */ jal play_sound2
/* 0B3AE8 800B2EE8 3484900B */ ori $a0, (0x4900900B & 0xFFFF) # ori $a0, $a0, 0x900b
/* 0B3AEC 800B2EEC 10000005 */ b .L800B2F04
/* 0B3AF0 800B2EF0 00000000 */ nop
.L800B2EF4:
/* 0B3AF4 800B2EF4 3C044900 */ lui $a0, (0x4900900D >> 16) # lui $a0, 0x4900
/* 0B3AF8 800B2EF8 A10A0000 */ sb $t2, ($t0)
/* 0B3AFC 800B2EFC 0C032384 */ jal play_sound2
/* 0B3B00 800B2F00 3484900D */ ori $a0, (0x4900900D & 0xFFFF) # ori $a0, $a0, 0x900d
.L800B2F04:
/* 0B3B04 800B2F04 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3B08 800B2F08 00000000 */ nop
/* 0B3B0C 800B2F0C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B3B10 800B2F10 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B3B14 800B2F14 3C0D800F */ lui $t5, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3B18 800B2F18 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3B1C 800B2F1C 01AF6821 */ addu $t5, $t5, $t7
/* 0B3B20 800B2F20 81AD86AB */ lb $t5, %lo((gGameModeMenuColumn - 1))($t5) # -0x7955($t5)
/* 0B3B24 800B2F24 000F6080 */ sll $t4, $t7, 2
/* 0B3B28 800B2F28 018F6023 */ subu $t4, $t4, $t7
/* 0B3B2C 800B2F2C 000C6080 */ sll $t4, $t4, 2
/* 0B3B30 800B2F30 000DC080 */ sll $t8, $t5, 2
/* 0B3B34 800B2F34 01987021 */ addu $t6, $t4, $t8
/* 0B3B38 800B2F38 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019
/* 0B3B3C 800B2F3C 006E1821 */ addu $v1, $v1, $t6
/* 0B3B40 800B2F40 AC20EE00 */ sw $zero, %lo(gMenuTimingCounter)($at)
/* 0B3B44 800B2F44 10000162 */ b .L800B34D0
/* 0B3B48 800B2F48 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B2F4C:
/* 0B3B4C 800B2F4C 0002C880 */ sll $t9, $v0, 2
/* 0B3B50 800B2F50 0322C823 */ subu $t9, $t9, $v0
/* 0B3B54 800B2F54 0019C880 */ sll $t9, $t9, 2
/* 0B3B58 800B2F58 00044880 */ sll $t1, $a0, 2
/* 0B3B5C 800B2F5C 03295821 */ addu $t3, $t9, $t1
/* 0B3B60 800B2F60 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3B64 800B2F64 006B1821 */ addu $v1, $v1, $t3
/* 0B3B68 800B2F68 10000159 */ b .L800B34D0
/* 0B3B6C 800B2F6C 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
glabel L800B2F70 # case 5, 8
/* 0B3B70 800B2F70 14A00023 */ bnez $a1, .L800B3000
/* 0B3B74 800B2F74 00603025 */ move $a2, $v1
/* 0B3B78 800B2F78 3C0A8019 */ lui $t2, %hi(gMenuTimingCounter) # $t2, 0x8019
/* 0B3B7C 800B2F7C 8D4AEE00 */ lw $t2, %lo(gMenuTimingCounter)($t2)
/* 0B3B80 800B2F80 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019
/* 0B3B84 800B2F84 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3B88 800B2F88 254F0001 */ addiu $t7, $t2, 1
/* 0B3B8C 800B2F8C AC2FEE00 */ sw $t7, %lo(gMenuTimingCounter)($at)
/* 0B3B90 800B2F90 24010064 */ li $at, 100
/* 0B3B94 800B2F94 11E10005 */ beq $t7, $at, .L800B2FAC
/* 0B3B98 800B2F98 2401012C */ li $at, 300
/* 0B3B9C 800B2F9C 01E1001A */ div $zero, $t7, $at
/* 0B3BA0 800B2FA0 00006810 */ mfhi $t5
/* 0B3BA4 800B2FA4 15A00016 */ bnez $t5, .L800B3000
/* 0B3BA8 800B2FA8 00000000 */ nop
.L800B2FAC:
/* 0B3BAC 800B2FAC 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3BB0 800B2FB0 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3BB4 800B2FB4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3BB8 800B2FB8 0302C021 */ addu $t8, $t8, $v0
/* 0B3BBC 800B2FBC 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8)
/* 0B3BC0 800B2FC0 00026080 */ sll $t4, $v0, 2
/* 0B3BC4 800B2FC4 01826023 */ subu $t4, $t4, $v0
/* 0B3BC8 800B2FC8 000C6080 */ sll $t4, $t4, 2
/* 0B3BCC 800B2FCC 00187080 */ sll $t6, $t8, 2
/* 0B3BD0 800B2FD0 018EC821 */ addu $t9, $t4, $t6
/* 0B3BD4 800B2FD4 00791821 */ addu $v1, $v1, $t9
/* 0B3BD8 800B2FD8 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
/* 0B3BDC 800B2FDC 3C044900 */ lui $a0, (0x4900900E >> 16) # lui $a0, 0x4900
/* 0B3BE0 800B2FE0 24010002 */ li $at, 2
/* 0B3BE4 800B2FE4 10600003 */ beqz $v1, .L800B2FF4
/* 0B3BE8 800B2FE8 3484900E */ ori $a0, (0x4900900E & 0xFFFF) # ori $a0, $a0, 0x900e
/* 0B3BEC 800B2FEC 14610004 */ bne $v1, $at, .L800B3000
/* 0B3BF0 800B2FF0 00000000 */ nop
.L800B2FF4:
/* 0B3BF4 800B2FF4 0C032384 */ jal play_sound2
/* 0B3BF8 800B2FF8 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3BFC 800B2FFC 8FA6001C */ lw $a2, 0x1c($sp)
.L800B3000:
/* 0B3C00 800B3000 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3C04 800B3004 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3C08 800B3008 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3C0C 800B300C 3C0F800F */ lui $t7, %hi(gGameModeSubMenuColumn) # $t7, 0x800f
/* 0B3C10 800B3010 01625821 */ addu $t3, $t3, $v0
/* 0B3C14 800B3014 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3)
/* 0B3C18 800B3018 00024880 */ sll $t1, $v0, 2
/* 0B3C1C 800B301C 01224823 */ subu $t1, $t1, $v0
/* 0B3C20 800B3020 25EF86B0 */ addiu $t7, %lo(gGameModeSubMenuColumn) # addiu $t7, $t7, -0x7950
/* 0B3C24 800B3024 012B5021 */ addu $t2, $t1, $t3
/* 0B3C28 800B3028 014F1821 */ addu $v1, $t2, $t7
/* 0B3C2C 800B302C 8064FFFD */ lb $a0, -3($v1)
/* 0B3C30 800B3030 30CD0800 */ andi $t5, $a2, 0x800
/* 0B3C34 800B3034 11A0000C */ beqz $t5, .L800B3068
/* 0B3C38 800B3038 00802825 */ move $a1, $a0
/* 0B3C3C 800B303C 1880000A */ blez $a0, .L800B3068
/* 0B3C40 800B3040 2498FFFF */ addiu $t8, $a0, -1
/* 0B3C44 800B3044 A078FFFD */ sb $t8, -3($v1)
/* 0B3C48 800B3048 AFA40028 */ sw $a0, 0x28($sp)
/* 0B3C4C 800B304C 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3C50 800B3050 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3C54 800B3054 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B3C58 800B3058 0C032384 */ jal play_sound2
/* 0B3C5C 800B305C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B3C60 800B3060 8FA50028 */ lw $a1, 0x28($sp)
/* 0B3C64 800B3064 8FA6001C */ lw $a2, 0x1c($sp)
.L800B3068:
/* 0B3C68 800B3068 30CC0400 */ andi $t4, $a2, 0x400
/* 0B3C6C 800B306C 11800038 */ beqz $t4, .L800B3150
/* 0B3C70 800B3070 00000000 */ nop
/* 0B3C74 800B3074 AFA00024 */ sw $zero, 0x24($sp)
/* 0B3C78 800B3078 AFA50028 */ sw $a1, 0x28($sp)
/* 0B3C7C 800B307C 0C02D557 */ jal has_unlocked_extra_mode
/* 0B3C80 800B3080 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3C84 800B3084 8FA30024 */ lw $v1, 0x24($sp)
/* 0B3C88 800B3088 8FA50028 */ lw $a1, 0x28($sp)
/* 0B3C8C 800B308C 10400011 */ beqz $v0, .L800B30D4
/* 0B3C90 800B3090 8FA6001C */ lw $a2, 0x1c($sp)
/* 0B3C94 800B3094 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3C98 800B3098 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3C9C 800B309C 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3CA0 800B30A0 3C09800F */ lui $t1, %hi((sGameModePlayerColumnExtra - 3)) # 0x800f
/* 0B3CA4 800B30A4 00822021 */ addu $a0, $a0, $v0
/* 0B3CA8 800B30A8 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0)
/* 0B3CAC 800B30AC 00027080 */ sll $t6, $v0, 2
/* 0B3CB0 800B30B0 01C27023 */ subu $t6, $t6, $v0
/* 0B3CB4 800B30B4 01C4C821 */ addu $t9, $t6, $a0
/* 0B3CB8 800B30B8 01394821 */ addu $t1, $t1, $t9
/* 0B3CBC 800B30BC 81292B6D */ lb $t1, %lo((sGameModePlayerColumnExtra - 3))($t1) # 0x2b6d($t1)
/* 0B3CC0 800B30C0 00A9082A */ slt $at, $a1, $t1
/* 0B3CC4 800B30C4 10200012 */ beqz $at, .L800B3110
/* 0B3CC8 800B30C8 00000000 */ nop
/* 0B3CCC 800B30CC 10000010 */ b .L800B3110
/* 0B3CD0 800B30D0 24030001 */ li $v1, 1
.L800B30D4:
/* 0B3CD4 800B30D4 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3CD8 800B30D8 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3CDC 800B30DC 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3CE0 800B30E0 3C0F800F */ lui $t7, %hi((sGameModePlayerColumnDefault - 3)) # 0x800f
/* 0B3CE4 800B30E4 00822021 */ addu $a0, $a0, $v0
/* 0B3CE8 800B30E8 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0)
/* 0B3CEC 800B30EC 00025880 */ sll $t3, $v0, 2
/* 0B3CF0 800B30F0 01625823 */ subu $t3, $t3, $v0
/* 0B3CF4 800B30F4 01645021 */ addu $t2, $t3, $a0
/* 0B3CF8 800B30F8 01EA7821 */ addu $t7, $t7, $t2
/* 0B3CFC 800B30FC 81EF2B61 */ lb $t7, %lo((sGameModePlayerColumnDefault - 3))($t7) # 0x2b61($t7)
/* 0B3D00 800B3100 00AF082A */ slt $at, $a1, $t7
/* 0B3D04 800B3104 10200002 */ beqz $at, .L800B3110
/* 0B3D08 800B3108 00000000 */ nop
/* 0B3D0C 800B310C 24030001 */ li $v1, 1
.L800B3110:
/* 0B3D10 800B3110 1060000F */ beqz $v1, .L800B3150
/* 0B3D14 800B3114 00026880 */ sll $t5, $v0, 2
/* 0B3D18 800B3118 01A26823 */ subu $t5, $t5, $v0
/* 0B3D1C 800B311C 3C0C800F */ lui $t4, %hi(gGameModeSubMenuColumn) # $t4, 0x800f
/* 0B3D20 800B3120 258C86B0 */ addiu $t4, %lo(gGameModeSubMenuColumn) # addiu $t4, $t4, -0x7950
/* 0B3D24 800B3124 01A4C021 */ addu $t8, $t5, $a0
/* 0B3D28 800B3128 030C1821 */ addu $v1, $t8, $t4
/* 0B3D2C 800B312C 806EFFFD */ lb $t6, -3($v1)
/* 0B3D30 800B3130 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3D34 800B3134 25D90001 */ addiu $t9, $t6, 1
/* 0B3D38 800B3138 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3D3C 800B313C A079FFFD */ sb $t9, -3($v1)
/* 0B3D40 800B3140 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B3D44 800B3144 0C032384 */ jal play_sound2
/* 0B3D48 800B3148 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B3D4C 800B314C 8FA6001C */ lw $a2, 0x1c($sp)
.L800B3150:
/* 0B3D50 800B3150 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3D54 800B3154 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3D58 800B3158 3C04800F */ lui $a0, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3D5C 800B315C 3C05800F */ lui $a1, %hi((gGameModeSubMenuColumn - 3)) # 0x800f
/* 0B3D60 800B3160 00822021 */ addu $a0, $a0, $v0
/* 0B3D64 800B3164 808486AB */ lb $a0, %lo((gGameModeMenuColumn - 1))($a0) # -0x7955($a0)
/* 0B3D68 800B3168 00024880 */ sll $t1, $v0, 2
/* 0B3D6C 800B316C 01224823 */ subu $t1, $t1, $v0
/* 0B3D70 800B3170 01245821 */ addu $t3, $t1, $a0
/* 0B3D74 800B3174 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B3D78 800B3178 00AB2821 */ addu $a1, $a1, $t3
/* 0B3D7C 800B317C 30CA4000 */ andi $t2, $a2, 0x4000
/* 0B3D80 800B3180 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3D84 800B3184 11400015 */ beqz $t2, .L800B31DC
/* 0B3D88 800B3188 80A586AD */ lb $a1, %lo((gGameModeSubMenuColumn - 3))($a1) # -0x7953($a1)
/* 0B3D8C 800B318C 240F0004 */ li $t7, 4
/* 0B3D90 800B3190 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3D94 800B3194 A10F0000 */ sb $t7, ($t0)
/* 0B3D98 800B3198 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B3D9C 800B319C 0C032384 */ jal play_sound2
/* 0B3DA0 800B31A0 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B3DA4 800B31A4 3C0D8019 */ lui $t5, %hi(gPlayerCount) # $t5, 0x8019
/* 0B3DA8 800B31A8 81ADEDF3 */ lb $t5, %lo(gPlayerCount)($t5)
/* 0B3DAC 800B31AC 3C0C800F */ lui $t4, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3DB0 800B31B0 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3DB4 800B31B4 018D6021 */ addu $t4, $t4, $t5
/* 0B3DB8 800B31B8 818C86AB */ lb $t4, %lo((gGameModeMenuColumn - 1))($t4) # -0x7955($t4)
/* 0B3DBC 800B31BC 000DC080 */ sll $t8, $t5, 2
/* 0B3DC0 800B31C0 030DC023 */ subu $t8, $t8, $t5
/* 0B3DC4 800B31C4 0018C080 */ sll $t8, $t8, 2
/* 0B3DC8 800B31C8 000C7080 */ sll $t6, $t4, 2
/* 0B3DCC 800B31CC 030EC821 */ addu $t9, $t8, $t6
/* 0B3DD0 800B31D0 00791821 */ addu $v1, $v1, $t9
/* 0B3DD4 800B31D4 100000BE */ b .L800B34D0
/* 0B3DD8 800B31D8 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B31DC:
/* 0B3DDC 800B31DC 30C98000 */ andi $t1, $a2, 0x8000
/* 0B3DE0 800B31E0 1120002C */ beqz $t1, .L800B3294
/* 0B3DE4 800B31E4 0002C880 */ sll $t9, $v0, 2
/* 0B3DE8 800B31E8 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3DEC 800B31EC AFA50028 */ sw $a1, 0x28($sp)
/* 0B3DF0 800B31F0 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3DF4 800B31F4 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3DF8 800B31F8 24070001 */ li $a3, 1
/* 0B3DFC 800B31FC 8FA50028 */ lw $a1, 0x28($sp)
/* 0B3E00 800B3200 14E2000E */ bne $a3, $v0, .L800B323C
/* 0B3E04 800B3204 3C0B800F */ lui $t3, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3E08 800B3208 01625821 */ addu $t3, $t3, $v0
/* 0B3E0C 800B320C 816B86AB */ lb $t3, %lo((gGameModeMenuColumn - 1))($t3) # -0x7955($t3)
/* 0B3E10 800B3210 54EB000B */ bnel $a3, $t3, .L800B3240
/* 0B3E14 800B3214 240A0006 */ li $t2, 6
/* 0B3E18 800B3218 54A70009 */ bnel $a1, $a3, .L800B3240
/* 0B3E1C 800B321C 240A0006 */ li $t2, 6
/* 0B3E20 800B3220 0C027896 */ jal func_8009E258
/* 0B3E24 800B3224 00000000 */ nop
/* 0B3E28 800B3228 3C044900 */ lui $a0, (0x49009011 >> 16) # lui $a0, 0x4900
/* 0B3E2C 800B322C 0C032384 */ jal play_sound2
/* 0B3E30 800B3230 34849011 */ ori $a0, (0x49009011 & 0xFFFF) # ori $a0, $a0, 0x9011
/* 0B3E34 800B3234 10000009 */ b .L800B325C
/* 0B3E38 800B3238 00000000 */ nop
.L800B323C:
/* 0B3E3C 800B323C 240A0006 */ li $t2, 6
.L800B3240:
/* 0B3E40 800B3240 3C018019 */ lui $at, %hi(gMainMenuSelection) # $at, 0x8019
/* 0B3E44 800B3244 3C044900 */ lui $a0, (0x49008001 >> 16) # lui $a0, 0x4900
/* 0B3E48 800B3248 A02AEDED */ sb $t2, %lo(gMainMenuSelection)($at)
/* 0B3E4C 800B324C 0C032384 */ jal play_sound2
/* 0B3E50 800B3250 34848001 */ ori $a0, (0x49008001 & 0xFFFF) # ori $a0, $a0, 0x8001
/* 0B3E54 800B3254 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019
/* 0B3E58 800B3258 AC20EE00 */ sw $zero, %lo(gMenuTimingCounter)($at)
.L800B325C:
/* 0B3E5C 800B325C 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B3E60 800B3260 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B3E64 800B3264 3C0C800F */ lui $t4, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3E68 800B3268 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3E6C 800B326C 018F6021 */ addu $t4, $t4, $t7
/* 0B3E70 800B3270 818C86AB */ lb $t4, %lo((gGameModeMenuColumn - 1))($t4) # -0x7955($t4)
/* 0B3E74 800B3274 000F6880 */ sll $t5, $t7, 2
/* 0B3E78 800B3278 01AF6823 */ subu $t5, $t5, $t7
/* 0B3E7C 800B327C 000D6880 */ sll $t5, $t5, 2
/* 0B3E80 800B3280 000CC080 */ sll $t8, $t4, 2
/* 0B3E84 800B3284 01B87021 */ addu $t6, $t5, $t8
/* 0B3E88 800B3288 006E1821 */ addu $v1, $v1, $t6
/* 0B3E8C 800B328C 10000090 */ b .L800B34D0
/* 0B3E90 800B3290 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B3294:
/* 0B3E94 800B3294 0322C823 */ subu $t9, $t9, $v0
/* 0B3E98 800B3298 0019C880 */ sll $t9, $t9, 2
/* 0B3E9C 800B329C 00044880 */ sll $t1, $a0, 2
/* 0B3EA0 800B32A0 03295821 */ addu $t3, $t9, $t1
/* 0B3EA4 800B32A4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3EA8 800B32A8 006B1821 */ addu $v1, $v1, $t3
/* 0B3EAC 800B32AC 10000088 */ b .L800B34D0
/* 0B3EB0 800B32B0 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
glabel L800B32B4 # case 6, 7
/* 0B3EB4 800B32B4 14A00014 */ bnez $a1, .L800B3308
/* 0B3EB8 800B32B8 00603025 */ move $a2, $v1
/* 0B3EBC 800B32BC 3C0A8019 */ lui $t2, %hi(gMenuTimingCounter) # $t2, 0x8019
/* 0B3EC0 800B32C0 8D4AEE00 */ lw $t2, %lo(gMenuTimingCounter)($t2)
/* 0B3EC4 800B32C4 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019
/* 0B3EC8 800B32C8 3C044900 */ lui $a0, (0x4900900F >> 16) # lui $a0, 0x4900
/* 0B3ECC 800B32CC 254F0001 */ addiu $t7, $t2, 1
/* 0B3ED0 800B32D0 AC2FEE00 */ sw $t7, %lo(gMenuTimingCounter)($at)
/* 0B3ED4 800B32D4 2401003C */ li $at, 60
/* 0B3ED8 800B32D8 11E10006 */ beq $t7, $at, .L800B32F4
/* 0B3EDC 800B32DC 3484900F */ ori $a0, (0x4900900F & 0xFFFF) # ori $a0, $a0, 0x900f
/* 0B3EE0 800B32E0 2401012C */ li $at, 300
/* 0B3EE4 800B32E4 01E1001A */ div $zero, $t7, $at
/* 0B3EE8 800B32E8 00006010 */ mfhi $t4
/* 0B3EEC 800B32EC 55800007 */ bnel $t4, $zero, .L800B330C
/* 0B3EF0 800B32F0 30CD4000 */ andi $t5, $a2, 0x4000
.L800B32F4:
/* 0B3EF4 800B32F4 0C032384 */ jal play_sound2
/* 0B3EF8 800B32F8 AFA6001C */ sw $a2, 0x1c($sp)
/* 0B3EFC 800B32FC 3C088019 */ lui $t0, %hi(gMainMenuSelection) # $t0, 0x8019
/* 0B3F00 800B3300 2508EDED */ addiu $t0, %lo(gMainMenuSelection) # addiu $t0, $t0, -0x1213
/* 0B3F04 800B3304 8FA6001C */ lw $a2, 0x1c($sp)
.L800B3308:
/* 0B3F08 800B3308 30CD4000 */ andi $t5, $a2, 0x4000
.L800B330C:
/* 0B3F0C 800B330C 11A00032 */ beqz $t5, .L800B33D8
/* 0B3F10 800B3310 30D98000 */ andi $t9, $a2, 0x8000
/* 0B3F14 800B3314 3C028019 */ lui $v0, %hi(gPlayerCount) # $v0, 0x8019
/* 0B3F18 800B3318 8042EDF3 */ lb $v0, %lo(gPlayerCount)($v0)
/* 0B3F1C 800B331C 3C0E800F */ lui $t6, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3F20 800B3320 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3F24 800B3324 01C27021 */ addu $t6, $t6, $v0
/* 0B3F28 800B3328 81CE86AB */ lb $t6, %lo((gGameModeMenuColumn - 1))($t6) # -0x7955($t6)
/* 0B3F2C 800B332C 0002C080 */ sll $t8, $v0, 2
/* 0B3F30 800B3330 0302C023 */ subu $t8, $t8, $v0
/* 0B3F34 800B3334 0018C080 */ sll $t8, $t8, 2
/* 0B3F38 800B3338 000EC880 */ sll $t9, $t6, 2
/* 0B3F3C 800B333C 03194821 */ addu $t1, $t8, $t9
/* 0B3F40 800B3340 00691821 */ addu $v1, $v1, $t1
/* 0B3F44 800B3344 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
/* 0B3F48 800B3348 24070001 */ li $a3, 1
/* 0B3F4C 800B334C 240B0005 */ li $t3, 5
/* 0B3F50 800B3350 10600009 */ beqz $v1, .L800B3378
/* 0B3F54 800B3354 00000000 */ nop
/* 0B3F58 800B3358 10670007 */ beq $v1, $a3, .L800B3378
/* 0B3F5C 800B335C 24010002 */ li $at, 2
/* 0B3F60 800B3360 10610005 */ beq $v1, $at, .L800B3378
/* 0B3F64 800B3364 24040003 */ li $a0, 3
/* 0B3F68 800B3368 10640005 */ beq $v1, $a0, .L800B3380
/* 0B3F6C 800B336C 240A0004 */ li $t2, 4
/* 0B3F70 800B3370 10000004 */ b .L800B3384
/* 0B3F74 800B3374 A10A0000 */ sb $t2, ($t0)
.L800B3378:
/* 0B3F78 800B3378 10000002 */ b .L800B3384
/* 0B3F7C 800B337C A10B0000 */ sb $t3, ($t0)
.L800B3380:
/* 0B3F80 800B3380 A10A0000 */ sb $t2, ($t0)
.L800B3384:
/* 0B3F84 800B3384 0C02D12B */ jal reset_cycle_flash_menu
/* 0B3F88 800B3388 00000000 */ nop
/* 0B3F8C 800B338C 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B3F90 800B3390 0C032384 */ jal play_sound2
/* 0B3F94 800B3394 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B3F98 800B3398 3C0F8019 */ lui $t7, %hi(gPlayerCount) # $t7, 0x8019
/* 0B3F9C 800B339C 81EFEDF3 */ lb $t7, %lo(gPlayerCount)($t7)
/* 0B3FA0 800B33A0 3C0D800F */ lui $t5, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B3FA4 800B33A4 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B3FA8 800B33A8 01AF6821 */ addu $t5, $t5, $t7
/* 0B3FAC 800B33AC 81AD86AB */ lb $t5, %lo((gGameModeMenuColumn - 1))($t5) # -0x7955($t5)
/* 0B3FB0 800B33B0 000F6080 */ sll $t4, $t7, 2
/* 0B3FB4 800B33B4 018F6023 */ subu $t4, $t4, $t7
/* 0B3FB8 800B33B8 000C6080 */ sll $t4, $t4, 2
/* 0B3FBC 800B33BC 000D7080 */ sll $t6, $t5, 2
/* 0B3FC0 800B33C0 018EC021 */ addu $t8, $t4, $t6
/* 0B3FC4 800B33C4 3C018019 */ lui $at, %hi(gMenuTimingCounter) # $at, 0x8019
/* 0B3FC8 800B33C8 00781821 */ addu $v1, $v1, $t8
/* 0B3FCC 800B33CC AC20EE00 */ sw $zero, %lo(gMenuTimingCounter)($at)
/* 0B3FD0 800B33D0 1000003F */ b .L800B34D0
/* 0B3FD4 800B33D4 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B33D8:
/* 0B3FD8 800B33D8 13200016 */ beqz $t9, .L800B3434
/* 0B3FDC 800B33DC 3C0C8019 */ lui $t4, %hi(gPlayerCount) # $t4, 0x8019
/* 0B3FE0 800B33E0 0C027870 */ jal func_8009E1C0
/* 0B3FE4 800B33E4 00000000 */ nop
/* 0B3FE8 800B33E8 3C044900 */ lui $a0, (0x49008016 >> 16) # lui $a0, 0x4900
/* 0B3FEC 800B33EC 0C032384 */ jal play_sound2
/* 0B3FF0 800B33F0 34848016 */ ori $a0, (0x49008016 & 0xFFFF) # ori $a0, $a0, 0x8016
/* 0B3FF4 800B33F4 0C02CA32 */ jal setup_game_mode_selected
/* 0B3FF8 800B33F8 00000000 */ nop
/* 0B3FFC 800B33FC 3C098019 */ lui $t1, %hi(gPlayerCount) # $t1, 0x8019
/* 0B4000 800B3400 8129EDF3 */ lb $t1, %lo(gPlayerCount)($t1)
/* 0B4004 800B3404 3C0A800F */ lui $t2, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B4008 800B3408 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B400C 800B340C 01495021 */ addu $t2, $t2, $t1
/* 0B4010 800B3410 814A86AB */ lb $t2, %lo((gGameModeMenuColumn - 1))($t2) # -0x7955($t2)
/* 0B4014 800B3414 00095880 */ sll $t3, $t1, 2
/* 0B4018 800B3418 01695823 */ subu $t3, $t3, $t1
/* 0B401C 800B341C 000B5880 */ sll $t3, $t3, 2
/* 0B4020 800B3420 000A7880 */ sll $t7, $t2, 2
/* 0B4024 800B3424 016F6821 */ addu $t5, $t3, $t7
/* 0B4028 800B3428 006D1821 */ addu $v1, $v1, $t5
/* 0B402C 800B342C 10000028 */ b .L800B34D0
/* 0B4030 800B3430 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B3434:
/* 0B4034 800B3434 818CEDF3 */ lb $t4, %lo(gPlayerCount)($t4)
/* 0B4038 800B3438 3C18800F */ lui $t8, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B403C 800B343C 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B4040 800B3440 030CC021 */ addu $t8, $t8, $t4
/* 0B4044 800B3444 831886AB */ lb $t8, %lo((gGameModeMenuColumn - 1))($t8) # -0x7955($t8)
/* 0B4048 800B3448 000C7080 */ sll $t6, $t4, 2
/* 0B404C 800B344C 01CC7023 */ subu $t6, $t6, $t4
/* 0B4050 800B3450 000E7080 */ sll $t6, $t6, 2
/* 0B4054 800B3454 0018C880 */ sll $t9, $t8, 2
/* 0B4058 800B3458 01D94821 */ addu $t1, $t6, $t9
/* 0B405C 800B345C 00691821 */ addu $v1, $v1, $t1
/* 0B4060 800B3460 1000001B */ b .L800B34D0
/* 0B4064 800B3464 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
glabel L800B3468 # case 1, 2
/* 0B4068 800B3468 3C0A8019 */ lui $t2, %hi(gPlayerCount) # $t2, 0x8019
/* 0B406C 800B346C 814AEDF3 */ lb $t2, %lo(gPlayerCount)($t2)
/* 0B4070 800B3470 3C0F800F */ lui $t7, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B4074 800B3474 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B4078 800B3478 01EA7821 */ addu $t7, $t7, $t2
/* 0B407C 800B347C 81EF86AB */ lb $t7, %lo((gGameModeMenuColumn - 1))($t7) # -0x7955($t7)
/* 0B4080 800B3480 000A5880 */ sll $t3, $t2, 2
/* 0B4084 800B3484 016A5823 */ subu $t3, $t3, $t2
/* 0B4088 800B3488 000B5880 */ sll $t3, $t3, 2
/* 0B408C 800B348C 000F6880 */ sll $t5, $t7, 2
/* 0B4090 800B3490 016D6021 */ addu $t4, $t3, $t5
/* 0B4094 800B3494 006C1821 */ addu $v1, $v1, $t4
/* 0B4098 800B3498 1000000D */ b .L800B34D0
/* 0B409C 800B349C 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B34A0: # default
/* 0B40A0 800B34A0 8318EDF3 */ lb $t8, %lo(gPlayerCount)($t8) # -0x120d($t8)
/* 0B40A4 800B34A4 3C19800F */ lui $t9, %hi((gGameModeMenuColumn - 1)) # 0x800f
/* 0B40A8 800B34A8 3C03800F */ lui $v1, %hi((gGameModePlayerSelection - 0xC)) # 0x800f
/* 0B40AC 800B34AC 0338C821 */ addu $t9, $t9, $t8
/* 0B40B0 800B34B0 833986AB */ lb $t9, %lo((gGameModeMenuColumn - 1))($t9) # -0x7955($t9)
/* 0B40B4 800B34B4 00187080 */ sll $t6, $t8, 2
/* 0B40B8 800B34B8 01D87023 */ subu $t6, $t6, $t8
/* 0B40BC 800B34BC 000E7080 */ sll $t6, $t6, 2
/* 0B40C0 800B34C0 00194880 */ sll $t1, $t9, 2
/* 0B40C4 800B34C4 01C95021 */ addu $t2, $t6, $t1
/* 0B40C8 800B34C8 006A1821 */ addu $v1, $v1, $t2
/* 0B40CC 800B34CC 8C632B70 */ lw $v1, %lo((gGameModePlayerSelection - 0xC))($v1) # 0x2b70($v1)
.L800B34D0:
/* 0B40D0 800B34D0 3C01800E */ lui $at, %hi(gModeSelection) # $at, 0x800e
/* 0B40D4 800B34D4 AC23C53C */ sw $v1, %lo(gModeSelection)($at)
.L800B34D8:
/* 0B40D8 800B34D8 8FBF0014 */ lw $ra, 0x14($sp)
/* 0B40DC 800B34DC 27BD0030 */ addiu $sp, $sp, 0x30
/* 0B40E0 800B34E0 03E00008 */ jr $ra
/* 0B40E4 800B34E4 00000000 */ nop
@@ -1,423 +0,0 @@
glabel player_select_menu_act
/* 0B4154 800B3554 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 0B4158 800B3558 AFBF001C */ sw $ra, 0x1c($sp)
/* 0B415C 800B355C AFB00018 */ sw $s0, 0x18($sp)
/* 0B4160 800B3560 AFA50044 */ sw $a1, 0x44($sp)
/* 0B4164 800B3564 948F000C */ lhu $t7, 0xc($a0)
/* 0B4168 800B3568 948E0006 */ lhu $t6, 6($a0)
/* 0B416C 800B356C 3C19800E */ lui $t9, %hi(gEnableDebugMode) # $t9, 0x800e
/* 0B4170 800B3570 9739C520 */ lhu $t9, %lo(gEnableDebugMode)($t9)
/* 0B4174 800B3574 01CF1825 */ or $v1, $t6, $t7
/* 0B4178 800B3578 3078FFFF */ andi $t8, $v1, 0xffff
/* 0B417C 800B357C 17200007 */ bnez $t9, .L800B359C
/* 0B4180 800B3580 03001825 */ move $v1, $t8
/* 0B4184 800B3584 33081000 */ andi $t0, $t8, 0x1000
/* 0B4188 800B3588 11000004 */ beqz $t0, .L800B359C
/* 0B418C 800B358C 00000000 */ nop
/* 0B4190 800B3590 37038000 */ ori $v1, $t8, 0x8000
/* 0B4194 800B3594 3069FFFF */ andi $t1, $v1, 0xffff
/* 0B4198 800B3598 01201825 */ move $v1, $t1
.L800B359C:
/* 0B419C 800B359C 0C02D148 */ jal is_screen_being_faded
/* 0B41A0 800B35A0 A7A30036 */ sh $v1, 0x36($sp)
/* 0B41A4 800B35A4 14400167 */ bnez $v0, .L800B3B44
/* 0B41A8 800B35A8 97A30036 */ lhu $v1, 0x36($sp)
/* 0B41AC 800B35AC 3C028019 */ lui $v0, %hi(gPlayerSelectMenuSelection) # $v0, 0x8019
/* 0B41B0 800B35B0 8042EDEE */ lb $v0, %lo(gPlayerSelectMenuSelection)($v0)
/* 0B41B4 800B35B4 24010001 */ li $at, 1
/* 0B41B8 800B35B8 97AB0046 */ lhu $t3, 0x46($sp)
/* 0B41BC 800B35BC 1041000A */ beq $v0, $at, .L800B35E8
/* 0B41C0 800B35C0 24010002 */ li $at, 2
/* 0B41C4 800B35C4 10410125 */ beq $v0, $at, .L800B3A5C
/* 0B41C8 800B35C8 97A90046 */ lhu $t1, 0x46($sp)
/* 0B41CC 800B35CC 24010003 */ li $at, 3
/* 0B41D0 800B35D0 10410122 */ beq $v0, $at, .L800B3A5C
/* 0B41D4 800B35D4 97AA0046 */ lhu $t2, 0x46($sp)
/* 0B41D8 800B35D8 3C038019 */ lui $v1, %hi(gCharacterGridSelections) # 0x8019
/* 0B41DC 800B35DC 006A1821 */ addu $v1, $v1, $t2
/* 0B41E0 800B35E0 10000150 */ b .L800B3B24
/* 0B41E4 800B35E4 8063EDE4 */ lb $v1, %lo(gCharacterGridSelections)($v1) # -0x121c($v1)
.L800B35E8: # case 1
/* 0B41E8 800B35E8 3C108019 */ lui $s0, %hi(gCharacterGridSelections) # $s0, 0x8019
/* 0B41EC 800B35EC 2610EDE4 */ addiu $s0, %lo(gCharacterGridSelections) # addiu $s0, $s0, -0x121c
/* 0B41F0 800B35F0 020B6021 */ addu $t4, $s0, $t3
/* 0B41F4 800B35F4 AFAC0028 */ sw $t4, 0x28($sp)
/* 0B41F8 800B35F8 818E0000 */ lb $t6, ($t4)
/* 0B41FC 800B35FC 00603025 */ move $a2, $v1
/* 0B4200 800B3600 306F4000 */ andi $t7, $v1, 0x4000
/* 0B4204 800B3604 15C0000A */ bnez $t6, .L800B3630
/* 0B4208 800B3608 30D84000 */ andi $t8, $a2, 0x4000
/* 0B420C 800B360C 51E0014E */ beql $t7, $zero, .L800B3B48
/* 0B4210 800B3610 8FBF001C */ lw $ra, 0x1c($sp)
/* 0B4214 800B3614 0C027882 */ jal func_8009E208
/* 0B4218 800B3618 00000000 */ nop
/* 0B421C 800B361C 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B4220 800B3620 0C032384 */ jal play_sound2
/* 0B4224 800B3624 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B4228 800B3628 10000147 */ b .L800B3B48
/* 0B422C 800B362C 8FBF001C */ lw $ra, 0x1c($sp)
.L800B3630:
/* 0B4230 800B3630 13000014 */ beqz $t8, .L800B3684
/* 0B4234 800B3634 97B90046 */ lhu $t9, 0x46($sp)
/* 0B4238 800B3638 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019
/* 0B423C 800B363C 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218
/* 0B4240 800B3640 00793821 */ addu $a3, $v1, $t9
/* 0B4244 800B3644 80E80000 */ lb $t0, ($a3)
/* 0B4248 800B3648 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B424C 800B364C 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B4250 800B3650 11000006 */ beqz $t0, .L800B366C
/* 0B4254 800B3654 00000000 */ nop
/* 0B4258 800B3658 A0E00000 */ sb $zero, ($a3)
/* 0B425C 800B365C 0C032384 */ jal play_sound2
/* 0B4260 800B3660 AFA6002C */ sw $a2, 0x2c($sp)
/* 0B4264 800B3664 10000007 */ b .L800B3684
/* 0B4268 800B3668 8FA6002C */ lw $a2, 0x2c($sp)
.L800B366C:
/* 0B426C 800B366C 0C027882 */ jal func_8009E208
/* 0B4270 800B3670 AFA6002C */ sw $a2, 0x2c($sp)
/* 0B4274 800B3674 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B4278 800B3678 0C032384 */ jal play_sound2
/* 0B427C 800B367C 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B4280 800B3680 8FA6002C */ lw $a2, 0x2c($sp)
.L800B3684:
/* 0B4284 800B3684 97A90046 */ lhu $t1, 0x46($sp)
/* 0B4288 800B3688 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019
/* 0B428C 800B368C 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218
/* 0B4290 800B3690 30CA8000 */ andi $t2, $a2, 0x8000
/* 0B4294 800B3694 11400017 */ beqz $t2, .L800B36F4
/* 0B4298 800B3698 00693821 */ addu $a3, $v1, $t1
/* 0B429C 800B369C 80EB0000 */ lb $t3, ($a3)
/* 0B42A0 800B36A0 240C0001 */ li $t4, 1
/* 0B42A4 800B36A4 3C05800F */ lui $a1, %hi((sCharacterGridOrder - 1)) # 0x800f
/* 0B42A8 800B36A8 55600013 */ bnel $t3, $zero, .L800B36F8
/* 0B42AC 800B36AC 00002025 */ move $a0, $zero
/* 0B42B0 800B36B0 8FAD0028 */ lw $t5, 0x28($sp)
/* 0B42B4 800B36B4 A0EC0000 */ sb $t4, ($a3)
/* 0B42B8 800B36B8 3C012900 */ lui $at, (0x2900800E >> 16) # lui $at, 0x2900
/* 0B42BC 800B36BC 81AE0000 */ lb $t6, ($t5)
/* 0B42C0 800B36C0 3421800E */ ori $at, (0x2900800E & 0xFFFF) # ori $at, $at, 0x800e
/* 0B42C4 800B36C4 AFA70020 */ sw $a3, 0x20($sp)
/* 0B42C8 800B36C8 00AE2821 */ addu $a1, $a1, $t6
/* 0B42CC 800B36CC 80A52BAB */ lb $a1, %lo((sCharacterGridOrder - 1))($a1) # 0x2bab($a1)
/* 0B42D0 800B36D0 AFA6002C */ sw $a2, 0x2c($sp)
/* 0B42D4 800B36D4 93A40047 */ lbu $a0, 0x47($sp)
/* 0B42D8 800B36D8 00057900 */ sll $t7, $a1, 4
/* 0B42DC 800B36DC 0C03243D */ jal func_800C90F4
/* 0B42E0 800B36E0 01E12821 */ addu $a1, $t7, $at
/* 0B42E4 800B36E4 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019
/* 0B42E8 800B36E8 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218
/* 0B42EC 800B36EC 8FA6002C */ lw $a2, 0x2c($sp)
/* 0B42F0 800B36F0 8FA70020 */ lw $a3, 0x20($sp)
.L800B36F4:
/* 0B42F4 800B36F4 00002025 */ move $a0, $zero
.L800B36F8:
/* 0B42F8 800B36F8 00001025 */ move $v0, $zero
/* 0B42FC 800B36FC 0202C021 */ addu $t8, $s0, $v0
.L800B3700:
/* 0B4300 800B3700 83190000 */ lb $t9, ($t8)
/* 0B4304 800B3704 00624021 */ addu $t0, $v1, $v0
/* 0B4308 800B3708 24420001 */ addiu $v0, $v0, 1
/* 0B430C 800B370C 13200006 */ beqz $t9, .L800B3728
/* 0B4310 800B3710 00025600 */ sll $t2, $v0, 0x18
/* 0B4314 800B3714 81090000 */ lb $t1, ($t0)
/* 0B4318 800B3718 55200004 */ bnel $t1, $zero, .L800B372C
/* 0B431C 800B371C 000A1603 */ sra $v0, $t2, 0x18
/* 0B4320 800B3720 10000005 */ b .L800B3738
/* 0B4324 800B3724 24040001 */ li $a0, 1
.L800B3728:
/* 0B4328 800B3728 000A1603 */ sra $v0, $t2, 0x18
.L800B372C:
/* 0B432C 800B372C 28410004 */ slti $at, $v0, 4
/* 0B4330 800B3730 5420FFF3 */ bnel $at, $zero, .L800B3700
/* 0B4334 800B3734 0202C021 */ addu $t8, $s0, $v0
.L800B3738:
/* 0B4338 800B3738 1480000B */ bnez $a0, .L800B3768
/* 0B433C 800B373C 240C0002 */ li $t4, 2
/* 0B4340 800B3740 3C018019 */ lui $at, %hi(gPlayerSelectMenuSelection) # $at, 0x8019
/* 0B4344 800B3744 A02CEDEE */ sb $t4, %lo(gPlayerSelectMenuSelection)($at)
/* 0B4348 800B3748 AFA6002C */ sw $a2, 0x2c($sp)
/* 0B434C 800B374C 0C02D12B */ jal reset_cycle_flash_menu
/* 0B4350 800B3750 AFA70020 */ sw $a3, 0x20($sp)
/* 0B4354 800B3754 3C038019 */ lui $v1, %hi(gMenuTimingCounter) # $v1, 0x8019
/* 0B4358 800B3758 2463EE00 */ addiu $v1, %lo(gMenuTimingCounter) # addiu $v1, $v1, -0x1200
/* 0B435C 800B375C 8FA6002C */ lw $a2, 0x2c($sp)
/* 0B4360 800B3760 8FA70020 */ lw $a3, 0x20($sp)
/* 0B4364 800B3764 AC600000 */ sw $zero, ($v1)
.L800B3768:
/* 0B4368 800B3768 80EE0000 */ lb $t6, ($a3)
/* 0B436C 800B376C 8FAD0028 */ lw $t5, 0x28($sp)
/* 0B4370 800B3770 30C20100 */ andi $v0, $a2, 0x100
/* 0B4374 800B3774 15C000EB */ bnez $t6, .L800B3B24
/* 0B4378 800B3778 81A30000 */ lb $v1, ($t5)
/* 0B437C 800B377C 00038600 */ sll $s0, $v1, 0x18
/* 0B4380 800B3780 00107E03 */ sra $t7, $s0, 0x18
/* 0B4384 800B3784 10400017 */ beqz $v0, .L800B37E4
/* 0B4388 800B3788 01E08025 */ move $s0, $t7
/* 0B438C 800B378C 30D80400 */ andi $t8, $a2, 0x400
/* 0B4390 800B3790 13000014 */ beqz $t8, .L800B37E4
/* 0B4394 800B3794 24010001 */ li $at, 1
/* 0B4398 800B3798 10610005 */ beq $v1, $at, .L800B37B0
/* 0B439C 800B379C 00601025 */ move $v0, $v1
/* 0B43A0 800B37A0 24010002 */ li $at, 2
/* 0B43A4 800B37A4 10410002 */ beq $v0, $at, .L800B37B0
/* 0B43A8 800B37A8 24010003 */ li $at, 3
/* 0B43AC 800B37AC 144100E5 */ bne $v0, $at, .L800B3B44
.L800B37B0:
/* 0B43B0 800B37B0 24700005 */ addiu $s0, $v1, 5
/* 0B43B4 800B37B4 0010CE00 */ sll $t9, $s0, 0x18
/* 0B43B8 800B37B8 00192603 */ sra $a0, $t9, 0x18
/* 0B43BC 800B37BC 0C02CD3A */ jal is_character_spot_free
/* 0B43C0 800B37C0 00808025 */ move $s0, $a0
/* 0B43C4 800B37C4 104000DF */ beqz $v0, .L800B3B44
/* 0B43C8 800B37C8 8FA90028 */ lw $t1, 0x28($sp)
/* 0B43CC 800B37CC 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B43D0 800B37D0 A1300000 */ sb $s0, ($t1)
/* 0B43D4 800B37D4 0C032384 */ jal play_sound2
/* 0B43D8 800B37D8 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B43DC 800B37DC 100000DA */ b .L800B3B48
/* 0B43E0 800B37E0 8FBF001C */ lw $ra, 0x1c($sp)
.L800B37E4:
/* 0B43E4 800B37E4 30C40200 */ andi $a0, $a2, 0x200
/* 0B43E8 800B37E8 10800016 */ beqz $a0, .L800B3844
/* 0B43EC 800B37EC 30CA0400 */ andi $t2, $a2, 0x400
/* 0B43F0 800B37F0 11400014 */ beqz $t2, .L800B3844
/* 0B43F4 800B37F4 24010002 */ li $at, 2
/* 0B43F8 800B37F8 10610005 */ beq $v1, $at, .L800B3810
/* 0B43FC 800B37FC 00601025 */ move $v0, $v1
/* 0B4400 800B3800 24010003 */ li $at, 3
/* 0B4404 800B3804 10410002 */ beq $v0, $at, .L800B3810
/* 0B4408 800B3808 24010004 */ li $at, 4
/* 0B440C 800B380C 144100CD */ bne $v0, $at, .L800B3B44
.L800B3810:
/* 0B4410 800B3810 24700003 */ addiu $s0, $v1, 3
/* 0B4414 800B3814 00105E00 */ sll $t3, $s0, 0x18
/* 0B4418 800B3818 000B2603 */ sra $a0, $t3, 0x18
/* 0B441C 800B381C 0C02CD3A */ jal is_character_spot_free
/* 0B4420 800B3820 00808025 */ move $s0, $a0
/* 0B4424 800B3824 104000C7 */ beqz $v0, .L800B3B44
/* 0B4428 800B3828 8FAD0028 */ lw $t5, 0x28($sp)
/* 0B442C 800B382C 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B4430 800B3830 A1B00000 */ sb $s0, ($t5)
/* 0B4434 800B3834 0C032384 */ jal play_sound2
/* 0B4438 800B3838 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B443C 800B383C 100000C2 */ b .L800B3B48
/* 0B4440 800B3840 8FBF001C */ lw $ra, 0x1c($sp)
.L800B3844:
/* 0B4444 800B3844 10400016 */ beqz $v0, .L800B38A0
/* 0B4448 800B3848 30CE0800 */ andi $t6, $a2, 0x800
/* 0B444C 800B384C 11C00014 */ beqz $t6, .L800B38A0
/* 0B4450 800B3850 24010005 */ li $at, 5
/* 0B4454 800B3854 10610005 */ beq $v1, $at, .L800B386C
/* 0B4458 800B3858 00601025 */ move $v0, $v1
/* 0B445C 800B385C 24010006 */ li $at, 6
/* 0B4460 800B3860 10410002 */ beq $v0, $at, .L800B386C
/* 0B4464 800B3864 24010007 */ li $at, 7
/* 0B4468 800B3868 144100B6 */ bne $v0, $at, .L800B3B44
.L800B386C:
/* 0B446C 800B386C 2470FFFD */ addiu $s0, $v1, -3
/* 0B4470 800B3870 00107E00 */ sll $t7, $s0, 0x18
/* 0B4474 800B3874 000F2603 */ sra $a0, $t7, 0x18
/* 0B4478 800B3878 0C02CD3A */ jal is_character_spot_free
/* 0B447C 800B387C 00808025 */ move $s0, $a0
/* 0B4480 800B3880 104000B0 */ beqz $v0, .L800B3B44
/* 0B4484 800B3884 8FB90028 */ lw $t9, 0x28($sp)
/* 0B4488 800B3888 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B448C 800B388C A3300000 */ sb $s0, ($t9)
/* 0B4490 800B3890 0C032384 */ jal play_sound2
/* 0B4494 800B3894 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B4498 800B3898 100000AB */ b .L800B3B48
/* 0B449C 800B389C 8FBF001C */ lw $ra, 0x1c($sp)
.L800B38A0:
/* 0B44A0 800B38A0 10800016 */ beqz $a0, .L800B38FC
/* 0B44A4 800B38A4 30C80800 */ andi $t0, $a2, 0x800
/* 0B44A8 800B38A8 11000014 */ beqz $t0, .L800B38FC
/* 0B44AC 800B38AC 24010006 */ li $at, 6
/* 0B44B0 800B38B0 10610005 */ beq $v1, $at, .L800B38C8
/* 0B44B4 800B38B4 00601025 */ move $v0, $v1
/* 0B44B8 800B38B8 24010007 */ li $at, 7
/* 0B44BC 800B38BC 10410002 */ beq $v0, $at, .L800B38C8
/* 0B44C0 800B38C0 24010008 */ li $at, 8
/* 0B44C4 800B38C4 1441009F */ bne $v0, $at, .L800B3B44
.L800B38C8:
/* 0B44C8 800B38C8 2470FFFB */ addiu $s0, $v1, -5
/* 0B44CC 800B38CC 00104E00 */ sll $t1, $s0, 0x18
/* 0B44D0 800B38D0 00092603 */ sra $a0, $t1, 0x18
/* 0B44D4 800B38D4 0C02CD3A */ jal is_character_spot_free
/* 0B44D8 800B38D8 00808025 */ move $s0, $a0
/* 0B44DC 800B38DC 10400099 */ beqz $v0, .L800B3B44
/* 0B44E0 800B38E0 8FAB0028 */ lw $t3, 0x28($sp)
/* 0B44E4 800B38E4 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B44E8 800B38E8 A1700000 */ sb $s0, ($t3)
/* 0B44EC 800B38EC 0C032384 */ jal play_sound2
/* 0B44F0 800B38F0 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B44F4 800B38F4 10000094 */ b .L800B3B48
/* 0B44F8 800B38F8 8FBF001C */ lw $ra, 0x1c($sp)
.L800B38FC:
/* 0B44FC 800B38FC 1040001E */ beqz $v0, .L800B3978
/* 0B4500 800B3900 24010004 */ li $at, 4
/* 0B4504 800B3904 1061008F */ beq $v1, $at, .L800B3B44
/* 0B4508 800B3908 24010008 */ li $at, 8
/* 0B450C 800B390C 1061008D */ beq $v1, $at, .L800B3B44
/* 0B4510 800B3910 24700001 */ addiu $s0, $v1, 1
/* 0B4514 800B3914 00106600 */ sll $t4, $s0, 0x18
/* 0B4518 800B3918 000C8603 */ sra $s0, $t4, 0x18
.L800B391C:
/* 0B451C 800B391C 0C02CD3A */ jal is_character_spot_free
/* 0B4520 800B3920 02002025 */ move $a0, $s0
/* 0B4524 800B3924 10400008 */ beqz $v0, .L800B3948
/* 0B4528 800B3928 24010005 */ li $at, 5
/* 0B452C 800B392C 8FAE0028 */ lw $t6, 0x28($sp)
/* 0B4530 800B3930 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B4534 800B3934 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B4538 800B3938 0C032384 */ jal play_sound2
/* 0B453C 800B393C A1D00000 */ sb $s0, ($t6)
/* 0B4540 800B3940 10000081 */ b .L800B3B48
/* 0B4544 800B3944 8FBF001C */ lw $ra, 0x1c($sp)
.L800B3948:
/* 0B4548 800B3948 26100001 */ addiu $s0, $s0, 1
/* 0B454C 800B394C 00107E00 */ sll $t7, $s0, 0x18
/* 0B4550 800B3950 000FC603 */ sra $t8, $t7, 0x18
/* 0B4554 800B3954 1301007B */ beq $t8, $at, .L800B3B44
/* 0B4558 800B3958 03008025 */ move $s0, $t8
/* 0B455C 800B395C 24010009 */ li $at, 9
/* 0B4560 800B3960 13010078 */ beq $t8, $at, .L800B3B44
/* 0B4564 800B3964 2B01000A */ slti $at, $t8, 0xa
/* 0B4568 800B3968 1420FFEC */ bnez $at, .L800B391C
/* 0B456C 800B396C 00000000 */ nop
/* 0B4570 800B3970 10000075 */ b .L800B3B48
/* 0B4574 800B3974 8FBF001C */ lw $ra, 0x1c($sp)
.L800B3978:
/* 0B4578 800B3978 1080001E */ beqz $a0, .L800B39F4
/* 0B457C 800B397C 30CC0800 */ andi $t4, $a2, 0x800
/* 0B4580 800B3980 24010001 */ li $at, 1
/* 0B4584 800B3984 1061006F */ beq $v1, $at, .L800B3B44
/* 0B4588 800B3988 24010005 */ li $at, 5
/* 0B458C 800B398C 1061006D */ beq $v1, $at, .L800B3B44
/* 0B4590 800B3990 2470FFFF */ addiu $s0, $v1, -1
/* 0B4594 800B3994 0010CE00 */ sll $t9, $s0, 0x18
/* 0B4598 800B3998 00198603 */ sra $s0, $t9, 0x18
.L800B399C:
/* 0B459C 800B399C 0C02CD3A */ jal is_character_spot_free
/* 0B45A0 800B39A0 02002025 */ move $a0, $s0
/* 0B45A4 800B39A4 10400008 */ beqz $v0, .L800B39C8
/* 0B45A8 800B39A8 24010004 */ li $at, 4
/* 0B45AC 800B39AC 8FA90028 */ lw $t1, 0x28($sp)
/* 0B45B0 800B39B0 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B45B4 800B39B4 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
/* 0B45B8 800B39B8 0C032384 */ jal play_sound2
/* 0B45BC 800B39BC A1300000 */ sb $s0, ($t1)
/* 0B45C0 800B39C0 10000061 */ b .L800B3B48
/* 0B45C4 800B39C4 8FBF001C */ lw $ra, 0x1c($sp)
.L800B39C8:
/* 0B45C8 800B39C8 2610FFFF */ addiu $s0, $s0, -1
/* 0B45CC 800B39CC 00105600 */ sll $t2, $s0, 0x18
/* 0B45D0 800B39D0 000A5E03 */ sra $t3, $t2, 0x18
/* 0B45D4 800B39D4 1160005B */ beqz $t3, .L800B3B44
/* 0B45D8 800B39D8 01608025 */ move $s0, $t3
/* 0B45DC 800B39DC 5161005A */ beql $t3, $at, .L800B3B48
/* 0B45E0 800B39E0 8FBF001C */ lw $ra, 0x1c($sp)
/* 0B45E4 800B39E4 0561FFED */ bgez $t3, .L800B399C
/* 0B45E8 800B39E8 00000000 */ nop
/* 0B45EC 800B39EC 10000056 */ b .L800B3B48
/* 0B45F0 800B39F0 8FBF001C */ lw $ra, 0x1c($sp)
.L800B39F4:
/* 0B45F4 800B39F4 11800007 */ beqz $t4, .L800B3A14
/* 0B45F8 800B39F8 30C20400 */ andi $v0, $a2, 0x400
/* 0B45FC 800B39FC 28610005 */ slti $at, $v1, 5
/* 0B4600 800B3A00 14200004 */ bnez $at, .L800B3A14
/* 0B4604 800B3A04 00000000 */ nop
/* 0B4608 800B3A08 2470FFFC */ addiu $s0, $v1, -4
/* 0B460C 800B3A0C 00106E00 */ sll $t5, $s0, 0x18
/* 0B4610 800B3A10 000D8603 */ sra $s0, $t5, 0x18
.L800B3A14:
/* 0B4614 800B3A14 10400006 */ beqz $v0, .L800B3A30
/* 0B4618 800B3A18 28610005 */ slti $at, $v1, 5
/* 0B461C 800B3A1C 10200004 */ beqz $at, .L800B3A30
/* 0B4620 800B3A20 00000000 */ nop
/* 0B4624 800B3A24 24700004 */ addiu $s0, $v1, 4
/* 0B4628 800B3A28 00107E00 */ sll $t7, $s0, 0x18
/* 0B462C 800B3A2C 000F8603 */ sra $s0, $t7, 0x18
.L800B3A30:
/* 0B4630 800B3A30 0C02CD3A */ jal is_character_spot_free
/* 0B4634 800B3A34 02002025 */ move $a0, $s0
/* 0B4638 800B3A38 10400005 */ beqz $v0, .L800B3A50
/* 0B463C 800B3A3C 8FB90028 */ lw $t9, 0x28($sp)
/* 0B4640 800B3A40 3C044900 */ lui $a0, (0x49008000 >> 16) # lui $a0, 0x4900
/* 0B4644 800B3A44 A3300000 */ sb $s0, ($t9)
/* 0B4648 800B3A48 0C032384 */ jal play_sound2
/* 0B464C 800B3A4C 34848000 */ ori $a0, (0x49008000 & 0xFFFF) # ori $a0, $a0, 0x8000
.L800B3A50:
/* 0B4650 800B3A50 8FA80028 */ lw $t0, 0x28($sp)
/* 0B4654 800B3A54 10000033 */ b .L800B3B24
/* 0B4658 800B3A58 81030000 */ lb $v1, ($t0)
.L800B3A5C: # case 2, 3
/* 0B465C 800B3A5C 15200011 */ bnez $t1, .L800B3AA4
/* 0B4660 800B3A60 00603025 */ move $a2, $v1
/* 0B4664 800B3A64 3C038019 */ lui $v1, %hi(gMenuTimingCounter) # $v1, 0x8019
/* 0B4668 800B3A68 2463EE00 */ addiu $v1, %lo(gMenuTimingCounter) # addiu $v1, $v1, -0x1200
/* 0B466C 800B3A6C 8C6A0000 */ lw $t2, ($v1)
/* 0B4670 800B3A70 2401003C */ li $at, 60
/* 0B4674 800B3A74 3C044900 */ lui $a0, (0x4900900F >> 16) # lui $a0, 0x4900
/* 0B4678 800B3A78 254B0001 */ addiu $t3, $t2, 1
/* 0B467C 800B3A7C 11610005 */ beq $t3, $at, .L800B3A94
/* 0B4680 800B3A80 AC6B0000 */ sw $t3, ($v1)
/* 0B4684 800B3A84 2401012C */ li $at, 300
/* 0B4688 800B3A88 0161001A */ div $zero, $t3, $at
/* 0B468C 800B3A8C 00006010 */ mfhi $t4
/* 0B4690 800B3A90 15800004 */ bnez $t4, .L800B3AA4
.L800B3A94:
/* 0B4694 800B3A94 3484900F */ ori $a0, (0x4900900F & 0xFFFF) # ori $a0, $a0, 0x900f
/* 0B4698 800B3A98 0C032384 */ jal play_sound2
/* 0B469C 800B3A9C AFA6002C */ sw $a2, 0x2c($sp)
/* 0B46A0 800B3AA0 8FA6002C */ lw $a2, 0x2c($sp)
.L800B3AA4:
/* 0B46A4 800B3AA4 30CD4000 */ andi $t5, $a2, 0x4000
/* 0B46A8 800B3AA8 11A00011 */ beqz $t5, .L800B3AF0
/* 0B46AC 800B3AAC 30C88000 */ andi $t0, $a2, 0x8000
/* 0B46B0 800B3AB0 97AF0046 */ lhu $t7, 0x46($sp)
/* 0B46B4 800B3AB4 3C038019 */ lui $v1, %hi(gCharacterGridIsSelected) # $v1, 0x8019
/* 0B46B8 800B3AB8 2463EDE8 */ addiu $v1, %lo(gCharacterGridIsSelected) # addiu $v1, $v1, -0x1218
/* 0B46BC 800B3ABC 240E0001 */ li $t6, 1
/* 0B46C0 800B3AC0 3C018019 */ lui $at, %hi(gPlayerSelectMenuSelection) # $at, 0x8019
/* 0B46C4 800B3AC4 A02EEDEE */ sb $t6, %lo(gPlayerSelectMenuSelection)($at)
/* 0B46C8 800B3AC8 3C044900 */ lui $a0, (0x49008002 >> 16) # lui $a0, 0x4900
/* 0B46CC 800B3ACC 006FC021 */ addu $t8, $v1, $t7
/* 0B46D0 800B3AD0 A3000000 */ sb $zero, ($t8)
/* 0B46D4 800B3AD4 0C032384 */ jal play_sound2
/* 0B46D8 800B3AD8 34848002 */ ori $a0, (0x49008002 & 0xFFFF) # ori $a0, $a0, 0x8002
/* 0B46DC 800B3ADC 97B90046 */ lhu $t9, 0x46($sp)
/* 0B46E0 800B3AE0 3C038019 */ lui $v1, %hi(gCharacterGridSelections) # 0x8019
/* 0B46E4 800B3AE4 00791821 */ addu $v1, $v1, $t9
/* 0B46E8 800B3AE8 1000000E */ b .L800B3B24
/* 0B46EC 800B3AEC 8063EDE4 */ lb $v1, %lo(gCharacterGridSelections)($v1) # -0x121c($v1)
.L800B3AF0:
/* 0B46F0 800B3AF0 51000009 */ beql $t0, $zero, .L800B3B18
/* 0B46F4 800B3AF4 97A90046 */ lhu $t1, 0x46($sp)
/* 0B46F8 800B3AF8 0C027870 */ jal func_8009E1C0
/* 0B46FC 800B3AFC 00000000 */ nop
/* 0B4700 800B3B00 3C044900 */ lui $a0, (0x49008016 >> 16) # lui $a0, 0x4900
/* 0B4704 800B3B04 0C032384 */ jal play_sound2
/* 0B4708 800B3B08 34848016 */ ori $a0, (0x49008016 & 0xFFFF) # ori $a0, $a0, 0x8016
/* 0B470C 800B3B0C 0C003C49 */ jal func_8000F124
/* 0B4710 800B3B10 00000000 */ nop
/* 0B4714 800B3B14 97A90046 */ lhu $t1, 0x46($sp)
.L800B3B18:
/* 0B4718 800B3B18 3C038019 */ lui $v1, %hi(gCharacterGridSelections) # 0x8019
/* 0B471C 800B3B1C 00691821 */ addu $v1, $v1, $t1
/* 0B4720 800B3B20 8063EDE4 */ lb $v1, %lo(gCharacterGridSelections)($v1) # -0x121c($v1)
.L800B3B24:
/* 0B4724 800B3B24 10600007 */ beqz $v1, .L800B3B44
/* 0B4728 800B3B28 3C0A800F */ lui $t2, %hi((sCharacterGridOrder - 1)) # 0x800f
/* 0B472C 800B3B2C 97AB0046 */ lhu $t3, 0x46($sp)
/* 0B4730 800B3B30 01435021 */ addu $t2, $t2, $v1
/* 0B4734 800B3B34 814A2BAB */ lb $t2, %lo((sCharacterGridOrder - 1))($t2) # 0x2bab($t2)
/* 0B4738 800B3B38 3C01800F */ lui $at, %hi(gCharacterSelections) # 0x800f
/* 0B473C 800B3B3C 002B0821 */ addu $at, $at, $t3
/* 0B4740 800B3B40 A02A86A8 */ sb $t2, %lo(gCharacterSelections)($at) # -0x7958($at)
.L800B3B44:
/* 0B4744 800B3B44 8FBF001C */ lw $ra, 0x1c($sp)
.L800B3B48:
/* 0B4748 800B3B48 8FB00018 */ lw $s0, 0x18($sp)
/* 0B474C 800B3B4C 27BD0040 */ addiu $sp, $sp, 0x40
/* 0B4750 800B3B50 03E00008 */ jr $ra
/* 0B4754 800B3B54 00000000 */ nop
@@ -1,167 +0,0 @@
glabel draw_minimap_character
/* 04FD68 8004F168 000570C0 */ sll $t6, $a1, 3
/* 04FD6C 8004F16C 01C57023 */ subu $t6, $t6, $a1
/* 04FD70 8004F170 000E7100 */ sll $t6, $t6, 4
/* 04FD74 8004F174 01C57023 */ subu $t6, $t6, $a1
/* 04FD78 8004F178 3C0F800E */ lui $t7, %hi(gPlayerOne) # $t7, 0x800e
/* 04FD7C 8004F17C 8DEFC4DC */ lw $t7, %lo(gPlayerOne)($t7)
/* 04FD80 8004F180 27BDFFD0 */ addiu $sp, $sp, -0x30
/* 04FD84 8004F184 000E7080 */ sll $t6, $t6, 2
/* 04FD88 8004F188 01C57023 */ subu $t6, $t6, $a1
/* 04FD8C 8004F18C 000E70C0 */ sll $t6, $t6, 3
/* 04FD90 8004F190 AFBF002C */ sw $ra, 0x2c($sp)
/* 04FD94 8004F194 AFA40030 */ sw $a0, 0x30($sp)
/* 04FD98 8004F198 AFA60038 */ sw $a2, 0x38($sp)
/* 04FD9C 8004F19C 01CF1821 */ addu $v1, $t6, $t7
/* 04FDA0 8004F1A0 94780000 */ lhu $t8, ($v1)
/* 04FDA4 8004F1A4 00A03825 */ move $a3, $a1
/* 04FDA8 8004F1A8 3C018019 */ lui $at, %hi(gMiniMapMarkerScale) # $at, 0x8019
/* 04FDAC 8004F1AC 33198000 */ andi $t9, $t8, 0x8000
/* 04FDB0 8004F1B0 13200088 */ beqz $t9, .L8004F3D4
/* 04FDB4 8004F1B4 00044040 */ sll $t0, $a0, 1
/* 04FDB8 8004F1B8 C420D2A0 */ lwc1 $f0, %lo(gMiniMapMarkerScale)($at)
/* 04FDBC 8004F1BC C4640014 */ lwc1 $f4, 0x14($v1)
/* 04FDC0 8004F1C0 3C098019 */ lui $t1, %hi(gMiniMapFinishLineX) # 0x8019
/* 04FDC4 8004F1C4 C466001C */ lwc1 $f6, 0x1c($v1)
/* 04FDC8 8004F1C8 46002082 */ mul.s $f2, $f4, $f0
/* 04FDCC 8004F1CC 01284821 */ addu $t1, $t1, $t0
/* 04FDD0 8004F1D0 3C0A8019 */ lui $t2, %hi(D_8018D2F0) # $t2, 0x8019
/* 04FDD4 8004F1D4 3C0C8019 */ lui $t4, %hi(D_8018D2B0) # $t4, 0x8019
/* 04FDD8 8004F1D8 858CD2B0 */ lh $t4, %lo(D_8018D2B0)($t4)
/* 04FDDC 8004F1DC 854AD2F0 */ lh $t2, %lo(D_8018D2F0)($t2)
/* 04FDE0 8004F1E0 8529D2C0 */ lh $t1, %lo(gMiniMapFinishLineX)($t1) # -0x2d40($t1)
/* 04FDE4 8004F1E4 4600120D */ trunc.w.s $f8, $f2
/* 04FDE8 8004F1E8 46003302 */ mul.s $f12, $f6, $f0
/* 04FDEC 8004F1EC 3C0F8019 */ lui $t7, %hi(gMiniMapX) # $t7, 0x8019
/* 04FDF0 8004F1F0 85EFD2E0 */ lh $t7, %lo(gMiniMapX)($t7)
/* 04FDF4 8004F1F4 01001025 */ move $v0, $t0
/* 04FDF8 8004F1F8 012A5821 */ addu $t3, $t1, $t2
/* 04FDFC 8004F1FC 05810003 */ bgez $t4, .L8004F20C
/* 04FE00 8004F200 000C6843 */ sra $t5, $t4, 1
/* 04FE04 8004F204 25810001 */ addiu $at, $t4, 1
/* 04FE08 8004F208 00016843 */ sra $t5, $at, 1
.L8004F20C:
/* 04FE0C 8004F20C 44084000 */ mfc1 $t0, $f8
/* 04FE10 8004F210 016D7023 */ subu $t6, $t3, $t5
/* 04FE14 8004F214 3C0D8019 */ lui $t5, %hi(gMiniMapFinishLineY) # 0x8019
/* 04FE18 8004F218 01CFC021 */ addu $t8, $t6, $t7
/* 04FE1C 8004F21C 3C0E8019 */ lui $t6, %hi(D_8018D2F8) # $t6, 0x8019
/* 04FE20 8004F220 01A26821 */ addu $t5, $t5, $v0
/* 04FE24 8004F224 00084C00 */ sll $t1, $t0, 0x10
/* 04FE28 8004F228 85ADD2D8 */ lh $t5, %lo(gMiniMapFinishLineY)($t5) # -0x2d28($t5)
/* 04FE2C 8004F22C 85CED2F8 */ lh $t6, %lo(D_8018D2F8)($t6)
/* 04FE30 8004F230 3C198019 */ lui $t9, %hi(D_8018D2B8) # $t9, 0x8019
/* 04FE34 8004F234 4600628D */ trunc.w.s $f10, $f12
/* 04FE38 8004F238 8739D2B8 */ lh $t9, %lo(D_8018D2B8)($t9)
/* 04FE3C 8004F23C 00095403 */ sra $t2, $t1, 0x10
/* 04FE40 8004F240 030A2021 */ addu $a0, $t8, $t2
/* 04FE44 8004F244 3C188019 */ lui $t8, %hi(gMiniMapY) # $t8, 0x8019
/* 04FE48 8004F248 01AE7821 */ addu $t7, $t5, $t6
/* 04FE4C 8004F24C 8718D2E8 */ lh $t8, %lo(gMiniMapY)($t8)
/* 04FE50 8004F250 440E5000 */ mfc1 $t6, $f10
/* 04FE54 8004F254 00046400 */ sll $t4, $a0, 0x10
/* 04FE58 8004F258 000C5C03 */ sra $t3, $t4, 0x10
/* 04FE5C 8004F25C 01602025 */ move $a0, $t3
/* 04FE60 8004F260 07210003 */ bgez $t9, .L8004F270
/* 04FE64 8004F264 00194043 */ sra $t0, $t9, 1
/* 04FE68 8004F268 27210001 */ addiu $at, $t9, 1
/* 04FE6C 8004F26C 00014043 */ sra $t0, $at, 1
.L8004F270:
/* 04FE70 8004F270 01E84823 */ subu $t1, $t7, $t0
/* 04FE74 8004F274 8FA80038 */ lw $t0, 0x38($sp)
/* 04FE78 8004F278 01385021 */ addu $t2, $t1, $t8
/* 04FE7C 8004F27C 014E2821 */ addu $a1, $t2, $t6
/* 04FE80 8004F280 0005CC00 */ sll $t9, $a1, 0x10
/* 04FE84 8004F284 24010008 */ li $at, 8
/* 04FE88 8004F288 1101003F */ beq $t0, $at, .L8004F388
/* 04FE8C 8004F28C 00192C03 */ sra $a1, $t9, 0x10
/* 04FE90 8004F290 00074880 */ sll $t1, $a3, 2
/* 04FE94 8004F294 3C188016 */ lui $t8, %hi(gGPCurrentRaceRankByPlayerId)
/* 04FE98 8004F298 0309C021 */ addu $t8, $t8, $t1
/* 04FE9C 8004F29C 8F1843B8 */ lw $t8, %lo(gGPCurrentRaceRankByPlayerId)($t8)
/* 04FEA0 8004F2A0 3C02800E */ lui $v0, %hi(gModeSelection) # $v0, 0x800e
/* 04FEA4 8004F2A4 3C073F80 */ lui $a3, 0x3f80
/* 04FEA8 8004F2A8 1700001F */ bnez $t8, .L8004F328
/* 04FEAC 8004F2AC 8FAD0038 */ lw $t5, 0x38($sp)
/* 04FEB0 8004F2B0 8C42C53C */ lw $v0, %lo(gModeSelection)($v0)
/* 04FEB4 8004F2B4 24010003 */ li $at, 3
/* 04FEB8 8004F2B8 1041001B */ beq $v0, $at, .L8004F328
/* 04FEBC 8004F2BC 24010001 */ li $at, 1
/* 04FEC0 8004F2C0 10410019 */ beq $v0, $at, .L8004F328
/* 04FEC4 8004F2C4 3C0A0D03 */ lui $t2, %hi(common_texture_minimap_kart_character) # $t2, 0xd03
/* 04FEC8 8004F2C8 8466002E */ lh $a2, 0x2e($v1)
/* 04FECC 8004F2CC 34018000 */ li $at, 32768
/* 04FED0 8004F2D0 000869C0 */ sll $t5, $t0, 7
/* 04FED4 8004F2D4 00C13021 */ addu $a2, $a2, $at
/* 04FED8 8004F2D8 30CCFFFF */ andi $t4, $a2, 0xffff
/* 04FEDC 8004F2DC 01803025 */ move $a2, $t4
/* 04FEE0 8004F2E0 254ACCD8 */ addiu $t2, %lo(common_texture_minimap_kart_character) # addiu $t2, $t2, -0x3328
/* 04FEE4 8004F2E4 3C190D00 */ lui $t9, %hi(common_vtx_player_minimap_icon) # $t9, 0xd00
/* 04FEE8 8004F2E8 27395470 */ addiu $t9, %lo(common_vtx_player_minimap_icon) # addiu $t9, $t9, 0x5470
/* 04FEEC 8004F2EC 01AA7021 */ addu $t6, $t5, $t2
/* 04FEF0 8004F2F0 240C0008 */ li $t4, 8
/* 04FEF4 8004F2F4 240F0008 */ li $t7, 8
/* 04FEF8 8004F2F8 24090008 */ li $t1, 8
/* 04FEFC 8004F2FC 24180008 */ li $t8, 8
/* 04FF00 8004F300 AFB80020 */ sw $t8, 0x20($sp)
/* 04FF04 8004F304 AFA9001C */ sw $t1, 0x1c($sp)
/* 04FF08 8004F308 AFAF0018 */ sw $t7, 0x18($sp)
/* 04FF0C 8004F30C AFAC0024 */ sw $t4, 0x24($sp)
/* 04FF10 8004F310 AFAE0010 */ sw $t6, 0x10($sp)
/* 04FF14 8004F314 AFB90014 */ sw $t9, 0x14($sp)
/* 04FF18 8004F318 0C011909 */ jal func_80046424
/* 04FF1C 8004F31C 3C073F80 */ lui $a3, 0x3f80
/* 04FF20 8004F320 1000002D */ b .L8004F3D8
/* 04FF24 8004F324 8FBF002C */ lw $ra, 0x2c($sp)
.L8004F328:
/* 04FF28 8004F328 8466002E */ lh $a2, 0x2e($v1)
/* 04FF2C 8004F32C 34018000 */ li $at, 32768
/* 04FF30 8004F330 3C0E0D03 */ lui $t6, %hi(common_texture_minimap_kart_character) # $t6, 0xd03
/* 04FF34 8004F334 00C13021 */ addu $a2, $a2, $at
/* 04FF38 8004F338 30C8FFFF */ andi $t0, $a2, 0xffff
/* 04FF3C 8004F33C 01003025 */ move $a2, $t0
/* 04FF40 8004F340 25CECCD8 */ addiu $t6, %lo(common_texture_minimap_kart_character) # addiu $t6, $t6, -0x3328
/* 04FF44 8004F344 000D51C0 */ sll $t2, $t5, 7
/* 04FF48 8004F348 3C0F0D00 */ lui $t7, %hi(common_vtx_player_minimap_icon) # $t7, 0xd00
/* 04FF4C 8004F34C 25EF5470 */ addiu $t7, %lo(common_vtx_player_minimap_icon) # addiu $t7, $t7, 0x5470
/* 04FF50 8004F350 014EC821 */ addu $t9, $t2, $t6
/* 04FF54 8004F354 24080008 */ li $t0, 8
/* 04FF58 8004F358 24090008 */ li $t1, 8
/* 04FF5C 8004F35C 24180008 */ li $t8, 8
/* 04FF60 8004F360 240C0008 */ li $t4, 8
/* 04FF64 8004F364 AFAC0020 */ sw $t4, 0x20($sp)
/* 04FF68 8004F368 AFB8001C */ sw $t8, 0x1c($sp)
/* 04FF6C 8004F36C AFA90018 */ sw $t1, 0x18($sp)
/* 04FF70 8004F370 AFA80024 */ sw $t0, 0x24($sp)
/* 04FF74 8004F374 AFB90010 */ sw $t9, 0x10($sp)
/* 04FF78 8004F378 0C0118EC */ jal func_800463B0
/* 04FF7C 8004F37C AFAF0014 */ sw $t7, 0x14($sp)
/* 04FF80 8004F380 10000015 */ b .L8004F3D8
/* 04FF84 8004F384 8FBF002C */ lw $ra, 0x2c($sp)
.L8004F388:
/* 04FF88 8004F388 00075880 */ sll $t3, $a3, 2
/* 04FF8C 8004F38C 3C0D8016 */ lui $t5, %hi(gGPCurrentRaceRankByPlayerId)
/* 04FF90 8004F390 01AB6821 */ addu $t5, $t5, $t3
/* 04FF94 8004F394 8DAD43B8 */ lw $t5, %lo(gGPCurrentRaceRankByPlayerId)($t5)
/* 04FF98 8004F398 24070008 */ li $a3, 8
/* 04FF9C 8004F39C 24060008 */ li $a2, 8
/* 04FFA0 8004F3A0 15A00009 */ bnez $t5, .L8004F3C8
/* 04FFA4 8004F3A4 3C0E0D03 */ lui $t6, %hi(common_texture_minimap_progress_dot) # $t6, 0xd03
/* 04FFA8 8004F3A8 3C0A0D03 */ lui $t2, %hi(common_texture_minimap_progress_dot) # $t2, 0xd03
/* 04FFAC 8004F3AC 254AD0D8 */ addiu $t2, %lo(common_texture_minimap_progress_dot) # addiu $t2, $t2, -0x2f28
/* 04FFB0 8004F3B0 AFAA0010 */ sw $t2, 0x10($sp)
/* 04FFB4 8004F3B4 24060008 */ li $a2, 8
/* 04FFB8 8004F3B8 0C013114 */ jal func_8004C450
/* 04FFBC 8004F3BC 24070008 */ li $a3, 8
/* 04FFC0 8004F3C0 10000005 */ b .L8004F3D8
/* 04FFC4 8004F3C4 8FBF002C */ lw $ra, 0x2c($sp)
.L8004F3C8:
/* 04FFC8 8004F3C8 25CED0D8 */ addiu $t6, %lo(common_texture_minimap_progress_dot) # addiu $t6, $t6, -0x2f28
/* 04FFCC 8004F3CC 0C0130D9 */ jal draw_hud_2d_texture
/* 04FFD0 8004F3D0 AFAE0010 */ sw $t6, 0x10($sp)
.L8004F3D4:
/* 04FFD4 8004F3D4 8FBF002C */ lw $ra, 0x2c($sp)
.L8004F3D8:
/* 04FFD8 8004F3D8 27BD0030 */ addiu $sp, $sp, 0x30
/* 04FFDC 8004F3DC 03E00008 */ jr $ra
/* 04FFE0 8004F3E0 00000000 */ nop
@@ -1,433 +0,0 @@
glabel func_80050E34
/* 051A34 80050E34 000470C0 */ sll $t6, $a0, 3
/* 051A38 80050E38 01C47023 */ subu $t6, $t6, $a0
/* 051A3C 80050E3C 000E7100 */ sll $t6, $t6, 4
/* 051A40 80050E40 01C47023 */ subu $t6, $t6, $a0
/* 051A44 80050E44 3C0F800E */ lui $t7, %hi(gPlayerOne) # $t7, 0x800e
/* 051A48 80050E48 8DEFC4DC */ lw $t7, %lo(gPlayerOne)($t7)
/* 051A4C 80050E4C 000E7080 */ sll $t6, $t6, 2
/* 051A50 80050E50 01C47023 */ subu $t6, $t6, $a0
/* 051A54 80050E54 27BDFF28 */ addiu $sp, $sp, -0xd8
/* 051A58 80050E58 000E70C0 */ sll $t6, $t6, 3
/* 051A5C 80050E5C 01CF1021 */ addu $v0, $t6, $t7
/* 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(gLapCountByPlayerId) # 0x8016
/* 051A70 80050E70 0004C080 */ sll $t8, $a0, 2
/* 051A74 80050E74 0004C940 */ sll $t9, $a0, 5
/* 051A78 80050E78 3C0D8019 */ lui $t5, %hi(D_8018CE10) # 0x8019
/* 051A7C 80050E7C AFBF002C */ sw $ra, 0x2c($sp)
/* 051A80 80050E80 AFB10028 */ sw $s1, 0x28($sp)
/* 051A84 80050E84 AFA500DC */ sw $a1, 0xdc($sp)
/* 051A88 80050E88 AFA200AC */ sw $v0, 0xac($sp)
/* 051A8C 80050E8C 02188021 */ addu $s0, $s0, $t8
/* 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(gLapCountByPlayerId)($s0) # 0x4390($s0)
/* 051AA0 80050EA0 94510254 */ lhu $s1, 0x254($v0)
/* 051AA4 80050EA4 15C10004 */ bne $t6, $at, .L80050EB8
/* 051AA8 80050EA8 8DADCE24 */ lw $t5, %lo(D_8018CE10 + 0x14)($t5) # -0x31dc($t5)
/* 051AAC 80050EAC 240F0012 */ li $t7, 18
/* 051AB0 80050EB0 10000003 */ b .L80050EC0
/* 051AB4 80050EB4 AFAF00C4 */ sw $t7, 0xc4($sp)
.L80050EB8:
/* 051AB8 80050EB8 24180078 */ li $t8, 120
/* 051ABC 80050EBC AFB800C4 */ sw $t8, 0xc4($sp)
.L80050EC0:
/* 051AC0 80050EC0 30E4FFFF */ andi $a0, $a3, 0xffff
/* 051AC4 80050EC4 27A500D0 */ addiu $a1, $sp, 0xd0
/* 051AC8 80050EC8 27A600CC */ addiu $a2, $sp, 0xcc
/* 051ACC 80050ECC 0C014191 */ jal func_80050644
/* 051AD0 80050ED0 AFAD00D4 */ sw $t5, 0xd4($sp)
/* 051AD4 80050ED4 24010002 */ li $at, 2
/* 051AD8 80050ED8 10410003 */ beq $v0, $at, .L80050EE8
/* 051ADC 80050EDC 8FAD00D4 */ lw $t5, 0xd4($sp)
/* 051AE0 80050EE0 24010003 */ li $at, 3
/* 051AE4 80050EE4 14410003 */ bne $v0, $at, .L80050EF4
.L80050EE8:
/* 051AE8 80050EE8 24190001 */ li $t9, 1
/* 051AEC 80050EEC 10000002 */ b .L80050EF8
/* 051AF0 80050EF0 AFB900B8 */ sw $t9, 0xb8($sp)
.L80050EF4:
/* 051AF4 80050EF4 AFA000B8 */ sw $zero, 0xb8($sp)
.L80050EF8:
/* 051AF8 80050EF8 3C0E800E */ lui $t6, %hi(gCurrentCourseId) # $t6, 0x800e
/* 051AFC 80050EFC 85CEC5A0 */ lh $t6, %lo(gCurrentCourseId)($t6)
/* 051B00 80050F00 24010004 */ li $at, 4
/* 051B04 80050F04 3C18FD10 */ lui $t8, 0xfd10
/* 051B08 80050F08 15C10062 */ bne $t6, $at, .L80051094
/* 051B0C 80050F0C 00115080 */ sll $t2, $s1, 2
/* 051B10 80050F10 2A010003 */ slti $at, $s0, 3
/* 051B14 80050F14 1020005F */ beqz $at, .L80051094
/* 051B18 80050F18 3C108015 */ lui $s0, %hi(gDisplayListHead) # $s0, 0x8015
/* 051B1C 80050F1C 26100298 */ addiu $s0, %lo(gDisplayListHead) # addiu $s0, $s0, 0x298
/* 051B20 80050F20 8E020000 */ lw $v0, ($s0)
/* 051B24 80050F24 3C190D00 */ lui $t9, %hi(D_0D007DB8) # $t9, 0xd00
/* 051B28 80050F28 27397DB8 */ addiu $t9, %lo(D_0D007DB8) # addiu $t9, $t9, 0x7db8
/* 051B2C 80050F2C 244F0008 */ addiu $t7, $v0, 8
/* 051B30 80050F30 AE0F0000 */ sw $t7, ($s0)
/* 051B34 80050F34 3C180600 */ lui $t8, 0x600
/* 051B38 80050F38 AC580000 */ sw $t8, ($v0)
/* 051B3C 80050F3C AC590004 */ sw $t9, 4($v0)
/* 051B40 80050F40 8E020000 */ lw $v0, ($s0)
/* 051B44 80050F44 3C180D02 */ lui $t8, %hi(common_tlut_portrait_bomb_kart_and_question_mark) # $t8, 0xd02
/* 051B48 80050F48 2718B4D8 */ addiu $t8, %lo(common_tlut_portrait_bomb_kart_and_question_mark) # addiu $t8, $t8, -0x4b28
/* 051B4C 80050F4C 244E0008 */ addiu $t6, $v0, 8
/* 051B50 80050F50 AE0E0000 */ sw $t6, ($s0)
/* 051B54 80050F54 3C0FFD10 */ lui $t7, 0xfd10
/* 051B58 80050F58 AC4F0000 */ sw $t7, ($v0)
/* 051B5C 80050F5C AC580004 */ sw $t8, 4($v0)
/* 051B60 80050F60 8E020000 */ lw $v0, ($s0)
/* 051B64 80050F64 3C0EE800 */ lui $t6, 0xe800
/* 051B68 80050F68 3C18F500 */ lui $t8, (0xF5000100 >> 16) # lui $t8, 0xf500
/* 051B6C 80050F6C 24590008 */ addiu $t9, $v0, 8
/* 051B70 80050F70 AE190000 */ sw $t9, ($s0)
/* 051B74 80050F74 AC400004 */ sw $zero, 4($v0)
/* 051B78 80050F78 AC4E0000 */ sw $t6, ($v0)
/* 051B7C 80050F7C 8E020000 */ lw $v0, ($s0)
/* 051B80 80050F80 3C190700 */ lui $t9, 0x700
/* 051B84 80050F84 37180100 */ ori $t8, (0xF5000100 & 0xFFFF) # ori $t8, $t8, 0x100
/* 051B88 80050F88 244F0008 */ addiu $t7, $v0, 8
/* 051B8C 80050F8C AE0F0000 */ sw $t7, ($s0)
/* 051B90 80050F90 AC590004 */ sw $t9, 4($v0)
/* 051B94 80050F94 AC580000 */ sw $t8, ($v0)
/* 051B98 80050F98 8E020000 */ lw $v0, ($s0)
/* 051B9C 80050F9C 3C0FE600 */ lui $t7, 0xe600
/* 051BA0 80050FA0 3C19F000 */ lui $t9, 0xf000
/* 051BA4 80050FA4 244E0008 */ addiu $t6, $v0, 8
/* 051BA8 80050FA8 AE0E0000 */ sw $t6, ($s0)
/* 051BAC 80050FAC AC400004 */ sw $zero, 4($v0)
/* 051BB0 80050FB0 AC4F0000 */ sw $t7, ($v0)
/* 051BB4 80050FB4 8E020000 */ lw $v0, ($s0)
/* 051BB8 80050FB8 3C0E073F */ lui $t6, (0x073FC000 >> 16) # lui $t6, 0x73f
/* 051BBC 80050FBC 35CEC000 */ ori $t6, (0x073FC000 & 0xFFFF) # ori $t6, $t6, 0xc000
/* 051BC0 80050FC0 24580008 */ addiu $t8, $v0, 8
/* 051BC4 80050FC4 AE180000 */ sw $t8, ($s0)
/* 051BC8 80050FC8 AC4E0004 */ sw $t6, 4($v0)
/* 051BCC 80050FCC AC590000 */ sw $t9, ($v0)
/* 051BD0 80050FD0 8E020000 */ lw $v0, ($s0)
/* 051BD4 80050FD4 3C18E700 */ lui $t8, 0xe700
/* 051BD8 80050FD8 3C040D02 */ lui $a0, %hi(common_texture_portrait_question_mark) # $a0, 0xd02
/* 051BDC 80050FDC 244F0008 */ addiu $t7, $v0, 8
/* 051BE0 80050FE0 AE0F0000 */ sw $t7, ($s0)
/* 051BE4 80050FE4 AC400004 */ sw $zero, 4($v0)
/* 051BE8 80050FE8 AC580000 */ sw $t8, ($v0)
/* 051BEC 80050FEC AFAD00D4 */ sw $t5, 0xd4($sp)
/* 051BF0 80050FF0 2484DAD8 */ addiu $a0, %lo(common_texture_portrait_question_mark) # addiu $a0, $a0, -0x2528
/* 051BF4 80050FF4 24050020 */ li $a1, 32
/* 051BF8 80050FF8 0C0114A9 */ jal rsp_load_texture
/* 051BFC 80050FFC 24060020 */ li $a2, 32
/* 051C00 80051000 8FAD00D4 */ lw $t5, 0xd4($sp)
/* 051C04 80051004 3C0E8016 */ lui $t6, %hi(gObjectList) # $t6, 0x8016
/* 051C08 80051008 25CE5C18 */ addiu $t6, %lo(gObjectList) # addiu $t6, $t6, 0x5c18
/* 051C0C 8005100C 000DC8C0 */ sll $t9, $t5, 3
/* 051C10 80051010 032DC823 */ subu $t9, $t9, $t5
/* 051C14 80051014 0019C940 */ sll $t9, $t9, 5
/* 051C18 80051018 8FAF00D0 */ lw $t7, 0xd0($sp)
/* 051C1C 8005101C 032E8821 */ addu $s1, $t9, $t6
/* 051C20 80051020 8FAE00CC */ lw $t6, 0xcc($sp)
/* 051C24 80051024 8FB900C4 */ lw $t9, 0xc4($sp)
/* 051C28 80051028 25F80020 */ addiu $t8, $t7, 0x20
/* 051C2C 8005102C 44983000 */ mtc1 $t8, $f6
/* 051C30 80051030 032E7821 */ addu $t7, $t9, $t6
/* 051C34 80051034 448F8000 */ mtc1 $t7, $f16
/* 051C38 80051038 46803220 */ cvt.s.w $f8, $f6
/* 051C3C 8005103C C6240028 */ lwc1 $f4, 0x28($s1)
/* 051C40 80051040 C626002C */ lwc1 $f6, 0x2c($s1)
/* 051C44 80051044 26240004 */ addiu $a0, $s1, 4
/* 051C48 80051048 262500BE */ addiu $a1, $s1, 0xbe
/* 051C4C 8005104C 468084A0 */ cvt.s.w $f18, $f16
/* 051C50 80051050 8E260000 */ lw $a2, ($s1)
/* 051C54 80051054 46082280 */ add.s $f10, $f4, $f8
/* 051C58 80051058 C6280030 */ lwc1 $f8, 0x30($s1)
/* 051C5C 8005105C 46123100 */ add.s $f4, $f6, $f18
/* 051C60 80051060 E62A0004 */ swc1 $f10, 4($s1)
/* 051C64 80051064 E628000C */ swc1 $f8, 0xc($s1)
/* 051C68 80051068 0C010B80 */ jal rsp_set_matrix_transformation
/* 051C6C 8005106C E6240008 */ swc1 $f4, 8($s1)
/* 051C70 80051070 8E020000 */ lw $v0, ($s0)
/* 051C74 80051074 3C0E0D00 */ lui $t6, %hi(D_0D0069E0) # $t6, 0xd00
/* 051C78 80051078 25CE69E0 */ addiu $t6, %lo(D_0D0069E0) # addiu $t6, $t6, 0x69e0
/* 051C7C 8005107C 24580008 */ addiu $t8, $v0, 8
/* 051C80 80051080 AE180000 */ sw $t8, ($s0)
/* 051C84 80051084 3C190600 */ lui $t9, 0x600
/* 051C88 80051088 AC590000 */ sw $t9, ($v0)
/* 051C8C 8005108C 10000106 */ b .L800514A8
/* 051C90 80051090 AC4E0004 */ sw $t6, 4($v0)
.L80051094:
/* 051C94 80051094 3C108015 */ lui $s0, %hi(gDisplayListHead) # $s0, 0x8015
/* 051C98 80051098 26100298 */ addiu $s0, %lo(gDisplayListHead) # addiu $s0, $s0, 0x298
/* 051C9C 8005109C 8E020000 */ lw $v0, ($s0)
/* 051CA0 800510A0 3C19800E */ lui $t9, %hi(gPortraitTLUTs)
/* 051CA4 800510A4 032AC821 */ addu $t9, $t9, $t2
/* 051CA8 800510A8 244F0008 */ addiu $t7, $v0, 8
/* 051CAC 800510AC AE0F0000 */ sw $t7, ($s0)
/* 051CB0 800510B0 AC580000 */ sw $t8, ($v0)
/* 051CB4 800510B4 8F39457C */ lw $t9, %lo(gPortraitTLUTs)($t9)
/* 051CB8 800510B8 3C0FE800 */ lui $t7, 0xe800
/* 051CBC 800510BC 3C048016 */ lui $a0, %hi(D_801656C0) # $a0, 0x8016
/* 051CC0 800510C0 AC590004 */ sw $t9, 4($v0)
/* 051CC4 800510C4 8E020000 */ lw $v0, ($s0)
/* 051CC8 800510C8 3C19F500 */ lui $t9, (0xF5000100 >> 16) # lui $t9, 0xf500
/* 051CCC 800510CC 37390100 */ ori $t9, (0xF5000100 & 0xFFFF) # ori $t9, $t9, 0x100
/* 051CD0 800510D0 244E0008 */ addiu $t6, $v0, 8
/* 051CD4 800510D4 AE0E0000 */ sw $t6, ($s0)
/* 051CD8 800510D8 AC400004 */ sw $zero, 4($v0)
/* 051CDC 800510DC AC4F0000 */ sw $t7, ($v0)
/* 051CE0 800510E0 8E020000 */ lw $v0, ($s0)
/* 051CE4 800510E4 3C0E0700 */ lui $t6, 0x700
/* 051CE8 800510E8 3C058016 */ lui $a1, %hi(D_801656D0) # $a1, 0x8016
/* 051CEC 800510EC 24580008 */ addiu $t8, $v0, 8
/* 051CF0 800510F0 AE180000 */ sw $t8, ($s0)
/* 051CF4 800510F4 AC4E0004 */ sw $t6, 4($v0)
/* 051CF8 800510F8 AC590000 */ sw $t9, ($v0)
/* 051CFC 800510FC 8E020000 */ lw $v0, ($s0)
/* 051D00 80051100 3C18E600 */ lui $t8, 0xe600
/* 051D04 80051104 3C0EF000 */ lui $t6, 0xf000
/* 051D08 80051108 244F0008 */ addiu $t7, $v0, 8
/* 051D0C 8005110C AE0F0000 */ sw $t7, ($s0)
/* 051D10 80051110 AC400004 */ sw $zero, 4($v0)
/* 051D14 80051114 AC580000 */ sw $t8, ($v0)
/* 051D18 80051118 8E020000 */ lw $v0, ($s0)
/* 051D1C 8005111C 3C0F073F */ lui $t7, (0x073FC000 >> 16) # lui $t7, 0x73f
/* 051D20 80051120 35EFC000 */ ori $t7, (0x073FC000 & 0xFFFF) # ori $t7, $t7, 0xc000
/* 051D24 80051124 24590008 */ addiu $t9, $v0, 8
/* 051D28 80051128 AE190000 */ sw $t9, ($s0)
/* 051D2C 8005112C AC4F0004 */ sw $t7, 4($v0)
/* 051D30 80051130 AC4E0000 */ sw $t6, ($v0)
/* 051D34 80051134 8E020000 */ lw $v0, ($s0)
/* 051D38 80051138 3C19E700 */ lui $t9, 0xe700
/* 051D3C 8005113C 3C0F0600 */ lui $t7, 0x600
/* 051D40 80051140 24580008 */ addiu $t8, $v0, 8
/* 051D44 80051144 AE180000 */ sw $t8, ($s0)
/* 051D48 80051148 AC400004 */ sw $zero, 4($v0)
/* 051D4C 8005114C AC590000 */ sw $t9, ($v0)
/* 051D50 80051150 8E020000 */ lw $v0, ($s0)
/* 051D54 80051154 3C180D00 */ lui $t8, %hi(D_0D007DB8) # $t8, 0xd00
/* 051D58 80051158 27187DB8 */ addiu $t8, %lo(D_0D007DB8) # addiu $t8, $t8, 0x7db8
/* 051D5C 8005115C 244E0008 */ addiu $t6, $v0, 8
/* 051D60 80051160 AE0E0000 */ sw $t6, ($s0)
/* 051D64 80051164 AC580004 */ sw $t8, 4($v0)
/* 051D68 80051168 AC4F0000 */ sw $t7, ($v0)
/* 051D6C 8005116C 8FB900AC */ lw $t9, 0xac($sp)
/* 051D70 80051170 3C068016 */ lui $a2, %hi(D_801656E0) # $a2, 0x8016
/* 051D74 80051174 24070080 */ li $a3, 128
/* 051D78 80051178 8F2E00BC */ lw $t6, 0xbc($t9)
/* 051D7C 8005117C 000DC8C0 */ sll $t9, $t5, 3
/* 051D80 80051180 032DC823 */ subu $t9, $t9, $t5
/* 051D84 80051184 31CF0200 */ andi $t7, $t6, 0x200
/* 051D88 80051188 11E00014 */ beqz $t7, .L800511DC
/* 051D8C 8005118C 0019C940 */ sll $t9, $t9, 5
/* 051D90 80051190 000D70C0 */ sll $t6, $t5, 3
/* 051D94 80051194 01CD7023 */ subu $t6, $t6, $t5
/* 051D98 80051198 3C0F8016 */ lui $t7, %hi(gObjectList) # $t7, 0x8016
/* 051D9C 8005119C 25EF5C18 */ addiu $t7, %lo(gObjectList) # addiu $t7, $t7, 0x5c18
/* 051DA0 800511A0 000E7140 */ sll $t6, $t6, 5
/* 051DA4 800511A4 24180080 */ li $t8, 128
/* 051DA8 800511A8 AFB80010 */ sw $t8, 0x10($sp)
/* 051DAC 800511AC 01CF8821 */ addu $s1, $t6, $t7
/* 051DB0 800511B0 863800A0 */ lh $t8, 0xa0($s1)
/* 051DB4 800511B4 24190080 */ li $t9, 128
/* 051DB8 800511B8 AFB90014 */ sw $t9, 0x14($sp)
/* 051DBC 800511BC 948456C0 */ lhu $a0, %lo(D_801656C0)($a0)
/* 051DC0 800511C0 94A556D0 */ lhu $a1, %lo(D_801656D0)($a1)
/* 051DC4 800511C4 94C656E0 */ lhu $a2, %lo(D_801656E0)($a2)
/* 051DC8 800511C8 AFAA003C */ sw $t2, 0x3c($sp)
/* 051DCC 800511CC 0C012D85 */ jal func_8004B614
/* 051DD0 800511D0 AFB80018 */ sw $t8, 0x18($sp)
/* 051DD4 800511D4 10000008 */ b .L800511F8
/* 051DD8 800511D8 8FAA003C */ lw $t2, 0x3c($sp)
.L800511DC:
/* 051DDC 800511DC 3C0E8016 */ lui $t6, %hi(gObjectList) # $t6, 0x8016
/* 051DE0 800511E0 25CE5C18 */ addiu $t6, %lo(gObjectList) # addiu $t6, $t6, 0x5c18
/* 051DE4 800511E4 032E8821 */ addu $s1, $t9, $t6
/* 051DE8 800511E8 862400A0 */ lh $a0, 0xa0($s1)
/* 051DEC 800511EC 0C012CAF */ jal set_transparency
/* 051DF0 800511F0 AFAA003C */ sw $t2, 0x3c($sp)
/* 051DF4 800511F4 8FAA003C */ lw $t2, 0x3c($sp)
.L800511F8:
/* 051DF8 800511F8 3C04800E */ lui $a0, %hi(gPortraitTextures)
/* 051DFC 800511FC 008A2021 */ addu $a0, $a0, $t2
/* 051E00 80051200 8C84459C */ lw $a0, %lo(gPortraitTextures)($a0)
/* 051E04 80051204 24050020 */ li $a1, 32
/* 051E08 80051208 0C0114A9 */ jal rsp_load_texture
/* 051E0C 8005120C 24060020 */ li $a2, 32
/* 051E10 80051210 8FAF00D0 */ lw $t7, 0xd0($sp)
/* 051E14 80051214 8FB900C4 */ lw $t9, 0xc4($sp)
/* 051E18 80051218 8FAE00CC */ lw $t6, 0xcc($sp)
/* 051E1C 8005121C 25F80020 */ addiu $t8, $t7, 0x20
/* 051E20 80051220 44988000 */ mtc1 $t8, $f16
/* 051E24 80051224 032E7821 */ addu $t7, $t9, $t6
/* 051E28 80051228 448F2000 */ mtc1 $t7, $f4
/* 051E2C 8005122C 468081A0 */ cvt.s.w $f6, $f16
/* 051E30 80051230 C62A0028 */ lwc1 $f10, 0x28($s1)
/* 051E34 80051234 C630002C */ lwc1 $f16, 0x2c($s1)
/* 051E38 80051238 26240004 */ addiu $a0, $s1, 4
/* 051E3C 8005123C 262500BE */ addiu $a1, $s1, 0xbe
/* 051E40 80051240 46802220 */ cvt.s.w $f8, $f4
/* 051E44 80051244 AFA50038 */ sw $a1, 0x38($sp)
/* 051E48 80051248 AFA4003C */ sw $a0, 0x3c($sp)
/* 051E4C 8005124C 8E260000 */ lw $a2, ($s1)
/* 051E50 80051250 46065480 */ add.s $f18, $f10, $f6
/* 051E54 80051254 C6260030 */ lwc1 $f6, 0x30($s1)
/* 051E58 80051258 46088280 */ add.s $f10, $f16, $f8
/* 051E5C 8005125C E6320004 */ swc1 $f18, 4($s1)
/* 051E60 80051260 E626000C */ swc1 $f6, 0xc($s1)
/* 051E64 80051264 0C010B80 */ jal rsp_set_matrix_transformation
/* 051E68 80051268 E62A0008 */ swc1 $f10, 8($s1)
/* 051E6C 8005126C 8FB800B8 */ lw $t8, 0xb8($sp)
/* 051E70 80051270 3C0E0600 */ lui $t6, 0x600
/* 051E74 80051274 3C190600 */ lui $t9, 0x600
/* 051E78 80051278 13000009 */ beqz $t8, .L800512A0
/* 051E7C 8005127C 24050008 */ li $a1, 8
/* 051E80 80051280 8E020000 */ lw $v0, ($s0)
/* 051E84 80051284 3C0F0D00 */ lui $t7, %hi(D_0D0069F8) # $t7, 0xd00
/* 051E88 80051288 25EF69F8 */ addiu $t7, %lo(D_0D0069F8) # addiu $t7, $t7, 0x69f8
/* 051E8C 8005128C 24590008 */ addiu $t9, $v0, 8
/* 051E90 80051290 AE190000 */ sw $t9, ($s0)
/* 051E94 80051294 AC4F0004 */ sw $t7, 4($v0)
/* 051E98 80051298 10000008 */ b .L800512BC
/* 051E9C 8005129C AC4E0000 */ sw $t6, ($v0)
.L800512A0:
/* 051EA0 800512A0 8E020000 */ lw $v0, ($s0)
/* 051EA4 800512A4 3C0E0D00 */ lui $t6, %hi(D_0D0069E0) # $t6, 0xd00
/* 051EA8 800512A8 25CE69E0 */ addiu $t6, %lo(D_0D0069E0) # addiu $t6, $t6, 0x69e0
/* 051EAC 800512AC 24580008 */ addiu $t8, $v0, 8
/* 051EB0 800512B0 AE180000 */ sw $t8, ($s0)
/* 051EB4 800512B4 AC4E0004 */ sw $t6, 4($v0)
/* 051EB8 800512B8 AC590000 */ sw $t9, ($v0)
.L800512BC:
/* 051EBC 800512BC 8E020000 */ lw $v0, ($s0)
/* 051EC0 800512C0 3C190D02 */ lui $t9, %hi(common_tlut_hud_type_C_rank_tiny_font) # $t9, 0xd02
/* 051EC4 800512C4 27399E58 */ addiu $t9, %lo(common_tlut_hud_type_C_rank_tiny_font) # addiu $t9, $t9, -0x61a8
/* 051EC8 800512C8 244F0008 */ addiu $t7, $v0, 8
/* 051ECC 800512CC AE0F0000 */ sw $t7, ($s0)
/* 051ED0 800512D0 3C18FD10 */ lui $t8, 0xfd10
/* 051ED4 800512D4 AC580000 */ sw $t8, ($v0)
/* 051ED8 800512D8 AC590004 */ sw $t9, 4($v0)
/* 051EDC 800512DC 8E020000 */ lw $v0, ($s0)
/* 051EE0 800512E0 3C0FE800 */ lui $t7, 0xe800
/* 051EE4 800512E4 3C19F500 */ lui $t9, (0xF5000100 >> 16) # lui $t9, 0xf500
/* 051EE8 800512E8 244E0008 */ addiu $t6, $v0, 8
/* 051EEC 800512EC AE0E0000 */ sw $t6, ($s0)
/* 051EF0 800512F0 AC400004 */ sw $zero, 4($v0)
/* 051EF4 800512F4 AC4F0000 */ sw $t7, ($v0)
/* 051EF8 800512F8 8E020000 */ lw $v0, ($s0)
/* 051EFC 800512FC 3C0E0700 */ lui $t6, 0x700
/* 051F00 80051300 37390100 */ ori $t9, (0xF5000100 & 0xFFFF) # ori $t9, $t9, 0x100
/* 051F04 80051304 24580008 */ addiu $t8, $v0, 8
/* 051F08 80051308 AE180000 */ sw $t8, ($s0)
/* 051F0C 8005130C AC4E0004 */ sw $t6, 4($v0)
/* 051F10 80051310 AC590000 */ sw $t9, ($v0)
/* 051F14 80051314 8E020000 */ lw $v0, ($s0)
/* 051F18 80051318 3C18E600 */ lui $t8, 0xe600
/* 051F1C 8005131C 3C0EF000 */ lui $t6, 0xf000
/* 051F20 80051320 244F0008 */ addiu $t7, $v0, 8
/* 051F24 80051324 AE0F0000 */ sw $t7, ($s0)
/* 051F28 80051328 AC400004 */ sw $zero, 4($v0)
/* 051F2C 8005132C AC580000 */ sw $t8, ($v0)
/* 051F30 80051330 8E020000 */ lw $v0, ($s0)
/* 051F34 80051334 3C0F073F */ lui $t7, (0x073FC000 >> 16) # lui $t7, 0x73f
/* 051F38 80051338 35EFC000 */ ori $t7, (0x073FC000 & 0xFFFF) # ori $t7, $t7, 0xc000
/* 051F3C 8005133C 24590008 */ addiu $t9, $v0, 8
/* 051F40 80051340 AE190000 */ sw $t9, ($s0)
/* 051F44 80051344 AC4F0004 */ sw $t7, 4($v0)
/* 051F48 80051348 AC4E0000 */ sw $t6, ($v0)
/* 051F4C 8005134C 8E020000 */ lw $v0, ($s0)
/* 051F50 80051350 3C19E700 */ lui $t9, 0xe700
/* 051F54 80051354 24060008 */ li $a2, 8
/* 051F58 80051358 24580008 */ addiu $t8, $v0, 8
/* 051F5C 8005135C AE180000 */ sw $t8, ($s0)
/* 051F60 80051360 AC400004 */ sw $zero, 4($v0)
/* 051F64 80051364 AC590000 */ sw $t9, ($v0)
/* 051F68 80051368 8FAE00DC */ lw $t6, 0xdc($sp)
/* 051F6C 8005136C 3C190D02 */ lui $t9, %hi(common_texture_hud_type_C_rank_tiny_font) # $t9, 0xd02
/* 051F70 80051370 2739A058 */ addiu $t9, %lo(common_texture_hud_type_C_rank_tiny_font) # addiu $t9, $t9, -0x5fa8
/* 051F74 80051374 000E7980 */ sll $t7, $t6, 6
/* 051F78 80051378 25F80040 */ addiu $t8, $t7, 0x40
/* 051F7C 8005137C 0C0114A9 */ jal rsp_load_texture
/* 051F80 80051380 03192021 */ addu $a0, $t8, $t9
/* 051F84 80051384 8FAE00B8 */ lw $t6, 0xb8($sp)
/* 051F88 80051388 8FA400D0 */ lw $a0, 0xd0($sp)
/* 051F8C 8005138C 8FB900C4 */ lw $t9, 0xc4($sp)
/* 051F90 80051390 11C0000C */ beqz $t6, .L800513C4
/* 051F94 80051394 2484001B */ addiu $a0, $a0, 0x1b
/* 051F98 80051398 8FAF00C4 */ lw $t7, 0xc4($sp)
/* 051F9C 8005139C 8FB800CC */ lw $t8, 0xcc($sp)
/* 051FA0 800513A0 8FA400D0 */ lw $a0, 0xd0($sp)
/* 051FA4 800513A4 00003025 */ move $a2, $zero
/* 051FA8 800513A8 01F82821 */ addu $a1, $t7, $t8
/* 051FAC 800513AC 24A50004 */ addiu $a1, $a1, 4
/* 051FB0 800513B0 3C073F80 */ lui $a3, 0x3f80
/* 051FB4 800513B4 0C0108CC */ jal func_80042330
/* 051FB8 800513B8 24840026 */ addiu $a0, $a0, 0x26
/* 051FBC 800513BC 10000008 */ b .L800513E0
/* 051FC0 800513C0 8E020000 */ lw $v0, ($s0)
.L800513C4:
/* 051FC4 800513C4 8FAE00CC */ lw $t6, 0xcc($sp)
/* 051FC8 800513C8 00003025 */ move $a2, $zero
/* 051FCC 800513CC 3C073F80 */ lui $a3, 0x3f80
/* 051FD0 800513D0 032E2821 */ addu $a1, $t9, $t6
/* 051FD4 800513D4 0C0108CC */ jal func_80042330
/* 051FD8 800513D8 24A50004 */ addiu $a1, $a1, 4
/* 051FDC 800513DC 8E020000 */ lw $v0, ($s0)
.L800513E0:
/* 051FE0 800513E0 3C190D00 */ lui $t9, %hi(D_0D006950) # $t9, 0xd00
/* 051FE4 800513E4 27396950 */ addiu $t9, %lo(D_0D006950) # addiu $t9, $t9, 0x6950
/* 051FE8 800513E8 244F0008 */ addiu $t7, $v0, 8
/* 051FEC 800513EC AE0F0000 */ sw $t7, ($s0)
/* 051FF0 800513F0 3C180600 */ lui $t8, 0x600
/* 051FF4 800513F4 AC580000 */ sw $t8, ($v0)
/* 051FF8 800513F8 AC590004 */ sw $t9, 4($v0)
/* 051FFC 800513FC 3C0F800E */ lui $t7, %hi(gPlayerOne) # $t7, 0x800e
/* 052000 80051400 8DEFC4DC */ lw $t7, %lo(gPlayerOne)($t7)
/* 052004 80051404 8FAE00AC */ lw $t6, 0xac($sp)
/* 052008 80051408 3C18800E */ lui $t8, %hi(gScreenModeSelection) # $t8, 0x800e
/* 05200C 8005140C 55CF0027 */ bnel $t6, $t7, .L800514AC
/* 052010 80051410 8FBF002C */ lw $ra, 0x2c($sp)
/* 052014 80051414 8F18C530 */ lw $t8, %lo(gScreenModeSelection)($t8)
/* 052018 80051418 3C0F0D00 */ lui $t7, %hi(D_0D007A40) # $t7, 0xd00
/* 05201C 8005141C 25EF7A40 */ addiu $t7, %lo(D_0D007A40) # addiu $t7, $t7, 0x7a40
/* 052020 80051420 17000021 */ bnez $t8, .L800514A8
/* 052024 80051424 3C0E0600 */ lui $t6, 0x600
/* 052028 80051428 8E020000 */ lw $v0, ($s0)
/* 05202C 8005142C 3C180D00 */ lui $t8, %hi(D_0D0069E0) # $t8, 0xd00
/* 052030 80051430 271869E0 */ addiu $t8, %lo(D_0D0069E0) # addiu $t8, $t8, 0x69e0
/* 052034 80051434 24590008 */ addiu $t9, $v0, 8
/* 052038 80051438 AE190000 */ sw $t9, ($s0)
/* 05203C 8005143C AC4F0004 */ sw $t7, 4($v0)
/* 052040 80051440 AC4E0000 */ sw $t6, ($v0)
/* 052044 80051444 3C048019 */ lui $a0, %hi(D_8018D3E4) # $a0, 0x8019
/* 052048 80051448 3C058019 */ lui $a1, %hi(D_8018D3E8) # $a1, 0x8019
/* 05204C 8005144C 3C068019 */ lui $a2, %hi(D_8018D3EC) # $a2, 0x8019
/* 052050 80051450 8CC6D3EC */ lw $a2, %lo(D_8018D3EC)($a2)
/* 052054 80051454 8CA5D3E8 */ lw $a1, %lo(D_8018D3E8)($a1)
/* 052058 80051458 8C84D3E4 */ lw $a0, %lo(D_8018D3E4)($a0)
/* 05205C 8005145C AFB80034 */ sw $t8, 0x34($sp)
/* 052060 80051460 0C012CD7 */ jal func_8004B35C
/* 052064 80051464 240700FF */ li $a3, 255
/* 052068 80051468 3C040D02 */ lui $a0, %hi(common_texture_character_portrait_border) # $a0, 0xd02
/* 05206C 8005146C 2484A2D8 */ addiu $a0, %lo(common_texture_character_portrait_border) # addiu $a0, $a0, -0x5d28
/* 052070 80051470 24050020 */ li $a1, 32
/* 052074 80051474 0C011249 */ jal func_80044924
/* 052078 80051478 24060020 */ li $a2, 32
/* 05207C 8005147C 8FA4003C */ lw $a0, 0x3c($sp)
/* 052080 80051480 8FA50038 */ lw $a1, 0x38($sp)
/* 052084 80051484 0C010B80 */ jal rsp_set_matrix_transformation
/* 052088 80051488 8E260000 */ lw $a2, ($s1)
/* 05208C 8005148C 8E020000 */ lw $v0, ($s0)
/* 052090 80051490 3C0E0600 */ lui $t6, 0x600
/* 052094 80051494 24590008 */ addiu $t9, $v0, 8
/* 052098 80051498 AE190000 */ sw $t9, ($s0)
/* 05209C 8005149C AC4E0000 */ sw $t6, ($v0)
/* 0520A0 800514A0 8FAF0034 */ lw $t7, 0x34($sp)
/* 0520A4 800514A4 AC4F0004 */ sw $t7, 4($v0)
.L800514A8:
/* 0520A8 800514A8 8FBF002C */ lw $ra, 0x2c($sp)
.L800514AC:
/* 0520AC 800514AC 8FB00024 */ lw $s0, 0x24($sp)
/* 0520B0 800514B0 8FB10028 */ lw $s1, 0x28($sp)
/* 0520B4 800514B4 03E00008 */ jr $ra
/* 0520B8 800514B8 27BD00D8 */ addiu $sp, $sp, 0xd8
-92
View File
@@ -1,92 +0,0 @@
glabel func_800B5218
/* 0B5E18 800B5218 3C0E8019 */ lui $t6, %hi(gCupSelection) # $t6, 0x8019
/* 0B5E1C 800B521C 81CEEE09 */ lb $t6, %lo(gCupSelection)($t6)
/* 0B5E20 800B5220 3C188019 */ lui $t8, %hi(gCourseIndexInCup) # $t8, 0x8019
/* 0B5E24 800B5224 8318EE0B */ lb $t8, %lo(gCourseIndexInCup)($t8)
/* 0B5E28 800B5228 3C09800F */ lui $t1, %hi(gCharacterSelections) # $t1, 0x800f
/* 0B5E2C 800B522C 812986A8 */ lb $t1, %lo(gCharacterSelections)($t1)
/* 0B5E30 800B5230 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 0B5E34 800B5234 000E7880 */ sll $t7, $t6, 2
/* 0B5E38 800B5238 3C058019 */ lui $a1, %hi(playerHUD+0x4) # $a1, 0x8019
/* 0B5E3C 800B523C 3C068019 */ lui $a2, %hi(playerHUD) # $a2, 0x8019
/* 0B5E40 800B5240 01F8C821 */ addu $t9, $t7, $t8
/* 0B5E44 800B5244 AFBF0014 */ sw $ra, 0x14($sp)
/* 0B5E48 800B5248 AFB90038 */ sw $t9, 0x38($sp)
/* 0B5E4C 800B524C 24070001 */ li $a3, 1
/* 0B5E50 800B5250 24C6CA70 */ addiu $a2, %lo(playerHUD) # addiu $a2, $a2, -0x3590
/* 0B5E54 800B5254 24A5CA74 */ addiu $a1, %lo(playerHUD+0x4) # addiu $a1, $a1, -0x358c
/* 0B5E58 800B5258 24020001 */ li $v0, 1
/* 0B5E5C 800B525C 24080003 */ li $t0, 3
/* 0B5E60 800B5260 AFA90028 */ sw $t1, 0x28($sp)
.L800B5264:
/* 0B5E64 800B5264 8CA30020 */ lw $v1, 0x20($a1)
/* 0B5E68 800B5268 8CC40020 */ lw $a0, 0x20($a2)
/* 0B5E6C 800B526C 240A0001 */ li $t2, 1
/* 0B5E70 800B5270 00025880 */ sll $t3, $v0, 2
/* 0B5E74 800B5274 0064082A */ slt $at, $v1, $a0
/* 0B5E78 800B5278 10200005 */ beqz $at, .L800B5290
/* 0B5E7C 800B527C 3C0C8019 */ lui $t4, %hi(playerHUD) # $t4, 0x8019
/* 0B5E80 800B5280 258CCA70 */ addiu $t4, %lo(playerHUD) # addiu $t4, $t4, -0x3590
/* 0B5E84 800B5284 004A3804 */ sllv $a3, $t2, $v0
/* 0B5E88 800B5288 10000005 */ b .L800B52A0
/* 0B5E8C 800B528C 016C3021 */ addu $a2, $t3, $t4
.L800B5290:
/* 0B5E90 800B5290 14830003 */ bne $a0, $v1, .L800B52A0
/* 0B5E94 800B5294 240D0001 */ li $t5, 1
/* 0B5E98 800B5298 004D7004 */ sllv $t6, $t5, $v0
/* 0B5E9C 800B529C 00EE3825 */ or $a3, $a3, $t6
.L800B52A0:
/* 0B5EA0 800B52A0 24420001 */ addiu $v0, $v0, 1
/* 0B5EA4 800B52A4 1448FFEF */ bne $v0, $t0, .L800B5264
/* 0B5EA8 800B52A8 24A50004 */ addiu $a1, $a1, 4
/* 0B5EAC 800B52AC AFA60018 */ sw $a2, 0x18($sp)
/* 0B5EB0 800B52B0 0C02D3CB */ jal func_800B4F2C
/* 0B5EB4 800B52B4 AFA70024 */ sw $a3, 0x24($sp)
/* 0B5EB8 800B52B8 8FA60018 */ lw $a2, 0x18($sp)
/* 0B5EBC 800B52BC 3C01000F */ lui $at, (0x000FFFFF >> 16) # lui $at, 0xf
/* 0B5EC0 800B52C0 3421FFFF */ ori $at, (0x000FFFFF & 0xFFFF) # ori $at, $at, 0xffff
/* 0B5EC4 800B52C4 8CC50020 */ lw $a1, 0x20($a2)
/* 0B5EC8 800B52C8 00417824 */ and $t7, $v0, $at
/* 0B5ECC 800B52CC 8FA70024 */ lw $a3, 0x24($sp)
/* 0B5ED0 800B52D0 00AF082B */ sltu $at, $a1, $t7
/* 0B5ED4 800B52D4 10200021 */ beqz $at, .L800B535C
/* 0B5ED8 800B52D8 00001025 */ move $v0, $zero
/* 0B5EDC 800B52DC 8FA30038 */ lw $v1, 0x38($sp)
/* 0B5EE0 800B52E0 3C0C8019 */ lui $t4, %hi(gSaveData) # $t4, 0x8019
/* 0B5EE4 800B52E4 258CEB90 */ addiu $t4, %lo(gSaveData) # addiu $t4, $t4, -0x1470
/* 0B5EE8 800B52E8 04610003 */ bgez $v1, .L800B52F8
/* 0B5EEC 800B52EC 0003C083 */ sra $t8, $v1, 2
/* 0B5EF0 800B52F0 24610003 */ addiu $at, $v1, 3
/* 0B5EF4 800B52F4 0001C083 */ sra $t8, $at, 2
.L800B52F8:
/* 0B5EF8 800B52F8 0018C880 */ sll $t9, $t8, 2
/* 0B5EFC 800B52FC 0338C823 */ subu $t9, $t9, $t8
/* 0B5F00 800B5300 0019C940 */ sll $t9, $t9, 5
/* 0B5F04 800B5304 04610004 */ bgez $v1, .L800B5318
/* 0B5F08 800B5308 30690003 */ andi $t1, $v1, 3
/* 0B5F0C 800B530C 11200002 */ beqz $t1, .L800B5318
/* 0B5F10 800B5310 00000000 */ nop
/* 0B5F14 800B5314 2529FFFC */ addiu $t1, -4
.L800B5318:
/* 0B5F18 800B5318 00095080 */ sll $t2, $t1, 2
/* 0B5F1C 800B531C 01495023 */ subu $t2, $t2, $t1
/* 0B5F20 800B5320 000A50C0 */ sll $t2, $t2, 3
/* 0B5F24 800B5324 032A5821 */ addu $t3, $t9, $t2
/* 0B5F28 800B5328 016C1021 */ addu $v0, $t3, $t4
/* 0B5F2C 800B532C 2444000F */ addiu $a0, $v0, 0xf
/* 0B5F30 800B5330 AFA20020 */ sw $v0, 0x20($sp)
/* 0B5F34 800B5334 8FA60028 */ lw $a2, 0x28($sp)
/* 0B5F38 800B5338 0C02D373 */ jal populate_time_trial_record
/* 0B5F3C 800B533C AFA70024 */ sw $a3, 0x24($sp)
/* 0B5F40 800B5340 8FA20020 */ lw $v0, 0x20($sp)
/* 0B5F44 800B5344 240D0001 */ li $t5, 1
/* 0B5F48 800B5348 A04D0012 */ sb $t5, 0x12($v0)
/* 0B5F4C 800B534C 0C02D178 */ jal func_800B45E0
/* 0B5F50 800B5350 8FA40038 */ lw $a0, 0x38($sp)
/* 0B5F54 800B5354 10000001 */ b .L800B535C
/* 0B5F58 800B5358 8FA20024 */ lw $v0, 0x24($sp)
.L800B535C:
/* 0B5F5C 800B535C 8FBF0014 */ lw $ra, 0x14($sp)
/* 0B5F60 800B5360 27BD0048 */ addiu $sp, $sp, 0x48
/* 0B5F64 800B5364 03E00008 */ jr $ra
/* 0B5F68 800B5368 00000000 */ nop
-52
View File
@@ -1,52 +0,0 @@
glabel func_800B68F4
/* 0B74F4 800B68F4 3C028019 */ lui $v0, %hi(gSomeDLBuffer) # $v0, 0x8019
/* 0B74F8 800B68F8 8C42D9C0 */ lw $v0, %lo(gSomeDLBuffer)($v0)
/* 0B74FC 800B68FC 000471C0 */ sll $t6, $a0, 7
/* 0B7500 800B6900 24870001 */ addiu $a3, $a0, 1
/* 0B7504 800B6904 01C21821 */ addu $v1, $t6, $v0
/* 0B7508 800B6908 906F0000 */ lbu $t7, ($v1)
/* 0B750C 800B690C 90780001 */ lbu $t8, 1($v1)
/* 0B7510 800B6910 90690002 */ lbu $t1, 2($v1)
/* 0B7514 800B6914 01E70019 */ multu $t7, $a3
/* 0B7518 800B6918 24040043 */ li $a0, 67
/* 0B751C 800B691C 24060003 */ li $a2, 3
/* 0B7520 800B6920 00002812 */ mflo $a1
/* 0B7524 800B6924 00000000 */ nop
/* 0B7528 800B6928 00000000 */ nop
/* 0B752C 800B692C 03070019 */ multu $t8, $a3
/* 0B7530 800B6930 0000C812 */ mflo $t9
/* 0B7534 800B6934 00B92821 */ addu $a1, $a1, $t9
/* 0B7538 800B6938 24A50001 */ addiu $a1, $a1, 1
/* 0B753C 800B693C 01270019 */ multu $t1, $a3
/* 0B7540 800B6940 00005012 */ mflo $t2
/* 0B7544 800B6944 00AA2821 */ addu $a1, $a1, $t2
/* 0B7548 800B6948 24A50002 */ addiu $a1, $a1, 2
.L800B694C:
/* 0B754C 800B694C 00661021 */ addu $v0, $v1, $a2
/* 0B7550 800B6950 904B0000 */ lbu $t3, ($v0)
/* 0B7554 800B6954 904E0001 */ lbu $t6, 1($v0)
/* 0B7558 800B6958 90590002 */ lbu $t9, 2($v0)
/* 0B755C 800B695C 01670019 */ multu $t3, $a3
/* 0B7560 800B6960 904B0003 */ lbu $t3, 3($v0)
/* 0B7564 800B6964 00006012 */ mflo $t4
/* 0B7568 800B6968 01866821 */ addu $t5, $t4, $a2
/* 0B756C 800B696C 00AD2821 */ addu $a1, $a1, $t5
/* 0B7570 800B6970 01C70019 */ multu $t6, $a3
/* 0B7574 800B6974 00007812 */ mflo $t7
/* 0B7578 800B6978 01E6C021 */ addu $t8, $t7, $a2
/* 0B757C 800B697C 00B82821 */ addu $a1, $a1, $t8
/* 0B7580 800B6980 03270019 */ multu $t9, $a3
/* 0B7584 800B6984 24A50001 */ addiu $a1, $a1, 1
/* 0B7588 800B6988 00004812 */ mflo $t1
/* 0B758C 800B698C 01265021 */ addu $t2, $t1, $a2
/* 0B7590 800B6990 00AA2821 */ addu $a1, $a1, $t2
/* 0B7594 800B6994 01670019 */ multu $t3, $a3
/* 0B7598 800B6998 24A50002 */ addiu $a1, $a1, 2
/* 0B759C 800B699C 00006012 */ mflo $t4
/* 0B75A0 800B69A0 01866821 */ addu $t5, $t4, $a2
/* 0B75A4 800B69A4 00AD2821 */ addu $a1, $a1, $t5
/* 0B75A8 800B69A8 24C60004 */ addiu $a2, $a2, 4
/* 0B75AC 800B69AC 14C4FFE7 */ bne $a2, $a0, .L800B694C
/* 0B75B0 800B69B0 24A50003 */ addiu $a1, $a1, 3
/* 0B75B4 800B69B4 03E00008 */ jr $ra
/* 0B75B8 800B69B8 30A200FF */ andi $v0, $a1, 0xff
+5
View File
@@ -819,6 +819,11 @@ typedef short ENVMIX_STATE[40];
_a->words.w1 = _SHIFTL(i, 16, 16) | _SHIFTL(o, 0, 16); \
}
/*
* See aEnvMixer for more info.
*/
#define aEnvSetup1Alt(pkt,initialVolReverb,rampReverbL,rampReverbR,rampLeft,rampRight) { Acmd *_a = (Acmd *)pkt; _a->words.w0 = (_SHIFTL(A_ENVSETUP1, 24, 8) | _SHIFTL(initialVolReverb, 16, 8) | (_SHIFTL(rampReverbL, 8, 8)) | _SHIFTL(rampReverbR, 0, 8)); _a->words.w1 = _SHIFTL(rampLeft, 16, 16) | _SHIFTL(rampRight, 0, 16); }
/*
* See aEnvMixer for more info.
*/
+1
View File
@@ -22,6 +22,7 @@ compiler_type = "ido"
"_SHIFT[LR]" = "void"
"ALIGN.*" = "int"
"aClearBuffer" = "void"
"aEnvSetup1Alt" = "void"
"aEnvSetup1" = "void"
"aEnvSetup2" = "void"
"aEnvMixer" = "void"
+122 -119
View File
@@ -227,16 +227,16 @@ s8 func_800C15D0(u8 bank, u8 soundId, u8 channel) {
return var_a0;
}
// This is likely functionally equivallent.
#ifdef NON_MATCHING
// https://decomp.me/scratch/99CQl
s8 func_800C16E8(f32 arg0, f32 arg1, u8 cameraId) {
f32 var_f0;
f32 var_f14;
f32 new_var;
f32 *new_var2;
f32 var_f16;
f32 var_f18;
f32 var_f20;
f32 var_f2;
new_var2 = &var_f0;
if (D_800EA1C0 == 0) {
if (D_800EA0F4 != 0) {
@@ -245,9 +245,9 @@ s8 func_800C16E8(f32 arg0, f32 arg1, u8 cameraId) {
var_f16 = 10.0f;
var_f18 = 2.5f;
} else {
var_f2 = 100.0f;
var_f0 = 100.0f;
var_f2 = *new_var2;
var_f14 = 200.0f;
if (1) {}
var_f16 = 5.0f;
var_f18 = 3.3333333f;
}
@@ -256,16 +256,17 @@ s8 func_800C16E8(f32 arg0, f32 arg1, u8 cameraId) {
if (var_f2 < var_f20) {
var_f20 = var_f2;
}
var_f0 = (arg1 < 0.0f) ? -arg1 : arg1;
if (var_f2 < var_f0) {
new_var = arg0;
var_f0 = (arg1 < 0.0f) ? -arg1 : arg1;
if (var_f2 < (var_f0 = *new_var2)) {
var_f0 = var_f2;
}
if ((arg0 == 0.0f) && (arg1 == 0.0f)) {
if ((new_var == 0.0f) && (arg1 == 0.0f)) {
var_f2 = 0.5f;
} else if ((arg0 >= 0.0f) && (var_f0 <= var_f20)) {
} else if ((new_var >= 0.0f) && (var_f0 <= var_f20)) {
var_f2 = 1.0f - ((var_f14 - var_f20) / (var_f16 * (var_f14 - var_f0)));
} else if ((arg0 < 0.0f) && (var_f0 <= var_f20)) {
} else if ((new_var < 0.0f) && (var_f0 <= var_f20)) {
var_f2 = (var_f14 - var_f20) / (var_f16 * (var_f14 - var_f0));
} else {
var_f2 = (arg0 / (var_f18 * var_f0)) + 0.5f;
@@ -280,9 +281,6 @@ s8 func_800C16E8(f32 arg0, f32 arg1, u8 cameraId) {
}
return (cameraId & 1) * 0x7F;
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C16E8.s")
#endif
f32 func_800C1934(u8 bank, u8 soundId) {
f32 phi_f2;
@@ -341,8 +339,8 @@ void func_800C19D0(u8 arg0, u8 arg1, u8 arg2) {
struct Unk_8018EFD8* func_800C1C88(u8 arg0, Vec3f position, f32* velocity, f32* arg3, u8 arg4, u32 soundBits) {
struct Unk_8018EFD8* temp_a1;
struct Unk_8018EFD8* temp_v1;
u8 temp_t7;
UNUSED struct Unk_8018EFD8* temp_v1;
UNUSED u8 temp_t7;
u8 why1;
if (D_8018EFD8[D_8018FB90].next != 0xFF) {
@@ -1104,6 +1102,7 @@ void func_800C3724(void) {
D_801930D0[seqPlayerIndex].unk_040--;
continue;
}
if (gSequencePlayers[seqPlayerIndex].enabled != 0) {
continue;
}
@@ -1294,7 +1293,7 @@ void func_800C4398(void) {
u8 soundIndex;
u8 var_a3;
struct Sound* var_a2;
s32 pad;
UNUSED s32 pad;
u8 var_t2;
u32 var_t3;
@@ -1350,7 +1349,7 @@ void func_800C4398(void) {
}
if ((sSoundBanks[bank][sSoundBankFreeListFront[bank]].next != 0xFF) && (soundIndex != 0)) {
var_t2 = soundIndex = sSoundBankFreeListFront[bank];
sSoundBanks[bank][soundIndex].unk00 = &(*var_a2->position)[0];
sSoundBanks[bank][soundIndex].unk00 = (Vec3f*)&(*var_a2->position)[0];
sSoundBanks[bank][soundIndex].unk04 = &(*var_a2->position)[1];
sSoundBanks[bank][soundIndex].unk08 = &(*var_a2->position)[2];
sSoundBanks[bank][soundIndex].cameraId = var_a2->cameraId;
@@ -1395,159 +1394,163 @@ void delete_sound_from_bank(u8 bankId, u8 soundId) {
temp->soundStatus = 0;
}
// Guessing this is `select_current_sounds`?
#ifdef NON_MATCHING
// https://decomp.me/scratch/cqBii
struct why {
struct ActiveSfx {
u32 priority;
u8 soundIndex;
};
#define AUDIO_MK_CMD(b0,b1,b2,b3) ((((b0) & 0xFF) << 0x18) | (((b1) & 0xFF) << 0x10) | (((b2) & 0xFF) << 0x8) | (((b3) & 0xFF) << 0))
void func_800C4888(u8 bankId) {
u8 i;
u8 j;
u8 numChannels;
u8 chosenEntryIndex;
u8 i;
u8 k;
u8 latestSoundIndex;
u8 var_s2;
u8 var_v1;
u8 numChosenSfx;
u8 needNewSfx;
u8 soundIndex;
u8 var_t1;
u8 someTemp;
u8 requestedPriority;
u8 temp_t8;
f32 var_f0;
s32 requestedPriority;
struct why sp7C[8];
s32 temp_t8;
struct SoundCharacteristics* temp_t2;
struct ActiveSfx* activeSfx;
struct ActiveSfx chosenSfx[8];
struct SoundCharacteristics* entry;
var_s2 = 0;
numChosenSfx = 0;
for (i = 0; i < 8; i++) {
sp7C[i].priority = 0x7FFFFFFF;
sp7C[i].soundIndex = 0xFF;
chosenSfx[i].priority = 0x7FFFFFFF;
chosenSfx[i].soundIndex = 0xFF;
}
latestSoundIndex = 0;
soundIndex = sSoundBanks[bankId][0].next;
k = 0;
while (soundIndex != 0xFF) {
temp_t2 = &sSoundBanks[bankId][soundIndex];
if ((temp_t2->soundStatus == 1) && ((temp_t2->soundBits & 0x08000000) == 0x08000000)) {
temp_t2->freshness -= 1;
if ((sSoundBanks[bankId][soundIndex].soundStatus == 1) && ((sSoundBanks[bankId][soundIndex].soundBits & 0x08000000) == 0x08000000)) {
sSoundBanks[bankId][soundIndex].freshness -= 1;
}
if (temp_t2->freshness == 0) {
if (sSoundBanks[bankId][soundIndex].freshness == 0) {
delete_sound_from_bank(bankId, soundIndex);
} else if (temp_t2->soundStatus != 0) {
if (D_800EA1C8 == *temp_t2->unk00) {
temp_t2->distance = 0.0f;
} else if (sSoundBanks[bankId][soundIndex].soundStatus != 0) {
entry = &sSoundBanks[bankId][soundIndex];
if (&D_800EA1C8 == entry[0].unk00) {
entry->distance = 0.0f;
} else {
temp_t2->distance = ((*temp_t2->unk00)[0] * (*temp_t2->unk00)[0]) + (*temp_t2->unk08 * *temp_t2->unk08);
entry->distance =
(*entry->unk00[0] * *entry->unk00[0]) + (*entry->unk08 * *entry->unk08);
}
requestedPriority = ((u32) (temp_t2->soundBits & 0xFF00) >> 8) & 0xFF;
if (temp_t2->soundBits & 0x100000) {
temp_t2->priority =
(0xFF - requestedPriority) * (0xFF - requestedPriority) * 0x5A4; // 0x5a4 = 1444 = 38 * 38
requestedPriority = (((u32) (entry->soundBits & 0xFF00)) >> 8);
if (entry->soundBits & 0x100000) {
entry->priority = ((0xFF - requestedPriority) * (0xFF - requestedPriority)) * (38 * 38);
} else {
temp_t2->priority = (u32) temp_t2->distance + ((0xFF - requestedPriority) * (0xFF - requestedPriority) *
0x5A4); // 0x5a4 = 1444 = 38 * 38
if (*temp_t2->unk08 > 0.0f) {
temp_t2->priority += (s32) (*temp_t2->unk08 * 6.0f);
entry->priority =
((u32) entry->distance) + (((0xFF - requestedPriority) * (0xFF - requestedPriority)) * (38 * 38));
if ((*entry->unk08) > 0.0f) {
entry->priority += (s32) ((*entry->unk08) * 6.0f);
}
}
temp_t8 = ((u32) (temp_t2->soundBits & 0x30000) >> 0x10) & 0xFF;
if (temp_t8 != 0) {
var_f0 = 4000000.0f / (f32) (temp_t8 * temp_t8);
temp_t8 = (((u32) (entry->soundBits & 0x30000)) >> 0x10);
if (temp_t8) {
var_f0 = (2000.0f * 2000.0f) / ((f32) (temp_t8 * temp_t8));
} else {
var_f0 = 1e10f;
var_f0 = 1e5f * 1e5f;
}
if (var_f0 < temp_t2->distance) {
if (temp_t2->soundStatus == 4) {
func_800CBBE8((temp_t2->unk2C << 8) | 0x06020000, 0);
if (temp_t2->soundBits & 0x08000000) {
if (var_f0 < entry->distance) {
if (entry->soundStatus == 4) {
func_800CBBE8(AUDIO_MK_CMD(0x06, 2, entry->unk2C, 0), 0);
if (entry->soundBits & 0x08000000) {
delete_sound_from_bank(bankId, soundIndex);
soundIndex = latestSoundIndex;
soundIndex = k;
}
}
} else {
var_t1 = D_800EA188[D_800EA1C0][bankId];
for (i = 0; i < var_t1; i++) {
if (sp7C[i].priority >= temp_t2->priority) {
if (var_s2 < var_t1) {
var_s2++;
numChannels = D_800EA188[D_800EA1C0][bankId];
for (i = 0; i < numChannels; i++) {
if (chosenSfx[i].priority >= entry->priority) {
if (numChosenSfx < D_800EA188[D_800EA1C0][bankId]) {
numChosenSfx++;
}
for (j = var_t1 - 1; j > i; j--) {
sp7C[j].priority = sp7C[j - 1].priority;
sp7C[j].soundIndex = sp7C[j - 1].soundIndex;
for (j = numChannels - 1; j > i; j--) {
chosenSfx[j].priority = chosenSfx[j - 1].priority;
chosenSfx[j].soundIndex = chosenSfx[j - 1].soundIndex;
}
sp7C[i].priority = temp_t2->priority;
sp7C[i].soundIndex = soundIndex;
i = var_t1;
chosenSfx[i].priority = entry->priority;
chosenSfx[i].soundIndex = soundIndex;
i = numChannels;
}
}
}
latestSoundIndex = soundIndex;
k = soundIndex;
}
soundIndex = sSoundBanks[bankId][latestSoundIndex].next;
soundIndex = sSoundBanks[bankId][k].next;
}
var_t1 = D_800EA188[D_800EA1C0][bankId];
for (i = 0; i < var_s2; i++) {
someTemp = sSoundBanks[bankId][sp7C[i].soundIndex].soundStatus;
if (someTemp == 1) {
sSoundBanks[bankId][sp7C[i].soundIndex].soundStatus = 2;
} else if (someTemp == 4) {
sSoundBanks[bankId][sp7C[i].soundIndex].soundStatus = 3;
numChannels = D_800EA188[D_800EA1C0][bankId];
for (i = 0; i < numChosenSfx; i++) {
if (sSoundBanks[bankId][chosenSfx[i].soundIndex].soundStatus == 1) {
sSoundBanks[bankId][chosenSfx[i].soundIndex].soundStatus = 2;
} else if (sSoundBanks[bankId][chosenSfx[i].soundIndex].soundStatus == 4) {
sSoundBanks[bankId][chosenSfx[i].soundIndex].soundStatus = 3;
}
}
for (i = 0; i < var_t1; i++) {
var_v1 = 0;
soundIndex = D_80192AB8[bankId][i][4];
if (soundIndex == 0xFF) {
var_v1 = 1;
for (i = 0; i < numChannels; i++) {
needNewSfx = false;
activeSfx = (struct ActiveSfx*)&D_80192AB8[bankId][i];
if (activeSfx->soundIndex == 0xFF) {
needNewSfx = true;
} else {
temp_t2 = &sSoundBanks[bankId][soundIndex];
if (temp_t2->soundStatus == 4) {
if (temp_t2->soundBits & 0x08000000) {
delete_sound_from_bank(bankId, soundIndex);
var_v1 = 1;
entry = &sSoundBanks[bankId][activeSfx->soundIndex];
if (entry->soundStatus == 4) {
if (entry->soundBits & 0x08000000) {
delete_sound_from_bank(bankId, activeSfx->soundIndex);
} else {
temp_t2->soundStatus = 1;
var_v1 = 1;
entry->soundStatus = 1;
}
} else if (temp_t2->soundStatus == 0) {
D_80192AB8[bankId][i][4] = 0xFF;
var_v1 = 1;
needNewSfx = true;
} else if (entry->soundStatus == 0) {
activeSfx->soundIndex = 0xFF;
needNewSfx = true;
} else {
for (j = 0; j < var_t1; j++) {
if (soundIndex == sp7C[j].soundIndex) {
sp7C[j].soundIndex = 0xFF;
j = var_t1;
for (j = 0; j < numChannels; j++) {
if (activeSfx->soundIndex == chosenSfx[j].soundIndex) {
chosenSfx[j].soundIndex = 0xFF;
j = numChannels;
}
}
numChosenSfx--;
}
}
var_s2--;
if (var_v1 == 1) {
for (j = 0; j < var_t1; j++) {
soundIndex = sp7C[j].soundIndex;
if ((soundIndex != 0xFF) && (sSoundBanks[bankId][soundIndex].soundStatus != 3)) {
for (k = 0; k < var_t1; k++) {
if (soundIndex == D_80192AB8[bankId][k][4]) {
var_v1 = 0;
k = var_t1;
if (needNewSfx == true) {
for (j = 0; j < numChannels; j++) {
chosenEntryIndex = chosenSfx[j].soundIndex;
if ((chosenEntryIndex != 0xFF) && (sSoundBanks[bankId][chosenEntryIndex].soundStatus != 3)) {
for (k = 0; k < numChannels; k++) {
if (chosenEntryIndex == ((struct ActiveSfx*)(D_80192AB8[bankId]))[k].soundIndex) {
needNewSfx = false;
k = numChannels;
}
}
if (var_v1 == 1) {
D_80192AB8[bankId][i][4] = soundIndex;
sp7C[j].soundIndex = 0xFF;
j = var_t1 + 1;
var_s2--;
if (needNewSfx == true) {
activeSfx->soundIndex = chosenEntryIndex;
chosenSfx[j].soundIndex = 0xFF;
j = numChannels + 1;
numChosenSfx--;
}
}
}
if (j == var_t1) {
D_80192AB8[bankId][i][4] = 0xFF;
if (j == numChannels) {
activeSfx->soundIndex = 0xFF;
}
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/audio/external/func_800C4888.s")
#endif
void func_800C4FE4(u8 bankId) {
u8 soundId;
@@ -3444,7 +3447,7 @@ void func_800CAC08() {
}
}
void func_800CAC60(UNUSED s32 arg0) {
void func_800CAC60(UNUSED u8 arg0) {
if ((D_800EA108 == 0) && (D_800EA0F0 == 0)) {
play_sound(SOUND_ACTION_EXPLOSION_2, &D_800EA1C8, 0U, &D_800EA1D4, &D_800EA1D4, &D_800EA1DC);
if ((D_800EA10C[0] != 1) && (D_800EA10C[1] != 1)) {
+1 -1
View File
@@ -311,7 +311,7 @@ void func_800CA984(u8);
void func_800CAACC(u8);
void func_800CAB4C(u8);
void func_800CAC08(void);
void func_800CAC60(s32);
void func_800CAC60(u8);
void func_800CAD40(s32);
void func_800CAEC4(u8, f32);
void func_800CAFC0(u8);
+114 -124
View File
@@ -327,54 +327,51 @@ Acmd* synthesis_do_one_audio_update(s16* aiBuf, s32 bufLen, Acmd* acmd, s32 upda
return acmd;
}
#ifdef NON_MATCHING
// generated by m2c commit beb457dabfc7a01ec6540a5404a6a05097a13602 on Nov-01-2023
Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct NoteSynthesisState* synthesisState,
UNUSED s16* aiBuf, s32 inBuf, Acmd* cmd, s32 updateIndex) {
UNUSED s32 pad[4];
struct AudioBankSample* audioBookSample;
s16* curLoadedBook;
struct AdpcmLoop* loopInfo;
s32 noteFinished;
s32 restart;
s32 flags;
u16 resamplingRateFixedPoint;
s32 pad[3];
struct AudioBankSample *audioBookSample; // sp130
struct AdpcmLoop *loopInfo; // sp12C
s16 *curLoadedBook; // sp128
s32 pad4;
s32 nSamplesToLoad;
s32 spFC;
UNUSED s32 pad2[2];
s32 noteFinished; // sp11C
s32 restart; // sp118
s32 flags;
u16 resamplingRateFixedPoint; // sp112
s32 pad2[1];
u16 headsetPanRight;
s32 loopInfo_2;
u8* sampleAddr;
s32 a1;
s32 samplesLenAdjusted;
s32 spFC; // spFC
s32 pad3;
s32 nAdpcmSamplesProcessed;
s32 endPos;
s32 nSamplesToProcess;
UNUSED s32 pad3;
s32 s3;
s32 leftRight;
s32 s4;
u8 *sampleAddr; // spEC
s32 s3;
s32 samplesLenAdjusted; // spE4
s32 leftRight;
s32 endPos; // spDC
s32 nSamplesToProcess; // spD8
u32 samplesLenFixedPoint;
s32 var_s6;
s32 nSamplesInThisIteration;
u32 var_t2;
u8* var_a0_2;
u8 *var_a0_2;
s32 s5Aligned;
s32 temp_t6;
s32 nParts;
s32 curPart;
s32 aligned;
UNUSED s32 pad4;
s32 resampledTempLen; /* compiler-managed */
struct AudioBankSample *bankSample;
s32 nParts; // spB0
s32 curPart; // spAC
s32 pad5;
s16 addr;
s32 resampledTempLen; // spA0
u16 noteSamplesDmemAddrBeforeResampling;
UNUSED s32 pad6[1];
struct Note* note;
u16 addr;
s32 samplesRemaining;
s32 s1;
u32 nEntries;
struct Note *note;
curLoadedBook = NULL;
note = &gNotes[noteIndex];
@@ -392,9 +389,9 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
resamplingRateFixedPoint = noteSubEu->resamplingRateFixedPoint;
nParts = noteSubEu->hasTwoAdpcmParts + 1;
samplesLenFixedPoint = (resamplingRateFixedPoint * inBuf * 2) + synthesisState->samplePosFrac;
nSamplesToLoad = (samplesLenFixedPoint >> 0x10);
synthesisState->samplePosFrac = samplesLenFixedPoint & 0xFFFF; // m2c didn't have & 0xFFFF
samplesLenFixedPoint = ((resamplingRateFixedPoint * inBuf) * 2) + synthesisState->samplePosFrac;
nSamplesToLoad = samplesLenFixedPoint >> 0x10;
synthesisState->samplePosFrac = samplesLenFixedPoint & 0xFFFF;
if (noteSubEu->isSyntheticWave) {
cmd = load_wave_samples(cmd, noteSubEu, synthesisState, nSamplesToLoad);
@@ -405,36 +402,30 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
audioBookSample = noteSubEu->sound.audioBankSound->sample;
loopInfo = audioBookSample->loop;
endPos = loopInfo->end;
sampleAddr = audioBookSample->sampleAddr; // book?
sampleAddr = audioBookSample->sampleAddr;
resampledTempLen = 0;
for (curPart = 0; curPart < nParts; curPart++) {
bankSample = audioBookSample;
nAdpcmSamplesProcessed = 0;
s4 = 0;
if (nParts == 1) {
samplesLenAdjusted = nSamplesToLoad;
} else if (nSamplesToLoad & 1) {
samplesLenAdjusted = (nSamplesToLoad & ~1) + (curPart * 2);
samplesLenAdjusted = (nSamplesToLoad & (~1)) + (curPart * 2);
} else {
samplesLenAdjusted = nSamplesToLoad;
}
// sm64 also has if (audioBookSample->codec == CODEC_A) {
if (curLoadedBook != (*audioBookSample->book).book) {
u32 nEntries;
curLoadedBook = audioBookSample->book->book; // or just one book?
nEntries = 16 * audioBookSample->book->order * audioBookSample->book->npredictors;
aLoadADPCM(cmd++, nEntries, VIRTUAL_TO_PHYSICAL2(noteSubEu->bookOffset + curLoadedBook));
// noteSubEu here unsure but seems better?
if (curLoadedBook != (*bankSample->book).book) {
curLoadedBook = bankSample->book->book;
nEntries = (16 * bankSample->book->order) * bankSample->book->npredictors;
aLoadADPCM(cmd++, nEntries, VIRTUAL_TO_PHYSICAL2(noteSubEu->bookOffset+curLoadedBook));
}
if (noteSubEu->bookOffset != 0) {
curLoadedBook = &gUnknownData_800F6290[0];
}
while (nAdpcmSamplesProcessed != samplesLenAdjusted) {
s32 samplesRemaining;
s32 s1;
noteFinished = false;
restart = false;
@@ -465,23 +456,20 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
noteFinished = 1;
}
}
// var_t2 = 0; // unsure
if (loopInfo_2 != 0) {
temp_t6 = ((synthesisState->samplePosInt - s3) + 16) / 16; // diff from sm64 sh
if (audioBookSample->loaded == 0x81) { // sm64 has audioBookSample->medium
if (bankSample->loaded == 0x81) {
var_a0_2 = (temp_t6 * 9) + sampleAddr;
} else {
var_a0_2 =
dma_sample_data((uintptr_t) (temp_t6 * 9) + sampleAddr, ALIGN(((loopInfo_2 * 9) + 16), 4),
flags, &synthesisState->sampleDmaIndex);
// unsure flags?
}
var_t2 = ((uintptr_t) var_a0_2 & 0xF);
var_t2 = ((uintptr_t) var_a0_2) & 0xF;
aligned = ALIGN(((loopInfo_2 * 9) + 16), 4);
addr = (0x540 - aligned) & 0xFFFF; // DMEM_ADDR_COMPRESSED_ADPCM_DATA
addr = (0x540 - aligned); // DMEM_ADDR_COMPRESSED_ADPCM_DATA
aLoadBuffer(cmd++, VIRTUAL_TO_PHYSICAL2(var_a0_2 - var_t2), addr, aligned);
} else {
s1 = 0; // ?
@@ -489,7 +477,7 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
}
if (synthesisState->restart != false) {
aSetLoop(cmd++, VIRTUAL_TO_PHYSICAL2(audioBookSample->loop->state));
aSetLoop(cmd++, VIRTUAL_TO_PHYSICAL2(bankSample->loop->state));
flags = A_LOOP;
synthesisState->restart = false;
@@ -499,21 +487,15 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
if (nAdpcmSamplesProcessed == 0) {
aligned = ALIGN(((loopInfo_2 * 9) + 16), 4);
addr = (0x540 - aligned) & 0xFFFF;
aSetBuffer(cmd++, 0, addr + var_t2, 0x1A0,
s1 * 2); // unsure
// s1 or s3 here?
addr = (0x540 - aligned);
aSetBuffer(cmd++, 0, addr + var_t2, 0x1A0, s1 * 2);
aADPCMdec(cmd++, flags, VIRTUAL_TO_PHYSICAL2(synthesisState->synthesisBuffers->adpcmdecState));
spFC = s3 * 2;
} else {
aligned = ALIGN(((loopInfo_2 * 9) + 16), 4);
addr = (0x540 - aligned) & 0xFFFF;
aSetBuffer(cmd++, 0, addr + var_t2, 0x1A0 + s5Aligned, s1 * 2); // unsure
addr = (0x540 - aligned);
aSetBuffer(cmd++, 0, addr + var_t2, 0x1A0 + s5Aligned, s1 * 2);
aADPCMdec(cmd++, flags, VIRTUAL_TO_PHYSICAL2(synthesisState->synthesisBuffers->adpcmdecState));
aDMEMMove(cmd++, 0x1A0 + s5Aligned + (s3 * 2), 0x1A0 + s4, nSamplesInThisIteration * 2);
}
@@ -524,31 +506,32 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
s4 = (s1 * 2) + 0x20;
break;
case 2:
s4 += nSamplesInThisIteration * 2;
s4 = (nSamplesInThisIteration * 2) + s4;
break;
default:
if (s4 != 0) {
s4 += nSamplesInThisIteration * 2;
s4 = (nSamplesInThisIteration * 2) + s4;
} else {
s4 = (s3 + nSamplesInThisIteration) * 2;
}
break;
}
flags = 0;
flags = 0;
if (noteFinished) {
aClearBuffer(cmd++, 0x1A0 + s4, (samplesLenAdjusted - nAdpcmSamplesProcessed) * 2);
noteSubEu->finished = 1; // sm64 says = 1
noteSubEu->finished = 1;
note->noteSubEu.finished = 1;
note->noteSubEu.enabled = 0;
func_800B6FB4(updateIndex, noteIndex);
break;
}
if (restart) {
synthesisState->restart = true;
synthesisState->samplePosInt = loopInfo->start;
} else {
if (restart) {
synthesisState->restart = true;
synthesisState->samplePosInt = loopInfo->start;
} else {
synthesisState->samplePosInt += nSamplesToProcess;
}
synthesisState->samplePosInt += nSamplesToProcess;
}
}
@@ -572,7 +555,6 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
resampledTempLen + DMEM_ADDR_RESAMPLED);
break;
}
break;
}
if (noteSubEu->finished != false) {
break;
@@ -585,27 +567,21 @@ Acmd* synthesis_process_note(s32 noteIndex, struct NoteSubEu* noteSubEu, struct
noteSubEu->needsInit = false;
}
cmd = final_resample(cmd, synthesisState, inBuf * 2, resamplingRateFixedPoint, noteSamplesDmemAddrBeforeResampling,
flags);
if ((noteSubEu->headsetPanRight) || (synthesisState->prevHeadsetPanRight)) {
leftRight = 1; // According to m2c this is a new var. Perhaps flags?
} else if ((noteSubEu->headsetPanLeft) || (synthesisState->prevHeadsetPanLeft)) {
cmd = final_resample(cmd, synthesisState, inBuf * 2, resamplingRateFixedPoint, noteSamplesDmemAddrBeforeResampling, flags);
headsetPanRight = noteSubEu->headsetPanRight;
if ((headsetPanRight & 0xFFFF) || synthesisState->prevHeadsetPanRight) {
leftRight = 1;
} else if (noteSubEu->headsetPanLeft || synthesisState->prevHeadsetPanLeft) {
leftRight = 2;
} else {
leftRight = 0;
}
cmd = func_800B86A0(cmd, noteSubEu, synthesisState, inBuf, 0, leftRight, flags);
if (noteSubEu->usesHeadsetPanEffects) {
// synthesisState->restart = 1;
cmd = note_apply_headset_pan_effects(cmd, noteSubEu, synthesisState, inBuf * 2, flags, leftRight);
}
return cmd;
}
#else
GLOBAL_ASM("asm/non_matchings/audio/synthesis/synthesis_process_note.s")
#endif
Acmd* load_wave_samples(Acmd* acmd, struct NoteSubEu* noteSubEu, struct NoteSynthesisState* synthesisState,
s32 nSamplesToLoad) {
@@ -631,67 +607,81 @@ Acmd* final_resample(Acmd* acmd, struct NoteSynthesisState* synthesisState, s32
return acmd;
}
#ifdef NON_MATCHING
// I wish I knew what was up with this function
// It doesn't quite match either the EU or Shindou versions
// of process_envelope.
// What's here appears to have the right "shape" based on
// the M2C output, but beyond that I can't really tell what's
// going on
Acmd* func_800B86A0(Acmd* cmd, struct NoteSubEu* note, struct NoteSynthesisState* synthesisState, s32 nSamples,
u16 inBuf, s32 headsetPanSettings, UNUSED u32 flags) {
UNUSED s32 pad[2];
u16 sourceRight;
u16 sourceLeft;
u16 targetLeft;
u16 targetRight;
s32 rampLeft;
s32 rampRight;
UNUSED s32 sourceReverbVol;
UNUSED s16 rampReverb;
UNUSED s32 reverbVolDiff = 0;
s16 rampLeft;
s16 rampRight;
sourceLeft = synthesisState->curVolLeft;
sourceRight = synthesisState->curVolRight;
targetLeft = note->targetVolLeft;
targetRight = note->targetVolRight;
targetLeft <<= 4;
targetRight <<= 4;
targetLeft = (note->targetVolLeft) << 4;
targetRight = (note->targetVolRight) << 4;
rampLeft = (targetLeft - sourceLeft) / (nSamples >> 3);
rampRight = (targetRight - sourceRight) / (nSamples >> 3);
synthesisState->curVolLeft = sourceLeft + rampLeft * (nSamples >> 3);
synthesisState->curVolRight = sourceRight + rampRight * (nSamples >> 3);
rampLeft = ((targetLeft - sourceLeft) / (nSamples >> 3));
rampRight = ((targetRight - sourceRight) / (nSamples >> 3));
targetLeft = sourceLeft + rampLeft * (nSamples >> 3);
targetRight = sourceRight + rampRight * (nSamples >> 3);
synthesisState->curVolLeft = targetLeft;
synthesisState->curVolRight = targetRight;
if (note->usesHeadsetPanEffects) {
aClearBuffer(cmd++, DMEM_ADDR_NOTE_PAN_TEMP, DEFAULT_LEN_1CH);
aEnvSetup1(cmd++, note->reverbVol, (((sourceLeft & 0xFF) << 8) | (sourceRight & 0xFF)), rampRight, rampLeft);
aEnvSetup1Alt(cmd++, note->reverbVol, sourceLeft, sourceRight, (u32)rampLeft, (u32)rampRight);
aEnvSetup2(cmd++, sourceLeft, sourceRight);
switch (headsetPanSettings) {
switch (headsetPanSettings) {;
case 1:
aEnvMixer(cmd++, inBuf, nSamples, 0, note->stereoStrongRight, note->stereoStrongLeft,
DMEM_ADDR_NOTE_PAN_TEMP, DMEM_ADDR_RIGHT_CH, DMEM_ADDR_WET_LEFT_CH, DMEM_ADDR_WET_RIGHT_CH);
aEnvMixer(cmd++,
inBuf, nSamples,
0,
note->stereoStrongRight, note->stereoStrongLeft,
DMEM_ADDR_NOTE_PAN_TEMP,
DMEM_ADDR_RIGHT_CH,
DMEM_ADDR_WET_LEFT_CH,
DMEM_ADDR_WET_RIGHT_CH);
break;
case 2:
aEnvMixer(cmd++, inBuf, nSamples, 0, note->stereoStrongRight, note->stereoStrongLeft, DMEM_ADDR_LEFT_CH,
DMEM_ADDR_NOTE_PAN_TEMP, DMEM_ADDR_WET_LEFT_CH, DMEM_ADDR_WET_RIGHT_CH);
aEnvMixer(cmd++,
inBuf, nSamples,
0,
note->stereoStrongRight, note->stereoStrongLeft,
DMEM_ADDR_LEFT_CH,
DMEM_ADDR_NOTE_PAN_TEMP,
DMEM_ADDR_WET_LEFT_CH,
DMEM_ADDR_WET_RIGHT_CH);
break;
default:
aEnvMixer(cmd++, inBuf, nSamples, 0, note->stereoStrongRight, note->stereoStrongLeft, DMEM_ADDR_LEFT_CH,
DMEM_ADDR_RIGHT_CH, DMEM_ADDR_WET_LEFT_CH, DMEM_ADDR_WET_RIGHT_CH);
aEnvMixer(cmd++,
inBuf, nSamples,
0,
note->stereoStrongRight, note->stereoStrongLeft,
DMEM_ADDR_LEFT_CH,
DMEM_ADDR_RIGHT_CH,
DMEM_ADDR_WET_LEFT_CH,
DMEM_ADDR_WET_RIGHT_CH);
break;
}
} else {
aEnvSetup1(cmd++, note->reverbVol, (((sourceLeft & 0xFF) << 8) | (sourceRight & 0xFF)), rampLeft, rampRight);
aEnvSetup1Alt(cmd++, note->reverbVol, sourceLeft, sourceRight, (u32)rampLeft, (u32)rampRight);
aEnvSetup2(cmd++, sourceLeft, sourceRight);
aEnvMixer(cmd++, inBuf, nSamples, 0, note->stereoStrongRight, note->stereoStrongLeft, DMEM_ADDR_LEFT_CH,
DMEM_ADDR_RIGHT_CH, DMEM_ADDR_WET_LEFT_CH, DMEM_ADDR_WET_RIGHT_CH);
aEnvMixer(cmd++,
inBuf, nSamples,
0,
note->stereoStrongRight, note->stereoStrongLeft,
DMEM_ADDR_LEFT_CH,
DMEM_ADDR_RIGHT_CH,
DMEM_ADDR_WET_LEFT_CH,
DMEM_ADDR_WET_RIGHT_CH);
}
return cmd;
}
#else
GLOBAL_ASM("asm/non_matchings/audio/synthesis/func_800B86A0.s")
#endif
Acmd* note_apply_headset_pan_effects(Acmd* acmd, struct NoteSubEu* noteSubEu, struct NoteSynthesisState* note,
s32 bufLen, s32 flags, s32 leftRight) {
+14 -47
View File
@@ -3368,11 +3368,6 @@ void func_8005ED48(Player* player, s16 arg1, s32 arg2, UNUSED s8 arg3, UNUSED s8
}
}
#ifdef NON_MATCHING
// Its close, there's some register allocation issue though
// Permuter hasn't found anything
// https://decomp.me/scratch/WjMqd
void func_8005F90C(Player* player, s16 arg1, s32 arg2, UNUSED s8 arg3, UNUSED s8 arg4) {
s32 var_t1;
u8 surfaceType;
@@ -3386,12 +3381,12 @@ void func_8005F90C(Player* player, s16 arg1, s32 arg2, UNUSED s8 arg3, UNUSED s8
var_f2 = player->pos[1] - player->boundingBoxSize;
var_f12 = player->pos[2];
var_t1 = 1;
surfaceType = player->tyres[BACK_LEFT].surfaceType;
surfaceType = player->tyres[BACK_LEFT].surfaceType & 0xFF;
} else {
var_f0 = player->pos[0];
var_f2 = player->pos[1] - player->boundingBoxSize;
var_f12 = player->pos[2];
surfaceType = player->tyres[BACK_RIGHT].surfaceType;
surfaceType = player->tyres[BACK_RIGHT].surfaceType & 0xFF;
}
switch (surfaceType) {
case DIRT:
@@ -3552,9 +3547,6 @@ void func_8005F90C(Player* player, s16 arg1, s32 arg2, UNUSED s8 arg3, UNUSED s8
break;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_8005F90C.s")
#endif
void func_80060504(Player* player, s16 arg1, s32 arg2, UNUSED s8 arg3, UNUSED s8 arg4) {
UNUSED s32 thing1;
@@ -5067,9 +5059,6 @@ void func_800658A0(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
}
}
#ifdef NON_MATCHING
// Something about the handling of the prim/env colors is off,
// its causing a huge diff. Can't figure out what's up.
void func_80065AB0(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
Vec3f spB4;
Vec3s spAC;
@@ -5122,13 +5111,7 @@ void func_80065AB0(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
gMatrixEffectCount += 1;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80065AB0.s")
#endif
#ifdef NON_MATCHING
// https://decomp.me/scratch/KEz08
// Something is very wrong with the handling of prim/evn colors, but I can't figuer out what.
void func_80065F0C(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
Vec3f spDC;
Vec3s spD4;
@@ -5136,10 +5119,9 @@ void func_80065F0C(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
s16 primGreen;
s16 primBlue;
s16 primAlpha;
u8 envRed;
s16 envRed;
s16 envGreen;
s16 envBlue;
if ((player->unk_258[10 + arg2].unk_01C == 1) && (player->unk_258[10 + arg2].unk_01E != 0)) {
spDC[0] = player->unk_258[10 + arg2].unk_000[0];
spDC[1] = player->unk_258[10 + arg2].unk_000[1];
@@ -5147,33 +5129,23 @@ void func_80065F0C(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
spD4[0] = 0;
spD4[1] = player->unk_048[arg3];
spD4[2] = 0;
func_800652D4(spDC, spD4, player->unk_258[10 + arg2].unk_00C * player->size);
if ((s32) player->unk_258[10 + arg2].unk_014 != 8) {
primRed =
((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x10) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
primGreen =
((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x08) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
primBlue =
((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x00) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
envRed =
((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x10) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
envGreen =
((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x08) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
envBlue =
((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x00) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
func_800652D4(&spDC[0], &spD4[0], player->unk_258[10 + arg2].unk_00C * player->size);
if (((s32) player->unk_258[10 + arg2].unk_014) != 8) {
primRed = ((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x10) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
primGreen = ((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x08) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
primBlue = ((D_800E47DC[player->unk_258[10 + arg2].unk_038] >> 0x00) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
envRed = ((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x10) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
envGreen = ((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x08) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
envBlue = ((D_800E480C[player->unk_258[10 + arg2].unk_038] >> 0x00) & 0xFF) - player->unk_258[10 + arg2].unk_03A;
primAlpha = player->unk_258[10 + arg2].unk_03E;
if (player->unk_258[10 + arg2].unk_040 == 0) {
gSPDisplayList(gDisplayListHead++, D_0D008DB8);
gDPLoadTextureBlock(gDisplayListHead++, D_8018D494, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(gDisplayListHead++, D_8018D494, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
func_8004B72C(primRed, primGreen, primBlue, envRed, envGreen, envBlue, primAlpha);
gSPDisplayList(gDisplayListHead++, D_0D008E48);
} else {
gSPDisplayList(gDisplayListHead++, D_0D008DB8);
gDPLoadTextureBlock(gDisplayListHead++, D_8018D494, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0,
G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(gDisplayListHead++, D_8018D494, G_IM_FMT_I, G_IM_SIZ_8b, 32, 32, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
func_8004B72C(primRed, primGreen, primBlue, envRed, envGreen, envBlue, primAlpha);
gDPSetAlphaCompare(gDisplayListHead++, G_AC_DITHER);
gSPDisplayList(gDisplayListHead++, D_0D008E48);
@@ -5184,9 +5156,7 @@ void func_80065F0C(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
primBlue = player->unk_258[10 + arg2].unk_03C;
gSPDisplayList(gDisplayListHead++, D_0D008C90);
gDPSetTextureLUT(gDisplayListHead++, G_TT_NONE);
gDPLoadTextureBlock(gDisplayListHead++, D_8018D498, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0,
G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK,
G_TX_NOLOD, G_TX_NOLOD);
gDPLoadTextureBlock(gDisplayListHead++, D_8018D498, G_IM_FMT_RGBA, G_IM_SIZ_16b, 32, 64, 0, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMIRROR | G_TX_CLAMP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
func_8004B35C(primRed, primGreen, primBlue, 0x000000FF);
gDPSetRenderMode(gDisplayListHead++, G_RM_AA_ZB_TEX_EDGE, G_RM_AA_ZB_TEX_EDGE2);
gSPVertex(gDisplayListHead++, D_800E8C00, 4, 0);
@@ -5195,9 +5165,6 @@ void func_80065F0C(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
gMatrixEffectCount += 1;
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80057C60/func_80065F0C.s")
#endif
void func_800664E0(Player* player, UNUSED s8 arg1, s16 arg2, s8 arg3) {
Vec3f sp54;
File diff suppressed because it is too large Load Diff
+5 -5
View File
@@ -183,7 +183,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[0] = temp_v0_2->posX + sp118;
D_80162FC0[1] = temp_v0_2->posY;
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
break;
case 2:
var_s1 = (var_s1 + 4) % 360;
@@ -203,7 +203,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[0] = temp_v0_2->posX + sp118;
D_80162FC0[1] = temp_v0_2->posY;
D_80162FC0[2] = temp_v0_2->posZ + temp_f0_3;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
break;
case 3:
var_f20 = bombKart->yPos + 3.5f;
@@ -227,7 +227,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[0] = temp_v0_4->posX;
D_80162FC0[1] = temp_v0_4->posY;
D_80162FC0[2] = temp_v0_4->posZ;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
} else {
D_80162FB0[0] = var_f22;
D_80162FB0[1] = var_f20;
@@ -235,7 +235,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[0] = -2409.197f;
D_80162FC0[1] = 0.0f;
D_80162FC0[2] = -355.254f;
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
}
temp_f14 = ((D_80162FB0[0] + D_80162FC0[0]) * 0.5f) - var_f22;
temp_f16 = ((D_80162FB0[2] + D_80162FC0[2]) * 0.5f) - var_f24;
@@ -265,7 +265,7 @@ void func_8000DF8C(s32 bombKartId) {
D_80162FC0[1] = temp_v0_4->posY;
D_80162FC0[2] = temp_v0_4->posZ;
var_f20 += 3.0f - (var_s1 * 0.3f);
spC2 = (get_angle_between_two_vectors(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
spC2 = (get_angle_between_points(D_80162FB0, D_80162FC0) * 0xFFFF) / 65520;
break;
default:
break;
+1 -1
View File
@@ -243,7 +243,7 @@ s16 calculate_angle_path(s32 pathIndex, s32 pathPointIndex) {
sp24[0] = temp_v0->posX;
sp24[1] = temp_v0->posY;
sp24[2] = temp_v0->posZ;
ret = get_angle_between_two_vectors(sp30, sp24);
ret = get_angle_between_points(sp30, sp24);
return -ret;
}
@@ -754,7 +754,7 @@ void update_vehicle_follow_pathPoint(VehicleStuff* vehicle) {
sp34[0] = vehicle->position[1];
sp34[1] = 0.0f;
sp34[2] = sqrtf((temp_f0_3 * temp_f0_3) + (temp_f2_2 * temp_f2_2));
thing = get_angle_between_two_vectors(sp40, sp34);
thing = get_angle_between_points(sp40, sp34);
adjust_angle(&vehicle->rotation[0], -thing, 100);
vehicle->velocity[0] = vehicle->position[0] - sp5C;
vehicle->velocity[1] = vehicle->position[1] - sp58;
+3 -3
View File
@@ -79,9 +79,9 @@ void crash_screen_draw_square(u16* framebuffer) {
s32 j;
for (h = 0; h < 2; h++) {
for (i = (h * BORDER_WIDTH) + SQUARE_Y; i < (((SQUARE_Y2 - (h * BORDER_WIDTH)))); i++) {
for (j = (h * BORDER_WIDTH) + SQUARE_X; j < (((SQUARE_X2 - (h * BORDER_WIDTH)))); j++) {
framebuffer[(i * 320) + j] = (h == 0) ? (0xF801) : (0xFFFF);
for (i = (h * BORDER_WIDTH) + SQUARE_Y; i < (SQUARE_Y2 - (h * BORDER_WIDTH)); i++) {
for (j = (h * BORDER_WIDTH) + SQUARE_X; j < (SQUARE_X2 - (h * BORDER_WIDTH)); j++) {
framebuffer[(i * 320) + j] = (h == 0) ? (RED_COLOUR) : (WHITE_COLOUR);
}
}
}
+1 -1
View File
@@ -1891,7 +1891,7 @@ void func_80090970(Player* player, s8 playerId, s8 arg2) {
case 2:
func_80090178(player, playerId, sp44, sp38);
// Fakematch found by Verti, who knows what's going on here
player->rotation[1] = (u16) -get_angle_between_two_vectors(sp44, sp38) & 0xFFFF;
player->rotation[1] = (u16) -get_angle_between_points(sp44, sp38) & 0xFFFF;
player->pos[0] = sp44[0];
player->pos[1] = sp44[1] + 40.0f;
player->pos[2] = sp44[2];
+651 -741
View File
File diff suppressed because it is too large Load Diff
+2 -2
View File
@@ -27,7 +27,7 @@ typedef struct {
/* 0x08 */ s32 subState; // This is used but I can't tell what for
/* 0x0C */ s32 column;
/* 0x10 */ s32 row;
/* 0x14 */ u8 priority; // priority/depth/z-level. Higher values are drawn on top of lower values
/* 0x14 */ s8 priority; // priority/depth/z-level. Higher values are drawn on top of lower values
// If equal, later entries in gMenuItems are on top
/* 0x15 */ bool8 visible; // active? If 1 its displayed, if 0 its not
// These seem to be generic space available for use by the struct, no 1 purpose for any given member
@@ -397,7 +397,7 @@ Gfx* func_800959F8(Gfx*, Vtx*);
Gfx* func_80095BD0(Gfx*, u8*, f32, f32, u32, u32, f32, f32);
Gfx* func_80095E10(Gfx*, s8, s32, s32, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
Gfx* func_800963F0(Gfx*, s8, s32, s32, f32, f32, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
Gfx* func_80096CD8(Gfx*, s32, s32, u32, u32);
Gfx* func_80096CD8(Gfx* displayListHead, s32 xPos, s32 yPos, u32 width, u32 height);
Gfx* func_80097274(Gfx* displayListHead, s8 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6, s32 arg7, s32 arg8,
s32 arg9, u16* argA, u32 argB, u32 argC, s32 argD);
Gfx* func_80097A14(Gfx*, s8, s32, s32, s32, s32, s32, s32, u8*, u32, u32);
+165 -210
View File
@@ -639,7 +639,7 @@ void data_menu_act(struct Controller* controller, UNUSED u16 controllerIdx) {
u16 btnAndStick = (controller->buttonPressed | controller->stickPressed);
// Make pressing Start have the same effect as pressing A
if ((gEnableDebugMode == 0) && ((btnAndStick & START_BUTTON) != 0)) {
if (!gEnableDebugMode && ((btnAndStick & START_BUTTON) != 0)) {
btnAndStick |= A_BUTTON;
}
@@ -1172,7 +1172,7 @@ void splash_menu_act(struct Controller* controller, u16 controllerIdx) {
}
play_sound2(SOUND_MENU_SELECT);
break;
} else if (btnAndStick & CONT_L) {
} else if (btnAndStick & L_TRIG) {
reset_save_data_grand_prix_points_and_sound_mode();
for (i = 0; i < 16; i++) {
func_800B5404(i / 4, i);
@@ -1206,7 +1206,7 @@ void splash_menu_act(struct Controller* controller, u16 controllerIdx) {
func_800CA330(0x19);
gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED;
if (controller->button & CONT_L) {
if (controller->button & L_TRIG) {
gDemoMode = DEMO_MODE_ACTIVE;
} else {
gDemoMode = DEMO_MODE_INACTIVE;
@@ -1226,7 +1226,7 @@ void splash_menu_act(struct Controller* controller, u16 controllerIdx) {
gDebugMenuSelection = DEBUG_MENU_OPTION_SELECTED;
gDebugGotoScene = DEBUG_GOTO_CREDITS_SEQUENCE_DEFAULT;
play_sound2(SOUND_MENU_OK_CLICKED);
} else if (btnAndStick & CONT_R) {
} else if (btnAndStick & R_TRIG) {
gDebugMenuSelection = DEBUG_MENU_DISABLED;
play_sound2(SOUND_MENU_SELECT);
}
@@ -1234,7 +1234,7 @@ void splash_menu_act(struct Controller* controller, u16 controllerIdx) {
}
}
void setup_game_mode_selected(void) {
void setup_selected_game_mode(void) {
// For Grand Prix and Versus, this will be the CC mode selected. For Time Trials, it will
// be whether 'Begin' or 'Data' is selected. Not used for Battle.
s8 subMenuMode = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
@@ -1268,38 +1268,31 @@ void setup_game_mode_selected(void) {
/**
* Navigation of the main game mode select screen
*/
#ifdef NON_MATCHING
// https://decomp.me/scratch/93qj8
// nonmatching: regalloc; controllerIdx is not AND-ed back into $a1, reg chaos follows
void main_menu_act(struct Controller* controller, u16 controllerIdx) {
u16 btnAndStick; // sp2E
s32 subMode;
bool cursorMoved;
s32 newMode; // temp_v1_2?
u16 btnAndStick;
s32 subMode; // subMode
bool cursorMoved; // cursorMoved
btnAndStick = controller->buttonPressed | controller->stickPressed;
if (!gEnableDebugMode && (btnAndStick & START_BUTTON)) {
if ((gEnableDebugMode == 0) && (btnAndStick & START_BUTTON)) {
btnAndStick |= A_BUTTON;
}
if (!is_screen_being_faded()) {
if (is_screen_being_faded() == 0) {
switch (gMainMenuSelection) {
case MAIN_MENU_NONE: {
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
case MAIN_MENU_NONE:
break;
}
case MAIN_MENU_PLAYER_SELECT: {
if ((btnAndStick & R_JPAD) && gPlayerCount < 4) {
case MAIN_MENU_PLAYER_SELECT:
if ((btnAndStick & R_JPAD) && (gPlayerCount < 4)) {
gPlayerCount += 1;
reset_cycle_flash_menu();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
if ((btnAndStick & L_JPAD) && gPlayerCount >= 2) {
if ((btnAndStick & L_JPAD) && (gPlayerCount >= 2)) {
gPlayerCount -= 1;
reset_cycle_flash_menu();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
// L800B2B38
gPlayerCountSelection1 = gPlayerCount;
switch (gPlayerCountSelection1) {
case 1:
@@ -1313,36 +1306,33 @@ void main_menu_act(struct Controller* controller, u16 controllerIdx) {
gScreenModeSelection = SCREEN_MODE_3P_4P_SPLITSCREEN;
break;
}
// L800B2B94
if (btnAndStick & B_BUTTON) {
func_8009E0F0(0x14);
func_800CA330(0x19);
gMenuFadeType = MENU_FADE_TYPE_BACK;
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & A_BUTTON) {
// L800B2C00
break;
}
if (btnAndStick & A_BUTTON) {
gMainMenuSelection = MAIN_MENU_MODE_SELECT;
reset_cycle_flash_menu();
play_sound2(SOUND_MENU_SELECT);
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & CONT_L) {
// L800B2C58
break;
}
if (btnAndStick & L_TRIG) {
gMainMenuSelection = MAIN_MENU_OPTION;
func_8009E280();
play_sound2(SOUND_MENU_OPTION);
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & CONT_R) {
break;
}
if (btnAndStick & R_TRIG) {
gMainMenuSelection = MAIN_MENU_DATA;
func_8009E258();
play_sound2(SOUND_MENU_DATA);
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else {
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
break;
}
break;
}
case MAIN_MENU_MODE_SELECT: {
case MAIN_MENU_MODE_SELECT:
if (btnAndStick & D_JPAD) {
if (gGameModeMenuColumn[gPlayerCount - 1] < gPlayerModeSelection[gPlayerCount - 1]) {
gGameModeMenuColumn[gPlayerCount - 1] += 1;
@@ -1350,7 +1340,6 @@ void main_menu_act(struct Controller* controller, u16 controllerIdx) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
}
// L800B2D94
if (btnAndStick & U_JPAD) {
if (gGameModeMenuColumn[gPlayerCount - 1] > 0) {
gGameModeMenuColumn[gPlayerCount - 1] -= 1;
@@ -1358,15 +1347,18 @@ void main_menu_act(struct Controller* controller, u16 controllerIdx) {
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
}
// L800B2DE0
if (btnAndStick & B_BUTTON) {
gMainMenuSelection = MAIN_MENU_PLAYER_SELECT;
reset_cycle_flash_menu();
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & A_BUTTON) {
// L800B2E3C
break;
}
if (btnAndStick & A_BUTTON) {
switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
default:
gMainMenuSelection = MAIN_MENU_OK_SELECT;
break;
case 0:
gMainMenuSelection = MAIN_MENU_MODE_SUB_SELECT;
play_sound2(SOUND_MENU_GP);
@@ -1383,91 +1375,80 @@ void main_menu_act(struct Controller* controller, u16 controllerIdx) {
gMainMenuSelection = MAIN_MENU_OK_SELECT;
play_sound2(SOUND_MENU_BATTLE);
break;
default:
gMainMenuSelection = MAIN_MENU_OK_SELECT;
break;
}
// L800B2F04
reset_cycle_flash_menu();
gMenuTimingCounter = 0;
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else {
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
break;
}
break;
}
case MAIN_MENU_MODE_SUB_SELECT:
case MAIN_MENU_MODE_SUB_SELECT_GO_BACK: {
case MAIN_MENU_MODE_SUB_SELECT_GO_BACK:
if (controllerIdx == PLAYER_ONE) {
gMenuTimingCounter++;
if ((gMenuTimingCounter == 100 || gMenuTimingCounter % 300 == 0)) {
// L800B2FAC
if (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] == 0 ||
gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] == 2) {
play_sound2(SOUND_MENU_SELECT_LEVEL);
if ((gMenuTimingCounter == 100) || !(gMenuTimingCounter % 300)) {
switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
case 0:
case 2:
play_sound2(SOUND_MENU_SELECT_LEVEL);
break;
default:
break;
}
}
}
// L800B3000
subMode = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
if ((btnAndStick & U_JPAD) && (subMode > 0)) {
gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]] -= 1;
reset_cycle_flash_menu();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
// L800B3068
if (btnAndStick & D_JPAD) {
cursorMoved = false;
if (has_unlocked_extra_mode()) {
if (subMode <
sGameModePlayerColumnExtra[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
if (subMode < sGameModePlayerColumnExtra[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
cursorMoved = true;
}
} else {
// L800B30D4
if (subMode <
sGameModePlayerColumnDefault[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
if (subMode < sGameModePlayerColumnDefault[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
cursorMoved = true;
}
}
// L800B3110
if (cursorMoved) {
gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]++;
reset_cycle_flash_menu();
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
}
// L800B3150
subMode = gGameModeSubMenuColumn[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
if (btnAndStick & B_BUTTON) {
gMainMenuSelection = MAIN_MENU_MODE_SELECT;
reset_cycle_flash_menu();
play_sound2(SOUND_MENU_GO_BACK);
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & A_BUTTON) {
// L800B31DC
break;
}
if (btnAndStick & A_BUTTON) {
reset_cycle_flash_menu();
if (gPlayerCount == 1 && gGameModeMenuColumn[gPlayerCount - 1] == 1 && subMode == 1) { // DATA
if ((gPlayerCount == 1) && ((gGameModeMenuColumn - 1)[gPlayerCount] == 1) && (subMode == 1)) {
func_8009E258();
play_sound2(SOUND_MENU_DATA);
} else { // BEGIN
} else {
gMainMenuSelection = MAIN_MENU_OK_SELECT;
play_sound2(SOUND_MENU_SELECT);
gMenuTimingCounter = 0;
}
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else {
// L800B3294
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
break;
}
break;
}
case MAIN_MENU_OK_SELECT:
case MAIN_MENU_OK_SELECT_GO_BACK: {
if ((controllerIdx == PLAYER_ONE) && (++gMenuTimingCounter == 60 || gMenuTimingCounter % 300 == 0)) {
play_sound2(SOUND_MENU_OK);
case MAIN_MENU_OK_SELECT_GO_BACK:
if (controllerIdx == PLAYER_ONE) {
gMenuTimingCounter++;
if ((gMenuTimingCounter == 60) || !(gMenuTimingCounter % 300)) {
play_sound2(SOUND_MENU_OK);
}
}
// L800B330C
if (btnAndStick & B_BUTTON) {
switch (gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]]) {
case 0:
@@ -1475,43 +1456,32 @@ void main_menu_act(struct Controller* controller, u16 controllerIdx) {
case 2:
gMainMenuSelection = MAIN_MENU_MODE_SUB_SELECT;
break;
case 3:
default:
case 3:
gMainMenuSelection = MAIN_MENU_MODE_SELECT;
break;
}
// L800B3384
reset_cycle_flash_menu();
play_sound2(SOUND_MENU_GO_BACK);
gMenuTimingCounter = 0;
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else if (btnAndStick & A_BUTTON) {
// L800B33D8
break;
}
if (btnAndStick & A_BUTTON) {
func_8009E1C0();
play_sound2(SOUND_MENU_OK_CLICKED);
setup_game_mode_selected();
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
} else {
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
setup_selected_game_mode();
break;
}
break;
}
case MAIN_MENU_OPTION:
case MAIN_MENU_DATA: {
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
case MAIN_MENU_DATA:
break;
}
default: {
newMode = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
default:
break;
}
}
gModeSelection = newMode;
gModeSelection = gGameModePlayerSelection[gPlayerCount - 1][gGameModeMenuColumn[gPlayerCount - 1]];
}
}
#else
GLOBAL_ASM("asm/non_matchings/menus/main_menu_act.s")
#endif
/**
* Check if there is no currently selected and/or
@@ -1531,57 +1501,50 @@ bool is_character_spot_free(s32 gridId) {
* Navigation of the player select screen
* Grid positions are from right to left, then top to bottom
*/
#ifdef NON_MATCHING
// https://decomp.me/scratch/6R4jX
// nonmatching: the gCharacterGridSelections pointer is not promoted to $s0
void player_select_menu_act(struct Controller* controller, u16 controllerIdx) {
s8* bar;
s8 selected;
s8 i;
s8 savedSelection;
s8 j;
s32 selected;
u16 btnAndStick;
btnAndStick = (controller->buttonPressed) | (controller->stickPressed);
if (!gEnableDebugMode && btnAndStick & CONT_START) {
btnAndStick = (controller->buttonPressed | controller->stickPressed);
if (!gEnableDebugMode && (btnAndStick & START_BUTTON)) {
btnAndStick |= A_BUTTON;
}
if (!is_screen_being_faded()) {
switch (gPlayerSelectMenuSelection) {
case PLAYER_SELECT_MENU_MAIN: {
savedSelection = gCharacterGridSelections[controllerIdx];
if (savedSelection == 0) {
case PLAYER_SELECT_MENU_MAIN:
if (gCharacterGridSelections[controllerIdx] == 0) {
if (btnAndStick & B_BUTTON) {
func_8009E208();
play_sound2(0x49008002);
play_sound2(SOUND_MENU_GO_BACK);
}
return;
}
// L800B3630
if (btnAndStick & B_BUTTON) {
if (gCharacterGridIsSelected[controllerIdx]) {
if (gCharacterGridIsSelected[controllerIdx] != false) {
gCharacterGridIsSelected[controllerIdx] = false;
play_sound2(SOUND_MENU_GO_BACK);
} else {
func_8009E208();
play_sound2(0x49008002);
play_sound2(SOUND_MENU_GO_BACK);
}
}
// L800B3684
if ((btnAndStick & A_BUTTON) && (gCharacterGridIsSelected[controllerIdx] == 0)) {
gCharacterGridIsSelected[controllerIdx] = true;
i = sCharacterGridOrder[gCharacterGridSelections[controllerIdx] - 1];
func_800C90F4(controllerIdx, 0x2900800e + (i << 4));
func_800C90F4(controllerIdx, ((sCharacterGridOrder - 1)[gCharacterGridSelections[controllerIdx]] * 0x10) + 0x2900800E);
}
// L800B36F4
selected = false;
for (i = 0; i < ARRAY_COUNT(gCharacterGridSelections); i++) {
if ((gCharacterGridSelections[i] != 0) && (gCharacterGridIsSelected[i] == 0)) {
if ((gCharacterGridSelections[i] != 0) && (gCharacterGridIsSelected[i] == false)) {
selected = true;
break;
}
}
// L800B3738
if (!selected) {
gPlayerSelectMenuSelection = PLAYER_SELECT_MENU_OK;
@@ -1589,112 +1552,108 @@ void player_select_menu_act(struct Controller* controller, u16 controllerIdx) {
gMenuTimingCounter = 0;
}
// L800B3768
if (gCharacterGridIsSelected[controllerIdx] == 0) {
if ((btnAndStick & CONT_RIGHT) && (btnAndStick & CONT_DOWN)) {
if (savedSelection == 1 || savedSelection == 2 || savedSelection == 3) {
// L800B37B0
savedSelection += 5;
if (is_character_spot_free(savedSelection)) {
gCharacterGridSelections[controllerIdx] = savedSelection;
play_sound2(0x49008000);
}
if (gCharacterGridIsSelected[controllerIdx] != false) {
break;
}
j = gCharacterGridSelections[controllerIdx];
if ((btnAndStick & R_JPAD) && (btnAndStick & D_JPAD)) {
if ((gCharacterGridSelections[controllerIdx] == 1U) || (gCharacterGridSelections[controllerIdx] == 2U) || (gCharacterGridSelections[controllerIdx] == 3U)) {
j = gCharacterGridSelections[controllerIdx] + 5;
if (is_character_spot_free(j)) {
gCharacterGridSelections[controllerIdx] = j;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
return;
}
// L800B37E4
if ((btnAndStick & CONT_LEFT) && (btnAndStick & CONT_DOWN)) {
if (savedSelection == 2 || savedSelection == 3 || savedSelection == 4) {
savedSelection += 3;
if (is_character_spot_free(savedSelection)) {
gCharacterGridSelections[controllerIdx] = savedSelection;
play_sound2(0x49008000);
}
return;
}
if ((btnAndStick & L_JPAD) && (btnAndStick & D_JPAD)) {
if ((gCharacterGridSelections[controllerIdx] == 2U) || (gCharacterGridSelections[controllerIdx] == 3U) || (gCharacterGridSelections[controllerIdx] == 4U)) {
j = gCharacterGridSelections[controllerIdx] + 3;
if (is_character_spot_free(j)) {
gCharacterGridSelections[controllerIdx] = j;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
return;
}
// L800B3844
if ((btnAndStick & CONT_RIGHT) && (btnAndStick & CONT_UP)) {
if (savedSelection == 5 || savedSelection == 6 || savedSelection == 7) {
savedSelection -= 3;
if (is_character_spot_free(savedSelection)) {
gCharacterGridSelections[controllerIdx] = savedSelection;
play_sound2(0x49008000);
}
return;
}
if ((btnAndStick & R_JPAD) && (btnAndStick & U_JPAD)) {
if ((gCharacterGridSelections[controllerIdx] == 5U) || (gCharacterGridSelections[controllerIdx] == 6U) || (gCharacterGridSelections[controllerIdx] == 7U)) {
j = gCharacterGridSelections[controllerIdx] - 3;
if (is_character_spot_free(j)) {
gCharacterGridSelections[controllerIdx] = j;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
return;
}
// L800B38A0
if ((btnAndStick & CONT_LEFT) && (btnAndStick & CONT_UP)) {
if (savedSelection == 6 || savedSelection == 7 || savedSelection == 8) {
savedSelection -= 5;
if (is_character_spot_free(savedSelection)) {
gCharacterGridSelections[controllerIdx] = savedSelection;
play_sound2(0x49008000);
}
return;
}
if ((btnAndStick & L_JPAD) && (btnAndStick & U_JPAD)) {
if ((gCharacterGridSelections[controllerIdx] == 6U) || (gCharacterGridSelections[controllerIdx] == 7U) || (gCharacterGridSelections[controllerIdx] == 8U)) {
j = gCharacterGridSelections[controllerIdx] - 5;
if (is_character_spot_free(j)) {
gCharacterGridSelections[controllerIdx] = j;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
return;
}
// L800B38FC
if (btnAndStick & CONT_RIGHT) {
if (savedSelection == 4 || savedSelection == 8)
return;
savedSelection += 1;
return;
}
if (btnAndStick & R_JPAD) {
if ((gCharacterGridSelections[controllerIdx] != 4U) && (gCharacterGridSelections[controllerIdx] != 8U)) {
j = gCharacterGridSelections[controllerIdx] + 1;
do {
// L800B391C
if (is_character_spot_free(savedSelection)) {
gCharacterGridSelections[controllerIdx] = savedSelection;
play_sound2(0x49008000); // play_sound2(0x49008000);
if (is_character_spot_free(j)) {
gCharacterGridSelections[controllerIdx] = j;
play_sound2(SOUND_MENU_CURSOR_MOVE);
return;
}
j++;
if (j == 5 || j == 9) {
break;
}
savedSelection += 1;
if ((savedSelection == 5) || (savedSelection == 9))
return;
} while (savedSelection < 10);
return;
} while (j < 10);
}
// L800B3978
if (btnAndStick & CONT_LEFT) {
if (savedSelection == 1 || savedSelection == 5)
return;
savedSelection -= 1;
return;
}
if (btnAndStick & L_JPAD) {
if ((gCharacterGridSelections[controllerIdx] != 1U) && (gCharacterGridSelections[controllerIdx] != 5U)) {
j = gCharacterGridSelections[controllerIdx] - 1;
do {
if (is_character_spot_free(savedSelection)) {
gCharacterGridSelections[controllerIdx] = savedSelection;
play_sound2(0x49008000);
if (is_character_spot_free(j)) {
gCharacterGridSelections[controllerIdx] = j;
play_sound2(SOUND_MENU_CURSOR_MOVE);
return;
}
j--;
if (j == 0 || j == 4) {
break;
}
savedSelection -= 1;
if ((savedSelection == 0) || (savedSelection == 4))
return;
} while (savedSelection >= 0);
return;
}
// L800B39F4
if ((btnAndStick & CONT_UP) && (savedSelection >= 5)) {
savedSelection = savedSelection - 4;
}
if ((btnAndStick & CONT_DOWN) && (savedSelection < 5)) {
savedSelection = savedSelection + 4;
}
// L800B3A30
if (is_character_spot_free(savedSelection)) {
gCharacterGridSelections[controllerIdx] = savedSelection;
play_sound2(0x49008000);
} while (j >= 0);
}
return;
}
if ((btnAndStick & U_JPAD) && (gCharacterGridSelections[controllerIdx] >= 5)) {
j = gCharacterGridSelections[controllerIdx] - 4;
}
if ((btnAndStick & D_JPAD) && (gCharacterGridSelections[controllerIdx] < 5)) {
j = gCharacterGridSelections[controllerIdx] + 4;
}
if (is_character_spot_free(j)) {
gCharacterGridSelections[controllerIdx] = j;
play_sound2(SOUND_MENU_CURSOR_MOVE);
}
break;
}
case 2:
case 3:
case PLAYER_SELECT_MENU_OK:
case PLAYER_SELECT_MENU_OK_GO_BACK:
if (controllerIdx == 0) {
gMenuTimingCounter++;
if ((gMenuTimingCounter == 60) || ((gMenuTimingCounter % 300) == 0)) {
// L800B3A94
play_sound2(0x4900900F);
if (gMenuTimingCounter == 0x3C || !(gMenuTimingCounter % 300)) {
play_sound2(SOUND_MENU_OK);
}
}
// L800B3AA4
if (btnAndStick & B_BUTTON) {
gPlayerSelectMenuSelection = PLAYER_SELECT_MENU_MAIN;
gCharacterGridIsSelected[controllerIdx] = false;
@@ -1703,23 +1662,19 @@ void player_select_menu_act(struct Controller* controller, u16 controllerIdx) {
}
if (btnAndStick & A_BUTTON) {
func_8009E1C0();
play_sound2(0x49008016);
play_sound2(SOUND_MENU_OK_CLICKED);
func_8000F124();
}
break;
default:
break;
}
// L800B3B24
if (gCharacterGridSelections[controllerIdx] != 0) {
gCharacterSelections[controllerIdx] = sCharacterGridOrder[gCharacterGridSelections[controllerIdx] - 1];
gCharacterSelections[controllerIdx] = (sCharacterGridOrder - 1)[gCharacterGridSelections[controllerIdx]];
}
}
// L800B3B44
}
#else
GLOBAL_ASM("asm/non_matchings/menus/player_select_menu_act.s")
#endif
/**
* Navigation of the map select course menu screen
@@ -1731,7 +1686,7 @@ void course_select_menu_act(struct Controller* arg0, u16 controllerIdx) {
btnAndStick |= A_BUTTON;
}
if (is_screen_being_faded() == 0) {
if (!is_screen_being_faded()) {
switch (gSubMenuSelection) {
case SUB_MENU_MAP_SELECT_CUP:
if ((btnAndStick & R_JPAD) != 0) {
+1 -1
View File
@@ -200,7 +200,7 @@ void course_data_menu_act(struct Controller*, u16);
void logo_intro_menu_act(struct Controller*, u16);
void controller_pak_menu_act(struct Controller*, u16);
void splash_menu_act(struct Controller*, u16);
void setup_game_mode_selected(void);
void setup_selected_game_mode(void);
void main_menu_act(struct Controller*, u16);
bool is_character_spot_free(s32);
void player_select_menu_act(struct Controller*, u16);
+3 -3
View File
@@ -1548,7 +1548,7 @@ void func_8002B9CC(Player* player, s8 arg1, UNUSED s32 arg2) {
func_8008C73C(player, arg1);
}
}
temp = (-(s16) get_angle_between_two_vectors(player->pos, &player->oldPos[0]));
temp = (-(s16) get_angle_between_points(player->pos, &player->oldPos[0]));
temp2 = (player->rotation[1] - player->unk_0C0);
temp = temp - temp2;
player->unk_234 = temp / 182;
@@ -1590,7 +1590,7 @@ void func_8002BB9C(Player* player, f32* arg1, f32* arg2, UNUSED s8 arg3, UNUSED
mtxf_translate_vec3f_mat3(sp4C, sp64);
var_v0 = -(s16) get_angle_between_two_vectors(sp58, sp4C);
var_v0 = -(s16) get_angle_between_points(sp58, sp4C);
t0 = player->rotation[1];
var_v0 = 0x10000 + (t0 - var_v0);
var_v0 /= 182;
@@ -2005,7 +2005,7 @@ void func_8002D028(Player* player, s8 arg1) {
sp4C[1] = 0;
sp4C[2] = D_80165230[D_80165270[arg1]];
temp = -(s16) get_angle_between_two_vectors(player->pos, sp4C);
temp = -(s16) get_angle_between_points(player->pos, sp4C);
temp2 = player->rotation[1];
temp = (temp - temp2);
+3 -3
View File
@@ -81,7 +81,7 @@ f32 func_802B51E8(Vec3f arg0, Vec3f arg1) {
return (sub_x * sub_x) + (sub_y * sub_y) + sub_z + sub_z;
}
s32 get_angle_between_two_vectors(Vec3f arg0, Vec3f arg1) {
s32 get_angle_between_points(Vec3f arg0, Vec3f arg1) {
f32 temp_v1;
f32 temp_v2;
temp_v1 = arg1[0] - arg0[0];
@@ -90,7 +90,7 @@ s32 get_angle_between_two_vectors(Vec3f arg0, Vec3f arg1) {
return atan2s(temp_v1, temp_v2);
}
// get_angle_between_two_vectors
// get_angle_between_points
u32 func_802B5258(Vec3f arg0, Vec3s arg1) {
f32 temp_v1;
f32 temp_v2;
@@ -1155,7 +1155,7 @@ f32 is_within_render_distance(Vec3f cameraPos, Vec3f objectPos, u16 orientationY
return -1.0f;
}
angleObject = get_angle_between_two_vectors(cameraPos, objectPos);
angleObject = get_angle_between_points(cameraPos, objectPos);
minus_fov_angle = (orientationY - extended_fov);
plus_fov_angle = (orientationY + extended_fov);
+1 -1
View File
@@ -18,7 +18,7 @@ void func_802B5794(Mat4, Vec3f, Vec3f);
s32 func_802B4F60(s32, Vec3f, s32, f32, f32);
s32 render_set_position(Mat4, s32);
f32 func_802B51E8(Vec3f, Vec3f);
s32 get_angle_between_two_vectors(Vec3f, Vec3f);
s32 get_angle_between_points(Vec3f, Vec3f);
u32 func_802B5258(Vec3f, Vec3s);
void func_802B5794(Mat4, Vec3f, Vec3f);
void vec3f_set(Vec3f, f32, f32, f32);
+12 -46
View File
@@ -1467,7 +1467,7 @@ void func_8004B310(s32 alpha) {
gDPSetPrimColor(gDisplayListHead++, 0, 0, 0x00, 0x00, 0x00, alpha);
}
void func_8004B35C(s32 red, s32 green, s32 blue, s32 alpha) {
void func_8004B35C(u32 red, u32 green, u32 blue, u32 alpha) {
gDPSetCombineMode(gDisplayListHead++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
gDPSetPrimColor(gDisplayListHead++, 0, 0, red, green, blue, alpha);
}
@@ -1518,7 +1518,7 @@ void func_8004B6C4(s32 red, s32 green, s32 blue) {
gDPSetPrimColor(gDisplayListHead++, 0, 0, red, green, blue, 0xFF);
}
void func_8004B72C(s32 primRed, s32 primGreen, s32 primBlue, s32 envRed, s32 envGreen, s32 envBlue, s32 primAlpha) {
void func_8004B72C(u32 primRed, u32 primGreen, u32 primBlue, u32 envRed, u32 envGreen, u32 envBlue, u32 primAlpha) {
gDPSetPrimColor(gDisplayListHead++, 0, 0, primRed, primGreen, primBlue, primAlpha);
gDPSetEnvColor(gDisplayListHead++, envRed, envGreen, envBlue, 0xFF);
gDPSetCombineLERP(gDisplayListHead++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0,
@@ -2465,59 +2465,34 @@ void render_mini_map_finish_line(s32 arg0) {
#endif
}
#ifdef NON_MATCHING
// https://decomp.me/scratch/FxA1w
/**
* characterId of 8 appears to be a type of null check or control flow alteration.
*/
#define EXPLICIT_AND 1
void draw_minimap_character(s32 arg0, s32 playerId, s32 characterId) {
f32 thing0;
f32 thing1;
s16 x;
s16 y;
Player* player = &gPlayerOne[playerId];
Player *player = &gPlayerOne[playerId];
if (player->type & (1 << 15)) {
thing0 = player->pos[0] * gMiniMapMarkerScale;
thing1 = player->pos[2] * gMiniMapMarkerScale;
x = ((gMiniMapFinishLineX[arg0] + D_8018D2F0) - (D_8018D2B0 / 2)) + gMiniMapX + (s16) (thing0);
y = ((gMiniMapFinishLineY[arg0] + D_8018D2F8) - (D_8018D2B8 / 2)) + gMiniMapY + (s16) (thing1);
x = ((gMiniMapFinishLineX[arg0] + D_8018D2F0) - (D_8018D2B0 / 2)) + gMiniMapX + (s16)(thing0);
y = ((gMiniMapFinishLineY[arg0] + D_8018D2F8) - (D_8018D2B8 / 2)) + gMiniMapY + (s16)(thing1);
// huh?
if (characterId != 8) {
if ((gGPCurrentRaceRankByPlayerId[playerId] == 0) && (gModeSelection != 3) && (gModeSelection != 1)) {
#if EXPLICIT_AND == 1
func_80046424(x, y, (player->rotation[1] + 0x8000) & 0xFFFF, 1.0f,
(u8*) common_texture_minimap_kart_character[characterId], common_vtx_player_minimap_icon,
8, 8, 8, 8);
#else
func_80046424(x, y, player->rotation[1] + 0x8000, 1.0f,
(u8*) common_texture_minimap_kart_character[characterId], common_vtx_player_minimap_icon,
8, 8, 8, 8);
#endif
func_80046424(x, y, player->rotation[1] + 0x8000, 1.0f, (u8*)&common_texture_minimap_kart_mario[characterId * 64], common_vtx_player_minimap_icon, 8, 8, 8, 8);
} else {
#if EXPLICIT_AND == 1
func_800463B0(x, y, (player->rotation[1] + 0x8000) & 0xFFFF, 1.0f,
(u8*) common_texture_minimap_kart_character[characterId], common_vtx_player_minimap_icon,
8, 8, 8, 8);
#else
func_800463B0(x, y, player->rotation[1] + 0x8000, 1.0f,
(u8*) common_texture_minimap_kart_character[characterId], common_vtx_player_minimap_icon,
8, 8, 8, 8);
#endif
func_800463B0(x, y, player->rotation[1] + 0x8000, 1.0f, (u8*)&common_texture_minimap_kart_mario[characterId * 64], common_vtx_player_minimap_icon, 8, 8, 8, 8);
}
} else {
if (gGPCurrentRaceRankByPlayerId[playerId] == 0) {
func_8004C450(x, y, 8, 8, (u8*) common_texture_minimap_progress_dot);
func_8004C450(x, y, 8, 8, (u8 *) common_texture_minimap_progress_dot);
} else {
draw_hud_2d_texture(x, y, 8, 8, (u8*) common_texture_minimap_progress_dot);
draw_hud_2d_texture(x, y, 8, 8, (u8 *) common_texture_minimap_progress_dot);
}
}
}
}
#undef EXPLICIT_AND
#else
GLOBAL_ASM("asm/non_matchings/render_objects/draw_minimap_character.s")
#endif
// WTF is up with the gPlayerOne access in this function?
void func_8004F3E4(s32 arg0) {
@@ -2965,25 +2940,19 @@ void func_80050C68(void) {
}
}
#ifdef NON_MATCHING
// Something about the handling of the `player` variable is weird.
// All commands are present and correct, 2 of them are out of position
// https://decomp.me/scratch/PvJ5D
void func_80050E34(s32 playerId, s32 arg1) {
s32 objectIndex;
s32 spD0;
s32 spCC;
UNUSED s32 stackPadding;
Player *dummy = &gPlayerOne[playerId];
s32 spC4;
s32 lapCount;
s32 characterId;
s32 spB8;
s32 temp_v0_2;
Object* object;
Player* player;
Player *player = &gPlayerOne[playerId];
player = &gPlayerOne[playerId];
lapCount = gLapCountByPlayerId[playerId];
characterId = player->characterId;
objectIndex = D_8018CE10[playerId].objectIndex;
@@ -3048,9 +3017,6 @@ void func_80050E34(s32 playerId, s32 arg1) {
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/render_objects/func_80050E34.s")
#endif
void func_800514BC(void) {
s32 temp_a0;
+2 -2
View File
@@ -193,7 +193,7 @@ void set_color_render(s32, s32, s32, s32, s32, s32, s32);
void func_8004B254(s32, s32, s32);
void set_transparency(s32);
void func_8004B310(s32);
void func_8004B35C(s32, s32, s32, s32);
void func_8004B35C(u32, u32, u32, u32);
void func_8004B3C8(s32);
void func_8004B414(s32, s32, s32, s32);
void func_8004B480(s32, s32, s32);
@@ -202,7 +202,7 @@ void func_8004B554(s32);
void func_8004B5A8(s32, s32, s32, s32);
void func_8004B614(s32, s32, s32, s32, s32, s32, s32);
void func_8004B6C4(s32, s32, s32);
void func_8004B72C(s32, s32, s32, s32, s32, s32, s32);
void func_8004B72C(u32, u32, u32, u32, u32, u32, u32);
void render_texture_rectangle_wrap(s32, s32, s32, s32, s32);
void func_8004BB34(void);
void func_8004BB3C(s32, s32, s32, s32, f32);
+16 -30
View File
@@ -1,6 +1,7 @@
#include <ultra64.h>
#include <macros.h>
#include <defines.h>
#include "stddef.h"
#include "save.h"
@@ -118,7 +119,7 @@ u8 checksum_time_trial_records(s32 courseIdx) {
u8 compute_save_data_checksum_1(void) {
u8* grandPrixPoints = (u8*) &gSaveData.main.saveInfo.grandPrixPoints;
s32 i;
u32 i;
s32 crc = 0;
for (i = 0; i < sizeof(SaveInfo); i++) {
@@ -313,19 +314,12 @@ s32 func_800B5020(u32 time, s32 charId) {
return i;
}
#ifdef NON_MATCHING
/**
* This one is some stack weirdness. If you remove the padding a ton of
* stack locations are wrong. Adding more padding doesn't help matters
* and no amount of reordering of the function variables fixes it either.
**/
s32 func_800B5218(void) {
u8* recordPointer;
s32 prevLapTime;
UNUSED s32 pad;
s32 fastestLapIndex;
s32 recordIndex;
UNUSED s32 padding;
s32 thisLapTime;
UNUSED s32 pad2[2];
s32 checkLapIndex;
s32 character;
s32 lapBitmask;
@@ -336,12 +330,10 @@ s32 func_800B5218(void) {
fastestLapIndex = 0;
character = *gCharacterSelections;
for (checkLapIndex = 1; checkLapIndex != 3; checkLapIndex++) {
prevLapTime = playerHUD->lapDurations[checkLapIndex];
thisLapTime = playerHUD->lapDurations[fastestLapIndex];
if (prevLapTime < thisLapTime) {
if ((s32)playerHUD->lapDurations[checkLapIndex] < (s32)playerHUD->lapDurations[fastestLapIndex]) {
lapBitmask = 1 << checkLapIndex;
fastestLapIndex = checkLapIndex;
} else if (thisLapTime == prevLapTime) {
} else if ((s32)playerHUD->lapDurations[fastestLapIndex] == (s32)playerHUD->lapDurations[checkLapIndex]) {
lapBitmask |= 1 << checkLapIndex;
}
}
@@ -355,9 +347,6 @@ s32 func_800B5218(void) {
return 0;
}
}
#else
GLOBAL_ASM("asm/non_matchings/save/func_800B5218.s")
#endif
void func_800B536C(s32 arg0) {
u8* points;
@@ -530,7 +519,7 @@ void update_save_data_backup(void) {
u8 compute_save_data_checksum_backup_1(void) {
u8* backupGrandPrixPoints = gSaveData.backup.saveInfo.grandPrixPoints;
s32 i;
u32 i;
s32 crc = 0;
for (i = 0; i < sizeof(SaveInfo); i++) {
@@ -961,24 +950,21 @@ u8 func_800B6828(s32 arg0) {
return checksum;
}
#ifdef NON_MATCHING
u8 func_800B68F4(s32 arg0) {
s32 multiplier = arg0 + 1;
u32 checksum;
s32 i;
checksum = 0;
for (i = 0; i < 0x43; i++) {
u8* addr = &((u8*) gSomeDLBuffer)[arg0];
checksum += addr[i] * multiplier + i;
struct_8018EE10_entry* var_v0 = gSomeDLBuffer;
u8 *addr = (u8*)(var_v0 + arg0);
s32 i = 0;
u32 checksum = 0;
for (i = 0; i < (s32)offsetof(struct_8018EE10_entry, pad_43); i++) {
checksum += (addr[i] * (arg0 + 1)) + i;
}
return checksum;
}
#else
GLOBAL_ASM("asm/non_matchings/save/func_800B68F4.s")
#endif
s32 func_800B69BC(s32 arg0) {
s32 i;
u32 i;
struct_8018EE10_entry* plz = &D_8018EE10[arg0];
plz->ghostDataSaved = false;
+2 -2
View File
@@ -6588,7 +6588,7 @@ void func_8008275C(s32 objectIndex) {
gObjectList[objectIndex].offset[2] *= 2.0;
object_calculate_new_pos_offset(objectIndex);
gObjectList[objectIndex].direction_angle[1] =
get_angle_between_two_vectors(gObjectList[objectIndex].unk_01C, gObjectList[objectIndex].pos);
get_angle_between_points(gObjectList[objectIndex].unk_01C, gObjectList[objectIndex].pos);
break;
}
func_800873F4(objectIndex);
@@ -7691,7 +7691,7 @@ void update_chain_chomps(void) {
func_800859C8(objectIndex, var_s4);
vec3f_copy(object->unk_01C, object->offset);
func_8000D940(object->offset, &object->unk_084[8], object->unk_034, object->surfaceHeight, 0);
object->direction_angle[1] = get_angle_between_two_vectors(object->unk_01C, object->offset);
object->direction_angle[1] = get_angle_between_points(object->unk_01C, object->offset);
object_calculate_new_pos_offset(objectIndex);
func_80089CBC(objectIndex, 30.0f);
}
-3
View File
@@ -48,9 +48,6 @@
common_texture_particle_smoke:
range: [0x2BC58, 0x2C858]
mode: APPEND
common_texture_minimap_kart_character:
range: [0x2CCD8, 0x2D058]
mode: APPEND
common_tlut_finish_line_banner:
symbol: common_tlut_finish_line_banner
type: texture