Match a variety of functions, remove an extraneous data file (#140)

* Match func_800AB290 and func_800AC978

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Match func_800A15EC

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>

* Match func_800A1A20

* Get func_800A1F30 to NON_MATCHING

* Match func_800A3C84

mips_to_c does not currently support labels being in delay slots, although
 practice that is fine. To get around this I put a nop in the delay slot
 instead. No permanent change is being made to the target assembly.

* Update the mips_to_c output for a couple functions

Split asm file containing unused funcs and added mips_to_c output for them.

* Remove extraneous data file

Signed-off-by: Taggerung <tyler.taggerung@gmail.com>
This commit is contained in:
Tyler McGavran 2022-01-16 01:00:31 -05:00 committed by GitHub
parent dc805bf64c
commit b56b43e721
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
16 changed files with 774 additions and 1504 deletions

View File

@ -48,441 +48,3 @@ glabel func_8009A944
/* 09B5F0 8009A9F0 8D620000 */ lw $v0, ($t3)
/* 09B5F4 8009A9F4 03E00008 */ jr $ra
/* 09B5F8 8009A9F8 27BD0018 */ addiu $sp, $sp, 0x18
/* 09B5FC 8009A9FC 3C0A8019 */ lui $t2, %hi(D_8018E118) # $t2, 0x8019
/* 09B600 8009AA00 254AE118 */ addiu $t2, %lo(D_8018E118) # addiu $t2, $t2, -0x1ee8
/* 09B604 8009AA04 000470C0 */ sll $t6, $a0, 3
/* 09B608 8009AA08 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 09B60C 8009AA0C 014E7821 */ addu $t7, $t2, $t6
/* 09B610 8009AA10 8DF80004 */ lw $t8, 4($t7)
/* 09B614 8009AA14 3C038019 */ lui $v1, %hi(D_8018D9B0) # $v1, 0x8019
/* 09B618 8009AA18 000570C0 */ sll $t6, $a1, 3
/* 09B61C 8009AA1C 8C63D9B0 */ lw $v1, %lo(D_8018D9B0)($v1)
/* 09B620 8009AA20 AFB30014 */ sw $s3, 0x14($sp)
/* 09B624 8009AA24 AFB20010 */ sw $s2, 0x10($sp)
/* 09B628 8009AA28 AFB1000C */ sw $s1, 0xc($sp)
/* 09B62C 8009AA2C AFB00008 */ sw $s0, 8($sp)
/* 09B630 8009AA30 014E7821 */ addu $t7, $t2, $t6
/* 09B634 8009AA34 0018C840 */ sll $t9, $t8, 1
/* 09B638 8009AA38 8DF80004 */ lw $t8, 4($t7)
/* 09B63C 8009AA3C 03231021 */ addu $v0, $t9, $v1
/* 09B640 8009AA40 00E08025 */ move $s0, $a3
/* 09B644 8009AA44 0018C840 */ sll $t9, $t8, 1
/* 09B648 8009AA48 00004825 */ move $t1, $zero
/* 09B64C 8009AA4C 10C00045 */ beqz $a2, .L8009AB64
/* 09B650 8009AA50 03234021 */ addu $t0, $t9, $v1
/* 09B654 8009AA54 24130007 */ li $s3, 7
/* 09B658 8009AA58 24120006 */ li $s2, 6
/* 09B65C 8009AA5C 2411001D */ li $s1, 29
/* 09B660 8009AA60 240D0096 */ li $t5, 150
/* 09B664 8009AA64 240C004D */ li $t4, 77
.L8009AA68:
/* 09B668 8009AA68 94440000 */ lhu $a0, ($v0)
/* 09B66C 8009AA6C 25290001 */ addiu $t1, $t1, 1
/* 09B670 8009AA70 24420002 */ addiu $v0, $v0, 2
/* 09B674 8009AA74 3083F800 */ andi $v1, $a0, 0xf800
/* 09B678 8009AA78 000372C3 */ sra $t6, $v1, 0xb
/* 09B67C 8009AA7C 01CC0019 */ multu $t6, $t4
/* 09B680 8009AA80 308507C0 */ andi $a1, $a0, 0x7c0
/* 09B684 8009AA84 00057983 */ sra $t7, $a1, 6
/* 09B688 8009AA88 01C01825 */ move $v1, $t6
/* 09B68C 8009AA8C 3087003E */ andi $a3, $a0, 0x3e
/* 09B690 8009AA90 0007C043 */ sra $t8, $a3, 1
/* 09B694 8009AA94 03003825 */ move $a3, $t8
/* 09B698 8009AA98 01E02825 */ move $a1, $t7
/* 09B69C 8009AA9C 308A0001 */ andi $t2, $a0, 1
/* 09B6A0 8009AAA0 25080002 */ addiu $t0, $t0, 2
/* 09B6A4 8009AAA4 0000C812 */ mflo $t9
/* 09B6A8 8009AAA8 00000000 */ nop
/* 09B6AC 8009AAAC 00000000 */ nop
/* 09B6B0 8009AAB0 01ED0019 */ multu $t7, $t5
/* 09B6B4 8009AAB4 00007012 */ mflo $t6
/* 09B6B8 8009AAB8 032E7821 */ addu $t7, $t9, $t6
/* 09B6BC 8009AABC 00000000 */ nop
/* 09B6C0 8009AAC0 03110019 */ multu $t8, $s1
/* 09B6C4 8009AAC4 0000C012 */ mflo $t8
/* 09B6C8 8009AAC8 01F85821 */ addu $t3, $t7, $t8
/* 09B6CC 8009AACC 000BCA03 */ sra $t9, $t3, 8
/* 09B6D0 8009AAD0 03320019 */ multu $t9, $s2
/* 09B6D4 8009AAD4 03205825 */ move $t3, $t9
/* 09B6D8 8009AAD8 00007012 */ mflo $t6
/* 09B6DC 8009AADC 05C10003 */ bgez $t6, .L8009AAEC
/* 09B6E0 8009AAE0 000E78C3 */ sra $t7, $t6, 3
/* 09B6E4 8009AAE4 25C10007 */ addiu $at, $t6, 7
/* 09B6E8 8009AAE8 000178C3 */ sra $t7, $at, 3
.L8009AAEC:
/* 09B6EC 8009AAEC 01E7C023 */ subu $t8, $t7, $a3
/* 09B6F0 8009AAF0 03100019 */ multu $t8, $s0
/* 09B6F4 8009AAF4 0000C812 */ mflo $t9
/* 09B6F8 8009AAF8 00197203 */ sra $t6, $t9, 8
/* 09B6FC 8009AAFC 01C77821 */ addu $t7, $t6, $a3
/* 09B700 8009AB00 01730019 */ multu $t3, $s3
/* 09B704 8009AB04 000FC040 */ sll $t8, $t7, 1
/* 09B708 8009AB08 0000C812 */ mflo $t9
/* 09B70C 8009AB0C 07210003 */ bgez $t9, .L8009AB1C
/* 09B710 8009AB10 001970C3 */ sra $t6, $t9, 3
/* 09B714 8009AB14 27210007 */ addiu $at, $t9, 7
/* 09B718 8009AB18 000170C3 */ sra $t6, $at, 3
.L8009AB1C:
/* 09B71C 8009AB1C 01C57823 */ subu $t7, $t6, $a1
/* 09B720 8009AB20 01F00019 */ multu $t7, $s0
/* 09B724 8009AB24 0126082B */ sltu $at, $t1, $a2
/* 09B728 8009AB28 0000C812 */ mflo $t9
/* 09B72C 8009AB2C 00197203 */ sra $t6, $t9, 8
/* 09B730 8009AB30 01C57821 */ addu $t7, $t6, $a1
/* 09B734 8009AB34 000FC980 */ sll $t9, $t7, 6
/* 09B738 8009AB38 01637823 */ subu $t7, $t3, $v1
/* 09B73C 8009AB3C 01F00019 */ multu $t7, $s0
/* 09B740 8009AB40 03197021 */ addu $t6, $t8, $t9
/* 09B744 8009AB44 0000C012 */ mflo $t8
/* 09B748 8009AB48 0018CA03 */ sra $t9, $t8, 8
/* 09B74C 8009AB4C 03237821 */ addu $t7, $t9, $v1
/* 09B750 8009AB50 000FC2C0 */ sll $t8, $t7, 0xb
/* 09B754 8009AB54 01D8C821 */ addu $t9, $t6, $t8
/* 09B758 8009AB58 032A7821 */ addu $t7, $t9, $t2
/* 09B75C 8009AB5C 1420FFC2 */ bnez $at, .L8009AA68
/* 09B760 8009AB60 A50FFFFE */ sh $t7, -2($t0)
.L8009AB64:
/* 09B764 8009AB64 8FB00008 */ lw $s0, 8($sp)
/* 09B768 8009AB68 8FB1000C */ lw $s1, 0xc($sp)
/* 09B76C 8009AB6C 8FB20010 */ lw $s2, 0x10($sp)
/* 09B770 8009AB70 8FB30014 */ lw $s3, 0x14($sp)
/* 09B774 8009AB74 03E00008 */ jr $ra
/* 09B778 8009AB78 27BD0018 */ addiu $sp, $sp, 0x18
/* 09B77C 8009AB7C 000470C0 */ sll $t6, $a0, 3
/* 09B780 8009AB80 3C0F8019 */ lui $t7, %hi(D_8018E11C) # 0x8019
/* 09B784 8009AB84 01EE7821 */ addu $t7, $t7, $t6
/* 09B788 8009AB88 8DEFE11C */ lw $t7, %lo(D_8018E11C)($t7) # -0x1ee4($t7)
/* 09B78C 8009AB8C 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019
/* 09B790 8009AB90 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9)
/* 09B794 8009AB94 3C0D0004 */ lui $t5, (0x0004B000 >> 16) # lui $t5, 4
/* 09B798 8009AB98 000FC040 */ sll $t8, $t7, 1
/* 09B79C 8009AB9C 35ADB000 */ ori $t5, (0x0004B000 & 0xFFFF) # ori $t5, $t5, 0xb000
/* 09B7A0 8009ABA0 00001825 */ move $v1, $zero
/* 09B7A4 8009ABA4 240C001D */ li $t4, 29
/* 09B7A8 8009ABA8 240B0096 */ li $t3, 150
/* 09B7AC 8009ABAC 240A004D */ li $t2, 77
/* 09B7B0 8009ABB0 03191021 */ addu $v0, $t8, $t9
.L8009ABB4:
/* 09B7B4 8009ABB4 94450000 */ lhu $a1, ($v0)
/* 09B7B8 8009ABB8 24630004 */ addiu $v1, $v1, 4
/* 09B7BC 8009ABBC 24420008 */ addiu $v0, $v0, 8
/* 09B7C0 8009ABC0 30AEF800 */ andi $t6, $a1, 0xf800
/* 09B7C4 8009ABC4 000E7AC3 */ sra $t7, $t6, 0xb
/* 09B7C8 8009ABC8 01EA0019 */ multu $t7, $t2
/* 09B7CC 8009ABCC 30B807C0 */ andi $t8, $a1, 0x7c0
/* 09B7D0 8009ABD0 0018C983 */ sra $t9, $t8, 6
/* 09B7D4 8009ABD4 30AE003E */ andi $t6, $a1, 0x3e
/* 09B7D8 8009ABD8 000E7843 */ sra $t7, $t6, 1
/* 09B7DC 8009ABDC 30A80001 */ andi $t0, $a1, 1
/* 09B7E0 8009ABE0 9445FFFA */ lhu $a1, -6($v0)
/* 09B7E4 8009ABE4 00002012 */ mflo $a0
/* 09B7E8 8009ABE8 00000000 */ nop
/* 09B7EC 8009ABEC 00000000 */ nop
/* 09B7F0 8009ABF0 032B0019 */ multu $t9, $t3
/* 09B7F4 8009ABF4 00003012 */ mflo $a2
/* 09B7F8 8009ABF8 0086C021 */ addu $t8, $a0, $a2
/* 09B7FC 8009ABFC 00000000 */ nop
/* 09B800 8009AC00 01EC0019 */ multu $t7, $t4
/* 09B804 8009AC04 00003812 */ mflo $a3
/* 09B808 8009AC08 03074821 */ addu $t1, $t8, $a3
/* 09B80C 8009AC0C 0009CA02 */ srl $t9, $t1, 8
/* 09B810 8009AC10 00197040 */ sll $t6, $t9, 1
/* 09B814 8009AC14 00197980 */ sll $t7, $t9, 6
/* 09B818 8009AC18 01CFC021 */ addu $t8, $t6, $t7
/* 09B81C 8009AC1C 0019CAC0 */ sll $t9, $t9, 0xb
/* 09B820 8009AC20 03197021 */ addu $t6, $t8, $t9
/* 09B824 8009AC24 30B8F800 */ andi $t8, $a1, 0xf800
/* 09B828 8009AC28 0018CAC3 */ sra $t9, $t8, 0xb
/* 09B82C 8009AC2C 032A0019 */ multu $t9, $t2
/* 09B830 8009AC30 01C87821 */ addu $t7, $t6, $t0
/* 09B834 8009AC34 A44FFFF8 */ sh $t7, -8($v0)
/* 09B838 8009AC38 30AE07C0 */ andi $t6, $a1, 0x7c0
/* 09B83C 8009AC3C 000E7983 */ sra $t7, $t6, 6
/* 09B840 8009AC40 30B8003E */ andi $t8, $a1, 0x3e
/* 09B844 8009AC44 0018C843 */ sra $t9, $t8, 1
/* 09B848 8009AC48 30A80001 */ andi $t0, $a1, 1
/* 09B84C 8009AC4C 9445FFFC */ lhu $a1, -4($v0)
/* 09B850 8009AC50 00002012 */ mflo $a0
/* 09B854 8009AC54 00000000 */ nop
/* 09B858 8009AC58 00000000 */ nop
/* 09B85C 8009AC5C 01EB0019 */ multu $t7, $t3
/* 09B860 8009AC60 00003012 */ mflo $a2
/* 09B864 8009AC64 00867021 */ addu $t6, $a0, $a2
/* 09B868 8009AC68 00000000 */ nop
/* 09B86C 8009AC6C 032C0019 */ multu $t9, $t4
/* 09B870 8009AC70 00003812 */ mflo $a3
/* 09B874 8009AC74 01C74821 */ addu $t1, $t6, $a3
/* 09B878 8009AC78 00097A02 */ srl $t7, $t1, 8
/* 09B87C 8009AC7C 000FC040 */ sll $t8, $t7, 1
/* 09B880 8009AC80 000FC980 */ sll $t9, $t7, 6
/* 09B884 8009AC84 03197021 */ addu $t6, $t8, $t9
/* 09B888 8009AC88 000F7AC0 */ sll $t7, $t7, 0xb
/* 09B88C 8009AC8C 01CFC021 */ addu $t8, $t6, $t7
/* 09B890 8009AC90 30AEF800 */ andi $t6, $a1, 0xf800
/* 09B894 8009AC94 000E7AC3 */ sra $t7, $t6, 0xb
/* 09B898 8009AC98 01EA0019 */ multu $t7, $t2
/* 09B89C 8009AC9C 0308C821 */ addu $t9, $t8, $t0
/* 09B8A0 8009ACA0 A459FFFA */ sh $t9, -6($v0)
/* 09B8A4 8009ACA4 30B807C0 */ andi $t8, $a1, 0x7c0
/* 09B8A8 8009ACA8 0018C983 */ sra $t9, $t8, 6
/* 09B8AC 8009ACAC 30AE003E */ andi $t6, $a1, 0x3e
/* 09B8B0 8009ACB0 000E7843 */ sra $t7, $t6, 1
/* 09B8B4 8009ACB4 30A80001 */ andi $t0, $a1, 1
/* 09B8B8 8009ACB8 9445FFFE */ lhu $a1, -2($v0)
/* 09B8BC 8009ACBC 00002012 */ mflo $a0
/* 09B8C0 8009ACC0 00000000 */ nop
/* 09B8C4 8009ACC4 00000000 */ nop
/* 09B8C8 8009ACC8 032B0019 */ multu $t9, $t3
/* 09B8CC 8009ACCC 00003012 */ mflo $a2
/* 09B8D0 8009ACD0 0086C021 */ addu $t8, $a0, $a2
/* 09B8D4 8009ACD4 00000000 */ nop
/* 09B8D8 8009ACD8 01EC0019 */ multu $t7, $t4
/* 09B8DC 8009ACDC 00003812 */ mflo $a3
/* 09B8E0 8009ACE0 03074821 */ addu $t1, $t8, $a3
/* 09B8E4 8009ACE4 0009CA02 */ srl $t9, $t1, 8
/* 09B8E8 8009ACE8 00197040 */ sll $t6, $t9, 1
/* 09B8EC 8009ACEC 00197980 */ sll $t7, $t9, 6
/* 09B8F0 8009ACF0 01CFC021 */ addu $t8, $t6, $t7
/* 09B8F4 8009ACF4 0019CAC0 */ sll $t9, $t9, 0xb
/* 09B8F8 8009ACF8 03197021 */ addu $t6, $t8, $t9
/* 09B8FC 8009ACFC 30B8F800 */ andi $t8, $a1, 0xf800
/* 09B900 8009AD00 0018CAC3 */ sra $t9, $t8, 0xb
/* 09B904 8009AD04 032A0019 */ multu $t9, $t2
/* 09B908 8009AD08 01C87821 */ addu $t7, $t6, $t0
/* 09B90C 8009AD0C A44FFFFC */ sh $t7, -4($v0)
/* 09B910 8009AD10 30AE07C0 */ andi $t6, $a1, 0x7c0
/* 09B914 8009AD14 000E7983 */ sra $t7, $t6, 6
/* 09B918 8009AD18 30B8003E */ andi $t8, $a1, 0x3e
/* 09B91C 8009AD1C 0018C843 */ sra $t9, $t8, 1
/* 09B920 8009AD20 30A80001 */ andi $t0, $a1, 1
/* 09B924 8009AD24 00002012 */ mflo $a0
/* 09B928 8009AD28 00000000 */ nop
/* 09B92C 8009AD2C 00000000 */ nop
/* 09B930 8009AD30 01EB0019 */ multu $t7, $t3
/* 09B934 8009AD34 00003012 */ mflo $a2
/* 09B938 8009AD38 00867021 */ addu $t6, $a0, $a2
/* 09B93C 8009AD3C 00000000 */ nop
/* 09B940 8009AD40 032C0019 */ multu $t9, $t4
/* 09B944 8009AD44 00003812 */ mflo $a3
/* 09B948 8009AD48 01C74821 */ addu $t1, $t6, $a3
/* 09B94C 8009AD4C 00097A02 */ srl $t7, $t1, 8
/* 09B950 8009AD50 000FC040 */ sll $t8, $t7, 1
/* 09B954 8009AD54 000FC980 */ sll $t9, $t7, 6
/* 09B958 8009AD58 03197021 */ addu $t6, $t8, $t9
/* 09B95C 8009AD5C 000F7AC0 */ sll $t7, $t7, 0xb
/* 09B960 8009AD60 01CFC021 */ addu $t8, $t6, $t7
/* 09B964 8009AD64 0308C821 */ addu $t9, $t8, $t0
/* 09B968 8009AD68 146DFF92 */ bne $v1, $t5, .L8009ABB4
/* 09B96C 8009AD6C A459FFFE */ sh $t9, -2($v0)
/* 09B970 8009AD70 03E00008 */ jr $ra
/* 09B974 8009AD74 00000000 */ nop
/* 09B978 8009AD78 3C0F8019 */ lui $t7, %hi(D_8018E118) # $t7, 0x8019
/* 09B97C 8009AD7C 25EFE118 */ addiu $t7, %lo(D_8018E118) # addiu $t7, $t7, -0x1ee8
/* 09B980 8009AD80 000470C0 */ sll $t6, $a0, 3
/* 09B984 8009AD84 01CF1821 */ addu $v1, $t6, $t7
/* 09B988 8009AD88 8C660004 */ lw $a2, 4($v1)
/* 09B98C 8009AD8C 8C6E000C */ lw $t6, 0xc($v1)
/* 09B990 8009AD90 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 09B994 8009AD94 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019
/* 09B998 8009AD98 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9)
/* 09B99C 8009AD9C AFB00008 */ sw $s0, 8($sp)
/* 09B9A0 8009ADA0 0006C040 */ sll $t8, $a2, 1
/* 09B9A4 8009ADA4 01C63823 */ subu $a3, $t6, $a2
/* 09B9A8 8009ADA8 00A08025 */ move $s0, $a1
/* 09B9AC 8009ADAC AFB30014 */ sw $s3, 0x14($sp)
/* 09B9B0 8009ADB0 AFB20010 */ sw $s2, 0x10($sp)
/* 09B9B4 8009ADB4 AFB1000C */ sw $s1, 0xc($sp)
/* 09B9B8 8009ADB8 00004025 */ move $t0, $zero
/* 09B9BC 8009ADBC 10E000B3 */ beqz $a3, .L8009B08C
/* 09B9C0 8009ADC0 03191021 */ addu $v0, $t8, $t9
/* 09B9C4 8009ADC4 30E30003 */ andi $v1, $a3, 3
/* 09B9C8 8009ADC8 10600029 */ beqz $v1, .L8009AE70
/* 09B9CC 8009ADCC 00606025 */ move $t4, $v1
/* 09B9D0 8009ADD0 24130020 */ li $s3, 32
/* 09B9D4 8009ADD4 2412001D */ li $s2, 29
/* 09B9D8 8009ADD8 24110096 */ li $s1, 150
/* 09B9DC 8009ADDC 240D004D */ li $t5, 77
.L8009ADE0:
/* 09B9E0 8009ADE0 94440000 */ lhu $a0, ($v0)
/* 09B9E4 8009ADE4 25080001 */ addiu $t0, $t0, 1
/* 09B9E8 8009ADE8 24420002 */ addiu $v0, $v0, 2
/* 09B9EC 8009ADEC 308FF800 */ andi $t7, $a0, 0xf800
/* 09B9F0 8009ADF0 000FC2C3 */ sra $t8, $t7, 0xb
/* 09B9F4 8009ADF4 030D0019 */ multu $t8, $t5
/* 09B9F8 8009ADF8 309907C0 */ andi $t9, $a0, 0x7c0
/* 09B9FC 8009ADFC 00197183 */ sra $t6, $t9, 6
/* 09BA00 8009AE00 308F003E */ andi $t7, $a0, 0x3e
/* 09BA04 8009AE04 000FC043 */ sra $t8, $t7, 1
/* 09BA08 8009AE08 30890001 */ andi $t1, $a0, 1
/* 09BA0C 8009AE0C 00001812 */ mflo $v1
/* 09BA10 8009AE10 00000000 */ nop
/* 09BA14 8009AE14 00000000 */ nop
/* 09BA18 8009AE18 01D10019 */ multu $t6, $s1
/* 09BA1C 8009AE1C 00002812 */ mflo $a1
/* 09BA20 8009AE20 0065C821 */ addu $t9, $v1, $a1
/* 09BA24 8009AE24 00000000 */ nop
/* 09BA28 8009AE28 03120019 */ multu $t8, $s2
/* 09BA2C 8009AE2C 00003012 */ mflo $a2
/* 09BA30 8009AE30 03265021 */ addu $t2, $t9, $a2
/* 09BA34 8009AE34 000A7202 */ srl $t6, $t2, 8
/* 09BA38 8009AE38 026E7823 */ subu $t7, $s3, $t6
/* 09BA3C 8009AE3C 01F00019 */ multu $t7, $s0
/* 09BA40 8009AE40 0000C012 */ mflo $t8
/* 09BA44 8009AE44 0018CA02 */ srl $t9, $t8, 8
/* 09BA48 8009AE48 01D95821 */ addu $t3, $t6, $t9
/* 09BA4C 8009AE4C 000B7040 */ sll $t6, $t3, 1
/* 09BA50 8009AE50 000B7980 */ sll $t7, $t3, 6
/* 09BA54 8009AE54 01CFC021 */ addu $t8, $t6, $t7
/* 09BA58 8009AE58 000BCAC0 */ sll $t9, $t3, 0xb
/* 09BA5C 8009AE5C 03197021 */ addu $t6, $t8, $t9
/* 09BA60 8009AE60 01C97821 */ addu $t7, $t6, $t1
/* 09BA64 8009AE64 1588FFDE */ bne $t4, $t0, .L8009ADE0
/* 09BA68 8009AE68 A44FFFFE */ sh $t7, -2($v0)
/* 09BA6C 8009AE6C 11070087 */ beq $t0, $a3, .L8009B08C
.L8009AE70:
/* 09BA70 8009AE70 240D004D */ li $t5, 77
/* 09BA74 8009AE74 24110096 */ li $s1, 150
/* 09BA78 8009AE78 2412001D */ li $s2, 29
/* 09BA7C 8009AE7C 24130020 */ li $s3, 32
.L8009AE80:
/* 09BA80 8009AE80 94440000 */ lhu $a0, ($v0)
/* 09BA84 8009AE84 25080004 */ addiu $t0, $t0, 4
/* 09BA88 8009AE88 24420008 */ addiu $v0, $v0, 8
/* 09BA8C 8009AE8C 3098F800 */ andi $t8, $a0, 0xf800
/* 09BA90 8009AE90 0018CAC3 */ sra $t9, $t8, 0xb
/* 09BA94 8009AE94 032D0019 */ multu $t9, $t5
/* 09BA98 8009AE98 308E07C0 */ andi $t6, $a0, 0x7c0
/* 09BA9C 8009AE9C 000E7983 */ sra $t7, $t6, 6
/* 09BAA0 8009AEA0 3098003E */ andi $t8, $a0, 0x3e
/* 09BAA4 8009AEA4 0018C843 */ sra $t9, $t8, 1
/* 09BAA8 8009AEA8 30890001 */ andi $t1, $a0, 1
/* 09BAAC 8009AEAC 9444FFFA */ lhu $a0, -6($v0)
/* 09BAB0 8009AEB0 00001812 */ mflo $v1
/* 09BAB4 8009AEB4 00000000 */ nop
/* 09BAB8 8009AEB8 00000000 */ nop
/* 09BABC 8009AEBC 01F10019 */ multu $t7, $s1
/* 09BAC0 8009AEC0 00002812 */ mflo $a1
/* 09BAC4 8009AEC4 00657021 */ addu $t6, $v1, $a1
/* 09BAC8 8009AEC8 00000000 */ nop
/* 09BACC 8009AECC 03320019 */ multu $t9, $s2
/* 09BAD0 8009AED0 00003012 */ mflo $a2
/* 09BAD4 8009AED4 01C65021 */ addu $t2, $t6, $a2
/* 09BAD8 8009AED8 000A7A02 */ srl $t7, $t2, 8
/* 09BADC 8009AEDC 026FC023 */ subu $t8, $s3, $t7
/* 09BAE0 8009AEE0 03100019 */ multu $t8, $s0
/* 09BAE4 8009AEE4 0000C812 */ mflo $t9
/* 09BAE8 8009AEE8 00197202 */ srl $t6, $t9, 8
/* 09BAEC 8009AEEC 01EE5821 */ addu $t3, $t7, $t6
/* 09BAF0 8009AEF0 000B7840 */ sll $t7, $t3, 1
/* 09BAF4 8009AEF4 000BC180 */ sll $t8, $t3, 6
/* 09BAF8 8009AEF8 01F8C821 */ addu $t9, $t7, $t8
/* 09BAFC 8009AEFC 000B72C0 */ sll $t6, $t3, 0xb
/* 09BB00 8009AF00 032E7821 */ addu $t7, $t9, $t6
/* 09BB04 8009AF04 3099F800 */ andi $t9, $a0, 0xf800
/* 09BB08 8009AF08 001972C3 */ sra $t6, $t9, 0xb
/* 09BB0C 8009AF0C 01CD0019 */ multu $t6, $t5
/* 09BB10 8009AF10 01E9C021 */ addu $t8, $t7, $t1
/* 09BB14 8009AF14 A458FFF8 */ sh $t8, -8($v0)
/* 09BB18 8009AF18 308F07C0 */ andi $t7, $a0, 0x7c0
/* 09BB1C 8009AF1C 000FC183 */ sra $t8, $t7, 6
/* 09BB20 8009AF20 3099003E */ andi $t9, $a0, 0x3e
/* 09BB24 8009AF24 00197043 */ sra $t6, $t9, 1
/* 09BB28 8009AF28 30890001 */ andi $t1, $a0, 1
/* 09BB2C 8009AF2C 9444FFFC */ lhu $a0, -4($v0)
/* 09BB30 8009AF30 00001812 */ mflo $v1
/* 09BB34 8009AF34 00000000 */ nop
/* 09BB38 8009AF38 00000000 */ nop
/* 09BB3C 8009AF3C 03110019 */ multu $t8, $s1
/* 09BB40 8009AF40 00002812 */ mflo $a1
/* 09BB44 8009AF44 00657821 */ addu $t7, $v1, $a1
/* 09BB48 8009AF48 00000000 */ nop
/* 09BB4C 8009AF4C 01D20019 */ multu $t6, $s2
/* 09BB50 8009AF50 00003012 */ mflo $a2
/* 09BB54 8009AF54 01E65021 */ addu $t2, $t7, $a2
/* 09BB58 8009AF58 000AC202 */ srl $t8, $t2, 8
/* 09BB5C 8009AF5C 0278C823 */ subu $t9, $s3, $t8
/* 09BB60 8009AF60 03300019 */ multu $t9, $s0
/* 09BB64 8009AF64 00007012 */ mflo $t6
/* 09BB68 8009AF68 000E7A02 */ srl $t7, $t6, 8
/* 09BB6C 8009AF6C 030F5821 */ addu $t3, $t8, $t7
/* 09BB70 8009AF70 000BC040 */ sll $t8, $t3, 1
/* 09BB74 8009AF74 000BC980 */ sll $t9, $t3, 6
/* 09BB78 8009AF78 03197021 */ addu $t6, $t8, $t9
/* 09BB7C 8009AF7C 000B7AC0 */ sll $t7, $t3, 0xb
/* 09BB80 8009AF80 01CFC021 */ addu $t8, $t6, $t7
/* 09BB84 8009AF84 308EF800 */ andi $t6, $a0, 0xf800
/* 09BB88 8009AF88 000E7AC3 */ sra $t7, $t6, 0xb
/* 09BB8C 8009AF8C 01ED0019 */ multu $t7, $t5
/* 09BB90 8009AF90 0309C821 */ addu $t9, $t8, $t1
/* 09BB94 8009AF94 A459FFFA */ sh $t9, -6($v0)
/* 09BB98 8009AF98 309807C0 */ andi $t8, $a0, 0x7c0
/* 09BB9C 8009AF9C 0018C983 */ sra $t9, $t8, 6
/* 09BBA0 8009AFA0 308E003E */ andi $t6, $a0, 0x3e
/* 09BBA4 8009AFA4 000E7843 */ sra $t7, $t6, 1
/* 09BBA8 8009AFA8 30890001 */ andi $t1, $a0, 1
/* 09BBAC 8009AFAC 9444FFFE */ lhu $a0, -2($v0)
/* 09BBB0 8009AFB0 00001812 */ mflo $v1
/* 09BBB4 8009AFB4 00000000 */ nop
/* 09BBB8 8009AFB8 00000000 */ nop
/* 09BBBC 8009AFBC 03310019 */ multu $t9, $s1
/* 09BBC0 8009AFC0 00002812 */ mflo $a1
/* 09BBC4 8009AFC4 0065C021 */ addu $t8, $v1, $a1
/* 09BBC8 8009AFC8 00000000 */ nop
/* 09BBCC 8009AFCC 01F20019 */ multu $t7, $s2
/* 09BBD0 8009AFD0 00003012 */ mflo $a2
/* 09BBD4 8009AFD4 03065021 */ addu $t2, $t8, $a2
/* 09BBD8 8009AFD8 000ACA02 */ srl $t9, $t2, 8
/* 09BBDC 8009AFDC 02797023 */ subu $t6, $s3, $t9
/* 09BBE0 8009AFE0 01D00019 */ multu $t6, $s0
/* 09BBE4 8009AFE4 00007812 */ mflo $t7
/* 09BBE8 8009AFE8 000FC202 */ srl $t8, $t7, 8
/* 09BBEC 8009AFEC 03385821 */ addu $t3, $t9, $t8
/* 09BBF0 8009AFF0 000BC840 */ sll $t9, $t3, 1
/* 09BBF4 8009AFF4 000B7180 */ sll $t6, $t3, 6
/* 09BBF8 8009AFF8 032E7821 */ addu $t7, $t9, $t6
/* 09BBFC 8009AFFC 000BC2C0 */ sll $t8, $t3, 0xb
/* 09BC00 8009B000 01F8C821 */ addu $t9, $t7, $t8
/* 09BC04 8009B004 308FF800 */ andi $t7, $a0, 0xf800
/* 09BC08 8009B008 000FC2C3 */ sra $t8, $t7, 0xb
/* 09BC0C 8009B00C 030D0019 */ multu $t8, $t5
/* 09BC10 8009B010 03297021 */ addu $t6, $t9, $t1
/* 09BC14 8009B014 A44EFFFC */ sh $t6, -4($v0)
/* 09BC18 8009B018 309907C0 */ andi $t9, $a0, 0x7c0
/* 09BC1C 8009B01C 00197183 */ sra $t6, $t9, 6
/* 09BC20 8009B020 308F003E */ andi $t7, $a0, 0x3e
/* 09BC24 8009B024 000FC043 */ sra $t8, $t7, 1
/* 09BC28 8009B028 30890001 */ andi $t1, $a0, 1
/* 09BC2C 8009B02C 00001812 */ mflo $v1
/* 09BC30 8009B030 00000000 */ nop
/* 09BC34 8009B034 00000000 */ nop
/* 09BC38 8009B038 01D10019 */ multu $t6, $s1
/* 09BC3C 8009B03C 00002812 */ mflo $a1
/* 09BC40 8009B040 0065C821 */ addu $t9, $v1, $a1
/* 09BC44 8009B044 00000000 */ nop
/* 09BC48 8009B048 03120019 */ multu $t8, $s2
/* 09BC4C 8009B04C 00003012 */ mflo $a2
/* 09BC50 8009B050 03265021 */ addu $t2, $t9, $a2
/* 09BC54 8009B054 000A7202 */ srl $t6, $t2, 8
/* 09BC58 8009B058 026E7823 */ subu $t7, $s3, $t6
/* 09BC5C 8009B05C 01F00019 */ multu $t7, $s0
/* 09BC60 8009B060 0000C012 */ mflo $t8
/* 09BC64 8009B064 0018CA02 */ srl $t9, $t8, 8
/* 09BC68 8009B068 01D95821 */ addu $t3, $t6, $t9
/* 09BC6C 8009B06C 000B7040 */ sll $t6, $t3, 1
/* 09BC70 8009B070 000B7980 */ sll $t7, $t3, 6
/* 09BC74 8009B074 01CFC021 */ addu $t8, $t6, $t7
/* 09BC78 8009B078 000BCAC0 */ sll $t9, $t3, 0xb
/* 09BC7C 8009B07C 03197021 */ addu $t6, $t8, $t9
/* 09BC80 8009B080 01C97821 */ addu $t7, $t6, $t1
/* 09BC84 8009B084 1507FF7E */ bne $t0, $a3, .L8009AE80
/* 09BC88 8009B088 A44FFFFE */ sh $t7, -2($v0)
.L8009B08C:
/* 09BC8C 8009B08C 8FB00008 */ lw $s0, 8($sp)
/* 09BC90 8009B090 8FB1000C */ lw $s1, 0xc($sp)
/* 09BC94 8009B094 8FB20010 */ lw $s2, 0x10($sp)
/* 09BC98 8009B098 8FB30014 */ lw $s3, 0x14($sp)
/* 09BC9C 8009B09C 03E00008 */ jr $ra
/* 09BCA0 8009B0A0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -0,0 +1,101 @@
glabel func_8009A9FC
/* 09B5FC 8009A9FC 3C0A8019 */ lui $t2, %hi(D_8018E118) # $t2, 0x8019
/* 09B600 8009AA00 254AE118 */ addiu $t2, %lo(D_8018E118) # addiu $t2, $t2, -0x1ee8
/* 09B604 8009AA04 000470C0 */ sll $t6, $a0, 3
/* 09B608 8009AA08 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 09B60C 8009AA0C 014E7821 */ addu $t7, $t2, $t6
/* 09B610 8009AA10 8DF80004 */ lw $t8, 4($t7)
/* 09B614 8009AA14 3C038019 */ lui $v1, %hi(D_8018D9B0) # $v1, 0x8019
/* 09B618 8009AA18 000570C0 */ sll $t6, $a1, 3
/* 09B61C 8009AA1C 8C63D9B0 */ lw $v1, %lo(D_8018D9B0)($v1)
/* 09B620 8009AA20 AFB30014 */ sw $s3, 0x14($sp)
/* 09B624 8009AA24 AFB20010 */ sw $s2, 0x10($sp)
/* 09B628 8009AA28 AFB1000C */ sw $s1, 0xc($sp)
/* 09B62C 8009AA2C AFB00008 */ sw $s0, 8($sp)
/* 09B630 8009AA30 014E7821 */ addu $t7, $t2, $t6
/* 09B634 8009AA34 0018C840 */ sll $t9, $t8, 1
/* 09B638 8009AA38 8DF80004 */ lw $t8, 4($t7)
/* 09B63C 8009AA3C 03231021 */ addu $v0, $t9, $v1
/* 09B640 8009AA40 00E08025 */ move $s0, $a3
/* 09B644 8009AA44 0018C840 */ sll $t9, $t8, 1
/* 09B648 8009AA48 00004825 */ move $t1, $zero
/* 09B64C 8009AA4C 10C00045 */ beqz $a2, .L8009AB64
/* 09B650 8009AA50 03234021 */ addu $t0, $t9, $v1
/* 09B654 8009AA54 24130007 */ li $s3, 7
/* 09B658 8009AA58 24120006 */ li $s2, 6
/* 09B65C 8009AA5C 2411001D */ li $s1, 29
/* 09B660 8009AA60 240D0096 */ li $t5, 150
/* 09B664 8009AA64 240C004D */ li $t4, 77
.L8009AA68:
/* 09B668 8009AA68 94440000 */ lhu $a0, ($v0)
/* 09B66C 8009AA6C 25290001 */ addiu $t1, $t1, 1
/* 09B670 8009AA70 24420002 */ addiu $v0, $v0, 2
/* 09B674 8009AA74 3083F800 */ andi $v1, $a0, 0xf800
/* 09B678 8009AA78 000372C3 */ sra $t6, $v1, 0xb
/* 09B67C 8009AA7C 01CC0019 */ multu $t6, $t4
/* 09B680 8009AA80 308507C0 */ andi $a1, $a0, 0x7c0
/* 09B684 8009AA84 00057983 */ sra $t7, $a1, 6
/* 09B688 8009AA88 01C01825 */ move $v1, $t6
/* 09B68C 8009AA8C 3087003E */ andi $a3, $a0, 0x3e
/* 09B690 8009AA90 0007C043 */ sra $t8, $a3, 1
/* 09B694 8009AA94 03003825 */ move $a3, $t8
/* 09B698 8009AA98 01E02825 */ move $a1, $t7
/* 09B69C 8009AA9C 308A0001 */ andi $t2, $a0, 1
/* 09B6A0 8009AAA0 25080002 */ addiu $t0, $t0, 2
/* 09B6A4 8009AAA4 0000C812 */ mflo $t9
/* 09B6A8 8009AAA8 00000000 */ nop
/* 09B6AC 8009AAAC 00000000 */ nop
/* 09B6B0 8009AAB0 01ED0019 */ multu $t7, $t5
/* 09B6B4 8009AAB4 00007012 */ mflo $t6
/* 09B6B8 8009AAB8 032E7821 */ addu $t7, $t9, $t6
/* 09B6BC 8009AABC 00000000 */ nop
/* 09B6C0 8009AAC0 03110019 */ multu $t8, $s1
/* 09B6C4 8009AAC4 0000C012 */ mflo $t8
/* 09B6C8 8009AAC8 01F85821 */ addu $t3, $t7, $t8
/* 09B6CC 8009AACC 000BCA03 */ sra $t9, $t3, 8
/* 09B6D0 8009AAD0 03320019 */ multu $t9, $s2
/* 09B6D4 8009AAD4 03205825 */ move $t3, $t9
/* 09B6D8 8009AAD8 00007012 */ mflo $t6
/* 09B6DC 8009AADC 05C10003 */ bgez $t6, .L8009AAEC
/* 09B6E0 8009AAE0 000E78C3 */ sra $t7, $t6, 3
/* 09B6E4 8009AAE4 25C10007 */ addiu $at, $t6, 7
/* 09B6E8 8009AAE8 000178C3 */ sra $t7, $at, 3
.L8009AAEC:
/* 09B6EC 8009AAEC 01E7C023 */ subu $t8, $t7, $a3
/* 09B6F0 8009AAF0 03100019 */ multu $t8, $s0
/* 09B6F4 8009AAF4 0000C812 */ mflo $t9
/* 09B6F8 8009AAF8 00197203 */ sra $t6, $t9, 8
/* 09B6FC 8009AAFC 01C77821 */ addu $t7, $t6, $a3
/* 09B700 8009AB00 01730019 */ multu $t3, $s3
/* 09B704 8009AB04 000FC040 */ sll $t8, $t7, 1
/* 09B708 8009AB08 0000C812 */ mflo $t9
/* 09B70C 8009AB0C 07210003 */ bgez $t9, .L8009AB1C
/* 09B710 8009AB10 001970C3 */ sra $t6, $t9, 3
/* 09B714 8009AB14 27210007 */ addiu $at, $t9, 7
/* 09B718 8009AB18 000170C3 */ sra $t6, $at, 3
.L8009AB1C:
/* 09B71C 8009AB1C 01C57823 */ subu $t7, $t6, $a1
/* 09B720 8009AB20 01F00019 */ multu $t7, $s0
/* 09B724 8009AB24 0126082B */ sltu $at, $t1, $a2
/* 09B728 8009AB28 0000C812 */ mflo $t9
/* 09B72C 8009AB2C 00197203 */ sra $t6, $t9, 8
/* 09B730 8009AB30 01C57821 */ addu $t7, $t6, $a1
/* 09B734 8009AB34 000FC980 */ sll $t9, $t7, 6
/* 09B738 8009AB38 01637823 */ subu $t7, $t3, $v1
/* 09B73C 8009AB3C 01F00019 */ multu $t7, $s0
/* 09B740 8009AB40 03197021 */ addu $t6, $t8, $t9
/* 09B744 8009AB44 0000C012 */ mflo $t8
/* 09B748 8009AB48 0018CA03 */ sra $t9, $t8, 8
/* 09B74C 8009AB4C 03237821 */ addu $t7, $t9, $v1
/* 09B750 8009AB50 000FC2C0 */ sll $t8, $t7, 0xb
/* 09B754 8009AB54 01D8C821 */ addu $t9, $t6, $t8
/* 09B758 8009AB58 032A7821 */ addu $t7, $t9, $t2
/* 09B75C 8009AB5C 1420FFC2 */ bnez $at, .L8009AA68
/* 09B760 8009AB60 A50FFFFE */ sh $t7, -2($t0)
.L8009AB64:
/* 09B764 8009AB64 8FB00008 */ lw $s0, 8($sp)
/* 09B768 8009AB68 8FB1000C */ lw $s1, 0xc($sp)
/* 09B76C 8009AB6C 8FB20010 */ lw $s2, 0x10($sp)
/* 09B770 8009AB70 8FB30014 */ lw $s3, 0x14($sp)
/* 09B774 8009AB74 03E00008 */ jr $ra
/* 09B778 8009AB78 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -0,0 +1,129 @@
glabel func_8009AB7C
/* 09B77C 8009AB7C 000470C0 */ sll $t6, $a0, 3
/* 09B780 8009AB80 3C0F8019 */ lui $t7, %hi(D_8018E11C) # 0x8019
/* 09B784 8009AB84 01EE7821 */ addu $t7, $t7, $t6
/* 09B788 8009AB88 8DEFE11C */ lw $t7, %lo(D_8018E11C)($t7) # -0x1ee4($t7)
/* 09B78C 8009AB8C 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019
/* 09B790 8009AB90 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9)
/* 09B794 8009AB94 3C0D0004 */ lui $t5, (0x0004B000 >> 16) # lui $t5, 4
/* 09B798 8009AB98 000FC040 */ sll $t8, $t7, 1
/* 09B79C 8009AB9C 35ADB000 */ ori $t5, (0x0004B000 & 0xFFFF) # ori $t5, $t5, 0xb000
/* 09B7A0 8009ABA0 00001825 */ move $v1, $zero
/* 09B7A4 8009ABA4 240C001D */ li $t4, 29
/* 09B7A8 8009ABA8 240B0096 */ li $t3, 150
/* 09B7AC 8009ABAC 240A004D */ li $t2, 77
/* 09B7B0 8009ABB0 03191021 */ addu $v0, $t8, $t9
.L8009ABB4:
/* 09B7B4 8009ABB4 94450000 */ lhu $a1, ($v0)
/* 09B7B8 8009ABB8 24630004 */ addiu $v1, $v1, 4
/* 09B7BC 8009ABBC 24420008 */ addiu $v0, $v0, 8
/* 09B7C0 8009ABC0 30AEF800 */ andi $t6, $a1, 0xf800
/* 09B7C4 8009ABC4 000E7AC3 */ sra $t7, $t6, 0xb
/* 09B7C8 8009ABC8 01EA0019 */ multu $t7, $t2
/* 09B7CC 8009ABCC 30B807C0 */ andi $t8, $a1, 0x7c0
/* 09B7D0 8009ABD0 0018C983 */ sra $t9, $t8, 6
/* 09B7D4 8009ABD4 30AE003E */ andi $t6, $a1, 0x3e
/* 09B7D8 8009ABD8 000E7843 */ sra $t7, $t6, 1
/* 09B7DC 8009ABDC 30A80001 */ andi $t0, $a1, 1
/* 09B7E0 8009ABE0 9445FFFA */ lhu $a1, -6($v0)
/* 09B7E4 8009ABE4 00002012 */ mflo $a0
/* 09B7E8 8009ABE8 00000000 */ nop
/* 09B7EC 8009ABEC 00000000 */ nop
/* 09B7F0 8009ABF0 032B0019 */ multu $t9, $t3
/* 09B7F4 8009ABF4 00003012 */ mflo $a2
/* 09B7F8 8009ABF8 0086C021 */ addu $t8, $a0, $a2
/* 09B7FC 8009ABFC 00000000 */ nop
/* 09B800 8009AC00 01EC0019 */ multu $t7, $t4
/* 09B804 8009AC04 00003812 */ mflo $a3
/* 09B808 8009AC08 03074821 */ addu $t1, $t8, $a3
/* 09B80C 8009AC0C 0009CA02 */ srl $t9, $t1, 8
/* 09B810 8009AC10 00197040 */ sll $t6, $t9, 1
/* 09B814 8009AC14 00197980 */ sll $t7, $t9, 6
/* 09B818 8009AC18 01CFC021 */ addu $t8, $t6, $t7
/* 09B81C 8009AC1C 0019CAC0 */ sll $t9, $t9, 0xb
/* 09B820 8009AC20 03197021 */ addu $t6, $t8, $t9
/* 09B824 8009AC24 30B8F800 */ andi $t8, $a1, 0xf800
/* 09B828 8009AC28 0018CAC3 */ sra $t9, $t8, 0xb
/* 09B82C 8009AC2C 032A0019 */ multu $t9, $t2
/* 09B830 8009AC30 01C87821 */ addu $t7, $t6, $t0
/* 09B834 8009AC34 A44FFFF8 */ sh $t7, -8($v0)
/* 09B838 8009AC38 30AE07C0 */ andi $t6, $a1, 0x7c0
/* 09B83C 8009AC3C 000E7983 */ sra $t7, $t6, 6
/* 09B840 8009AC40 30B8003E */ andi $t8, $a1, 0x3e
/* 09B844 8009AC44 0018C843 */ sra $t9, $t8, 1
/* 09B848 8009AC48 30A80001 */ andi $t0, $a1, 1
/* 09B84C 8009AC4C 9445FFFC */ lhu $a1, -4($v0)
/* 09B850 8009AC50 00002012 */ mflo $a0
/* 09B854 8009AC54 00000000 */ nop
/* 09B858 8009AC58 00000000 */ nop
/* 09B85C 8009AC5C 01EB0019 */ multu $t7, $t3
/* 09B860 8009AC60 00003012 */ mflo $a2
/* 09B864 8009AC64 00867021 */ addu $t6, $a0, $a2
/* 09B868 8009AC68 00000000 */ nop
/* 09B86C 8009AC6C 032C0019 */ multu $t9, $t4
/* 09B870 8009AC70 00003812 */ mflo $a3
/* 09B874 8009AC74 01C74821 */ addu $t1, $t6, $a3
/* 09B878 8009AC78 00097A02 */ srl $t7, $t1, 8
/* 09B87C 8009AC7C 000FC040 */ sll $t8, $t7, 1
/* 09B880 8009AC80 000FC980 */ sll $t9, $t7, 6
/* 09B884 8009AC84 03197021 */ addu $t6, $t8, $t9
/* 09B888 8009AC88 000F7AC0 */ sll $t7, $t7, 0xb
/* 09B88C 8009AC8C 01CFC021 */ addu $t8, $t6, $t7
/* 09B890 8009AC90 30AEF800 */ andi $t6, $a1, 0xf800
/* 09B894 8009AC94 000E7AC3 */ sra $t7, $t6, 0xb
/* 09B898 8009AC98 01EA0019 */ multu $t7, $t2
/* 09B89C 8009AC9C 0308C821 */ addu $t9, $t8, $t0
/* 09B8A0 8009ACA0 A459FFFA */ sh $t9, -6($v0)
/* 09B8A4 8009ACA4 30B807C0 */ andi $t8, $a1, 0x7c0
/* 09B8A8 8009ACA8 0018C983 */ sra $t9, $t8, 6
/* 09B8AC 8009ACAC 30AE003E */ andi $t6, $a1, 0x3e
/* 09B8B0 8009ACB0 000E7843 */ sra $t7, $t6, 1
/* 09B8B4 8009ACB4 30A80001 */ andi $t0, $a1, 1
/* 09B8B8 8009ACB8 9445FFFE */ lhu $a1, -2($v0)
/* 09B8BC 8009ACBC 00002012 */ mflo $a0
/* 09B8C0 8009ACC0 00000000 */ nop
/* 09B8C4 8009ACC4 00000000 */ nop
/* 09B8C8 8009ACC8 032B0019 */ multu $t9, $t3
/* 09B8CC 8009ACCC 00003012 */ mflo $a2
/* 09B8D0 8009ACD0 0086C021 */ addu $t8, $a0, $a2
/* 09B8D4 8009ACD4 00000000 */ nop
/* 09B8D8 8009ACD8 01EC0019 */ multu $t7, $t4
/* 09B8DC 8009ACDC 00003812 */ mflo $a3
/* 09B8E0 8009ACE0 03074821 */ addu $t1, $t8, $a3
/* 09B8E4 8009ACE4 0009CA02 */ srl $t9, $t1, 8
/* 09B8E8 8009ACE8 00197040 */ sll $t6, $t9, 1
/* 09B8EC 8009ACEC 00197980 */ sll $t7, $t9, 6
/* 09B8F0 8009ACF0 01CFC021 */ addu $t8, $t6, $t7
/* 09B8F4 8009ACF4 0019CAC0 */ sll $t9, $t9, 0xb
/* 09B8F8 8009ACF8 03197021 */ addu $t6, $t8, $t9
/* 09B8FC 8009ACFC 30B8F800 */ andi $t8, $a1, 0xf800
/* 09B900 8009AD00 0018CAC3 */ sra $t9, $t8, 0xb
/* 09B904 8009AD04 032A0019 */ multu $t9, $t2
/* 09B908 8009AD08 01C87821 */ addu $t7, $t6, $t0
/* 09B90C 8009AD0C A44FFFFC */ sh $t7, -4($v0)
/* 09B910 8009AD10 30AE07C0 */ andi $t6, $a1, 0x7c0
/* 09B914 8009AD14 000E7983 */ sra $t7, $t6, 6
/* 09B918 8009AD18 30B8003E */ andi $t8, $a1, 0x3e
/* 09B91C 8009AD1C 0018C843 */ sra $t9, $t8, 1
/* 09B920 8009AD20 30A80001 */ andi $t0, $a1, 1
/* 09B924 8009AD24 00002012 */ mflo $a0
/* 09B928 8009AD28 00000000 */ nop
/* 09B92C 8009AD2C 00000000 */ nop
/* 09B930 8009AD30 01EB0019 */ multu $t7, $t3
/* 09B934 8009AD34 00003012 */ mflo $a2
/* 09B938 8009AD38 00867021 */ addu $t6, $a0, $a2
/* 09B93C 8009AD3C 00000000 */ nop
/* 09B940 8009AD40 032C0019 */ multu $t9, $t4
/* 09B944 8009AD44 00003812 */ mflo $a3
/* 09B948 8009AD48 01C74821 */ addu $t1, $t6, $a3
/* 09B94C 8009AD4C 00097A02 */ srl $t7, $t1, 8
/* 09B950 8009AD50 000FC040 */ sll $t8, $t7, 1
/* 09B954 8009AD54 000FC980 */ sll $t9, $t7, 6
/* 09B958 8009AD58 03197021 */ addu $t6, $t8, $t9
/* 09B95C 8009AD5C 000F7AC0 */ sll $t7, $t7, 0xb
/* 09B960 8009AD60 01CFC021 */ addu $t8, $t6, $t7
/* 09B964 8009AD64 0308C821 */ addu $t9, $t8, $t0
/* 09B968 8009AD68 146DFF92 */ bne $v1, $t5, .L8009ABB4
/* 09B96C 8009AD6C A459FFFE */ sh $t9, -2($v0)
/* 09B970 8009AD70 03E00008 */ jr $ra
/* 09B974 8009AD74 00000000 */ nop

View File

@ -0,0 +1,208 @@
glabel func_8009AD78
/* 09B978 8009AD78 3C0F8019 */ lui $t7, %hi(D_8018E118) # $t7, 0x8019
/* 09B97C 8009AD7C 25EFE118 */ addiu $t7, %lo(D_8018E118) # addiu $t7, $t7, -0x1ee8
/* 09B980 8009AD80 000470C0 */ sll $t6, $a0, 3
/* 09B984 8009AD84 01CF1821 */ addu $v1, $t6, $t7
/* 09B988 8009AD88 8C660004 */ lw $a2, 4($v1)
/* 09B98C 8009AD8C 8C6E000C */ lw $t6, 0xc($v1)
/* 09B990 8009AD90 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 09B994 8009AD94 3C198019 */ lui $t9, %hi(D_8018D9B0) # $t9, 0x8019
/* 09B998 8009AD98 8F39D9B0 */ lw $t9, %lo(D_8018D9B0)($t9)
/* 09B99C 8009AD9C AFB00008 */ sw $s0, 8($sp)
/* 09B9A0 8009ADA0 0006C040 */ sll $t8, $a2, 1
/* 09B9A4 8009ADA4 01C63823 */ subu $a3, $t6, $a2
/* 09B9A8 8009ADA8 00A08025 */ move $s0, $a1
/* 09B9AC 8009ADAC AFB30014 */ sw $s3, 0x14($sp)
/* 09B9B0 8009ADB0 AFB20010 */ sw $s2, 0x10($sp)
/* 09B9B4 8009ADB4 AFB1000C */ sw $s1, 0xc($sp)
/* 09B9B8 8009ADB8 00004025 */ move $t0, $zero
/* 09B9BC 8009ADBC 10E000B3 */ beqz $a3, .L8009B08C
/* 09B9C0 8009ADC0 03191021 */ addu $v0, $t8, $t9
/* 09B9C4 8009ADC4 30E30003 */ andi $v1, $a3, 3
/* 09B9C8 8009ADC8 10600029 */ beqz $v1, .L8009AE70
/* 09B9CC 8009ADCC 00606025 */ move $t4, $v1
/* 09B9D0 8009ADD0 24130020 */ li $s3, 32
/* 09B9D4 8009ADD4 2412001D */ li $s2, 29
/* 09B9D8 8009ADD8 24110096 */ li $s1, 150
/* 09B9DC 8009ADDC 240D004D */ li $t5, 77
.L8009ADE0:
/* 09B9E0 8009ADE0 94440000 */ lhu $a0, ($v0)
/* 09B9E4 8009ADE4 25080001 */ addiu $t0, $t0, 1
/* 09B9E8 8009ADE8 24420002 */ addiu $v0, $v0, 2
/* 09B9EC 8009ADEC 308FF800 */ andi $t7, $a0, 0xf800
/* 09B9F0 8009ADF0 000FC2C3 */ sra $t8, $t7, 0xb
/* 09B9F4 8009ADF4 030D0019 */ multu $t8, $t5
/* 09B9F8 8009ADF8 309907C0 */ andi $t9, $a0, 0x7c0
/* 09B9FC 8009ADFC 00197183 */ sra $t6, $t9, 6
/* 09BA00 8009AE00 308F003E */ andi $t7, $a0, 0x3e
/* 09BA04 8009AE04 000FC043 */ sra $t8, $t7, 1
/* 09BA08 8009AE08 30890001 */ andi $t1, $a0, 1
/* 09BA0C 8009AE0C 00001812 */ mflo $v1
/* 09BA10 8009AE10 00000000 */ nop
/* 09BA14 8009AE14 00000000 */ nop
/* 09BA18 8009AE18 01D10019 */ multu $t6, $s1
/* 09BA1C 8009AE1C 00002812 */ mflo $a1
/* 09BA20 8009AE20 0065C821 */ addu $t9, $v1, $a1
/* 09BA24 8009AE24 00000000 */ nop
/* 09BA28 8009AE28 03120019 */ multu $t8, $s2
/* 09BA2C 8009AE2C 00003012 */ mflo $a2
/* 09BA30 8009AE30 03265021 */ addu $t2, $t9, $a2
/* 09BA34 8009AE34 000A7202 */ srl $t6, $t2, 8
/* 09BA38 8009AE38 026E7823 */ subu $t7, $s3, $t6
/* 09BA3C 8009AE3C 01F00019 */ multu $t7, $s0
/* 09BA40 8009AE40 0000C012 */ mflo $t8
/* 09BA44 8009AE44 0018CA02 */ srl $t9, $t8, 8
/* 09BA48 8009AE48 01D95821 */ addu $t3, $t6, $t9
/* 09BA4C 8009AE4C 000B7040 */ sll $t6, $t3, 1
/* 09BA50 8009AE50 000B7980 */ sll $t7, $t3, 6
/* 09BA54 8009AE54 01CFC021 */ addu $t8, $t6, $t7
/* 09BA58 8009AE58 000BCAC0 */ sll $t9, $t3, 0xb
/* 09BA5C 8009AE5C 03197021 */ addu $t6, $t8, $t9
/* 09BA60 8009AE60 01C97821 */ addu $t7, $t6, $t1
/* 09BA64 8009AE64 1588FFDE */ bne $t4, $t0, .L8009ADE0
/* 09BA68 8009AE68 A44FFFFE */ sh $t7, -2($v0)
/* 09BA6C 8009AE6C 11070087 */ beq $t0, $a3, .L8009B08C
.L8009AE70:
/* 09BA70 8009AE70 240D004D */ li $t5, 77
/* 09BA74 8009AE74 24110096 */ li $s1, 150
/* 09BA78 8009AE78 2412001D */ li $s2, 29
/* 09BA7C 8009AE7C 24130020 */ li $s3, 32
.L8009AE80:
/* 09BA80 8009AE80 94440000 */ lhu $a0, ($v0)
/* 09BA84 8009AE84 25080004 */ addiu $t0, $t0, 4
/* 09BA88 8009AE88 24420008 */ addiu $v0, $v0, 8
/* 09BA8C 8009AE8C 3098F800 */ andi $t8, $a0, 0xf800
/* 09BA90 8009AE90 0018CAC3 */ sra $t9, $t8, 0xb
/* 09BA94 8009AE94 032D0019 */ multu $t9, $t5
/* 09BA98 8009AE98 308E07C0 */ andi $t6, $a0, 0x7c0
/* 09BA9C 8009AE9C 000E7983 */ sra $t7, $t6, 6
/* 09BAA0 8009AEA0 3098003E */ andi $t8, $a0, 0x3e
/* 09BAA4 8009AEA4 0018C843 */ sra $t9, $t8, 1
/* 09BAA8 8009AEA8 30890001 */ andi $t1, $a0, 1
/* 09BAAC 8009AEAC 9444FFFA */ lhu $a0, -6($v0)
/* 09BAB0 8009AEB0 00001812 */ mflo $v1
/* 09BAB4 8009AEB4 00000000 */ nop
/* 09BAB8 8009AEB8 00000000 */ nop
/* 09BABC 8009AEBC 01F10019 */ multu $t7, $s1
/* 09BAC0 8009AEC0 00002812 */ mflo $a1
/* 09BAC4 8009AEC4 00657021 */ addu $t6, $v1, $a1
/* 09BAC8 8009AEC8 00000000 */ nop
/* 09BACC 8009AECC 03320019 */ multu $t9, $s2
/* 09BAD0 8009AED0 00003012 */ mflo $a2
/* 09BAD4 8009AED4 01C65021 */ addu $t2, $t6, $a2
/* 09BAD8 8009AED8 000A7A02 */ srl $t7, $t2, 8
/* 09BADC 8009AEDC 026FC023 */ subu $t8, $s3, $t7
/* 09BAE0 8009AEE0 03100019 */ multu $t8, $s0
/* 09BAE4 8009AEE4 0000C812 */ mflo $t9
/* 09BAE8 8009AEE8 00197202 */ srl $t6, $t9, 8
/* 09BAEC 8009AEEC 01EE5821 */ addu $t3, $t7, $t6
/* 09BAF0 8009AEF0 000B7840 */ sll $t7, $t3, 1
/* 09BAF4 8009AEF4 000BC180 */ sll $t8, $t3, 6
/* 09BAF8 8009AEF8 01F8C821 */ addu $t9, $t7, $t8
/* 09BAFC 8009AEFC 000B72C0 */ sll $t6, $t3, 0xb
/* 09BB00 8009AF00 032E7821 */ addu $t7, $t9, $t6
/* 09BB04 8009AF04 3099F800 */ andi $t9, $a0, 0xf800
/* 09BB08 8009AF08 001972C3 */ sra $t6, $t9, 0xb
/* 09BB0C 8009AF0C 01CD0019 */ multu $t6, $t5
/* 09BB10 8009AF10 01E9C021 */ addu $t8, $t7, $t1
/* 09BB14 8009AF14 A458FFF8 */ sh $t8, -8($v0)
/* 09BB18 8009AF18 308F07C0 */ andi $t7, $a0, 0x7c0
/* 09BB1C 8009AF1C 000FC183 */ sra $t8, $t7, 6
/* 09BB20 8009AF20 3099003E */ andi $t9, $a0, 0x3e
/* 09BB24 8009AF24 00197043 */ sra $t6, $t9, 1
/* 09BB28 8009AF28 30890001 */ andi $t1, $a0, 1
/* 09BB2C 8009AF2C 9444FFFC */ lhu $a0, -4($v0)
/* 09BB30 8009AF30 00001812 */ mflo $v1
/* 09BB34 8009AF34 00000000 */ nop
/* 09BB38 8009AF38 00000000 */ nop
/* 09BB3C 8009AF3C 03110019 */ multu $t8, $s1
/* 09BB40 8009AF40 00002812 */ mflo $a1
/* 09BB44 8009AF44 00657821 */ addu $t7, $v1, $a1
/* 09BB48 8009AF48 00000000 */ nop
/* 09BB4C 8009AF4C 01D20019 */ multu $t6, $s2
/* 09BB50 8009AF50 00003012 */ mflo $a2
/* 09BB54 8009AF54 01E65021 */ addu $t2, $t7, $a2
/* 09BB58 8009AF58 000AC202 */ srl $t8, $t2, 8
/* 09BB5C 8009AF5C 0278C823 */ subu $t9, $s3, $t8
/* 09BB60 8009AF60 03300019 */ multu $t9, $s0
/* 09BB64 8009AF64 00007012 */ mflo $t6
/* 09BB68 8009AF68 000E7A02 */ srl $t7, $t6, 8
/* 09BB6C 8009AF6C 030F5821 */ addu $t3, $t8, $t7
/* 09BB70 8009AF70 000BC040 */ sll $t8, $t3, 1
/* 09BB74 8009AF74 000BC980 */ sll $t9, $t3, 6
/* 09BB78 8009AF78 03197021 */ addu $t6, $t8, $t9
/* 09BB7C 8009AF7C 000B7AC0 */ sll $t7, $t3, 0xb
/* 09BB80 8009AF80 01CFC021 */ addu $t8, $t6, $t7
/* 09BB84 8009AF84 308EF800 */ andi $t6, $a0, 0xf800
/* 09BB88 8009AF88 000E7AC3 */ sra $t7, $t6, 0xb
/* 09BB8C 8009AF8C 01ED0019 */ multu $t7, $t5
/* 09BB90 8009AF90 0309C821 */ addu $t9, $t8, $t1
/* 09BB94 8009AF94 A459FFFA */ sh $t9, -6($v0)
/* 09BB98 8009AF98 309807C0 */ andi $t8, $a0, 0x7c0
/* 09BB9C 8009AF9C 0018C983 */ sra $t9, $t8, 6
/* 09BBA0 8009AFA0 308E003E */ andi $t6, $a0, 0x3e
/* 09BBA4 8009AFA4 000E7843 */ sra $t7, $t6, 1
/* 09BBA8 8009AFA8 30890001 */ andi $t1, $a0, 1
/* 09BBAC 8009AFAC 9444FFFE */ lhu $a0, -2($v0)
/* 09BBB0 8009AFB0 00001812 */ mflo $v1
/* 09BBB4 8009AFB4 00000000 */ nop
/* 09BBB8 8009AFB8 00000000 */ nop
/* 09BBBC 8009AFBC 03310019 */ multu $t9, $s1
/* 09BBC0 8009AFC0 00002812 */ mflo $a1
/* 09BBC4 8009AFC4 0065C021 */ addu $t8, $v1, $a1
/* 09BBC8 8009AFC8 00000000 */ nop
/* 09BBCC 8009AFCC 01F20019 */ multu $t7, $s2
/* 09BBD0 8009AFD0 00003012 */ mflo $a2
/* 09BBD4 8009AFD4 03065021 */ addu $t2, $t8, $a2
/* 09BBD8 8009AFD8 000ACA02 */ srl $t9, $t2, 8
/* 09BBDC 8009AFDC 02797023 */ subu $t6, $s3, $t9
/* 09BBE0 8009AFE0 01D00019 */ multu $t6, $s0
/* 09BBE4 8009AFE4 00007812 */ mflo $t7
/* 09BBE8 8009AFE8 000FC202 */ srl $t8, $t7, 8
/* 09BBEC 8009AFEC 03385821 */ addu $t3, $t9, $t8
/* 09BBF0 8009AFF0 000BC840 */ sll $t9, $t3, 1
/* 09BBF4 8009AFF4 000B7180 */ sll $t6, $t3, 6
/* 09BBF8 8009AFF8 032E7821 */ addu $t7, $t9, $t6
/* 09BBFC 8009AFFC 000BC2C0 */ sll $t8, $t3, 0xb
/* 09BC00 8009B000 01F8C821 */ addu $t9, $t7, $t8
/* 09BC04 8009B004 308FF800 */ andi $t7, $a0, 0xf800
/* 09BC08 8009B008 000FC2C3 */ sra $t8, $t7, 0xb
/* 09BC0C 8009B00C 030D0019 */ multu $t8, $t5
/* 09BC10 8009B010 03297021 */ addu $t6, $t9, $t1
/* 09BC14 8009B014 A44EFFFC */ sh $t6, -4($v0)
/* 09BC18 8009B018 309907C0 */ andi $t9, $a0, 0x7c0
/* 09BC1C 8009B01C 00197183 */ sra $t6, $t9, 6
/* 09BC20 8009B020 308F003E */ andi $t7, $a0, 0x3e
/* 09BC24 8009B024 000FC043 */ sra $t8, $t7, 1
/* 09BC28 8009B028 30890001 */ andi $t1, $a0, 1
/* 09BC2C 8009B02C 00001812 */ mflo $v1
/* 09BC30 8009B030 00000000 */ nop
/* 09BC34 8009B034 00000000 */ nop
/* 09BC38 8009B038 01D10019 */ multu $t6, $s1
/* 09BC3C 8009B03C 00002812 */ mflo $a1
/* 09BC40 8009B040 0065C821 */ addu $t9, $v1, $a1
/* 09BC44 8009B044 00000000 */ nop
/* 09BC48 8009B048 03120019 */ multu $t8, $s2
/* 09BC4C 8009B04C 00003012 */ mflo $a2
/* 09BC50 8009B050 03265021 */ addu $t2, $t9, $a2
/* 09BC54 8009B054 000A7202 */ srl $t6, $t2, 8
/* 09BC58 8009B058 026E7823 */ subu $t7, $s3, $t6
/* 09BC5C 8009B05C 01F00019 */ multu $t7, $s0
/* 09BC60 8009B060 0000C012 */ mflo $t8
/* 09BC64 8009B064 0018CA02 */ srl $t9, $t8, 8
/* 09BC68 8009B068 01D95821 */ addu $t3, $t6, $t9
/* 09BC6C 8009B06C 000B7040 */ sll $t6, $t3, 1
/* 09BC70 8009B070 000B7980 */ sll $t7, $t3, 6
/* 09BC74 8009B074 01CFC021 */ addu $t8, $t6, $t7
/* 09BC78 8009B078 000BCAC0 */ sll $t9, $t3, 0xb
/* 09BC7C 8009B07C 03197021 */ addu $t6, $t8, $t9
/* 09BC80 8009B080 01C97821 */ addu $t7, $t6, $t1
/* 09BC84 8009B084 1507FF7E */ bne $t0, $a3, .L8009AE80
/* 09BC88 8009B088 A44FFFFE */ sh $t7, -2($v0)
.L8009B08C:
/* 09BC8C 8009B08C 8FB00008 */ lw $s0, 8($sp)
/* 09BC90 8009B090 8FB1000C */ lw $s1, 0xc($sp)
/* 09BC94 8009B094 8FB20010 */ lw $s2, 0x10($sp)
/* 09BC98 8009B098 8FB30014 */ lw $s3, 0x14($sp)
/* 09BC9C 8009B09C 03E00008 */ jr $ra
/* 09BCA0 8009B0A0 27BD0018 */ addiu $sp, $sp, 0x18

View File

@ -1,105 +0,0 @@
glabel func_800A15EC
/* 0A21EC 800A15EC 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 0A21F0 800A15F0 AFBF003C */ sw $ra, 0x3c($sp)
/* 0A21F4 800A15F4 AFB20038 */ sw $s2, 0x38($sp)
/* 0A21F8 800A15F8 AFB10034 */ sw $s1, 0x34($sp)
/* 0A21FC 800A15FC AFB00030 */ sw $s0, 0x30($sp)
/* 0A2200 800A1600 8C820000 */ lw $v0, ($a0)
/* 0A2204 800A1604 3C03800F */ lui $v1, %hi(gCupCourseOrder)
/* 0A2208 800A1608 00808025 */ move $s0, $a0
/* 0A220C 800A160C 2442FF84 */ addiu $v0, $v0, -0x7c
/* 0A2210 800A1610 04410003 */ bgez $v0, .L800A1620
/* 0A2214 800A1614 00027083 */ sra $t6, $v0, 2
/* 0A2218 800A1618 24410003 */ addiu $at, $v0, 3
/* 0A221C 800A161C 00017083 */ sra $t6, $at, 2
.L800A1620:
/* 0A2220 800A1620 000E78C0 */ sll $t7, $t6, 3
/* 0A2224 800A1624 04410004 */ bgez $v0, .L800A1638
/* 0A2228 800A1628 30580003 */ andi $t8, $v0, 3
/* 0A222C 800A162C 13000002 */ beqz $t8, .L800A1638
/* 0A2230 800A1630 00000000 */ nop
/* 0A2234 800A1634 2718FFFC */ addiu $t8, $t8, -4
.L800A1638:
/* 0A2238 800A1638 0018C840 */ sll $t9, $t8, 1
/* 0A223C 800A163C 01F94021 */ addu $t0, $t7, $t9
/* 0A2240 800A1640 00681821 */ addu $v1, $v1, $t0
/* 0A2244 800A1644 84632BB4 */ lh $v1, %lo(gCupCourseOrder)($v1)
/* 0A2248 800A1648 3C04800E */ lui $a0, %hi(D_800E7D74)
/* 0A224C 800A164C 00032880 */ sll $a1, $v1, 2
/* 0A2250 800A1650 00852021 */ addu $a0, $a0, $a1
/* 0A2254 800A1654 8C847D74 */ lw $a0, %lo(D_800E7D74)($a0)
/* 0A2258 800A1658 0C026449 */ jal segmented_to_virtual
/* 0A225C 800A165C AFA50044 */ sw $a1, 0x44($sp)
/* 0A2260 800A1660 3C128015 */ lui $s2, %hi(gDisplayListHead) # $s2, 0x8015
/* 0A2264 800A1664 26520298 */ addiu $s2, %lo(gDisplayListHead) # addiu $s2, $s2, 0x298
/* 0A2268 800A1668 8E06000C */ lw $a2, 0xc($s0)
/* 0A226C 800A166C 8E070010 */ lw $a3, 0x10($s0)
/* 0A2270 800A1670 24090002 */ li $t1, 2
/* 0A2274 800A1674 AFA90010 */ sw $t1, 0x10($sp)
/* 0A2278 800A1678 8E440000 */ lw $a0, ($s2)
/* 0A227C 800A167C 0C027081 */ jal func_8009C204
/* 0A2280 800A1680 00402825 */ move $a1, $v0
/* 0A2284 800A1684 AE420000 */ sw $v0, ($s2)
/* 0A2288 800A1688 8E030010 */ lw $v1, 0x10($s0)
/* 0A228C 800A168C 8E11000C */ lw $s1, 0xc($s0)
/* 0A2290 800A1690 240B00FF */ li $t3, 255
/* 0A2294 800A1694 246A0030 */ addiu $t2, $v1, 0x30
/* 0A2298 800A1698 AFAA0010 */ sw $t2, 0x10($sp)
/* 0A229C 800A169C AFAB0020 */ sw $t3, 0x20($sp)
/* 0A22A0 800A16A0 AFA0001C */ sw $zero, 0x1c($sp)
/* 0A22A4 800A16A4 AFA00018 */ sw $zero, 0x18($sp)
/* 0A22A8 800A16A8 AFA00014 */ sw $zero, 0x14($sp)
/* 0A22AC 800A16AC 00402025 */ move $a0, $v0
/* 0A22B0 800A16B0 24660027 */ addiu $a2, $v1, 0x27
/* 0A22B4 800A16B4 02202825 */ move $a1, $s1
/* 0A22B8 800A16B8 0C02637E */ jal draw_box
/* 0A22BC 800A16BC 26270040 */ addiu $a3, $s1, 0x40
/* 0A22C0 800A16C0 8FAC0044 */ lw $t4, 0x44($sp)
/* 0A22C4 800A16C4 3C04800E */ lui $a0, %hi(D_800E7DC4)
/* 0A22C8 800A16C8 AE420000 */ sw $v0, ($s2)
/* 0A22CC 800A16CC 008C2021 */ addu $a0, $a0, $t4
/* 0A22D0 800A16D0 0C026449 */ jal segmented_to_virtual
/* 0A22D4 800A16D4 8C847DC4 */ lw $a0, %lo(D_800E7DC4)($a0)
/* 0A22D8 800A16D8 8E070010 */ lw $a3, 0x10($s0)
/* 0A22DC 800A16DC 8E06000C */ lw $a2, 0xc($s0)
/* 0A22E0 800A16E0 240D0003 */ li $t5, 3
/* 0A22E4 800A16E4 AFAD0010 */ sw $t5, 0x10($sp)
/* 0A22E8 800A16E8 8E440000 */ lw $a0, ($s2)
/* 0A22EC 800A16EC 00402825 */ move $a1, $v0
/* 0A22F0 800A16F0 0C027081 */ jal func_8009C204
/* 0A22F4 800A16F4 24E70027 */ addiu $a3, $a3, 0x27
/* 0A22F8 800A16F8 AE420000 */ sw $v0, ($s2)
/* 0A22FC 800A16FC 8E040000 */ lw $a0, ($s0)
/* 0A2300 800A1700 0C02D8E7 */ jal func_800B639C
/* 0A2304 800A1704 2484FF84 */ addiu $a0, $a0, -0x7c
/* 0A2308 800A1708 04420018 */ bltzl $v0, .L800A176C
/* 0A230C 800A170C 8FBF003C */ lw $ra, 0x3c($sp)
/* 0A2310 800A1710 8E030010 */ lw $v1, 0x10($s0)
/* 0A2314 800A1714 8E11000C */ lw $s1, 0xc($s0)
/* 0A2318 800A1718 8E440000 */ lw $a0, ($s2)
/* 0A231C 800A171C 246E0009 */ addiu $t6, $v1, 9
/* 0A2320 800A1720 AFAE0010 */ sw $t6, 0x10($sp)
/* 0A2324 800A1724 00603025 */ move $a2, $v1
/* 0A2328 800A1728 26250020 */ addiu $a1, $s1, 0x20
/* 0A232C 800A172C 0C025668 */ jal func_800959A0
/* 0A2330 800A1730 2627003F */ addiu $a3, $s1, 0x3f
/* 0A2334 800A1734 3C040200 */ lui $a0, %hi(D_02004A0C) # $a0, 0x200
/* 0A2338 800A1738 AE420000 */ sw $v0, ($s2)
/* 0A233C 800A173C 0C026449 */ jal segmented_to_virtual
/* 0A2340 800A1740 24844A0C */ addiu $a0, %lo(D_02004A0C) # addiu $a0, $a0, 0x4a0c
/* 0A2344 800A1744 8E06000C */ lw $a2, 0xc($s0)
/* 0A2348 800A1748 8E070010 */ lw $a3, 0x10($s0)
/* 0A234C 800A174C 24180002 */ li $t8, 2
/* 0A2350 800A1750 AFB80010 */ sw $t8, 0x10($sp)
/* 0A2354 800A1754 8E440000 */ lw $a0, ($s2)
/* 0A2358 800A1758 00402825 */ move $a1, $v0
/* 0A235C 800A175C 0C027081 */ jal func_8009C204
/* 0A2360 800A1760 24C60020 */ addiu $a2, $a2, 0x20
/* 0A2364 800A1764 AE420000 */ sw $v0, ($s2)
/* 0A2368 800A1768 8FBF003C */ lw $ra, 0x3c($sp)
.L800A176C:
/* 0A236C 800A176C 8FB00030 */ lw $s0, 0x30($sp)
/* 0A2370 800A1770 8FB10034 */ lw $s1, 0x34($sp)
/* 0A2374 800A1774 8FB20038 */ lw $s2, 0x38($sp)
/* 0A2378 800A1778 03E00008 */ jr $ra
/* 0A237C 800A177C 27BD0050 */ addiu $sp, $sp, 0x50

View File

@ -1,116 +0,0 @@
glabel func_800A1A20
/* 0A2620 800A1A20 3C028019 */ lui $v0, %hi(gTimeTrialDataCourseIndex) # $v0, 0x8019
/* 0A2624 800A1A24 8042EDF7 */ lb $v0, %lo(gTimeTrialDataCourseIndex)($v0)
/* 0A2628 800A1A28 27BDFFC8 */ addiu $sp, $sp, -0x38
/* 0A262C 800A1A2C AFB10028 */ sw $s1, 0x28($sp)
/* 0A2630 800A1A30 3C11800F */ lui $s1, %hi(gCupCourseOrder)
/* 0A2634 800A1A34 AFB30030 */ sw $s3, 0x30($sp)
/* 0A2638 800A1A38 00809825 */ move $s3, $a0
/* 0A263C 800A1A3C AFBF0034 */ sw $ra, 0x34($sp)
/* 0A2640 800A1A40 AFB2002C */ sw $s2, 0x2c($sp)
/* 0A2644 800A1A44 AFB00024 */ sw $s0, 0x24($sp)
/* 0A2648 800A1A48 F7B40018 */ sdc1 $f20, 0x18($sp)
/* 0A264C 800A1A4C 04410003 */ bgez $v0, .L800A1A5C
/* 0A2650 800A1A50 00027083 */ sra $t6, $v0, 2
/* 0A2654 800A1A54 24410003 */ addiu $at, $v0, 3
/* 0A2658 800A1A58 00017083 */ sra $t6, $at, 2
.L800A1A5C:
/* 0A265C 800A1A5C 000E78C0 */ sll $t7, $t6, 3
/* 0A2660 800A1A60 04410004 */ bgez $v0, .L800A1A74
/* 0A2664 800A1A64 30580003 */ andi $t8, $v0, 3
/* 0A2668 800A1A68 13000002 */ beqz $t8, .L800A1A74
/* 0A266C 800A1A6C 00000000 */ nop
/* 0A2670 800A1A70 2718FFFC */ addiu $t8, $t8, -4
.L800A1A74:
/* 0A2674 800A1A74 0018C840 */ sll $t9, $t8, 1
/* 0A2678 800A1A78 01F94021 */ addu $t0, $t7, $t9
/* 0A267C 800A1A7C 02288821 */ addu $s1, $s1, $t0
/* 0A2680 800A1A80 86312BB4 */ lh $s1, %lo(gCupCourseOrder)($s1)
/* 0A2684 800A1A84 24090014 */ li $t1, 20
/* 0A2688 800A1A88 AE69000C */ sw $t1, 0xc($s3)
/* 0A268C 800A1A8C 0C024C36 */ jal set_text_color
/* 0A2690 800A1A90 24040004 */ li $a0, 4
/* 0A2694 800A1A94 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A2698 800A1A98 4481A000 */ mtc1 $at, $f20
/* 0A269C 800A1A9C 8E650010 */ lw $a1, 0x10($s3)
/* 0A26A0 800A1AA0 00118080 */ sll $s0, $s1, 2
/* 0A26A4 800A1AA4 3C06800E */ lui $a2, %hi(D_800E7574)
/* 0A26A8 800A1AA8 00D03021 */ addu $a2, $a2, $s0
/* 0A26AC 800A1AAC 8CC67574 */ lw $a2, %lo(D_800E7574)($a2)
/* 0A26B0 800A1AB0 24040069 */ li $a0, 105
/* 0A26B4 800A1AB4 00003825 */ move $a3, $zero
/* 0A26B8 800A1AB8 24A50019 */ addiu $a1, $a1, 0x19
/* 0A26BC 800A1ABC E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A26C0 800A1AC0 0C024DBB */ jal draw_text
/* 0A26C4 800A1AC4 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A26C8 800A1AC8 0C024C36 */ jal set_text_color
/* 0A26CC 800A1ACC 24040002 */ li $a0, 2
/* 0A26D0 800A1AD0 8E650010 */ lw $a1, 0x10($s3)
/* 0A26D4 800A1AD4 3C06800E */ lui $a2, %hi(D_800E77D8) # $a2, 0x800e
/* 0A26D8 800A1AD8 24C677D8 */ addiu $a2, %lo(D_800E77D8) # addiu $a2, $a2, 0x77d8
/* 0A26DC 800A1ADC E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A26E0 800A1AE0 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A26E4 800A1AE4 2404002D */ li $a0, 45
/* 0A26E8 800A1AE8 00003825 */ move $a3, $zero
/* 0A26EC 800A1AEC 0C024CC9 */ jal func_80093324
/* 0A26F0 800A1AF0 24A50028 */ addiu $a1, $a1, 0x28
/* 0A26F4 800A1AF4 8E650010 */ lw $a1, 0x10($s3)
/* 0A26F8 800A1AF8 3C06800E */ lui $a2, %hi(D_800E77E4)
/* 0A26FC 800A1AFC 00D03021 */ addu $a2, $a2, $s0
/* 0A2700 800A1B00 8CC677E4 */ lw $a2, %lo(D_800E77E4)($a2)
/* 0A2704 800A1B04 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2708 800A1B08 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A270C 800A1B0C 240400A5 */ li $a0, 165
/* 0A2710 800A1B10 24070001 */ li $a3, 1
/* 0A2714 800A1B14 0C024DAE */ jal func_800936B8
/* 0A2718 800A1B18 24A50028 */ addiu $a1, $a1, 0x28
/* 0A271C 800A1B1C 0C024C36 */ jal set_text_color
/* 0A2720 800A1B20 24040003 */ li $a0, 3
/* 0A2724 800A1B24 8E650010 */ lw $a1, 0x10($s3)
/* 0A2728 800A1B28 3C06800E */ lui $a2, %hi(D_800E7728) # $a2, 0x800e
/* 0A272C 800A1B2C 8CC67728 */ lw $a2, %lo(D_800E7728)($a2)
/* 0A2730 800A1B30 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2734 800A1B34 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A2738 800A1B38 240400A0 */ li $a0, 160
/* 0A273C 800A1B3C 00003825 */ move $a3, $zero
/* 0A2740 800A1B40 0C024CC9 */ jal func_80093324
/* 0A2744 800A1B44 24A50086 */ addiu $a1, $a1, 0x86
/* 0A2748 800A1B48 00008025 */ move $s0, $zero
/* 0A274C 800A1B4C 00008825 */ move $s1, $zero
/* 0A2750 800A1B50 24120005 */ li $s2, 5
.L800A1B54:
/* 0A2754 800A1B54 0C024C36 */ jal set_text_color
/* 0A2758 800A1B58 24040002 */ li $a0, 2
/* 0A275C 800A1B5C 8E6A0010 */ lw $t2, 0x10($s3)
/* 0A2760 800A1B60 02002025 */ move $a0, $s0
/* 0A2764 800A1B64 24050096 */ li $a1, 150
/* 0A2768 800A1B68 01513021 */ addu $a2, $t2, $s1
/* 0A276C 800A1B6C 0C0291D3 */ jal func_800A474C
/* 0A2770 800A1B70 24C60092 */ addiu $a2, $a2, 0x92
/* 0A2774 800A1B74 26100001 */ addiu $s0, $s0, 1
/* 0A2778 800A1B78 1612FFF6 */ bne $s0, $s2, .L800A1B54
/* 0A277C 800A1B7C 2631000D */ addiu $s1, $s1, 0xd
/* 0A2780 800A1B80 0C024C36 */ jal set_text_color
/* 0A2784 800A1B84 24040003 */ li $a0, 3
/* 0A2788 800A1B88 8E650010 */ lw $a1, 0x10($s3)
/* 0A278C 800A1B8C 3C06800E */ lui $a2, %hi(D_800E772C) # $a2, 0x800e
/* 0A2790 800A1B90 8CC6772C */ lw $a2, %lo(D_800E772C)($a2)
/* 0A2794 800A1B94 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A2798 800A1B98 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A279C 800A1B9C 240400A0 */ li $a0, 160
/* 0A27A0 800A1BA0 00003825 */ move $a3, $zero
/* 0A27A4 800A1BA4 0C024CC9 */ jal func_80093324
/* 0A27A8 800A1BA8 24A500D5 */ addiu $a1, $a1, 0xd5
/* 0A27AC 800A1BAC 8E660010 */ lw $a2, 0x10($s3)
/* 0A27B0 800A1BB0 24040005 */ li $a0, 5
/* 0A27B4 800A1BB4 24050096 */ li $a1, 150
/* 0A27B8 800A1BB8 0C0291D3 */ jal func_800A474C
/* 0A27BC 800A1BBC 24C600E1 */ addiu $a2, $a2, 0xe1
/* 0A27C0 800A1BC0 8FBF0034 */ lw $ra, 0x34($sp)
/* 0A27C4 800A1BC4 D7B40018 */ ldc1 $f20, 0x18($sp)
/* 0A27C8 800A1BC8 8FB00024 */ lw $s0, 0x24($sp)
/* 0A27CC 800A1BCC 8FB10028 */ lw $s1, 0x28($sp)
/* 0A27D0 800A1BD0 8FB2002C */ lw $s2, 0x2c($sp)
/* 0A27D4 800A1BD4 8FB30030 */ lw $s3, 0x30($sp)
/* 0A27D8 800A1BD8 03E00008 */ jr $ra
/* 0A27DC 800A1BDC 27BD0038 */ addiu $sp, $sp, 0x38

View File

@ -1,122 +0,0 @@
glabel func_800A3C84
/* 0A4884 800A3C84 27BDFFC0 */ addiu $sp, $sp, -0x40
/* 0A4888 800A3C88 AFB20030 */ sw $s2, 0x30($sp)
/* 0A488C 800A3C8C 00809025 */ move $s2, $a0
/* 0A4890 800A3C90 AFBF003C */ sw $ra, 0x3c($sp)
/* 0A4894 800A3C94 AFB40038 */ sw $s4, 0x38($sp)
/* 0A4898 800A3C98 AFB30034 */ sw $s3, 0x34($sp)
/* 0A489C 800A3C9C AFB1002C */ sw $s1, 0x2c($sp)
/* 0A48A0 800A3CA0 AFB00028 */ sw $s0, 0x28($sp)
/* 0A48A4 800A3CA4 F7B40020 */ sdc1 $f20, 0x20($sp)
/* 0A48A8 800A3CA8 0C024C36 */ jal set_text_color
/* 0A48AC 800A3CAC 24040004 */ li $a0, 4
/* 0A48B0 800A3CB0 3C0E8019 */ lui $t6, %hi(gCupSelection) # $t6, 0x8019
/* 0A48B4 800A3CB4 3C188019 */ lui $t8, %hi(gCupCourseSelection) # $t8, 0x8019
/* 0A48B8 800A3CB8 8318EE0B */ lb $t8, %lo(gCupCourseSelection)($t8)
/* 0A48BC 800A3CBC 81CEEE09 */ lb $t6, %lo(gCupSelection)($t6)
/* 0A48C0 800A3CC0 3C09800F */ lui $t1, %hi(gCupCourseOrder)
/* 0A48C4 800A3CC4 0018C840 */ sll $t9, $t8, 1
/* 0A48C8 800A3CC8 000E78C0 */ sll $t7, $t6, 3
/* 0A48CC 800A3CCC 01F94021 */ addu $t0, $t7, $t9
/* 0A48D0 800A3CD0 01284821 */ addu $t1, $t1, $t0
/* 0A48D4 800A3CD4 85292BB4 */ lh $t1, %lo(gCupCourseOrder)($t1)
/* 0A48D8 800A3CD8 3C01800F */ lui $at, %hi(D_800F1CC8) # $at, 0x800f
/* 0A48DC 800A3CDC C4201CC8 */ lwc1 $f0, %lo(D_800F1CC8)($at)
/* 0A48E0 800A3CE0 8E44000C */ lw $a0, 0xc($s2)
/* 0A48E4 800A3CE4 8E450010 */ lw $a1, 0x10($s2)
/* 0A48E8 800A3CE8 3C06800E */ lui $a2, %hi(D_800E7574)
/* 0A48EC 800A3CEC 00095080 */ sll $t2, $t1, 2
/* 0A48F0 800A3CF0 00CA3021 */ addu $a2, $a2, $t2
/* 0A48F4 800A3CF4 8CC67574 */ lw $a2, %lo(D_800E7574)($a2)
/* 0A48F8 800A3CF8 00003825 */ move $a3, $zero
/* 0A48FC 800A3CFC E7A00014 */ swc1 $f0, 0x14($sp)
/* 0A4900 800A3D00 E7A00010 */ swc1 $f0, 0x10($sp)
/* 0A4904 800A3D04 24840043 */ addiu $a0, $a0, 0x43
/* 0A4908 800A3D08 0C024DBB */ jal draw_text
/* 0A490C 800A3D0C 24A50019 */ addiu $a1, $a1, 0x19
/* 0A4910 800A3D10 0C024C36 */ jal set_text_color
/* 0A4914 800A3D14 24040003 */ li $a0, 3
/* 0A4918 800A3D18 3C013F40 */ li $at, 0x3F400000 # 0.750000
/* 0A491C 800A3D1C 4481A000 */ mtc1 $at, $f20
/* 0A4920 800A3D20 8E44000C */ lw $a0, 0xc($s2)
/* 0A4924 800A3D24 8E450010 */ lw $a1, 0x10($s2)
/* 0A4928 800A3D28 3C06800E */ lui $a2, %hi(D_800E7730) # $a2, 0x800e
/* 0A492C 800A3D2C 8CC67730 */ lw $a2, %lo(D_800E7730)($a2)
/* 0A4930 800A3D30 00003825 */ move $a3, $zero
/* 0A4934 800A3D34 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A4938 800A3D38 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A493C 800A3D3C 24840046 */ addiu $a0, $a0, 0x46
/* 0A4940 800A3D40 0C024DBB */ jal draw_text
/* 0A4944 800A3D44 24A50028 */ addiu $a1, $a1, 0x28
/* 0A4948 800A3D48 00008025 */ move $s0, $zero
/* 0A494C 800A3D4C 00008825 */ move $s1, $zero
.L800A3D50:
/* 0A4950 800A3D50 8E4B0010 */ lw $t3, 0x10($s2)
/* 0A4954 800A3D54 8E45000C */ lw $a1, 0xc($s2)
/* 0A4958 800A3D58 02002025 */ move $a0, $s0
/* 0A495C 800A3D5C 01713021 */ addu $a2, $t3, $s1
/* 0A4960 800A3D60 24C60037 */ addiu $a2, $a2, 0x37
/* 0A4964 800A3D64 0C029154 */ jal func_800A4550
/* 0A4968 800A3D68 24A50017 */ addiu $a1, $a1, 0x17
/* 0A496C 800A3D6C 26100001 */ addiu $s0, $s0, 1
/* 0A4970 800A3D70 2A010004 */ slti $at, $s0, 4
/* 0A4974 800A3D74 1420FFF6 */ bnez $at, .L800A3D50
/* 0A4978 800A3D78 2631000F */ addiu $s1, $s1, 0xf
/* 0A497C 800A3D7C 0C024C36 */ jal set_text_color
/* 0A4980 800A3D80 24040003 */ li $a0, 3
/* 0A4984 800A3D84 8E4C000C */ lw $t4, 0xc($s2)
/* 0A4988 800A3D88 8E450010 */ lw $a1, 0x10($s2)
/* 0A498C 800A3D8C 240D00B4 */ li $t5, 180
/* 0A4990 800A3D90 3C06800E */ lui $a2, %hi(D_800E7728) # $a2, 0x800e
/* 0A4994 800A3D94 8CC67728 */ lw $a2, %lo(D_800E7728)($a2)
/* 0A4998 800A3D98 E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A499C 800A3D9C E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A49A0 800A3DA0 00003825 */ move $a3, $zero
/* 0A49A4 800A3DA4 01AC2023 */ subu $a0, $t5, $t4
/* 0A49A8 800A3DA8 0C024CC9 */ jal func_80093324
/* 0A49AC 800A3DAC 24A50086 */ addiu $a1, $a1, 0x86
/* 0A49B0 800A3DB0 00008025 */ move $s0, $zero
/* 0A49B4 800A3DB4 00008825 */ move $s1, $zero
/* 0A49B8 800A3DB8 241400AA */ li $s4, 170
/* 0A49BC 800A3DBC 24130005 */ li $s3, 5
.L800A3DC0:
/* 0A49C0 800A3DC0 0C024C36 */ jal set_text_color
/* 0A49C4 800A3DC4 24040002 */ li $a0, 2
/* 0A49C8 800A3DC8 8E580010 */ lw $t8, 0x10($s2)
/* 0A49CC 800A3DCC 8E4E000C */ lw $t6, 0xc($s2)
/* 0A49D0 800A3DD0 02002025 */ move $a0, $s0
/* 0A49D4 800A3DD4 03113021 */ addu $a2, $t8, $s1
/* 0A49D8 800A3DD8 24C60092 */ addiu $a2, $a2, 0x92
/* 0A49DC 800A3DDC 0C0291D3 */ jal func_800A474C
/* 0A49E0 800A3DE0 028E2823 */ subu $a1, $s4, $t6
/* 0A49E4 800A3DE4 26100001 */ addiu $s0, $s0, 1
/* 0A49E8 800A3DE8 1613FFF5 */ bne $s0, $s3, .L800A3DC0
/* 0A49EC 800A3DEC 2631000D */ addiu $s1, $s1, 0xd
/* 0A49F0 800A3DF0 0C024C36 */ jal set_text_color
/* 0A49F4 800A3DF4 24040003 */ li $a0, 3
/* 0A49F8 800A3DF8 8E4F000C */ lw $t7, 0xc($s2)
/* 0A49FC 800A3DFC 8E450010 */ lw $a1, 0x10($s2)
/* 0A4A00 800A3E00 241900B4 */ li $t9, 180
/* 0A4A04 800A3E04 3C06800E */ lui $a2, %hi(D_800E772C) # $a2, 0x800e
/* 0A4A08 800A3E08 8CC6772C */ lw $a2, %lo(D_800E772C)($a2)
/* 0A4A0C 800A3E0C E7B40014 */ swc1 $f20, 0x14($sp)
/* 0A4A10 800A3E10 E7B40010 */ swc1 $f20, 0x10($sp)
/* 0A4A14 800A3E14 00003825 */ move $a3, $zero
/* 0A4A18 800A3E18 032F2023 */ subu $a0, $t9, $t7
/* 0A4A1C 800A3E1C 0C024CC9 */ jal func_80093324
/* 0A4A20 800A3E20 24A500D5 */ addiu $a1, $a1, 0xd5
/* 0A4A24 800A3E24 8E48000C */ lw $t0, 0xc($s2)
/* 0A4A28 800A3E28 8E460010 */ lw $a2, 0x10($s2)
/* 0A4A2C 800A3E2C 24040005 */ li $a0, 5
/* 0A4A30 800A3E30 02882823 */ subu $a1, $s4, $t0
/* 0A4A34 800A3E34 0C0291D3 */ jal func_800A474C
/* 0A4A38 800A3E38 24C600E1 */ addiu $a2, $a2, 0xe1
/* 0A4A3C 800A3E3C 8FBF003C */ lw $ra, 0x3c($sp)
/* 0A4A40 800A3E40 D7B40020 */ ldc1 $f20, 0x20($sp)
/* 0A4A44 800A3E44 8FB00028 */ lw $s0, 0x28($sp)
/* 0A4A48 800A3E48 8FB1002C */ lw $s1, 0x2c($sp)
/* 0A4A4C 800A3E4C 8FB20030 */ lw $s2, 0x30($sp)
/* 0A4A50 800A3E50 8FB30034 */ lw $s3, 0x34($sp)
/* 0A4A54 800A3E54 8FB40038 */ lw $s4, 0x38($sp)
/* 0A4A58 800A3E58 03E00008 */ jr $ra
/* 0A4A5C 800A3E5C 27BD0040 */ addiu $sp, $sp, 0x40

View File

@ -1,35 +0,0 @@
glabel func_800AB290
/* 0ABE90 800AB290 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0ABE94 800AB294 3C038019 */ lui $v1, %hi(gCupSelection) # $v1, 0x8019
/* 0ABE98 800AB298 2463EE09 */ addiu $v1, %lo(gCupSelection) # addiu $v1, $v1, -0x11f7
/* 0ABE9C 800AB29C AFBF0014 */ sw $ra, 0x14($sp)
/* 0ABEA0 800AB2A0 8C8E001C */ lw $t6, 0x1c($a0)
/* 0ABEA4 800AB2A4 80620000 */ lb $v0, ($v1)
/* 0ABEA8 800AB2A8 00803825 */ move $a3, $a0
/* 0ABEAC 800AB2AC 504E0016 */ beql $v0, $t6, .L800AB308
/* 0ABEB0 800AB2B0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0ABEB4 800AB2B4 AC82001C */ sw $v0, 0x1c($a0)
/* 0ABEB8 800AB2B8 806F0000 */ lb $t7, ($v1)
/* 0ABEBC 800AB2BC 8C990000 */ lw $t9, ($a0)
/* 0ABEC0 800AB2C0 3C0A800F */ lui $t2, %hi(gCupCourseOrder-0xBE) # 0x800f
/* 0ABEC4 800AB2C4 000FC0C0 */ sll $t8, $t7, 3
/* 0ABEC8 800AB2C8 00194040 */ sll $t0, $t9, 1
/* 0ABECC 800AB2CC 03084821 */ addu $t1, $t8, $t0
/* 0ABED0 800AB2D0 01495021 */ addu $t2, $t2, $t1
/* 0ABED4 800AB2D4 854A2AF6 */ lh $t2, %lo(gCupCourseOrder-0xBE)($t2) # 0x2af6($t2)
/* 0ABED8 800AB2D8 3C04800E */ lui $a0, %hi(D_800E7E34)
/* 0ABEDC 800AB2DC AFA70018 */ sw $a3, 0x18($sp)
/* 0ABEE0 800AB2E0 000A5880 */ sll $t3, $t2, 2
/* 0ABEE4 800AB2E4 008B2021 */ addu $a0, $a0, $t3
/* 0ABEE8 800AB2E8 0C026455 */ jal segmented_to_virtual_dupe
/* 0ABEEC 800AB2EC 8C847E34 */ lw $a0, %lo(D_800E7E34)($a0)
/* 0ABEF0 800AB2F0 8FA70018 */ lw $a3, 0x18($sp)
/* 0ABEF4 800AB2F4 00002825 */ move $a1, $zero
/* 0ABEF8 800AB2F8 00403025 */ move $a2, $v0
/* 0ABEFC 800AB2FC 0C026965 */ jal func_8009A594
/* 0ABF00 800AB300 8CE40018 */ lw $a0, 0x18($a3)
/* 0ABF04 800AB304 8FBF0014 */ lw $ra, 0x14($sp)
.L800AB308:
/* 0ABF08 800AB308 27BD0018 */ addiu $sp, $sp, 0x18
/* 0ABF0C 800AB30C 03E00008 */ jr $ra
/* 0ABF10 800AB310 00000000 */ nop

View File

@ -1,45 +0,0 @@
glabel func_800AC978
/* 0AD578 800AC978 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 0AD57C 800AC97C AFBF0014 */ sw $ra, 0x14($sp)
/* 0AD580 800AC980 8C820004 */ lw $v0, 4($a0)
/* 0AD584 800AC984 240E014A */ li $t6, 330
/* 0AD588 800AC988 240F0001 */ li $t7, 1
/* 0AD58C 800AC98C 1040000B */ beqz $v0, .L800AC9BC
/* 0AD590 800AC990 241800FF */ li $t8, 255
/* 0AD594 800AC994 24010001 */ li $at, 1
/* 0AD598 800AC998 1041000C */ beq $v0, $at, .L800AC9CC
/* 0AD59C 800AC99C 240500A0 */ li $a1, 160
/* 0AD5A0 800AC9A0 24010002 */ li $at, 2
/* 0AD5A4 800AC9A4 10410017 */ beq $v0, $at, .L800ACA04
/* 0AD5A8 800AC9A8 24010003 */ li $at, 3
/* 0AD5AC 800AC9AC 50410012 */ beql $v0, $at, .L800AC9F8
/* 0AD5B0 800AC9B0 8C82001C */ lw $v0, 0x1c($a0)
/* 0AD5B4 800AC9B4 10000014 */ b .L800ACA08
/* 0AD5B8 800AC9B8 8FBF0014 */ lw $ra, 0x14($sp)
.L800AC9BC:
/* 0AD5BC 800AC9BC AC8E000C */ sw $t6, 0xc($a0)
/* 0AD5C0 800AC9C0 AC8F0004 */ sw $t7, 4($a0)
/* 0AD5C4 800AC9C4 1000000F */ b .L800ACA04
/* 0AD5C8 800AC9C8 AC98001C */ sw $t8, 0x1c($a0)
.L800AC9CC:
/* 0AD5CC 800AC9CC 0C02A482 */ jal func_800A9208
/* 0AD5D0 800AC9D0 AFA40018 */ sw $a0, 0x18($sp)
/* 0AD5D4 800AC9D4 8FA40018 */ lw $a0, 0x18($sp)
/* 0AD5D8 800AC9D8 240100A0 */ li $at, 160
/* 0AD5DC 800AC9DC 24080002 */ li $t0, 2
/* 0AD5E0 800AC9E0 8C99000C */ lw $t9, 0xc($a0)
/* 0AD5E4 800AC9E4 57210008 */ bnel $t9, $at, .L800ACA08
/* 0AD5E8 800AC9E8 8FBF0014 */ lw $ra, 0x14($sp)
/* 0AD5EC 800AC9EC 10000005 */ b .L800ACA04
/* 0AD5F0 800AC9F0 AC880004 */ sw $t0, 4($a0)
/* 0AD5F4 800AC9F4 8C82001C */ lw $v0, 0x1c($a0)
.L800AC9F8:
/* 0AD5F8 800AC9F8 10400002 */ beqz $v0, .L800ACA04
/* 0AD5FC 800AC9FC 2449FFCD */ addiu $t1, $v0, -0x33
/* 0AD600 800ACA00 AC89001C */ sw $t1, 0x1c($a0)
.L800ACA04:
/* 0AD604 800ACA04 8FBF0014 */ lw $ra, 0x14($sp)
.L800ACA08:
/* 0AD608 800ACA08 27BD0018 */ addiu $sp, $sp, 0x18
/* 0AD60C 800ACA0C 03E00008 */ jr $ra
/* 0AD610 800ACA10 00000000 */ nop

View File

@ -170,4 +170,6 @@ extern s8 D_801658FE;
extern s32 D_8018D120;
extern s32 D_8018D900[];
extern s8 D_8018EDEC;
#endif

View File

@ -257,7 +257,6 @@ SECTIONS
BUILD_DIR/src/os/_Printf.o(.rodata);
BUILD_DIR/asm/os/osSetIntMask.o(.rodata);
BUILD_DIR/src/os/_Ldtob.o(.rodata);
BUILD_DIR/src/data_0DD0A0_3.inc.o(.data);
BUILD_DIR/data/rsp.o(.data);
BUILD_DIR/src/audio/data.o(.data);
}

View File

@ -10,3 +10,5 @@
"G_.*" = "int"
"VIRTUAL_.*" = "unsigned int"
"PHYSICAL_.*" = "unsigned int"
"TIME_TRIAL_.*" = "int"
"TEXT_.*" = "int"

View File

@ -4721,28 +4721,35 @@ void func_8009A7EC(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4) {
}
#ifdef MIPS_TO_C
void func_80099A94(Mk64_Texture *, s32); /* extern */
segment_address_t func_8009A878(struct_8018DEE0_entry *arg0) {
//generated by mips_to_c commit 0ca3d5f5fa5e3d957908269ac1535e7d4f12bce9
void func_8009A878(struct_8018DEE0_entry *arg0) {
Mk64_Animation_Part *temp_v0;
Mk64_Animation_Part *temp_v1;
Mk64_Texture *temp_v0_2;
s32 temp_t1;
s32 temp_t3;
s32 temp_t8;
Mk64_Animation_Part *phi_v0;
temp_v1 = arg0->textureSequence;
if (arg0->sequenceIndex < 0) {
arg0->sequenceIndex = 0;
arg0->frameCountDown = 0;
}
arg0->frameCountDown--;
if (arg0->frameCountDown <= 0) {
arg0->sequenceIndex++;
temp_v0 = &temp_v1[arg0->sequenceIndex];
temp_t8 = arg0->frameCountDown - 1;
arg0->frameCountDown = temp_t8;
if (temp_t8 <= 0) {
temp_t1 = arg0->sequenceIndex + 1;
temp_t3 = temp_t1 * 8;
arg0->sequenceIndex = temp_t1;
temp_v0 = temp_v1 + temp_t3;
phi_v0 = temp_v0;
if (temp_v0->mk64Texture == 0) {
arg0->sequenceIndex = 0;
temp_v0 = &temp_v1[0];
phi_v0 = &temp_v1[0];
}
arg0->frameCountDown = temp_v0->frame_length;
temp_v0_2 = segmented_to_virtual(temp_v0->mk64Texture);
arg0->frameCountDown = phi_v0->frame_length;
temp_v0_2 = segmented_to_virtual(phi_v0->mk64Texture);
if (arg0->unk14 != 0) {
func_80099A94(temp_v0_2, arg0->D_8018E118_index);
arg0->unk14 = 0;
@ -4751,62 +4758,209 @@ segment_address_t func_8009A878(struct_8018DEE0_entry *arg0) {
arg0->unk14 = 1;
}
}
return arg0->textureSequence[arg0->sequenceIndex].mk64Texture;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009A878.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80099E60(s32, s32, s32, void *); // extern
void *segmented_to_virtual(segment_address_t); // extern
s32 func_8009A944(void *arg0, s32 arg1) {
s32 *temp_v0;
s32 temp_a0;
//generated by mips_to_c commit 0ca3d5f5fa5e3d957908269ac1535e7d4f12bce9
void func_8009A944(struct_8018DEE0_entry *arg0, s32 arg1) {
Mk64_Animation_Part *temp_v0;
Mk64_Animation_Part *temp_v1;
Mk64_Texture *temp_a0;
s32 temp_a2;
s32 temp_t1;
s32 temp_t3;
s32 temp_t8;
s32 temp_v1;
void *temp_a3;
s32 *phi_v0;
void *phi_a3;
Mk64_Animation_Part *phi_v0;
temp_a3 = arg0;
temp_v1 = arg0->unk0;
phi_a3 = temp_a3;
if (arg0->unk4 < 0) {
arg0->unk4 = 0;
arg0->unk8 = 0;
temp_v1 = arg0->textureSequence;
if (arg0->sequenceIndex < 0) {
arg0->sequenceIndex = 0;
arg0->frameCountDown = 0;
}
temp_t8 = temp_a3->unk8 - 1;
temp_a3->unk8 = temp_t8;
temp_t8 = arg0->frameCountDown - 1;
arg0->frameCountDown = temp_t8;
if (temp_t8 <= 0) {
temp_t1 = temp_a3->unk4 + 1;
temp_t1 = arg0->sequenceIndex + 1;
temp_t3 = temp_t1 * 8;
temp_a3->unk4 = temp_t1;
arg0->sequenceIndex = temp_t1;
temp_v0 = temp_v1 + temp_t3;
phi_v0 = temp_v0;
if (*temp_v0 == 0) {
temp_a3->unk4 = 0;
phi_v0 = temp_v1 + (0 * 8);
if (temp_v0->mk64Texture == 0) {
arg0->sequenceIndex = 0;
phi_v0 = &temp_v1[0];
}
temp_a3->unk8 = phi_v0->unk4;
arg0 = temp_a3;
temp_a0 = segmented_to_virtual(phi_v0->unk0);
arg0->frameCountDown = phi_v0->frame_length;
arg0 = arg0;
temp_a0 = segmented_to_virtual(phi_v0->mk64Texture);
temp_a2 = arg0->unk14 ^ 1;
arg0->unk14 = temp_a2;
func_80099E60(temp_a0, arg1, temp_a2, arg0);
phi_a3 = arg0;
func_80099E60(temp_a0, arg1, temp_a2);
}
return *(phi_a3->unk0 + (phi_a3->unk4 * 8));
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009A944.s")
#endif
#ifdef MIPS_TO_C
extern s32 D_8018D9B0;
extern ? D_8018E118;
UNUSED void func_8009A9FC(s32 arg0, s32 arg1, u32 arg2, s32 arg3) {
s32 temp_t6;
s32 temp_t7;
s32 temp_t8;
s32 temp_t9;
s32 temp_v1;
u16 temp_a0;
u32 temp_t1;
void *temp_t0;
u16 *phi_v0;
void *phi_t0;
u32 phi_t1;
temp_v1 = D_8018D9B0;
phi_v0 = ((&D_8018E118 + (arg0 * 8))->unk4 * 2) + temp_v1;
phi_t0 = ((&D_8018E118 + (arg1 * 8))->unk4 * 2) + temp_v1;
phi_t1 = 0U;
if (arg2 != 0) {
do {
temp_a0 = *phi_v0;
temp_t1 = phi_t1 + 1;
temp_t6 = (s32) (temp_a0 & 0xF800) >> 0xB;
temp_t7 = (s32) (temp_a0 & 0x7C0) >> 6;
temp_t8 = (s32) (temp_a0 & 0x3E) >> 1;
temp_t0 = phi_t0 + 2;
temp_t9 = (s32) ((temp_t6 * 0x4D) + (temp_t7 * 0x96) + (temp_t8 * 0x1D)) >> 8;
temp_t0->unk-2 = (s16) (((((s32) ((((s32) (temp_t9 * 6) / 8) - temp_t8) * arg3) >> 8) + temp_t8) * 2) + ((((s32) ((((s32) (temp_t9 * 7) / 8) - temp_t7) * arg3) >> 8) + temp_t7) << 6) + ((((s32) ((temp_t9 - temp_t6) * arg3) >> 8) + temp_t6) << 0xB) + (temp_a0 & 1));
phi_v0 += 2;
phi_t0 = temp_t0;
phi_t1 = temp_t1;
} while (temp_t1 < arg2);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009A9FC.s")
#endif
#ifdef MIPS_TO_C
extern s32 D_8018D9B0;
extern ? D_8018E11C;
UNUSED void func_8009AB7C(s32 arg0) {
s32 temp_v1;
u16 *temp_v0;
u16 temp_a1;
u16 temp_a1_2;
u16 temp_a1_3;
u16 temp_a1_4;
u16 *phi_v0;
s32 phi_v1;
phi_v0 = (*(&D_8018E11C + (arg0 * 8)) * 2) + D_8018D9B0;
phi_v1 = 0;
do {
temp_a1 = *phi_v0;
temp_v1 = phi_v1 + 4;
temp_v0 = phi_v0 + 8;
temp_a1_2 = temp_v0->unk-6;
temp_v0->unk-8 = (s16) ((((u32) ((((s32) (temp_a1 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a1 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a1 & 0x3E) >> 1) * 0x1D)) >> 8) * 0x842) + (temp_a1 & 1));
temp_a1_3 = temp_v0->unk-4;
temp_v0->unk-6 = (u16) ((((u32) ((((s32) (temp_a1_2 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a1_2 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a1_2 & 0x3E) >> 1) * 0x1D)) >> 8) * 0x842) + (temp_a1_2 & 1));
temp_a1_4 = temp_v0->unk-2;
temp_v0->unk-4 = (u16) ((((u32) ((((s32) (temp_a1_3 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a1_3 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a1_3 & 0x3E) >> 1) * 0x1D)) >> 8) * 0x842) + (temp_a1_3 & 1));
temp_v0->unk-2 = (u16) ((((u32) ((((s32) (temp_a1_4 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a1_4 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a1_4 & 0x3E) >> 1) * 0x1D)) >> 8) * 0x842) + (temp_a1_4 & 1));
phi_v0 = temp_v0;
phi_v1 = temp_v1;
} while (temp_v1 != 0x4B000);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009AB7C.s")
#endif
#ifdef MIPS_TO_C
extern s32 D_8018D9B0;
extern ? D_8018E118;
UNUSED void func_8009AD78(s32 arg0, s32 arg1) {
s32 temp_a2;
s32 temp_a3;
s32 temp_t0;
s32 temp_t0_2;
s32 temp_v1_2;
u16 *temp_v0;
u16 *temp_v0_2;
u16 *temp_v0_3;
u16 temp_a0;
u16 temp_a0_2;
u16 temp_a0_3;
u16 temp_a0_4;
u16 temp_a0_5;
u32 temp_t6;
u32 temp_t6_2;
u32 temp_t7;
u32 temp_t8;
u32 temp_t9;
void *temp_v1;
u16 *phi_v0;
s32 phi_t0;
u16 *phi_v0_2;
s32 phi_t0_2;
temp_v1 = (arg0 * 8) + &D_8018E118;
temp_a2 = temp_v1->unk4;
temp_a3 = temp_v1->unkC - temp_a2;
temp_v0 = (temp_a2 * 2) + D_8018D9B0;
phi_v0 = temp_v0;
phi_t0 = 0;
phi_v0_2 = temp_v0;
phi_t0_2 = 0;
if (temp_a3 != 0) {
temp_v1_2 = temp_a3 & 3;
if (temp_v1_2 != 0) {
do {
temp_a0 = *phi_v0;
temp_t0 = phi_t0 + 1;
temp_v0_2 = phi_v0 + 2;
temp_t6 = (u32) ((((s32) (temp_a0 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0 & 0x3E) >> 1) * 0x1D)) >> 8;
temp_v0_2->unk-2 = (s16) (((temp_t6 + ((u32) ((0x20 - temp_t6) * arg1) >> 8)) * 0x842) + (temp_a0 & 1));
phi_v0 = temp_v0_2;
phi_t0 = temp_t0;
phi_v0_2 = temp_v0_2;
phi_t0_2 = temp_t0;
} while (temp_v1_2 != temp_t0);
if (temp_t0 != temp_a3) {
goto block_5;
}
} else {
block_5:
do {
temp_a0_2 = *phi_v0_2;
temp_t0_2 = phi_t0_2 + 4;
temp_v0_3 = phi_v0_2 + 8;
temp_a0_3 = temp_v0_3->unk-6;
temp_t7 = (u32) ((((s32) (temp_a0_2 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0_2 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0_2 & 0x3E) >> 1) * 0x1D)) >> 8;
temp_v0_3->unk-8 = (s16) (((temp_t7 + ((u32) ((0x20 - temp_t7) * arg1) >> 8)) * 0x842) + (temp_a0_2 & 1));
temp_a0_4 = temp_v0_3->unk-4;
temp_t8 = (u32) ((((s32) (temp_a0_3 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0_3 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0_3 & 0x3E) >> 1) * 0x1D)) >> 8;
temp_v0_3->unk-6 = (u16) (((temp_t8 + ((u32) ((0x20 - temp_t8) * arg1) >> 8)) * 0x842) + (temp_a0_3 & 1));
temp_a0_5 = temp_v0_3->unk-2;
temp_t9 = (u32) ((((s32) (temp_a0_4 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0_4 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0_4 & 0x3E) >> 1) * 0x1D)) >> 8;
temp_v0_3->unk-4 = (u16) (((temp_t9 + ((u32) ((0x20 - temp_t9) * arg1) >> 8)) * 0x842) + (temp_a0_4 & 1));
temp_t6_2 = (u32) ((((s32) (temp_a0_5 & 0xF800) >> 0xB) * 0x4D) + (((s32) (temp_a0_5 & 0x7C0) >> 6) * 0x96) + (((s32) (temp_a0_5 & 0x3E) >> 1) * 0x1D)) >> 8;
temp_v0_3->unk-2 = (u16) (((temp_t6_2 + ((u32) ((0x20 - temp_t6_2) * arg1) >> 8)) * 0x842) + (temp_a0_5 & 1));
phi_v0_2 = temp_v0_3;
phi_t0_2 = temp_t0_2;
} while (temp_t0_2 != temp_a3);
}
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_8009AD78.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 5bd751fca3befef73d6a2e20d84a88cc918a77fe
f64 func_800917B0(f64, f64); /* extern */
@ -9101,14 +9255,34 @@ GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A0FA4.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
/*
Failed to decompile function func_800A10CC:
//generated by mips_to_c commit 0ca3d5f5fa5e3d957908269ac1535e7d4f12bce9
extern s8 *D_800E7940[0x13];
Label L800A1114 refers to a delay slot; this is currently not supported.
Please modify the assembly to work around it (e.g. copy the instruction
to all jump sources and move the label, or add a nop to the delay slot).
*/
void func_800A10CC(struct_8018D9E0_entry *arg0) {
s32 temp_s1;
s32 temp_s3;
s32 temp_v0;
s32 phi_s0;
s8 **phi_s2;
s32 phi_s1;
temp_v0 = arg0->unk4;
if ((temp_v0 == 2) || (temp_v0 == 3) || (temp_v0 == 4) || (temp_v0 == 5)) {
gDisplayListHead = func_80098C18(gDisplayListHead, 0x1E, 0x32, 0x122, 0x6E, 0, 0, 0, 0xFF);
temp_s3 = arg0->unk4 - 2;
set_text_color(3);
phi_s0 = 0x41;
phi_s2 = (temp_s3 * 0x10) + D_800E7940;
phi_s1 = 0;
do {
func_80093324(0x23, phi_s0, *phi_s2, 0, 0.65f, 0.65f);
temp_s1 = phi_s1 + 4;
phi_s0 += 0xD;
phi_s2 += 4;
phi_s1 = temp_s1;
} while (temp_s1 != 0x10);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A10CC.s")
#endif
@ -9217,75 +9391,39 @@ block_7:
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1500.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
s32 draw_box(s32, s32, s32, s32, s32, s32, s32, s32, s32); // extern
s32 func_800959A0(s32, s32, s32, s32, s32); // extern
s32 func_8009C204(s32, s32, s32, s32, s32); // extern
s32 func_800B639C(s32); // extern
void *segmented_to_virtual(segment_address_t); // extern
extern ? D_02004A0C;
extern ? D_800E7D74;
extern ? D_800E7DC4;
extern ? gCupCourseOrder;
extern s32 gDisplayListHead;
void func_800A15EC(void *arg0) {
s32 sp44;
s32 temp_a1;
s32 temp_s1;
s32 temp_s1_2;
s32 temp_v0;
s32 temp_v0_2;
s32 temp_v1;
s32 temp_v1_2;
temp_v0 = arg0->unk0 - 0x7C;
temp_a1 = *(&gCupCourseOrder + (((temp_v0 / 4) * 8) + ((temp_v0 % 4) * 2))) * 4;
sp44 = temp_a1;
temp_v0_2 = func_8009C204(gDisplayListHead, segmented_to_virtual(*(&D_800E7D74 + temp_a1)), arg0->unkC, arg0->unk10, 2);
gDisplayListHead = temp_v0_2;
temp_v1 = arg0->unk10;
temp_s1 = arg0->unkC;
gDisplayListHead = draw_box(temp_v0_2, temp_s1, temp_v1 + 0x27, temp_s1 + 0x40, temp_v1 + 0x30, 0, 0, 0, 0xFF);
gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(*(&D_800E7DC4 + sp44)), arg0->unkC, arg0->unk10 + 0x27, 3);
if (func_800B639C(arg0->unk0 - 0x7C) >= 0) {
temp_v1_2 = arg0->unk10;
temp_s1_2 = arg0->unkC;
gDisplayListHead = func_800959A0(gDisplayListHead, temp_s1_2 + 0x20, temp_v1_2, temp_s1_2 + 0x3F, temp_v1_2 + 9);
gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(&D_02004A0C), arg0->unkC + 0x20, arg0->unk10, 2);
void func_800A15EC(struct_8018D9E0_entry *arg0) {
s16 courseId = gCupCourseOrder[(arg0->type - 0x7C) / 4][(arg0->type - 0x7C) % 4];
gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(D_800E7D74[courseId]), arg0->column, arg0->row, 2);
gDisplayListHead = draw_box(gDisplayListHead, arg0->column, arg0->row + 0x27, arg0->column + 0x40, arg0->row + 0x30, 0, 0, 0, 0xFF);
gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(D_800E7DC4[courseId]), arg0->column, arg0->row + 0x27, 3);
if (func_800B639C(arg0->type - 0x7C) >= 0) {
// The "^ 0" is required to force the use of v1 instead of a 4th s* register
gDisplayListHead = func_800959A0(gDisplayListHead, arg0->column + 0x20, arg0->row ^ 0, arg0->column + 0x3F, arg0->row + 9);
gDisplayListHead = func_8009C204(gDisplayListHead, segmented_to_virtual(&D_02004A0C), arg0->column + 0x20, arg0->row, 2);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A15EC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
void *func_8009BA74(void *, s32, s32, s32); // extern
void *segmented_to_virtual(segment_address_t); // extern
extern ? D_02001FA4;
extern ? D_800E74D0;
extern void *gDisplayListHead;
//generated by mips_to_c commit 0ca3d5f5fa5e3d957908269ac1535e7d4f12bce9
void func_800A1780(void *arg0) {
void func_800A1780(struct_8018D9E0_entry *arg0) {
Gfx *temp_t0;
RGBA16 *temp_a1;
RGBA16 *temp_v1;
s32 temp_a2;
s32 temp_a3;
s32 temp_v0;
void *temp_a1;
void *temp_t0;
void *temp_v1;
temp_a3 = arg0->unk20;
temp_v1 = &D_800E74D0 + (temp_a3 * 8);
temp_v1 = &D_800E74D0[temp_a3];
temp_v0 = arg0->unk1C;
temp_a2 = 0x100 - temp_v0;
temp_a1 = &D_800E74D0 + (((temp_a3 + 1) % 3) * 8);
temp_a1 = &D_800E74D0[(s32) (temp_a3 + 1) % 3];
temp_t0 = gDisplayListHead;
gDisplayListHead = temp_t0 + 8;
temp_t0->unk0 = 0xFA000000;
temp_t0->unk4 = ((((temp_v1->unk0 * temp_a2) + (temp_a1->unk0 * temp_v0)) / 0x100) << 0x18) | (((((temp_v1->unk2 * temp_a2) + (temp_a1->unk2 * temp_v0)) / 0x100) & 0xFF) << 0x10) | (((((temp_v1->unk4 * temp_a2) + (temp_a1->unk4 * temp_v0)) / 0x100) & 0xFF) << 8) | ((((temp_v1->unk6 * temp_a2) + (temp_a1->unk6 * temp_v0)) / 0x100) & 0xFF);
gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(&D_02001FA4), arg0->unkC, arg0->unk10);
temp_t0->words.w0 = 0xFA000000;
temp_t0->words.w1 = (((s32) ((temp_v1->red * temp_a2) + (temp_a1->red * temp_v0)) / 256) << 0x18) | ((((s32) ((temp_v1->green * temp_a2) + (temp_a1->green * temp_v0)) / 256) & 0xFF) << 0x10) | ((((s32) ((temp_v1->blue * temp_a2) + (temp_a1->blue * temp_v0)) / 256) & 0xFF) << 8) | (((s32) ((temp_v1->alpha * temp_a2) + (temp_a1->alpha * temp_v0)) / 256) & 0xFF);
gDisplayListHead = func_8009BA74(gDisplayListHead, segmented_to_virtual(&D_02001FA4), arg0->column, arg0->row);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1780.s")
@ -9295,7 +9433,7 @@ void func_800A1924(struct_8018D9E0_entry *arg0) {
func_8009A76C(arg0->D_8018DEE0_index, 0x17, 0x84, -1);
if (func_800B639C(gTimeTrialDataCourseIndex) >= TIME_TRIAL_DATA_LUIGI_RACEWAY) {
gDisplayListHead = func_800959A0(gDisplayListHead, 0x57, 0x84, 0x96, 0x95);
gDisplayListHead = func_8009BA74(gDisplayListHead, D_02004A0C, 0x57, 0x84);
gDisplayListHead = func_8009BA74(gDisplayListHead, &D_02004A0C, 0x57, 0x84);
}
func_8004EF9C(gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4]);
do {
@ -9303,56 +9441,29 @@ void func_800A1924(struct_8018D9E0_entry *arg0) {
} while(0);
}
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? draw_text(?, s32, s32, ?, f32, f32); // extern
? func_80093324(?, s32, ? *, ?, f32, f32); // extern
? func_800936B8(?, s32, s32, ?, f32, f32); // extern
? func_800A474C(s32, ?, s32); // extern
? set_text_color(?); // extern
extern ? D_800E7574;
extern ? *D_800E7728;
extern ? *D_800E772C;
extern ? D_800E77D8;
extern ? D_800E77E4;
extern s8 gTimeTrialDataCourseIndex;
extern ? gCupCourseOrder;
void func_800A1A20(struct_8018D9E0_entry *arg0) {
s16 courseId;
s32 recordType;
s32 rowOffset;
void func_800A1A20(void *arg0) {
s16 temp_s1;
s32 temp_s0;
s32 temp_s0_2;
s8 temp_v0;
s32 phi_s0;
s32 phi_s1;
temp_v0 = gTimeTrialDataCourseIndex;
temp_s1 = *(&gCupCourseOrder + (((temp_v0 / 4) * 8) + ((temp_v0 % 4) * 2)));
arg0->unkC = 0x14;
courseId = gCupCourseOrder[gTimeTrialDataCourseIndex / 4][gTimeTrialDataCourseIndex % 4];
arg0->column = 0x14;
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1);
temp_s0 = temp_s1 * 4;
draw_text(0x69, arg0->unk10 + 0x19, *(&D_800E7574 + temp_s0), 0, 0.75f, 0.75f);
draw_text(0x69, arg0->row + 0x19, D_800E7574[courseId], 0, 0.75f, 0.75f);
set_text_color(TEXT_RED);
func_80093324(0x2D, arg0->unk10 + 0x28, &D_800E77D8, 0, 0.75f, 0.75f);
func_800936B8(0xA5, arg0->unk10 + 0x28, *(&D_800E77E4 + temp_s0), 1, 0.75f, 0.75f);
func_80093324(0x2D, arg0->row + 0x28, &D_800E77D8, 0, 0.75f, 0.75f);
func_800936B8(0xA5, arg0->row + 0x28, D_800E77E4[courseId], 1, 0.75f, 0.75f);
set_text_color(TEXT_YELLOW);
func_80093324(0xA0, arg0->unk10 + 0x86, D_800E7728, 0, 0.75f, 0.75f);
phi_s0 = 0;
phi_s1 = 0;
do {
func_80093324(0xA0, arg0->row + 0x86, D_800E7728, 0, 0.75f, 0.75f);
// Print the 3 Lap Time Trial records
for(recordType = TIME_TRIAL_3LAP_RECORD_1, rowOffset = 0; recordType < TIME_TRIAL_1LAP_RECORD; recordType++, rowOffset += 0xD){
set_text_color(TEXT_RED);
func_800A474C(phi_s0, 0x96, arg0->unk10 + phi_s1 + 0x92);
temp_s0_2 = phi_s0 + 1;
phi_s0 = temp_s0_2;
phi_s1 += 0xD;
} while (temp_s0_2 != 5);
func_800A474C(recordType, 0x96, arg0->row + rowOffset + 0x92);
}
set_text_color(TEXT_YELLOW);
func_80093324(0xA0, arg0->unk10 + 0xD5, D_800E772C, 0, 0.75f, 0.75f);
func_800A474C(5, 0x96, arg0->unk10 + 0xE1);
func_80093324(0xA0, arg0->row + 0xD5, D_800E772C, 0, 0.75f, 0.75f);
func_800A474C(TIME_TRIAL_1LAP_RECORD, 0x96, arg0->row + 0xE1);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1A20.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -9484,26 +9595,17 @@ void func_800A1DE0(s32 arg0) {
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1DE0.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_80093324(?, s32, s32, ?, f32, f32); // extern
? set_text_color(?); // extern
extern s32 D_800E7860;
void func_800A1F30(s32 arg0) {
s32 temp_s0;
s32 phi_s0;
s32 *phi_s1;
#ifdef NON_MATCHING
// Equivalent functionality, but the arguments to func_80093324 are
// handled in a slightly different order
void func_800A1F30(struct_8018D9E0_entry *unused) {
s32 row;
char **text;
set_text_color(TEXT_RED);
phi_s0 = 0x49;
phi_s1 = &D_800E7860;
do {
func_80093324(0x2A, phi_s0, *phi_s1, 0, 0.75f, 0.75f);
temp_s0 = phi_s0 + 0x10;
phi_s0 = temp_s0;
phi_s1 += 4;
} while (temp_s0 != 0x69);
for(row = 0x49, text = D_800E7860; row < 0x69; row += 0x10, text++){
func_80093324(0x2A, row, *text, 0, 0.75f, 0.75f);
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A1F30.s")
@ -10472,61 +10574,27 @@ loop_4:
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A3ADC.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? draw_text(s32, s32, s32, ?, f32, f32); // extern
? func_80093324(s32, s32, s32, ?, f32, f32); // extern
? func_800A4550(s32, s32, s32); // extern
? func_800A474C(s32, s32, s32); // extern
? set_text_color(?); // extern
extern ? D_800E7574;
extern s32 D_800E7728;
extern s32 D_800E772C;
extern s32 D_800E7730;
extern f32 D_800F1CC8;
extern s8 gCupSelection;
extern ? gCupCourseOrder;
void func_800A3C84(void *arg0) {
f32 temp_f0;
s32 temp_s0;
s32 temp_s0_2;
s32 phi_s0;
s32 phi_s1;
s32 phi_s0_2;
s32 phi_s1_2;
void func_800A3C84(struct_8018D9E0_entry *arg0) {
s32 recordType;
s32 rowOffset;
set_text_color(TEXT_BLUE_GREEN_RED_CYCLE_1);
temp_f0 = D_800F1CC8;
draw_text(arg0->unkC + 0x43, arg0->unk10 + 0x19, *(&D_800E7574 + (*(&gCupCourseOrder + ((gCupSelection * 8) + (gCupCourseSelection * 2))) * 4)), 0, temp_f0, temp_f0);
draw_text(arg0->column + 0x43, arg0->row + 0x19, D_800E7574[gCupCourseOrder[gCupSelection][gCupCourseSelection]], 0, D_800F1CC8, D_800F1CC8);
set_text_color(TEXT_YELLOW);
draw_text(arg0->unkC + 0x46, arg0->unk10 + 0x28, D_800E7730, 0, 0.75f, 0.75f);
phi_s0 = 0;
phi_s1 = 0;
phi_s0_2 = 0;
phi_s1_2 = 0;
do {
func_800A4550(phi_s0, arg0->unkC + 0x17, arg0->unk10 + phi_s1 + 0x37);
temp_s0 = phi_s0 + 1;
phi_s0 = temp_s0;
phi_s1 += 0xF;
} while (temp_s0 < 4);
draw_text(arg0->column + 0x46, arg0->row + 0x28, D_800E7730, 0, 0.75f, 0.75f);
for(recordType = 0, rowOffset = 0; recordType < TIME_TRIAL_3LAP_RECORD_5; recordType += 1, rowOffset += 0xF){
func_800A4550(recordType, arg0->column + 0x17, arg0->row + rowOffset + 0x37);
}
set_text_color(TEXT_YELLOW);
func_80093324(0xB4 - arg0->unkC, arg0->unk10 + 0x86, D_800E7728, 0, 0.75f, 0.75f);
do {
func_80093324(0xB4 - arg0->column, arg0->row + 0x86, D_800E7728, 0, 0.75f, 0.75f);
for(recordType = 0, rowOffset = 0; recordType < TIME_TRIAL_1LAP_RECORD; recordType += 1, rowOffset += 0xD){
set_text_color(TEXT_RED);
func_800A474C(phi_s0_2, 0xAA - arg0->unkC, arg0->unk10 + phi_s1_2 + 0x92);
temp_s0_2 = phi_s0_2 + 1;
phi_s0_2 = temp_s0_2;
phi_s1_2 += 0xD;
} while (temp_s0_2 != 5);
func_800A474C(recordType, 0xAA - arg0->column, arg0->row + rowOffset + 0x92);
}
set_text_color(TEXT_YELLOW);
func_80093324(0xB4 - arg0->unkC, arg0->unk10 + 0xD5, D_800E772C, 0, 0.75f, 0.75f);
func_800A474C(5, 0xAA - arg0->unkC, arg0->unk10 + 0xE1);
func_80093324(0xB4 - arg0->column, arg0->row + 0xD5, D_800E772C, 0, 0.75f, 0.75f);
func_800A474C(TIME_TRIAL_1LAP_RECORD, 0xAA - arg0->column, arg0->row + 0xE1);
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800A3C84.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit bd0364fa19633bd6201f8007e2d0a7ed87825909
@ -14974,31 +15042,12 @@ void func_800AB260(struct_8018D9E0_entry *arg0) {
}
}
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_8009A594(s32, ?, s32, void *); // extern
void *segmented_to_virtual_dupe(segment_address_t); // extern
extern ? D_800E7E34;
extern s8 gCupSelection;
extern ? gCupCourseOrder;
void func_800AB290(void *arg0) {
s16 temp_t2;
s8 temp_v0;
void *temp_a3;
temp_v0 = gCupSelection;
temp_a3 = arg0;
if (temp_v0 != arg0->unk1C) {
arg0->unk1C = temp_v0;
temp_t2 = *(&gCupCourseOrder - 0xBE + ((gCupSelection * 8) + (arg0->unk0 * 2)));
arg0 = temp_a3;
func_8009A594(arg0->unk18, 0, segmented_to_virtual_dupe(*(&D_800E7E34 + (temp_t2 * 4))), arg0);
void func_800AB290(struct_8018D9E0_entry *arg0) {
if (arg0->unk1C != gCupSelection) {
arg0->unk1C = gCupSelection;
func_8009A594(arg0->D_8018DEE0_index, 0, segmented_to_virtual_dupe(D_800E7E34[gCupCourseOrder[gCupSelection][arg0->type - 0x5F]]));
}
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AB290.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
@ -15870,45 +15919,28 @@ loop_41:
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AC458.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307
? func_800A9208(?); // extern
void func_800AC978(void *arg0) {
s32 temp_v0;
s32 temp_v0_2;
temp_v0 = arg0->unk4;
if (temp_v0 != 0) {
if (temp_v0 != 1) {
if (temp_v0 != 2) {
if (temp_v0 != 3) {
return;
}
temp_v0_2 = arg0->unk1C;
if (temp_v0_2 != 0) {
arg0->unk1C = temp_v0_2 - 0x33;
}
// Duplicate return node #10. Try simplifying control flow for better match
return;
}
// Duplicate return node #10. Try simplifying control flow for better match
return;
}
func_800A9208(0xA0);
if (arg0->unkC == 0xA0) {
void func_800AC978(struct_8018D9E0_entry *arg0) {
switch (arg0->unk4) { /* irregular */
case 0:
arg0->column = 0x14A;
arg0->unk4 = 1;
arg0->unk1C = 0xFF;
break;
case 1:
func_800A9208(arg0, 0xA0);
if (arg0->column == 0xA0) {
arg0->unk4 = 2;
return;
}
return;
break;
case 2:
break;
case 3:
if (arg0->unk1C != 0) {
arg0->unk1C -= 0x33;
}
break;
}
arg0->unkC = 0x14A;
arg0->unk4 = 1;
arg0->unk1C = 0xFF;
}
#else
GLOBAL_ASM("asm/non_matchings/code_80091750/func_800AC978.s")
#endif
#ifdef MIPS_TO_C
//generated by mips_to_c commit 3c3b0cede1a99430bfd3edf8d385802b94f91307

View File

@ -25,7 +25,6 @@ s32 func_80092DF8();
s32 get_string_width(char*);
void set_text_color(s32);
void func_800930E4(s32, s32, s32*);
Gfx *func_8009BEF0(Gfx*, s32, f32, f32, s32, f32,f32);
void print_text0(s32, s32, char*, s32, f32, f32, s32);
void func_80093324(s32, s32, char*, s32, f32, f32);
void func_80093358(s32, s32, char*, s32, f32, f32);
@ -48,6 +47,7 @@ void func_800947B4(struct GfxPool*, s32);
void func_80094A64(Mtx*);
void func_80094C60();
void func_80095574();
Gfx *func_800959A0(Gfx*, s32, s32, s32, s32);
Gfx *func_80098C18(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32);
Gfx *draw_box(Gfx*, s32, s32, s32, s32, s32, s32, s32, s32);
Gfx *func_80098FC8(Gfx*, s32, s32, s32, s32);
@ -55,6 +55,7 @@ void func_80099110();
void func_80099184(s32);
void *segmented_to_virtual(segment_address_t);
void *segmented_to_virtual_dupe(segment_address_t);
Gfx *func_8009C204(Gfx*, Mk64_Texture*, s32, s32, s32);
void func_8009CA2C();
void func_8009CA6C(s32);
void func_80099A94(Mk64_Texture *, s32);
@ -67,18 +68,25 @@ void func_8009A594(s32, s32, segment_address_t);
void func_8009A640(s32, s32, s32, segment_address_t);
void func_8009A76C(s32, s32, s32, s32);
void func_8009A7EC(s32, s32, s32, s32, s32);
segment_address_t func_8009A878(struct_8018DEE0_entry*);
void func_8009A878(struct_8018DEE0_entry*);
void func_8009A944(struct_8018DEE0_entry*, s32);
Gfx *func_8009BA74(Gfx *, Mk64_Texture*, s32, s32);
s32 func_8009C434(s32, struct_8018DEE0_entry*, s32, s32, s32);
s32 func_8009C708(s32, struct_8018DEE0_entry *, s32, s32, s32, s32);
Gfx *func_8009BEF0(Gfx*, s32, f32, f32, s32, f32,f32);
Gfx *func_8009C434(Gfx*, struct_8018DEE0_entry*, s32, s32, s32);
Gfx *func_8009C708(Gfx*, struct_8018DEE0_entry *, s32, s32, s32, s32);
void func_8009C918();
void func_8009E1C0();
void func_8009E208();
void func_8009E258();
void add_8018D9E0_entry(s32, s32, s32, s8);
void func_800A0AD0(struct_8018D9E0_entry*);
void func_800A11D0(struct_8018D9E0_entry*, s32, s32);
void func_800A15EC(struct_8018D9E0_entry*);
void func_800A1924(struct_8018D9E0_entry*);
void func_800A1A20(struct_8018D9E0_entry*);
void func_800A3C84(struct_8018D9E0_entry*);
void func_800A4550(s32, s32, s32);
void func_800A474C(s32, s32, s32);
void func_800A4B38(struct_8018D9E0_entry*);
void func_800A4BC8(struct_8018D9E0_entry*);
void func_800A4EF8(struct_8018D9E0_entry*);
@ -97,6 +105,7 @@ void get_time_record_seconds(s32 , char*);
void get_time_record_centiseconds(s32, char*);
void func_800A8230();
void func_800A8250();
void func_800AB290(struct_8018D9E0_entry*);
void func_800A86E8(struct_8018D9E0_entry*);
void func_800A8E14(struct_8018D9E0_entry*);
void func_800A8EC0(struct_8018D9E0_entry*);
@ -108,6 +117,7 @@ struct_8018D9E0_entry *func_800AAEF4(s32);
struct_8018D9E0_entry *func_800AAF30(s32);
s32 func_800AAF70(s32);
void func_800AAF94(struct_8018D9E0_entry*, s32);
void func_800AC978(struct_8018D9E0_entry*);
// code_80057C60.c
void func_80057CE4();
@ -122,8 +132,9 @@ void func_80057CE4();
extern Mk64_Texture D_0200157C;
extern Mk64_Texture D_02001874;
extern Mk64_Texture D_02001FA4;
extern Mk64_Texture D_02004A0C;
extern Gfx D_02004A0C[];
extern Gfx D_02007650[];
extern Gfx D_020076B0[];
extern Gfx D_020077A8[];
@ -140,22 +151,34 @@ extern Gfx D_06009410[];
extern s16 gGlyphDisplayWidth[]; // D_800EF690
extern RGBA16 D_800E74A8[5];
extern RGBA16 D_800E74D0[3];
extern char *D_800E7500[9];
extern char *D_800E7524[];
extern char *D_800E7574[8];
extern char *D_800E7678[];
extern char *D_800E76CC[4];
extern char *D_800E76DC[4];
extern char *D_800E7728;
extern char *D_800E772C;
extern char *D_800E7730;
extern char *D_800E77A8;
extern char *D_800E77AC;
extern char *D_800E77B0;
extern char *D_800E77D8;
extern char *D_800E77E4[0x14];
extern char *D_800E7860[2];
extern char *D_800E7A88[4];
extern char *D_800E7A98;
extern char *D_800E7A9C[2];
extern Mk64_Texture *D_800E7D74[0x14];
extern Mk64_Texture *D_800E7DC4[0x17];
extern Mk64_Animation_Part *D_800E7E34[0x14];
extern s32 gGlyphTextureLUT[]; // D_800E7E84
extern Mk64_Texture_Group *D_800E82B4[5];
extern f32 D_800E8530;
extern f32 D_800E8534;
extern s8 D_800E86D0[20];
extern f32 D_800F1CC8;
extern f32 D_800F1F04;
extern f32 D_800F1F08;
extern f32 D_800F1F0C;

View File

@ -34,6 +34,7 @@ void func_800B46D0();
void func_800B4728(s32);
void reset_save_data_grand_prix_points_and_sound_mode();
s32 func_800B4874(s32);
s32 func_800B639C(s32);
s32 compute_save_data_checksum_1();
s32 compute_save_data_checksum_2();
void func_800B4A10();
@ -102,7 +103,6 @@ extern s32 D_800E86F4;
extern s8 D_800E86F8;
extern s8 D_800E86FC;
extern s32 gGameModeFromNumPlayersAndRowSelection[SELECTED_PLAYER_DEFINES_TOTAL][MAX_NUM_MAIN_MENU_GAME_TYPES]; // D_800F2B60. 0-4 players, 3 possible game types per player amount
extern s16 gCupCourseOrder[NUM_CUPS][NUM_COURSES_PER_CUP]; // D_800F2BB4
extern u8 D_800F2E60[];
extern u8 D_800F2E64;
extern u8 D_800F2E74;
@ -141,7 +141,6 @@ extern u32 D_8018EDBC;
extern s8 D_8018EDE5;
extern s8 D_8018EDE6;
extern s8 D_8018EDE7;
extern s8 D_8018EDEC;
extern u8 gSoundMode; // D_8018EDF2
extern s8 D_8018EDF3;
extern s8 gTimeTrialDataCourseIndex; // D_8018EDF7

View File

@ -1,364 +0,0 @@
#include <ultra64.h>
#include <macros.h>
#include <types.h>
// audio rodata
/*
struct D_800F2F90 D_800F2F90[] = {
L800C0124, L800C0078, L800C0140, L800C0150,
L800C0094, L800C035C, L800C03B4, L800C03EC,
L800C03EC, L800C0438, L800C0448, L800C03EC,
L800BFE40, L800BFE40, L800BFE40, L800C0468,
L800C048C, L800C049C, L800C01E8, L800C034C,
L800BFE40, L800BFE40, L800C02B4, L800C0298,
L800C0288, L800C026C, L800C0254, L800C0238,
L800C021C, L800C01B4, L800C0160, L800C0184,
L800C0304, L800C02D0, L800C0338, L800C04BC,
L800C04AC, L800C0518, L800C0528, L800C0590,
L800C0630, L800BFEC4, L800C00D0, L800C0608,
L800BFE40, L800BFE40, L800C0640, L800C0068,
L800C0040, L800BFFF8, L800BFFF8, L800BFFF8,
L800BFFA0, L800BFF90, L800BFF48, L800BFF10,
L800BFFA0, L800BFFA0, L800BFFA0, L800BFED4,
L800BFEB4, L800C0880, L800BFE7C
};
struct D_800F308C D_800F308C[] = {
L800C0684, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C07E4, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C0814, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C0830, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C0858, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C06EC, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C0708, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C06BC, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C06CC, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C0714, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C0760, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800BFE40, L800BFE40, L800BFE40, L800BFE40,
L800C077C
};
struct D_800F3350 D_800F3350[] = {
L800C0FF4, L800C0FE4, L800C0AE8, L800C0AE8,
L800C0FD4, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0FC4, L800C0F98, L800C0F98, L800C0F88,
L800C0F78, L800C0F4C, L800C0F30, L800C0F14,
L800C0AE8, L800C0EE8, L800C0DD4, L800C0E50,
L800C0D50, L800C0D50, L800C0D30, L800C0D2C,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0D1C, L800C0CF4, L800C0CAC, L800C0CAC,
L800C0CAC, L800C0C54, L800C0AE8, L800C0C0C,
L800C0BD4, L800C0C54, L800C0C54, L800C0C54,
L800C0B90, L800C0AE8, L800C0AE8, L800C0AE8,
};
struct D_800F3430 D_800F3430[] = {
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C1084, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C1090, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C1098, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C10A0, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8, L800C0AE8, L800C0AE8, L800C0AE8,
L800C0AE8,
0x00000000, 0x00000000, 0x00000000
};
float D_800F35C0 = 3.333333333;
struct D_800F35C4 D_800F35C4[] = {
L800C1A34, L800C1A34, L800C1A34, L800C1A34,
L800C1AEC, L800C1A34
};
float D_800F35DC = 0.1;
float D_800F35E0 = 100000.0;
float D_800F35E4 = 100000.0;
float D_800F35E8 = 0.85;
struct D_800F35EC D_800F35EC[] = {
L800C2A80, L800C2AB8, L800C2AD8, L800C2CDC,
L800C2E40, L800C2F04, L800C3008, L800C3118,
L800C3154, L800C31E4, L800C3218, L800C32B8,
L800C32EC, L800C3430, L800C3390, L800C33E0
};
struct D_800F362C D_800F362C[] = {
L800C3DEC, L800C3E10, L800C3E30, L800C3E70,
L800C3E98, L800C3EBC, L800C3F04
};
float D_800F3648 = 100000.0;
struct D_800F364C D_800F364C[] = {
L800C423C, L800C4268, L800C42A4, L800C42C8,
L800C42FC, L800C4330
};
float D_800F3664 = 100000.0;
float D_800F3668 = 100000.0;
float D_800F366C = 4000000.0;
float D_800F3670 = 10000000000.0;
float D_800F3674 = 0.6;
float D_800F3678 = 0.4;
float D_800F367C = 0.005000;
float D_800F3680 = 0.01;
float D_800F3684 = 12000.0;
float D_800F3688 = 0.03;
float D_800F368C = 0.03;
float D_800F3690 = 0.4;
struct D_800F3694 D_800F3694[] = {
L800C6544, L800C6618, L800C64E4, L800C65B8
L800C65B8, L800C65B8, L800C65B8, L800C65B8
L800C65B8, L800C65B8, L800C65B8, L800C65B8
L800C6544, L800C6544, L800C6618, L800C6618
L800C6544, L800C6618, L800C6618, L800C6618
L800C6618, L800C65B8, L800C65B8, L800C65B8
L800C6618, L800C6618, L800C6618, L800C6618
L800C65B8, L800C65B8, L800C65B8
};
float D_800F3710 = 0.2;
float D_800F3714 = 3500.0;
float D_800F3718 = 3000.0;
float D_800F371C = 0.4;
float D_800F3720 = 0.2;
float D_800F3724 = 0.06;
float D_800F3728 = 0.56;
float D_800F372C = 0.9;
float D_800F3730 = 0.6;
float D_800F3734 = 13000.0;
float D_800F3738 = 0.95;
struct D_800F373C D_800F373C[] = {
L800C69C8, L800C6A0C, L800C6910, L800C6C74,
L800C6CB8, L800C6CFC, L800C6D40, L800C6D84,
L800C6DC8, L800C6E0C, L800C6E50, L800C6E94,
L800C6FA4, L800C6E0C, L800C6A98, L800C6ADC,
L800C6A50, L800C6958, L800C6990, L800C6B20,
L800C7070, L800C6FA4, L800C6FE8, L800C702C,
L800C6B64, L800C6BA8, L800C6BEC, L800C6C30,
L800C6ED8, L800C6F1C, L800C6F60
};
float D_800F37B8 = 3500.0;
struct D_800F37BC
L800C718C, L800C7198, L800C71B0, L800C71BC,
L800C71A4, L800C71F4, L800C71F4, L800C71C8,
L800C71F4, L800C71F4, L800C71F4, L800C71F4,
L800C71EC, L800C71F4, L800C71D4, L800C71E0,
};
struct D_800F37FC D_800F37FC[] = {
L800C7238, L800C7244, L800C725C, L800C7268,
L800C7250, L800C7294, L800C7294, L800C7274,
L800C7294, L800C7294, L800C7294, L800C7294,
L800C7290, L800C7294, L800C7280, L800C7288,
};
struct D_800F383C D_800F383C[] = {
L800C72F8, L800C72B8, L800C742C, L800C73B8,
L800C7378, L800C742C, L800C7338, L800C7428,
L800C742C, L800C7418, L800C7420,
};
struct D_800F3868 D_800F3868[] = {
L800C7494, L800C7454, L800C75C8, L800C7554,
L800C7514, L800C75C8, L800C74D4, L800C75C4,
L800C75C8, L800C75B4, L800C75BC,
};
float D_800F3894 = 0.7;
float D_800F3898 = 0.1;
float D_800F389C = 0.03;
float D_800F38A0 = 0.16;
float D_800F38A4 = 0.15;
float D_800F38A8 = 0.03;
float D_800F38AC = 0.012000;
float D_800F38B0 = 0.85;
float D_800F38B4 = 0.85;
float D_800F38B8 = {
L800C9560, L800C9560, L800C95BC, L800C9618,
L800C9674, L800C96D0, L800C95BC, L800C96D0,
};
float D_800F38D8 = 0.35;
float D_800F38DC = 2.800000;
float D_800F38E0 = 3844.0;
float D_800F38E4 = -0.8;
float D_800F38E8 = 1568.979614;
float D_800F38EC = 1067.777832;
float D_800F38F0 = 2766.064941;
float D_800F38F4 = 0.6;
float D_800F38F8 = 3.200000;
float D_800F38FC = 3844.0;
float D_800F3900 = -1.700000;
float D_800F3904 = 1478.461548;
float D_800F3908 = 784.489807;
float D_800F390C = 12813.334961;
float D_800F3910 = 0.6;
float D_800F3914 = 2.800000;
float D_800F3918 = 3844.0;
float D_800F391C = -0.6;
float D_800F3920 = 1747.272827;
float D_800F3924 = 1130.588257;
float D_800F3928 = 3844.000977;
float D_800F392C = 0.2;
float D_800F3930 = 3844.0;
float D_800F3934 = -0.4;
float D_800F3938 = 2135.555664;
float D_800F393C = 1601.666626;
float D_800F3940 = 3203.333008;
float D_800F3944 = 0.4;
float D_800F3948 = 2.400000;
float D_800F394C = 3844.0;
float D_800F3950 = -0.8;
float D_800F3954 = 1922.0;
float D_800F3958 = 1201.250000;
float D_800F395C = 4805.0;
struct D_800F3960 = {
L800C9B3C, L800C9B3C, L800C9B68, L800C9B94,
L800C9BC0, L800C9BEC, L800C9B68, L800C9BEC,
};
float D_800F3980 = 0.35;
float D_800F3984 = 1568.979614;
float D_800F3988 = 0.6;
float D_800F398C = 1478.461548;
float D_800F3990 = 0.6;
float D_800F3994 = 1747.272827;
float D_800F3998 = 0.2;
float D_800F399C = 2135.555664;
float D_800F39A0 = 0.4;
float D_800F39A4 = 1922.0;
float D_800F39A8 = 0.55;
float D_800F39AC = 0.45;
float D_800F39B0 = 0.7;
float D_800F39B4 = 0.1;
struct D_800F39C0 D_800F39C0[] = {
L800CBE60, L800CBE78, L800CBE90, L800CBEA8,
L800CBEC0, L800CBECC, L800CBF08, L800CBEEC,
};
float D_800F39E0 = 0.017453292;
double D_800F39F0 = {
0.017453292222222222
0x00000000, 0x00000000
};
s8 D_800F3A00[] = {
0x00, 0x14, 0x18, 0x18, 0x1c, 0x1c, 0x1c, 0x1c,
0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20,
0x00, 0x04, 0x08, 0x08, 0x0c, 0x0c, 0x0c, 0x0c,
0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10, 0x10,
};
struct D_800F3A20 D_800F3A20[] = {
L800D1668, L800D1630, L800D1610, L800D1474,
L800D1420, L800D15B4, L800D13E8, L800D13F4,
L800D1400,
0x00000000, 0x00000000, 0x00000000
};
struct D_800F3A50 D_800F3A50[] = {
L800D3480, L800D3374, L800D33B4, L800D34A0,
L800D34A0, L800D33F0, L800D3438, 0x00000000
};
double D_800F3A70[] = {
1.0,
-0.16666659550427756,
0.0083330662460821547,
-0.00019809602901937949,
2.6057806379680372e-06
};
double D_800F3A98 = 0.31830988618379069;
double D_800F3AA0 = 3.1415926218032837;
double D_800F3AA8 = 3.1786509547056392e-08;
float D_800F3AB0[] = {
0.0, 0x00000000, 0x00000000, 0x00000000
};
double D_800F3AC0[] = {
1.0,
-0.16666659550427756,
0.0083330662460821547,
-0.00019809602901937949,
2.6057806379680372e-06,
};
double D_800F3AE8 = 0.31830988618379069;
double D_800F3AF0 = 3.1415926218032837;
double D_800F3AF8 = 3.1786509547056392e-08;
float D_800F3B00[] = {
0.0, 0x00000000, 0x00000000, 0x00000000
};
char D_800F3B10[] = "hlL";
char D_800F3B14[] = " +-#0";
s32 D_800F3B1C[] = {
0x00000001, 0x00000002, 0x00000004, 0x00000008,
0x00000010, 0x00000000
};
u16 gCupCourseOrder[] = { // ISSUE CHECK WRONG PREVIEW TEXTURES
0x0008, 0x0009, 0x0006, 0x000b, // mushroom cup: LR, MMF, KTB, KD
0x000a, 0x0005, 0x0001, 0x0000, // flower cup: TT, FS, CM, MR
0x000e, 0x000c, 0x0007, 0x0002, // star cup: WS, SL, RRy, BC
0x0012, 0x0004, 0x0003, 0x000d, // special cup: DKJP, YV, BB, RRd
0x0013, 0x000f, 0x0011, 0x0010, // battle mode: BD, BF, DD, Sky
0x0100,
0x0000,
0x0001, 0x0304
};
s32 D_800F3B1C[] = {
0x00000001, 0x00000002, 0x00000004, 0x00000008, 0x00000010, 0x00000000,
};
*/