Match a few funcs, and fix some warnings (#284)

* Squashed

* Match func_80090918

* Updat score

* Improve score

* Improve score

* Fix some warnings

* Fix a few more warnings

* Match func_80072578

* Match func_8007267C

* Update score

* Match func_80072424

* func_80067A3C matched ala David

* Update score

* Moved the function defintion to matching area
This commit is contained in:
Ryan Myers
2022-11-14 10:49:35 -05:00
committed by GitHub
parent 78b7461458
commit b07b0b79c9
14 changed files with 691 additions and 957 deletions
+9 -9
View File
@@ -120,32 +120,32 @@ s32 is_drumstick_unlocked(void) {
```
<!-- README_SCORE_BEGIN -->
As of November 11, 2022, this is our current score:
As of November 13, 2022, this is our current score:
```
====================================================================
====================================================================
ADVENTURE ONE (ASM -> C Decompilation)
------------------------- 35.88% Complete --------------------------
# Decompiled functions: 1319
# GLOBAL_ASM remaining: 514
------------------------- 36.21% Complete --------------------------
# Decompiled functions: 1324
# GLOBAL_ASM remaining: 510
# NON_MATCHING functions: 12
# NON_EQUIVALENT WIP functions: 92
# NON_EQUIVALENT WIP functions: 94
--------------------------- Game Status ----------------------------
Balloons: 17/47, Keys: 2/4, Trophies: 1/5
T.T. Amulets: 2/4, Wizpig Amulets: 1/4
--------------------------------------------------------------------
We are collecting silver coins in Everfrost Peak. (6/8 silver coins)
We are collecting silver coins in Everfrost Peak. (8/8 silver coins)
====================================================================
ADVENTURE TWO (Cleanup & Documentation)
------------------------- 8.24% Complete --------------------------
# Documented functions: 235
# Undocumented remaining: 1598
# Undocumented remaining: 1599
--------------------------- Game Status ----------------------------
Balloons: 5/47, Keys: 1/4, Trophies: 0/5
T.T. Amulets: 0/4, Wizpig Amulets: 0/4
--------------------------------------------------------------------
We are racing in Fossil Canyon. (Lap 2/3)
====================================================================
```
```
<!-- README_SCORE_END -->
---
-208
View File
@@ -1,208 +0,0 @@
glabel func_80067A3C
/* 06863C 80067A3C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 068640 80067A40 AFBF0014 */ sw $ra, 0x14($sp)
/* 068644 80067A44 0C01E948 */ jal get_video_width_and_height_as_s32
/* 068648 80067A48 AFA40018 */ sw $a0, 0x18($sp)
/* 06864C 80067A4C 3C038012 */ lui $v1, %hi(gNumberOfViewports) # $v1, 0x8012
/* 068650 80067A50 8C630CE0 */ lw $v1, %lo(gNumberOfViewports)($v1)
/* 068654 80067A54 8FAD0018 */ lw $t5, 0x18($sp)
/* 068658 80067A58 1060008F */ beqz $v1, .L80067C98
/* 06865C 80067A5C 304FFFFF */ andi $t7, $v0, 0xffff
/* 068660 80067A60 240A0002 */ li $t2, 2
/* 068664 80067A64 146A0002 */ bne $v1, $t2, .L80067A70
/* 068668 80067A68 240B0001 */ li $t3, 1
/* 06866C 80067A6C 24030003 */ li $v1, 3
.L80067A70:
/* 068670 80067A70 00022403 */ sra $a0, $v0, 0x10
/* 068674 80067A74 3087FFFF */ andi $a3, $a0, 0xffff
/* 068678 80067A78 3045FFFF */ andi $a1, $v0, 0xffff
/* 06867C 80067A7C 00004025 */ move $t0, $zero
/* 068680 80067A80 00004825 */ move $t1, $zero
/* 068684 80067A84 00A03025 */ move $a2, $a1
/* 068688 80067A88 106B0008 */ beq $v1, $t3, .L80067AAC
/* 06868C 80067A8C 00E02025 */ move $a0, $a3
/* 068690 80067A90 106A0012 */ beq $v1, $t2, .L80067ADC
/* 068694 80067A94 3C0F8012 */ lui $t7, %hi(gObjectRenderStackPos) # $t7, 0x8012
/* 068698 80067A98 240C0003 */ li $t4, 3
/* 06869C 80067A9C 106C001A */ beq $v1, $t4, .L80067B08
/* 0686A0 80067AA0 3C028012 */ lui $v0, %hi(gObjectRenderStackPos) # $v0, 0x8012
/* 0686A4 80067AA4 1000003F */ b .L80067BA4
/* 0686A8 80067AA8 44882000 */ mtc1 $t0, $f4
.L80067AAC:
/* 0686AC 80067AAC 3C0F8012 */ lui $t7, %hi(gObjectRenderStackPos) # $t7, 0x8012
/* 0686B0 80067AB0 8DEF0CE4 */ lw $t7, %lo(gObjectRenderStackPos)($t7)
/* 0686B4 80067AB4 000411C3 */ sra $v0, $a0, 7
/* 0686B8 80067AB8 15E00005 */ bnez $t7, .L80067AD0
/* 0686BC 80067ABC 00047043 */ sra $t6, $a0, 1
/* 0686C0 80067AC0 0004C043 */ sra $t8, $a0, 1
/* 0686C4 80067AC4 0004C9C3 */ sra $t9, $a0, 7
/* 0686C8 80067AC8 10000035 */ b .L80067BA0
/* 0686CC 80067ACC 03193823 */ subu $a3, $t8, $t9
.L80067AD0:
/* 0686D0 80067AD0 01C24821 */ addu $t1, $t6, $v0
/* 0686D4 80067AD4 10000032 */ b .L80067BA0
/* 0686D8 80067AD8 00823823 */ subu $a3, $a0, $v0
.L80067ADC:
/* 0686DC 80067ADC 8DEF0CE4 */ lw $t7, %lo(gObjectRenderStackPos)($t7)
/* 0686E0 80067AE0 00051A03 */ sra $v1, $a1, 8
/* 0686E4 80067AE4 15E00005 */ bnez $t7, .L80067AFC
/* 0686E8 80067AE8 00057043 */ sra $t6, $a1, 1
/* 0686EC 80067AEC 0005C043 */ sra $t8, $a1, 1
/* 0686F0 80067AF0 0005CA03 */ sra $t9, $a1, 8
/* 0686F4 80067AF4 1000002A */ b .L80067BA0
/* 0686F8 80067AF8 03193023 */ subu $a2, $t8, $t9
.L80067AFC:
/* 0686FC 80067AFC 01C34021 */ addu $t0, $t6, $v1
/* 068700 80067B00 10000027 */ b .L80067BA0
/* 068704 80067B04 00A33023 */ subu $a2, $a1, $v1
.L80067B08:
/* 068708 80067B08 8C420CE4 */ lw $v0, %lo(gObjectRenderStackPos)($v0)
/* 06870C 80067B0C 00057843 */ sra $t7, $a1, 1
/* 068710 80067B10 10400009 */ beqz $v0, .L80067B38
/* 068714 80067B14 0005C203 */ sra $t8, $a1, 8
/* 068718 80067B18 104B000C */ beq $v0, $t3, .L80067B4C
/* 06871C 80067B1C 00051A03 */ sra $v1, $a1, 8
/* 068720 80067B20 104A0011 */ beq $v0, $t2, .L80067B68
/* 068724 80067B24 00047043 */ sra $t6, $a0, 1
/* 068728 80067B28 104C0016 */ beq $v0, $t4, .L80067B84
/* 06872C 80067B2C 00051A03 */ sra $v1, $a1, 8
/* 068730 80067B30 1000001C */ b .L80067BA4
/* 068734 80067B34 44882000 */ mtc1 $t0, $f4
.L80067B38:
/* 068738 80067B38 0004C843 */ sra $t9, $a0, 1
/* 06873C 80067B3C 000471C3 */ sra $t6, $a0, 7
/* 068740 80067B40 032E3823 */ subu $a3, $t9, $t6
/* 068744 80067B44 10000016 */ b .L80067BA0
/* 068748 80067B48 01F83023 */ subu $a2, $t7, $t8
.L80067B4C:
/* 06874C 80067B4C 00057843 */ sra $t7, $a1, 1
/* 068750 80067B50 0004C043 */ sra $t8, $a0, 1
/* 068754 80067B54 0004C9C3 */ sra $t9, $a0, 7
/* 068758 80067B58 01E34021 */ addu $t0, $t7, $v1
/* 06875C 80067B5C 00A33023 */ subu $a2, $a1, $v1
/* 068760 80067B60 1000000F */ b .L80067BA0
/* 068764 80067B64 03193823 */ subu $a3, $t8, $t9
.L80067B68:
/* 068768 80067B68 000411C3 */ sra $v0, $a0, 7
/* 06876C 80067B6C 00057843 */ sra $t7, $a1, 1
/* 068770 80067B70 0005C203 */ sra $t8, $a1, 8
/* 068774 80067B74 01C24821 */ addu $t1, $t6, $v0
/* 068778 80067B78 01F83023 */ subu $a2, $t7, $t8
/* 06877C 80067B7C 10000008 */ b .L80067BA0
/* 068780 80067B80 00823823 */ subu $a3, $a0, $v0
.L80067B84:
/* 068784 80067B84 000411C3 */ sra $v0, $a0, 7
/* 068788 80067B88 0005C843 */ sra $t9, $a1, 1
/* 06878C 80067B8C 00047043 */ sra $t6, $a0, 1
/* 068790 80067B90 01C24821 */ addu $t1, $t6, $v0
/* 068794 80067B94 03234021 */ addu $t0, $t9, $v1
/* 068798 80067B98 00823823 */ subu $a3, $a0, $v0
/* 06879C 80067B9C 00A33023 */ subu $a2, $a1, $v1
.L80067BA0:
/* 0687A0 80067BA0 44882000 */ mtc1 $t0, $f4
.L80067BA4:
/* 0687A4 80067BA4 3C014080 */ li $at, 0x40800000 # 4.000000
/* 0687A8 80067BA8 468021A0 */ cvt.s.w $f6, $f4
/* 0687AC 80067BAC 44810000 */ mtc1 $at, $f0
/* 0687B0 80067BB0 44898000 */ mtc1 $t1, $f16
/* 0687B4 80067BB4 46003202 */ mul.s $f8, $f6, $f0
/* 0687B8 80067BB8 8DA30000 */ lw $v1, ($t5)
/* 0687BC 80067BBC 00000000 */ nop
/* 0687C0 80067BC0 246F0008 */ addiu $t7, $v1, 8
/* 0687C4 80067BC4 4458F800 */ cfc1 $t8, $31
/* 0687C8 80067BC8 ADAF0000 */ sw $t7, ($t5)
/* 0687CC 80067BCC 37010003 */ ori $at, $t8, 3
/* 0687D0 80067BD0 38210002 */ xori $at, $at, 2
/* 0687D4 80067BD4 44C1F800 */ ctc1 $at, $31
/* 0687D8 80067BD8 3C01ED00 */ lui $at, 0xed00
/* 0687DC 80067BDC 460042A4 */ cvt.w.s $f10, $f8
/* 0687E0 80067BE0 44864000 */ mtc1 $a2, $f8
/* 0687E4 80067BE4 44D8F800 */ ctc1 $t8, $31
/* 0687E8 80067BE8 44195000 */ mfc1 $t9, $f10
/* 0687EC 80067BEC 468084A0 */ cvt.s.w $f18, $f16
/* 0687F0 80067BF0 332E0FFF */ andi $t6, $t9, 0xfff
/* 0687F4 80067BF4 000E7B00 */ sll $t7, $t6, 0xc
/* 0687F8 80067BF8 46009102 */ mul.s $f4, $f18, $f0
/* 0687FC 80067BFC 01E1C025 */ or $t8, $t7, $at
/* 068800 80067C00 4459F800 */ cfc1 $t9, $31
/* 068804 80067C04 00000000 */ nop
/* 068808 80067C08 37210003 */ ori $at, $t9, 3
/* 06880C 80067C0C 38210002 */ xori $at, $at, 2
/* 068810 80067C10 44C1F800 */ ctc1 $at, $31
/* 068814 80067C14 00000000 */ nop
/* 068818 80067C18 460021A4 */ cvt.w.s $f6, $f4
/* 06881C 80067C1C 44872000 */ mtc1 $a3, $f4
/* 068820 80067C20 44D9F800 */ ctc1 $t9, $31
/* 068824 80067C24 440E3000 */ mfc1 $t6, $f6
/* 068828 80067C28 468042A0 */ cvt.s.w $f10, $f8
/* 06882C 80067C2C 31CF0FFF */ andi $t7, $t6, 0xfff
/* 068830 80067C30 030FC825 */ or $t9, $t8, $t7
/* 068834 80067C34 46005402 */ mul.s $f16, $f10, $f0
/* 068838 80067C38 AC790000 */ sw $t9, ($v1)
/* 06883C 80067C3C 444EF800 */ cfc1 $t6, $31
/* 068840 80067C40 00000000 */ nop
/* 068844 80067C44 35C10003 */ ori $at, $t6, 3
/* 068848 80067C48 38210002 */ xori $at, $at, 2
/* 06884C 80067C4C 44C1F800 */ ctc1 $at, $31
/* 068850 80067C50 35C10003 */ ori $at, $t6, 3
/* 068854 80067C54 460084A4 */ cvt.w.s $f18, $f16
/* 068858 80067C58 38210002 */ xori $at, $at, 2
/* 06885C 80067C5C 44CEF800 */ ctc1 $t6, $31
/* 068860 80067C60 44189000 */ mfc1 $t8, $f18
/* 068864 80067C64 468021A0 */ cvt.s.w $f6, $f4
/* 068868 80067C68 330F0FFF */ andi $t7, $t8, 0xfff
/* 06886C 80067C6C 000FCB00 */ sll $t9, $t7, 0xc
/* 068870 80067C70 46003202 */ mul.s $f8, $f6, $f0
/* 068874 80067C74 44C1F800 */ ctc1 $at, $31
/* 068878 80067C78 00000000 */ nop
/* 06887C 80067C7C 460042A4 */ cvt.w.s $f10, $f8
/* 068880 80067C80 44185000 */ mfc1 $t8, $f10
/* 068884 80067C84 44CEF800 */ ctc1 $t6, $31
/* 068888 80067C88 330F0FFF */ andi $t7, $t8, 0xfff
/* 06888C 80067C8C 032F7025 */ or $t6, $t9, $t7
/* 068890 80067C90 10000026 */ b .L80067D2C
/* 068894 80067C94 AC6E0004 */ sw $t6, 4($v1)
.L80067C98:
/* 068898 80067C98 448F8000 */ mtc1 $t7, $f16
/* 06889C 80067C9C 3C014080 */ li $at, 0x40800000 # 4.000000
/* 0688A0 80067CA0 468084A0 */ cvt.s.w $f18, $f16
/* 0688A4 80067CA4 44810000 */ mtc1 $at, $f0
/* 0688A8 80067CA8 8DA30000 */ lw $v1, ($t5)
/* 0688AC 80067CAC 46009102 */ mul.s $f4, $f18, $f0
/* 0688B0 80067CB0 24780008 */ addiu $t8, $v1, 8
/* 0688B4 80067CB4 ADB80000 */ sw $t8, ($t5)
/* 0688B8 80067CB8 3C19ED00 */ lui $t9, 0xed00
/* 0688BC 80067CBC 444EF800 */ cfc1 $t6, $31
/* 0688C0 80067CC0 AC790000 */ sw $t9, ($v1)
/* 0688C4 80067CC4 35C10003 */ ori $at, $t6, 3
/* 0688C8 80067CC8 38210002 */ xori $at, $at, 2
/* 0688CC 80067CCC 44C1F800 */ ctc1 $at, $31
/* 0688D0 80067CD0 00000000 */ nop
/* 0688D4 80067CD4 460021A4 */ cvt.w.s $f6, $f4
/* 0688D8 80067CD8 44183000 */ mfc1 $t8, $f6
/* 0688DC 80067CDC 44CEF800 */ ctc1 $t6, $31
/* 0688E0 80067CE0 00027403 */ sra $t6, $v0, 0x10
/* 0688E4 80067CE4 33190FFF */ andi $t9, $t8, 0xfff
/* 0688E8 80067CE8 31D8FFFF */ andi $t8, $t6, 0xffff
/* 0688EC 80067CEC 44984000 */ mtc1 $t8, $f8
/* 0688F0 80067CF0 00197B00 */ sll $t7, $t9, 0xc
/* 0688F4 80067CF4 468042A0 */ cvt.s.w $f10, $f8
/* 0688F8 80067CF8 46005402 */ mul.s $f16, $f10, $f0
/* 0688FC 80067CFC 4459F800 */ cfc1 $t9, $31
/* 068900 80067D00 00000000 */ nop
/* 068904 80067D04 37210003 */ ori $at, $t9, 3
/* 068908 80067D08 38210002 */ xori $at, $at, 2
/* 06890C 80067D0C 44C1F800 */ ctc1 $at, $31
/* 068910 80067D10 00000000 */ nop
/* 068914 80067D14 460084A4 */ cvt.w.s $f18, $f16
/* 068918 80067D18 440E9000 */ mfc1 $t6, $f18
/* 06891C 80067D1C 44D9F800 */ ctc1 $t9, $31
/* 068920 80067D20 31D80FFF */ andi $t8, $t6, 0xfff
/* 068924 80067D24 01F8C825 */ or $t9, $t7, $t8
/* 068928 80067D28 AC790004 */ sw $t9, 4($v1)
.L80067D2C:
/* 06892C 80067D2C 8FBF0014 */ lw $ra, 0x14($sp)
/* 068930 80067D30 27BD0018 */ addiu $sp, $sp, 0x18
/* 068934 80067D34 03E00008 */ jr $ra
/* 068938 80067D38 00000000 */ nop
+2 -2
View File
@@ -335,11 +335,11 @@ glabel func_8008FF1C
/* 091000 80090400 3C018012 */ lui $at, %hi(D_801269F0) # $at, 0x8012
/* 091004 80090404 3C108012 */ lui $s0, %hi(gTrackSelectRenderDetails) # $s0, 0x8012
/* 091008 80090408 3C14800E */ lui $s4, %hi(D_800E05F4) # $s4, 0x800e
/* 09100C 8009040C 3C138012 */ lui $s3, %hi(gPlayerSelectVehicle) # $s3, 0x8012
/* 09100C 8009040C 3C138012 */ lui $s3, %hi(gTrackSelectRenderDetails) # $s3, 0x8012
/* 091010 80090410 3C12800E */ lui $s2, %hi(D_800E05D4) # $s2, 0x800e
/* 091014 80090414 AC2069F0 */ sw $zero, %lo(D_801269F0)($at)
/* 091018 80090418 265205D4 */ addiu $s2, %lo(D_800E05D4) # addiu $s2, $s2, 0x5d4
/* 09101C 8009041C 267369C0 */ addiu $s3, %lo(gPlayerSelectVehicle) # addiu $s3, $s3, 0x69c0
/* 09101C 8009041C 267369C0 */ addiu $s3, %lo(gTrackSelectRenderDetails+0x90) # addiu $s3, $s3, 0x69c0
/* 091020 80090420 269405F4 */ addiu $s4, %lo(D_800E05F4) # addiu $s4, $s4, 0x5f4
/* 091024 80090424 26106930 */ addiu $s0, %lo(gTrackSelectRenderDetails) # addiu $s0, $s0, 0x6930
/* 091028 80090428 AFA0007C */ sw $zero, 0x7c($sp)
-400
View File
@@ -1,400 +0,0 @@
glabel func_80090918
/* 091518 80090918 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e
/* 09151C 8009091C 8C63F47C */ lw $v1, %lo(gMenuDelay)($v1)
/* 091520 80090920 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 091524 80090924 AFBF001C */ sw $ra, 0x1c($sp)
/* 091528 80090928 AFA40048 */ sw $a0, 0x48($sp)
/* 09152C 8009092C 18600087 */ blez $v1, .L80090B4C
/* 091530 80090930 AFA30024 */ sw $v1, 0x24($sp)
/* 091534 80090934 3C014080 */ li $at, 0x40800000 # 4.000000
/* 091538 80090938 44811000 */ mtc1 $at, $f2
/* 09153C 8009093C 3C018012 */ lui $at, %hi(D_801269E8) # $at, 0x8012
/* 091540 80090940 C42469E8 */ lwc1 $f4, %lo(D_801269E8)($at)
/* 091544 80090944 3C018012 */ lui $at, %hi(gTrackSelectX) # $at, 0x8012
/* 091548 80090948 C42669DC */ lwc1 $f6, %lo(gTrackSelectX)($at)
/* 09154C 8009094C 3C01C080 */ li $at, 0xC0800000 # -4.000000
/* 091550 80090950 46062001 */ sub.s $f0, $f4, $f6
/* 091554 80090954 240E0001 */ li $t6, 1
/* 091558 80090958 4600103C */ c.lt.s $f2, $f0
/* 09155C 8009095C 00000000 */ nop
/* 091560 80090960 45010013 */ bc1t .L800909B0
/* 091564 80090964 00000000 */ nop
/* 091568 80090968 44816000 */ mtc1 $at, $f12
/* 09156C 8009096C 3C018012 */ lui $at, %hi(D_801269EC) # $at, 0x8012
/* 091570 80090970 460C003C */ c.lt.s $f0, $f12
/* 091574 80090974 00000000 */ nop
/* 091578 80090978 4501000D */ bc1t .L800909B0
/* 09157C 8009097C 00000000 */ nop
/* 091580 80090980 C42869EC */ lwc1 $f8, %lo(D_801269EC)($at)
/* 091584 80090984 3C018012 */ lui $at, %hi(gTrackSelectY) # $at, 0x8012
/* 091588 80090988 C42A69E4 */ lwc1 $f10, %lo(gTrackSelectY)($at)
/* 09158C 8009098C 00000000 */ nop
/* 091590 80090990 460A4001 */ sub.s $f0, $f8, $f10
/* 091594 80090994 4600103C */ c.lt.s $f2, $f0
/* 091598 80090998 00000000 */ nop
/* 09159C 8009099C 45010004 */ bc1t .L800909B0
/* 0915A0 800909A0 00000000 */ nop
/* 0915A4 800909A4 460C003C */ c.lt.s $f0, $f12
/* 0915A8 800909A8 3C0F800E */ lui $t7, %hi(D_800E1E1C) # $t7, 0x800e
/* 0915AC 800909AC 45000004 */ bc1f .L800909C0
.L800909B0:
/* 0915B0 800909B0 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
/* 0915B4 800909B4 AC2EF47C */ sw $t6, %lo(gMenuDelay)($at)
/* 0915B8 800909B8 1000000B */ b .L800909E8
/* 0915BC 800909BC 24030001 */ li $v1, 1
.L800909C0:
/* 0915C0 800909C0 8DEF1E1C */ lw $t7, %lo(D_800E1E1C)($t7)
/* 0915C4 800909C4 240400EF */ li $a0, 239
/* 0915C8 800909C8 11E00008 */ beqz $t7, .L800909EC
/* 0915CC 800909CC 2469FFFF */ addiu $t1, $v1, -1
/* 0915D0 800909D0 0C000741 */ jal play_sound_global
/* 0915D4 800909D4 00002825 */ move $a1, $zero
/* 0915D8 800909D8 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e
/* 0915DC 800909DC 3C01800E */ lui $at, %hi(D_800E1E1C) # $at, 0x800e
/* 0915E0 800909E0 8C63F47C */ lw $v1, %lo(gMenuDelay)($v1)
/* 0915E4 800909E4 AC201E1C */ sw $zero, %lo(D_800E1E1C)($at)
.L800909E8:
/* 0915E8 800909E8 2469FFFF */ addiu $t1, $v1, -1
.L800909EC:
/* 0915EC 800909EC 29210015 */ slti $at, $t1, 0x15
/* 0915F0 800909F0 14200002 */ bnez $at, .L800909FC
/* 0915F4 800909F4 240A00A0 */ li $t2, 160
/* 0915F8 800909F8 24090014 */ li $t1, 20
.L800909FC:
/* 0915FC 800909FC 3C0C8012 */ lui $t4, %hi(D_80126478) # $t4, 0x8012
/* 091600 80090A00 8D8C6478 */ lw $t4, %lo(D_80126478)($t4)
/* 091604 80090A04 29210014 */ slti $at, $t1, 0x14
/* 091608 80090A08 10200024 */ beqz $at, .L80090A9C
/* 09160C 80090A0C 01804025 */ move $t0, $t4
/* 091610 80090A10 3C018012 */ lui $at, %hi(D_801269E8) # $at, 0x8012
/* 091614 80090A14 C43069E8 */ lwc1 $f16, %lo(D_801269E8)($at)
/* 091618 80090A18 241800A0 */ li $t8, 160
/* 09161C 80090A1C 44983000 */ mtc1 $t8, $f6
/* 091620 80090A20 3C018012 */ lui $at, %hi(gTrackSelectX) # $at, 0x8012
/* 091624 80090A24 C43269DC */ lwc1 $f18, %lo(gTrackSelectX)($at)
/* 091628 80090A28 46803220 */ cvt.s.w $f8, $f6
/* 09162C 80090A2C 46128101 */ sub.s $f4, $f16, $f18
/* 091630 80090A30 46044280 */ add.s $f10, $f8, $f4
/* 091634 80090A34 44882000 */ mtc1 $t0, $f4
/* 091638 80090A38 4459F800 */ cfc1 $t9, $31
/* 09163C 80090A3C 00000000 */ nop
/* 091640 80090A40 37210003 */ ori $at, $t9, 3
/* 091644 80090A44 38210002 */ xori $at, $at, 2
/* 091648 80090A48 44C1F800 */ ctc1 $at, $31
/* 09164C 80090A4C 3C018012 */ lui $at, %hi(D_801269EC) # $at, 0x8012
/* 091650 80090A50 46005424 */ cvt.w.s $f16, $f10
/* 091654 80090A54 C43269EC */ lwc1 $f18, %lo(D_801269EC)($at)
/* 091658 80090A58 44D9F800 */ ctc1 $t9, $31
/* 09165C 80090A5C 3C018012 */ lui $at, %hi(gTrackSelectY) # $at, 0x8012
/* 091660 80090A60 C42669E4 */ lwc1 $f6, %lo(gTrackSelectY)($at)
/* 091664 80090A64 468022A0 */ cvt.s.w $f10, $f4
/* 091668 80090A68 440A8000 */ mfc1 $t2, $f16
/* 09166C 80090A6C 46069201 */ sub.s $f8, $f18, $f6
/* 091670 80090A70 46085401 */ sub.s $f16, $f10, $f8
/* 091674 80090A74 444DF800 */ cfc1 $t5, $31
/* 091678 80090A78 00000000 */ nop
/* 09167C 80090A7C 35A10003 */ ori $at, $t5, 3
/* 091680 80090A80 38210002 */ xori $at, $at, 2
/* 091684 80090A84 44C1F800 */ ctc1 $at, $31
/* 091688 80090A88 00000000 */ nop
/* 09168C 80090A8C 460084A4 */ cvt.w.s $f18, $f16
/* 091690 80090A90 44CDF800 */ ctc1 $t5, $31
/* 091694 80090A94 44089000 */ mfc1 $t0, $f18
/* 091698 80090A98 00000000 */ nop
.L80090A9C:
/* 09169C 80090A9C 252E0014 */ addiu $t6, $t1, 0x14
/* 0916A0 80090AA0 01CC0019 */ multu $t6, $t4
/* 0916A4 80090AA4 24010028 */ li $at, 40
/* 0916A8 80090AA8 00091880 */ sll $v1, $t1, 2
/* 0916AC 80090AAC 01432823 */ subu $a1, $t2, $v1
/* 0916B0 80090AB0 006A3821 */ addu $a3, $v1, $t2
/* 0916B4 80090AB4 24E70050 */ addiu $a3, $a3, 0x50
/* 0916B8 80090AB8 24A5FFB0 */ addiu $a1, $a1, -0x50
/* 0916BC 80090ABC 00002025 */ move $a0, $zero
/* 0916C0 80090AC0 AFA9003C */ sw $t1, 0x3c($sp)
/* 0916C4 80090AC4 00001012 */ mflo $v0
/* 0916C8 80090AC8 00000000 */ nop
/* 0916CC 80090ACC 00000000 */ nop
/* 0916D0 80090AD0 0041001A */ div $zero, $v0, $at
/* 0916D4 80090AD4 00007812 */ mflo $t7
/* 0916D8 80090AD8 01E85821 */ addu $t3, $t7, $t0
/* 0916DC 80090ADC 010F3023 */ subu $a2, $t0, $t7
/* 0916E0 80090AE0 0C019A50 */ jal func_80066940
/* 0916E4 80090AE4 AFAB0010 */ sw $t3, 0x10($sp)
/* 0916E8 80090AE8 8FA9003C */ lw $t1, 0x3c($sp)
/* 0916EC 80090AEC 3C0141A0 */ li $at, 0x41A00000 # 20.000000
/* 0916F0 80090AF0 44893000 */ mtc1 $t1, $f6
/* 0916F4 80090AF4 44815000 */ mtc1 $at, $f10
/* 0916F8 80090AF8 46803120 */ cvt.s.w $f4, $f6
/* 0916FC 80090AFC 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 091700 80090B00 44818000 */ mtc1 $at, $f16
/* 091704 80090B04 460A2203 */ div.s $f8, $f4, $f10
/* 091708 80090B08 3C03800E */ lui $v1, %hi(sMenuImageProperties) # $v1, 0x800e
/* 09170C 80090B0C 2463F510 */ addiu $v1, %lo(sMenuImageProperties) # addiu $v1, $v1, -0xaf0
/* 091710 80090B10 C4720088 */ lwc1 $f18, 0x88($v1)
/* 091714 80090B14 3C02800E */ lui $v0, %hi(gMenuImageStack) # $v0, 0x800e
/* 091718 80090B18 2442F75C */ addiu $v0, %lo(gMenuImageStack) # addiu $v0, $v0, -0x8a4
/* 09171C 80090B1C 8C580000 */ lw $t8, ($v0)
/* 091720 80090B20 46088000 */ add.s $f0, $f16, $f8
/* 091724 80090B24 46009182 */ mul.s $f6, $f18, $f0
/* 091728 80090B28 E7060088 */ swc1 $f6, 0x88($t8)
/* 09172C 80090B2C C46400C8 */ lwc1 $f4, 0xc8($v1)
/* 091730 80090B30 8C590000 */ lw $t9, ($v0)
/* 091734 80090B34 46002282 */ mul.s $f10, $f4, $f0
/* 091738 80090B38 E72A00C8 */ swc1 $f10, 0xc8($t9)
/* 09173C 80090B3C C47000A8 */ lwc1 $f16, 0xa8($v1)
/* 091740 80090B40 8C4D0000 */ lw $t5, ($v0)
/* 091744 80090B44 46008202 */ mul.s $f8, $f16, $f0
/* 091748 80090B48 E5A800A8 */ swc1 $f8, 0xa8($t5)
.L80090B4C:
/* 09174C 80090B4C 00002025 */ move $a0, $zero
/* 091750 80090B50 0C019A06 */ jal func_80066818
/* 091754 80090B54 00002825 */ move $a1, $zero
/* 091758 80090B58 0C031CF8 */ jal get_thread30_level_id_to_load
/* 09175C 80090B5C 00000000 */ nop
/* 091760 80090B60 14400051 */ bnez $v0, .L80090CA8
/* 091764 80090B64 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e
/* 091768 80090B68 8C63F47C */ lw $v1, %lo(gMenuDelay)($v1)
/* 09176C 80090B6C 3C0A8012 */ lui $t2, %hi(D_801269C8) # $t2, 0x8012
/* 091770 80090B70 04610008 */ bgez $v1, .L80090B94
/* 091774 80090B74 254A69C8 */ addiu $t2, %lo(D_801269C8) # addiu $t2, $t2, 0x69c8
/* 091778 80090B78 3C02800E */ lui $v0, %hi(sMenuMusicVolume) # $v0, 0x800e
/* 09177C 80090B7C 8FAF0048 */ lw $t7, 0x48($sp)
/* 091780 80090B80 2442F760 */ addiu $v0, %lo(sMenuMusicVolume) # addiu $v0, $v0, -0x8a0
/* 091784 80090B84 8C4E0000 */ lw $t6, ($v0)
/* 091788 80090B88 000FC080 */ sll $t8, $t7, 2
/* 09178C 80090B8C 01D8C823 */ subu $t9, $t6, $t8
/* 091790 80090B90 AC590000 */ sw $t9, ($v0)
.L80090B94:
/* 091794 80090B94 3C0F8012 */ lui $t7, %hi(gSelectedTrackX) # $t7, 0x8012
/* 091798 80090B98 8DEF69F4 */ lw $t7, %lo(gSelectedTrackX)($t7)
/* 09179C 80090B9C 8D4D0000 */ lw $t5, ($t2)
/* 0917A0 80090BA0 3C078012 */ lui $a3, %hi(D_801269CC) # $a3, 0x8012
/* 0917A4 80090BA4 15AF000F */ bne $t5, $t7, .L80090BE4
/* 0917A8 80090BA8 24E769CC */ addiu $a3, %lo(D_801269CC) # addiu $a3, $a3, 0x69cc
/* 0917AC 80090BAC 3C188012 */ lui $t8, %hi(gSelectedTrackY) # $t8, 0x8012
/* 0917B0 80090BB0 8F1869F8 */ lw $t8, %lo(gSelectedTrackY)($t8)
/* 0917B4 80090BB4 8CEE0000 */ lw $t6, ($a3)
/* 0917B8 80090BB8 3C028012 */ lui $v0, %hi(gOpacityDecayTimer) # $v0, 0x8012
/* 0917BC 80090BBC 15D80009 */ bne $t6, $t8, .L80090BE4
/* 0917C0 80090BC0 244263D8 */ addiu $v0, %lo(gOpacityDecayTimer) # addiu $v0, $v0, 0x63d8
/* 0917C4 80090BC4 8C590000 */ lw $t9, ($v0)
/* 0917C8 80090BC8 8FAD0048 */ lw $t5, 0x48($sp)
/* 0917CC 80090BCC 00000000 */ nop
/* 0917D0 80090BD0 032D7823 */ subu $t7, $t9, $t5
/* 0917D4 80090BD4 05E1000D */ bgez $t7, .L80090C0C
/* 0917D8 80090BD8 AC4F0000 */ sw $t7, ($v0)
/* 0917DC 80090BDC 1000000B */ b .L80090C0C
/* 0917E0 80090BE0 AC400000 */ sw $zero, ($v0)
.L80090BE4:
/* 0917E4 80090BE4 3C028012 */ lui $v0, %hi(gOpacityDecayTimer) # $v0, 0x8012
/* 0917E8 80090BE8 244263D8 */ addiu $v0, %lo(gOpacityDecayTimer) # addiu $v0, $v0, 0x63d8
/* 0917EC 80090BEC 8C580000 */ lw $t8, ($v0)
/* 0917F0 80090BF0 8FB90048 */ lw $t9, 0x48($sp)
/* 0917F4 80090BF4 240E0020 */ li $t6, 32
/* 0917F8 80090BF8 03196821 */ addu $t5, $t8, $t9
/* 0917FC 80090BFC 29A10021 */ slti $at, $t5, 0x21
/* 091800 80090C00 14200002 */ bnez $at, .L80090C0C
/* 091804 80090C04 AC4D0000 */ sw $t5, ($v0)
/* 091808 80090C08 AC4E0000 */ sw $t6, ($v0)
.L80090C0C:
/* 09180C 80090C0C 2861FFEA */ slti $at, $v1, -0x16
/* 091810 80090C10 10200008 */ beqz $at, .L80090C34
/* 091814 80090C14 2861001F */ slti $at, $v1, 0x1f
/* 091818 80090C18 0C01E2AB */ jal func_80078AAC
/* 09181C 80090C1C 00002025 */ move $a0, $zero
/* 091820 80090C20 3C03800E */ lui $v1, %hi(gMenuDelay) # $v1, 0x800e
/* 091824 80090C24 3C01800E */ lui $at, %hi(D_800E097C) # $at, 0x800e
/* 091828 80090C28 8C63F47C */ lw $v1, %lo(gMenuDelay)($v1)
/* 09182C 80090C2C AC20097C */ sw $zero, %lo(D_800E097C)($at)
/* 091830 80090C30 2861001F */ slti $at, $v1, 0x1f
.L80090C34:
/* 091834 80090C34 14200013 */ bnez $at, .L80090C84
/* 091838 80090C38 2861FFE2 */ slti $at, $v1, -0x1e
/* 09183C 80090C3C 0C027B18 */ jal is_adventure_two_unlocked
/* 091840 80090C40 00000000 */ nop
/* 091844 80090C44 10400008 */ beqz $v0, .L80090C68
/* 091848 80090C48 3C188012 */ lui $t8, %hi(D_801269C8) # $t8, 0x8012
/* 09184C 80090C4C 8F1869C8 */ lw $t8, %lo(D_801269C8)($t8)
/* 091850 80090C50 24010005 */ li $at, 5
/* 091854 80090C54 13010004 */ beq $t8, $at, .L80090C68
/* 091858 80090C58 2419FFFF */ li $t9, -1
/* 09185C 80090C5C 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012
/* 091860 80090C60 10000003 */ b .L80090C70
/* 091864 80090C64 AC3963E0 */ sw $t9, %lo(D_801263E0)($at)
.L80090C68:
/* 091868 80090C68 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012
/* 09186C 80090C6C AC2063E0 */ sw $zero, %lo(D_801263E0)($at)
.L80090C70:
/* 091870 80090C70 0C023C03 */ jal func_8008F00C
/* 091874 80090C74 24040001 */ li $a0, 1
/* 091878 80090C78 1000000C */ b .L80090CAC
/* 09187C 80090C7C 8FAD0024 */ lw $t5, 0x24($sp)
/* 091880 80090C80 2861FFE2 */ slti $at, $v1, -0x1e
.L80090C84:
/* 091884 80090C84 10200009 */ beqz $at, .L80090CAC
/* 091888 80090C88 8FAD0024 */ lw $t5, 0x24($sp)
/* 09188C 80090C8C 0C030060 */ jal func_800C0180
/* 091890 80090C90 00000000 */ nop
/* 091894 80090C94 00002025 */ move $a0, $zero
/* 091898 80090C98 0C019A25 */ jal func_80066894
/* 09189C 80090C9C 00002825 */ move $a1, $zero
/* 0918A0 80090CA0 0C023C03 */ jal func_8008F00C
/* 0918A4 80090CA4 2404FFFF */ li $a0, -1
.L80090CA8:
/* 0918A8 80090CA8 8FAD0024 */ lw $t5, 0x24($sp)
.L80090CAC:
/* 0918AC 80090CAC 3C078012 */ lui $a3, %hi(D_801269CC) # $a3, 0x8012
/* 0918B0 80090CB0 3C0A8012 */ lui $t2, %hi(D_801269C8) # $t2, 0x8012
/* 0918B4 80090CB4 254A69C8 */ addiu $t2, %lo(D_801269C8) # addiu $t2, $t2, 0x69c8
/* 0918B8 80090CB8 15A00083 */ bnez $t5, .L80090EC8
/* 0918BC 80090CBC 24E769CC */ addiu $a3, %lo(D_801269CC) # addiu $a3, $a3, 0x69cc
/* 0918C0 80090CC0 3C0F8012 */ lui $t7, %hi(gFFLUnlocked) # $t7, 0x8012
/* 0918C4 80090CC4 85EF6918 */ lh $t7, %lo(gFFLUnlocked)($t7)
/* 0918C8 80090CC8 2403FFFF */ li $v1, -1
/* 0918CC 80090CCC 146F0003 */ bne $v1, $t7, .L80090CDC
/* 0918D0 80090CD0 3C028012 */ lui $v0, %hi(D_801267E8) # $v0, 0x8012
/* 0918D4 80090CD4 10000002 */ b .L80090CE0
/* 0918D8 80090CD8 24050003 */ li $a1, 3
.L80090CDC:
/* 0918DC 80090CDC 24050004 */ li $a1, 4
.L80090CE0:
/* 0918E0 80090CE0 8C4267E8 */ lw $v0, %lo(D_801267E8)($v0)
/* 0918E4 80090CE4 00000000 */ nop
/* 0918E8 80090CE8 304E9000 */ andi $t6, $v0, 0x9000
/* 0918EC 80090CEC 11C00012 */ beqz $t6, .L80090D38
/* 0918F0 80090CF0 304D4000 */ andi $t5, $v0, 0x4000
/* 0918F4 80090CF4 3C02800E */ lui $v0, %hi(gTrackIdForPreview) # $v0, 0x800e
/* 0918F8 80090CF8 8C42F4C4 */ lw $v0, %lo(gTrackIdForPreview)($v0)
/* 0918FC 80090CFC 24180001 */ li $t8, 1
/* 091900 80090D00 10620009 */ beq $v1, $v0, .L80090D28
/* 091904 80090D04 2404006A */ li $a0, 106
/* 091908 80090D08 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
/* 09190C 80090D0C AC38F47C */ sw $t8, %lo(gMenuDelay)($at)
/* 091910 80090D10 3C01800E */ lui $at, %hi(gTrackIdToLoad) # $at, 0x800e
/* 091914 80090D14 AC22F4D4 */ sw $v0, %lo(gTrackIdToLoad)($at)
/* 091918 80090D18 3C01800E */ lui $at, %hi(D_800E1E1C) # $at, 0x800e
/* 09191C 80090D1C 24190001 */ li $t9, 1
/* 091920 80090D20 10000069 */ b .L80090EC8
/* 091924 80090D24 AC391E1C */ sw $t9, %lo(D_800E1E1C)($at)
.L80090D28:
/* 091928 80090D28 0C000741 */ jal play_sound_global
/* 09192C 80090D2C 00002825 */ move $a1, $zero
/* 091930 80090D30 10000066 */ b .L80090ECC
/* 091934 80090D34 8FBF001C */ lw $ra, 0x1c($sp)
.L80090D38:
/* 091938 80090D38 11A0000C */ beqz $t5, .L80090D6C
/* 09193C 80090D3C 3C048012 */ lui $a0, %hi(D_80126820) # $a0, 0x8012
/* 091940 80090D40 0C030060 */ jal func_800C0180
/* 091944 80090D44 00000000 */ nop
/* 091948 80090D48 3C04800E */ lui $a0, %hi(sMenuTransitionFadeIn) # $a0, 0x800e
/* 09194C 80090D4C 0C030076 */ jal func_800C01D8
/* 091950 80090D50 2484F774 */ addiu $a0, %lo(sMenuTransitionFadeIn) # addiu $a0, $a0, -0x88c
/* 091954 80090D54 0C03005C */ jal func_800C0170
/* 091958 80090D58 00000000 */ nop
/* 09195C 80090D5C 240FFFFF */ li $t7, -1
/* 091960 80090D60 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e
/* 091964 80090D64 10000058 */ b .L80090EC8
/* 091968 80090D68 AC2FF47C */ sw $t7, %lo(gMenuDelay)($at)
.L80090D6C:
/* 09196C 80090D6C 8D420000 */ lw $v0, ($t2)
/* 091970 80090D70 8CE30000 */ lw $v1, ($a3)
/* 091974 80090D74 84846820 */ lh $a0, %lo(D_80126820)($a0)
/* 091978 80090D78 00404025 */ move $t0, $v0
/* 09197C 80090D7C 04810005 */ bgez $a0, .L80090D94
/* 091980 80090D80 00604825 */ move $t1, $v1
/* 091984 80090D84 18400003 */ blez $v0, .L80090D94
/* 091988 80090D88 244EFFFF */ addiu $t6, $v0, -1
/* 09198C 80090D8C AD4E0000 */ sw $t6, ($t2)
/* 091990 80090D90 01C01025 */ move $v0, $t6
.L80090D94:
/* 091994 80090D94 18800006 */ blez $a0, .L80090DB0
/* 091998 80090D98 24060004 */ li $a2, 4
/* 09199C 80090D9C 28410005 */ slti $at, $v0, 5
/* 0919A0 80090DA0 10200003 */ beqz $at, .L80090DB0
/* 0919A4 80090DA4 24580001 */ addiu $t8, $v0, 1
/* 0919A8 80090DA8 AD580000 */ sw $t8, ($t2)
/* 0919AC 80090DAC 03001025 */ move $v0, $t8
.L80090DB0:
/* 0919B0 80090DB0 14C30005 */ bne $a2, $v1, .L80090DC8
/* 0919B4 80090DB4 24010005 */ li $at, 5
/* 0919B8 80090DB8 14410003 */ bne $v0, $at, .L80090DC8
/* 0919BC 80090DBC 00000000 */ nop
/* 0919C0 80090DC0 AD460000 */ sw $a2, ($t2)
/* 0919C4 80090DC4 00C01025 */ move $v0, $a2
.L80090DC8:
/* 0919C8 80090DC8 14800016 */ bnez $a0, .L80090E24
/* 0919CC 80090DCC 3C048012 */ lui $a0, %hi(D_80126838) # $a0, 0x8012
/* 0919D0 80090DD0 84846838 */ lh $a0, %lo(D_80126838)($a0)
/* 0919D4 80090DD4 0065082A */ slt $at, $v1, $a1
/* 0919D8 80090DD8 04810004 */ bgez $a0, .L80090DEC
/* 0919DC 80090DDC 00000000 */ nop
/* 0919E0 80090DE0 10200002 */ beqz $at, .L80090DEC
/* 0919E4 80090DE4 24790001 */ addiu $t9, $v1, 1
/* 0919E8 80090DE8 ACF90000 */ sw $t9, ($a3)
.L80090DEC:
/* 0919EC 80090DEC 18800006 */ blez $a0, .L80090E08
/* 0919F0 80090DF0 24010005 */ li $at, 5
/* 0919F4 80090DF4 8CE30000 */ lw $v1, ($a3)
/* 0919F8 80090DF8 00000000 */ nop
/* 0919FC 80090DFC 18600002 */ blez $v1, .L80090E08
/* 091A00 80090E00 246DFFFF */ addiu $t5, $v1, -1
/* 091A04 80090E04 ACED0000 */ sw $t5, ($a3)
.L80090E08:
/* 091A08 80090E08 14410006 */ bne $v0, $at, .L80090E24
/* 091A0C 80090E0C 00000000 */ nop
/* 091A10 80090E10 8CEF0000 */ lw $t7, ($a3)
/* 091A14 80090E14 240E0003 */ li $t6, 3
/* 091A18 80090E18 14CF0002 */ bne $a2, $t7, .L80090E24
/* 091A1C 80090E1C 00000000 */ nop
/* 091A20 80090E20 ACEE0000 */ sw $t6, ($a3)
.L80090E24:
/* 091A24 80090E24 15020005 */ bne $t0, $v0, .L80090E3C
/* 091A28 80090E28 240400EB */ li $a0, 235
/* 091A2C 80090E2C 8CF80000 */ lw $t8, ($a3)
/* 091A30 80090E30 00000000 */ nop
/* 091A34 80090E34 11380025 */ beq $t1, $t8, .L80090ECC
/* 091A38 80090E38 8FBF001C */ lw $ra, 0x1c($sp)
.L80090E3C:
/* 091A3C 80090E3C 0C000741 */ jal play_sound_global
/* 091A40 80090E40 00002825 */ move $a1, $zero
/* 091A44 80090E44 3C038012 */ lui $v1, %hi(D_801269CC) # $v1, 0x8012
/* 091A48 80090E48 8C6369CC */ lw $v1, %lo(D_801269CC)($v1)
/* 091A4C 80090E4C 3C028012 */ lui $v0, %hi(D_801269C8) # $v0, 0x8012
/* 091A50 80090E50 8C4269C8 */ lw $v0, %lo(D_801269C8)($v0)
/* 091A54 80090E54 0003C880 */ sll $t9, $v1, 2
/* 091A58 80090E58 0323C823 */ subu $t9, $t9, $v1
/* 091A5C 80090E5C 0019C880 */ sll $t9, $t9, 2
/* 091A60 80090E60 00026840 */ sll $t5, $v0, 1
/* 091A64 80090E64 032D7821 */ addu $t7, $t9, $t5
/* 091A68 80090E68 3C0D8012 */ lui $t5, %hi(gTrackSelectViewportY) # $t5, 0x8012
/* 091A6C 80090E6C 8DAD6480 */ lw $t5, %lo(gTrackSelectViewportY)($t5)
/* 091A70 80090E70 3C0E8012 */ lui $t6, %hi(D_801268E8) # $t6, 0x8012
/* 091A74 80090E74 006D0019 */ multu $v1, $t5
/* 091A78 80090E78 01CF7021 */ addu $t6, $t6, $t7
/* 091A7C 80090E7C 0002C880 */ sll $t9, $v0, 2
/* 091A80 80090E80 85CE68E8 */ lh $t6, %lo(D_801268E8)($t6)
/* 091A84 80090E84 0322C821 */ addu $t9, $t9, $v0
/* 091A88 80090E88 3C01800E */ lui $at, %hi(gTrackIdForPreview) # $at, 0x800e
/* 091A8C 80090E8C 0019C980 */ sll $t9, $t9, 6
/* 091A90 80090E90 44999000 */ mtc1 $t9, $f18
/* 091A94 80090E94 AC2EF4C4 */ sw $t6, %lo(gTrackIdForPreview)($at)
/* 091A98 80090E98 468091A0 */ cvt.s.w $f6, $f18
/* 091A9C 80090E9C 3C01800E */ lui $at, %hi(gTrackSelectRow) # $at, 0x800e
/* 091AA0 80090EA0 24780001 */ addiu $t8, $v1, 1
/* 091AA4 80090EA4 00007812 */ mflo $t7
/* 091AA8 80090EA8 000F7023 */ negu $t6, $t7
/* 091AAC 80090EAC 448E2000 */ mtc1 $t6, $f4
/* 091AB0 80090EB0 AC38F4C8 */ sw $t8, %lo(gTrackSelectRow)($at)
/* 091AB4 80090EB4 468022A0 */ cvt.s.w $f10, $f4
/* 091AB8 80090EB8 3C018012 */ lui $at, %hi(D_801269E8) # $at, 0x8012
/* 091ABC 80090EBC E42669E8 */ swc1 $f6, %lo(D_801269E8)($at)
/* 091AC0 80090EC0 3C018012 */ lui $at, %hi(D_801269EC) # $at, 0x8012
/* 091AC4 80090EC4 E42A69EC */ swc1 $f10, %lo(D_801269EC)($at)
.L80090EC8:
/* 091AC8 80090EC8 8FBF001C */ lw $ra, 0x1c($sp)
.L80090ECC:
/* 091ACC 80090ECC 27BD0048 */ addiu $sp, $sp, 0x48
/* 091AD0 80090ED0 03E00008 */ jr $ra
/* 091AD4 80090ED4 00000000 */ nop
@@ -1,93 +0,0 @@
glabel func_80072424
/* 073024 80072424 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 073028 80072428 00047400 */ sll $t6, $a0, 0x10
/* 07302C 8007242C 30B800FF */ andi $t8, $a1, 0xff
/* 073030 80072430 000E7C03 */ sra $t7, $t6, 0x10
/* 073034 80072434 AFA40020 */ sw $a0, 0x20($sp)
/* 073038 80072438 44866000 */ mtc1 $a2, $f12
/* 07303C 8007243C 2B010013 */ slti $at, $t8, 0x13
/* 073040 80072440 01E02025 */ move $a0, $t7
/* 073044 80072444 AFBF0014 */ sw $ra, 0x14($sp)
/* 073048 80072448 10200047 */ beqz $at, .L80072568
/* 07304C 8007244C AFA50024 */ sw $a1, 0x24($sp)
/* 073050 80072450 05E00045 */ bltz $t7, .L80072568
/* 073054 80072454 29E10004 */ slti $at, $t7, 4
/* 073058 80072458 10200044 */ beqz $at, .L8007256C
/* 07305C 8007245C 8FBF0014 */ lw $ra, 0x14($sp)
/* 073060 80072460 A7AF0022 */ sh $t7, 0x22($sp)
/* 073064 80072464 AFB80018 */ sw $t8, 0x18($sp)
/* 073068 80072468 0C01C894 */ jal func_80072250
/* 07306C 8007246C E7AC0028 */ swc1 $f12, 0x28($sp)
/* 073070 80072470 3059FFFF */ andi $t9, $v0, 0xffff
/* 073074 80072474 00194080 */ sll $t0, $t9, 2
/* 073078 80072478 01194021 */ addu $t0, $t0, $t9
/* 07307C 8007247C 3C098012 */ lui $t1, %hi(D_801241B8) # $t1, 0x8012
/* 073080 80072480 252941B8 */ addiu $t1, %lo(D_801241B8) # addiu $t1, $t1, 0x41b8
/* 073084 80072484 00084040 */ sll $t0, $t0, 1
/* 073088 80072488 01091821 */ addu $v1, $t0, $t1
/* 07308C 8007248C 8FA60018 */ lw $a2, 0x18($sp)
/* 073090 80072490 846A0000 */ lh $t2, ($v1)
/* 073094 80072494 87A40022 */ lh $a0, 0x22($sp)
/* 073098 80072498 C7AC0028 */ lwc1 $f12, 0x28($sp)
/* 07309C 8007249C 14CA000C */ bne $a2, $t2, .L800724D0
/* 0730A0 800724A0 3C013F80 */ li $at, 0x3F800000 # 1.000000
/* 0730A4 800724A4 846B0008 */ lh $t3, 8($v1)
/* 0730A8 800724A8 240CFED4 */ li $t4, -300
/* 0730AC 800724AC 05610002 */ bgez $t3, .L800724B8
/* 0730B0 800724B0 3C0D8012 */ lui $t5, %hi(sUnkMiscAsset19) # $t5, 0x8012
/* 0730B4 800724B4 A46C0008 */ sh $t4, 8($v1)
.L800724B8:
/* 0730B8 800724B8 8DAD41E0 */ lw $t5, %lo(sUnkMiscAsset19)($t5)
/* 0730BC 800724BC 00067880 */ sll $t7, $a2, 2
/* 0730C0 800724C0 01AFC021 */ addu $t8, $t5, $t7
/* 0730C4 800724C4 87190002 */ lh $t9, 2($t8)
/* 0730C8 800724C8 10000027 */ b .L80072568
/* 0730CC 800724CC A4790004 */ sh $t9, 4($v1)
.L800724D0:
/* 0730D0 800724D0 44800000 */ mtc1 $zero, $f0
/* 0730D4 800724D4 3C088012 */ lui $t0, %hi(sUnkMiscAsset19) # $t0, 0x8012
/* 0730D8 800724D8 4600603C */ c.lt.s $f12, $f0
/* 0730DC 800724DC 00000000 */ nop
/* 0730E0 800724E0 45000002 */ bc1f .L800724EC
/* 0730E4 800724E4 00000000 */ nop
/* 0730E8 800724E8 46000306 */ mov.s $f12, $f0
.L800724EC:
/* 0730EC 800724EC 44810000 */ mtc1 $at, $f0
/* 0730F0 800724F0 00000000 */ nop
/* 0730F4 800724F4 460C003C */ c.lt.s $f0, $f12
/* 0730F8 800724F8 00000000 */ nop
/* 0730FC 800724FC 45000002 */ bc1f .L80072508
/* 073100 80072500 00000000 */ nop
/* 073104 80072504 46000306 */ mov.s $f12, $f0
.L80072508:
/* 073108 80072508 A4660000 */ sh $a2, ($v1)
/* 07310C 8007250C 8D0841E0 */ lw $t0, %lo(sUnkMiscAsset19)($t0)
/* 073110 80072510 00065080 */ sll $t2, $a2, 2
/* 073114 80072514 010A1021 */ addu $v0, $t0, $t2
/* 073118 80072518 84470000 */ lh $a3, ($v0)
/* 07311C 8007251C 00000000 */ nop
/* 073120 80072520 10E00012 */ beqz $a3, .L8007256C
/* 073124 80072524 8FBF0014 */ lw $ra, 0x14($sp)
/* 073128 80072528 44872000 */ mtc1 $a3, $f4
/* 07312C 8007252C 84460002 */ lh $a2, 2($v0)
/* 073130 80072530 468021A0 */ cvt.s.w $f6, $f4
/* 073134 80072534 460C3202 */ mul.s $f8, $f6, $f12
/* 073138 80072538 444BF800 */ cfc1 $t3, $31
/* 07313C 8007253C 00000000 */ nop
/* 073140 80072540 35610003 */ ori $at, $t3, 3
/* 073144 80072544 38210002 */ xori $at, $at, 2
/* 073148 80072548 44C1F800 */ ctc1 $at, $31
/* 07314C 8007254C 00000000 */ nop
/* 073150 80072550 460042A4 */ cvt.w.s $f10, $f8
/* 073154 80072554 44055000 */ mfc1 $a1, $f10
/* 073158 80072558 44CBF800 */ ctc1 $t3, $31
/* 07315C 8007255C 00056400 */ sll $t4, $a1, 0x10
/* 073160 80072560 0C01C95E */ jal func_80072578
/* 073164 80072564 000C2C03 */ sra $a1, $t4, 0x10
.L80072568:
/* 073168 80072568 8FBF0014 */ lw $ra, 0x14($sp)
.L8007256C:
/* 07316C 8007256C 27BD0020 */ addiu $sp, $sp, 0x20
/* 073170 80072570 03E00008 */ jr $ra
/* 073174 80072574 00000000 */ nop
-112
View File
@@ -1,112 +0,0 @@
.late_rodata
glabel D_800E77E0
.double 0.1
.text
glabel func_80072578
/* 073178 80072578 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 07317C 8007257C 3C198012 */ lui $t9, %hi(D_801241E4) # $t9, 0x8012
/* 073180 80072580 933941E4 */ lbu $t9, %lo(D_801241E4)($t9)
/* 073184 80072584 00047400 */ sll $t6, $a0, 0x10
/* 073188 80072588 000E7C03 */ sra $t7, $t6, 0x10
/* 07318C 8007258C AFA40018 */ sw $a0, 0x18($sp)
/* 073190 80072590 00053C00 */ sll $a3, $a1, 0x10
/* 073194 80072594 0007C403 */ sra $t8, $a3, 0x10
/* 073198 80072598 01E02025 */ move $a0, $t7
/* 07319C 8007259C AFBF0014 */ sw $ra, 0x14($sp)
/* 0731A0 800725A0 AFA5001C */ sw $a1, 0x1c($sp)
/* 0731A4 800725A4 13200031 */ beqz $t9, .L8007266C
/* 0731A8 800725A8 AFA60020 */ sw $a2, 0x20($sp)
/* 0731AC 800725AC 05E0002F */ bltz $t7, .L8007266C
/* 0731B0 800725B0 29E10004 */ slti $at, $t7, 4
/* 0731B4 800725B4 1020002E */ beqz $at, .L80072670
/* 0731B8 800725B8 8FBF0014 */ lw $ra, 0x14($sp)
/* 0731BC 800725BC 0C01C894 */ jal func_80072250
/* 0731C0 800725C0 A7B8001E */ sh $t8, 0x1e($sp)
/* 0731C4 800725C4 87A7001E */ lh $a3, 0x1e($sp)
/* 0731C8 800725C8 3C088012 */ lui $t0, %hi(D_801241E6) # $t0, 0x8012
/* 0731CC 800725CC 00E70019 */ multu $a3, $a3
/* 0731D0 800725D0 00022400 */ sll $a0, $v0, 0x10
/* 0731D4 800725D4 250841E6 */ addiu $t0, %lo(D_801241E6) # addiu $t0, $t0, 0x41e6
/* 0731D8 800725D8 00045403 */ sra $t2, $a0, 0x10
/* 0731DC 800725DC 240B0001 */ li $t3, 1
/* 0731E0 800725E0 910D0000 */ lbu $t5, ($t0)
/* 0731E4 800725E4 3C098012 */ lui $t1, %hi(D_801241E7) # $t1, 0x8012
/* 0731E8 800725E8 014B6004 */ sllv $t4, $t3, $t2
/* 0731EC 800725EC 252941E7 */ addiu $t1, %lo(D_801241E7) # addiu $t1, $t1, 0x41e7
/* 0731F0 800725F0 912F0000 */ lbu $t7, ($t1)
/* 0731F4 800725F4 0180C027 */ not $t8, $t4
/* 0731F8 800725F8 01AC7025 */ or $t6, $t5, $t4
/* 0731FC 800725FC 00006012 */ mflo $t4
/* 073200 80072600 448C2000 */ mtc1 $t4, $f4
/* 073204 80072604 01F8C824 */ and $t9, $t7, $t8
/* 073208 80072608 A10E0000 */ sb $t6, ($t0)
/* 07320C 8007260C A1390000 */ sb $t9, ($t1)
/* 073210 80072610 3C01800E */ lui $at, %hi(D_800E77E0 + 4) # $at, 0x800e
/* 073214 80072614 468021A1 */ cvt.d.w $f6, $f4
/* 073218 80072618 C42977E0 */ lwc1 $f9, %lo(D_800E77E0)($at)
/* 07321C 8007261C C42877E4 */ lwc1 $f8, %lo(D_800E77E0 + 4)($at)
/* 073220 80072620 01402025 */ move $a0, $t2
/* 073224 80072624 46283282 */ mul.d $f10, $f6, $f8
/* 073228 80072628 000A5080 */ sll $t2, $t2, 2
/* 07322C 8007262C 01445021 */ addu $t2, $t2, $a0
/* 073230 80072630 3C0B8012 */ lui $t3, %hi(D_801241B8) # $t3, 0x8012
/* 073234 80072634 256B41B8 */ addiu $t3, %lo(D_801241B8) # addiu $t3, $t3, 0x41b8
/* 073238 80072638 444DF800 */ cfc1 $t5, $31
/* 07323C 8007263C 000A5040 */ sll $t2, $t2, 1
/* 073240 80072640 35A10003 */ ori $at, $t5, 3
/* 073244 80072644 38210002 */ xori $at, $at, 2
/* 073248 80072648 44C1F800 */ ctc1 $at, $31
/* 07324C 8007264C 014B1821 */ addu $v1, $t2, $t3
/* 073250 80072650 46205424 */ cvt.w.d $f16, $f10
/* 073254 80072654 87AE0022 */ lh $t6, 0x22($sp)
/* 073258 80072658 44068000 */ mfc1 $a2, $f16
/* 07325C 8007265C 44CDF800 */ ctc1 $t5, $31
/* 073260 80072660 A46E0004 */ sh $t6, 4($v1)
/* 073264 80072664 A4660006 */ sh $a2, 6($v1)
/* 073268 80072668 A4660002 */ sh $a2, 2($v1)
.L8007266C:
/* 07326C 8007266C 8FBF0014 */ lw $ra, 0x14($sp)
.L80072670:
/* 073270 80072670 27BD0018 */ addiu $sp, $sp, 0x18
/* 073274 80072674 03E00008 */ jr $ra
/* 073278 80072678 00000000 */ nop
/* 07327C 8007267C 27BDFFE8 */ addiu $sp, $sp, -0x18
/* 073280 80072680 00047400 */ sll $t6, $a0, 0x10
/* 073284 80072684 000E7C03 */ sra $t7, $t6, 0x10
/* 073288 80072688 AFA40018 */ sw $a0, 0x18($sp)
/* 07328C 8007268C 01E02025 */ move $a0, $t7
/* 073290 80072690 05E00019 */ bltz $t7, .L800726F8
/* 073294 80072694 AFBF0014 */ sw $ra, 0x14($sp)
/* 073298 80072698 29E10004 */ slti $at, $t7, 4
/* 07329C 8007269C 10200017 */ beqz $at, .L800726FC
/* 0732A0 800726A0 8FBF0014 */ lw $ra, 0x14($sp)
/* 0732A4 800726A4 0C01C894 */ jal func_80072250
/* 0732A8 800726A8 00000000 */ nop
/* 0732AC 800726AC 00022400 */ sll $a0, $v0, 0x10
/* 0732B0 800726B0 0004C403 */ sra $t8, $a0, 0x10
/* 0732B4 800726B4 00185880 */ sll $t3, $t8, 2
/* 0732B8 800726B8 3C058012 */ lui $a1, %hi(D_801241E7) # $a1, 0x8012
/* 0732BC 800726BC 01785821 */ addu $t3, $t3, $t8
/* 0732C0 800726C0 3C0C8012 */ lui $t4, %hi(D_801241B8) # $t4, 0x8012
/* 0732C4 800726C4 24A541E7 */ addiu $a1, %lo(D_801241E7) # addiu $a1, $a1, 0x41e7
/* 0732C8 800726C8 258C41B8 */ addiu $t4, %lo(D_801241B8) # addiu $t4, $t4, 0x41b8
/* 0732CC 800726CC 000B5840 */ sll $t3, $t3, 1
/* 0732D0 800726D0 90B90000 */ lbu $t9, ($a1)
/* 0732D4 800726D4 24080001 */ li $t0, 1
/* 0732D8 800726D8 016C1821 */ addu $v1, $t3, $t4
/* 0732DC 800726DC 2406FFFF */ li $a2, -1
/* 0732E0 800726E0 03084804 */ sllv $t1, $t0, $t8
/* 0732E4 800726E4 03295025 */ or $t2, $t9, $t1
/* 0732E8 800726E8 A0AA0000 */ sb $t2, ($a1)
/* 0732EC 800726EC A4660004 */ sh $a2, 4($v1)
/* 0732F0 800726F0 A4660000 */ sh $a2, ($v1)
/* 0732F4 800726F4 A4600008 */ sh $zero, 8($v1)
.L800726F8:
/* 0732F8 800726F8 8FBF0014 */ lw $ra, 0x14($sp)
.L800726FC:
/* 0732FC 800726FC 27BD0018 */ addiu $sp, $sp, 0x18
/* 073300 80072700 03E00008 */ jr $ra
/* 073304 80072704 00000000 */ nop
+45 -45
View File
@@ -23,51 +23,6 @@ typedef struct Vec3f {
};
} Vec3f;
/* Size: 0x20 bytes */
typedef struct MenuElement {
// Element Position
/* 0x00 */ s16 left; // Where the element spawns on entry.
/* 0x02 */ s16 top;
/* 0x04 */ s16 center; // Value of where the element moves to after entry
/* 0x06 */ s16 middle;
/* 0x08 */ s16 right; // Value of where the element moves to after exit
/* 0x0A */ s16 bottom;
// Element Color/Transparency
/* 0x0C */ u8 filterRed;
/* 0x0D */ u8 filterGreen;
/* 0x0E */ u8 filterBlue;
/* 0x0F */ u8 filterAlpha; // 0 = no filter color, 0xFF = full color.
/* 0x10 */ u8 opacity;
// Element Properties
/* 0x11 */ u8 textFont;
/* 0x12 */ u8 textAlignFlags;
// Element Type
/* 0x13 */ u8 elementType; // Source type? 0 = ascii text, 2 = number, 7 = texture
union {
/* 0x14 */ void *element; // Generic pointer
/* 0x14 */ char *asciiText; // Pointer to ascii text to be displayed on the screen.
/* 0x14 */ u32 *texture; // Pointer to texture to be displayed on the screen.
/* 0x14 */ s32 *number; // Pointer to a number to be displayed on the screen.
/* 0x14 */ u16 *numberU16; // Pointer to a number to be displayed on the screen.
/* 0x14 */ s32 value; // Some value for elementType == 5
} unk14_a;
// Element Background Color/Transparency
/* 0x18 */ s16 backgroundRed;
/* 0x1A */ s16 backgroundGreen;
/* 0x1C */ s16 backgroundBlue;
/* 0x1E */ s16 backgroundAlpha; // 0x0000 = No background, 0x00FF = full background color.
} MenuElement;
#define TEX_FORMAT_RGBA32 0
#define TEX_FORMAT_RGBA16 1
#define TEX_FORMAT_I8 2
#define TEX_FORMAT_I4 3
#define TEX_FORMAT_IA16 4
#define TEX_FORMAT_IA8 5
#define TEX_FORMAT_IA4 6
#define TEX_FORMAT_CI4 7
#define TEX_FORMAT_CI8 8
/* Size: 0x20 bytes */
typedef struct TextureHeader {
/* 0x00 */ u8 width;
@@ -114,6 +69,51 @@ typedef struct DrawTexture {
s16 yOffset; // Offset from the center of the screen.
} DrawTexture;
/* Size: 0x20 bytes */
typedef struct MenuElement {
// Element Position
/* 0x00 */ s16 left; // Where the element spawns on entry.
/* 0x02 */ s16 top;
/* 0x04 */ s16 center; // Value of where the element moves to after entry
/* 0x06 */ s16 middle;
/* 0x08 */ s16 right; // Value of where the element moves to after exit
/* 0x0A */ s16 bottom;
// Element Color/Transparency
/* 0x0C */ u8 filterRed;
/* 0x0D */ u8 filterGreen;
/* 0x0E */ u8 filterBlue;
/* 0x0F */ u8 filterAlpha; // 0 = no filter color, 0xFF = full color.
/* 0x10 */ u8 opacity;
// Element Properties
/* 0x11 */ u8 textFont;
/* 0x12 */ u8 textAlignFlags;
// Element Type
/* 0x13 */ u8 elementType; // Source type? 0 = ascii text, 2 = number, 7 = texture
union {
/* 0x14 */ void *element; // Generic pointer
/* 0x14 */ char *asciiText; // Pointer to ascii text to be displayed on the screen.
/* 0x14 */ TextureHeader *texture; // Pointer to texture to be displayed on the screen.
/* 0x14 */ s32 *number; // Pointer to a number to be displayed on the screen.
/* 0x14 */ u16 *numberU16; // Pointer to a number to be displayed on the screen.
/* 0x14 */ s32 value; // Some value for elementType == 5
} unk14_a;
// Element Background Color/Transparency
/* 0x18 */ s16 backgroundRed;
/* 0x1A */ s16 backgroundGreen;
/* 0x1C */ s16 backgroundBlue;
/* 0x1E */ s16 backgroundAlpha; // 0x0000 = No background, 0x00FF = full background color.
} MenuElement;
#define TEX_FORMAT_RGBA32 0
#define TEX_FORMAT_RGBA16 1
#define TEX_FORMAT_I8 2
#define TEX_FORMAT_I4 3
#define TEX_FORMAT_IA16 4
#define TEX_FORMAT_IA8 5
#define TEX_FORMAT_IA4 6
#define TEX_FORMAT_CI4 7
#define TEX_FORMAT_CI8 8
/* Size: 0x18 bytes */
typedef struct Racer {
/* 0x00 */ u32 trophy_points;
+90 -1
View File
@@ -743,7 +743,96 @@ void func_80066CDC(Gfx **dlist, Mtx **mats) {
GLOBAL_ASM("asm/non_matchings/camera/func_80066CDC.s")
#endif
GLOBAL_ASM("asm/non_matchings/camera/func_80067A3C.s")
void func_80067A3C(Gfx **dlist) {
s32 size;
s32 lrx;
s32 lry;
s32 ulx;
s32 uly;
s32 numViewports;
s32 temp;
s32 temp2;
s32 temp3;
s32 temp4;
s32 width;
s32 height;
size = get_video_width_and_height_as_s32();
height = (u16) GET_VIDEO_HEIGHT(size);
width = (u16) size;
numViewports = gNumberOfViewports;
if (numViewports != 0) {
if (numViewports == 2) {
numViewports = 3;
}
lrx = ulx = 0;
lry = uly = 0;
lrx += width;\
lry += height;
temp = lry >> 7;
temp2 = lrx >> 8;
temp4 = lrx >> 1;
temp3 = lry >> 1;
switch (numViewports) {
case 1:
switch (gObjectRenderStackPos) {
case 0:
lry = temp3 - temp;
break;
default:
uly = temp3 + temp;
lry -= temp;
break;
}
break;
case 2:
switch (gObjectRenderStackPos) {
case 0:
lrx = temp4 - temp2;
break;
default:
ulx = temp4 + temp2;
lrx -= temp2;
break;
}
break;
case 3:
switch (gObjectRenderStackPos) {
case 0:
lrx = temp4 - temp2;\
lry = temp3 - temp;
break;
case 1:
ulx = temp4 + temp2;
lrx -= temp2;
lry = temp3 - temp;
break;
case 2:
uly = temp3 + temp;
lrx = temp4 - temp2;\
lry -= temp;
break;
case 3:
ulx = temp4 + temp2; \
uly = temp3 + temp;
lrx -= temp2; \
lry -= temp;
break;
}
break;
}
gDPSetScissor((*dlist)++, 0, ulx, uly, lrx, lry);
return;
}
gDPSetScissor((*dlist)++, 0, 0, 0, width, height);
}
void func_80067D3C(Gfx **dlist, UNUSED Mtx **mats) {
s32 temp;
+1 -1
View File
@@ -175,9 +175,9 @@ s8 clamp_joystick(s8 stickMag);
void disable_button_mask(void);
s32 init_controllers(void);
void func_80067D3C(Gfx **dlist, UNUSED Mtx **mats);
void func_80067A3C(Gfx **dlist);
// Non Matching
void func_80067A3C(Gfx **dlist);
void func_80066610(void);
void func_80065EA0(void);
s32 func_8006A1C4(s32 arg0, s32 logicUpdateRate);
+472 -65
View File
File diff suppressed because it is too large Load Diff
+4 -4
View File
@@ -163,7 +163,7 @@ typedef struct unk800DFA3C {
u8 unk9;
u8 unkA;
u8 unkB;
u32* unkC;
char *unkC;
} unk800DFA3C;
typedef struct ButtonElement {
@@ -254,6 +254,7 @@ typedef struct TitleScreenDemos {
#define X_TILE_SIZE 320
/* Size 0x10 bytes */
typedef struct TrackRenderDetails {
/* 0x00 */ u8 *hubName;
/* 0x04 */ u8 *trackName;
@@ -704,7 +705,6 @@ extern s8 gPlayerSelectVehicle[4];
extern s16 gFFLUnlocked;
extern s32 gOpacityDecayTimer;
extern s32 gTrackSelectViewportY;
//extern s32 D_801268E8[12];
extern s16 gFFLUnlocked;
extern s32 D_80126924;
extern s32 D_80126928;
@@ -920,9 +920,9 @@ void func_800853D0(unk800861C8 *arg0, s32 arg1, s32 arg2);
void render_enter_filename_ui(UNUSED s32 unused);
void func_8008D8BC(s32 updateRate);
void renderTrackSelect(s32 arg0, s32 arg1, s8 *arg2, s8 *arg3, s32 arg4, s32 arg5, s32 arg6, DrawTexture *arg7, s32 arg8);
//Possible names
//void renderTrackSelect(s32 xPos, s32 yPos, char *levelName, char *arg3, s32 colour, s32 imageId, s32 copyViewPort, DrawTexture *arg7, s32 arg8);
s32 func_80095728(Gfx **gfx, Mtx **mtx, VertexList **vtx, s32 updateRate);
s32 func_8008F618(Gfx **dlist, Mtx **mat);
void func_80093D40(UNUSED s32 updateRate);
typedef enum MenuTextures {
/* 0x00 */ TEXTURE_UNK_00,
+64 -16
View File
@@ -131,39 +131,87 @@ void func_80072298(u8 arg0) {
func_80072708();
}
UNUSED s32 func_800722E8(s16 arg0) {
UNUSED s32 func_800722E8(s16 controllerIndex) {
s32 temp;
if (arg0 < 0 || arg0 >= 4) {
if (controllerIndex < 0 || controllerIndex >= 4) {
return 0;
}
temp = ((1 << func_80072250(arg0)) & 0xFF);
temp = ((1 << func_80072250(controllerIndex)) & 0xFF);
return sRumblePaksPresent & temp;
}
void func_80072348(s16 arg0, u8 arg1) {
void func_80072348(s16 controllerIndex, u8 arg1) {
s32 index;
if (arg1 < 19 && arg0 >= 0 && arg0 < 4) {
index = (func_80072250(arg0)) & 0xFFFF;
if (arg1 < 19 && controllerIndex >= 0 && controllerIndex < 4) {
index = (func_80072250(controllerIndex)) & 0xFFFF;
if (D_801241B8[index].unk0 == arg1) {
if (D_801241B8[index].unk8 < 0) {
D_801241B8[index].unk8 = -300;
}
D_801241B8[index].unk4 = (&sUnkMiscAsset19[arg1 << 1])[1];
D_801241B8[index].unk4 = sUnkMiscAsset19[(arg1 * 2) + 1];
} else {
D_801241B8[index].unk0 = arg1;
if ((*(&sUnkMiscAsset19[(s32) arg1 << 1]))) {
func_80072578(
arg0,
(&sUnkMiscAsset19[(s32) arg1 << 1])[0],
(&sUnkMiscAsset19[(s32) arg1 << 1])[1]
);
if (sUnkMiscAsset19[arg1 * 2] != 0) {
func_80072578(controllerIndex, sUnkMiscAsset19[arg1 * 2], sUnkMiscAsset19[(arg1 * 2) + 1]);
}
}
}
}
GLOBAL_ASM("asm/non_matchings/save_data/func_80072424.s")
GLOBAL_ASM("asm/non_matchings/save_data/func_80072578.s")
void func_80072424(s16 controllerIndex, u8 arg1, f32 arg2) {
s32 index;
if (arg1 < 19 && controllerIndex >= 0 && controllerIndex < 4) {
index = func_80072250(controllerIndex) & 0xFFFF;
if (arg1 == D_801241B8[index].unk0) {
if (D_801241B8[index].unk8 < 0) {
D_801241B8[index].unk8 = -300;
}
D_801241B8[index].unk4 = sUnkMiscAsset19[(arg1 * 2) + 1];
} else {
if (arg2 < 0.0f) {
arg2 = 0.0f;
}
if (arg2 > 1.0f) {
arg2 = 1.0f;
}
D_801241B8[index].unk0 = arg1;
if (sUnkMiscAsset19[arg1 * 2] != 0) {
func_80072578(controllerIndex, (sUnkMiscAsset19[arg1 * 2] * arg2), sUnkMiscAsset19[(arg1 * 2) + 1]);
}
}
}
}
void func_80072578(s16 controllerIndex, s16 arg1, s16 arg2) {
s16 index;
u8 new_var;
if (D_801241E4 != 0 && controllerIndex >= 0 && controllerIndex < 4) {
new_var = func_80072250(controllerIndex);
index = 0xFFFF;
index = index & new_var;
new_var = 1 << index;
D_801241E6 |= new_var;
D_801241E7 &= ~new_var;
D_801241B8[index].unk6 = ((arg1 * arg1) * 0.1);
D_801241B8[index].unk2 = ((arg1 * arg1) * 0.1);
D_801241B8[index].unk4 = arg2;
}
}
UNUSED void func_8007267C(s16 controllerIndex) {
s16 index;
if (controllerIndex >= 0 && controllerIndex < 4) {
index = func_80072250(controllerIndex);
D_801241E7 |= 1 << index;
D_801241B8[index].unk4 = -1;
D_801241B8[index].unk0 = -1;
D_801241B8[index].unk8 = 0;
}
}
void func_80072708(void) {
D_800DE48C = 3;
@@ -784,7 +832,7 @@ void init_controller_paks(void) {
s8 maxControllers;
sControllerMesgQueue = get_si_mesg_queue();
sUnkMiscAsset19 = get_misc_asset(19), //Comma is here on purpose
sUnkMiscAsset19 = (s16 *)get_misc_asset(ASSET_MISC_19), //Comma is here on purpose
D_801241E7 = 0xF;
D_801241E6 = 0xF;
D_801241E4 = 1;
+3 -1
View File
@@ -74,6 +74,9 @@ SIDeviceStatus write_controller_pak_file(s32 controllerIndex, s32 fileNumber, ch
SIDeviceStatus get_file_size(s32 controllerIndex, s32 fileNum, s32 *fileSize);
char *font_codes_to_string(char *inString, char *outString, s32 stringLength);
s32 get_file_type(s32 controllerIndex, s32 fileNum);
void func_80072578(s16 controllerIndex, s16 arg1, s16 arg2);
void func_80072348(s16 controllerIndex, u8 arg1);
void func_80072424(s16 controllerIndex, u8 arg1, f32 arg2);
s32 func_800738A4(Settings *arg0, u8 *arg1); //Non matching
void func_800732E8(Settings *arg0, u8 *arg1); //Non matching
@@ -94,6 +97,5 @@ s32 func_80075000(s32 controllerIndex, s16 arg1, s16 arg2, s16 ghostCharacterId,
s32 func_800753D8(s32 controllerIndex, s32 arg1);
//Pretty bad signature, but at can confidently state arg0 is controllerIndex.
s32 func_800756D4(s32 controllerIndex, s8 *arg1, void *arg2, u8 *arg3, void *arg4);
void func_80072348(s16 arg0, u8 arg1);
#endif
+1
View File
@@ -68,6 +68,7 @@ void setup_ostask_fifo(Gfx* dlBegin, Gfx* dlEnd, s32 recvMesg);
void render_textured_rectangle(Gfx **dlist, DrawTexture *img, s32 xPos, s32 yPos, u8 red, u8 green, u8 blue, u8 alpha);
void func_800787FC(Gfx** arg0);
void render_background(Gfx **dlist, Mtx *mtx, s32 drawBG);
void func_80078AAC(void *arg0);
//Non Matching
void render_texture_rectangle_scaled(Gfx **dlist, DrawTexture *element, f32 x, f32 y, f32 x_scale, f32 y_scale, u32 color, s32 flip);