Apply the usual cleanup of some recent matches (#428)

* WIP set_ghost_position_and_rotation

* set_ghost_position_and_rotation WIP update

* Match 3 menu funcs

* Add missing changes from last commit.

* Update README

* Fix NON_EQUIVALENT again

* math_util renames and minor cleanup. Used official names.

* Match func_800904E8

* Rename to our standard
This commit is contained in:
Ryan Myers
2023-10-30 10:52:01 -04:00
committed by GitHub
parent 5d50918067
commit 8019d578c0
25 changed files with 346 additions and 1265 deletions
+7 -7
View File
@@ -5,9 +5,9 @@ This repo contains a work-in-progress decompilation of Diddy Kong Racing for the
Currently, only the US 1.0 version of the game is supported. US 1.1, EU 1.0, EU 1.1, and JP are not supported at this time.
<!-- README_SCORE_SUMMARY_BEGIN -->
As of October 29, 2023, this is our current score:
As of October 30, 2023, this is our current score:
&emsp;&emsp;&emsp;&emsp;Decomp progress: 62.22%
&emsp;&emsp;&emsp;&emsp;Decomp progress: 62.34%
&emsp;&emsp;&emsp;&emsp;Documentation progress: 33.66%
<!-- README_SCORE_SUMMARY_END -->
@@ -128,15 +128,15 @@ s32 is_drumstick_unlocked(void) {
```
<!-- README_SCORE_BEGIN -->
As of October 29, 2023, this is our current score:
As of October 30th, 2023, this is our current score:
```
======================================================================
ADVENTURE ONE (ASM -> C Decompilation)
-------------------------- 62.22% Complete ---------------------------
# Decompiled functions: 1655
# GLOBAL_ASM remaining: 190
-------------------------- 62.34% Complete ---------------------------
# Decompiled functions: 1656
# GLOBAL_ASM remaining: 189
# NON_MATCHING functions: 12
# NON_EQUIVALENT WIP functions: 56
# NON_EQUIVALENT WIP functions: 57
---------------------------- Game Status -----------------------------
Balloons: 30/47, Keys: 3/4, Trophies: 2/5
T.T. Amulets: 3/4, Wizpig Amulets: 3/4
@@ -1,8 +1,8 @@
glabel clear_status_register_flags /* Official name: disableInterrupts */
/* 070110 8006F510 3C08800E */ lui $t0, %hi(D_800DD430) # $t0, 0x800e
/* 070114 8006F514 8108D430 */ lb $t0, %lo(D_800DD430)($t0)
glabel disable_interrupts /* Official name: disableInterrupts */
/* 070110 8006F510 3C08800E */ lui $t0, %hi(gIntDisFlag) # $t0, 0x800e
/* 070114 8006F514 8108D430 */ lb $t0, %lo(gIntDisFlag)($t0)
/* 070118 8006F518 11000006 */ beqz $t0, .L8006F534
/* 07011C 8006F51C 40086000 */ mfc0 $t0, $12 # C0_SR - Status Register
/* 07011C 8006F51C 40086000 */ mfc0 $t0, $12 # C0_SR - Status Register
/* 070120 8006F520 2401FFFE */ li $at, -2
/* 070124 8006F524 01014824 */ and $t1, $t0, $at
/* 070128 8006F528 40896000 */ mtc0 $t1, $12
-3
View File
@@ -9,6 +9,3 @@ glabel dmacopy_doubleword
/* 07171C 80070B1C FCA9FFF8 */ sd $t1, -8($a1)
/* 071720 80070B20 03E00008 */ jr $ra
/* 071724 80070B24 00000000 */ nop
/* 071728 80070B28 00000000 */ nop
/* 07172C 80070B2C 00000000 */ nop
@@ -1,6 +1,6 @@
glabel set_status_register_flags /* Official name: enableInterrupts */
/* 07013C 8006F53C 3C08800E */ lui $t0, %hi(D_800DD430) # $t0, 0x800e
/* 070140 8006F540 8108D430 */ lb $t0, %lo(D_800DD430)($t0)
glabel enable_interrupts /* Official name: enableInterrupts */
/* 07013C 8006F53C 3C08800E */ lui $t0, %hi(gIntDisFlag) # $t0, 0x800e
/* 070140 8006F540 8108D430 */ lb $t0, %lo(gIntDisFlag)($t0)
/* 070144 8006F544 11000005 */ beqz $t0, .L8006F55C # Identical to __osRestoreInt below this line
/* 070148 8006F548 40086000 */ mfc0 $t0, $12 # C0_SR - Status Register
/* 07014C 8006F54C 01044025 */ or $t0, $t0, $a0
-4
View File
@@ -1,4 +0,0 @@
glabel get_D_800DD430
/* 070170 8006F570 3C02800E */ lui $v0, %hi(D_800DD430) # $v0, 0x800e
/* 070174 8006F574 03E00008 */ jr $ra
/* 070178 8006F578 9042D430 */ lbu $v0, %lo(D_800DD430)($v0)
+4
View File
@@ -0,0 +1,4 @@
glabel get_gIntDisFlag
/* 070170 8006F570 3C02800E */ lui $v0, %hi(gIntDisFlag) # $v0, 0x800e
/* 070174 8006F574 03E00008 */ jr $ra
/* 070178 8006F578 9042D430 */ lbu $v0, %lo(gIntDisFlag)($v0)
-4
View File
@@ -1,4 +0,0 @@
glabel set_D_800DD430
/* 070164 8006F564 3C01800E */ lui $at, %hi(D_800DD430) # $at, 0x800e
/* 070168 8006F568 03E00008 */ jr $ra
/* 07016C 8006F56C A024D430 */ sb $a0, %lo(D_800DD430)($at)
+4
View File
@@ -0,0 +1,4 @@
glabel set_gIntDisFlag /* Official Name: setIntDisFlag */
/* 070164 8006F564 3C01800E */ lui $at, %hi(gIntDisFlag) # $at, 0x800e
/* 070168 8006F568 03E00008 */ jr $ra
/* 07016C 8006F56C A024D430 */ sb $a0, %lo(gIntDisFlag)($at)
+1 -1
View File
@@ -5,7 +5,7 @@
.section .data
glabel D_800DD430
glabel gIntDisFlag
.word 0x00000000
glabel gCurrentRNGSeed
-284
View File
@@ -1,284 +0,0 @@
.late_rodata
glabel D_800E84E0
.double 0.1
glabel D_800E84E8
.double 0.1
.text
glabel func_800904E8
/* 0910E8 800904E8 27BDFFB8 */ addiu $sp, $sp, -0x48
/* 0910EC 800904EC AFBF001C */ sw $ra, 0x1c($sp)
/* 0910F0 800904F0 0C031CFC */ jal tick_thread30
/* 0910F4 800904F4 AFA40048 */ sw $a0, 0x48($sp)
/* 0910F8 800904F8 8FA50048 */ lw $a1, 0x48($sp)
/* 0910FC 800904FC 00001025 */ move $v0, $zero
/* 091100 80090500 18A00080 */ blez $a1, .L80090704
/* 091104 80090504 30A30003 */ andi $v1, $a1, 3
/* 091108 80090508 10600031 */ beqz $v1, .L800905D0
/* 09110C 8009050C 00602025 */ move $a0, $v1
/* 091110 80090510 3C018012 */ lui $at, %hi(D_801269E8) # $at, 0x8012
/* 091114 80090514 C42E69E8 */ lwc1 $f14, %lo(D_801269E8)($at)
/* 091118 80090518 3C018012 */ lui $at, %hi(D_801269EC) # $at, 0x8012
/* 09111C 8009051C C43069EC */ lwc1 $f16, %lo(D_801269EC)($at)
/* 091120 80090520 3C01800F */ lui $at, %hi(D_800E84E0 + 4) # $at, 0x800f
/* 091124 80090524 3C088012 */ lui $t0, %hi(gTrackSelectY) # $t0, 0x8012
/* 091128 80090528 3C038012 */ lui $v1, %hi(gTrackSelectX) # $v1, 0x8012
/* 09112C 8009052C C42184E0 */ lwc1 $f1, %lo(D_800E84E0)($at)
/* 091130 80090530 C42084E4 */ lwc1 $f0, %lo(D_800E84E0 + 4)($at)
/* 091134 80090534 246369DC */ addiu $v1, %lo(gTrackSelectX) # addiu $v1, $v1, 0x69dc
/* 091138 80090538 250869E4 */ addiu $t0, %lo(gTrackSelectY) # addiu $t0, $t0, 0x69e4
/* 09113C 8009053C C4660000 */ lwc1 $f6, ($v1)
/* 091140 80090540 C50C0000 */ lwc1 $f12, ($t0)
/* 091144 80090544 46067101 */ sub.s $f4, $f14, $f6
/* 091148 80090548 24420001 */ addiu $v0, $v0, 1
/* 09114C 8009054C 46002121 */ cvt.d.s $f4, $f4
/* 091150 80090550 46202102 */ mul.d $f4, $f4, $f0
/* 091154 80090554 460C8201 */ sub.s $f8, $f16, $f12
/* 091158 80090558 460031A1 */ cvt.d.s $f6, $f6
/* 09115C 8009055C 46243280 */ add.d $f10, $f6, $f4
/* 091160 80090560 10820013 */ beq $a0, $v0, .L800905B0
/* 091164 80090564 460044A1 */ cvt.d.s $f18, $f8
.L80090568:
/* 091168 80090568 46209202 */ mul.d $f8, $f18, $f0
/* 09116C 8009056C 462051A0 */ cvt.s.d $f6, $f10
/* 091170 80090570 24420001 */ addiu $v0, $v0, 1
/* 091174 80090574 E4660000 */ swc1 $f6, ($v1)
/* 091178 80090578 C4660000 */ lwc1 $f6, ($v1)
/* 09117C 8009057C 46006121 */ cvt.d.s $f4, $f12
/* 091180 80090580 46282200 */ add.d $f8, $f4, $f8
/* 091184 80090584 46204220 */ cvt.s.d $f8, $f8
/* 091188 80090588 46067101 */ sub.s $f4, $f14, $f6
/* 09118C 8009058C E5080000 */ swc1 $f8, ($t0)
/* 091190 80090590 C50C0000 */ lwc1 $f12, ($t0)
/* 091194 80090594 46002121 */ cvt.d.s $f4, $f4
/* 091198 80090598 46202102 */ mul.d $f4, $f4, $f0
/* 09119C 8009059C 460C8201 */ sub.s $f8, $f16, $f12
/* 0911A0 800905A0 460031A1 */ cvt.d.s $f6, $f6
/* 0911A4 800905A4 46243280 */ add.d $f10, $f6, $f4
/* 0911A8 800905A8 1482FFEF */ bne $a0, $v0, .L80090568
/* 0911AC 800905AC 460044A1 */ cvt.d.s $f18, $f8
.L800905B0:
/* 0911B0 800905B0 46209202 */ mul.d $f8, $f18, $f0
/* 0911B4 800905B4 46006121 */ cvt.d.s $f4, $f12
/* 0911B8 800905B8 462051A0 */ cvt.s.d $f6, $f10
/* 0911BC 800905BC E4660000 */ swc1 $f6, ($v1)
/* 0911C0 800905C0 46282200 */ add.d $f8, $f4, $f8
/* 0911C4 800905C4 46204220 */ cvt.s.d $f8, $f8
/* 0911C8 800905C8 E5080000 */ swc1 $f8, ($t0)
/* 0911CC 800905CC 1045004D */ beq $v0, $a1, .L80090704
.L800905D0:
/* 0911D0 800905D0 3C01800F */ lui $at, %hi(D_800E84E8 + 4) # $at, 0x800f
/* 0911D4 800905D4 C42184E8 */ lwc1 $f1, %lo(D_800E84E8)($at)
/* 0911D8 800905D8 C42084EC */ lwc1 $f0, %lo(D_800E84E8 + 4)($at)
/* 0911DC 800905DC 3C018012 */ lui $at, %hi(D_801269E8) # $at, 0x8012
/* 0911E0 800905E0 C42E69E8 */ lwc1 $f14, %lo(D_801269E8)($at)
/* 0911E4 800905E4 3C018012 */ lui $at, %hi(D_801269EC) # $at, 0x8012
/* 0911E8 800905E8 3C038012 */ lui $v1, %hi(gTrackSelectX) # $v1, 0x8012
/* 0911EC 800905EC 3C088012 */ lui $t0, %hi(gTrackSelectY) # $t0, 0x8012
/* 0911F0 800905F0 C43069EC */ lwc1 $f16, %lo(D_801269EC)($at)
/* 0911F4 800905F4 250869E4 */ addiu $t0, %lo(gTrackSelectY) # addiu $t0, $t0, 0x69e4
/* 0911F8 800905F8 246369DC */ addiu $v1, %lo(gTrackSelectX) # addiu $v1, $v1, 0x69dc
.L800905FC:
/* 0911FC 800905FC C4720000 */ lwc1 $f18, ($v1)
/* 091200 80090600 C50C0000 */ lwc1 $f12, ($t0)
/* 091204 80090604 46127281 */ sub.s $f10, $f14, $f18
/* 091208 80090608 24420004 */ addiu $v0, $v0, 4
/* 09120C 8009060C 460C8201 */ sub.s $f8, $f16, $f12
/* 091210 80090610 460052A1 */ cvt.d.s $f10, $f10
/* 091214 80090614 46205282 */ mul.d $f10, $f10, $f0
/* 091218 80090618 460094A1 */ cvt.d.s $f18, $f18
/* 09121C 8009061C 46004221 */ cvt.d.s $f8, $f8
/* 091220 80090620 46006321 */ cvt.d.s $f12, $f12
/* 091224 80090624 46204202 */ mul.d $f8, $f8, $f0
/* 091228 80090628 462A9280 */ add.d $f10, $f18, $f10
/* 09122C 8009062C 462052A0 */ cvt.s.d $f10, $f10
/* 091230 80090630 46286200 */ add.d $f8, $f12, $f8
/* 091234 80090634 E46A0000 */ swc1 $f10, ($v1)
/* 091238 80090638 46204220 */ cvt.s.d $f8, $f8
/* 09123C 8009063C C46A0000 */ lwc1 $f10, ($v1)
/* 091240 80090640 E5080000 */ swc1 $f8, ($t0)
/* 091244 80090644 460A7201 */ sub.s $f8, $f14, $f10
/* 091248 80090648 C50C0000 */ lwc1 $f12, ($t0)
/* 09124C 8009064C 46004221 */ cvt.d.s $f8, $f8
/* 091250 80090650 46204202 */ mul.d $f8, $f8, $f0
/* 091254 80090654 460C8481 */ sub.s $f18, $f16, $f12
/* 091258 80090658 460052A1 */ cvt.d.s $f10, $f10
/* 09125C 8009065C 46285200 */ add.d $f8, $f10, $f8
/* 091260 80090660 46204220 */ cvt.s.d $f8, $f8
/* 091264 80090664 E4680000 */ swc1 $f8, ($v1)
/* 091268 80090668 C4680000 */ lwc1 $f8, ($v1)
/* 09126C 8009066C 460094A1 */ cvt.d.s $f18, $f18
/* 091270 80090670 46209482 */ mul.d $f18, $f18, $f0
/* 091274 80090674 46087281 */ sub.s $f10, $f14, $f8
/* 091278 80090678 46006321 */ cvt.d.s $f12, $f12
/* 09127C 8009067C 46326480 */ add.d $f18, $f12, $f18
/* 091280 80090680 462094A0 */ cvt.s.d $f18, $f18
/* 091284 80090684 E5120000 */ swc1 $f18, ($t0)
/* 091288 80090688 C5120000 */ lwc1 $f18, ($t0)
/* 09128C 8009068C 460052A1 */ cvt.d.s $f10, $f10
/* 091290 80090690 46205282 */ mul.d $f10, $f10, $f0
/* 091294 80090694 46128301 */ sub.s $f12, $f16, $f18
/* 091298 80090698 46004221 */ cvt.d.s $f8, $f8
/* 09129C 8009069C 462A4280 */ add.d $f10, $f8, $f10
/* 0912A0 800906A0 462052A0 */ cvt.s.d $f10, $f10
/* 0912A4 800906A4 46006321 */ cvt.d.s $f12, $f12
/* 0912A8 800906A8 46206302 */ mul.d $f12, $f12, $f0
/* 0912AC 800906AC E46A0000 */ swc1 $f10, ($v1)
/* 0912B0 800906B0 C46A0000 */ lwc1 $f10, ($v1)
/* 0912B4 800906B4 460094A1 */ cvt.d.s $f18, $f18
/* 0912B8 800906B8 462C9300 */ add.d $f12, $f18, $f12
/* 0912BC 800906BC 46206320 */ cvt.s.d $f12, $f12
/* 0912C0 800906C0 460A7481 */ sub.s $f18, $f14, $f10
/* 0912C4 800906C4 E50C0000 */ swc1 $f12, ($t0)
/* 0912C8 800906C8 C50C0000 */ lwc1 $f12, ($t0)
/* 0912CC 800906CC 460094A1 */ cvt.d.s $f18, $f18
/* 0912D0 800906D0 46209482 */ mul.d $f18, $f18, $f0
/* 0912D4 800906D4 460C8201 */ sub.s $f8, $f16, $f12
/* 0912D8 800906D8 460052A1 */ cvt.d.s $f10, $f10
/* 0912DC 800906DC 46325480 */ add.d $f18, $f10, $f18
/* 0912E0 800906E0 462094A0 */ cvt.s.d $f18, $f18
/* 0912E4 800906E4 46004221 */ cvt.d.s $f8, $f8
/* 0912E8 800906E8 46204202 */ mul.d $f8, $f8, $f0
/* 0912EC 800906EC 46006321 */ cvt.d.s $f12, $f12
/* 0912F0 800906F0 E4720000 */ swc1 $f18, ($v1)
/* 0912F4 800906F4 46286200 */ add.d $f8, $f12, $f8
/* 0912F8 800906F8 46204220 */ cvt.s.d $f8, $f8
/* 0912FC 800906FC 1445FFBF */ bne $v0, $a1, .L800905FC
/* 091300 80090700 E5080000 */ swc1 $f8, ($t0)
.L80090704:
/* 091304 80090704 3C0E8012 */ lui $t6, %hi(gOpacityDecayTimer) # $t6, 0x8012
/* 091308 80090708 8DCE63D8 */ lw $t6, %lo(gOpacityDecayTimer)($t6)
/* 09130C 8009070C 3C038012 */ lui $v1, %hi(gTrackSelectX) # $v1, 0x8012
/* 091310 80090710 3C088012 */ lui $t0, %hi(gTrackSelectY) # $t0, 0x8012
/* 091314 80090714 24010020 */ li $at, 32
/* 091318 80090718 250869E4 */ addiu $t0, %lo(gTrackSelectY) # addiu $t0, $t0, 0x69e4
/* 09131C 8009071C 15C10034 */ bne $t6, $at, .L800907F0
/* 091320 80090720 246369DC */ addiu $v1, %lo(gTrackSelectX) # addiu $v1, $v1, 0x69dc
/* 091324 80090724 0C031CF8 */ jal get_thread30_level_id_to_load
/* 091328 80090728 00000000 */ nop
/* 09132C 8009072C 3C038012 */ lui $v1, %hi(gTrackSelectX) # $v1, 0x8012
/* 091330 80090730 3C088012 */ lui $t0, %hi(gTrackSelectY) # $t0, 0x8012
/* 091334 80090734 250869E4 */ addiu $t0, %lo(gTrackSelectY) # addiu $t0, $t0, 0x69e4
/* 091338 80090738 1440002D */ bnez $v0, .L800907F0
/* 09133C 8009073C 246369DC */ addiu $v1, %lo(gTrackSelectX) # addiu $v1, $v1, 0x69dc
/* 091340 80090740 3C028012 */ lui $v0, %hi(D_801263D0) # $v0, 0x8012
/* 091344 80090744 3C04800E */ lui $a0, %hi(gTrackIdForPreview) # $a0, 0x800e
/* 091348 80090748 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0)
/* 09134C 8009074C 8C4263D0 */ lw $v0, %lo(D_801263D0)($v0)
/* 091350 80090750 3C0F8012 */ lui $t7, %hi(D_801269C8) # $t7, 0x8012
/* 091354 80090754 14440008 */ bne $v0, $a0, .L80090778
/* 091358 80090758 3C018012 */ lui $at, %hi(gSelectedTrackX) # $at, 0x8012
/* 09135C 8009075C 8DEF69C8 */ lw $t7, %lo(D_801269C8)($t7)
/* 091360 80090760 3C188012 */ lui $t8, %hi(D_801269CC) # $t8, 0x8012
/* 091364 80090764 8F1869CC */ lw $t8, %lo(D_801269CC)($t8)
/* 091368 80090768 AC2F69F4 */ sw $t7, %lo(gSelectedTrackX)($at)
/* 09136C 8009076C 3C018012 */ lui $at, %hi(gSelectedTrackY) # $at, 0x8012
/* 091370 80090770 1000001F */ b .L800907F0
/* 091374 80090774 AC3869F8 */ sw $t8, %lo(gSelectedTrackY)($at)
.L80090778:
/* 091378 80090778 1044001D */ beq $v0, $a0, .L800907F0
/* 09137C 8009077C 2401FFFF */ li $at, -1
/* 091380 80090780 1081001B */ beq $a0, $at, .L800907F0
/* 091384 80090784 00000000 */ nop
/* 091388 80090788 0C031D16 */ jal set_level_to_load_in_background
/* 09138C 8009078C 24050001 */ li $a1, 1
/* 091390 80090790 3C038012 */ lui $v1, %hi(gTrackSelectX) # $v1, 0x8012
/* 091394 80090794 3C088012 */ lui $t0, %hi(gTrackSelectY) # $t0, 0x8012
/* 091398 80090798 250869E4 */ addiu $t0, %lo(gTrackSelectY) # addiu $t0, $t0, 0x69e4
/* 09139C 8009079C 10400014 */ beqz $v0, .L800907F0
/* 0913A0 800907A0 246369DC */ addiu $v1, %lo(gTrackSelectX) # addiu $v1, $v1, 0x69dc
/* 0913A4 800907A4 3C04800E */ lui $a0, %hi(gTrackIdForPreview) # $a0, 0x800e
/* 0913A8 800907A8 8C84F4C4 */ lw $a0, %lo(gTrackIdForPreview)($a0)
/* 0913AC 800907AC 3C018012 */ lui $at, %hi(D_801263D0) # $at, 0x8012
/* 0913B0 800907B0 3C198012 */ lui $t9, %hi(D_801269C8) # $t9, 0x8012
/* 0913B4 800907B4 8F3969C8 */ lw $t9, %lo(D_801269C8)($t9)
/* 0913B8 800907B8 AC2463D0 */ sw $a0, %lo(D_801263D0)($at)
/* 0913BC 800907BC 3C018012 */ lui $at, %hi(gSelectedTrackX) # $at, 0x8012
/* 0913C0 800907C0 3C0B8012 */ lui $t3, %hi(D_801269CC) # $t3, 0x8012
/* 0913C4 800907C4 8D6B69CC */ lw $t3, %lo(D_801269CC)($t3)
/* 0913C8 800907C8 AC3969F4 */ sw $t9, %lo(gSelectedTrackX)($at)
/* 0913CC 800907CC 3C018012 */ lui $at, %hi(gSelectedTrackY) # $at, 0x8012
/* 0913D0 800907D0 0C01AC2B */ jal get_map_default_vehicle
/* 0913D4 800907D4 AC2B69F8 */ sw $t3, %lo(gSelectedTrackY)($at)
/* 0913D8 800907D8 0C01B6C5 */ jal set_level_default_vehicle
/* 0913DC 800907DC 00402025 */ move $a0, $v0
/* 0913E0 800907E0 3C038012 */ lui $v1, %hi(gTrackSelectX) # $v1, 0x8012
/* 0913E4 800907E4 3C088012 */ lui $t0, %hi(gTrackSelectY) # $t0, 0x8012
/* 0913E8 800907E8 250869E4 */ addiu $t0, %lo(gTrackSelectY) # addiu $t0, $t0, 0x69e4
/* 0913EC 800907EC 246369DC */ addiu $v1, %lo(gTrackSelectX) # addiu $v1, $v1, 0x69dc
.L800907F0:
/* 0913F0 800907F0 3C0C8012 */ lui $t4, %hi(gSelectedTrackX) # $t4, 0x8012
/* 0913F4 800907F4 8D8C69F4 */ lw $t4, %lo(gSelectedTrackX)($t4)
/* 0913F8 800907F8 3C098012 */ lui $t1, %hi(gTrackSelectViewportY) # $t1, 0x8012
/* 0913FC 800907FC 000C6880 */ sll $t5, $t4, 2
/* 091400 80090800 01AC6821 */ addu $t5, $t5, $t4
/* 091404 80090804 000D6980 */ sll $t5, $t5, 6
/* 091408 80090808 448D2000 */ mtc1 $t5, $f4
/* 09140C 8009080C C4680000 */ lwc1 $f8, ($v1)
/* 091410 80090810 468021A0 */ cvt.s.w $f6, $f4
/* 091414 80090814 8D296480 */ lw $t1, %lo(gTrackSelectViewportY)($t1)
/* 091418 80090818 3C014320 */ li $at, 0x43200000 # 160.000000
/* 09141C 8009081C 3C0F8012 */ lui $t7, %hi(gSelectedTrackY) # $t7, 0x8012
/* 091420 80090820 44819000 */ mtc1 $at, $f18
/* 091424 80090824 8DEF69F8 */ lw $t7, %lo(gSelectedTrackY)($t7)
/* 091428 80090828 46083281 */ sub.s $f10, $f6, $f8
/* 09142C 8009082C 0009C023 */ negu $t8, $t1
/* 091430 80090830 01F80019 */ multu $t7, $t8
/* 091434 80090834 3C0142A0 */ li $at, 0x42A00000 # 80.000000
/* 091438 80090838 44813000 */ mtc1 $at, $f6
/* 09143C 8009083C 46125100 */ add.s $f4, $f10, $f18
/* 091440 80090840 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012
/* 091444 80090844 46062201 */ sub.s $f8, $f4, $f6
/* 091448 80090848 8C426478 */ lw $v0, %lo(gTrackSelectViewPortHalfY)($v0)
/* 09144C 8009084C 444EF800 */ cfc1 $t6, $31
/* 091450 80090850 C5060000 */ lwc1 $f6, ($t0)
/* 091454 80090854 35C10003 */ ori $at, $t6, 3
/* 091458 80090858 38210002 */ xori $at, $at, 2
/* 09145C 8009085C 44C1F800 */ ctc1 $at, $31
/* 091460 80090860 0000C812 */ mflo $t9
/* 091464 80090864 460042A4 */ cvt.w.s $f10, $f8
/* 091468 80090868 44999000 */ mtc1 $t9, $f18
/* 09146C 8009086C 44CEF800 */ ctc1 $t6, $31
/* 091470 80090870 44055000 */ mfc1 $a1, $f10
/* 091474 80090874 46809120 */ cvt.s.w $f4, $f18
/* 091478 80090878 44825000 */ mtc1 $v0, $f10
/* 09147C 8009087C 00095883 */ sra $t3, $t1, 2
/* 091480 80090880 46062201 */ sub.s $f8, $f4, $f6
/* 091484 80090884 448B3000 */ mtc1 $t3, $f6
/* 091488 80090888 468054A0 */ cvt.s.w $f18, $f10
/* 09148C 8009088C 24A700A0 */ addiu $a3, $a1, 0xa0
/* 091490 80090890 AFA7003C */ sw $a3, 0x3c($sp)
/* 091494 80090894 468032A0 */ cvt.s.w $f10, $f6
/* 091498 80090898 00002025 */ move $a0, $zero
/* 09149C 8009089C AFA50044 */ sw $a1, 0x44($sp)
/* 0914A0 800908A0 46089101 */ sub.s $f4, $f18, $f8
/* 0914A4 800908A4 460A2481 */ sub.s $f18, $f4, $f10
/* 0914A8 800908A8 444CF800 */ cfc1 $t4, $31
/* 0914AC 800908AC 00000000 */ nop
/* 0914B0 800908B0 35810003 */ ori $at, $t4, 3
/* 0914B4 800908B4 38210002 */ xori $at, $at, 2
/* 0914B8 800908B8 44C1F800 */ ctc1 $at, $31
/* 0914BC 800908BC 00000000 */ nop
/* 0914C0 800908C0 46009224 */ cvt.w.s $f8, $f18
/* 0914C4 800908C4 44064000 */ mfc1 $a2, $f8
/* 0914C8 800908C8 44CCF800 */ ctc1 $t4, $31
/* 0914CC 800908CC 00C25021 */ addu $t2, $a2, $v0
/* 0914D0 800908D0 AFAA0010 */ sw $t2, 0x10($sp)
/* 0914D4 800908D4 AFAA0038 */ sw $t2, 0x38($sp)
/* 0914D8 800908D8 0C019A50 */ jal resize_viewport
/* 0914DC 800908DC AFA60040 */ sw $a2, 0x40($sp)
/* 0914E0 800908E0 27AD0038 */ addiu $t5, $sp, 0x38
/* 0914E4 800908E4 AFAD0010 */ sw $t5, 0x10($sp)
/* 0914E8 800908E8 00002025 */ move $a0, $zero
/* 0914EC 800908EC 27A50044 */ addiu $a1, $sp, 0x44
/* 0914F0 800908F0 27A60040 */ addiu $a2, $sp, 0x40
/* 0914F4 800908F4 0C019AEA */ jal copy_viewport_background_size_to_coords
/* 0914F8 800908F8 27A7003C */ addiu $a3, $sp, 0x3c
/* 0914FC 800908FC 00002025 */ move $a0, $zero
/* 091500 80090900 0C019A06 */ jal camEnableUserView
/* 091504 80090904 00002825 */ move $a1, $zero
/* 091508 80090908 8FBF001C */ lw $ra, 0x1c($sp)
/* 09150C 8009090C 27BD0048 */ addiu $sp, $sp, 0x48
/* 091510 80090910 03E00008 */ jr $ra
/* 091514 80090914 00000000 */ nop
-102
View File
@@ -1,102 +0,0 @@
glabel func_800998E0
/* 09A4E0 800998E0 27BDFFE0 */ addiu $sp, $sp, -0x20
/* 09A4E4 800998E4 AFBF001C */ sw $ra, 0x1c($sp)
/* 09A4E8 800998E8 AFB00018 */ sw $s0, 0x18($sp)
/* 09A4EC 800998EC 00803025 */ move $a2, $a0
/* 09A4F0 800998F0 04800055 */ bltz $a0, .L80099A48
/* 09A4F4 800998F4 00005025 */ move $t2, $zero
/* 09A4F8 800998F8 3C038012 */ lui $v1, %hi(D_801264D4) # $v1, 0x8012
/* 09A4FC 800998FC 246364D4 */ addiu $v1, %lo(D_801264D4) # addiu $v1, $v1, 0x64d4
/* 09A500 80099900 8C6E0000 */ lw $t6, ($v1)
/* 09A504 80099904 00002825 */ move $a1, $zero
/* 09A508 80099908 008E082A */ slt $at, $a0, $t6
/* 09A50C 8009990C 1020004E */ beqz $at, .L80099A48
/* 09A510 80099910 240400EF */ li $a0, 239
/* 09A514 80099914 0C000741 */ jal play_sound_global
/* 09A518 80099918 AFA60020 */ sw $a2, 0x20($sp)
/* 09A51C 8009991C 8FA60020 */ lw $a2, 0x20($sp)
/* 09A520 80099920 3C108012 */ lui $s0, %hi(D_80126540) # $s0, 0x8012
/* 09A524 80099924 02068021 */ addu $s0, $s0, $a2
/* 09A528 80099928 92106540 */ lbu $s0, %lo(D_80126540)($s0)
/* 09A52C 8009992C 3C048012 */ lui $a0, %hi(D_801264D0) # $a0, 0x8012
/* 09A530 80099930 8C8464D0 */ lw $a0, %lo(D_801264D0)($a0)
/* 09A534 80099934 0C01D4F6 */ jal func_800753D8
/* 09A538 80099938 02002825 */ move $a1, $s0
/* 09A53C 8009993C 3C038012 */ lui $v1, %hi(D_801264D4) # $v1, 0x8012
/* 09A540 80099940 8FA60020 */ lw $a2, 0x20($sp)
/* 09A544 80099944 246364D4 */ addiu $v1, %lo(D_801264D4) # addiu $v1, $v1, 0x64d4
/* 09A548 80099948 1440003F */ bnez $v0, .L80099A48
/* 09A54C 8009994C 00405025 */ move $t2, $v0
/* 09A550 80099950 3C018012 */ lui $at, %hi(D_801264DC) # $at, 0x8012
/* 09A554 80099954 00300821 */ addu $at, $at, $s0
/* 09A558 80099958 240F00FF */ li $t7, 255
/* 09A55C 8009995C A02F64DC */ sb $t7, %lo(D_801264DC)($at)
/* 09A560 80099960 8C780000 */ lw $t8, ($v1)
/* 09A564 80099964 00C04025 */ move $t0, $a2
/* 09A568 80099968 2719FFFF */ addiu $t9, $t8, -1
/* 09A56C 8009996C 00D9082A */ slt $at, $a2, $t9
/* 09A570 80099970 AC790000 */ sw $t9, ($v1)
/* 09A574 80099974 10200026 */ beqz $at, .L80099A10
/* 09A578 80099978 03204825 */ move $t1, $t9
/* 09A57C 8009997C 3C0B8012 */ lui $t3, %hi(D_80126540) # $t3, 0x8012
/* 09A580 80099980 256B6540 */ addiu $t3, %lo(D_80126540) # addiu $t3, $t3, 0x6540
/* 09A584 80099984 00CB1021 */ addu $v0, $a2, $t3
/* 09A588 80099988 3C0C8012 */ lui $t4, %hi(D_80126508) # $t4, 0x8012
/* 09A58C 8009998C 3C0D8012 */ lui $t5, %hi(D_80126510) # $t5, 0x8012
/* 09A590 80099990 25AD6510 */ addiu $t5, %lo(D_80126510) # addiu $t5, $t5, 0x6510
/* 09A594 80099994 258C6508 */ addiu $t4, %lo(D_80126508) # addiu $t4, $t4, 0x6508
/* 09A598 80099998 3C0B8012 */ lui $t3, %hi(D_80126520) # $t3, 0x8012
/* 09A59C 8009999C 3C0E8012 */ lui $t6, %hi(D_80126518) # $t6, 0x8012
/* 09A5A0 800999A0 3C188012 */ lui $t8, %hi(D_80126520) # $t8, 0x8012
/* 09A5A4 800999A4 27186520 */ addiu $t8, %lo(D_80126520) # addiu $t8, $t8, 0x6520
/* 09A5A8 800999A8 25CE6518 */ addiu $t6, %lo(D_80126518) # addiu $t6, $t6, 0x6518
/* 09A5AC 800999AC 256B6520 */ addiu $t3, %lo(D_80126520) # addiu $t3, $t3, 0x6520
/* 09A5B0 800999B0 00CC2021 */ addu $a0, $a2, $t4
/* 09A5B4 800999B4 00CD2821 */ addu $a1, $a2, $t5
/* 09A5B8 800999B8 00087840 */ sll $t7, $t0, 1
/* 09A5BC 800999BC 0019C840 */ sll $t9, $t9, 1
/* 09A5C0 800999C0 032B3821 */ addu $a3, $t9, $t3
/* 09A5C4 800999C4 01F81821 */ addu $v1, $t7, $t8
/* 09A5C8 800999C8 00CE3021 */ addu $a2, $a2, $t6
.L800999CC:
/* 09A5CC 800999CC 904C0001 */ lbu $t4, 1($v0)
/* 09A5D0 800999D0 908D0001 */ lbu $t5, 1($a0)
/* 09A5D4 800999D4 90AE0001 */ lbu $t6, 1($a1)
/* 09A5D8 800999D8 90CF0001 */ lbu $t7, 1($a2)
/* 09A5DC 800999DC 94780002 */ lhu $t8, 2($v1)
/* 09A5E0 800999E0 24630002 */ addiu $v1, $v1, 2
/* 09A5E4 800999E4 0067082B */ sltu $at, $v1, $a3
/* 09A5E8 800999E8 24420001 */ addiu $v0, $v0, 1
/* 09A5EC 800999EC 24840001 */ addiu $a0, $a0, 1
/* 09A5F0 800999F0 24A50001 */ addiu $a1, $a1, 1
/* 09A5F4 800999F4 24C60001 */ addiu $a2, $a2, 1
/* 09A5F8 800999F8 A04CFFFF */ sb $t4, -1($v0)
/* 09A5FC 800999FC A08DFFFF */ sb $t5, -1($a0)
/* 09A600 80099A00 A0AEFFFF */ sb $t6, -1($a1)
/* 09A604 80099A04 A0CFFFFF */ sb $t7, -1($a2)
/* 09A608 80099A08 1420FFF0 */ bnez $at, .L800999CC
/* 09A60C 80099A0C A478FFFE */ sh $t8, -2($v1)
.L80099A10:
/* 09A610 80099A10 1920000D */ blez $t1, .L80099A48
/* 09A614 80099A14 3C198012 */ lui $t9, %hi(D_80126540) # $t9, 0x8012
/* 09A618 80099A18 27226540 */ addiu $v0, $t9, %lo(D_80126540)
/* 09A61C 80099A1C 01222021 */ addu $a0, $t1, $v0
.L80099A20:
/* 09A620 80099A20 90430000 */ lbu $v1, ($v0)
/* 09A624 80099A24 00000000 */ nop
/* 09A628 80099A28 0203082A */ slt $at, $s0, $v1
/* 09A62C 80099A2C 10200002 */ beqz $at, .L80099A38
/* 09A630 80099A30 246BFFFF */ addiu $t3, $v1, -1
/* 09A634 80099A34 A04B0000 */ sb $t3, ($v0)
.L80099A38:
/* 09A638 80099A38 24420001 */ addiu $v0, $v0, 1
/* 09A63C 80099A3C 0044082B */ sltu $at, $v0, $a0
/* 09A640 80099A40 1420FFF7 */ bnez $at, .L80099A20
/* 09A644 80099A44 00000000 */ nop
.L80099A48:
/* 09A648 80099A48 8FBF001C */ lw $ra, 0x1c($sp)
/* 09A64C 80099A4C 8FB00018 */ lw $s0, 0x18($sp)
/* 09A650 80099A50 27BD0020 */ addiu $sp, $sp, 0x20
/* 09A654 80099A54 03E00008 */ jr $ra
/* 09A658 80099A58 01401025 */ move $v0, $t2
@@ -536,7 +536,7 @@ glabel menu_track_select_init
/* 08FBA8 8008EFA8 00000000 */ nop
/* 08FBAC 8008EFAC 0C0002C6 */ jal func_80000B18
/* 08FBB0 8008EFB0 00000000 */ nop
/* 08FBB4 8008EFB4 0C01BD59 */ jal set_D_800DD430
/* 08FBB4 8008EFB4 0C01BD59 */ jal set_gIntDisFlag
/* 08FBB8 8008EFB8 24040001 */ li $a0, 1
/* 08FBBC 8008EFBC 3C0C800E */ lui $t4, %hi(gTracksMenuAdventureHighlightIndex) # $t4, 0x800e
/* 08FBC0 8008EFC0 8D8C0418 */ lw $t4, %lo(gTracksMenuAdventureHighlightIndex)($t4)
@@ -1,242 +0,0 @@
glabel render_magic_codes_list_menu_text
/* 08B16C 8008A56C 27BDFFB0 */ addiu $sp, $sp, -0x50
/* 08B170 8008A570 AFBF004C */ sw $ra, 0x4c($sp)
/* 08B174 8008A574 AFA40050 */ sw $a0, 0x50($sp)
/* 08B178 8008A578 AFBE0048 */ sw $fp, 0x48($sp)
/* 08B17C 8008A57C AFB70044 */ sw $s7, 0x44($sp)
/* 08B180 8008A580 AFB60040 */ sw $s6, 0x40($sp)
/* 08B184 8008A584 AFB5003C */ sw $s5, 0x3c($sp)
/* 08B188 8008A588 AFB40038 */ sw $s4, 0x38($sp)
/* 08B18C 8008A58C AFB30034 */ sw $s3, 0x34($sp)
/* 08B190 8008A590 AFB20030 */ sw $s2, 0x30($sp)
/* 08B194 8008A594 AFB1002C */ sw $s1, 0x2c($sp)
/* 08B198 8008A598 AFB00028 */ sw $s0, 0x28($sp)
/* 08B19C 8008A59C 00002025 */ move $a0, $zero
/* 08B1A0 8008A5A0 00002825 */ move $a1, $zero
/* 08B1A4 8008A5A4 00003025 */ move $a2, $zero
/* 08B1A8 8008A5A8 0C0310F3 */ jal set_text_background_colour
/* 08B1AC 8008A5AC 00003825 */ move $a3, $zero
/* 08B1B0 8008A5B0 0C0310BB */ jal set_text_font
/* 08B1B4 8008A5B4 24040002 */ li $a0, 2
/* 08B1B8 8008A5B8 240E0080 */ li $t6, 128
/* 08B1BC 8008A5BC AFAE0010 */ sw $t6, 0x10($sp)
/* 08B1C0 8008A5C0 00002025 */ move $a0, $zero
/* 08B1C4 8008A5C4 00002825 */ move $a1, $zero
/* 08B1C8 8008A5C8 00003025 */ move $a2, $zero
/* 08B1CC 8008A5CC 0C0310E1 */ jal set_text_colour
/* 08B1D0 8008A5D0 240700FF */ li $a3, 255
/* 08B1D4 8008A5D4 3C17800E */ lui $s7, %hi(gMenuText) # $s7, 0x800e
/* 08B1D8 8008A5D8 26F7F4A0 */ addiu $s7, %lo(gMenuText) # addiu $s7, $s7, -0xb60
/* 08B1DC 8008A5DC 8EEF0000 */ lw $t7, ($s7)
/* 08B1E0 8008A5E0 3C158012 */ lui $s5, %hi(sMenuCurrDisplayList) # $s5, 0x8012
/* 08B1E4 8008A5E4 26B563A0 */ addiu $s5, %lo(sMenuCurrDisplayList) # addiu $s5, $s5, 0x63a0
/* 08B1E8 8008A5E8 2418000C */ li $t8, 12
/* 08B1EC 8008A5EC 8DE70050 */ lw $a3, 0x50($t7)
/* 08B1F0 8008A5F0 AFB80010 */ sw $t8, 0x10($sp)
/* 08B1F4 8008A5F4 02A02025 */ move $a0, $s5
/* 08B1F8 8008A5F8 240500A1 */ li $a1, 161
/* 08B1FC 8008A5FC 0C031110 */ jal draw_text
/* 08B200 8008A600 24060023 */ li $a2, 35
/* 08B204 8008A604 241900FF */ li $t9, 255
/* 08B208 8008A608 AFB90010 */ sw $t9, 0x10($sp)
/* 08B20C 8008A60C 240400FF */ li $a0, 255
/* 08B210 8008A610 240500FF */ li $a1, 255
/* 08B214 8008A614 240600FF */ li $a2, 255
/* 08B218 8008A618 0C0310E1 */ jal set_text_colour
/* 08B21C 8008A61C 00003825 */ move $a3, $zero
/* 08B220 8008A620 8EE80000 */ lw $t0, ($s7)
/* 08B224 8008A624 2409000C */ li $t1, 12
/* 08B228 8008A628 8D070050 */ lw $a3, 0x50($t0)
/* 08B22C 8008A62C AFA90010 */ sw $t1, 0x10($sp)
/* 08B230 8008A630 02A02025 */ move $a0, $s5
/* 08B234 8008A634 240500A0 */ li $a1, 160
/* 08B238 8008A638 0C031110 */ jal draw_text
/* 08B23C 8008A63C 24060020 */ li $a2, 32
/* 08B240 8008A640 3C03800E */ lui $v1, %hi(gUnlockedMagicCodes) # $v1, 0x800e
/* 08B244 8008A644 3C048012 */ lui $a0, %hi(D_80126C80) # $a0, 0x8012
/* 08B248 8008A648 8C63FD9C */ lw $v1, %lo(gUnlockedMagicCodes)($v1)
/* 08B24C 8008A64C 24846C80 */ addiu $a0, %lo(D_80126C80) # addiu $a0, $a0, 0x6c80
/* 08B250 8008A650 00008025 */ move $s0, $zero
/* 08B254 8008A654 24020001 */ li $v0, 1
/* 08B258 8008A658 00009825 */ move $s3, $zero
.L8008A65C:
/* 08B25C 8008A65C 00435024 */ and $t2, $v0, $v1
/* 08B260 8008A660 11400005 */ beqz $t2, .L8008A678
/* 08B264 8008A664 00026840 */ sll $t5, $v0, 1
/* 08B268 8008A668 00135840 */ sll $t3, $s3, 1
/* 08B26C 8008A66C 008B6021 */ addu $t4, $a0, $t3
/* 08B270 8008A670 A5900000 */ sh $s0, ($t4)
/* 08B274 8008A674 26730001 */ addiu $s3, $s3, 1
.L8008A678:
/* 08B278 8008A678 26100001 */ addiu $s0, $s0, 1
/* 08B27C 8008A67C 2A010020 */ slti $at, $s0, 0x20
/* 08B280 8008A680 1420FFF6 */ bnez $at, .L8008A65C
/* 08B284 8008A684 01A01025 */ move $v0, $t5
/* 08B288 8008A688 3C1E8012 */ lui $fp, %hi(gOptionBlinkTimer) # $fp, 0x8012
/* 08B28C 8008A68C 8FDE63BC */ lw $fp, %lo(gOptionBlinkTimer)($fp)
/* 08B290 8008A690 24120036 */ li $s2, 54
/* 08B294 8008A694 001E70C0 */ sll $t6, $fp, 3
/* 08B298 8008A698 29C10100 */ slti $at, $t6, 0x100
/* 08B29C 8008A69C 14200003 */ bnez $at, .L8008A6AC
/* 08B2A0 8008A6A0 01C0F025 */ move $fp, $t6
/* 08B2A4 8008A6A4 240F01FF */ li $t7, 511
/* 08B2A8 8008A6A8 01EEF023 */ subu $fp, $t7, $t6
.L8008A6AC:
/* 08B2AC 8008A6AC 0C0310BB */ jal set_text_font
/* 08B2B0 8008A6B0 00002025 */ move $a0, $zero
/* 08B2B4 8008A6B4 241800FF */ li $t8, 255
/* 08B2B8 8008A6B8 AFB80010 */ sw $t8, 0x10($sp)
/* 08B2BC 8008A6BC 240400FF */ li $a0, 255
/* 08B2C0 8008A6C0 240500FF */ li $a1, 255
/* 08B2C4 8008A6C4 240600FF */ li $a2, 255
/* 08B2C8 8008A6C8 0C0310E1 */ jal set_text_colour
/* 08B2CC 8008A6CC 00003825 */ move $a3, $zero
/* 08B2D0 8008A6D0 3C038012 */ lui $v1, %hi(gMenuOptionCount) # $v1, 0x8012
/* 08B2D4 8008A6D4 3C198012 */ lui $t9, %hi(gNumOnscreenMagicCodes) # $t9, 0x8012
/* 08B2D8 8008A6D8 8F396C70 */ lw $t9, %lo(gNumOnscreenMagicCodes)($t9)
/* 08B2DC 8008A6DC 8C6363E0 */ lw $v1, %lo(gMenuOptionCount)($v1)
/* 08B2E0 8008A6E0 3C168012 */ lui $s6, %hi(gCheatsAssetData) # $s6, 0x8012
/* 08B2E4 8008A6E4 8ED66C30 */ lw $s6, %lo(gCheatsAssetData)($s6)
/* 08B2E8 8008A6E8 00791021 */ addu $v0, $v1, $t9
/* 08B2EC 8008A6EC 0062082A */ slt $at, $v1, $v0
/* 08B2F0 8008A6F0 00608025 */ move $s0, $v1
/* 08B2F4 8008A6F4 1020004B */ beqz $at, .L8008A824
/* 08B2F8 8008A6F8 26D60002 */ addiu $s6, $s6, 2
/* 08B2FC 8008A6FC 0073082A */ slt $at, $v1, $s3
/* 08B300 8008A700 10200048 */ beqz $at, .L8008A824
/* 08B304 8008A704 00034040 */ sll $t0, $v1, 1
/* 08B308 8008A708 3C098012 */ lui $t1, %hi(D_80126C80) # $t1, 0x8012
/* 08B30C 8008A70C 25296C80 */ addiu $t1, %lo(D_80126C80) # addiu $t1, $t1, 0x6c80
/* 08B310 8008A710 3C148012 */ lui $s4, %hi(gOptionsMenuItemIndex) # $s4, 0x8012
/* 08B314 8008A714 26946C46 */ addiu $s4, %lo(gOptionsMenuItemIndex) # addiu $s4, $s4, 0x6c46
/* 08B318 8008A718 01098821 */ addu $s1, $t0, $t1
.L8008A71C:
/* 08B31C 8008A71C 868A0000 */ lh $t2, ($s4)
/* 08B320 8008A720 240400FF */ li $a0, 255
/* 08B324 8008A724 160A0006 */ bne $s0, $t2, .L8008A740
/* 08B328 8008A728 240500FF */ li $a1, 255
/* 08B32C 8008A72C 240B00FF */ li $t3, 255
/* 08B330 8008A730 AFAB0010 */ sw $t3, 0x10($sp)
/* 08B334 8008A734 240600FF */ li $a2, 255
/* 08B338 8008A738 0C0310E1 */ jal set_text_colour
/* 08B33C 8008A73C 03C03825 */ move $a3, $fp
.L8008A740:
/* 08B340 8008A740 862D0000 */ lh $t5, ($s1)
/* 08B344 8008A744 3C198012 */ lui $t9, %hi(gCheatsAssetData) # $t9, 0x8012
/* 08B348 8008A748 000D7080 */ sll $t6, $t5, 2
/* 08B34C 8008A74C 02CE7821 */ addu $t7, $s6, $t6
/* 08B350 8008A750 95F80002 */ lhu $t8, 2($t7)
/* 08B354 8008A754 8F396C30 */ lw $t9, %lo(gCheatsAssetData)($t9)
/* 08B358 8008A758 AFA00010 */ sw $zero, 0x10($sp)
/* 08B35C 8008A75C 02A02025 */ move $a0, $s5
/* 08B360 8008A760 24050030 */ li $a1, 48
/* 08B364 8008A764 02403025 */ move $a2, $s2
/* 08B368 8008A768 0C031110 */ jal draw_text
/* 08B36C 8008A76C 03193821 */ addu $a3, $t8, $t9
/* 08B370 8008A770 86280000 */ lh $t0, ($s1)
/* 08B374 8008A774 3C0B800E */ lui $t3, %hi(gActiveMagicCodes) # $t3, 0x800e
/* 08B378 8008A778 8D6BFD98 */ lw $t3, %lo(gActiveMagicCodes)($t3)
/* 08B37C 8008A77C 24090001 */ li $t1, 1
/* 08B380 8008A780 01095004 */ sllv $t2, $t1, $t0
/* 08B384 8008A784 014B6024 */ and $t4, $t2, $t3
/* 08B388 8008A788 1180000A */ beqz $t4, .L8008A7B4
/* 08B38C 8008A78C 02A02025 */ move $a0, $s5
/* 08B390 8008A790 8EED0000 */ lw $t5, ($s7)
/* 08B394 8008A794 02A02025 */ move $a0, $s5
/* 08B398 8008A798 8DA70054 */ lw $a3, 0x54($t5)
/* 08B39C 8008A79C AFA00010 */ sw $zero, 0x10($sp)
/* 08B3A0 8008A7A0 24050100 */ li $a1, 256
/* 08B3A4 8008A7A4 0C031110 */ jal draw_text
/* 08B3A8 8008A7A8 02403025 */ move $a2, $s2
/* 08B3AC 8008A7AC 10000008 */ b .L8008A7D0
/* 08B3B0 8008A7B0 868F0000 */ lh $t7, ($s4)
.L8008A7B4:
/* 08B3B4 8008A7B4 8EEE0000 */ lw $t6, ($s7)
/* 08B3B8 8008A7B8 24050100 */ li $a1, 256
/* 08B3BC 8008A7BC 8DC70058 */ lw $a3, 0x58($t6)
/* 08B3C0 8008A7C0 AFA00010 */ sw $zero, 0x10($sp)
/* 08B3C4 8008A7C4 0C031110 */ jal draw_text
/* 08B3C8 8008A7C8 02403025 */ move $a2, $s2
/* 08B3CC 8008A7CC 868F0000 */ lh $t7, ($s4)
.L8008A7D0:
/* 08B3D0 8008A7D0 240400FF */ li $a0, 255
/* 08B3D4 8008A7D4 160F0006 */ bne $s0, $t7, .L8008A7F0
/* 08B3D8 8008A7D8 240500FF */ li $a1, 255
/* 08B3DC 8008A7DC 241800FF */ li $t8, 255
/* 08B3E0 8008A7E0 AFB80010 */ sw $t8, 0x10($sp)
/* 08B3E4 8008A7E4 240600FF */ li $a2, 255
/* 08B3E8 8008A7E8 0C0310E1 */ jal set_text_colour
/* 08B3EC 8008A7EC 00003825 */ move $a3, $zero
.L8008A7F0:
/* 08B3F0 8008A7F0 3C198012 */ lui $t9, %hi(gMenuOptionCount) # $t9, 0x8012
/* 08B3F4 8008A7F4 3C098012 */ lui $t1, %hi(gNumOnscreenMagicCodes) # $t1, 0x8012
/* 08B3F8 8008A7F8 8D296C70 */ lw $t1, %lo(gNumOnscreenMagicCodes)($t1)
/* 08B3FC 8008A7FC 8F3963E0 */ lw $t9, %lo(gMenuOptionCount)($t9)
/* 08B400 8008A800 26100001 */ addiu $s0, $s0, 1
/* 08B404 8008A804 03291021 */ addu $v0, $t9, $t1
/* 08B408 8008A808 0202082A */ slt $at, $s0, $v0
/* 08B40C 8008A80C 26310002 */ addiu $s1, $s1, 2
/* 08B410 8008A810 10200004 */ beqz $at, .L8008A824
/* 08B414 8008A814 26520010 */ addiu $s2, $s2, 0x10
/* 08B418 8008A818 0213082A */ slt $at, $s0, $s3
/* 08B41C 8008A81C 1420FFBF */ bnez $at, .L8008A71C
/* 08B420 8008A820 00000000 */ nop
.L8008A824:
/* 08B424 8008A824 3C148012 */ lui $s4, %hi(gOptionsMenuItemIndex) # $s4, 0x8012
/* 08B428 8008A828 0202082A */ slt $at, $s0, $v0
/* 08B42C 8008A82C 10200014 */ beqz $at, .L8008A880
/* 08B430 8008A830 26946C46 */ addiu $s4, %lo(gOptionsMenuItemIndex) # addiu $s4, $s4, 0x6c46
/* 08B434 8008A834 86880000 */ lh $t0, ($s4)
/* 08B438 8008A838 240400FF */ li $a0, 255
/* 08B43C 8008A83C 16680006 */ bne $s3, $t0, .L8008A858
/* 08B440 8008A840 240500FF */ li $a1, 255
/* 08B444 8008A844 240A00FF */ li $t2, 255
/* 08B448 8008A848 AFAA0010 */ sw $t2, 0x10($sp)
/* 08B44C 8008A84C 240600FF */ li $a2, 255
/* 08B450 8008A850 0C0310E1 */ jal set_text_colour
/* 08B454 8008A854 03C03825 */ move $a3, $fp
.L8008A858:
/* 08B458 8008A858 8EEB0000 */ lw $t3, ($s7)
/* 08B45C 8008A85C 240C0004 */ li $t4, 4
/* 08B460 8008A860 8D670014 */ lw $a3, 0x14($t3)
/* 08B464 8008A864 AFAC0010 */ sw $t4, 0x10($sp)
/* 08B468 8008A868 02A02025 */ move $a0, $s5
/* 08B46C 8008A86C 24058000 */ li $a1, -32768
/* 08B470 8008A870 0C031110 */ jal draw_text
/* 08B474 8008A874 02403025 */ move $a2, $s2
/* 08B478 8008A878 10000014 */ b .L8008A8CC
/* 08B47C 8008A87C 8FBF004C */ lw $ra, 0x4c($sp)
.L8008A880:
/* 08B480 8008A880 3C0D8012 */ lui $t5, %hi(gOptionBlinkTimer) # $t5, 0x8012
/* 08B484 8008A884 8DAD63BC */ lw $t5, %lo(gOptionBlinkTimer)($t5)
/* 08B488 8008A888 02A02025 */ move $a0, $s5
/* 08B48C 8008A88C 31AE0008 */ andi $t6, $t5, 8
/* 08B490 8008A890 11C0000D */ beqz $t6, .L8008A8C8
/* 08B494 8008A894 3C05800E */ lui $a1, %hi(gMenuSelectionArrowDown) # $a1, 0x800e
/* 08B498 8008A898 240F00FF */ li $t7, 255
/* 08B49C 8008A89C 241800FF */ li $t8, 255
/* 08B4A0 8008A8A0 241900FF */ li $t9, 255
/* 08B4A4 8008A8A4 240900FF */ li $t1, 255
/* 08B4A8 8008A8A8 AFA9001C */ sw $t1, 0x1c($sp)
/* 08B4AC 8008A8AC AFB90018 */ sw $t9, 0x18($sp)
/* 08B4B0 8008A8B0 AFB80014 */ sw $t8, 0x14($sp)
/* 08B4B4 8008A8B4 AFAF0010 */ sw $t7, 0x10($sp)
/* 08B4B8 8008A8B8 24A5043C */ addiu $a1, %lo(gMenuSelectionArrowDown) # addiu $a1, $a1, 0x43c
/* 08B4BC 8008A8BC 240600A0 */ li $a2, 160
/* 08B4C0 8008A8C0 0C01E2AE */ jal render_textured_rectangle
/* 08B4C4 8008A8C4 26470008 */ addiu $a3, $s2, 8
.L8008A8C8:
/* 08B4C8 8008A8C8 8FBF004C */ lw $ra, 0x4c($sp)
.L8008A8CC:
/* 08B4CC 8008A8CC 8FB00028 */ lw $s0, 0x28($sp)
/* 08B4D0 8008A8D0 8FB1002C */ lw $s1, 0x2c($sp)
/* 08B4D4 8008A8D4 8FB20030 */ lw $s2, 0x30($sp)
/* 08B4D8 8008A8D8 8FB30034 */ lw $s3, 0x34($sp)
/* 08B4DC 8008A8DC 8FB40038 */ lw $s4, 0x38($sp)
/* 08B4E0 8008A8E0 8FB5003C */ lw $s5, 0x3c($sp)
/* 08B4E4 8008A8E4 8FB60040 */ lw $s6, 0x40($sp)
/* 08B4E8 8008A8E8 8FB70044 */ lw $s7, 0x44($sp)
/* 08B4EC 8008A8EC 8FBE0048 */ lw $fp, 0x48($sp)
/* 08B4F0 8008A8F0 03E00008 */ jr $ra
/* 08B4F4 8008A8F4 27BD0050 */ addiu $sp, $sp, 0x50
@@ -1,428 +0,0 @@
glabel render_magic_codes_ui
/* 08A2A4 800896A4 27BDFF80 */ addiu $sp, $sp, -0x80
/* 08A2A8 800896A8 AFBF0044 */ sw $ra, 0x44($sp)
/* 08A2AC 800896AC AFA40080 */ sw $a0, 0x80($sp)
/* 08A2B0 800896B0 AFBE0040 */ sw $fp, 0x40($sp)
/* 08A2B4 800896B4 AFB7003C */ sw $s7, 0x3c($sp)
/* 08A2B8 800896B8 AFB60038 */ sw $s6, 0x38($sp)
/* 08A2BC 800896BC AFB50034 */ sw $s5, 0x34($sp)
/* 08A2C0 800896C0 AFB40030 */ sw $s4, 0x30($sp)
/* 08A2C4 800896C4 AFB3002C */ sw $s3, 0x2c($sp)
/* 08A2C8 800896C8 AFB20028 */ sw $s2, 0x28($sp)
/* 08A2CC 800896CC AFB10024 */ sw $s1, 0x24($sp)
/* 08A2D0 800896D0 AFB00020 */ sw $s0, 0x20($sp)
/* 08A2D4 800896D4 00002025 */ move $a0, $zero
/* 08A2D8 800896D8 00002825 */ move $a1, $zero
/* 08A2DC 800896DC 00003025 */ move $a2, $zero
/* 08A2E0 800896E0 0C0310F3 */ jal set_text_background_colour
/* 08A2E4 800896E4 00003825 */ move $a3, $zero
/* 08A2E8 800896E8 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A2EC 800896EC 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A2F0 800896F0 00002825 */ move $a1, $zero
/* 08A2F4 800896F4 00003025 */ move $a2, $zero
/* 08A2F8 800896F8 0C0316D6 */ jal render_dialogue_box
/* 08A2FC 800896FC 24070007 */ li $a3, 7
/* 08A300 80089700 0C0310BB */ jal set_text_font
/* 08A304 80089704 24040002 */ li $a0, 2
/* 08A308 80089708 240E0080 */ li $t6, 128
/* 08A30C 8008970C AFAE0010 */ sw $t6, 0x10($sp)
/* 08A310 80089710 00002025 */ move $a0, $zero
/* 08A314 80089714 00002825 */ move $a1, $zero
/* 08A318 80089718 00003025 */ move $a2, $zero
/* 08A31C 8008971C 0C0310E1 */ jal set_text_colour
/* 08A320 80089720 240700FF */ li $a3, 255
/* 08A324 80089724 3C0F800E */ lui $t7, %hi(gMenuText) # $t7, 0x800e
/* 08A328 80089728 8DEFF4A0 */ lw $t7, %lo(gMenuText)($t7)
/* 08A32C 8008972C 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A330 80089730 2418000C */ li $t8, 12
/* 08A334 80089734 8DE70044 */ lw $a3, 0x44($t7)
/* 08A338 80089738 AFB80010 */ sw $t8, 0x10($sp)
/* 08A33C 8008973C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A340 80089740 240500A1 */ li $a1, 161
/* 08A344 80089744 0C031110 */ jal draw_text
/* 08A348 80089748 24060023 */ li $a2, 35
/* 08A34C 8008974C 241900FF */ li $t9, 255
/* 08A350 80089750 AFB90010 */ sw $t9, 0x10($sp)
/* 08A354 80089754 240400FF */ li $a0, 255
/* 08A358 80089758 240500FF */ li $a1, 255
/* 08A35C 8008975C 240600FF */ li $a2, 255
/* 08A360 80089760 0C0310E1 */ jal set_text_colour
/* 08A364 80089764 00003825 */ move $a3, $zero
/* 08A368 80089768 3C09800E */ lui $t1, %hi(gMenuText) # $t1, 0x800e
/* 08A36C 8008976C 8D29F4A0 */ lw $t1, %lo(gMenuText)($t1)
/* 08A370 80089770 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A374 80089774 240A000C */ li $t2, 12
/* 08A378 80089778 8D270044 */ lw $a3, 0x44($t1)
/* 08A37C 8008977C AFAA0010 */ sw $t2, 0x10($sp)
/* 08A380 80089780 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A384 80089784 240500A0 */ li $a1, 160
/* 08A388 80089788 0C031110 */ jal draw_text
/* 08A38C 8008978C 24060020 */ li $a2, 32
/* 08A390 80089790 24130041 */ li $s3, 65
/* 08A394 80089794 0C0310BB */ jal set_text_font
/* 08A398 80089798 00002025 */ move $a0, $zero
/* 08A39C 8008979C 240B00FF */ li $t3, 255
/* 08A3A0 800897A0 AFAB0010 */ sw $t3, 0x10($sp)
/* 08A3A4 800897A4 240400FF */ li $a0, 255
/* 08A3A8 800897A8 240500FF */ li $a1, 255
/* 08A3AC 800897AC 240600FF */ li $a2, 255
/* 08A3B0 800897B0 0C0310E1 */ jal set_text_colour
/* 08A3B4 800897B4 00003825 */ move $a3, $zero
/* 08A3B8 800897B8 3C168012 */ lui $s6, %hi(gCheatInputCurrentRow) # $s6, 0x8012
/* 08A3BC 800897BC 3C158012 */ lui $s5, %hi(gCheatInputCurrentColumn) # $s5, 0x8012
/* 08A3C0 800897C0 26B56C42 */ addiu $s5, %lo(gCheatInputCurrentColumn) # addiu $s5, $s5, 0x6c42
/* 08A3C4 800897C4 26D66C40 */ addiu $s6, %lo(gCheatInputCurrentRow) # addiu $s6, $s6, 0x6c40
/* 08A3C8 800897C8 0000F025 */ move $fp, $zero
/* 08A3CC 800897CC 2414003C */ li $s4, 60
/* 08A3D0 800897D0 24170005 */ li $s7, 5
.L800897D4:
/* 08A3D4 800897D4 00008025 */ move $s0, $zero
/* 08A3D8 800897D8 24110040 */ li $s1, 64
.L800897DC:
/* 08A3DC 800897DC 3C0C8012 */ lui $t4, %hi(gOptionsMenuItemIndex) # $t4, 0x8012
/* 08A3E0 800897E0 858C6C46 */ lh $t4, %lo(gOptionsMenuItemIndex)($t4)
/* 08A3E4 800897E4 00000000 */ nop
/* 08A3E8 800897E8 16EC0018 */ bne $s7, $t4, .L8008984C
/* 08A3EC 800897EC 2A61005B */ slti $at, $s3, 0x5b
/* 08A3F0 800897F0 86AD0000 */ lh $t5, ($s5)
/* 08A3F4 800897F4 00000000 */ nop
/* 08A3F8 800897F8 160D0014 */ bne $s0, $t5, .L8008984C
/* 08A3FC 800897FC 2A61005B */ slti $at, $s3, 0x5b
/* 08A400 80089800 86CE0000 */ lh $t6, ($s6)
/* 08A404 80089804 3C128012 */ lui $s2, %hi(gOptionBlinkTimer) # $s2, 0x8012
/* 08A408 80089808 17CE000F */ bne $fp, $t6, .L80089848
/* 08A40C 8008980C 24040080 */ li $a0, 128
/* 08A410 80089810 8E5263BC */ lw $s2, %lo(gOptionBlinkTimer)($s2)
/* 08A414 80089814 240500FF */ li $a1, 255
/* 08A418 80089818 001278C0 */ sll $t7, $s2, 3
/* 08A41C 8008981C 29E10100 */ slti $at, $t7, 0x100
/* 08A420 80089820 14200003 */ bnez $at, .L80089830
/* 08A424 80089824 01E09025 */ move $s2, $t7
/* 08A428 80089828 241801FF */ li $t8, 511
/* 08A42C 8008982C 030F9023 */ subu $s2, $t8, $t7
.L80089830:
/* 08A430 80089830 0012C843 */ sra $t9, $s2, 1
/* 08A434 80089834 240900FF */ li $t1, 255
/* 08A438 80089838 27270080 */ addiu $a3, $t9, 0x80
/* 08A43C 8008983C AFA90010 */ sw $t1, 0x10($sp)
/* 08A440 80089840 0C0310E1 */ jal set_text_colour
/* 08A444 80089844 240600C0 */ li $a2, 192
.L80089848:
/* 08A448 80089848 2A61005B */ slti $at, $s3, 0x5b
.L8008984C:
/* 08A44C 8008984C 1020000C */ beqz $at, .L80089880
/* 08A450 80089850 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A454 80089854 240A000C */ li $t2, 12
/* 08A458 80089858 A3B3005C */ sb $s3, 0x5c($sp)
/* 08A45C 8008985C A3A0005D */ sb $zero, 0x5d($sp)
/* 08A460 80089860 AFAA0010 */ sw $t2, 0x10($sp)
/* 08A464 80089864 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A468 80089868 02202825 */ move $a1, $s1
/* 08A46C 8008986C 02803025 */ move $a2, $s4
/* 08A470 80089870 0C031110 */ jal draw_text
/* 08A474 80089874 27A7005C */ addiu $a3, $sp, 0x5c
/* 08A478 80089878 10000016 */ b .L800898D4
/* 08A47C 8008987C 00000000 */ nop
.L80089880:
/* 08A480 80089880 1617000C */ bne $s0, $s7, .L800898B4
/* 08A484 80089884 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A488 80089888 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A48C 8008988C 3C07800F */ lui $a3, %hi(D_800E8210) # $a3, 0x800f
/* 08A490 80089890 240B000C */ li $t3, 12
/* 08A494 80089894 AFAB0010 */ sw $t3, 0x10($sp)
/* 08A498 80089898 24E78210 */ addiu $a3, %lo(D_800E8210) # addiu $a3, $a3, -0x7df0
/* 08A49C 8008989C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A4A0 800898A0 02202825 */ move $a1, $s1
/* 08A4A4 800898A4 0C031110 */ jal draw_text
/* 08A4A8 800898A8 02803025 */ move $a2, $s4
/* 08A4AC 800898AC 10000009 */ b .L800898D4
/* 08A4B0 800898B0 00000000 */ nop
.L800898B4:
/* 08A4B4 800898B4 3C07800F */ lui $a3, %hi(D_800E8214) # $a3, 0x800f
/* 08A4B8 800898B8 240C000C */ li $t4, 12
/* 08A4BC 800898BC AFAC0010 */ sw $t4, 0x10($sp)
/* 08A4C0 800898C0 24E78214 */ addiu $a3, %lo(D_800E8214) # addiu $a3, $a3, -0x7dec
/* 08A4C4 800898C4 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A4C8 800898C8 02202825 */ move $a1, $s1
/* 08A4CC 800898CC 0C031110 */ jal draw_text
/* 08A4D0 800898D0 02803025 */ move $a2, $s4
.L800898D4:
/* 08A4D4 800898D4 3C0D8012 */ lui $t5, %hi(gOptionsMenuItemIndex) # $t5, 0x8012
/* 08A4D8 800898D8 85AD6C46 */ lh $t5, %lo(gOptionsMenuItemIndex)($t5)
/* 08A4DC 800898DC 00000000 */ nop
/* 08A4E0 800898E0 16ED000E */ bne $s7, $t5, .L8008991C
/* 08A4E4 800898E4 00000000 */ nop
/* 08A4E8 800898E8 86AE0000 */ lh $t6, ($s5)
/* 08A4EC 800898EC 00000000 */ nop
/* 08A4F0 800898F0 160E000A */ bne $s0, $t6, .L8008991C
/* 08A4F4 800898F4 00000000 */ nop
/* 08A4F8 800898F8 86CF0000 */ lh $t7, ($s6)
/* 08A4FC 800898FC 240400FF */ li $a0, 255
/* 08A500 80089900 17CF0006 */ bne $fp, $t7, .L8008991C
/* 08A504 80089904 240500FF */ li $a1, 255
/* 08A508 80089908 241800FF */ li $t8, 255
/* 08A50C 8008990C AFB80010 */ sw $t8, 0x10($sp)
/* 08A510 80089910 240600FF */ li $a2, 255
/* 08A514 80089914 0C0310E1 */ jal set_text_colour
/* 08A518 80089918 00003825 */ move $a3, $zero
.L8008991C:
/* 08A51C 8008991C 26730001 */ addiu $s3, $s3, 1
/* 08A520 80089920 26100001 */ addiu $s0, $s0, 1
/* 08A524 80089924 24010007 */ li $at, 7
/* 08A528 80089928 327900FF */ andi $t9, $s3, 0xff
/* 08A52C 8008992C 26310020 */ addiu $s1, $s1, 0x20
/* 08A530 80089930 1601FFAA */ bne $s0, $at, .L800897DC
/* 08A534 80089934 03209825 */ move $s3, $t9
/* 08A538 80089938 27DE0001 */ addiu $fp, $fp, 1
/* 08A53C 8008993C 2BC10004 */ slti $at, $fp, 4
/* 08A540 80089940 1420FFA4 */ bnez $at, .L800897D4
/* 08A544 80089944 26940016 */ addiu $s4, $s4, 0x16
/* 08A548 80089948 3C128012 */ lui $s2, %hi(gOptionBlinkTimer) # $s2, 0x8012
/* 08A54C 8008994C 8E5263BC */ lw $s2, %lo(gOptionBlinkTimer)($s2)
/* 08A550 80089950 00000000 */ nop
/* 08A554 80089954 001248C0 */ sll $t1, $s2, 3
/* 08A558 80089958 29210100 */ slti $at, $t1, 0x100
/* 08A55C 8008995C 14200003 */ bnez $at, .L8008996C
/* 08A560 80089960 01209025 */ move $s2, $t1
/* 08A564 80089964 240A01FF */ li $t2, 511
/* 08A568 80089968 01499023 */ subu $s2, $t2, $t1
.L8008996C:
/* 08A56C 8008996C 0C0310BB */ jal set_text_font
/* 08A570 80089970 00002025 */ move $a0, $zero
/* 08A574 80089974 3C168000 */ lui $s6, %hi(osTvType) # $s6, 0x8000
/* 08A578 80089978 26D60300 */ addiu $s6, %lo(osTvType) # addiu $s6, $s6, 0x300
/* 08A57C 8008997C 8ECB0000 */ lw $t3, ($s6)
/* 08A580 80089980 0000F025 */ move $fp, $zero
/* 08A584 80089984 241300A4 */ li $s3, 164
/* 08A588 80089988 15600002 */ bnez $t3, .L80089994
/* 08A58C 8008998C 24140010 */ li $s4, 16
/* 08A590 80089990 24140018 */ li $s4, 24
.L80089994:
/* 08A594 80089994 3C0C800E */ lui $t4, %hi(gMagicCodeMenuStrings) # $t4, 0x800e
/* 08A598 80089998 8D8CFDA0 */ lw $t4, %lo(gMagicCodeMenuStrings)($t4)
/* 08A59C 8008999C 001E6880 */ sll $t5, $fp, 2
/* 08A5A0 800899A0 11800022 */ beqz $t4, .L80089A2C
/* 08A5A4 800899A4 3C0E800E */ lui $t6, %hi(gMagicCodeMenuStrings) # $t6, 0x800e
/* 08A5A8 800899A8 25CEFDA0 */ addiu $t6, %lo(gMagicCodeMenuStrings) # addiu $t6, $t6, -0x260
/* 08A5AC 800899AC 3C158012 */ lui $s5, %hi(gMenuOptionCount) # $s5, 0x8012
/* 08A5B0 800899B0 26B563E0 */ addiu $s5, %lo(gMenuOptionCount) # addiu $s5, $s5, 0x63e0
/* 08A5B4 800899B4 01AE8821 */ addu $s1, $t5, $t6
.L800899B8:
/* 08A5B8 800899B8 3C0F8012 */ lui $t7, %hi(gOptionsMenuItemIndex) # $t7, 0x8012
/* 08A5BC 800899BC 85EF6C46 */ lh $t7, %lo(gOptionsMenuItemIndex)($t7)
/* 08A5C0 800899C0 00008025 */ move $s0, $zero
/* 08A5C4 800899C4 17CF0006 */ bne $fp, $t7, .L800899E0
/* 08A5C8 800899C8 240400FF */ li $a0, 255
/* 08A5CC 800899CC 8EB80000 */ lw $t8, ($s5)
/* 08A5D0 800899D0 00000000 */ nop
/* 08A5D4 800899D4 17000003 */ bnez $t8, .L800899E4
/* 08A5D8 800899D8 241900FF */ li $t9, 255
/* 08A5DC 800899DC 02408025 */ move $s0, $s2
.L800899E0:
/* 08A5E0 800899E0 241900FF */ li $t9, 255
.L800899E4:
/* 08A5E4 800899E4 AFB90010 */ sw $t9, 0x10($sp)
/* 08A5E8 800899E8 240500FF */ li $a1, 255
/* 08A5EC 800899EC 240600FF */ li $a2, 255
/* 08A5F0 800899F0 0C0310E1 */ jal set_text_colour
/* 08A5F4 800899F4 02003825 */ move $a3, $s0
/* 08A5F8 800899F8 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A5FC 800899FC 8E270000 */ lw $a3, ($s1)
/* 08A600 80089A00 2409000C */ li $t1, 12
/* 08A604 80089A04 AFA90010 */ sw $t1, 0x10($sp)
/* 08A608 80089A08 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A60C 80089A0C 24058000 */ li $a1, -32768
/* 08A610 80089A10 0C031110 */ jal draw_text
/* 08A614 80089A14 02603025 */ move $a2, $s3
/* 08A618 80089A18 8E2A0004 */ lw $t2, 4($s1)
/* 08A61C 80089A1C 27DE0001 */ addiu $fp, $fp, 1
/* 08A620 80089A20 26310004 */ addiu $s1, $s1, 4
/* 08A624 80089A24 1540FFE4 */ bnez $t2, .L800899B8
/* 08A628 80089A28 02749821 */ addu $s3, $s3, $s4
.L80089A2C:
/* 08A62C 80089A2C 3C158012 */ lui $s5, %hi(gMenuOptionCount) # $s5, 0x8012
/* 08A630 80089A30 26B563E0 */ addiu $s5, %lo(gMenuOptionCount) # addiu $s5, $s5, 0x63e0
/* 08A634 80089A34 0C0310BB */ jal set_text_font
/* 08A638 80089A38 00002025 */ move $a0, $zero
/* 08A63C 80089A3C 240B00FF */ li $t3, 255
/* 08A640 80089A40 AFAB0010 */ sw $t3, 0x10($sp)
/* 08A644 80089A44 240400FF */ li $a0, 255
/* 08A648 80089A48 240500FF */ li $a1, 255
/* 08A64C 80089A4C 24060080 */ li $a2, 128
/* 08A650 80089A50 0C0310E1 */ jal set_text_colour
/* 08A654 80089A54 24070080 */ li $a3, 128
/* 08A658 80089A58 00002025 */ move $a0, $zero
/* 08A65C 80089A5C 00002825 */ move $a1, $zero
/* 08A660 80089A60 24060080 */ li $a2, 128
/* 08A664 80089A64 0C0310F3 */ jal set_text_background_colour
/* 08A668 80089A68 24070080 */ li $a3, 128
/* 08A66C 80089A6C 3C028012 */ lui $v0, %hi(gOptionsMenuItemIndex) # $v0, 0x8012
/* 08A670 80089A70 84426C46 */ lh $v0, %lo(gOptionsMenuItemIndex)($v0)
/* 08A674 80089A74 24010004 */ li $at, 4
/* 08A678 80089A78 14410020 */ bne $v0, $at, .L80089AFC
/* 08A67C 80089A7C 3C088012 */ lui $t0, %hi(D_80126C4C) # $t0, 0x8012
/* 08A680 80089A80 85086C4C */ lh $t0, %lo(D_80126C4C)($t0)
/* 08A684 80089A84 2401FFFF */ li $at, -1
/* 08A688 80089A88 1501000D */ bne $t0, $at, .L80089AC0
/* 08A68C 80089A8C 3C028012 */ lui $v0, %hi(gCheatsAssetData) # $v0, 0x8012
/* 08A690 80089A90 3C0C800E */ lui $t4, %hi(gMenuText) # $t4, 0x800e
/* 08A694 80089A94 8D8CF4A0 */ lw $t4, %lo(gMenuText)($t4)
/* 08A698 80089A98 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A69C 80089A9C 240D000C */ li $t5, 12
/* 08A6A0 80089AA0 8D870048 */ lw $a3, 0x48($t4)
/* 08A6A4 80089AA4 AFAD0010 */ sw $t5, 0x10($sp)
/* 08A6A8 80089AA8 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A6AC 80089AAC 24058000 */ li $a1, -32768
/* 08A6B0 80089AB0 0C031110 */ jal draw_text
/* 08A6B4 80089AB4 24060090 */ li $a2, 144
/* 08A6B8 80089AB8 10000029 */ b .L80089B60
/* 08A6BC 80089ABC 8EAC0000 */ lw $t4, ($s5)
.L80089AC0:
/* 08A6C0 80089AC0 8C426C30 */ lw $v0, %lo(gCheatsAssetData)($v0)
/* 08A6C4 80089AC4 00087040 */ sll $t6, $t0, 1
/* 08A6C8 80089AC8 24430002 */ addiu $v1, $v0, 2
/* 08A6CC 80089ACC 006E7821 */ addu $t7, $v1, $t6
/* 08A6D0 80089AD0 95F80002 */ lhu $t8, 2($t7)
/* 08A6D4 80089AD4 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A6D8 80089AD8 2419000C */ li $t9, 12
/* 08A6DC 80089ADC AFB90010 */ sw $t9, 0x10($sp)
/* 08A6E0 80089AE0 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A6E4 80089AE4 24058000 */ li $a1, -32768
/* 08A6E8 80089AE8 24060090 */ li $a2, 144
/* 08A6EC 80089AEC 0C031110 */ jal draw_text
/* 08A6F0 80089AF0 03023821 */ addu $a3, $t8, $v0
/* 08A6F4 80089AF4 1000001A */ b .L80089B60
/* 08A6F8 80089AF8 8EAC0000 */ lw $t4, ($s5)
.L80089AFC:
/* 08A6FC 80089AFC 16E2000C */ bne $s7, $v0, .L80089B30
/* 08A700 80089B00 24010006 */ li $at, 6
/* 08A704 80089B04 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A708 80089B08 3C078012 */ lui $a3, %hi(D_80126C58) # $a3, 0x8012
/* 08A70C 80089B0C 2409000C */ li $t1, 12
/* 08A710 80089B10 AFA90010 */ sw $t1, 0x10($sp)
/* 08A714 80089B14 24E76C58 */ addiu $a3, %lo(D_80126C58) # addiu $a3, $a3, 0x6c58
/* 08A718 80089B18 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A71C 80089B1C 24058000 */ li $a1, -32768
/* 08A720 80089B20 0C031110 */ jal draw_text
/* 08A724 80089B24 24060090 */ li $a2, 144
/* 08A728 80089B28 1000000D */ b .L80089B60
/* 08A72C 80089B2C 8EAC0000 */ lw $t4, ($s5)
.L80089B30:
/* 08A730 80089B30 1441000A */ bne $v0, $at, .L80089B5C
/* 08A734 80089B34 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A738 80089B38 3C0A800E */ lui $t2, %hi(gMenuText) # $t2, 0x800e
/* 08A73C 80089B3C 8D4AF4A0 */ lw $t2, %lo(gMenuText)($t2)
/* 08A740 80089B40 240B000C */ li $t3, 12
/* 08A744 80089B44 8D47004C */ lw $a3, 0x4c($t2)
/* 08A748 80089B48 AFAB0010 */ sw $t3, 0x10($sp)
/* 08A74C 80089B4C 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A750 80089B50 24058000 */ li $a1, -32768
/* 08A754 80089B54 0C031110 */ jal draw_text
/* 08A758 80089B58 24060090 */ li $a2, 144
.L80089B5C:
/* 08A75C 80089B5C 8EAC0000 */ lw $t4, ($s5)
.L80089B60:
/* 08A760 80089B60 00000000 */ nop
/* 08A764 80089B64 11800049 */ beqz $t4, .L80089C8C
/* 08A768 80089B68 00000000 */ nop
/* 08A76C 80089B6C 8ECD0000 */ lw $t5, ($s6)
/* 08A770 80089B70 0000F025 */ move $fp, $zero
/* 08A774 80089B74 15A00003 */ bnez $t5, .L80089B84
/* 08A778 80089B78 24130078 */ li $s3, 120
/* 08A77C 80089B7C 10000001 */ b .L80089B84
/* 08A780 80089B80 24130086 */ li $s3, 134
.L80089B84:
/* 08A784 80089B84 0C031525 */ jal assign_dialogue_box_id
/* 08A788 80089B88 24040006 */ li $a0, 6
/* 08A78C 80089B8C 24040006 */ li $a0, 6
/* 08A790 80089B90 0C0313DF */ jal set_dialogue_font
/* 08A794 80089B94 00002825 */ move $a1, $zero
/* 08A798 80089B98 266E001C */ addiu $t6, $s3, 0x1c
/* 08A79C 80089B9C AFAE0010 */ sw $t6, 0x10($sp)
/* 08A7A0 80089BA0 24040006 */ li $a0, 6
/* 08A7A4 80089BA4 2405004C */ li $a1, 76
/* 08A7A8 80089BA8 2666FFE4 */ addiu $a2, $s3, -0x1c
/* 08A7AC 80089BAC 0C0313B7 */ jal set_current_dialogue_box_coords
/* 08A7B0 80089BB0 240700F4 */ li $a3, 244
/* 08A7B4 80089BB4 240F00A0 */ li $t7, 160
/* 08A7B8 80089BB8 AFAF0010 */ sw $t7, 0x10($sp)
/* 08A7BC 80089BBC 24040006 */ li $a0, 6
/* 08A7C0 80089BC0 00002825 */ move $a1, $zero
/* 08A7C4 80089BC4 00003025 */ move $a2, $zero
/* 08A7C8 80089BC8 0C0313EF */ jal set_current_dialogue_background_colour
/* 08A7CC 80089BCC 00003825 */ move $a3, $zero
/* 08A7D0 80089BD0 24130004 */ li $s3, 4
/* 08A7D4 80089BD4 00008825 */ move $s1, $zero
/* 08A7D8 80089BD8 24140003 */ li $s4, 3
.L80089BDC:
/* 08A7DC 80089BDC 240600FF */ li $a2, 255
/* 08A7E0 80089BE0 17C00004 */ bnez $fp, .L80089BF4
/* 08A7E4 80089BE4 00008025 */ move $s0, $zero
/* 08A7E8 80089BE8 00003025 */ move $a2, $zero
/* 08A7EC 80089BEC 10000006 */ b .L80089C08
/* 08A7F0 80089BF0 24100040 */ li $s0, 64
.L80089BF4:
/* 08A7F4 80089BF4 8EB80000 */ lw $t8, ($s5)
/* 08A7F8 80089BF8 00000000 */ nop
/* 08A7FC 80089BFC 17D80003 */ bne $fp, $t8, .L80089C0C
/* 08A800 80089C00 241900FF */ li $t9, 255
/* 08A804 80089C04 02408025 */ move $s0, $s2
.L80089C08:
/* 08A808 80089C08 241900FF */ li $t9, 255
.L80089C0C:
/* 08A80C 80089C0C AFB90014 */ sw $t9, 0x14($sp)
/* 08A810 80089C10 24040006 */ li $a0, 6
/* 08A814 80089C14 240500FF */ li $a1, 255
/* 08A818 80089C18 240700FF */ li $a3, 255
/* 08A81C 80089C1C 0C031400 */ jal set_current_text_colour
/* 08A820 80089C20 AFB00010 */ sw $s0, 0x10($sp)
/* 08A824 80089C24 3C09800E */ lui $t1, %hi(gMenuText) # $t1, 0x800e
/* 08A828 80089C28 8D29F4A0 */ lw $t1, %lo(gMenuText)($t1)
/* 08A82C 80089C2C 240B0001 */ li $t3, 1
/* 08A830 80089C30 01315021 */ addu $t2, $t1, $s1
/* 08A834 80089C34 8D470250 */ lw $a3, 0x250($t2)
/* 08A838 80089C38 240C0004 */ li $t4, 4
/* 08A83C 80089C3C AFAC0014 */ sw $t4, 0x14($sp)
/* 08A840 80089C40 AFAB0010 */ sw $t3, 0x10($sp)
/* 08A844 80089C44 24040006 */ li $a0, 6
/* 08A848 80089C48 24058000 */ li $a1, -32768
/* 08A84C 80089C4C 0C03145A */ jal render_dialogue_text
/* 08A850 80089C50 02603025 */ move $a2, $s3
/* 08A854 80089C54 13C00003 */ beqz $fp, .L80089C64
/* 08A858 80089C58 00000000 */ nop
/* 08A85C 80089C5C 10000002 */ b .L80089C68
/* 08A860 80089C60 26730010 */ addiu $s3, $s3, 0x10
.L80089C64:
/* 08A864 80089C64 26730014 */ addiu $s3, $s3, 0x14
.L80089C68:
/* 08A868 80089C68 27DE0001 */ addiu $fp, $fp, 1
/* 08A86C 80089C6C 17D4FFDB */ bne $fp, $s4, .L80089BDC
/* 08A870 80089C70 26310004 */ addiu $s1, $s1, 4
/* 08A874 80089C74 3C048012 */ lui $a0, %hi(sMenuCurrDisplayList) # $a0, 0x8012
/* 08A878 80089C78 248463A0 */ addiu $a0, %lo(sMenuCurrDisplayList) # addiu $a0, $a0, 0x63a0
/* 08A87C 80089C7C 00002825 */ move $a1, $zero
/* 08A880 80089C80 00003025 */ move $a2, $zero
/* 08A884 80089C84 0C0316D6 */ jal render_dialogue_box
/* 08A888 80089C88 24070006 */ li $a3, 6
.L80089C8C:
/* 08A88C 80089C8C 0C0270C3 */ jal get_filtered_cheats
/* 08A890 80089C90 00000000 */ nop
/* 08A894 80089C94 000268C0 */ sll $t5, $v0, 3
/* 08A898 80089C98 05A10004 */ bgez $t5, .L80089CAC
/* 08A89C 80089C9C 8FBF0044 */ lw $ra, 0x44($sp)
/* 08A8A0 80089CA0 0C022B51 */ jal calculate_and_display_rom_checksum
/* 08A8A4 80089CA4 00000000 */ nop
/* 08A8A8 80089CA8 8FBF0044 */ lw $ra, 0x44($sp)
.L80089CAC:
/* 08A8AC 80089CAC 8FB00020 */ lw $s0, 0x20($sp)
/* 08A8B0 80089CB0 8FB10024 */ lw $s1, 0x24($sp)
/* 08A8B4 80089CB4 8FB20028 */ lw $s2, 0x28($sp)
/* 08A8B8 80089CB8 8FB3002C */ lw $s3, 0x2c($sp)
/* 08A8BC 80089CBC 8FB40030 */ lw $s4, 0x30($sp)
/* 08A8C0 80089CC0 8FB50034 */ lw $s5, 0x34($sp)
/* 08A8C4 80089CC4 8FB60038 */ lw $s6, 0x38($sp)
/* 08A8C8 80089CC8 8FB7003C */ lw $s7, 0x3c($sp)
/* 08A8CC 80089CCC 8FBE0040 */ lw $fp, 0x40($sp)
/* 08A8D0 80089CD0 03E00008 */ jr $ra
/* 08A8D4 80089CD4 27BD0080 */ addiu $sp, $sp, 0x80
+6 -6
View File
@@ -1891,12 +1891,12 @@ typedef struct GhostHeader {
/* Size: 12 bytes */
typedef struct GhostNode {
s16 x;
s16 y;
s16 z;
s16 zRotation; // This order is correct.
s16 xRotation;
s16 yRotation;
/* 0x00 */ s16 x;
/* 0x02 */ s16 y;
/* 0x04 */ s16 z;
/* 0x06 */ s16 zRotation; // This order is correct.
/* 0x08 */ s16 xRotation;
/* 0x0A */ s16 yRotation;
} GhostNode;
/* Size: 12 bytes */
+1
View File
@@ -11,6 +11,7 @@
#define SCREEN_WIDTH 320
#define SCREEN_HEIGHT 240
#define SCREEN_HEIGHT_PAL (SCREEN_HEIGHT + 44)
#define SCREEN_WIDTH_HALF (SCREEN_WIDTH / 2)
#define SCREEN_HEIGHT_HALF (SCREEN_HEIGHT / 2)
#define SCREEN_HEIGHT_HALF_PAL (SCREEN_HEIGHT_HALF + 12)
+7 -7
View File
@@ -8,7 +8,7 @@
#include "macros.h"
#include "structs.h"
extern s32 D_800DD430;
extern s32 gIntDisFlag;
extern s32 gCurrentRNGSeed; //Official Name: rngSeed
extern s32 gPrevRNGSeed;
extern s16 gSineTable[];
@@ -16,19 +16,19 @@ extern s16 gArcTanTable[];
/**
* Most files below are handwritten assembly. Because of this, matching C code is impossible.
* Nonmatching is not, so functionally equivilent C code can be here to replace these handwritten functions in nonmatching builds.
* Nonmatching is not, so functionally equivalent C code can be here to replace these handwritten functions in nonmatching builds.
* Variables cannot be declared here because of the way they're aligned, so they have to stay in an assembly file.
*/
/******************************/
/* Official Name: disableInterrupts*/
GLOBAL_ASM("asm/math_util/clear_status_register_flags.s")
/* Official Name: enableInterrupts */
GLOBAL_ASM("asm/math_util/set_status_register_flags.s")
GLOBAL_ASM("asm/math_util/disable_interrupts.s")
/* Official Name: enable_interrupts */
GLOBAL_ASM("asm/math_util/enable_interrupts.s")
/* Official Name: setIntDisFlag */
GLOBAL_ASM("asm/math_util/set_D_800DD430.s")
GLOBAL_ASM("asm/math_util/get_D_800DD430.s")
GLOBAL_ASM("asm/math_util/set_gIntDisFlag.s")
GLOBAL_ASM("asm/math_util/get_gIntDisFlag.s")
#ifdef NON_EQUIVALENT // Untested
UNUSED void s32_matrix_to_s16_matrix(s32 **input, s16 **output) {
+26 -26
View File
@@ -50,13 +50,13 @@ MemoryPoolSlot *new_sub_memory_pool(s32 poolDataSize, s32 numSlots) {
s32 size;
MemoryPoolSlot *slots;
UNUSED s32 unused_2;
s32 *flags = clear_status_register_flags();
s32 *flags = disable_interrupts();
MemoryPoolSlot *newPool;
size = poolDataSize + (numSlots * sizeof(MemoryPoolSlot));
slots = (MemoryPoolSlot *) allocate_from_main_pool_safe(size, COLOUR_TAG_WHITE);
newPool = new_memory_pool(slots, size, numSlots);
set_status_register_flags(flags);
enable_interrupts(flags);
return newPool;
}
@@ -133,13 +133,13 @@ MemoryPoolSlot *allocate_from_memory_pool(s32 poolIndex, s32 size, u32 colourTag
s32 nextIndex;
s32 currIndex;
flags = clear_status_register_flags();
flags = disable_interrupts();
if (size == 0) {
stubbed_printf("*** mmAlloc: size = 0 ***\n");
}
pool = &gMemoryPools[poolIndex];
if ((pool->curNumSlots + 1) == (*pool).maxNumSlots) {
set_status_register_flags(flags);
enable_interrupts(flags);
stubbed_printf("*** mm Error *** ---> No more slots available.\n");
return NULL;
}
@@ -163,10 +163,10 @@ MemoryPoolSlot *allocate_from_memory_pool(s32 poolIndex, s32 size, u32 colourTag
} while (nextIndex != -1);
if (currIndex != -1) {
allocate_memory_pool_slot(poolIndex, (s32) currIndex, size, 1, 0, colourTag);
set_status_register_flags(flags);
enable_interrupts(flags);
return (MemoryPoolSlot *) (slots + currIndex)->data;
}
set_status_register_flags(flags);
enable_interrupts(flags);
stubbed_printf("\n*** mm Error *** ---> No suitble block found for allocation.\n");
return NULL;
}
@@ -189,12 +189,12 @@ void *allocate_at_address_in_main_pool(s32 size, u8 *address, u32 colorTag) {
MemoryPoolSlot *slots;
s32 *flags;
flags = clear_status_register_flags();
flags = disable_interrupts();
if (size == 0) {
stubbed_printf("*** mmAllocAtAddr: size = 0 ***\n");
}
if ((gMemoryPools[0].curNumSlots + 1) == gMemoryPools[0].maxNumSlots) {
set_status_register_flags(flags);
enable_interrupts(flags);
stubbed_printf("\n*** mm Error *** ---> No more slots available.\n");
} else {
if (size & 0xF) {
@@ -207,18 +207,18 @@ void *allocate_at_address_in_main_pool(s32 size, u8 *address, u32 colorTag) {
if ((u32) address >= (u32) curSlot->data && (u32)address + size <= (u32) curSlot->data + curSlot->size) {
if (address == (u8 *) curSlot->data) {
allocate_memory_pool_slot(0, i, size, 1, 0, colorTag);
set_status_register_flags(flags);
enable_interrupts(flags);
return curSlot->data;
} else {
i = allocate_memory_pool_slot(0, i, (u32) address - (u32) curSlot->data, 0, 1, colorTag);
allocate_memory_pool_slot(0, i, size, 1, 0, colorTag);
set_status_register_flags(flags);
enable_interrupts(flags);
return (slots + i)->data;
}
}
}
}
set_status_register_flags(flags);
enable_interrupts(flags);
}
stubbed_printf("\n*** mm Error *** ---> Can't allocate memory at desired address.\n");
return NULL;
@@ -230,14 +230,14 @@ void *allocate_at_address_in_main_pool(s32 size, u8 *address, u32 colorTag) {
* Official name: mmSetDelay
*/
void set_free_queue_state(s32 state) {
s32 *flags = clear_status_register_flags();
s32 *flags = disable_interrupts();
gFreeQueueTimer = state;
if (state == 0) { // flush free queue if state is 0.
while (gFreeQueueCount > 0) {
free_slot_containing_address(gFreeQueue[--gFreeQueueCount].dataAddress);
}
}
set_status_register_flags(flags);
enable_interrupts(flags);
}
/**
@@ -246,13 +246,13 @@ void set_free_queue_state(s32 state) {
* Official Name: mmFree
*/
void free_from_memory_pool(void *data) {
s32 *flags = clear_status_register_flags();
s32 *flags = disable_interrupts();
if (gFreeQueueTimer == 0) {
free_slot_containing_address(data);
} else {
add_to_free_queue(data);
}
set_status_register_flags(flags);
enable_interrupts(flags);
}
/**
@@ -263,7 +263,7 @@ void clear_free_queue(void) {
s32 i;
s32 *flags;
flags = clear_status_register_flags();
flags = disable_interrupts();
for (i = 0; i < gFreeQueueCount;) {
gFreeQueue[i].freeTimer--;
@@ -278,7 +278,7 @@ void clear_free_queue(void) {
}
}
set_status_register_flags(flags);
enable_interrupts(flags);
}
/* Official name: heapFree */
@@ -313,7 +313,7 @@ UNUSED void func_80071314(void) {
s32 poolIndex;
s32 slotIndex;
flags = clear_status_register_flags();
flags = disable_interrupts();
poolIndex = gNumberOfMemoryPools;
while (poolIndex != -1) {
pool = &gMemoryPools[poolIndex];
@@ -327,7 +327,7 @@ UNUSED void func_80071314(void) {
if (pool->curNumSlots == 1) {
free_memory_pool_slot(poolIndex, slotIndex);
} else {
set_status_register_flags(flags);
enable_interrupts(flags);
return;
}
}
@@ -335,7 +335,7 @@ UNUSED void func_80071314(void) {
} while (slotIndex != -1);
poolIndex--;
}
set_status_register_flags(flags);
enable_interrupts(flags);
stubbed_printf("\n*** mm Error *** ---> No match found for mmFree.\n");
}
@@ -360,7 +360,7 @@ s32 func_80071478(u8 *address) {
MemoryPool *pool;
s32 *flags;
flags = clear_status_register_flags();
flags = disable_interrupts();
pool = &gMemoryPools[get_memory_pool_index_containing_address(address)];
slotIndex = 0;
while (slotIndex != -1) {
@@ -368,13 +368,13 @@ s32 func_80071478(u8 *address) {
if (address == (u8 *) slot->data) {
if (slot->flags == 1 || slot->flags == 4) {
slot->flags |= 2;
set_status_register_flags(flags);
enable_interrupts(flags);
return TRUE;
}
}
slotIndex = slot->nextIndex;
}
set_status_register_flags(flags);
enable_interrupts(flags);
return FALSE;
}
@@ -384,7 +384,7 @@ s32 func_80071538(u8 *address) {
MemoryPool *pool;
s32 *flags;
flags = clear_status_register_flags();
flags = disable_interrupts();
pool = &gMemoryPools[get_memory_pool_index_containing_address(address)];
slotIndex = 0;
while (slotIndex != -1) {
@@ -392,13 +392,13 @@ s32 func_80071538(u8 *address) {
if (address == (u8 *)slot->data) {
if (slot->flags & 2) {
slot->flags ^= 2;
set_status_register_flags(flags);
enable_interrupts(flags);
return TRUE;
}
}
slotIndex = slot->nextIndex;
}
set_status_register_flags(flags);
enable_interrupts(flags);
return FALSE;
}
+2 -2
View File
@@ -70,8 +70,8 @@ typedef struct unk800B7D10 {
//Functions below don't have files or matches yet
unk800B7D10 *get_stack_pointer(void); // Non Matching with own file?
s32 *clear_status_register_flags(void); // Non Matching math_util
void set_status_register_flags(s32*); // Non Matching math_util
s32 *disable_interrupts(void);
void enable_interrupts(s32*);
void init_main_memory_pool(void);
MemoryPoolSlot *new_sub_memory_pool(s32 poolDataSize, s32 numSlots);
+149 -127
View File
@@ -111,7 +111,7 @@ s32 D_8012649C;
SavefileInfo gSavefileInfo[4];
s32 D_801264D0;
s32 D_801264D4;
s32 D_801264D4; //Count of elements in some arrays? D_80126540, D_80126508, D_80126510, D_80126518, D_80126520?
s8 gDialogueSubmenu;
u8 D_801264DC[4]; //gGhostLevelIDs?
s8 D_801264E0;
@@ -259,7 +259,7 @@ s32 D_80126C48;
s16 D_80126C4C;
f32 D_80126C50;
unk80126C54 D_80126C54;
u8 D_80126C58[20];
char D_80126C58[20];
s32 *D_80126C6C;
s32 gNumOnscreenMagicCodes;
char *D_80126C74; // gFileName?
@@ -2719,7 +2719,7 @@ void menu_logos_screen_init(void) {
set_background_fill_colour(0, 0, 0);
if (osTvType == TV_TYPE_PAL) {
resize_viewport(0, 0, 38, SCREEN_WIDTH, SCREEN_HEIGHT - 16);
set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT + 44);
set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT_PAL);
} else {
resize_viewport(0, 0, 40, SCREEN_WIDTH, SCREEN_HEIGHT - 44);
set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT);
@@ -4951,7 +4951,7 @@ void menu_magic_codes_init(void) {
gCheatInputStringLength = 0;
sUnused_80126470 = 0;
D_80126C4C = -1;
D_80126C58[0] = 0;
D_80126C58[0] = '\0';
gOptionBlinkTimer = 0;
gMenuDelay = 0;
gOpacityDecayTimer = 0;
@@ -4963,126 +4963,120 @@ void menu_magic_codes_init(void) {
load_font(ASSET_FONTS_BIGFONT);
}
void render_magic_codes_ui(s32 arg0) {
void render_magic_codes_ui(UNUSED s32 updateRate) {
u16 *cheatData;
s32 j;
s32 green;
s32 i;
s32 alpha;
s32 x;
s32 alpha2;
s32 y;
s8 displayChar[2];
s32 i, j;
s32 alpha2, alpha, green;
s32 xPos, yPos;
char displayChar[2];
s32 temp;
s32 y2;
s32 pad[2];
UNUSED s32 pad[2];
set_text_background_colour(0, 0, 0, 0);
render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 7);
set_text_font(2);
set_text_colour(0, 0, 0, 0xFF, 0x80);
draw_text(&sMenuCurrDisplayList, 0xA1, 0x23, gMenuText[17], ALIGN_MIDDLE_CENTER);
set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF);
draw_text(&sMenuCurrDisplayList, 0xA0, 0x20, gMenuText[17], ALIGN_MIDDLE_CENTER);
set_text_font(ASSET_FONTS_BIGFONT);
set_text_colour(0, 0, 0, 255, 128);
draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF + 1, 35, gMenuText[ASSET_MENU_TEXT_MAGICCODES], ALIGN_MIDDLE_CENTER); // "MAGIC CODES"
set_text_colour(255, 255, 255, 0, 255);
draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 32, gMenuText[ASSET_MENU_TEXT_MAGICCODES], ALIGN_MIDDLE_CENTER); // "MAGIC CODES"
temp = 'A';
set_text_font(0);
set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF);
for (i = 0, y = 0x3C; i < 4; i++, y += 22) {
for(j = 0, x = 0x40; j < 7; j++, x += 32) {
if (gOptionsMenuItemIndex == 5) {
if (j == gCheatInputCurrentColumn) {
if (i == gCheatInputCurrentRow) {
alpha2 = gOptionBlinkTimer * 8;
if (alpha2 >= 0x100) {
alpha2 = 0x1FF - alpha2;
}
alpha2 >>= 1;
alpha2 += 0x80;
set_text_colour(0x80, 0xFF, 0xC0, alpha2, 0xFF);
}
set_text_font(ASSET_FONTS_FUNFONT);
set_text_colour(255, 255, 255, 0, 255);
// Draw the input table
for (i = 0, yPos = 60; i < 4; i++, yPos += 22) {
for (j = 0, xPos = 64; j < 7; j++, xPos += 32) {
if (gOptionsMenuItemIndex == 5 && j == gCheatInputCurrentColumn && i == gCheatInputCurrentRow) {
alpha2 = gOptionBlinkTimer * 8;
if (alpha2 >= 256) {
alpha2 = 511 - alpha2;
}
alpha2 >>= 1;
alpha2 += 128;
set_text_colour(128, 255, 192, alpha2, 255);
}
if (temp <= 'Z') {
displayChar[0] = temp;
displayChar[1] = '\0';
draw_text(&sMenuCurrDisplayList, x, y, &displayChar, ALIGN_MIDDLE_CENTER);
draw_text(&sMenuCurrDisplayList, xPos, yPos, displayChar, ALIGN_MIDDLE_CENTER); // Draw the character
} else if (j == 5) {
draw_text(&sMenuCurrDisplayList, x, y, D_800E8210, ALIGN_MIDDLE_CENTER);
draw_text(&sMenuCurrDisplayList, xPos, yPos, (char *) &D_800E8210 /* "DEL" */, ALIGN_MIDDLE_CENTER);
} else {
draw_text(&sMenuCurrDisplayList, x, y, D_800E8214, ALIGN_MIDDLE_CENTER);
draw_text(&sMenuCurrDisplayList, xPos, yPos, (char *) &D_800E8214 /* "OK" */, ALIGN_MIDDLE_CENTER);
}
if ((gOptionsMenuItemIndex == 5) && (j == gCheatInputCurrentColumn) && (i == gCheatInputCurrentRow)) {
set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF);
if ((5 == gOptionsMenuItemIndex) && (j == gCheatInputCurrentColumn) && (i == gCheatInputCurrentRow)) {
set_text_colour(255, 255, 255, 0, 255);
}
temp = (temp + 1) & 0xFF;
}
}
alpha2 = gOptionBlinkTimer * 8;
if (alpha2 >= 0x100) {
alpha2 = 0x1FF - alpha2;
if (alpha2 >= 256) {
alpha2 = 511 - alpha2;
}
set_text_font(0);
set_text_font(ASSET_FONTS_FUNFONT);
i = 0;
temp = 0xA4;
y = 0x10;
temp = 164;
yPos = 16;
if (osTvType == TV_TYPE_PAL) {
y = 0x18;
yPos = 24;
}
while (gMagicCodeMenuStrings[i] != NULL) {
alpha = 0;
if (i == gOptionsMenuItemIndex) {
if (gMenuOptionCount == 0) {
alpha = alpha2;
}
if (i == gOptionsMenuItemIndex && gMenuOptionCount == 0) {
alpha = alpha2;
}
set_text_colour(0xFF, 0xFF, 0xFF, alpha, 0xFF);
set_text_colour(255, 255, 255, alpha, 255);
draw_text(&sMenuCurrDisplayList, POS_CENTRED, temp, gMagicCodeMenuStrings[i], ALIGN_MIDDLE_CENTER);
i++;
temp += y;
temp += yPos;
}
set_text_font(0);
set_text_colour(0xFF, 0xFF, 0x80, 0x80, 0xFF);
set_text_background_colour(0, 0, 0x80, 0x80);
set_text_font(ASSET_FONTS_FUNFONT);
set_text_colour(255, 255, 128, 128, 255);
set_text_background_colour(0, 0, 128, 128);
if (gOptionsMenuItemIndex == 4) {
if (D_80126C4C == -1) {
draw_text(&sMenuCurrDisplayList, POS_CENTRED, 0x90, gMenuText[18], ALIGN_MIDDLE_CENTER);
draw_text(&sMenuCurrDisplayList, POS_CENTRED, 144, gMenuText[ASSET_MENU_TEXT_BADCODE], ALIGN_MIDDLE_CENTER); //"Sorry, the code was incorrect"
} else {
// Draw cheat code name.
cheatData = (*gCheatsAssetData) + 1;
draw_text(&sMenuCurrDisplayList, POS_CENTRED, 0x90, &((char*)(*gCheatsAssetData))[cheatData[D_80126C4C + 1]], ALIGN_MIDDLE_CENTER);
draw_text(&sMenuCurrDisplayList, POS_CENTRED, 144, &((char*)(*gCheatsAssetData))[cheatData[D_80126C4C + 1]], ALIGN_MIDDLE_CENTER);
}
} else if (gOptionsMenuItemIndex == 5) {
draw_text(&sMenuCurrDisplayList, POS_CENTRED, 0x90, (s8* ) D_80126C58, ALIGN_MIDDLE_CENTER);
} else if (5 == gOptionsMenuItemIndex) {
draw_text(&sMenuCurrDisplayList, POS_CENTRED, 144, D_80126C58, ALIGN_MIDDLE_CENTER);
} else if (gOptionsMenuItemIndex == 6) {
draw_text(&sMenuCurrDisplayList, POS_CENTRED, 0x90, gMenuText[19], ALIGN_MIDDLE_CENTER);
draw_text(&sMenuCurrDisplayList, POS_CENTRED, 144, gMenuText[ASSET_MENU_TEXT_ALLCODESDELETED], ALIGN_MIDDLE_CENTER); //"All cheats have been deleted"
}
if (gMenuOptionCount != 0) {
if (osTvType == TV_TYPE_PAL) {
temp = 0x86;
temp = SCREEN_HEIGHT_HALF + 14;
} else {
temp = 0x78;
temp = SCREEN_HEIGHT_HALF;
}
assign_dialogue_box_id(6);
set_dialogue_font(6, 0);
set_current_dialogue_box_coords(6, 0x4C, temp - 0x1C, 0xF4, temp + 0x1C);
set_current_dialogue_background_colour(6, 0, 0, 0, 0xA0);
set_dialogue_font(6, ASSET_FONTS_FUNFONT);
set_current_dialogue_box_coords(6, 76, temp - 28, 244, temp + 28);
set_current_dialogue_background_colour(6, 0, 0, 0, 160);
temp = 4;
for(i = 0; i < 3; i++) {
for (i = 0; i < 3; i++) {
green = 0xFF;
alpha = 0;
if (i == 0) {
green = 0;
alpha = 0x40;
alpha = 64;
} else if (i == gMenuOptionCount) {
alpha = alpha2;
}
set_current_text_colour(6, 0xFF, green, 0xFF, alpha, 0xFF);
set_current_text_colour(6, 255, green, 255, alpha, 255);
// gMenuText[148] = "CLEAR ALL CODES?", [149] = "OK", [150] = "CANCEL"
render_dialogue_text(6, POS_CENTRED, temp, gMenuText[148 + i], 1, 4);
render_dialogue_text(6, POS_CENTRED, temp, gMenuText[148 + i], 1, HORZ_ALIGN_CENTER);
if (i != 0) {
temp += 0x10;
temp += 16;
} else {
temp += 0x14;
temp += 20;
}
}
render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 6);
@@ -5092,7 +5086,6 @@ void render_magic_codes_ui(s32 arg0) {
}
}
s32 menu_magic_codes_loop(s32 updateRate) {
s32 i;
s32 buttonsPressed;
@@ -5184,9 +5177,9 @@ s32 menu_magic_codes_loop(s32 updateRate) {
someBool2 = TRUE;
} else if (gCheatInputStringLength <= 18) {
playSelectSound = TRUE;
D_80126C58[gCheatInputStringLength] = (gCheatInputCurrentRow * 7) + gCheatInputCurrentColumn + 65;
D_80126C58[gCheatInputStringLength] = (gCheatInputCurrentRow * 7) + gCheatInputCurrentColumn + 'A'; //Convert to upper case?
gCheatInputStringLength++;
D_80126C58[gCheatInputStringLength] = 0;
D_80126C58[gCheatInputStringLength] = '\0';
}
}
if (buttonsPressed & B_BUTTON) {
@@ -5203,7 +5196,7 @@ s32 menu_magic_codes_loop(s32 updateRate) {
play_sound_global(SOUND_BOUNCE, NULL);
if (gCheatInputStringLength > 0) {
gCheatInputStringLength--;
D_80126C58[gCheatInputStringLength] = 0;
D_80126C58[gCheatInputStringLength] = '\0';
}
}
if (someBool2) {
@@ -5292,7 +5285,7 @@ s32 menu_magic_codes_loop(s32 updateRate) {
gCheatInputCurrentRow = 0;
gCheatInputCurrentColumn = 0;
gCheatInputStringLength = 0;
*D_80126C58 = 0;
D_80126C58[0] = '\0';
gOptionsMenuItemIndex = 5;
} else if (gOptionsMenuItemIndex == 1) {
gMenuOptionCount = 2;
@@ -5365,58 +5358,57 @@ void menu_magic_codes_list_init(void) {
}
}
void render_magic_codes_list_menu_text(s32 arg0) {
void render_magic_codes_list_menu_text(UNUSED s32 updateRate) {
s32 i;
s32 alpha;
s32 y;
s32 var_s3;
s32 yPos;
s32 numOfUnlockedCheats;
s32 code;
u16 *cheatData;
set_text_background_colour(0, 0, 0, 0);
set_text_font(2);
set_text_colour(0, 0, 0, 0xFF, 0x80);
draw_text(&sMenuCurrDisplayList, 0xA1, 0x23, gMenuText[20], ALIGN_MIDDLE_CENTER);
set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF);
draw_text(&sMenuCurrDisplayList, 0xA0, 0x20, gMenuText[20], ALIGN_MIDDLE_CENTER);
for (i = 0, code = 1, var_s3 = 0; i < 32; i++, code <<= 1) {
set_text_font(ASSET_FONTS_BIGFONT);
set_text_colour(0, 0, 0, 255, 128);
draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF + 1, 35, gMenuText[ASSET_MENU_TEXT_MAGICCODESLIST], ALIGN_MIDDLE_CENTER); // MAGIC CODES LIST
set_text_colour(255, 255, 255, 0, 255);
draw_text(&sMenuCurrDisplayList, SCREEN_WIDTH_HALF, 32, gMenuText[ASSET_MENU_TEXT_MAGICCODESLIST], ALIGN_MIDDLE_CENTER); // MAGIC CODES LIST
for (i = 0, code = 1, numOfUnlockedCheats = 0; i < 32; i++, code <<= 1) {
if (code & gUnlockedMagicCodes) {
D_80126C80[var_s3] = i;
var_s3 += 1;
D_80126C80[numOfUnlockedCheats] = i;
numOfUnlockedCheats += 1;
}
}
y = 0x36;
yPos = 54;
alpha = gOptionBlinkTimer * 8;
if (alpha >= 0x100) {
alpha = 0x1FF - alpha;
if (alpha >= 256) {
alpha = 511 - alpha;
}
set_text_font(0);
set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF);
for (i = gMenuOptionCount, cheatData = (*gCheatsAssetData) + 1; (i < gMenuOptionCount + gNumOnscreenMagicCodes) && (i < var_s3); i++, y+= 16) {
set_text_font(ASSET_FONTS_FUNFONT);
set_text_colour(255, 255, 255, 0, 255);
for (i = gMenuOptionCount, cheatData = (*gCheatsAssetData) + 1; (i < gMenuOptionCount + gNumOnscreenMagicCodes) && (i < numOfUnlockedCheats); i++, yPos += 16) {
if (i == gOptionsMenuItemIndex) {
set_text_colour(0xFF, 0xFF, 0xFF, alpha, 0xFF);
set_text_colour(255, 255, 255, alpha, 255);
}
draw_text(&sMenuCurrDisplayList, 0x30, y, (char*)(*gCheatsAssetData) + cheatData[(D_80126C80[i] << 1) + 1], ALIGN_TOP_LEFT);
draw_text(&sMenuCurrDisplayList, 48, yPos, (char *) (*gCheatsAssetData) + cheatData[(D_80126C80[i] << 1) + 1], ALIGN_TOP_LEFT);
if ((1 << D_80126C80[i]) & gActiveMagicCodes) {
draw_text(&sMenuCurrDisplayList, 0x100, y, gMenuText[21], ALIGN_TOP_LEFT);
draw_text(&sMenuCurrDisplayList, 256, yPos, gMenuText[ASSET_MENU_TEXT_ON], ALIGN_TOP_LEFT); // ON
} else {
draw_text(&sMenuCurrDisplayList, 0x100, y, gMenuText[22], ALIGN_TOP_LEFT);
}
draw_text(&sMenuCurrDisplayList, 256, yPos, gMenuText[ASSET_MENU_TEXT_OFF], ALIGN_TOP_LEFT); // OFF
}
if (i == gOptionsMenuItemIndex) {
set_text_colour(0xFF, 0xFF, 0xFF, 0, 0xFF);
set_text_colour(255, 255, 255, 0, 255);
}
}
if (i < gMenuOptionCount + gNumOnscreenMagicCodes) {
if (var_s3 == gOptionsMenuItemIndex) {
set_text_colour(0xFF, 0xFF, 0xFF, alpha, 0xFF);
if (numOfUnlockedCheats == gOptionsMenuItemIndex) {
set_text_colour(255, 255, 255, alpha, 255);
}
draw_text(&sMenuCurrDisplayList, -0x8000, y, gMenuText[5], ALIGN_TOP_CENTER);
draw_text(&sMenuCurrDisplayList, POS_CENTRED, yPos, gMenuText[ASSET_MENU_TEXT_RETURN], ALIGN_TOP_CENTER); // RETURN
return;
}
if (gOptionBlinkTimer & 8) {
render_textured_rectangle(&sMenuCurrDisplayList, gMenuSelectionArrowDown, 0xA0, y + 8, (u8) 0xFF, (u8) 0xFF, (u8) 0xFF, (u8) 0xFF);
render_textured_rectangle(&sMenuCurrDisplayList, gMenuSelectionArrowDown, SCREEN_WIDTH_HALF, yPos + 8, 255, 255, 255, 255);
}
}
@@ -7016,18 +7008,18 @@ void menu_track_select_init(void) {
var_a0 = -160;
var_v0 = 0;
for (var_v0 = 0; var_v0 < 80; var_v0++) {
gTrackSelectBgVertices[var_v0].x = var_a0;
gTrackSelectBgVertices[var_v0]->x = var_a0;
var_a0 = -var_a0;
gTrackSelectBgVertices[var_v0].z = -1024;
gTrackSelectBgVertices[var_v0].r = 0xFF;
gTrackSelectBgVertices[var_v0].g = 0xFF;
gTrackSelectBgVertices[var_v0].b = 0xFF;
gTrackSelectBgVertices[var_v0]->z = -1024;
gTrackSelectBgVertices[var_v0]->r = 0xFF;
gTrackSelectBgVertices[var_v0]->g = 0xFF;
gTrackSelectBgVertices[var_v0]->b = 0xFF;
}
for (var_v0 = 0; var_v0 < 40; var_v0++) {
gTrackSelectBgTriangles[var_v0].flags = 0x40; // 0x40 = Draw backface
gTrackSelectBgTriangles[var_v0].vi0 = 0;
gTrackSelectBgTriangles[var_v0].vi1 = 2;
gTrackSelectBgTriangles[var_v0].vi2 = 1;
gTrackSelectBgTriangles[var_v0]->flags = 0x40; // 0x40 = Draw backface
gTrackSelectBgTriangles[var_v0]->vi0 = 0;
gTrackSelectBgTriangles[var_v0]->vi1 = 2;
gTrackSelectBgTriangles[var_v0]->vi2 = 1;
}
D_80126924 = 0;
set_background_draw_function(func_8008F618);
@@ -7103,7 +7095,7 @@ void menu_track_select_init(void) {
play_music(SEQUENCE_MAIN_MENU);
set_relative_volume_for_music(sMenuMusicVolume);
func_80000B18();
set_D_800DD430(1); // Set an interrupt?
set_gIntDisFlag(TRUE); // Set an interrupt?
gIsInAdventureTwo = gTracksMenuAdventureHighlightIndex;
gMultiplayerSelectedNumberOfRacersCopy = gMultiplayerSelectedNumberOfRacers;
}
@@ -7268,7 +7260,7 @@ void func_8008F534(void) {
func_80000B28();
func_80000C2C();
func_80001844();
set_D_800DD430(0);
set_gIntDisFlag(FALSE);
}
#ifdef NON_EQUIVALENT
@@ -7591,7 +7583,37 @@ void func_8008FF1C(s32 updateRate) {
GLOBAL_ASM("asm/non_matchings/menu/func_8008FF1C.s")
#endif
GLOBAL_ASM("asm/non_matchings/menu/func_800904E8.s")
void func_800904E8(s32 updateRate) {
s32 x1;
s32 y1;
s32 x2;
s32 y2;
s32 i;
tick_thread30();
for(i = 0; i < updateRate; i++) {
gTrackSelectX += (D_801269E8 - gTrackSelectX) * 0.1;
gTrackSelectY += (D_801269EC - gTrackSelectY) * 0.1;
}
if (gOpacityDecayTimer == 32 && get_thread30_level_id_to_load() == 0) {
if (gTrackIdForPreview == D_801263D0) {
gSelectedTrackX = D_801269C8;
gSelectedTrackY = D_801269CC;
} else if (gTrackIdForPreview != D_801263D0 && gTrackIdForPreview != -1 && set_level_to_load_in_background(gTrackIdForPreview, 1)) {
D_801263D0 = gTrackIdForPreview;
gSelectedTrackX = D_801269C8;
gSelectedTrackY = D_801269CC;
set_level_default_vehicle(get_map_default_vehicle(gTrackIdForPreview));
}
}
x1 = ((gSelectedTrackX * SCREEN_WIDTH) - gTrackSelectX) + SCREEN_WIDTH_FLOAT_HALF - 80.0f;
x2 = x1 + SCREEN_WIDTH_HALF;
y1 = gTrackSelectViewPortHalfY - ((gSelectedTrackY * -gTrackSelectViewportY) - gTrackSelectY) - (gTrackSelectViewportY >> 2);
y2 = y1 + gTrackSelectViewPortHalfY;
resize_viewport(0, x1, y1, x2, y2);
copy_viewport_background_size_to_coords(0, &x1, &y1, &x2, &y2);
camEnableUserView(0, 0);
}
void func_80090918(s32 updateRate) {
UNUSED s32 pad1[2];
@@ -7831,7 +7853,7 @@ void render_track_select_setup_ui(s32 updateRate) {
if (gNumberOfActivePlayers == 1) {
// Glow effect
set_current_dialogue_box_coords(7, 134, sp80 + 112, 186, sp80 + 137);
render_dialogue_box(&sMenuCurrDisplayList, 0, 0, 7);
render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 7);
if (gMenuOptionCount <= 0) {
render_textured_rectangle(&sMenuCurrDisplayList, &gRaceSelectionVehicleTitleTexture, 136, sp80 + 114, 255, 0xFF, 255, sMenuGuiOpacity);
} else {
@@ -7855,7 +7877,7 @@ void render_track_select_setup_ui(s32 updateRate) {
s32 temp_v1 = gTracksMenuPlayerNamePositions[s3 + (i * 2) + 1] + sp80;
// Glow effect around Player image
set_current_dialogue_box_coords(7, temp_v0_9 - 2, temp_v1 - 2, temp_v0_9 + 0x32, temp_v1 + 0x17);
render_dialogue_box(&sMenuCurrDisplayList, 0, 0, 7);
render_dialogue_box(&sMenuCurrDisplayList, NULL, NULL, 7);
}
// "Player" text image
@@ -9216,9 +9238,9 @@ s32 func_80095728(Gfx **dlist, MatrixS **matrices, Vertex **vertices, s32 update
}
if (sp54 != 0) {
play_sound_global(SOUND_MENU_BACK3, NULL);
} else if((sp50 != 0)) {
} else if (sp50 != 0) {
play_sound_global(SOUND_SELECT2, NULL);
} else if((sp4C != 0)) {
} else if (sp4C != 0) {
play_sound_global(SOUND_MENU_PICK2, NULL);
}
break;
@@ -10281,8 +10303,8 @@ s32 func_800998E0(s32 arg0) {
s32 i;
result = 0;
if ((arg0 >= 0) && (arg0 < D_801264D4)) {
play_sound_global(0xEFU, NULL);
if (arg0 >= 0 && arg0 < D_801264D4) {
play_sound_global(SOUND_SELECT2, NULL);
temp_s0 = D_80126540[arg0];
result = func_800753D8(D_801264D0, temp_s0);
if (result == 0) {
@@ -10716,7 +10738,7 @@ void menu_credits_init(void) {
set_background_fill_colour(0, 0, 0);
if (osTvType == TV_TYPE_PAL) {
resize_viewport(0, 0, 38, SCREEN_WIDTH, 224);
set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT + 44);
set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT_PAL);
} else {
resize_viewport(0, 0, 40, SCREEN_WIDTH, 196);
set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, SCREEN_WIDTH, SCREEN_HEIGHT);
@@ -10761,7 +10783,7 @@ void menu_credits_init(void) {
}
func_80000B18();
enable_new_screen_transitions();
set_D_800DD430(1);
set_gIntDisFlag(TRUE);
}
/**
@@ -10794,7 +10816,7 @@ void func_8009BCF0(void) {
set_viewport_properties(0, VIEWPORT_AUTO, VIEWPORT_AUTO, VIEWPORT_AUTO, VIEWPORT_AUTO);
func_8009C4A8(gCreditsObjectIndices);
unload_font(ASSET_FONTS_BIGFONT);
set_D_800DD430(0);
set_gIntDisFlag(FALSE);
}
void func_8009BD5C(void) {

Some files were not shown because too many files have changed in this diff Show More