diff --git a/asm/non_matchings/menu/func_8008F618.s b/asm/non_matchings/menu/func_8008F618.s index b333645a..1f23f654 100644 --- a/asm/non_matchings/menu/func_8008F618.s +++ b/asm/non_matchings/menu/func_8008F618.s @@ -56,9 +56,9 @@ glabel func_8008F618 /* 0902F0 8008F6F0 00EE001A */ div $zero, $a3, $t6 /* 0902F4 8008F6F4 440D3000 */ mfc1 $t5, $f6 /* 0902F8 8008F6F8 3C09800E */ lui $t1, %hi(D_800E0840) # $t1, 0x800e -/* 0902FC 8008F6FC 3C1F8012 */ lui $ra, %hi(D_80126478) # $ra, 0x8012 +/* 0902FC 8008F6FC 3C1F8012 */ lui $ra, %hi(gTrackSelectViewPortHalfY) # $ra, 0x8012 /* 090300 8008F700 44D9F800 */ ctc1 $t9, $31 -/* 090304 8008F704 27FF6478 */ addiu $ra, %lo(D_80126478) # addiu $ra, $ra, 0x6478 +/* 090304 8008F704 27FF6478 */ addiu $ra, %lo(gTrackSelectViewPortHalfY) # addiu $ra, $ra, 0x6478 /* 090308 8008F708 25290840 */ addiu $t1, %lo(D_800E0840) # addiu $t1, $t1, 0x840 /* 09030C 8008F70C 00401825 */ move $v1, $v0 /* 090310 8008F710 15000002 */ bnez $t0, .L8008F71C @@ -245,8 +245,8 @@ glabel func_8008F618 /* 0905B8 8008F9B8 AC4F0000 */ sw $t7, ($v0) /* 0905BC 8008F9BC 92070000 */ lbu $a3, ($s0) /* 0905C0 8008F9C0 3C0A8012 */ lui $t2, %hi(gTrackSelectViewportY) # $t2, 0x8012 -/* 0905C4 8008F9C4 3C1F8012 */ lui $ra, %hi(D_80126478) # $ra, 0x8012 -/* 0905C8 8008F9C8 27FF6478 */ addiu $ra, %lo(D_80126478) # addiu $ra, $ra, 0x6478 +/* 0905C4 8008F9C4 3C1F8012 */ lui $ra, %hi(gTrackSelectViewPortHalfY) # $ra, 0x8012 +/* 0905C8 8008F9C8 27FF6478 */ addiu $ra, %lo(gTrackSelectViewPortHalfY) # addiu $ra, $ra, 0x6478 /* 0905CC 8008F9CC 12E70005 */ beq $s7, $a3, .L8008F9E4 /* 0905D0 8008F9D0 254A6480 */ addiu $t2, %lo(gTrackSelectViewportY) # addiu $t2, $t2, 0x6480 /* 0905D4 8008F9D4 8D590000 */ lw $t9, ($t2) diff --git a/asm/non_matchings/menu/func_800904E8.s b/asm/non_matchings/menu/func_800904E8.s index 40f4581e..6cb27516 100644 --- a/asm/non_matchings/menu/func_800904E8.s +++ b/asm/non_matchings/menu/func_800904E8.s @@ -227,9 +227,9 @@ glabel func_800904E8 /* 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(D_80126478) # $v0, 0x8012 +/* 091440 80090840 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012 /* 091444 80090844 46062201 */ sub.s $f8, $f4, $f6 -/* 091448 80090848 8C426478 */ lw $v0, %lo(D_80126478)($v0) +/* 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 diff --git a/asm/non_matchings/menu/func_80092188.s b/asm/non_matchings/menu/func_80092188.s index 3ed5805d..646f9406 100644 --- a/asm/non_matchings/menu/func_80092188.s +++ b/asm/non_matchings/menu/func_80092188.s @@ -82,14 +82,14 @@ glabel func_80092188 /* 092EA4 800922A4 24490019 */ addiu $t1, $v0, 0x19 /* 092EA8 800922A8 29210015 */ slti $at, $t1, 0x15 /* 092EAC 800922AC 14200002 */ bnez $at, .L800922B8 -/* 092EB0 800922B0 3C028012 */ lui $v0, %hi(D_80126478) # $v0, 0x8012 +/* 092EB0 800922B0 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012 /* 092EB4 800922B4 24090014 */ li $t1, 20 .L800922B8: /* 092EB8 800922B8 05210002 */ bgez $t1, .L800922C4 /* 092EBC 800922BC 00000000 */ nop /* 092EC0 800922C0 00004825 */ move $t1, $zero .L800922C4: -/* 092EC4 800922C4 8C426478 */ lw $v0, %lo(D_80126478)($v0) +/* 092EC4 800922C4 8C426478 */ lw $v0, %lo(gTrackSelectViewPortHalfY)($v0) /* 092EC8 800922C8 252F0014 */ addiu $t7, $t1, 0x14 /* 092ECC 800922CC 01E20019 */ multu $t7, $v0 /* 092ED0 800922D0 24010028 */ li $at, 40 @@ -160,8 +160,8 @@ glabel func_80092188 /* 092FC8 800923C8 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 /* 092FCC 800923CC 0C023C03 */ jal func_8008F00C /* 092FD0 800923D0 AC2063D8 */ sw $zero, %lo(gOpacityDecayTimer)($at) -/* 092FD4 800923D4 3C028012 */ lui $v0, %hi(D_80126478) # $v0, 0x8012 -/* 092FD8 800923D8 8C426478 */ lw $v0, %lo(D_80126478)($v0) +/* 092FD4 800923D4 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012 +/* 092FD8 800923D8 8C426478 */ lw $v0, %lo(gTrackSelectViewPortHalfY)($v0) /* 092FDC 800923DC 00002025 */ move $a0, $zero /* 092FE0 800923E0 00021843 */ sra $v1, $v0, 1 /* 092FE4 800923E4 00627021 */ addu $t6, $v1, $v0 diff --git a/asm/non_matchings/menu/func_80094688.s b/asm/non_matchings/menu/func_80094688.s deleted file mode 100644 index 031bf2d7..00000000 --- a/asm/non_matchings/menu/func_80094688.s +++ /dev/null @@ -1,264 +0,0 @@ -glabel func_80094688 -/* 095288 80094688 27BDFFD0 */ addiu $sp, $sp, -0x30 -/* 09528C 8009468C AFBF001C */ sw $ra, 0x1c($sp) -/* 095290 80094690 AFA40030 */ sw $a0, 0x30($sp) -/* 095294 80094694 AFA50034 */ sw $a1, 0x34($sp) -/* 095298 80094698 0C01C8A6 */ jal func_80072298 -/* 09529C 8009469C 00002025 */ move $a0, $zero -/* 0952A0 800946A0 0C01AF6C */ jal get_current_level_header -/* 0952A4 800946A4 00000000 */ nop -/* 0952A8 800946A8 8FAE0030 */ lw $t6, 0x30($sp) -/* 0952AC 800946AC 3C018012 */ lui $at, %hi(D_80126C28) # $at, 0x8012 -/* 0952B0 800946B0 AFA20028 */ sw $v0, 0x28($sp) -/* 0952B4 800946B4 0C027B20 */ jal is_in_two_player_adventure -/* 0952B8 800946B8 A02E6C28 */ sb $t6, %lo(D_80126C28)($at) -/* 0952BC 800946BC 10400003 */ beqz $v0, .L800946CC -/* 0952C0 800946C0 00000000 */ nop -/* 0952C4 800946C4 0C009278 */ jal func_800249E0 -/* 0952C8 800946C8 00002025 */ move $a0, $zero -.L800946CC: -/* 0952CC 800946CC 3C018012 */ lui $at, %hi(D_80126A90) # $at, 0x8012 -/* 0952D0 800946D0 3C0F800E */ lui $t7, %hi(gNumberOfActivePlayers) # $t7, 0x800e -/* 0952D4 800946D4 8DEFF4BC */ lw $t7, %lo(gNumberOfActivePlayers)($t7) -/* 0952D8 800946D8 AC206A90 */ sw $zero, %lo(D_80126A90)($at) -/* 0952DC 800946DC 24010001 */ li $at, 1 -/* 0952E0 800946E0 15E1003F */ bne $t7, $at, .L800947E0 -/* 0952E4 800946E4 3C18800E */ lui $t8, %hi(gTrophyRaceWorldId) # $t8, 0x800e -/* 0952E8 800946E8 8F180FE8 */ lw $t8, %lo(gTrophyRaceWorldId)($t8) -/* 0952EC 800946EC 00000000 */ nop -/* 0952F0 800946F0 1700003C */ bnez $t8, .L800947E4 -/* 0952F4 800946F4 240B0007 */ li $t3, 7 -/* 0952F8 800946F8 0C0270B4 */ jal is_in_tracks_mode -/* 0952FC 800946FC 00000000 */ nop -/* 095300 80094700 24060001 */ li $a2, 1 -/* 095304 80094704 14460011 */ bne $v0, $a2, .L8009474C -/* 095308 80094708 3C048012 */ lui $a0, %hi(D_80126C14) # $a0, 0x8012 -/* 09530C 8009470C 3C02800E */ lui $v0, %hi(gMenuText) # $v0, 0x800e -/* 095310 80094710 8C42F4A0 */ lw $v0, %lo(gMenuText)($v0) -/* 095314 80094714 3C058012 */ lui $a1, %hi(D_80126BF0) # $a1, 0x8012 -/* 095318 80094718 8C59005C */ lw $t9, 0x5c($v0) -/* 09531C 8009471C 24A56BF0 */ addiu $a1, %lo(D_80126BF0) # addiu $a1, $a1, 0x6bf0 -/* 095320 80094720 ACB90000 */ sw $t9, ($a1) -/* 095324 80094724 8C480060 */ lw $t0, 0x60($v0) -/* 095328 80094728 24846C14 */ addiu $a0, %lo(D_80126C14) # addiu $a0, $a0, 0x6c14 -/* 09532C 8009472C ACA80004 */ sw $t0, 4($a1) -/* 095330 80094730 8C490068 */ lw $t1, 0x68($v0) -/* 095334 80094734 240A0003 */ li $t2, 3 -/* 095338 80094738 AC8A0000 */ sw $t2, ($a0) -/* 09533C 8009473C 3C018012 */ lui $at, %hi(D_80126A90) # $at, 0x8012 -/* 095340 80094740 ACA90008 */ sw $t1, 8($a1) -/* 095344 80094744 1000001C */ b .L800947B8 -/* 095348 80094748 AC266A90 */ sw $a2, %lo(D_80126A90)($at) -.L8009474C: -/* 09534C 8009474C 8FAB0030 */ lw $t3, 0x30($sp) -/* 095350 80094750 00000000 */ nop -/* 095354 80094754 1560000A */ bnez $t3, .L80094780 -/* 095358 80094758 3C02800E */ lui $v0, %hi(gMenuText) # $v0, 0x800e -/* 09535C 8009475C 8C42F4A0 */ lw $v0, %lo(gMenuText)($v0) -/* 095360 80094760 3C048012 */ lui $a0, %hi(D_80126C14) # $a0, 0x8012 -/* 095364 80094764 8C4C005C */ lw $t4, 0x5c($v0) -/* 095368 80094768 3C058012 */ lui $a1, %hi(D_80126BF0) # $a1, 0x8012 -/* 09536C 8009476C 24A56BF0 */ addiu $a1, %lo(D_80126BF0) # addiu $a1, $a1, 0x6bf0 -/* 095370 80094770 24846C14 */ addiu $a0, %lo(D_80126C14) # addiu $a0, $a0, 0x6c14 -/* 095374 80094774 AC860000 */ sw $a2, ($a0) -/* 095378 80094778 10000008 */ b .L8009479C -/* 09537C 8009477C ACAC0000 */ sw $t4, ($a1) -.L80094780: -/* 095380 80094780 3C048012 */ lui $a0, %hi(D_80126C14) # $a0, 0x8012 -/* 095384 80094784 24846C14 */ addiu $a0, %lo(D_80126C14) # addiu $a0, $a0, 0x6c14 -/* 095388 80094788 AC800000 */ sw $zero, ($a0) -/* 09538C 8009478C 3C02800E */ lui $v0, %hi(gMenuText) # $v0, 0x800e -/* 095390 80094790 3C058012 */ lui $a1, %hi(D_80126BF0) # $a1, 0x8012 -/* 095394 80094794 8C42F4A0 */ lw $v0, %lo(gMenuText)($v0) -/* 095398 80094798 24A56BF0 */ addiu $a1, %lo(D_80126BF0) # addiu $a1, $a1, 0x6bf0 -.L8009479C: -/* 09539C 8009479C 8C830000 */ lw $v1, ($a0) -/* 0953A0 800947A0 8C4D0064 */ lw $t5, 0x64($v0) -/* 0953A4 800947A4 00037080 */ sll $t6, $v1, 2 -/* 0953A8 800947A8 00AE7821 */ addu $t7, $a1, $t6 -/* 0953AC 800947AC 24780001 */ addiu $t8, $v1, 1 -/* 0953B0 800947B0 ADED0000 */ sw $t5, ($t7) -/* 0953B4 800947B4 AC980000 */ sw $t8, ($a0) -.L800947B8: -/* 0953B8 800947B8 8C830000 */ lw $v1, ($a0) -/* 0953BC 800947BC 8C590070 */ lw $t9, 0x70($v0) -/* 0953C0 800947C0 00034080 */ sll $t0, $v1, 2 -/* 0953C4 800947C4 00A84821 */ addu $t1, $a1, $t0 -/* 0953C8 800947C8 246A0001 */ addiu $t2, $v1, 1 -/* 0953CC 800947CC AD390000 */ sw $t9, ($t1) -/* 0953D0 800947D0 AC8A0000 */ sw $t2, ($a0) -/* 0953D4 800947D4 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 0953D8 800947D8 10000004 */ b .L800947EC -/* 0953DC 800947DC AC2063E0 */ sw $zero, %lo(D_801263E0)($at) -.L800947E0: -/* 0953E0 800947E0 240B0007 */ li $t3, 7 -.L800947E4: -/* 0953E4 800947E4 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 0953E8 800947E8 AC2B63E0 */ sw $t3, %lo(D_801263E0)($at) -.L800947EC: -/* 0953EC 800947EC 3C018012 */ lui $at, %hi(D_80126CC0) # $at, 0x8012 -/* 0953F0 800947F0 AC206CC0 */ sw $zero, %lo(D_80126CC0)($at) -/* 0953F4 800947F4 3C018012 */ lui $at, %hi(gOptionBlinkTimer) # $at, 0x8012 -/* 0953F8 800947F8 AC2063BC */ sw $zero, %lo(gOptionBlinkTimer)($at) -/* 0953FC 800947FC 3C018012 */ lui $at, %hi(gOpacityDecayTimer) # $at, 0x8012 -/* 095400 80094800 AC2063D8 */ sw $zero, %lo(gOpacityDecayTimer)($at) -/* 095404 80094804 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 095408 80094808 AC20F47C */ sw $zero, %lo(gMenuDelay)($at) -/* 09540C 8009480C 3C01800E */ lui $at, %hi(D_800DF460) # $at, 0x800e -/* 095410 80094810 AC20F460 */ sw $zero, %lo(D_800DF460)($at) -/* 095414 80094814 3C018012 */ lui $at, %hi(gMenuOption) # $at, 0x8012 -/* 095418 80094818 AC206A68 */ sw $zero, %lo(gMenuOption)($at) -/* 09541C 8009481C 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 095420 80094820 240C0001 */ li $t4, 1 -/* 095424 80094824 AC2C63C4 */ sw $t4, %lo(gIgnorePlayerInput)($at) -/* 095428 80094828 3C018012 */ lui $at, %hi(D_80126C54) # $at, 0x8012 -/* 09542C 8009482C 240EFFFF */ li $t6, -1 -/* 095430 80094830 AC2E6C54 */ sw $t6, %lo(D_80126C54)($at) -/* 095434 80094834 3C01800E */ lui $at, %hi(gMenuSubOption) # $at, 0x800e -/* 095438 80094838 AC200988 */ sw $zero, %lo(gMenuSubOption)($at) -/* 09543C 8009483C 3C018012 */ lui $at, %hi(D_80126C1C) # $at, 0x8012 -/* 095440 80094840 AC206C1C */ sw $zero, %lo(D_80126C1C)($at) -/* 095444 80094844 8FAD0028 */ lw $t5, 0x28($sp) -/* 095448 80094848 3C018012 */ lui $at, %hi(D_80126A98) # $at, 0x8012 -/* 09544C 8009484C AC206A98 */ sw $zero, %lo(D_80126A98)($at) -/* 095450 80094850 81AF004C */ lb $t7, 0x4c($t5) -/* 095454 80094854 00000000 */ nop -/* 095458 80094858 31F80040 */ andi $t8, $t7, 0x40 -/* 09545C 8009485C 13000005 */ beqz $t8, .L80094874 -/* 095460 80094860 00000000 */ nop -/* 095464 80094864 0C00322D */ jal normalise_time -/* 095468 80094868 240400F0 */ li $a0, 240 -/* 09546C 8009486C 3C018012 */ lui $at, %hi(gIgnorePlayerInput) # $at, 0x8012 -/* 095470 80094870 AC2263C4 */ sw $v0, %lo(gIgnorePlayerInput)($at) -.L80094874: -/* 095474 80094874 3C088012 */ lui $t0, %hi(D_80126C28) # $t0, 0x8012 -/* 095478 80094878 81086C28 */ lb $t0, %lo(D_80126C28)($t0) -/* 09547C 8009487C 24190008 */ li $t9, 8 -/* 095480 80094880 11000005 */ beqz $t0, .L80094898 -/* 095484 80094884 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 095488 80094888 AC3963E0 */ sw $t9, %lo(D_801263E0)($at) -/* 09548C 8009488C 3C01800E */ lui $at, %hi(gMenuDelay) # $at, 0x800e -/* 095490 80094890 24090064 */ li $t1, 100 -/* 095494 80094894 AC29F47C */ sw $t1, %lo(gMenuDelay)($at) -.L80094898: -/* 095498 80094898 0C01B683 */ jal get_render_context -/* 09549C 8009489C 00000000 */ nop -/* 0954A0 800948A0 10400003 */ beqz $v0, .L800948B0 -/* 0954A4 800948A4 240A0007 */ li $t2, 7 -/* 0954A8 800948A8 3C018012 */ lui $at, %hi(D_801263E0) # $at, 0x8012 -/* 0954AC 800948AC AC2A63E0 */ sw $t2, %lo(D_801263E0)($at) -.L800948B0: -/* 0954B0 800948B0 0C026F97 */ jal reset_controller_sticks -/* 0954B4 800948B4 00000000 */ nop -/* 0954B8 800948B8 8FA40030 */ lw $a0, 0x30($sp) -/* 0954BC 800948BC 0C01B638 */ jal func_8006D8E0 -/* 0954C0 800948C0 00000000 */ nop -/* 0954C4 800948C4 0C01E948 */ jal get_video_width_and_height_as_s32 -/* 0954C8 800948C8 00000000 */ nop -/* 0954CC 800948CC 3C058012 */ lui $a1, %hi(D_8012647C) # $a1, 0x8012 -/* 0954D0 800948D0 24A5647C */ addiu $a1, %lo(D_8012647C) # addiu $a1, $a1, 0x647c -/* 0954D4 800948D4 00025C03 */ sra $t3, $v0, 0x10 -/* 0954D8 800948D8 ACA20000 */ sw $v0, ($a1) -/* 0954DC 800948DC 316CFFFF */ andi $t4, $t3, 0xffff -/* 0954E0 800948E0 3C018012 */ lui $at, %hi(gTrackSelectViewportY) # $at, 0x8012 -/* 0954E4 800948E4 AC2C6480 */ sw $t4, %lo(gTrackSelectViewportY)($at) -/* 0954E8 800948E8 304EFFFF */ andi $t6, $v0, 0xffff -/* 0954EC 800948EC ACAE0000 */ sw $t6, ($a1) -/* 0954F0 800948F0 3C188012 */ lui $t8, %hi(gTrackSelectViewportY) # $t8, 0x8012 -/* 0954F4 800948F4 8F186480 */ lw $t8, %lo(gTrackSelectViewportY)($t8) -/* 0954F8 800948F8 000E7843 */ sra $t7, $t6, 1 -/* 0954FC 800948FC 3C018012 */ lui $at, %hi(D_80126474) # $at, 0x8012 -/* 095500 80094900 AC2F6474 */ sw $t7, %lo(D_80126474)($at) -/* 095504 80094904 3C018012 */ lui $at, %hi(D_80126478) # $at, 0x8012 -/* 095508 80094908 3C19800E */ lui $t9, %hi(gNumberOfActivePlayers) # $t9, 0x800e -/* 09550C 8009490C 00184043 */ sra $t0, $t8, 1 -/* 095510 80094910 8F39F4BC */ lw $t9, %lo(gNumberOfActivePlayers)($t9) -/* 095514 80094914 AC286478 */ sw $t0, %lo(D_80126478)($at) -/* 095518 80094918 24010001 */ li $at, 1 -/* 09551C 8009491C 17210049 */ bne $t9, $at, .L80094A44 -/* 095520 80094920 3C09800E */ lui $t1, %hi(gTrophyRaceWorldId) # $t1, 0x800e -/* 095524 80094924 8D290FE8 */ lw $t1, %lo(gTrophyRaceWorldId)($t1) -/* 095528 80094928 3C018012 */ lui $at, %hi(D_80126C54) # $at, 0x8012 -/* 09552C 8009492C 15200045 */ bnez $t1, .L80094A44 -/* 095530 80094930 3C0E800E */ lui $t6, %hi(D_800E0710) # $t6, 0x800e -/* 095534 80094934 8FAA0028 */ lw $t2, 0x28($sp) -/* 095538 80094938 AC206C54 */ sw $zero, %lo(D_80126C54)($at) -/* 09553C 8009493C 81420000 */ lb $v0, ($t2) -/* 095540 80094940 25CE0710 */ addiu $t6, %lo(D_800E0710) # addiu $t6, $t6, 0x710 -/* 095544 80094944 2442FFFF */ addiu $v0, $v0, -1 -/* 095548 80094948 00025880 */ sll $t3, $v0, 2 -/* 09554C 8009494C 01625823 */ subu $t3, $t3, $v0 -/* 095550 80094950 000B6040 */ sll $t4, $t3, 1 -/* 095554 80094954 018E1821 */ addu $v1, $t4, $t6 -/* 095558 80094958 84640000 */ lh $a0, ($v1) -/* 09555C 8009495C 2401FFFF */ li $at, -1 -/* 095560 80094960 1081000C */ beq $a0, $at, .L80094994 -/* 095564 80094964 00000000 */ nop -/* 095568 80094968 0C0271B5 */ jal func_8009C6D4 -/* 09556C 8009496C AFA30024 */ sw $v1, 0x24($sp) -/* 095570 80094970 8FA30024 */ lw $v1, 0x24($sp) -/* 095574 80094974 3C188012 */ lui $t8, %hi(D_80126550) # $t8, 0x8012 -/* 095578 80094978 846D0000 */ lh $t5, ($v1) -/* 09557C 8009497C 3C018012 */ lui $at, %hi(D_80126BB8) # $at, 0x8012 -/* 095580 80094980 000D7880 */ sll $t7, $t5, 2 -/* 095584 80094984 030FC021 */ addu $t8, $t8, $t7 -/* 095588 80094988 8F186550 */ lw $t8, %lo(D_80126550)($t8) -/* 09558C 8009498C 10000003 */ b .L8009499C -/* 095590 80094990 AC386BB8 */ sw $t8, %lo(D_80126BB8)($at) -.L80094994: -/* 095594 80094994 3C018012 */ lui $at, %hi(D_80126BB8) # $at, 0x8012 -/* 095598 80094998 AC206BB8 */ sw $zero, %lo(D_80126BB8)($at) -.L8009499C: -/* 09559C 8009499C 84640002 */ lh $a0, 2($v1) -/* 0955A0 800949A0 2401FFFF */ li $at, -1 -/* 0955A4 800949A4 1081000C */ beq $a0, $at, .L800949D8 -/* 0955A8 800949A8 00000000 */ nop -/* 0955AC 800949AC 0C0271B5 */ jal func_8009C6D4 -/* 0955B0 800949B0 AFA30024 */ sw $v1, 0x24($sp) -/* 0955B4 800949B4 8FA30024 */ lw $v1, 0x24($sp) -/* 0955B8 800949B8 3C098012 */ lui $t1, %hi(D_80126550) # $t1, 0x8012 -/* 0955BC 800949BC 84680002 */ lh $t0, 2($v1) -/* 0955C0 800949C0 3C018012 */ lui $at, %hi(D_80126BBC) # $at, 0x8012 -/* 0955C4 800949C4 0008C880 */ sll $t9, $t0, 2 -/* 0955C8 800949C8 01394821 */ addu $t1, $t1, $t9 -/* 0955CC 800949CC 8D296550 */ lw $t1, %lo(D_80126550)($t1) -/* 0955D0 800949D0 10000003 */ b .L800949E0 -/* 0955D4 800949D4 AC296BBC */ sw $t1, %lo(D_80126BBC)($at) -.L800949D8: -/* 0955D8 800949D8 3C018012 */ lui $at, %hi(D_80126BBC) # $at, 0x8012 -/* 0955DC 800949DC AC206BBC */ sw $zero, %lo(D_80126BBC)($at) -.L800949E0: -/* 0955E0 800949E0 846A0004 */ lh $t2, 4($v1) -/* 0955E4 800949E4 3C018012 */ lui $at, %hi(D_80126BC0) # $at, 0x8012 -/* 0955E8 800949E8 0C01B683 */ jal get_render_context -/* 0955EC 800949EC AC2A6BC0 */ sw $t2, %lo(D_80126BC0)($at) -/* 0955F0 800949F0 14400008 */ bnez $v0, .L80094A14 -/* 0955F4 800949F4 3C048012 */ lui $a0, %hi(D_80126BB8) # $a0, 0x8012 -/* 0955F8 800949F8 3C058012 */ lui $a1, %hi(D_80126BBC) # $a1, 0x8012 -/* 0955FC 800949FC 3C068012 */ lui $a2, %hi(D_80126BC0) # $a2, 0x8012 -/* 095600 80094A00 8CC66BC0 */ lw $a2, %lo(D_80126BC0)($a2) -/* 095604 80094A04 8CA56BBC */ lw $a1, %lo(D_80126BBC)($a1) -/* 095608 80094A08 8C846BB8 */ lw $a0, %lo(D_80126BB8)($a0) -/* 09560C 80094A0C 0C01E05C */ jal func_80078170 -/* 095610 80094A10 00000000 */ nop -.L80094A14: -/* 095614 80094A14 00002025 */ move $a0, $zero -/* 095618 80094A18 0C019A06 */ jal func_80066818 -/* 09561C 80094A1C 24050001 */ li $a1, 1 -/* 095620 80094A20 3C0B8012 */ lui $t3, %hi(gTrackSelectViewportY) # $t3, 0x8012 -/* 095624 80094A24 8D6B6480 */ lw $t3, %lo(gTrackSelectViewportY)($t3) -/* 095628 80094A28 3C078012 */ lui $a3, %hi(D_8012647C) # $a3, 0x8012 -/* 09562C 80094A2C 8CE7647C */ lw $a3, %lo(D_8012647C)($a3) -/* 095630 80094A30 00002025 */ move $a0, $zero -/* 095634 80094A34 00002825 */ move $a1, $zero -/* 095638 80094A38 00003025 */ move $a2, $zero -/* 09563C 80094A3C 0C019A50 */ jal func_80066940 -/* 095640 80094A40 AFAB0010 */ sw $t3, 0x10($sp) -.L80094A44: -/* 095644 80094A44 0C00025A */ jal func_80000968 -/* 095648 80094A48 24040002 */ li $a0, 2 -/* 09564C 80094A4C 8FBF001C */ lw $ra, 0x1c($sp) -/* 095650 80094A50 27BD0030 */ addiu $sp, $sp, 0x30 -/* 095654 80094A54 03E00008 */ jr $ra -/* 095658 80094A58 00000000 */ nop - diff --git a/asm/non_matchings/menu/func_80094D28.s b/asm/non_matchings/menu/func_80094D28.s index 1247acbc..be81f554 100644 --- a/asm/non_matchings/menu/func_80094D28.s +++ b/asm/non_matchings/menu/func_80094D28.s @@ -53,10 +53,10 @@ glabel func_80094D28 glabel L80094DD0 /* 0959D0 80094DD0 3C108012 */ lui $s0, %hi(D_80126A94) # $s0, 0x8012 /* 0959D4 80094DD4 8E106A94 */ lw $s0, %lo(D_80126A94)($s0) -/* 0959D8 80094DD8 3C118012 */ lui $s1, %hi(D_80126478) # $s1, 0x8012 +/* 0959D8 80094DD8 3C118012 */ lui $s1, %hi(gTrackSelectViewPortHalfY) # $s1, 0x8012 /* 0959DC 80094DDC 2A01003D */ slti $at, $s0, 0x3d /* 0959E0 80094DE0 14200002 */ bnez $at, .L80094DEC -/* 0959E4 80094DE4 26316478 */ addiu $s1, %lo(D_80126478) # addiu $s1, $s1, 0x6478 +/* 0959E4 80094DE4 26316478 */ addiu $s1, %lo(gTrackSelectViewPortHalfY) # addiu $s1, $s1, 0x6478 /* 0959E8 80094DE8 2410003C */ li $s0, 60 .L80094DEC: /* 0959EC 80094DEC 8E220000 */ lw $v0, ($s1) diff --git a/asm/non_matchings/menu/func_80095728.s b/asm/non_matchings/menu/func_80095728.s index fd68dca2..43c7aec2 100644 --- a/asm/non_matchings/menu/func_80095728.s +++ b/asm/non_matchings/menu/func_80095728.s @@ -161,7 +161,7 @@ glabel L80095948 glabel L80095964 /* 096564 80095964 3C0C8012 */ lui $t4, %hi(D_80126A94) # $t4, 0x8012 /* 096568 80095968 8D8C6A94 */ lw $t4, %lo(D_80126A94)($t4) -/* 09656C 8009596C 3C028012 */ lui $v0, %hi(D_80126478) # $v0, 0x8012 +/* 09656C 8009596C 3C028012 */ lui $v0, %hi(gTrackSelectViewPortHalfY) # $v0, 0x8012 /* 096570 80095970 2981003D */ slti $at, $t4, 0x3d /* 096574 80095974 10200004 */ beqz $at, .L80095988 /* 096578 80095978 00000000 */ nop @@ -169,7 +169,7 @@ glabel L80095964 /* 096580 80095980 11A00364 */ beqz $t5, .L80096714 /* 096584 80095984 00000000 */ nop .L80095988: -/* 096588 80095988 8C426478 */ lw $v0, %lo(D_80126478)($v0) +/* 096588 80095988 8C426478 */ lw $v0, %lo(gTrackSelectViewPortHalfY)($v0) /* 09658C 8009598C 24030005 */ li $v1, 5 /* 096590 80095990 00027080 */ sll $t6, $v0, 2 /* 096594 80095994 01C3001A */ div $zero, $t6, $v1 diff --git a/asm/non_matchings/menu/menu_magic_codes_loop.s b/asm/non_matchings/menu/menu_magic_codes_loop.s index 80b9392b..fcc70a1f 100644 --- a/asm/non_matchings/menu/menu_magic_codes_loop.s +++ b/asm/non_matchings/menu/menu_magic_codes_loop.s @@ -286,11 +286,11 @@ glabel menu_magic_codes_loop .L8008A0E8: /* 08ACE8 8008A0E8 01997021 */ addu $t6, $t4, $t9 /* 08ACEC 8008A0EC 95CF0000 */ lhu $t7, ($t6) -/* 08ACF0 8008A0F0 3C058012 */ lui $a1, %hi(D_80126C57) # $a1, 0x8012 +/* 08ACF0 8008A0F0 3C058012 */ lui $a1, %hi(D_80126C54 + 3) # $a1, 0x8012 /* 08ACF4 8008A0F4 01E91021 */ addu $v0, $t7, $t1 /* 08ACF8 8008A0F8 24070001 */ li $a3, 1 /* 08ACFC 8008A0FC 2444FFFF */ addiu $a0, $v0, -1 -/* 08AD00 8008A100 24A56C57 */ addiu $a1, %lo(D_80126C57) # addiu $a1, $a1, 0x6c57 +/* 08AD00 8008A100 24A56C57 */ addiu $a1, %lo(D_80126C54 + 3) # addiu $a1, $a1, 0x6c57 .L8008A104: /* 08AD04 8008A104 90820001 */ lbu $v0, 1($a0) /* 08AD08 8008A108 90A30001 */ lbu $v1, 1($a1) diff --git a/asm/non_matchings/menu/menu_track_select_init.s b/asm/non_matchings/menu/menu_track_select_init.s index 9c6910a7..4ba55db2 100644 --- a/asm/non_matchings/menu/menu_track_select_init.s +++ b/asm/non_matchings/menu/menu_track_select_init.s @@ -37,8 +37,8 @@ glabel menu_track_select_init .L8008E82C: /* 08F42C 8008E82C 0C01E948 */ jal get_video_width_and_height_as_s32 /* 08F430 8008E830 00000000 */ nop -/* 08F434 8008E834 3C068012 */ lui $a2, %hi(D_8012647C) # $a2, 0x8012 -/* 08F438 8008E838 24C6647C */ addiu $a2, %lo(D_8012647C) # addiu $a2, $a2, 0x647c +/* 08F434 8008E834 3C068012 */ lui $a2, %hi(gTrackSelectViewPortX) # $a2, 0x8012 +/* 08F438 8008E838 24C6647C */ addiu $a2, %lo(gTrackSelectViewPortX) # addiu $a2, $a2, 0x647c /* 08F43C 8008E83C 3C078012 */ lui $a3, %hi(gTrackSelectViewportY) # $a3, 0x8012 /* 08F440 8008E840 00027C03 */ sra $t7, $v0, 0x10 /* 08F444 8008E844 3059FFFF */ andi $t9, $v0, 0xffff @@ -48,11 +48,11 @@ glabel menu_track_select_init /* 08F454 8008E854 ACF80000 */ sw $t8, ($a3) /* 08F458 8008E858 ACD90000 */ sw $t9, ($a2) /* 08F45C 8008E85C 00195043 */ sra $t2, $t9, 1 -/* 08F460 8008E860 3C018012 */ lui $at, %hi(D_80126474) # $at, 0x8012 -/* 08F464 8008E864 AC2A6474 */ sw $t2, %lo(D_80126474)($at) +/* 08F460 8008E860 3C018012 */ lui $at, %hi(gTrackSelectViewPortHalfX) # $at, 0x8012 +/* 08F464 8008E864 AC2A6474 */ sw $t2, %lo(gTrackSelectViewPortHalfX)($at) /* 08F468 8008E868 8CE50000 */ lw $a1, ($a3) -/* 08F46C 8008E86C 3C1E8012 */ lui $fp, %hi(D_80126478) # $fp, 0x8012 -/* 08F470 8008E870 27DE6478 */ addiu $fp, %lo(D_80126478) # addiu $fp, $fp, 0x6478 +/* 08F46C 8008E86C 3C1E8012 */ lui $fp, %hi(gTrackSelectViewPortHalfY) # $fp, 0x8012 +/* 08F470 8008E870 27DE6478 */ addiu $fp, %lo(gTrackSelectViewPortHalfY) # addiu $fp, $fp, 0x6478 /* 08F474 8008E874 00055843 */ sra $t3, $a1, 1 /* 08F478 8008E878 AFCB0000 */ sw $t3, ($fp) /* 08F47C 8008E87C 3C0C8012 */ lui $t4, %hi(D_801269C8) # $t4, 0x8012 diff --git a/asm/non_matchings/menu/renderTrackSelect.s b/asm/non_matchings/menu/renderTrackSelect.s index 3d84f0ed..c3f453c5 100644 --- a/asm/non_matchings/menu/renderTrackSelect.s +++ b/asm/non_matchings/menu/renderTrackSelect.s @@ -7,9 +7,9 @@ glabel D_800E84D8 .text glabel renderTrackSelect /* 090654 8008FA54 27BDFF80 */ addiu $sp, $sp, -0x80 -/* 090658 8008FA58 3C0E8012 */ lui $t6, %hi(D_80126478) # $t6, 0x8012 +/* 090658 8008FA58 3C0E8012 */ lui $t6, %hi(gTrackSelectViewPortHalfY) # $t6, 0x8012 /* 09065C 8008FA5C 3C188000 */ lui $t8, %hi(osTvType) # $t8, 0x8000 -/* 090660 8008FA60 8DCE6478 */ lw $t6, %lo(D_80126478)($t6) +/* 090660 8008FA60 8DCE6478 */ lw $t6, %lo(gTrackSelectViewPortHalfY)($t6) /* 090664 8008FA64 8F180300 */ lw $t8, %lo(osTvType)($t8) /* 090668 8008FA68 AFB50038 */ sw $s5, 0x38($sp) /* 09066C 8008FA6C AFB40034 */ sw $s4, 0x34($sp) diff --git a/asm/non_matchings/save_data/func_800756D4.s b/asm/non_matchings/save_data/func_800756D4.s deleted file mode 100644 index f19b872e..00000000 --- a/asm/non_matchings/save_data/func_800756D4.s +++ /dev/null @@ -1,147 +0,0 @@ -.rdata -glabel D_800E77CC -.asciz "DKRACING-GHOSTS" -glabel D_800E77DC -.word 0 - -.text -glabel func_800756D4 -/* 0762D4 800756D4 27BDFF90 */ addiu $sp, $sp, -0x70 -/* 0762D8 800756D8 AFBF003C */ sw $ra, 0x3c($sp) -/* 0762DC 800756DC AFBE0038 */ sw $fp, 0x38($sp) -/* 0762E0 800756E0 AFB70034 */ sw $s7, 0x34($sp) -/* 0762E4 800756E4 AFB60030 */ sw $s6, 0x30($sp) -/* 0762E8 800756E8 00A0B025 */ move $s6, $a1 -/* 0762EC 800756EC 00E0B825 */ move $s7, $a3 -/* 0762F0 800756F0 00C0F025 */ move $fp, $a2 -/* 0762F4 800756F4 AFB5002C */ sw $s5, 0x2c($sp) -/* 0762F8 800756F8 AFB40028 */ sw $s4, 0x28($sp) -/* 0762FC 800756FC AFB30024 */ sw $s3, 0x24($sp) -/* 076300 80075700 AFB20020 */ sw $s2, 0x20($sp) -/* 076304 80075704 AFB1001C */ sw $s1, 0x1c($sp) -/* 076308 80075708 AFB00018 */ sw $s0, 0x18($sp) -/* 07630C 8007570C 0C01D637 */ jal get_si_device_status -/* 076310 80075710 AFA40070 */ sw $a0, 0x70($sp) -/* 076314 80075714 10400007 */ beqz $v0, .L80075734 -/* 076318 80075718 AFA20064 */ sw $v0, 0x64($sp) -/* 07631C 8007571C 8FA40070 */ lw $a0, 0x70($sp) -/* 076320 80075720 0C01D6BB */ jal start_reading_controller_data -/* 076324 80075724 00000000 */ nop -/* 076328 80075728 8FA20064 */ lw $v0, 0x64($sp) -/* 07632C 8007572C 10000060 */ b .L800758B0 -/* 076330 80075730 8FBF003C */ lw $ra, 0x3c($sp) -.L80075734: -/* 076334 80075734 8FB50080 */ lw $s5, 0x80($sp) -/* 076338 80075738 00008025 */ move $s0, $zero -/* 07633C 8007573C 02C02025 */ move $a0, $s6 -/* 076340 80075740 02E02825 */ move $a1, $s7 -/* 076344 80075744 03C03025 */ move $a2, $fp -/* 076348 80075748 240700FF */ li $a3, 255 -/* 07634C 8007574C 02A01825 */ move $v1, $s5 -.L80075750: -/* 076350 80075750 A0870000 */ sb $a3, ($a0) -/* 076354 80075754 A4600000 */ sh $zero, ($v1) -/* 076358 80075758 90620001 */ lbu $v0, 1($v1) -/* 07635C 8007575C 26100001 */ addiu $s0, $s0, 1 -/* 076360 80075760 2A010006 */ slti $at, $s0, 6 -/* 076364 80075764 A0A20000 */ sb $v0, ($a1) -/* 076368 80075768 24840001 */ addiu $a0, $a0, 1 -/* 07636C 8007576C 24630002 */ addiu $v1, $v1, 2 -/* 076370 80075770 24A50001 */ addiu $a1, $a1, 1 -/* 076374 80075774 24C60001 */ addiu $a2, $a2, 1 -/* 076378 80075778 1420FFF5 */ bnez $at, .L80075750 -/* 07637C 8007577C A0C2FFFF */ sb $v0, -1($a2) -/* 076380 80075780 8FA40070 */ lw $a0, 0x70($sp) -/* 076384 80075784 3C05800E */ lui $a1, %hi(D_800E77CC) # $a1, 0x800e -/* 076388 80075788 3C06800E */ lui $a2, %hi(D_800E77DC) # $a2, 0x800e -/* 07638C 8007578C 24C677DC */ addiu $a2, %lo(D_800E77DC) # addiu $a2, $a2, 0x77dc -/* 076390 80075790 24A577CC */ addiu $a1, %lo(D_800E77CC) # addiu $a1, $a1, 0x77cc -/* 076394 80075794 0C01D93A */ jal get_file_number -/* 076398 80075798 27A7005C */ addiu $a3, $sp, 0x5c -/* 07639C 8007579C 1440003E */ bnez $v0, .L80075898 -/* 0763A0 800757A0 AFA20064 */ sw $v0, 0x64($sp) -/* 0763A4 800757A4 8FA40070 */ lw $a0, 0x70($sp) -/* 0763A8 800757A8 8FA5005C */ lw $a1, 0x5c($sp) -/* 0763AC 800757AC 0C01DA49 */ jal get_file_size -/* 0763B0 800757B0 27A60058 */ addiu $a2, $sp, 0x58 -/* 0763B4 800757B4 14400038 */ bnez $v0, .L80075898 -/* 0763B8 800757B8 AFA20064 */ sw $v0, 0x64($sp) -/* 0763BC 800757BC 8FA40058 */ lw $a0, 0x58($sp) -/* 0763C0 800757C0 240500FF */ li $a1, 255 -/* 0763C4 800757C4 0C01C327 */ jal allocate_from_main_pool_safe -/* 0763C8 800757C8 24840100 */ addiu $a0, $a0, 0x100 -/* 0763CC 800757CC 8FA40070 */ lw $a0, 0x70($sp) -/* 0763D0 800757D0 8FA5005C */ lw $a1, 0x5c($sp) -/* 0763D4 800757D4 8FA70058 */ lw $a3, 0x58($sp) -/* 0763D8 800757D8 00409025 */ move $s2, $v0 -/* 0763DC 800757DC 0C01D984 */ jal read_data_from_controller_pak -/* 0763E0 800757E0 00403025 */ move $a2, $v0 -/* 0763E4 800757E4 1440002A */ bnez $v0, .L80075890 -/* 0763E8 800757E8 AFA20064 */ sw $v0, 0x64($sp) -/* 0763EC 800757EC 00008025 */ move $s0, $zero -/* 0763F0 800757F0 26510004 */ addiu $s1, $s2, 4 -/* 0763F4 800757F4 24140006 */ li $s4, 6 -/* 0763F8 800757F8 241300FF */ li $s3, 255 -.L800757FC: -/* 0763FC 800757FC 922E0000 */ lbu $t6, ($s1) -/* 076400 80075800 00000000 */ nop -/* 076404 80075804 126E001F */ beq $s3, $t6, .L80075884 -/* 076408 80075808 00000000 */ nop -/* 07640C 8007580C 862F0002 */ lh $t7, 2($s1) -/* 076410 80075810 0C01D293 */ jal calculate_ghost_header_checksum -/* 076414 80075814 01F22021 */ addu $a0, $t7, $s2 -/* 076418 80075818 86380002 */ lh $t8, 2($s1) -/* 07641C 8007581C 00000000 */ nop -/* 076420 80075820 0312C821 */ addu $t9, $t8, $s2 -/* 076424 80075824 87280000 */ lh $t0, ($t9) -/* 076428 80075828 00000000 */ nop -/* 07642C 8007582C 10480003 */ beq $v0, $t0, .L8007583C -/* 076430 80075830 24090009 */ li $t1, 9 -/* 076434 80075834 10000016 */ b .L80075890 -/* 076438 80075838 AFA90064 */ sw $t1, 0x64($sp) -.L8007583C: -/* 07643C 8007583C 922A0000 */ lbu $t2, ($s1) -/* 076440 80075840 02D05821 */ addu $t3, $s6, $s0 -/* 076444 80075844 A16A0000 */ sb $t2, ($t3) -/* 076448 80075848 922C0001 */ lbu $t4, 1($s1) -/* 07644C 8007584C 03D06821 */ addu $t5, $fp, $s0 -/* 076450 80075850 A1AC0000 */ sb $t4, ($t5) -/* 076454 80075854 862E0002 */ lh $t6, 2($s1) -/* 076458 80075858 02F0C821 */ addu $t9, $s7, $s0 -/* 07645C 8007585C 01D27821 */ addu $t7, $t6, $s2 -/* 076460 80075860 91F80002 */ lbu $t8, 2($t7) -/* 076464 80075864 00105840 */ sll $t3, $s0, 1 -/* 076468 80075868 A3380000 */ sb $t8, ($t9) -/* 07646C 8007586C 86280002 */ lh $t0, 2($s1) -/* 076470 80075870 02AB6021 */ addu $t4, $s5, $t3 -/* 076474 80075874 01124821 */ addu $t1, $t0, $s2 -/* 076478 80075878 852A0004 */ lh $t2, 4($t1) -/* 07647C 8007587C 00000000 */ nop -/* 076480 80075880 A58A0000 */ sh $t2, ($t4) -.L80075884: -/* 076484 80075884 26100001 */ addiu $s0, $s0, 1 -/* 076488 80075888 1614FFDC */ bne $s0, $s4, .L800757FC -/* 07648C 8007588C 26310004 */ addiu $s1, $s1, 4 -.L80075890: -/* 076490 80075890 0C01C450 */ jal free_from_memory_pool -/* 076494 80075894 02402025 */ move $a0, $s2 -.L80075898: -/* 076498 80075898 8FA40070 */ lw $a0, 0x70($sp) -/* 07649C 8007589C 0C01D6BB */ jal start_reading_controller_data -/* 0764A0 800758A0 00000000 */ nop -/* 0764A4 800758A4 8FA20064 */ lw $v0, 0x64($sp) -/* 0764A8 800758A8 00000000 */ nop -/* 0764AC 800758AC 8FBF003C */ lw $ra, 0x3c($sp) -.L800758B0: -/* 0764B0 800758B0 8FB00018 */ lw $s0, 0x18($sp) -/* 0764B4 800758B4 8FB1001C */ lw $s1, 0x1c($sp) -/* 0764B8 800758B8 8FB20020 */ lw $s2, 0x20($sp) -/* 0764BC 800758BC 8FB30024 */ lw $s3, 0x24($sp) -/* 0764C0 800758C0 8FB40028 */ lw $s4, 0x28($sp) -/* 0764C4 800758C4 8FB5002C */ lw $s5, 0x2c($sp) -/* 0764C8 800758C8 8FB60030 */ lw $s6, 0x30($sp) -/* 0764CC 800758CC 8FB70034 */ lw $s7, 0x34($sp) -/* 0764D0 800758D0 8FBE0038 */ lw $fp, 0x38($sp) -/* 0764D4 800758D4 03E00008 */ jr $ra -/* 0764D8 800758D8 27BD0070 */ addiu $sp, $sp, 0x70 - diff --git a/asm/non_matchings/unknown_032760/obj_loop_parkwarden.s b/asm/non_matchings/unknown_032760/obj_loop_parkwarden.s deleted file mode 100644 index 1e178050..00000000 --- a/asm/non_matchings/unknown_032760/obj_loop_parkwarden.s +++ /dev/null @@ -1,1746 +0,0 @@ -.late_rodata -glabel D_800E6060 -.double 1.2 -glabel D_800E6068 -.double 300.0 -glabel jpt_800E6070 -.word L80039758, L80039758, L80039758, L80039758, L80039768, L80039768, L80039758, L80039768, L80039768, L80039758, L80039758, L80039768, L80039768, L80039768, L80039758, L80039768, L80039768, L80039768, L80039768, L80039758, L80039758 -glabel jpt_800E60C4 -.word L800397BC, L80039978, L80039AE0, L80039BB8, L80039DC4, L80039ED8, L80039FDC, L80039FDC, L8003A5AC, L8003A0CC, L8003A1E8, L8003A5AC, L8003A5AC, L8003A5AC, L8003A268, L8003A5AC, L8003A5AC, L8003A5AC, L8003A5AC, L8003A3FC, L8003A4F4, L8003A5AC, L8003A5AC, L8003A5AC, L8003A5AC, L8003A5AC, L8003A5AC, L8003A5AC, L8003A5AC, L8003A574 -.word 0 # Padding -glabel D_800E6140 -.double 77.0 -glabel D_800E6148 -.float 0.1 -.word 0 # Padding -glabel D_800E6150 -.double 1.1 -glabel D_800E6158 -.double 2.2 - -.text -glabel obj_loop_parkwarden -/* 039F30 80039330 27BDFF50 */ addiu $sp, $sp, -0xb0 -/* 039F34 80039334 44853000 */ mtc1 $a1, $f6 -/* 039F38 80039338 AFBF002C */ sw $ra, 0x2c($sp) -/* 039F3C 8003933C AFB10028 */ sw $s1, 0x28($sp) -/* 039F40 80039340 AFB00024 */ sw $s0, 0x24($sp) -/* 039F44 80039344 AFA500B4 */ sw $a1, 0xb4($sp) -/* 039F48 80039348 A3A0006B */ sb $zero, 0x6b($sp) -/* 039F4C 8003934C 3C0F8000 */ lui $t7, %hi(osTvType) # $t7, 0x8000 -/* 039F50 80039350 468030A0 */ cvt.s.w $f2, $f6 -/* 039F54 80039354 C4840010 */ lwc1 $f4, 0x10($a0) -/* 039F58 80039358 8DEF0300 */ lw $t7, %lo(osTvType)($t7) -/* 039F5C 8003935C 00808025 */ move $s0, $a0 -/* 039F60 80039360 46001006 */ mov.s $f0, $f2 -/* 039F64 80039364 15E00007 */ bnez $t7, .L80039384 -/* 039F68 80039368 E7A40098 */ swc1 $f4, 0x98($sp) -/* 039F6C 8003936C 3C01800E */ lui $at, %hi(D_800E6060 + 4) # $at, 0x800e -/* 039F70 80039370 C42B6060 */ lwc1 $f11, %lo(D_800E6060)($at) -/* 039F74 80039374 C42A6064 */ lwc1 $f10, %lo(D_800E6060 + 4)($at) -/* 039F78 80039378 46001221 */ cvt.d.s $f8, $f2 -/* 039F7C 8003937C 462A4402 */ mul.d $f16, $f8, $f10 -/* 039F80 80039380 46208020 */ cvt.s.d $f0, $f16 -.L80039384: -/* 039F84 80039384 8E110064 */ lw $s1, 0x64($s0) -/* 039F88 80039388 E7A20048 */ swc1 $f2, 0x48($sp) -/* 039F8C 8003938C 0C01AF6C */ jal get_current_level_header -/* 039F90 80039390 E7A000AC */ swc1 $f0, 0xac($sp) -/* 039F94 80039394 AFA20064 */ sw $v0, 0x64($sp) -/* 039F98 80039398 86180018 */ lh $t8, 0x18($s0) -/* 039F9C 8003939C AE000074 */ sw $zero, 0x74($s0) -/* 039FA0 800393A0 1700000D */ bnez $t8, .L800393D8 -/* 039FA4 800393A4 00000000 */ nop -/* 039FA8 800393A8 C6240004 */ lwc1 $f4, 4($s1) -/* 039FAC 800393AC 3C013FF0 */ li $at, 0x3FF00000 # 1.875000 -/* 039FB0 800393B0 44819800 */ mtc1 $at, $f19 -/* 039FB4 800393B4 44809000 */ mtc1 $zero, $f18 -/* 039FB8 800393B8 460021A1 */ cvt.d.s $f6, $f4 -/* 039FBC 800393BC 4626903C */ c.lt.d $f18, $f6 -/* 039FC0 800393C0 00000000 */ nop -/* 039FC4 800393C4 45000004 */ bc1f .L800393D8 -/* 039FC8 800393C8 00000000 */ nop -/* 039FCC 800393CC 44800000 */ mtc1 $zero, $f0 -/* 039FD0 800393D0 00000000 */ nop -/* 039FD4 800393D4 E6200004 */ swc1 $f0, 4($s1) -.L800393D8: -/* 039FD8 800393D8 44800000 */ mtc1 $zero, $f0 -/* 039FDC 800393DC 00002025 */ move $a0, $zero -/* 039FE0 800393E0 E7A0009C */ swc1 $f0, 0x9c($sp) -/* 039FE4 800393E4 E600001C */ swc1 $f0, 0x1c($s0) -/* 039FE8 800393E8 0C006EB2 */ jal get_racer_object -/* 039FEC 800393EC E6000024 */ swc1 $f0, 0x24($s0) -/* 039FF0 800393F0 00401825 */ move $v1, $v0 -/* 039FF4 800393F4 10400019 */ beqz $v0, .L8003945C -/* 039FF8 800393F8 AFA20090 */ sw $v0, 0x90($sp) -/* 039FFC 800393FC 8C420064 */ lw $v0, 0x64($v0) -/* 03A000 80039400 3C014248 */ li $at, 0x42480000 # 50.000000 -/* 03A004 80039404 44817000 */ mtc1 $at, $f14 -/* 03A008 80039408 C44A0038 */ lwc1 $f10, 0x38($v0) -/* 03A00C 8003940C C468000C */ lwc1 $f8, 0xc($v1) -/* 03A010 80039410 460E5402 */ mul.s $f16, $f10, $f14 -/* 03A014 80039414 C44A0040 */ lwc1 $f10, 0x40($v0) -/* 03A018 80039418 C612000C */ lwc1 $f18, 0xc($s0) -/* 03A01C 8003941C C4660014 */ lwc1 $f6, 0x14($v1) -/* 03A020 80039420 46104101 */ sub.s $f4, $f8, $f16 -/* 03A024 80039424 460E5202 */ mul.s $f8, $f10, $f14 -/* 03A028 80039428 46122001 */ sub.s $f0, $f4, $f18 -/* 03A02C 8003942C C6040014 */ lwc1 $f4, 0x14($s0) -/* 03A030 80039430 E7A000A8 */ swc1 $f0, 0xa8($sp) -/* 03A034 80039434 46083401 */ sub.s $f16, $f6, $f8 -/* 03A038 80039438 AFA30090 */ sw $v1, 0x90($sp) -/* 03A03C 8003943C 46000482 */ mul.s $f18, $f0, $f0 -/* 03A040 80039440 46048081 */ sub.s $f2, $f16, $f4 -/* 03A044 80039444 AFA20070 */ sw $v0, 0x70($sp) -/* 03A048 80039448 E7A200A0 */ swc1 $f2, 0xa0($sp) -/* 03A04C 8003944C 46021282 */ mul.s $f10, $f2, $f2 -/* 03A050 80039450 0C0326B4 */ jal sqrtf -/* 03A054 80039454 460A9300 */ add.s $f12, $f18, $f10 -/* 03A058 80039458 E7A0009C */ swc1 $f0, 0x9c($sp) -.L8003945C: -/* 03A05C 8003945C 0C01A955 */ jal get_buttons_pressed_from_player -/* 03A060 80039460 00002025 */ move $a0, $zero -/* 03A064 80039464 8E190078 */ lw $t9, 0x78($s0) -/* 03A068 80039468 00003025 */ move $a2, $zero -/* 03A06C 8003946C 1720003C */ bnez $t9, .L80039560 -/* 03A070 80039470 3C01800E */ lui $at, %hi(D_800E6068 + 4) # $at, 0x800e -/* 03A074 80039474 C7A6009C */ lwc1 $f6, 0x9c($sp) -/* 03A078 80039478 C4316068 */ lwc1 $f17, %lo(D_800E6068)($at) -/* 03A07C 8003947C C430606C */ lwc1 $f16, %lo(D_800E6068 + 4)($at) -/* 03A080 80039480 46003221 */ cvt.d.s $f8, $f6 -/* 03A084 80039484 4630403C */ c.lt.d $f8, $f16 -/* 03A088 80039488 00000000 */ nop -/* 03A08C 8003948C 45000034 */ bc1f .L80039560 -/* 03A090 80039490 00000000 */ nop -/* 03A094 80039494 8E03004C */ lw $v1, 0x4c($s0) -/* 03A098 80039498 8FAA0090 */ lw $t2, 0x90($sp) -/* 03A09C 8003949C 84680014 */ lh $t0, 0x14($v1) -/* 03A0A0 800394A0 304C2000 */ andi $t4, $v0, 0x2000 -/* 03A0A4 800394A4 31090008 */ andi $t1, $t0, 8 -/* 03A0A8 800394A8 11200005 */ beqz $t1, .L800394C0 -/* 03A0AC 800394AC 00000000 */ nop -/* 03A0B0 800394B0 8C6B0000 */ lw $t3, ($v1) -/* 03A0B4 800394B4 00000000 */ nop -/* 03A0B8 800394B8 114B0003 */ beq $t2, $t3, .L800394C8 -/* 03A0BC 800394BC 304D2000 */ andi $t5, $v0, 0x2000 -.L800394C0: -/* 03A0C0 800394C0 11800027 */ beqz $t4, .L80039560 -/* 03A0C4 800394C4 304D2000 */ andi $t5, $v0, 0x2000 -.L800394C8: -/* 03A0C8 800394C8 11A00008 */ beqz $t5, .L800394EC -/* 03A0CC 800394CC 8FAE0090 */ lw $t6, 0x90($sp) -/* 03A0D0 800394D0 8FA40090 */ lw $a0, 0x90($sp) -/* 03A0D4 800394D4 8FA50070 */ lw $a1, 0x70($sp) -/* 03A0D8 800394D8 0C015A4C */ jal play_char_horn_sound -/* 03A0DC 800394DC AFA60084 */ sw $a2, 0x84($sp) -/* 03A0E0 800394E0 8FA60084 */ lw $a2, 0x84($sp) -/* 03A0E4 800394E4 00000000 */ nop -/* 03A0E8 800394E8 8FAE0090 */ lw $t6, 0x90($sp) -.L800394EC: -/* 03A0EC 800394EC C612000C */ lwc1 $f18, 0xc($s0) -/* 03A0F0 800394F0 C6060014 */ lwc1 $f6, 0x14($s0) -/* 03A0F4 800394F4 C5C4000C */ lwc1 $f4, 0xc($t6) -/* 03A0F8 800394F8 C5CA0014 */ lwc1 $f10, 0x14($t6) -/* 03A0FC 800394FC AFA60084 */ sw $a2, 0x84($sp) -/* 03A100 80039500 46122301 */ sub.s $f12, $f4, $f18 -/* 03A104 80039504 0C01C1D4 */ jal arctan2_f -/* 03A108 80039508 46065381 */ sub.s $f14, $f10, $f6 -/* 03A10C 8003950C 8FAF0090 */ lw $t7, 0x90($sp) -/* 03A110 80039510 34018001 */ li $at, 32769 -/* 03A114 80039514 85F80000 */ lh $t8, ($t7) -/* 03A118 80039518 8FA60084 */ lw $a2, 0x84($sp) -/* 03A11C 8003951C 3319FFFF */ andi $t9, $t8, 0xffff -/* 03A120 80039520 00591823 */ subu $v1, $v0, $t9 -/* 03A124 80039524 0061082A */ slt $at, $v1, $at -/* 03A128 80039528 14200004 */ bnez $at, .L8003953C -/* 03A12C 8003952C 28618000 */ slti $at, $v1, -0x8000 -/* 03A130 80039530 3C03FFFF */ lui $v1, (0xFFFF0001 >> 16) # lui $v1, 0xffff -/* 03A134 80039534 34630001 */ ori $v1, (0xFFFF0001 & 0xFFFF) # ori $v1, $v1, 1 -/* 03A138 80039538 28618000 */ slti $at, $v1, -0x8000 -.L8003953C: -/* 03A13C 8003953C 10200003 */ beqz $at, .L8003954C -/* 03A140 80039540 2861E001 */ slti $at, $v1, -0x1fff -/* 03A144 80039544 3403FFFF */ li $v1, 65535 -/* 03A148 80039548 2861E001 */ slti $at, $v1, -0x1fff -.L8003954C: -/* 03A14C 8003954C 14200004 */ bnez $at, .L80039560 -/* 03A150 80039550 28612000 */ slti $at, $v1, 0x2000 -/* 03A154 80039554 10200002 */ beqz $at, .L80039560 -/* 03A158 80039558 00000000 */ nop -/* 03A15C 8003955C 24060001 */ li $a2, 1 -.L80039560: -/* 03A160 80039560 8E09004C */ lw $t1, 0x4c($s0) -/* 03A164 80039564 24080001 */ li $t0, 1 -/* 03A168 80039568 A5280014 */ sh $t0, 0x14($t1) -/* 03A16C 8003956C 0C014862 */ jal func_80052188 -/* 03A170 80039570 AFA60084 */ sw $a2, 0x84($sp) -/* 03A174 80039574 8FA60084 */ lw $a2, 0x84($sp) -/* 03A178 80039578 14400003 */ bnez $v0, .L80039588 -/* 03A17C 8003957C 00000000 */ nop -/* 03A180 80039580 10C00047 */ beqz $a2, .L800396A0 -/* 03A184 80039584 00000000 */ nop -.L80039588: -/* 03A188 80039588 8E020078 */ lw $v0, 0x78($s0) -/* 03A18C 8003958C 2401001F */ li $at, 31 -/* 03A190 80039590 10400003 */ beqz $v0, .L800395A0 -/* 03A194 80039594 00000000 */ nop -/* 03A198 80039598 14410041 */ bne $v0, $at, .L800396A0 -/* 03A19C 8003959C 00000000 */ nop -.L800395A0: -/* 03A1A0 800395A0 0C0004BA */ jal func_800012E8 -/* 03A1A4 800395A4 AFA60084 */ sw $a2, 0x84($sp) -/* 03A1A8 800395A8 0C0002F8 */ jal set_music_player_voice_limit -/* 03A1AC 800395AC 24040018 */ li $a0, 24 -/* 03A1B0 800395B0 0C0002CD */ jal play_music -/* 03A1B4 800395B4 24040020 */ li $a0, 32 -/* 03A1B8 800395B8 8FAA0090 */ lw $t2, 0x90($sp) -/* 03A1BC 800395BC 8FA60084 */ lw $a2, 0x84($sp) -/* 03A1C0 800395C0 11400006 */ beqz $t2, .L800395DC -/* 03A1C4 800395C4 01402025 */ move $a0, $t2 -/* 03A1C8 800395C8 0C001AB2 */ jal func_80006AC8 -/* 03A1CC 800395CC AFA60084 */ sw $a2, 0x84($sp) -/* 03A1D0 800395D0 8FAB0070 */ lw $t3, 0x70($sp) -/* 03A1D4 800395D4 8FA60084 */ lw $a2, 0x84($sp) -/* 03A1D8 800395D8 AD600118 */ sw $zero, 0x118($t3) -.L800395DC: -/* 03A1DC 800395DC 0C002050 */ jal func_80008140 -/* 03A1E0 800395E0 AFA60084 */ sw $a2, 0x84($sp) -/* 03A1E4 800395E4 8FA20090 */ lw $v0, 0x90($sp) -/* 03A1E8 800395E8 C610000C */ lwc1 $f16, 0xc($s0) -/* 03A1EC 800395EC C6120014 */ lwc1 $f18, 0x14($s0) -/* 03A1F0 800395F0 C448000C */ lwc1 $f8, 0xc($v0) -/* 03A1F4 800395F4 C4440014 */ lwc1 $f4, 0x14($v0) -/* 03A1F8 800395F8 46104301 */ sub.s $f12, $f8, $f16 -/* 03A1FC 800395FC 0C01C1D4 */ jal arctan2_f -/* 03A200 80039600 46122381 */ sub.s $f14, $f4, $f18 -/* 03A204 80039604 8FAC0090 */ lw $t4, 0x90($sp) -/* 03A208 80039608 34018001 */ li $at, 32769 -/* 03A20C 8003960C 858D0000 */ lh $t5, ($t4) -/* 03A210 80039610 8FA60084 */ lw $a2, 0x84($sp) -/* 03A214 80039614 31AEFFFF */ andi $t6, $t5, 0xffff -/* 03A218 80039618 004E1823 */ subu $v1, $v0, $t6 -/* 03A21C 8003961C 0061082A */ slt $at, $v1, $at -/* 03A220 80039620 14200001 */ bnez $at, .L80039628 -/* 03A224 80039624 00002025 */ move $a0, $zero -.L80039628: -/* 03A228 80039628 10C00004 */ beqz $a2, .L8003963C -/* 03A22C 8003962C 26250020 */ addiu $a1, $s1, 0x20 -/* 03A230 80039630 240F0001 */ li $t7, 1 -/* 03A234 80039634 10000005 */ b .L8003964C -/* 03A238 80039638 AE0F0078 */ sw $t7, 0x78($s0) -.L8003963C: -/* 03A23C 8003963C 2418000A */ li $t8, 10 -/* 03A240 80039640 AE180078 */ sw $t8, 0x78($s0) -/* 03A244 80039644 24190001 */ li $t9, 1 -/* 03A248 80039648 A3B9006B */ sb $t9, 0x6b($sp) -.L8003964C: -/* 03A24C 8003964C 26280012 */ addiu $t0, $s1, 0x12 -/* 03A250 80039650 26290013 */ addiu $t1, $s1, 0x13 -/* 03A254 80039654 AFA90014 */ sw $t1, 0x14($sp) -/* 03A258 80039658 AFA80010 */ sw $t0, 0x10($sp) -/* 03A25C 8003965C 26260022 */ addiu $a2, $s1, 0x22 -/* 03A260 80039660 0C00C1D4 */ jal func_80030750 -/* 03A264 80039664 26270011 */ addiu $a3, $s1, 0x11 -/* 03A268 80039668 240A03C0 */ li $t2, 960 -/* 03A26C 8003966C 240B044C */ li $t3, 1100 -/* 03A270 80039670 240C00F0 */ li $t4, 240 -/* 03A274 80039674 AFAC0018 */ sw $t4, 0x18($sp) -/* 03A278 80039678 AFAB0014 */ sw $t3, 0x14($sp) -/* 03A27C 8003967C AFAA0010 */ sw $t2, 0x10($sp) -/* 03A280 80039680 00002025 */ move $a0, $zero -/* 03A284 80039684 240500FF */ li $a1, 255 -/* 03A288 80039688 00003025 */ move $a2, $zero -/* 03A28C 8003968C 0C00C378 */ jal func_80030DE0 -/* 03A290 80039690 24070078 */ li $a3, 120 -/* 03A294 80039694 44805000 */ mtc1 $zero, $f10 -/* 03A298 80039698 00000000 */ nop -/* 03A29C 8003969C E62A0004 */ swc1 $f10, 4($s1) -.L800396A0: -/* 03A2A0 800396A0 8E020078 */ lw $v0, 0x78($s0) -/* 03A2A4 800396A4 2401001E */ li $at, 30 -/* 03A2A8 800396A8 1040000E */ beqz $v0, .L800396E4 -/* 03A2AC 800396AC 24070003 */ li $a3, 3 -/* 03A2B0 800396B0 1041000B */ beq $v0, $at, .L800396E0 -/* 03A2B4 800396B4 24010014 */ li $at, 20 -/* 03A2B8 800396B8 10410009 */ beq $v0, $at, .L800396E0 -/* 03A2BC 800396BC 24010015 */ li $at, 21 -/* 03A2C0 800396C0 10410008 */ beq $v0, $at, .L800396E4 -/* 03A2C4 800396C4 24070003 */ li $a3, 3 -/* 03A2C8 800396C8 0C0168EC */ jal func_8005A3B0 -/* 03A2CC 800396CC 00000000 */ nop -/* 03A2D0 800396D0 0C02AC65 */ jal func_800AB194 -/* 03A2D4 800396D4 24040003 */ li $a0, 3 -/* 03A2D8 800396D8 8E020078 */ lw $v0, 0x78($s0) -/* 03A2DC 800396DC 00000000 */ nop -.L800396E0: -/* 03A2E0 800396E0 24070003 */ li $a3, 3 -.L800396E4: -/* 03A2E4 800396E4 10470007 */ beq $v0, $a3, .L80039704 -/* 03A2E8 800396E8 24010004 */ li $at, 4 -/* 03A2EC 800396EC 10410005 */ beq $v0, $at, .L80039704 -/* 03A2F0 800396F0 24010005 */ li $at, 5 -/* 03A2F4 800396F4 10410003 */ beq $v0, $at, .L80039704 -/* 03A2F8 800396F8 24010006 */ li $at, 6 -/* 03A2FC 800396FC 14410006 */ bne $v0, $at, .L80039718 -/* 03A300 80039700 00000000 */ nop -.L80039704: -/* 03A304 80039704 0C0273FB */ jal func_8009CFEC -/* 03A308 80039708 00002025 */ move $a0, $zero -/* 03A30C 8003970C 24070003 */ li $a3, 3 -/* 03A310 80039710 10000005 */ b .L80039728 -/* 03A314 80039714 AFA2007C */ sw $v0, 0x7c($sp) -.L80039718: -/* 03A318 80039718 0C0273DA */ jal func_8009CF68 -/* 03A31C 8003971C 00002025 */ move $a0, $zero -/* 03A320 80039720 24070003 */ li $a3, 3 -/* 03A324 80039724 AFA0007C */ sw $zero, 0x7c($sp) -.L80039728: -/* 03A328 80039728 8E020078 */ lw $v0, 0x78($s0) -/* 03A32C 8003972C 00000000 */ nop -/* 03A330 80039730 244DFFFF */ addiu $t5, $v0, -1 -/* 03A334 80039734 2DA10015 */ sltiu $at, $t5, 0x15 -/* 03A338 80039738 1020000B */ beqz $at, .L80039768 -/* 03A33C 8003973C 000D6880 */ sll $t5, $t5, 2 -/* 03A340 80039740 3C01800E */ lui $at, %hi(jpt_800E6070) # $at, 0x800e -/* 03A344 80039744 002D0821 */ addu $at, $at, $t5 -/* 03A348 80039748 8C2D6070 */ lw $t5, %lo(jpt_800E6070)($at) -/* 03A34C 8003974C 00000000 */ nop -/* 03A350 80039750 01A00008 */ jr $t5 -/* 03A354 80039754 00000000 */ nop -glabel L80039758 -/* 03A358 80039758 0C01BCE2 */ jal func_8006F388 -/* 03A35C 8003975C 24040001 */ li $a0, 1 -/* 03A360 80039760 8E020078 */ lw $v0, 0x78($s0) -/* 03A364 80039764 24070003 */ li $a3, 3 -.L80039768: -glabel L80039768 -/* 03A368 80039768 1040000A */ beqz $v0, .L80039794 -/* 03A36C 8003976C 244FFFFF */ addiu $t7, $v0, -1 -/* 03A370 80039770 8FAE007C */ lw $t6, 0x7c($sp) -/* 03A374 80039774 28410004 */ slti $at, $v0, 4 -/* 03A378 80039778 11C00006 */ beqz $t6, .L80039794 -/* 03A37C 8003977C 244FFFFF */ addiu $t7, $v0, -1 -/* 03A380 80039780 10200004 */ beqz $at, .L80039794 -/* 03A384 80039784 244FFFFF */ addiu $t7, $v0, -1 -/* 03A388 80039788 24020004 */ li $v0, 4 -/* 03A38C 8003978C AE020078 */ sw $v0, 0x78($s0) -/* 03A390 80039790 244FFFFF */ addiu $t7, $v0, -1 -.L80039794: -/* 03A394 80039794 2DE1001E */ sltiu $at, $t7, 0x1e -/* 03A398 80039798 10200384 */ beqz $at, .L8003A5AC -/* 03A39C 8003979C 24030004 */ li $v1, 4 -/* 03A3A0 800397A0 000F7880 */ sll $t7, $t7, 2 -/* 03A3A4 800397A4 3C01800E */ lui $at, %hi(jpt_800E60C4) # $at, 0x800e -/* 03A3A8 800397A8 002F0821 */ addu $at, $at, $t7 -/* 03A3AC 800397AC 8C2F60C4 */ lw $t7, %lo(jpt_800E60C4)($at) -/* 03A3B0 800397B0 00000000 */ nop -/* 03A3B4 800397B4 01E00008 */ jr $t7 -/* 03A3B8 800397B8 00000000 */ nop -glabel L800397BC -/* 03A3BC 800397BC C7A2009C */ lwc1 $f2, 0x9c($sp) -/* 03A3C0 800397C0 3C014059 */ li $at, 0x40590000 # 3.390625 -/* 03A3C4 800397C4 44813800 */ mtc1 $at, $f7 -/* 03A3C8 800397C8 44803000 */ mtc1 $zero, $f6 -/* 03A3CC 800397CC 46001021 */ cvt.d.s $f0, $f2 -/* 03A3D0 800397D0 4626003C */ c.lt.d $f0, $f6 -/* 03A3D4 800397D4 A200003B */ sb $zero, 0x3b($s0) -/* 03A3D8 800397D8 241800FF */ li $t8, 255 -/* 03A3DC 800397DC 45000008 */ bc1f .L80039800 -/* 03A3E0 800397E0 A238000D */ sb $t8, 0xd($s1) -/* 03A3E4 800397E4 E7A10040 */ swc1 $f1, 0x40($sp) -/* 03A3E8 800397E8 0C0168F0 */ jal func_8005A3C0 -/* 03A3EC 800397EC E7A00044 */ swc1 $f0, 0x44($sp) -/* 03A3F0 800397F0 C7A10040 */ lwc1 $f1, 0x40($sp) -/* 03A3F4 800397F4 C7A00044 */ lwc1 $f0, 0x44($sp) -/* 03A3F8 800397F8 C7A2009C */ lwc1 $f2, 0x9c($sp) -/* 03A3FC 800397FC 00000000 */ nop -.L80039800: -/* 03A400 80039800 3C014024 */ li $at, 0x40240000 # 2.562500 -/* 03A404 80039804 44814800 */ mtc1 $at, $f9 -/* 03A408 80039808 44804000 */ mtc1 $zero, $f8 -/* 03A40C 8003980C C7B000A8 */ lwc1 $f16, 0xa8($sp) -/* 03A410 80039810 4620403C */ c.lt.d $f8, $f0 -/* 03A414 80039814 C7A400A0 */ lwc1 $f4, 0xa0($sp) -/* 03A418 80039818 45000046 */ bc1f .L80039934 -/* 03A41C 8003981C 240A0002 */ li $t2, 2 -/* 03A420 80039820 00000000 */ nop -/* 03A424 80039824 46028303 */ div.s $f12, $f16, $f2 -/* 03A428 80039828 0C01C1D4 */ jal arctan2_f -/* 03A42C 8003982C 46022383 */ div.s $f14, $f4, $f2 -/* 03A430 80039830 86050000 */ lh $a1, ($s0) -/* 03A434 80039834 34018000 */ li $at, 32768 -/* 03A438 80039838 30B9FFFF */ andi $t9, $a1, 0xffff -/* 03A43C 8003983C 00591823 */ subu $v1, $v0, $t9 -/* 03A440 80039840 00611821 */ addu $v1, $v1, $at -/* 03A444 80039844 34018001 */ li $at, 32769 -/* 03A448 80039848 0061082A */ slt $at, $v1, $at -/* 03A44C 8003984C 14200003 */ bnez $at, .L8003985C -/* 03A450 80039850 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 03A454 80039854 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 03A458 80039858 00611821 */ addu $v1, $v1, $at -.L8003985C: -/* 03A45C 8003985C 28618000 */ slti $at, $v1, -0x8000 -/* 03A460 80039860 10200002 */ beqz $at, .L8003986C -/* 03A464 80039864 3401FFFF */ li $at, 65535 -/* 03A468 80039868 00611821 */ addu $v1, $v1, $at -.L8003986C: -/* 03A46C 8003986C 18600004 */ blez $v1, .L80039880 -/* 03A470 80039870 28610010 */ slti $at, $v1, 0x10 -/* 03A474 80039874 10200003 */ beqz $at, .L80039884 -/* 03A478 80039878 3C01C000 */ lui $at, 0xc000 -/* 03A47C 8003987C 24030010 */ li $v1, 16 -.L80039880: -/* 03A480 80039880 3C01C000 */ li $at, 0xC0000000 # -2.000000 -.L80039884: -/* 03A484 80039884 00034103 */ sra $t0, $v1, 4 -/* 03A488 80039888 44811000 */ mtc1 $at, $f2 -/* 03A48C 8003988C 00A84821 */ addu $t1, $a1, $t0 -/* 03A490 80039890 28610801 */ slti $at, $v1, 0x801 -/* 03A494 80039894 10200003 */ beqz $at, .L800398A4 -/* 03A498 80039898 A6090000 */ sh $t1, ($s0) -/* 03A49C 8003989C 2861F800 */ slti $at, $v1, -0x800 -/* 03A4A0 800398A0 10200003 */ beqz $at, .L800398B0 -.L800398A4: -/* 03A4A4 800398A4 3C01BF00 */ li $at, 0xBF000000 # -0.500000 -/* 03A4A8 800398A8 44811000 */ mtc1 $at, $f2 -/* 03A4AC 800398AC 00000000 */ nop -.L800398B0: -/* 03A4B0 800398B0 C6200014 */ lwc1 $f0, 0x14($s1) -/* 03A4B4 800398B4 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 03A4B8 800398B8 46001281 */ sub.s $f10, $f2, $f0 -/* 03A4BC 800398BC 44816800 */ mtc1 $at, $f13 -/* 03A4C0 800398C0 44806000 */ mtc1 $zero, $f12 -/* 03A4C4 800398C4 460051A1 */ cvt.d.s $f6, $f10 -/* 03A4C8 800398C8 462C3202 */ mul.d $f8, $f6, $f12 -/* 03A4CC 800398CC 460004A1 */ cvt.d.s $f18, $f0 -/* 03A4D0 800398D0 46289400 */ add.d $f16, $f18, $f8 -/* 03A4D4 800398D4 46208120 */ cvt.s.d $f4, $f16 -/* 03A4D8 800398D8 E6240014 */ swc1 $f4, 0x14($s1) -/* 03A4DC 800398DC 86040000 */ lh $a0, ($s0) -/* 03A4E0 800398E0 0C01C1F1 */ jal sins_f -/* 03A4E4 800398E4 00000000 */ nop -/* 03A4E8 800398E8 C62A0014 */ lwc1 $f10, 0x14($s1) -/* 03A4EC 800398EC 86040000 */ lh $a0, ($s0) -/* 03A4F0 800398F0 460A0182 */ mul.s $f6, $f0, $f10 -/* 03A4F4 800398F4 0C01C1FE */ jal coss_f -/* 03A4F8 800398F8 E606001C */ swc1 $f6, 0x1c($s0) -/* 03A4FC 800398FC C6320014 */ lwc1 $f18, 0x14($s1) -/* 03A500 80039900 C7A200AC */ lwc1 $f2, 0xac($sp) -/* 03A504 80039904 46120202 */ mul.s $f8, $f0, $f18 -/* 03A508 80039908 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 03A50C 8003990C 44812000 */ mtc1 $at, $f4 -/* 03A510 80039910 E6080024 */ swc1 $f8, 0x24($s0) -/* 03A514 80039914 C6300014 */ lwc1 $f16, 0x14($s1) -/* 03A518 80039918 C6320004 */ lwc1 $f18, 4($s1) -/* 03A51C 8003991C 46048282 */ mul.s $f10, $f16, $f4 -/* 03A520 80039920 00000000 */ nop -/* 03A524 80039924 46025182 */ mul.s $f6, $f10, $f2 -/* 03A528 80039928 46069201 */ sub.s $f8, $f18, $f6 -/* 03A52C 8003992C 10000004 */ b .L80039940 -/* 03A530 80039930 E6280004 */ swc1 $f8, 4($s1) -.L80039934: -/* 03A534 80039934 AE0A0078 */ sw $t2, 0x78($s0) -/* 03A538 80039938 C7A200AC */ lwc1 $f2, 0xac($sp) -/* 03A53C 8003993C 00000000 */ nop -.L80039940: -/* 03A540 80039940 C610001C */ lwc1 $f16, 0x1c($s0) -/* 03A544 80039944 C60A0020 */ lwc1 $f10, 0x20($s0) -/* 03A548 80039948 46028102 */ mul.s $f4, $f16, $f2 -/* 03A54C 8003994C C6060024 */ lwc1 $f6, 0x24($s0) -/* 03A550 80039950 02002025 */ move $a0, $s0 -/* 03A554 80039954 46025482 */ mul.s $f18, $f10, $f2 -/* 03A558 80039958 44052000 */ mfc1 $a1, $f4 -/* 03A55C 8003995C 46023202 */ mul.s $f8, $f6, $f2 -/* 03A560 80039960 44069000 */ mfc1 $a2, $f18 -/* 03A564 80039964 44074000 */ mfc1 $a3, $f8 -/* 03A568 80039968 0C00455C */ jal func_80011570 -/* 03A56C 8003996C 00000000 */ nop -/* 03A570 80039970 10000464 */ b .L8003AB04 -/* 03A574 80039974 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L80039978 -/* 03A578 80039978 0C0168F0 */ jal func_8005A3C0 -/* 03A57C 8003997C 00000000 */ nop -/* 03A580 80039980 C7AE00AC */ lwc1 $f14, 0xac($sp) -/* 03A584 80039984 A200003B */ sb $zero, 0x3b($s0) -/* 03A588 80039988 C6300004 */ lwc1 $f16, 4($s1) -/* 03A58C 8003998C 46007021 */ cvt.d.s $f0, $f14 -/* 03A590 80039990 46200280 */ add.d $f10, $f0, $f0 -/* 03A594 80039994 34018000 */ li $at, 32768 -/* 03A598 80039998 46008121 */ cvt.d.s $f4, $f16 -/* 03A59C 8003999C 462A2480 */ add.d $f18, $f4, $f10 -/* 03A5A0 800399A0 24070003 */ li $a3, 3 -/* 03A5A4 800399A4 462091A0 */ cvt.s.d $f6, $f18 -/* 03A5A8 800399A8 E6260004 */ swc1 $f6, 4($s1) -/* 03A5AC 800399AC 8FAB0090 */ lw $t3, 0x90($sp) -/* 03A5B0 800399B0 86050000 */ lh $a1, ($s0) -/* 03A5B4 800399B4 856C0000 */ lh $t4, ($t3) -/* 03A5B8 800399B8 30ADFFFF */ andi $t5, $a1, 0xffff -/* 03A5BC 800399BC 018D1823 */ subu $v1, $t4, $t5 -/* 03A5C0 800399C0 00611821 */ addu $v1, $v1, $at -/* 03A5C4 800399C4 34018001 */ li $at, 32769 -/* 03A5C8 800399C8 0061082A */ slt $at, $v1, $at -/* 03A5CC 800399CC 14200003 */ bnez $at, .L800399DC -/* 03A5D0 800399D0 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 03A5D4 800399D4 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 03A5D8 800399D8 00611821 */ addu $v1, $v1, $at -.L800399DC: -/* 03A5DC 800399DC 28618000 */ slti $at, $v1, -0x8000 -/* 03A5E0 800399E0 10200002 */ beqz $at, .L800399EC -/* 03A5E4 800399E4 3401FFFF */ li $at, 65535 -/* 03A5E8 800399E8 00611821 */ addu $v1, $v1, $at -.L800399EC: -/* 03A5EC 800399EC 18600004 */ blez $v1, .L80039A00 -/* 03A5F0 800399F0 28610010 */ slti $at, $v1, 0x10 -/* 03A5F4 800399F4 10200003 */ beqz $at, .L80039A04 -/* 03A5F8 800399F8 000370C3 */ sra $t6, $v1, 3 -/* 03A5FC 800399FC 24030010 */ li $v1, 16 -.L80039A00: -/* 03A600 80039A00 000370C3 */ sra $t6, $v1, 3 -.L80039A04: -/* 03A604 80039A04 00AE7821 */ addu $t7, $a1, $t6 -/* 03A608 80039A08 28610400 */ slti $at, $v1, 0x400 -/* 03A60C 80039A0C 10200017 */ beqz $at, .L80039A6C -/* 03A610 80039A10 A60F0000 */ sh $t7, ($s0) -/* 03A614 80039A14 2861FC01 */ slti $at, $v1, -0x3ff -/* 03A618 80039A18 14200014 */ bnez $at, .L80039A6C -/* 03A61C 80039A1C 00000000 */ nop -/* 03A620 80039A20 C7A8009C */ lwc1 $f8, 0x9c($sp) -/* 03A624 80039A24 3C014000 */ li $at, 0x40000000 # 2.000000 -/* 03A628 80039A28 44812800 */ mtc1 $at, $f5 -/* 03A62C 80039A2C 44802000 */ mtc1 $zero, $f4 -/* 03A630 80039A30 46004421 */ cvt.d.s $f16, $f8 -/* 03A634 80039A34 4624803C */ c.lt.d $f16, $f4 -/* 03A638 80039A38 3C048012 */ lui $a0, %hi(D_8011D4E2) # $a0, 0x8012 -/* 03A63C 80039A3C 4500000B */ bc1f .L80039A6C -/* 03A640 80039A40 00000000 */ nop -/* 03A644 80039A44 44805000 */ mtc1 $zero, $f10 -/* 03A648 80039A48 AE070078 */ sw $a3, 0x78($s0) -/* 03A64C 80039A4C E62A0004 */ swc1 $f10, 4($s1) -/* 03A650 80039A50 9484D4E2 */ lhu $a0, %lo(D_8011D4E2)($a0) -/* 03A654 80039A54 0C00EB0F */ jal play_taj_voice_clip -/* 03A658 80039A58 24050001 */ li $a1, 1 -/* 03A65C 80039A5C 2418010F */ li $t8, 271 -/* 03A660 80039A60 3C018012 */ lui $at, %hi(D_8011D4E2) # $at, 0x8012 -/* 03A664 80039A64 C7AE00AC */ lwc1 $f14, 0xac($sp) -/* 03A668 80039A68 A438D4E2 */ sh $t8, %lo(D_8011D4E2)($at) -.L80039A6C: -/* 03A66C 80039A6C C7B200A8 */ lwc1 $f18, 0xa8($sp) -/* 03A670 80039A70 3C013FC0 */ li $at, 0x3FC00000 # 1.500000 -/* 03A674 80039A74 44816800 */ mtc1 $at, $f13 -/* 03A678 80039A78 44806000 */ mtc1 $zero, $f12 -/* 03A67C 80039A7C 460091A1 */ cvt.d.s $f6, $f18 -/* 03A680 80039A80 462C3202 */ mul.d $f8, $f6, $f12 -/* 03A684 80039A84 44808000 */ mtc1 $zero, $f16 -/* 03A688 80039A88 02002025 */ move $a0, $s0 -/* 03A68C 80039A8C E6100020 */ swc1 $f16, 0x20($s0) -/* 03A690 80039A90 46204020 */ cvt.s.d $f0, $f8 -/* 03A694 80039A94 44804000 */ mtc1 $zero, $f8 -/* 03A698 80039A98 E600001C */ swc1 $f0, 0x1c($s0) -/* 03A69C 80039A9C C7A400A0 */ lwc1 $f4, 0xa0($sp) -/* 03A6A0 80039AA0 00000000 */ nop -/* 03A6A4 80039AA4 460022A1 */ cvt.d.s $f10, $f4 -/* 03A6A8 80039AA8 462C5482 */ mul.d $f18, $f10, $f12 -/* 03A6AC 80039AAC 00000000 */ nop -/* 03A6B0 80039AB0 460E0182 */ mul.s $f6, $f0, $f14 -/* 03A6B4 80039AB4 462090A0 */ cvt.s.d $f2, $f18 -/* 03A6B8 80039AB8 E6020024 */ swc1 $f2, 0x24($s0) -/* 03A6BC 80039ABC 460E4402 */ mul.s $f16, $f8, $f14 -/* 03A6C0 80039AC0 44053000 */ mfc1 $a1, $f6 -/* 03A6C4 80039AC4 460E1102 */ mul.s $f4, $f2, $f14 -/* 03A6C8 80039AC8 44068000 */ mfc1 $a2, $f16 -/* 03A6CC 80039ACC 44072000 */ mfc1 $a3, $f4 -/* 03A6D0 80039AD0 0C00455C */ jal func_80011570 -/* 03A6D4 80039AD4 00000000 */ nop -/* 03A6D8 80039AD8 1000040A */ b .L8003AB04 -/* 03A6DC 80039ADC C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L80039AE0 -/* 03A6E0 80039AE0 24190001 */ li $t9, 1 -/* 03A6E4 80039AE4 44805000 */ mtc1 $zero, $f10 -/* 03A6E8 80039AE8 A219003B */ sb $t9, 0x3b($s0) -/* 03A6EC 80039AEC E62A0014 */ swc1 $f10, 0x14($s1) -/* 03A6F0 80039AF0 C7A800AC */ lwc1 $f8, 0xac($sp) -/* 03A6F4 80039AF4 C6320004 */ lwc1 $f18, 4($s1) -/* 03A6F8 80039AF8 46004421 */ cvt.d.s $f16, $f8 -/* 03A6FC 80039AFC 460091A1 */ cvt.d.s $f6, $f18 -/* 03A700 80039B00 46303100 */ add.d $f4, $f6, $f16 -/* 03A704 80039B04 3C01800E */ lui $at, %hi(D_800E6140) # $at, 0x800e -/* 03A708 80039B08 462022A0 */ cvt.s.d $f10, $f4 -/* 03A70C 80039B0C E62A0004 */ swc1 $f10, 4($s1) -/* 03A710 80039B10 C6280004 */ lwc1 $f8, 4($s1) -/* 03A714 80039B14 C4326144 */ lwc1 $f18, %lo(D_800E6140 + 4)($at) -/* 03A718 80039B18 C4336140 */ lwc1 $f19, %lo(D_800E6140)($at) -/* 03A71C 80039B1C 460041A1 */ cvt.d.s $f6, $f8 -/* 03A720 80039B20 4626903C */ c.lt.d $f18, $f6 -/* 03A724 80039B24 3C01429A */ li $at, 0x429A0000 # 77.000000 -/* 03A728 80039B28 45000008 */ bc1f .L80039B4C -/* 03A72C 80039B2C 8FA80090 */ lw $t0, 0x90($sp) -/* 03A730 80039B30 44818000 */ mtc1 $at, $f16 -/* 03A734 80039B34 3C01BF80 */ li $at, 0xBF800000 # -1.000000 -/* 03A738 80039B38 44812000 */ mtc1 $at, $f4 -/* 03A73C 80039B3C E6300004 */ swc1 $f16, 4($s1) -/* 03A740 80039B40 E6240018 */ swc1 $f4, 0x18($s1) -/* 03A744 80039B44 AE030078 */ sw $v1, 0x78($s0) -/* 03A748 80039B48 8FA80090 */ lw $t0, 0x90($sp) -.L80039B4C: -/* 03A74C 80039B4C 86050000 */ lh $a1, ($s0) -/* 03A750 80039B50 85090000 */ lh $t1, ($t0) -/* 03A754 80039B54 30AAFFFF */ andi $t2, $a1, 0xffff -/* 03A758 80039B58 34018000 */ li $at, 32768 -/* 03A75C 80039B5C 012A1823 */ subu $v1, $t1, $t2 -/* 03A760 80039B60 00611821 */ addu $v1, $v1, $at -/* 03A764 80039B64 34018001 */ li $at, 32769 -/* 03A768 80039B68 0061082A */ slt $at, $v1, $at -/* 03A76C 80039B6C 14200003 */ bnez $at, .L80039B7C -/* 03A770 80039B70 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 03A774 80039B74 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 03A778 80039B78 00611821 */ addu $v1, $v1, $at -.L80039B7C: -/* 03A77C 80039B7C 28618000 */ slti $at, $v1, -0x8000 -/* 03A780 80039B80 10200002 */ beqz $at, .L80039B8C -/* 03A784 80039B84 3401FFFF */ li $at, 65535 -/* 03A788 80039B88 00611821 */ addu $v1, $v1, $at -.L80039B8C: -/* 03A78C 80039B8C 18600004 */ blez $v1, .L80039BA0 -/* 03A790 80039B90 28610010 */ slti $at, $v1, 0x10 -/* 03A794 80039B94 10200003 */ beqz $at, .L80039BA4 -/* 03A798 80039B98 00035903 */ sra $t3, $v1, 4 -/* 03A79C 80039B9C 24030010 */ li $v1, 16 -.L80039BA0: -/* 03A7A0 80039BA0 00035903 */ sra $t3, $v1, 4 -.L80039BA4: -/* 03A7A4 80039BA4 00AB6021 */ addu $t4, $a1, $t3 -/* 03A7A8 80039BA8 0C0168F0 */ jal func_8005A3C0 -/* 03A7AC 80039BAC A60C0000 */ sh $t4, ($s0) -/* 03A7B0 80039BB0 100003D4 */ b .L8003AB04 -/* 03A7B4 80039BB4 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L80039BB8 -/* 03A7B8 80039BB8 A203003B */ sb $v1, 0x3b($s0) -/* 03A7BC 80039BBC C62A0004 */ lwc1 $f10, 4($s1) -/* 03A7C0 80039BC0 C7B200AC */ lwc1 $f18, 0xac($sp) -/* 03A7C4 80039BC4 46005221 */ cvt.d.s $f8, $f10 -/* 03A7C8 80039BC8 460091A1 */ cvt.d.s $f6, $f18 -/* 03A7CC 80039BCC 46264400 */ add.d $f16, $f8, $f6 -/* 03A7D0 80039BD0 46208120 */ cvt.s.d $f4, $f16 -/* 03A7D4 80039BD4 0C0168F0 */ jal func_8005A3C0 -/* 03A7D8 80039BD8 E6240004 */ swc1 $f4, 4($s1) -/* 03A7DC 80039BDC 8FA6007C */ lw $a2, 0x7c($sp) -/* 03A7E0 80039BE0 24070003 */ li $a3, 3 -/* 03A7E4 80039BE4 10C70002 */ beq $a2, $a3, .L80039BF0 -/* 03A7E8 80039BE8 24010004 */ li $at, 4 -/* 03A7EC 80039BEC 14C1002E */ bne $a2, $at, .L80039CA8 -.L80039BF0: -/* 03A7F0 80039BF0 24010004 */ li $at, 4 -/* 03A7F4 80039BF4 14C10004 */ bne $a2, $at, .L80039C08 -/* 03A7F8 80039BF8 240F0002 */ li $t7, 2 -/* 03A7FC 80039BFC 240D0008 */ li $t5, 8 -/* 03A800 80039C00 10000003 */ b .L80039C10 -/* 03A804 80039C04 AE0D0078 */ sw $t5, 0x78($s0) -.L80039C08: -/* 03A808 80039C08 240E0007 */ li $t6, 7 -/* 03A80C 80039C0C AE0E0078 */ sw $t6, 0x78($s0) -.L80039C10: -/* 03A810 80039C10 3C01800E */ lui $at, %hi(D_800E6148) # $at, 0x800e -/* 03A814 80039C14 C42A6148 */ lwc1 $f10, %lo(D_800E6148)($at) -/* 03A818 80039C18 24040111 */ li $a0, 273 -/* 03A81C 80039C1C E62A0004 */ swc1 $f10, 4($s1) -/* 03A820 80039C20 A20F003B */ sb $t7, 0x3b($s0) -/* 03A824 80039C24 A620001C */ sh $zero, 0x1c($s1) -/* 03A828 80039C28 0C00EB0F */ jal play_taj_voice_clip -/* 03A82C 80039C2C 24050001 */ li $a1, 1 -/* 03A830 80039C30 86380020 */ lh $t8, 0x20($s1) -/* 03A834 80039C34 92250011 */ lbu $a1, 0x11($s1) -/* 03A838 80039C38 92260012 */ lbu $a2, 0x12($s1) -/* 03A83C 80039C3C 92270013 */ lbu $a3, 0x13($s1) -/* 03A840 80039C40 AFB80010 */ sw $t8, 0x10($sp) -/* 03A844 80039C44 86390022 */ lh $t9, 0x22($s1) -/* 03A848 80039C48 240800B4 */ li $t0, 180 -/* 03A84C 80039C4C AFA80018 */ sw $t0, 0x18($sp) -/* 03A850 80039C50 00002025 */ move $a0, $zero -/* 03A854 80039C54 0C00C378 */ jal func_80030DE0 -/* 03A858 80039C58 AFB90014 */ sw $t9, 0x14($sp) -/* 03A85C 80039C5C 8FA90064 */ lw $t1, 0x64($sp) -/* 03A860 80039C60 00000000 */ nop -/* 03A864 80039C64 912400B3 */ lbu $a0, 0xb3($t1) -/* 03A868 80039C68 0C0002F8 */ jal set_music_player_voice_limit -/* 03A86C 80039C6C 00000000 */ nop -/* 03A870 80039C70 8FAA0064 */ lw $t2, 0x64($sp) -/* 03A874 80039C74 00000000 */ nop -/* 03A878 80039C78 91440052 */ lbu $a0, 0x52($t2) -/* 03A87C 80039C7C 0C0002CD */ jal play_music -/* 03A880 80039C80 00000000 */ nop -/* 03A884 80039C84 8FAB0064 */ lw $t3, 0x64($sp) -/* 03A888 80039C88 00000000 */ nop -/* 03A88C 80039C8C 95640054 */ lhu $a0, 0x54($t3) -/* 03A890 80039C90 0C00041D */ jal func_80001074 -/* 03A894 80039C94 00000000 */ nop -/* 03A898 80039C98 0C00205A */ jal func_80008168 -/* 03A89C 80039C9C 00000000 */ nop -/* 03A8A0 80039CA0 8FA6007C */ lw $a2, 0x7c($sp) -/* 03A8A4 80039CA4 00000000 */ nop -.L80039CA8: -/* 03A8A8 80039CA8 30CC0080 */ andi $t4, $a2, 0x80 -/* 03A8AC 80039CAC 1180001C */ beqz $t4, .L80039D20 -/* 03A8B0 80039CB0 3C038012 */ lui $v1, %hi(D_8011D4E0) # $v1, 0x8012 -/* 03A8B4 80039CB4 2463D4E0 */ addiu $v1, %lo(D_8011D4E0) # addiu $v1, $v1, -0x2b20 -/* 03A8B8 80039CB8 30CD007F */ andi $t5, $a2, 0x7f -/* 03A8BC 80039CBC 8FAE0070 */ lw $t6, 0x70($sp) -/* 03A8C0 80039CC0 A06D0000 */ sb $t5, ($v1) -/* 03A8C4 80039CC4 80780000 */ lb $t8, ($v1) -/* 03A8C8 80039CC8 81CF01D6 */ lb $t7, 0x1d6($t6) -/* 03A8CC 80039CCC 24190005 */ li $t9, 5 -/* 03A8D0 80039CD0 11F8000F */ beq $t7, $t8, .L80039D10 -/* 03A8D4 80039CD4 24040062 */ li $a0, 98 -/* 03A8D8 80039CD8 44809000 */ mtc1 $zero, $f18 -/* 03A8DC 80039CDC AE190078 */ sw $t9, 0x78($s0) -/* 03A8E0 80039CE0 E6320004 */ swc1 $f18, 4($s1) -/* 03A8E4 80039CE4 8FA80070 */ lw $t0, 0x70($sp) -/* 03A8E8 80039CE8 24050001 */ li $a1, 1 -/* 03A8EC 80039CEC 810401D6 */ lb $a0, 0x1d6($t0) -/* 03A8F0 80039CF0 00000000 */ nop -/* 03A8F4 80039CF4 24840235 */ addiu $a0, $a0, 0x235 -/* 03A8F8 80039CF8 3089FFFF */ andi $t1, $a0, 0xffff -/* 03A8FC 80039CFC 0C00EB0F */ jal play_taj_voice_clip -/* 03A900 80039D00 01202025 */ move $a0, $t1 -/* 03A904 80039D04 8FA6007C */ lw $a2, 0x7c($sp) -/* 03A908 80039D08 10000005 */ b .L80039D20 -/* 03A90C 80039D0C 00000000 */ nop -.L80039D10: -/* 03A910 80039D10 0C0274CF */ jal set_menu_id_if_option_equal -/* 03A914 80039D14 24050002 */ li $a1, 2 -/* 03A918 80039D18 8FA6007C */ lw $a2, 0x7c($sp) -/* 03A91C 80039D1C 00000000 */ nop -.L80039D20: -/* 03A920 80039D20 3C038012 */ lui $v1, %hi(D_8011D4E0) # $v1, 0x8012 -/* 03A924 80039D24 30CA0040 */ andi $t2, $a2, 0x40 -/* 03A928 80039D28 11400024 */ beqz $t2, .L80039DBC -/* 03A92C 80039D2C 2463D4E0 */ addiu $v1, %lo(D_8011D4E0) # addiu $v1, $v1, -0x2b20 -/* 03A930 80039D30 30CB000F */ andi $t3, $a2, 0xf -/* 03A934 80039D34 8FAC0070 */ lw $t4, 0x70($sp) -/* 03A938 80039D38 A06B0000 */ sb $t3, ($v1) -/* 03A93C 80039D3C 80620000 */ lb $v0, ($v1) -/* 03A940 80039D40 818D01D6 */ lb $t5, 0x1d6($t4) -/* 03A944 80039D44 2408000F */ li $t0, 15 -/* 03A948 80039D48 11A20011 */ beq $t5, $v0, .L80039D90 -/* 03A94C 80039D4C 3C04800E */ lui $a0, %hi(gGameSelectTextElemsNoAdv2+157) # $a0, 0x800e -/* 03A950 80039D50 344E0080 */ ori $t6, $v0, 0x80 -/* 03A954 80039D54 44804000 */ mtc1 $zero, $f8 -/* 03A958 80039D58 A06E0000 */ sb $t6, ($v1) -/* 03A95C 80039D5C 240F0005 */ li $t7, 5 -/* 03A960 80039D60 AE0F0078 */ sw $t7, 0x78($s0) -/* 03A964 80039D64 E6280004 */ swc1 $f8, 4($s1) -/* 03A968 80039D68 8FB80070 */ lw $t8, 0x70($sp) -/* 03A96C 80039D6C 24050001 */ li $a1, 1 -/* 03A970 80039D70 830401D6 */ lb $a0, 0x1d6($t8) -/* 03A974 80039D74 00000000 */ nop -/* 03A978 80039D78 24840235 */ addiu $a0, %lo(gGameSelectTextElemsNoAdv2+157) # addiu $a0, $a0, 0x235 -/* 03A97C 80039D7C 3099FFFF */ andi $t9, $a0, 0xffff -/* 03A980 80039D80 0C00EB0F */ jal play_taj_voice_clip -/* 03A984 80039D84 03202025 */ move $a0, $t9 -/* 03A988 80039D88 1000035E */ b .L8003AB04 -/* 03A98C 80039D8C C7B00098 */ lwc1 $f16, 0x98($sp) -.L80039D90: -/* 03A990 80039D90 AE080078 */ sw $t0, 0x78($s0) -/* 03A994 80039D94 24090001 */ li $t1, 1 -/* 03A998 80039D98 A3A9006B */ sb $t1, 0x6b($sp) -/* 03A99C 80039D9C 0C030076 */ jal func_800C01D8 -/* 03A9A0 80039DA0 2484C978 */ addiu $a0, $a0, -0x3688 -/* 03A9A4 80039DA4 24040110 */ li $a0, 272 -/* 03A9A8 80039DA8 0C00EB0F */ jal play_taj_voice_clip -/* 03A9AC 80039DAC 24050001 */ li $a1, 1 -/* 03A9B0 80039DB0 44803000 */ mtc1 $zero, $f6 -/* 03A9B4 80039DB4 00000000 */ nop -/* 03A9B8 80039DB8 E6260004 */ swc1 $f6, 4($s1) -.L80039DBC: -/* 03A9BC 80039DBC 10000351 */ b .L8003AB04 -/* 03A9C0 80039DC0 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L80039DC4 -/* 03A9C4 80039DC4 240A0005 */ li $t2, 5 -/* 03A9C8 80039DC8 0C0168F0 */ jal func_8005A3C0 -/* 03A9CC 80039DCC A20A003B */ sb $t2, 0x3b($s0) -/* 03A9D0 80039DD0 C7B000AC */ lwc1 $f16, 0xac($sp) -/* 03A9D4 80039DD4 C6240004 */ lwc1 $f4, 4($s1) -/* 03A9D8 80039DD8 46008021 */ cvt.d.s $f0, $f16 -/* 03A9DC 80039DDC 46200480 */ add.d $f18, $f0, $f0 -/* 03A9E0 80039DE0 3C014039 */ li $at, 0x40390000 # 2.890625 -/* 03A9E4 80039DE4 460022A1 */ cvt.d.s $f10, $f4 -/* 03A9E8 80039DE8 46325200 */ add.d $f8, $f10, $f18 -/* 03A9EC 80039DEC 44802000 */ mtc1 $zero, $f4 -/* 03A9F0 80039DF0 462041A0 */ cvt.s.d $f6, $f8 -/* 03A9F4 80039DF4 44812800 */ mtc1 $at, $f5 -/* 03A9F8 80039DF8 E6260004 */ swc1 $f6, 4($s1) -/* 03A9FC 80039DFC C6300004 */ lwc1 $f16, 4($s1) -/* 03AA00 80039E00 3C014049 */ li $at, 0x40490000 # 3.140625 -/* 03AA04 80039E04 460080A1 */ cvt.d.s $f2, $f16 -/* 03AA08 80039E08 4622203C */ c.lt.d $f4, $f2 -/* 03AA0C 80039E0C 44819800 */ mtc1 $at, $f19 -/* 03AA10 80039E10 44809000 */ mtc1 $zero, $f18 -/* 03AA14 80039E14 45000006 */ bc1f .L80039E30 -/* 03AA18 80039E18 3C01404E */ li $at, 0x404E0000 # 3.218750 -/* 03AA1C 80039E1C 240B000B */ li $t3, 11 -/* 03AA20 80039E20 AE0B0074 */ sw $t3, 0x74($s0) -/* 03AA24 80039E24 C62A0004 */ lwc1 $f10, 4($s1) -/* 03AA28 80039E28 00000000 */ nop -/* 03AA2C 80039E2C 460050A1 */ cvt.d.s $f2, $f10 -.L80039E30: -/* 03AA30 80039E30 4622903C */ c.lt.d $f18, $f2 -/* 03AA34 80039E34 44813800 */ mtc1 $at, $f7 -/* 03AA38 80039E38 44803000 */ mtc1 $zero, $f6 -/* 03AA3C 80039E3C 45000005 */ bc1f .L80039E54 -/* 03AA40 80039E40 3C014270 */ li $at, 0x42700000 # 60.000000 -/* 03AA44 80039E44 AE000074 */ sw $zero, 0x74($s0) -/* 03AA48 80039E48 C6280004 */ lwc1 $f8, 4($s1) -/* 03AA4C 80039E4C 00000000 */ nop -/* 03AA50 80039E50 460040A1 */ cvt.d.s $f2, $f8 -.L80039E54: -/* 03AA54 80039E54 4622303C */ c.lt.d $f6, $f2 -/* 03AA58 80039E58 00000000 */ nop -/* 03AA5C 80039E5C 4500001C */ bc1f .L80039ED0 -/* 03AA60 80039E60 00000000 */ nop -/* 03AA64 80039E64 44818000 */ mtc1 $at, $f16 -/* 03AA68 80039E68 8FA60070 */ lw $a2, 0x70($sp) -/* 03AA6C 80039E6C E6300004 */ swc1 $f16, 4($s1) -/* 03AA70 80039E70 8FA300B4 */ lw $v1, 0xb4($sp) -/* 03AA74 80039E74 90C201F7 */ lbu $v0, 0x1f7($a2) -/* 03AA78 80039E78 00036100 */ sll $t4, $v1, 4 -/* 03AA7C 80039E7C 0182082A */ slt $at, $t4, $v0 -/* 03AA80 80039E80 10200004 */ beqz $at, .L80039E94 -/* 03AA84 80039E84 3C038012 */ lui $v1, %hi(D_8011D4E0) # $v1, 0x8012 -/* 03AA88 80039E88 004C6823 */ subu $t5, $v0, $t4 -/* 03AA8C 80039E8C 1000031C */ b .L8003AB00 -/* 03AA90 80039E90 A0CD01F7 */ sb $t5, 0x1f7($a2) -.L80039E94: -/* 03AA94 80039E94 2463D4E0 */ addiu $v1, %lo(D_8011D4E0) # addiu $v1, $v1, -0x2b20 -/* 03AA98 80039E98 A0C001F7 */ sb $zero, 0x1f7($a2) -/* 03AA9C 80039E9C 80650000 */ lb $a1, ($v1) -/* 03AAA0 80039EA0 8FA40090 */ lw $a0, 0x90($sp) -/* 03AAA4 80039EA4 30AE000F */ andi $t6, $a1, 0xf -/* 03AAA8 80039EA8 0C00387B */ jal func_8000E1EC -/* 03AAAC 80039EAC 01C02825 */ move $a1, $t6 -/* 03AAB0 80039EB0 240F0006 */ li $t7, 6 -/* 03AAB4 80039EB4 AE0F0078 */ sw $t7, 0x78($s0) -/* 03AAB8 80039EB8 24040113 */ li $a0, 275 -/* 03AABC 80039EBC 0C000741 */ jal play_sound_global -/* 03AAC0 80039EC0 00002825 */ move $a1, $zero -/* 03AAC4 80039EC4 3C04800E */ lui $a0, %hi(D_800DC970) # $a0, 0x800e -/* 03AAC8 80039EC8 0C030076 */ jal func_800C01D8 -/* 03AACC 80039ECC 2484C970 */ addiu $a0, %lo(D_800DC970) # addiu $a0, $a0, -0x3690 -.L80039ED0: -/* 03AAD0 80039ED0 1000030C */ b .L8003AB04 -/* 03AAD4 80039ED4 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L80039ED8 -/* 03AAD8 80039ED8 0C0168F0 */ jal func_8005A3C0 -/* 03AADC 80039EDC 00000000 */ nop -/* 03AAE0 80039EE0 8FB80090 */ lw $t8, 0x90($sp) -/* 03AAE4 80039EE4 240900FF */ li $t1, 255 -/* 03AAE8 80039EE8 1300003A */ beqz $t8, .L80039FD4 -/* 03AAEC 80039EEC 00000000 */ nop -/* 03AAF0 80039EF0 C62C0004 */ lwc1 $f12, 4($s1) -/* 03AAF4 80039EF4 44802000 */ mtc1 $zero, $f4 -/* 03AAF8 80039EF8 3C014020 */ li $at, 0x40200000 # 2.500000 -/* 03AAFC 80039EFC 460C2032 */ c.eq.s $f4, $f12 -/* 03AB00 80039F00 240C00FF */ li $t4, 255 -/* 03AB04 80039F04 45010008 */ bc1t .L80039F28 -/* 03AB08 80039F08 8FA600B4 */ lw $a2, 0xb4($sp) -/* 03AB0C 80039F0C 44819800 */ mtc1 $at, $f19 -/* 03AB10 80039F10 44809000 */ mtc1 $zero, $f18 -/* 03AB14 80039F14 460062A1 */ cvt.d.s $f10, $f12 -/* 03AB18 80039F18 46325200 */ add.d $f8, $f10, $f18 -/* 03AB1C 80039F1C 462041A0 */ cvt.s.d $f6, $f8 -/* 03AB20 80039F20 E6260004 */ swc1 $f6, 4($s1) -/* 03AB24 80039F24 8FA600B4 */ lw $a2, 0xb4($sp) -.L80039F28: -/* 03AB28 80039F28 8FA30070 */ lw $v1, 0x70($sp) -/* 03AB2C 80039F2C 28C10005 */ slti $at, $a2, 5 -/* 03AB30 80039F30 14200002 */ bnez $at, .L80039F3C -/* 03AB34 80039F34 00000000 */ nop -/* 03AB38 80039F38 24060004 */ li $a2, 4 -.L80039F3C: -/* 03AB3C 80039F3C 906201F7 */ lbu $v0, 0x1f7($v1) -/* 03AB40 80039F40 00064140 */ sll $t0, $a2, 5 -/* 03AB44 80039F44 01285023 */ subu $t2, $t1, $t0 -/* 03AB48 80039F48 004A082A */ slt $at, $v0, $t2 -/* 03AB4C 80039F4C 10200003 */ beqz $at, .L80039F5C -/* 03AB50 80039F50 00485821 */ addu $t3, $v0, $t0 -/* 03AB54 80039F54 100002EA */ b .L8003AB00 -/* 03AB58 80039F58 A06B01F7 */ sb $t3, 0x1f7($v1) -.L80039F5C: -/* 03AB5C 80039F5C A06C01F7 */ sb $t4, 0x1f7($v1) -/* 03AB60 80039F60 C6300004 */ lwc1 $f16, 4($s1) -/* 03AB64 80039F64 44800800 */ mtc1 $zero, $f1 -/* 03AB68 80039F68 44800000 */ mtc1 $zero, $f0 -/* 03AB6C 80039F6C 46008121 */ cvt.d.s $f4, $f16 -/* 03AB70 80039F70 46240032 */ c.eq.d $f0, $f4 -/* 03AB74 80039F74 3C038012 */ lui $v1, %hi(D_8011D4E0) # $v1, 0x8012 -/* 03AB78 80039F78 45000016 */ bc1f .L80039FD4 -/* 03AB7C 80039F7C 2463D4E0 */ addiu $v1, %lo(D_8011D4E0) # addiu $v1, $v1, -0x2b20 -/* 03AB80 80039F80 806D0000 */ lb $t5, ($v1) -/* 03AB84 80039F84 24190004 */ li $t9, 4 -/* 03AB88 80039F88 31AE0080 */ andi $t6, $t5, 0x80 -/* 03AB8C 80039F8C 11C0000E */ beqz $t6, .L80039FC8 -/* 03AB90 80039F90 24040062 */ li $a0, 98 -/* 03AB94 80039F94 3C04800E */ lui $a0, %hi(D_800DC978) # $a0, 0x800e -/* 03AB98 80039F98 240F0001 */ li $t7, 1 -/* 03AB9C 80039F9C A3AF006B */ sb $t7, 0x6b($sp) -/* 03ABA0 80039FA0 0C030076 */ jal func_800C01D8 -/* 03ABA4 80039FA4 2484C978 */ addiu $a0, %lo(D_800DC978) # addiu $a0, $a0, -0x3688 -/* 03ABA8 80039FA8 2418000F */ li $t8, 15 -/* 03ABAC 80039FAC AE180078 */ sw $t8, 0x78($s0) -/* 03ABB0 80039FB0 24040110 */ li $a0, 272 -/* 03ABB4 80039FB4 0C000741 */ jal play_sound_global -/* 03ABB8 80039FB8 00002825 */ move $a1, $zero -/* 03ABBC 80039FBC 44805000 */ mtc1 $zero, $f10 -/* 03ABC0 80039FC0 100002CF */ b .L8003AB00 -/* 03ABC4 80039FC4 E62A0004 */ swc1 $f10, 4($s1) -.L80039FC8: -/* 03ABC8 80039FC8 AE190078 */ sw $t9, 0x78($s0) -/* 03ABCC 80039FCC 0C0274CF */ jal set_menu_id_if_option_equal -/* 03ABD0 80039FD0 24050002 */ li $a1, 2 -.L80039FD4: -/* 03ABD4 80039FD4 100002CB */ b .L8003AB04 -/* 03ABD8 80039FD8 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L80039FDC -/* 03ABDC 80039FDC C62C0004 */ lwc1 $f12, 4($s1) -/* 03ABE0 80039FE0 44800800 */ mtc1 $zero, $f1 -/* 03ABE4 80039FE4 44800000 */ mtc1 $zero, $f0 -/* 03ABE8 80039FE8 460060A1 */ cvt.d.s $f2, $f12 -/* 03ABEC 80039FEC 46220032 */ c.eq.d $f0, $f2 -/* 03ABF0 80039FF0 C7A800AC */ lwc1 $f8, 0xac($sp) -/* 03ABF4 80039FF4 4501000A */ bc1t .L8003A020 -/* 03ABF8 80039FF8 3C013FE0 */ li $at, 0x3FE00000 # 1.750000 -/* 03ABFC 80039FFC 44819800 */ mtc1 $at, $f19 -/* 03AC00 8003A000 44809000 */ mtc1 $zero, $f18 -/* 03AC04 8003A004 460041A1 */ cvt.d.s $f6, $f8 -/* 03AC08 8003A008 46269402 */ mul.d $f16, $f18, $f6 -/* 03AC0C 8003A00C 46301100 */ add.d $f4, $f2, $f16 -/* 03AC10 8003A010 462022A0 */ cvt.s.d $f10, $f4 -/* 03AC14 8003A014 E62A0004 */ swc1 $f10, 4($s1) -/* 03AC18 8003A018 C62C0004 */ lwc1 $f12, 4($s1) -/* 03AC1C 8003A01C 00000000 */ nop -.L8003A020: -/* 03AC20 8003A020 44804000 */ mtc1 $zero, $f8 -/* 03AC24 8003A024 24080001 */ li $t0, 1 -/* 03AC28 8003A028 460C4032 */ c.eq.s $f8, $f12 -/* 03AC2C 8003A02C 00000000 */ nop -/* 03AC30 8003A030 450002B3 */ bc1f .L8003AB00 -/* 03AC34 8003A034 00000000 */ nop -/* 03AC38 8003A038 A3A8006B */ sb $t0, 0x6b($sp) -/* 03AC3C 8003A03C 8E090078 */ lw $t1, 0x78($s0) -/* 03AC40 8003A040 24010008 */ li $at, 8 -/* 03AC44 8003A044 15210014 */ bne $t1, $at, .L8003A098 -/* 03AC48 8003A048 240A0014 */ li $t2, 20 -/* 03AC4C 8003A04C 8FA20070 */ lw $v0, 0x70($sp) -/* 03AC50 8003A050 3C014248 */ li $at, 0x42480000 # 50.000000 -/* 03AC54 8003A054 44813000 */ mtc1 $at, $f6 -/* 03AC58 8003A058 C4520038 */ lwc1 $f18, 0x38($v0) -/* 03AC5C 8003A05C C4480040 */ lwc1 $f8, 0x40($v0) -/* 03AC60 8003A060 46069402 */ mul.s $f16, $f18, $f6 -/* 03AC64 8003A064 44819000 */ mtc1 $at, $f18 -/* 03AC68 8003A068 C604000C */ lwc1 $f4, 0xc($s0) -/* 03AC6C 8003A06C 8604002E */ lh $a0, 0x2e($s0) -/* 03AC70 8003A070 46124182 */ mul.s $f6, $f8, $f18 -/* 03AC74 8003A074 46102281 */ sub.s $f10, $f4, $f16 -/* 03AC78 8003A078 C6040014 */ lwc1 $f4, 0x14($s0) -/* 03AC7C 8003A07C 44055000 */ mfc1 $a1, $f10 -/* 03AC80 8003A080 46062401 */ sub.s $f16, $f4, $f6 -/* 03AC84 8003A084 8E060010 */ lw $a2, 0x10($s0) -/* 03AC88 8003A088 44078000 */ mfc1 $a3, $f16 -/* 03AC8C 8003A08C 0C008B3F */ jal func_80022CFC -/* 03AC90 8003A090 00000000 */ nop -/* 03AC94 8003A094 240A0014 */ li $t2, 20 -.L8003A098: -/* 03AC98 8003A098 AE0A0078 */ sw $t2, 0x78($s0) -/* 03AC9C 8003A09C 24040110 */ li $a0, 272 -/* 03ACA0 8003A0A0 0C000741 */ jal play_sound_global -/* 03ACA4 8003A0A4 00002825 */ move $a1, $zero -/* 03ACA8 8003A0A8 8FA20070 */ lw $v0, 0x70($sp) -/* 03ACAC 8003A0AC 00000000 */ nop -/* 03ACB0 8003A0B0 80440003 */ lb $a0, 3($v0) -/* 03ACB4 8003A0B4 804501D6 */ lb $a1, 0x1d6($v0) -/* 03ACB8 8003A0B8 0C0012D0 */ jal func_80004B40 -/* 03ACBC 8003A0BC 00000000 */ nop -/* 03ACC0 8003A0C0 8FAB0070 */ lw $t3, 0x70($sp) -/* 03ACC4 8003A0C4 1000028E */ b .L8003AB00 -/* 03ACC8 8003A0C8 AD620118 */ sw $v0, 0x118($t3) -glabel L8003A0CC -/* 03ACCC 8003A0CC 44805000 */ mtc1 $zero, $f10 -/* 03ACD0 8003A0D0 A207003B */ sb $a3, 0x3b($s0) -/* 03ACD4 8003A0D4 240C00FF */ li $t4, 255 -/* 03ACD8 8003A0D8 A22C000D */ sb $t4, 0xd($s1) -/* 03ACDC 8003A0DC E62A0014 */ swc1 $f10, 0x14($s1) -/* 03ACE0 8003A0E0 C7A800AC */ lwc1 $f8, 0xac($sp) -/* 03ACE4 8003A0E4 C6320004 */ lwc1 $f18, 4($s1) -/* 03ACE8 8003A0E8 46004021 */ cvt.d.s $f0, $f8 -/* 03ACEC 8003A0EC 46200180 */ add.d $f6, $f0, $f0 -/* 03ACF0 8003A0F0 3C01429E */ li $at, 0x429E0000 # 79.000000 -/* 03ACF4 8003A0F4 46009121 */ cvt.d.s $f4, $f18 -/* 03ACF8 8003A0F8 46262400 */ add.d $f16, $f4, $f6 -/* 03ACFC 8003A0FC 44811000 */ mtc1 $at, $f2 -/* 03AD00 8003A100 462082A0 */ cvt.s.d $f10, $f16 -/* 03AD04 8003A104 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 03AD08 8003A108 E62A0004 */ swc1 $f10, 4($s1) -/* 03AD0C 8003A10C C62C0004 */ lwc1 $f12, 4($s1) -/* 03AD10 8003A110 44814000 */ mtc1 $at, $f8 -/* 03AD14 8003A114 460C103C */ c.lt.s $f2, $f12 -/* 03AD18 8003A118 24040110 */ li $a0, 272 -/* 03AD1C 8003A11C 45000004 */ bc1f .L8003A130 -/* 03AD20 8003A120 00002825 */ move $a1, $zero -/* 03AD24 8003A124 E6220004 */ swc1 $f2, 4($s1) -/* 03AD28 8003A128 C62C0004 */ lwc1 $f12, 4($s1) -/* 03AD2C 8003A12C 00000000 */ nop -.L8003A130: -/* 03AD30 8003A130 8FA600B4 */ lw $a2, 0xb4($sp) -/* 03AD34 8003A134 4608603C */ c.lt.s $f12, $f8 -/* 03AD38 8003A138 000668C0 */ sll $t5, $a2, 3 -/* 03AD3C 8003A13C 45000002 */ bc1f .L8003A148 -/* 03AD40 8003A140 01A03025 */ move $a2, $t5 -/* 03AD44 8003A144 00003025 */ move $a2, $zero -.L8003A148: -/* 03AD48 8003A148 92020039 */ lbu $v0, 0x39($s0) -/* 03AD4C 8003A14C 240F0001 */ li $t7, 1 -/* 03AD50 8003A150 00C2082A */ slt $at, $a2, $v0 -/* 03AD54 8003A154 10200003 */ beqz $at, .L8003A164 -/* 03AD58 8003A158 00467023 */ subu $t6, $v0, $a2 -/* 03AD5C 8003A15C 10000268 */ b .L8003AB00 -/* 03AD60 8003A160 A20E0039 */ sb $t6, 0x39($s0) -.L8003A164: -/* 03AD64 8003A164 0C000741 */ jal play_sound_global -/* 03AD68 8003A168 A3AF006B */ sb $t7, 0x6b($sp) -/* 03AD6C 8003A16C 8FA20070 */ lw $v0, 0x70($sp) -/* 03AD70 8003A170 8FA30090 */ lw $v1, 0x90($sp) -/* 03AD74 8003A174 2418000B */ li $t8, 11 -/* 03AD78 8003A178 3C014316 */ li $at, 0x43160000 # 150.000000 -/* 03AD7C 8003A17C A2000039 */ sb $zero, 0x39($s0) -/* 03AD80 8003A180 AE180078 */ sw $t8, 0x78($s0) -/* 03AD84 8003A184 44810000 */ mtc1 $at, $f0 -/* 03AD88 8003A188 C4440038 */ lwc1 $f4, 0x38($v0) -/* 03AD8C 8003A18C C472000C */ lwc1 $f18, 0xc($v1) -/* 03AD90 8003A190 46002182 */ mul.s $f6, $f4, $f0 -/* 03AD94 8003A194 C60E0010 */ lwc1 $f14, 0x10($s0) -/* 03AD98 8003A198 46069401 */ sub.s $f16, $f18, $f6 -/* 03AD9C 8003A19C E610000C */ swc1 $f16, 0xc($s0) -/* 03ADA0 8003A1A0 C4480040 */ lwc1 $f8, 0x40($v0) -/* 03ADA4 8003A1A4 C46A0014 */ lwc1 $f10, 0x14($v1) -/* 03ADA8 8003A1A8 46004102 */ mul.s $f4, $f8, $f0 -/* 03ADAC 8003A1AC C60C000C */ lwc1 $f12, 0xc($s0) -/* 03ADB0 8003A1B0 46045481 */ sub.s $f18, $f10, $f4 -/* 03ADB4 8003A1B4 E6120014 */ swc1 $f18, 0x14($s0) -/* 03ADB8 8003A1B8 8E060014 */ lw $a2, 0x14($s0) -/* 03ADBC 8003A1BC 0C00A7C6 */ jal get_level_segment_index_from_position -/* 03ADC0 8003A1C0 00000000 */ nop -/* 03ADC4 8003A1C4 A602002E */ sh $v0, 0x2e($s0) -/* 03ADC8 8003A1C8 8FB90090 */ lw $t9, 0x90($sp) -/* 03ADCC 8003A1CC 34018000 */ li $at, 32768 -/* 03ADD0 8003A1D0 87280000 */ lh $t0, ($t9) -/* 03ADD4 8003A1D4 00000000 */ nop -/* 03ADD8 8003A1D8 01014821 */ addu $t1, $t0, $at -/* 03ADDC 8003A1DC A6090000 */ sh $t1, ($s0) -/* 03ADE0 8003A1E0 10000248 */ b .L8003AB04 -/* 03ADE4 8003A1E4 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L8003A1E8 -/* 03ADE8 8003A1E8 A207003B */ sb $a3, 0x3b($s0) -/* 03ADEC 8003A1EC C7A600AC */ lwc1 $f6, 0xac($sp) -/* 03ADF0 8003A1F0 C6300004 */ lwc1 $f16, 4($s1) -/* 03ADF4 8003A1F4 46003021 */ cvt.d.s $f0, $f6 -/* 03ADF8 8003A1F8 46200280 */ add.d $f10, $f0, $f0 -/* 03ADFC 8003A1FC 44801000 */ mtc1 $zero, $f2 -/* 03AE00 8003A200 46008221 */ cvt.d.s $f8, $f16 -/* 03AE04 8003A204 462A4101 */ sub.d $f4, $f8, $f10 -/* 03AE08 8003A208 240B00FF */ li $t3, 255 -/* 03AE0C 8003A20C 462024A0 */ cvt.s.d $f18, $f4 -/* 03AE10 8003A210 240E00FF */ li $t6, 255 -/* 03AE14 8003A214 E6320004 */ swc1 $f18, 4($s1) -/* 03AE18 8003A218 C6260004 */ lwc1 $f6, 4($s1) -/* 03AE1C 8003A21C 240F0001 */ li $t7, 1 -/* 03AE20 8003A220 4602303C */ c.lt.s $f6, $f2 -/* 03AE24 8003A224 00000000 */ nop -/* 03AE28 8003A228 45000003 */ bc1f .L8003A238 -/* 03AE2C 8003A22C 8FA300B4 */ lw $v1, 0xb4($sp) -/* 03AE30 8003A230 E6220004 */ swc1 $f2, 4($s1) -/* 03AE34 8003A234 8FA300B4 */ lw $v1, 0xb4($sp) -.L8003A238: -/* 03AE38 8003A238 92020039 */ lbu $v0, 0x39($s0) -/* 03AE3C 8003A23C 00035080 */ sll $t2, $v1, 2 -/* 03AE40 8003A240 016A6023 */ subu $t4, $t3, $t2 -/* 03AE44 8003A244 004C082A */ slt $at, $v0, $t4 -/* 03AE48 8003A248 10200003 */ beqz $at, .L8003A258 -/* 03AE4C 8003A24C 004A6821 */ addu $t5, $v0, $t2 -/* 03AE50 8003A250 1000022B */ b .L8003AB00 -/* 03AE54 8003A254 A20D0039 */ sb $t5, 0x39($s0) -.L8003A258: -/* 03AE58 8003A258 A20E0039 */ sb $t6, 0x39($s0) -/* 03AE5C 8003A25C AE0F0078 */ sw $t7, 0x78($s0) -/* 03AE60 8003A260 10000228 */ b .L8003AB04 -/* 03AE64 8003A264 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L8003A268 -/* 03AE68 8003A268 44808000 */ mtc1 $zero, $f16 -/* 03AE6C 8003A26C A207003B */ sb $a3, 0x3b($s0) -/* 03AE70 8003A270 241800FF */ li $t8, 255 -/* 03AE74 8003A274 A238000D */ sb $t8, 0xd($s1) -/* 03AE78 8003A278 E6300014 */ swc1 $f16, 0x14($s1) -/* 03AE7C 8003A27C C7A800AC */ lwc1 $f8, 0xac($sp) -/* 03AE80 8003A280 C62A0004 */ lwc1 $f10, 4($s1) -/* 03AE84 8003A284 46004021 */ cvt.d.s $f0, $f8 -/* 03AE88 8003A288 46200480 */ add.d $f18, $f0, $f0 -/* 03AE8C 8003A28C 3C01429E */ li $at, 0x429E0000 # 79.000000 -/* 03AE90 8003A290 46005121 */ cvt.d.s $f4, $f10 -/* 03AE94 8003A294 46322180 */ add.d $f6, $f4, $f18 -/* 03AE98 8003A298 44811000 */ mtc1 $at, $f2 -/* 03AE9C 8003A29C 46203420 */ cvt.s.d $f16, $f6 -/* 03AEA0 8003A2A0 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 03AEA4 8003A2A4 E6300004 */ swc1 $f16, 4($s1) -/* 03AEA8 8003A2A8 C62C0004 */ lwc1 $f12, 4($s1) -/* 03AEAC 8003A2AC 44814000 */ mtc1 $at, $f8 -/* 03AEB0 8003A2B0 460C103C */ c.lt.s $f2, $f12 -/* 03AEB4 8003A2B4 00000000 */ nop -/* 03AEB8 8003A2B8 45000005 */ bc1f .L8003A2D0 -/* 03AEBC 8003A2BC 8FA600B4 */ lw $a2, 0xb4($sp) -/* 03AEC0 8003A2C0 E6220004 */ swc1 $f2, 4($s1) -/* 03AEC4 8003A2C4 C62C0004 */ lwc1 $f12, 4($s1) -/* 03AEC8 8003A2C8 00000000 */ nop -/* 03AECC 8003A2CC 8FA600B4 */ lw $a2, 0xb4($sp) -.L8003A2D0: -/* 03AED0 8003A2D0 4608603C */ c.lt.s $f12, $f8 -/* 03AED4 8003A2D4 0006C8C0 */ sll $t9, $a2, 3 -/* 03AED8 8003A2D8 45000002 */ bc1f .L8003A2E4 -/* 03AEDC 8003A2DC 03203025 */ move $a2, $t9 -/* 03AEE0 8003A2E0 00003025 */ move $a2, $zero -.L8003A2E4: -/* 03AEE4 8003A2E4 92020039 */ lbu $v0, 0x39($s0) -/* 03AEE8 8003A2E8 00000000 */ nop -/* 03AEEC 8003A2EC 00C2082A */ slt $at, $a2, $v0 -/* 03AEF0 8003A2F0 10200003 */ beqz $at, .L8003A300 -/* 03AEF4 8003A2F4 00464023 */ subu $t0, $v0, $a2 -/* 03AEF8 8003A2F8 10000201 */ b .L8003AB00 -/* 03AEFC 8003A2FC A2080039 */ sb $t0, 0x39($s0) -.L8003A300: -/* 03AF00 8003A300 8FA20070 */ lw $v0, 0x70($sp) -/* 03AF04 8003A304 00000000 */ nop -/* 03AF08 8003A308 80440003 */ lb $a0, 3($v0) -/* 03AF0C 8003A30C 804501D6 */ lb $a1, 0x1d6($v0) -/* 03AF10 8003A310 0C0012D0 */ jal func_80004B40 -/* 03AF14 8003A314 00000000 */ nop -/* 03AF18 8003A318 8FA90070 */ lw $t1, 0x70($sp) -/* 03AF1C 8003A31C 240C00B4 */ li $t4, 180 -/* 03AF20 8003A320 AD220118 */ sw $v0, 0x118($t1) -/* 03AF24 8003A324 862A0020 */ lh $t2, 0x20($s1) -/* 03AF28 8003A328 92270013 */ lbu $a3, 0x13($s1) -/* 03AF2C 8003A32C 92260012 */ lbu $a2, 0x12($s1) -/* 03AF30 8003A330 92250011 */ lbu $a1, 0x11($s1) -/* 03AF34 8003A334 AFAA0010 */ sw $t2, 0x10($sp) -/* 03AF38 8003A338 862B0022 */ lh $t3, 0x22($s1) -/* 03AF3C 8003A33C AFAC0018 */ sw $t4, 0x18($sp) -/* 03AF40 8003A340 00002025 */ move $a0, $zero -/* 03AF44 8003A344 0C00C378 */ jal func_80030DE0 -/* 03AF48 8003A348 AFAB0014 */ sw $t3, 0x14($sp) -/* 03AF4C 8003A34C 8FAD0064 */ lw $t5, 0x64($sp) -/* 03AF50 8003A350 00000000 */ nop -/* 03AF54 8003A354 91A400B3 */ lbu $a0, 0xb3($t5) -/* 03AF58 8003A358 0C0002F8 */ jal set_music_player_voice_limit -/* 03AF5C 8003A35C 00000000 */ nop -/* 03AF60 8003A360 8FAE0064 */ lw $t6, 0x64($sp) -/* 03AF64 8003A364 00000000 */ nop -/* 03AF68 8003A368 91C40052 */ lbu $a0, 0x52($t6) -/* 03AF6C 8003A36C 0C0002CD */ jal play_music -/* 03AF70 8003A370 00000000 */ nop -/* 03AF74 8003A374 8FAF0064 */ lw $t7, 0x64($sp) -/* 03AF78 8003A378 00000000 */ nop -/* 03AF7C 8003A37C 95E40054 */ lhu $a0, 0x54($t7) -/* 03AF80 8003A380 0C00041D */ jal func_80001074 -/* 03AF84 8003A384 00000000 */ nop -/* 03AF88 8003A388 8FB80070 */ lw $t8, 0x70($sp) -/* 03AF8C 8003A38C 00000000 */ nop -/* 03AF90 8003A390 830401D6 */ lb $a0, 0x1d6($t8) -/* 03AF94 8003A394 0C008A3B */ jal func_800228EC -/* 03AF98 8003A398 00000000 */ nop -/* 03AF9C 8003A39C C60C000C */ lwc1 $f12, 0xc($s0) -/* 03AFA0 8003A3A0 C60E0014 */ lwc1 $f14, 0x14($s0) -/* 03AFA4 8003A3A4 0C008D0B */ jal func_8002342C -/* 03AFA8 8003A3A8 00000000 */ nop -/* 03AFAC 8003A3AC 10400010 */ beqz $v0, .L8003A3F0 -/* 03AFB0 8003A3B0 240B001E */ li $t3, 30 -/* 03AFB4 8003A3B4 C44A000C */ lwc1 $f10, 0xc($v0) -/* 03AFB8 8003A3B8 34018000 */ li $at, 32768 -/* 03AFBC 8003A3BC E60A000C */ swc1 $f10, 0xc($s0) -/* 03AFC0 8003A3C0 C4440014 */ lwc1 $f4, 0x14($v0) -/* 03AFC4 8003A3C4 00000000 */ nop -/* 03AFC8 8003A3C8 E6040014 */ swc1 $f4, 0x14($s0) -/* 03AFCC 8003A3CC 8459002E */ lh $t9, 0x2e($v0) -/* 03AFD0 8003A3D0 00000000 */ nop -/* 03AFD4 8003A3D4 A619002E */ sh $t9, 0x2e($s0) -/* 03AFD8 8003A3D8 8FA80090 */ lw $t0, 0x90($sp) -/* 03AFDC 8003A3DC 00000000 */ nop -/* 03AFE0 8003A3E0 85090000 */ lh $t1, ($t0) -/* 03AFE4 8003A3E4 00000000 */ nop -/* 03AFE8 8003A3E8 01215021 */ addu $t2, $t1, $at -/* 03AFEC 8003A3EC A60A0000 */ sh $t2, ($s0) -.L8003A3F0: -/* 03AFF0 8003A3F0 AE0B0078 */ sw $t3, 0x78($s0) -/* 03AFF4 8003A3F4 100001C3 */ b .L8003AB04 -/* 03AFF8 8003A3F8 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L8003A3FC -/* 03AFFC 8003A3FC 44809000 */ mtc1 $zero, $f18 -/* 03B000 8003A400 A207003B */ sb $a3, 0x3b($s0) -/* 03B004 8003A404 240C00FF */ li $t4, 255 -/* 03B008 8003A408 A22C000D */ sb $t4, 0xd($s1) -/* 03B00C 8003A40C E6320014 */ swc1 $f18, 0x14($s1) -/* 03B010 8003A410 C7A600AC */ lwc1 $f6, 0xac($sp) -/* 03B014 8003A414 C6300004 */ lwc1 $f16, 4($s1) -/* 03B018 8003A418 46003021 */ cvt.d.s $f0, $f6 -/* 03B01C 8003A41C 46200280 */ add.d $f10, $f0, $f0 -/* 03B020 8003A420 3C01429E */ li $at, 0x429E0000 # 79.000000 -/* 03B024 8003A424 46008221 */ cvt.d.s $f8, $f16 -/* 03B028 8003A428 462A4100 */ add.d $f4, $f8, $f10 -/* 03B02C 8003A42C 44811000 */ mtc1 $at, $f2 -/* 03B030 8003A430 462024A0 */ cvt.s.d $f18, $f4 -/* 03B034 8003A434 3C0141A0 */ li $at, 0x41A00000 # 20.000000 -/* 03B038 8003A438 E6320004 */ swc1 $f18, 4($s1) -/* 03B03C 8003A43C C62C0004 */ lwc1 $f12, 4($s1) -/* 03B040 8003A440 44813000 */ mtc1 $at, $f6 -/* 03B044 8003A444 460C103C */ c.lt.s $f2, $f12 -/* 03B048 8003A448 240F0015 */ li $t7, 21 -/* 03B04C 8003A44C 45000005 */ bc1f .L8003A464 -/* 03B050 8003A450 8FA600B4 */ lw $a2, 0xb4($sp) -/* 03B054 8003A454 E6220004 */ swc1 $f2, 4($s1) -/* 03B058 8003A458 C62C0004 */ lwc1 $f12, 4($s1) -/* 03B05C 8003A45C 00000000 */ nop -/* 03B060 8003A460 8FA600B4 */ lw $a2, 0xb4($sp) -.L8003A464: -/* 03B064 8003A464 4606603C */ c.lt.s $f12, $f6 -/* 03B068 8003A468 000668C0 */ sll $t5, $a2, 3 -/* 03B06C 8003A46C 45000002 */ bc1f .L8003A478 -/* 03B070 8003A470 01A03025 */ move $a2, $t5 -/* 03B074 8003A474 00003025 */ move $a2, $zero -.L8003A478: -/* 03B078 8003A478 92020039 */ lbu $v0, 0x39($s0) -/* 03B07C 8003A47C 00000000 */ nop -/* 03B080 8003A480 00C2082A */ slt $at, $a2, $v0 -/* 03B084 8003A484 10200003 */ beqz $at, .L8003A494 -/* 03B088 8003A488 00467023 */ subu $t6, $v0, $a2 -/* 03B08C 8003A48C 1000019C */ b .L8003AB00 -/* 03B090 8003A490 A20E0039 */ sb $t6, 0x39($s0) -.L8003A494: -/* 03B094 8003A494 C60C000C */ lwc1 $f12, 0xc($s0) -/* 03B098 8003A498 C60E0014 */ lwc1 $f14, 0x14($s0) -/* 03B09C 8003A49C A2000039 */ sb $zero, 0x39($s0) -/* 03B0A0 8003A4A0 0C008D0B */ jal func_8002342C -/* 03B0A4 8003A4A4 AE0F0078 */ sw $t7, 0x78($s0) -/* 03B0A8 8003A4A8 10400010 */ beqz $v0, .L8003A4EC -/* 03B0AC 8003A4AC 00000000 */ nop -/* 03B0B0 8003A4B0 C450000C */ lwc1 $f16, 0xc($v0) -/* 03B0B4 8003A4B4 34018000 */ li $at, 32768 -/* 03B0B8 8003A4B8 E610000C */ swc1 $f16, 0xc($s0) -/* 03B0BC 8003A4BC C4480014 */ lwc1 $f8, 0x14($v0) -/* 03B0C0 8003A4C0 00000000 */ nop -/* 03B0C4 8003A4C4 E6080014 */ swc1 $f8, 0x14($s0) -/* 03B0C8 8003A4C8 8458002E */ lh $t8, 0x2e($v0) -/* 03B0CC 8003A4CC 00000000 */ nop -/* 03B0D0 8003A4D0 A618002E */ sh $t8, 0x2e($s0) -/* 03B0D4 8003A4D4 8FB90090 */ lw $t9, 0x90($sp) -/* 03B0D8 8003A4D8 00000000 */ nop -/* 03B0DC 8003A4DC 87280000 */ lh $t0, ($t9) -/* 03B0E0 8003A4E0 00000000 */ nop -/* 03B0E4 8003A4E4 01014821 */ addu $t1, $t0, $at -/* 03B0E8 8003A4E8 A6090000 */ sh $t1, ($s0) -.L8003A4EC: -/* 03B0EC 8003A4EC 10000185 */ b .L8003AB04 -/* 03B0F0 8003A4F0 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L8003A4F4 -/* 03B0F4 8003A4F4 A207003B */ sb $a3, 0x3b($s0) -/* 03B0F8 8003A4F8 C7AA00AC */ lwc1 $f10, 0xac($sp) -/* 03B0FC 8003A4FC C6240004 */ lwc1 $f4, 4($s1) -/* 03B100 8003A500 46005021 */ cvt.d.s $f0, $f10 -/* 03B104 8003A504 46200180 */ add.d $f6, $f0, $f0 -/* 03B108 8003A508 44801000 */ mtc1 $zero, $f2 -/* 03B10C 8003A50C 460024A1 */ cvt.d.s $f18, $f4 -/* 03B110 8003A510 46269401 */ sub.d $f16, $f18, $f6 -/* 03B114 8003A514 240B00FF */ li $t3, 255 -/* 03B118 8003A518 46208220 */ cvt.s.d $f8, $f16 -/* 03B11C 8003A51C 240E00FF */ li $t6, 255 -/* 03B120 8003A520 E6280004 */ swc1 $f8, 4($s1) -/* 03B124 8003A524 C62A0004 */ lwc1 $f10, 4($s1) -/* 03B128 8003A528 00000000 */ nop -/* 03B12C 8003A52C 4602503C */ c.lt.s $f10, $f2 -/* 03B130 8003A530 00000000 */ nop -/* 03B134 8003A534 45000003 */ bc1f .L8003A544 -/* 03B138 8003A538 8FA300B4 */ lw $v1, 0xb4($sp) -/* 03B13C 8003A53C E6220004 */ swc1 $f2, 4($s1) -/* 03B140 8003A540 8FA300B4 */ lw $v1, 0xb4($sp) -.L8003A544: -/* 03B144 8003A544 92020039 */ lbu $v0, 0x39($s0) -/* 03B148 8003A548 00035080 */ sll $t2, $v1, 2 -/* 03B14C 8003A54C 016A6023 */ subu $t4, $t3, $t2 -/* 03B150 8003A550 004C082A */ slt $at, $v0, $t4 -/* 03B154 8003A554 10200003 */ beqz $at, .L8003A564 -/* 03B158 8003A558 004A6821 */ addu $t5, $v0, $t2 -/* 03B15C 8003A55C 10000168 */ b .L8003AB00 -/* 03B160 8003A560 A20D0039 */ sb $t5, 0x39($s0) -.L8003A564: -/* 03B164 8003A564 A20E0039 */ sb $t6, 0x39($s0) -/* 03B168 8003A568 AE000078 */ sw $zero, 0x78($s0) -/* 03B16C 8003A56C 10000165 */ b .L8003AB04 -/* 03B170 8003A570 C7B00098 */ lwc1 $f16, 0x98($sp) -glabel L8003A574 -/* 03B174 8003A574 8E0F004C */ lw $t7, 0x4c($s0) -/* 03B178 8003A578 24180006 */ li $t8, 6 -/* 03B17C 8003A57C A5E00014 */ sh $zero, 0x14($t7) -/* 03B180 8003A580 241900FF */ li $t9, 255 -/* 03B184 8003A584 A218003B */ sb $t8, 0x3b($s0) -/* 03B188 8003A588 A2190039 */ sb $t9, 0x39($s0) -/* 03B18C 8003A58C C6240004 */ lwc1 $f4, 4($s1) -/* 03B190 8003A590 C7A600AC */ lwc1 $f6, 0xac($sp) -/* 03B194 8003A594 460024A1 */ cvt.d.s $f18, $f4 -/* 03B198 8003A598 46003421 */ cvt.d.s $f16, $f6 -/* 03B19C 8003A59C 46309200 */ add.d $f8, $f18, $f16 -/* 03B1A0 8003A5A0 462042A0 */ cvt.s.d $f10, $f8 -/* 03B1A4 8003A5A4 10000156 */ b .L8003AB00 -/* 03B1A8 8003A5A8 E62A0004 */ swc1 $f10, 4($s1) -.L8003A5AC: -glabel L8003A5AC -/* 03B1AC 8003A5AC A200003B */ sb $zero, 0x3b($s0) -/* 03B1B0 8003A5B0 44802000 */ mtc1 $zero, $f4 -/* 03B1B4 8003A5B4 9228000D */ lbu $t0, 0xd($s1) -/* 03B1B8 8003A5B8 240100FF */ li $at, 255 -/* 03B1BC 8003A5BC 1501001B */ bne $t0, $at, .L8003A62C -/* 03B1C0 8003A5C0 E6240014 */ swc1 $f4, 0x14($s1) -/* 03B1C4 8003A5C4 C60C000C */ lwc1 $f12, 0xc($s0) -/* 03B1C8 8003A5C8 C60E0010 */ lwc1 $f14, 0x10($s0) -/* 03B1CC 8003A5CC 8E060014 */ lw $a2, 0x14($s0) -/* 03B1D0 8003A5D0 0C007149 */ jal func_8001C524 -/* 03B1D4 8003A5D4 00003825 */ move $a3, $zero -/* 03B1D8 8003A5D8 304400FF */ andi $a0, $v0, 0xff -/* 03B1DC 8003A5DC 240100FF */ li $at, 255 -/* 03B1E0 8003A5E0 1081007F */ beq $a0, $at, .L8003A7E0 -/* 03B1E4 8003A5E4 A222000D */ sb $v0, 0xd($s1) -/* 03B1E8 8003A5E8 2405FFFF */ li $a1, -1 -/* 03B1EC 8003A5EC 0C007312 */ jal func_8001CC48 -/* 03B1F0 8003A5F0 00003025 */ move $a2, $zero -/* 03B1F4 8003A5F4 9225000D */ lbu $a1, 0xd($s1) -/* 03B1F8 8003A5F8 A222000E */ sb $v0, 0xe($s1) -/* 03B1FC 8003A5FC 304400FF */ andi $a0, $v0, 0xff -/* 03B200 8003A600 0C007312 */ jal func_8001CC48 -/* 03B204 8003A604 00003025 */ move $a2, $zero -/* 03B208 8003A608 9225000E */ lbu $a1, 0xe($s1) -/* 03B20C 8003A60C A222000F */ sb $v0, 0xf($s1) -/* 03B210 8003A610 304400FF */ andi $a0, $v0, 0xff -/* 03B214 8003A614 0C007312 */ jal func_8001CC48 -/* 03B218 8003A618 00003025 */ move $a2, $zero -/* 03B21C 8003A61C 9229000D */ lbu $t1, 0xd($s1) -/* 03B220 8003A620 A2220010 */ sb $v0, 0x10($s1) -/* 03B224 8003A624 1000006E */ b .L8003A7E0 -/* 03B228 8003A628 A229000C */ sb $t1, 0xc($s1) -.L8003A62C: -/* 03B22C 8003A62C 3C01425C */ li $at, 0x425C0000 # 55.000000 -/* 03B230 8003A630 44819000 */ mtc1 $at, $f18 -/* 03B234 8003A634 C7A6009C */ lwc1 $f6, 0x9c($sp) -/* 03B238 8003A638 00000000 */ nop -/* 03B23C 8003A63C 4612303C */ c.lt.s $f6, $f18 -/* 03B240 8003A640 00000000 */ nop -/* 03B244 8003A644 45000010 */ bc1f .L8003A688 -/* 03B248 8003A648 00000000 */ nop -/* 03B24C 8003A64C 862A001C */ lh $t2, 0x1c($s1) -/* 03B250 8003A650 8FAB0090 */ lw $t3, 0x90($sp) -/* 03B254 8003A654 1540000C */ bnez $t2, .L8003A688 -/* 03B258 8003A658 00000000 */ nop -/* 03B25C 8003A65C 1160000A */ beqz $t3, .L8003A688 -/* 03B260 8003A660 240C00F0 */ li $t4, 240 -/* 03B264 8003A664 A62C001C */ sh $t4, 0x1c($s1) -/* 03B268 8003A668 C7A8009C */ lwc1 $f8, 0x9c($sp) -/* 03B26C 8003A66C C7AA00A0 */ lwc1 $f10, 0xa0($sp) -/* 03B270 8003A670 C7B000A8 */ lwc1 $f16, 0xa8($sp) -/* 03B274 8003A674 46085383 */ div.s $f14, $f10, $f8 -/* 03B278 8003A678 0C01C1D4 */ jal arctan2_f -/* 03B27C 8003A67C 46088303 */ div.s $f12, $f16, $f8 -/* 03B280 8003A680 244D4000 */ addiu $t5, $v0, 0x4000 -/* 03B284 8003A684 A62D001E */ sh $t5, 0x1e($s1) -.L8003A688: -/* 03B288 8003A688 8622001C */ lh $v0, 0x1c($s1) -/* 03B28C 8003A68C 8FAE00B4 */ lw $t6, 0xb4($sp) -/* 03B290 8003A690 18400003 */ blez $v0, .L8003A6A0 -/* 03B294 8003A694 004E7823 */ subu $t7, $v0, $t6 -/* 03B298 8003A698 10000002 */ b .L8003A6A4 -/* 03B29C 8003A69C A62F001C */ sh $t7, 0x1c($s1) -.L8003A6A0: -/* 03B2A0 8003A6A0 A620001C */ sh $zero, 0x1c($s1) -.L8003A6A4: -/* 03B2A4 8003A6A4 8638001C */ lh $t8, 0x1c($s1) -/* 03B2A8 8003A6A8 8FA900B4 */ lw $t1, 0xb4($sp) -/* 03B2AC 8003A6AC 2B010078 */ slti $at, $t8, 0x78 -/* 03B2B0 8003A6B0 1020000B */ beqz $at, .L8003A6E0 -/* 03B2B4 8003A6B4 02202025 */ move $a0, $s1 -/* 03B2B8 8003A6B8 8FA600AC */ lw $a2, 0xac($sp) -/* 03B2BC 8003A6BC 02002825 */ move $a1, $s0 -/* 03B2C0 8003A6C0 3C073F80 */ lui $a3, 0x3f80 -/* 03B2C4 8003A6C4 0C0071B1 */ jal func_8001C6C4 -/* 03B2C8 8003A6C8 AFA00010 */ sw $zero, 0x10($sp) -/* 03B2CC 8003A6CC C6240004 */ lwc1 $f4, 4($s1) -/* 03B2D0 8003A6D0 00000000 */ nop -/* 03B2D4 8003A6D4 46002180 */ add.s $f6, $f4, $f0 -/* 03B2D8 8003A6D8 10000041 */ b .L8003A7E0 -/* 03B2DC 8003A6DC E6260004 */ swc1 $f6, 4($s1) -.L8003A6E0: -/* 03B2E0 8003A6E0 86050000 */ lh $a1, ($s0) -/* 03B2E4 8003A6E4 8639001E */ lh $t9, 0x1e($s1) -/* 03B2E8 8003A6E8 30A8FFFF */ andi $t0, $a1, 0xffff -/* 03B2EC 8003A6EC 34018001 */ li $at, 32769 -/* 03B2F0 8003A6F0 03283023 */ subu $a2, $t9, $t0 -/* 03B2F4 8003A6F4 00C1082A */ slt $at, $a2, $at -/* 03B2F8 8003A6F8 14200003 */ bnez $at, .L8003A708 -/* 03B2FC 8003A6FC 3C01FFFF */ lui $at, (0xFFFF0001 >> 16) # lui $at, 0xffff -/* 03B300 8003A700 34210001 */ ori $at, (0xFFFF0001 & 0xFFFF) # ori $at, $at, 1 -/* 03B304 8003A704 00C13021 */ addu $a2, $a2, $at -.L8003A708: -/* 03B308 8003A708 28C18000 */ slti $at, $a2, -0x8000 -/* 03B30C 8003A70C 10200002 */ beqz $at, .L8003A718 -/* 03B310 8003A710 3401FFFF */ li $at, 65535 -/* 03B314 8003A714 00C13021 */ addu $a2, $a2, $at -.L8003A718: -/* 03B318 8003A718 00C90019 */ multu $a2, $t1 -/* 03B31C 8003A71C 34018000 */ li $at, 32768 -/* 03B320 8003A720 00005012 */ mflo $t2 -/* 03B324 8003A724 000A5903 */ sra $t3, $t2, 4 -/* 03B328 8003A728 00AB6021 */ addu $t4, $a1, $t3 -/* 03B32C 8003A72C A60C0000 */ sh $t4, ($s0) -/* 03B330 8003A730 86040000 */ lh $a0, ($s0) -/* 03B334 8003A734 00000000 */ nop -/* 03B338 8003A738 00812021 */ addu $a0, $a0, $at -/* 03B33C 8003A73C 00046C00 */ sll $t5, $a0, 0x10 -/* 03B340 8003A740 0C01C1F1 */ jal sins_f -/* 03B344 8003A744 000D2403 */ sra $a0, $t5, 0x10 -/* 03B348 8003A748 E7A000A8 */ swc1 $f0, 0xa8($sp) -/* 03B34C 8003A74C 86040000 */ lh $a0, ($s0) -/* 03B350 8003A750 34018000 */ li $at, 32768 -/* 03B354 8003A754 00812021 */ addu $a0, $a0, $at -/* 03B358 8003A758 00047C00 */ sll $t7, $a0, 0x10 -/* 03B35C 8003A75C 0C01C1FE */ jal coss_f -/* 03B360 8003A760 000F2403 */ sra $a0, $t7, 0x10 -/* 03B364 8003A764 C7AC0048 */ lwc1 $f12, 0x48($sp) -/* 03B368 8003A768 C7B200A8 */ lwc1 $f18, 0xa8($sp) -/* 03B36C 8003A76C 3C01800E */ lui $at, %hi(D_800E6150 + 4) # $at, 0x800e -/* 03B370 8003A770 46126402 */ mul.s $f16, $f12, $f18 -/* 03B374 8003A774 C4236150 */ lwc1 $f3, %lo(D_800E6150)($at) -/* 03B378 8003A778 C4226154 */ lwc1 $f2, %lo(D_800E6150 + 4)($at) -/* 03B37C 8003A77C 02002025 */ move $a0, $s0 -/* 03B380 8003A780 460082A1 */ cvt.d.s $f10, $f16 -/* 03B384 8003A784 46225202 */ mul.d $f8, $f10, $f2 -/* 03B388 8003A788 24060000 */ li $a2, 0 -/* 03B38C 8003A78C 46006182 */ mul.s $f6, $f12, $f0 -/* 03B390 8003A790 46204120 */ cvt.s.d $f4, $f8 -/* 03B394 8003A794 44052000 */ mfc1 $a1, $f4 -/* 03B398 8003A798 460034A1 */ cvt.d.s $f18, $f6 -/* 03B39C 8003A79C 46229402 */ mul.d $f16, $f18, $f2 -/* 03B3A0 8003A7A0 462082A0 */ cvt.s.d $f10, $f16 -/* 03B3A4 8003A7A4 44075000 */ mfc1 $a3, $f10 -/* 03B3A8 8003A7A8 0C00455C */ jal func_80011570 -/* 03B3AC 8003A7AC 00000000 */ nop -/* 03B3B0 8003A7B0 8FB900B4 */ lw $t9, 0xb4($sp) -/* 03B3B4 8003A7B4 3C01800E */ lui $at, %hi(D_800E6158 + 4) # $at, 0x800e -/* 03B3B8 8003A7B8 44994000 */ mtc1 $t9, $f8 -/* 03B3BC 8003A7BC C4276158 */ lwc1 $f7, %lo(D_800E6158)($at) -/* 03B3C0 8003A7C0 46804121 */ cvt.d.w $f4, $f8 -/* 03B3C4 8003A7C4 C426615C */ lwc1 $f6, %lo(D_800E6158 + 4)($at) -/* 03B3C8 8003A7C8 C6300004 */ lwc1 $f16, 4($s1) -/* 03B3CC 8003A7CC 46262482 */ mul.d $f18, $f4, $f6 -/* 03B3D0 8003A7D0 460082A1 */ cvt.d.s $f10, $f16 -/* 03B3D4 8003A7D4 46325200 */ add.d $f8, $f10, $f18 -/* 03B3D8 8003A7D8 46204120 */ cvt.s.d $f4, $f8 -/* 03B3DC 8003A7DC E6240004 */ swc1 $f4, 4($s1) -.L8003A7E0: -/* 03B3E0 8003A7E0 0C006E9D */ jal get_racer_objects -/* 03B3E4 8003A7E4 27A40078 */ addiu $a0, $sp, 0x78 -/* 03B3E8 8003A7E8 8C480000 */ lw $t0, ($v0) -/* 03B3EC 8003A7EC 00000000 */ nop -/* 03B3F0 8003A7F0 1100005E */ beqz $t0, .L8003A96C -/* 03B3F4 8003A7F4 00000000 */ nop -/* 03B3F8 8003A7F8 8C420000 */ lw $v0, ($v0) -/* 03B3FC 8003A7FC C610000C */ lwc1 $f16, 0xc($s0) -/* 03B400 8003A800 C446000C */ lwc1 $f6, 0xc($v0) -/* 03B404 8003A804 C6120010 */ lwc1 $f18, 0x10($s0) -/* 03B408 8003A808 46103081 */ sub.s $f2, $f6, $f16 -/* 03B40C 8003A80C C44A0010 */ lwc1 $f10, 0x10($v0) -/* 03B410 8003A810 46021182 */ mul.s $f6, $f2, $f2 -/* 03B414 8003A814 46125001 */ sub.s $f0, $f10, $f18 -/* 03B418 8003A818 C6040014 */ lwc1 $f4, 0x14($s0) -/* 03B41C 8003A81C C4480014 */ lwc1 $f8, 0x14($v0) -/* 03B420 8003A820 46000402 */ mul.s $f16, $f0, $f0 -/* 03B424 8003A824 46044381 */ sub.s $f14, $f8, $f4 -/* 03B428 8003A828 460E7482 */ mul.s $f18, $f14, $f14 -/* 03B42C 8003A82C 46103280 */ add.s $f10, $f6, $f16 -/* 03B430 8003A830 0C0326B4 */ jal sqrtf -/* 03B434 8003A834 46125300 */ add.s $f12, $f10, $f18 -/* 03B438 8003A838 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 03B43C 8003A83C 44816000 */ mtc1 $at, $f12 -/* 03B440 8003A840 00000000 */ nop -/* 03B444 8003A844 460C003C */ c.lt.s $f0, $f12 -/* 03B448 8003A848 00000000 */ nop -/* 03B44C 8003A84C 45000041 */ bc1f .L8003A954 -/* 03B450 8003A850 00000000 */ nop -/* 03B454 8003A854 46006081 */ sub.s $f2, $f12, $f0 -/* 03B458 8003A858 0C01A75F */ jal func_80069D7C -/* 03B45C 8003A85C E7A2005C */ swc1 $f2, 0x5c($sp) -/* 03B460 8003A860 C608000C */ lwc1 $f8, 0xc($s0) -/* 03B464 8003A864 C444000C */ lwc1 $f4, 0xc($v0) -/* 03B468 8003A868 C6060014 */ lwc1 $f6, 0x14($s0) -/* 03B46C 8003A86C C4500014 */ lwc1 $f16, 0x14($v0) -/* 03B470 8003A870 84460000 */ lh $a2, ($v0) -/* 03B474 8003A874 46044301 */ sub.s $f12, $f8, $f4 -/* 03B478 8003A878 0C002430 */ jal func_800090C0 -/* 03B47C 8003A87C 46103381 */ sub.s $f14, $f6, $f16 -/* 03B480 8003A880 3C0142FE */ li $at, 0x42FE0000 # 127.000000 -/* 03B484 8003A884 C7A2005C */ lwc1 $f2, 0x5c($sp) -/* 03B488 8003A888 44815000 */ mtc1 $at, $f10 -/* 03B48C 8003A88C 3C01447A */ li $at, 0x447A0000 # 1000.000000 -/* 03B490 8003A890 46025482 */ mul.s $f18, $f10, $f2 -/* 03B494 8003A894 44814000 */ mtc1 $at, $f8 -/* 03B498 8003A898 AFA20054 */ sw $v0, 0x54($sp) -/* 03B49C 8003A89C 2404000A */ li $a0, 10 -/* 03B4A0 8003A8A0 46089103 */ div.s $f4, $f18, $f8 -/* 03B4A4 8003A8A4 4449F800 */ cfc1 $t1, $31 -/* 03B4A8 8003A8A8 00000000 */ nop -/* 03B4AC 8003A8AC 35210003 */ ori $at, $t1, 3 -/* 03B4B0 8003A8B0 38210002 */ xori $at, $at, 2 -/* 03B4B4 8003A8B4 44C1F800 */ ctc1 $at, $31 -/* 03B4B8 8003A8B8 00000000 */ nop -/* 03B4BC 8003A8BC 460021A4 */ cvt.w.s $f6, $f4 -/* 03B4C0 8003A8C0 44033000 */ mfc1 $v1, $f6 -/* 03B4C4 8003A8C4 44C9F800 */ ctc1 $t1, $31 -/* 03B4C8 8003A8C8 306500FF */ andi $a1, $v1, 0xff -/* 03B4CC 8003A8CC AFA5003C */ sw $a1, 0x3c($sp) -/* 03B4D0 8003A8D0 0C00049A */ jal func_80001268 -/* 03B4D4 8003A8D4 AFA30048 */ sw $v1, 0x48($sp) -/* 03B4D8 8003A8D8 93A5003F */ lbu $a1, 0x3f($sp) -/* 03B4DC 8003A8DC 0C00049A */ jal func_80001268 -/* 03B4E0 8003A8E0 2404000B */ li $a0, 11 -/* 03B4E4 8003A8E4 93A5003F */ lbu $a1, 0x3f($sp) -/* 03B4E8 8003A8E8 0C00049A */ jal func_80001268 -/* 03B4EC 8003A8EC 2404000F */ li $a0, 15 -/* 03B4F0 8003A8F0 93A50057 */ lbu $a1, 0x57($sp) -/* 03B4F4 8003A8F4 2404000A */ li $a0, 10 -/* 03B4F8 8003A8F8 0C00046A */ jal musicSetChlPan -/* 03B4FC 8003A8FC AFA5003C */ sw $a1, 0x3c($sp) -/* 03B500 8003A900 93A5003F */ lbu $a1, 0x3f($sp) -/* 03B504 8003A904 0C00046A */ jal musicSetChlPan -/* 03B508 8003A908 2404000B */ li $a0, 11 -/* 03B50C 8003A90C 93A5003F */ lbu $a1, 0x3f($sp) -/* 03B510 8003A910 0C00046A */ jal musicSetChlPan -/* 03B514 8003A914 2404000F */ li $a0, 15 -/* 03B518 8003A918 0C00045C */ jal func_80001170 -/* 03B51C 8003A91C 2404000A */ li $a0, 10 -/* 03B520 8003A920 0C00045C */ jal func_80001170 -/* 03B524 8003A924 2404000B */ li $a0, 11 -/* 03B528 8003A928 0C00045C */ jal func_80001170 -/* 03B52C 8003A92C 2404000F */ li $a0, 15 -/* 03B530 8003A930 8FAA0048 */ lw $t2, 0x48($sp) -/* 03B534 8003A934 240B007F */ li $t3, 127 -/* 03B538 8003A938 016A2823 */ subu $a1, $t3, $t2 -/* 03B53C 8003A93C 30AC00FF */ andi $t4, $a1, 0xff -/* 03B540 8003A940 01802825 */ move $a1, $t4 -/* 03B544 8003A944 0C00049A */ jal func_80001268 -/* 03B548 8003A948 24040003 */ li $a0, 3 -/* 03B54C 8003A94C 10000008 */ b .L8003A970 -/* 03B550 8003A950 82230036 */ lb $v1, 0x36($s1) -.L8003A954: -/* 03B554 8003A954 0C000445 */ jal func_80001114 -/* 03B558 8003A958 2404000A */ li $a0, 10 -/* 03B55C 8003A95C 0C000445 */ jal func_80001114 -/* 03B560 8003A960 2404000B */ li $a0, 11 -/* 03B564 8003A964 0C000445 */ jal func_80001114 -/* 03B568 8003A968 2404000F */ li $a0, 15 -.L8003A96C: -/* 03B56C 8003A96C 82230036 */ lb $v1, 0x36($s1) -.L8003A970: -/* 03B570 8003A970 8FA200B4 */ lw $v0, 0xb4($sp) -/* 03B574 8003A974 10600005 */ beqz $v1, .L8003A98C -/* 03B578 8003A978 24010001 */ li $at, 1 -/* 03B57C 8003A97C 10610039 */ beq $v1, $at, .L8003AA64 -/* 03B580 8003A980 00000000 */ nop -/* 03B584 8003A984 1000005A */ b .L8003AAF0 -/* 03B588 8003A988 00000000 */ nop -.L8003A98C: -/* 03B58C 8003A98C 96230034 */ lhu $v1, 0x34($s1) -/* 03B590 8003A990 000269C0 */ sll $t5, $v0, 7 -/* 03B594 8003A994 01A3082A */ slt $at, $t5, $v1 -/* 03B598 8003A998 1020000D */ beqz $at, .L8003A9D0 -/* 03B59C 8003A99C 2404000E */ li $a0, 14 -/* 03B5A0 8003A9A0 006D7023 */ subu $t6, $v1, $t5 -/* 03B5A4 8003A9A4 A62E0034 */ sh $t6, 0x34($s1) -/* 03B5A8 8003A9A8 0C00045C */ jal func_80001170 -/* 03B5AC 8003A9AC 2404000E */ li $a0, 14 -/* 03B5B0 8003A9B0 96250034 */ lhu $a1, 0x34($s1) -/* 03B5B4 8003A9B4 2404000E */ li $a0, 14 -/* 03B5B8 8003A9B8 00057A03 */ sra $t7, $a1, 8 -/* 03B5BC 8003A9BC 0C00049A */ jal func_80001268 -/* 03B5C0 8003A9C0 31E500FF */ andi $a1, $t7, 0xff -/* 03B5C4 8003A9C4 AE200030 */ sw $zero, 0x30($s1) -/* 03B5C8 8003A9C8 1000000C */ b .L8003A9FC -/* 03B5CC 8003A9CC 00001825 */ move $v1, $zero -.L8003A9D0: -/* 03B5D0 8003A9D0 0C000445 */ jal func_80001114 -/* 03B5D4 8003A9D4 A6200034 */ sh $zero, 0x34($s1) -/* 03B5D8 8003A9D8 8E230030 */ lw $v1, 0x30($s1) -/* 03B5DC 8003A9DC 24040258 */ li $a0, 600 -/* 03B5E0 8003A9E0 14600006 */ bnez $v1, .L8003A9FC -/* 03B5E4 8003A9E4 00000000 */ nop -/* 03B5E8 8003A9E8 0C01BE53 */ jal get_random_number_from_range -/* 03B5EC 8003A9EC 24050384 */ li $a1, 900 -/* 03B5F0 8003A9F0 AE220030 */ sw $v0, 0x30($s1) -/* 03B5F4 8003A9F4 AE20002C */ sw $zero, 0x2c($s1) -/* 03B5F8 8003A9F8 00401825 */ move $v1, $v0 -.L8003A9FC: -/* 03B5FC 8003A9FC 10600016 */ beqz $v1, .L8003AA58 -/* 03B600 8003AA00 00000000 */ nop -/* 03B604 8003AA04 0C000417 */ jal musicGetChanMask -/* 03B608 8003AA08 00000000 */ nop -/* 03B60C 8003AA0C 2401BFFF */ li $at, -16385 -/* 03B610 8003AA10 0041C824 */ and $t9, $v0, $at -/* 03B614 8003AA14 2401000B */ li $at, 11 -/* 03B618 8003AA18 1721000F */ bne $t9, $at, .L8003AA58 -/* 03B61C 8003AA1C 00000000 */ nop -/* 03B620 8003AA20 8E28002C */ lw $t0, 0x2c($s1) -/* 03B624 8003AA24 8FA900B4 */ lw $t1, 0xb4($sp) -/* 03B628 8003AA28 8E2A0030 */ lw $t2, 0x30($s1) -/* 03B62C 8003AA2C 01095821 */ addu $t3, $t0, $t1 -/* 03B630 8003AA30 014B082A */ slt $at, $t2, $t3 -/* 03B634 8003AA34 1020002E */ beqz $at, .L8003AAF0 -/* 03B638 8003AA38 AE2B002C */ sw $t3, 0x2c($s1) -/* 03B63C 8003AA3C 240D0001 */ li $t5, 1 -/* 03B640 8003AA40 A22D0036 */ sb $t5, 0x36($s1) -/* 03B644 8003AA44 24040258 */ li $a0, 600 -/* 03B648 8003AA48 0C01BE53 */ jal get_random_number_from_range -/* 03B64C 8003AA4C 24050384 */ li $a1, 900 -/* 03B650 8003AA50 10000027 */ b .L8003AAF0 -/* 03B654 8003AA54 AE22002C */ sw $v0, 0x2c($s1) -.L8003AA58: -/* 03B658 8003AA58 AE20002C */ sw $zero, 0x2c($s1) -/* 03B65C 8003AA5C 10000024 */ b .L8003AAF0 -/* 03B660 8003AA60 AE200030 */ sw $zero, 0x30($s1) -.L8003AA64: -/* 03B664 8003AA64 0C000417 */ jal musicGetChanMask -/* 03B668 8003AA68 00000000 */ nop -/* 03B66C 8003AA6C 2401BFFF */ li $at, -16385 -/* 03B670 8003AA70 00417024 */ and $t6, $v0, $at -/* 03B674 8003AA74 2401000B */ li $at, 11 -/* 03B678 8003AA78 15C1001A */ bne $t6, $at, .L8003AAE4 -/* 03B67C 8003AA7C 00000000 */ nop -/* 03B680 8003AA80 8FA200B4 */ lw $v0, 0xb4($sp) -/* 03B684 8003AA84 962F0034 */ lhu $t7, 0x34($s1) -/* 03B688 8003AA88 0002C1C0 */ sll $t8, $v0, 7 -/* 03B68C 8003AA8C 01F8C821 */ addu $t9, $t7, $t8 -/* 03B690 8003AA90 3328FFFF */ andi $t0, $t9, 0xffff -/* 03B694 8003AA94 29017F01 */ slti $at, $t0, 0x7f01 -/* 03B698 8003AA98 14200003 */ bnez $at, .L8003AAA8 -/* 03B69C 8003AA9C A6390034 */ sh $t9, 0x34($s1) -/* 03B6A0 8003AAA0 24097F00 */ li $t1, 32512 -/* 03B6A4 8003AAA4 A6290034 */ sh $t1, 0x34($s1) -.L8003AAA8: -/* 03B6A8 8003AAA8 8E2B002C */ lw $t3, 0x2c($s1) -/* 03B6AC 8003AAAC 00000000 */ nop -/* 03B6B0 8003AAB0 01625023 */ subu $t2, $t3, $v0 -/* 03B6B4 8003AAB4 05410002 */ bgez $t2, .L8003AAC0 -/* 03B6B8 8003AAB8 AE2A002C */ sw $t2, 0x2c($s1) -/* 03B6BC 8003AABC A2200036 */ sb $zero, 0x36($s1) -.L8003AAC0: -/* 03B6C0 8003AAC0 0C00045C */ jal func_80001170 -/* 03B6C4 8003AAC4 2404000E */ li $a0, 14 -/* 03B6C8 8003AAC8 96250034 */ lhu $a1, 0x34($s1) -/* 03B6CC 8003AACC 2404000E */ li $a0, 14 -/* 03B6D0 8003AAD0 00056A03 */ sra $t5, $a1, 8 -/* 03B6D4 8003AAD4 0C00049A */ jal func_80001268 -/* 03B6D8 8003AAD8 31A500FF */ andi $a1, $t5, 0xff -/* 03B6DC 8003AADC 10000004 */ b .L8003AAF0 -/* 03B6E0 8003AAE0 00000000 */ nop -.L8003AAE4: -/* 03B6E4 8003AAE4 A2200036 */ sb $zero, 0x36($s1) -/* 03B6E8 8003AAE8 AE20002C */ sw $zero, 0x2c($s1) -/* 03B6EC 8003AAEC AE200030 */ sw $zero, 0x30($s1) -.L8003AAF0: -/* 03B6F0 8003AAF0 0C000417 */ jal musicGetChanMask -/* 03B6F4 8003AAF4 00000000 */ nop -/* 03B6F8 8003AAF8 304FBFFF */ andi $t7, $v0, 0xbfff -/* 03B6FC 8003AAFC A62F0028 */ sh $t7, 0x28($s1) -.L8003AB00: -/* 03B700 8003AB00 C7B00098 */ lwc1 $f16, 0x98($sp) -.L8003AB04: -/* 03B704 8003AB04 8604002E */ lh $a0, 0x2e($s0) -/* 03B708 8003AB08 8E05000C */ lw $a1, 0xc($s0) -/* 03B70C 8003AB0C 8E060014 */ lw $a2, 0x14($s0) -/* 03B710 8003AB10 27A70094 */ addiu $a3, $sp, 0x94 -/* 03B714 8003AB14 0C00AC3D */ jal func_8002B0F4 -/* 03B718 8003AB18 E6100010 */ swc1 $f16, 0x10($s0) -/* 03B71C 8003AB1C 44800800 */ mtc1 $zero, $f1 -/* 03B720 8003AB20 44800000 */ mtc1 $zero, $f0 -/* 03B724 8003AB24 1040001C */ beqz $v0, .L8003AB98 -/* 03B728 8003AB28 2446FFFF */ addiu $a2, $v0, -1 -/* 03B72C 8003AB2C 04C0001A */ bltz $a2, .L8003AB98 -/* 03B730 8003AB30 00062080 */ sll $a0, $a2, 2 -/* 03B734 8003AB34 2406000B */ li $a2, 11 -/* 03B738 8003AB38 2405000E */ li $a1, 14 -/* 03B73C 8003AB3C 8FB80094 */ lw $t8, 0x94($sp) -.L8003AB40: -/* 03B740 8003AB40 00000000 */ nop -/* 03B744 8003AB44 0304C821 */ addu $t9, $t8, $a0 -/* 03B748 8003AB48 8F220000 */ lw $v0, ($t9) -/* 03B74C 8003AB4C 2484FFFC */ addiu $a0, $a0, -4 -/* 03B750 8003AB50 80430010 */ lb $v1, 0x10($v0) -/* 03B754 8003AB54 00000000 */ nop -/* 03B758 8003AB58 10C3000D */ beq $a2, $v1, .L8003AB90 -/* 03B75C 8003AB5C 00000000 */ nop -/* 03B760 8003AB60 10A3000B */ beq $a1, $v1, .L8003AB90 -/* 03B764 8003AB64 00000000 */ nop -/* 03B768 8003AB68 C44A0008 */ lwc1 $f10, 8($v0) -/* 03B76C 8003AB6C 00000000 */ nop -/* 03B770 8003AB70 460054A1 */ cvt.d.s $f18, $f10 -/* 03B774 8003AB74 4632003C */ c.lt.d $f0, $f18 -/* 03B778 8003AB78 00000000 */ nop -/* 03B77C 8003AB7C 45000004 */ bc1f .L8003AB90 -/* 03B780 8003AB80 00000000 */ nop -/* 03B784 8003AB84 C4480000 */ lwc1 $f8, ($v0) -/* 03B788 8003AB88 00000000 */ nop -/* 03B78C 8003AB8C E6080010 */ swc1 $f8, 0x10($s0) -.L8003AB90: -/* 03B790 8003AB90 0481FFEB */ bgez $a0, .L8003AB40 -/* 03B794 8003AB94 8FB80094 */ lw $t8, 0x94($sp) -.L8003AB98: -/* 03B798 8003AB98 8E080078 */ lw $t0, 0x78($s0) -/* 03B79C 8003AB9C A6000002 */ sh $zero, 2($s0) -/* 03B7A0 8003ABA0 11000004 */ beqz $t0, .L8003ABB4 -/* 03B7A4 8003ABA4 A6000004 */ sh $zero, 4($s0) -/* 03B7A8 8003ABA8 C6040010 */ lwc1 $f4, 0x10($s0) -/* 03B7AC 8003ABAC 3C018012 */ lui $at, %hi(D_8011D4D0) # $at, 0x8012 -/* 03B7B0 8003ABB0 E424D4D0 */ swc1 $f4, %lo(D_8011D4D0)($at) -.L8003ABB4: -/* 03B7B4 8003ABB4 83A9006B */ lb $t1, 0x6b($sp) -/* 03B7B8 8003ABB8 2407000C */ li $a3, 12 -/* 03B7BC 8003ABBC 11200009 */ beqz $t1, .L8003ABE4 -/* 03B7C0 8003ABC0 3C013F80 */ li $at, 0x3F800000 # 1.000000 -/* 03B7C4 8003ABC4 C60C000C */ lwc1 $f12, 0xc($s0) -/* 03B7C8 8003ABC8 C60E0010 */ lwc1 $f14, 0x10($s0) -/* 03B7CC 8003ABCC 8E060014 */ lw $a2, 0x14($s0) -/* 03B7D0 8003ABD0 44813000 */ mtc1 $at, $f6 -/* 03B7D4 8003ABD4 AFA00018 */ sw $zero, 0x18($sp) -/* 03B7D8 8003ABD8 AFA00010 */ sw $zero, 0x10($sp) -/* 03B7DC 8003ABDC 0C00FF11 */ jal func_8003FC44 -/* 03B7E0 8003ABE0 E7A60014 */ swc1 $f6, 0x14($sp) -.L8003ABE4: -/* 03B7E4 8003ABE4 C6300004 */ lwc1 $f16, 4($s1) -/* 03B7E8 8003ABE8 02002025 */ move $a0, $s0 -/* 03B7EC 8003ABEC 460082A1 */ cvt.d.s $f10, $f16 -/* 03B7F0 8003ABF0 444BF800 */ cfc1 $t3, $31 -/* 03B7F4 8003ABF4 00000000 */ nop -/* 03B7F8 8003ABF8 35610003 */ ori $at, $t3, 3 -/* 03B7FC 8003ABFC 38210002 */ xori $at, $at, 2 -/* 03B800 8003AC00 44C1F800 */ ctc1 $at, $31 -/* 03B804 8003AC04 00000000 */ nop -/* 03B808 8003AC08 462054A4 */ cvt.w.d $f18, $f10 -/* 03B80C 8003AC0C 440A9000 */ mfc1 $t2, $f18 -/* 03B810 8003AC10 44CBF800 */ ctc1 $t3, $31 -/* 03B814 8003AC14 0C018703 */ jal func_80061C0C -/* 03B818 8003AC18 A60A0018 */ sh $t2, 0x18($s0) -/* 03B81C 8003AC1C 8FA500B4 */ lw $a1, 0xb4($sp) -/* 03B820 8003AC20 0C02BF0F */ jal func_800AFC3C -/* 03B824 8003AC24 02002025 */ move $a0, $s0 -/* 03B828 8003AC28 8FBF002C */ lw $ra, 0x2c($sp) -/* 03B82C 8003AC2C 8FB00024 */ lw $s0, 0x24($sp) -/* 03B830 8003AC30 8FB10028 */ lw $s1, 0x28($sp) -/* 03B834 8003AC34 03E00008 */ jr $ra -/* 03B838 8003AC38 27BD00B0 */ addiu $sp, $sp, 0xb0 - diff --git a/include/structs.h b/include/structs.h index b329bfb9..6f3f58ed 100644 --- a/include/structs.h +++ b/include/structs.h @@ -1265,16 +1265,30 @@ typedef struct Object_FogChanger { } Object_FogChanger; typedef struct Object_Taj { - /* 0x00 */ f32 unk0; - /* 0x04 */ u8 pad4[0x9]; - /* 0x0D */ u8 unkD; - /* 0x0E */ u8 padE[0x1A]; - /* 0x28 */ s16 unk28; - /* 0x2A */ u8 pad2A[0x2]; - /* 0x2C */ s32 unk2C; - /* 0x30 */ u8 pad30[0x4]; - /* 0x34 */ s16 unk34; - /* 0x36 */ s8 unk36; + /* 0x00 */ f32 unk0; + /* 0x04 */ f32 unk4; + /* 0x08 */ s32 unk8; + /* 0x0C */ s8 unkC; + /* 0x0D */ u8 unkD; + /* 0x0E */ u8 unkE; + /* 0x0F */ u8 unkF; + /* 0x10 */ u8 unk10; + /* 0x11 */ u8 unk11; + /* 0x12 */ u8 unk12; + /* 0x13 */ u8 unk13; + /* 0x14 */ f32 unk14; + /* 0x18 */ f32 unk18; + /* 0x1C */ s16 unk1C; + /* 0x1E */ s16 unk1E; + /* 0x20 */ s16 unk20; + /* 0x22 */ s16 unk22; + /* 0x24 */ u8 pad24[0x4]; + /* 0x28 */ s16 unk28; + /* 0x2A */ u8 pad2A[0x2]; + /* 0x2C */ s32 unk2C; + /* 0x30 */ s32 unk30; + /* 0x34 */ u16 unk34; + /* 0x36 */ s8 unk36; } Object_Taj; typedef struct Object_TT { @@ -1561,17 +1575,24 @@ typedef struct Object { } Object; // Unused -typedef struct GhostHeaderChecksum { - u8 levelID; - u8 vehicleID; // 0 = Car, 1 = Hovercraft, 2 = Plane -} GhostHeaderChecksum; +typedef struct GhostHeaderUnk0 { + u8 levelID; + u8 vehicleID; // 0 = Car, 1 = Hovercraft, 2 = Plane +} GhostHeaderUnk0; /* Size: 8 bytes */ typedef struct GhostHeader { - //GhostHeaderChecksum checksum; - s16 checksum; - u8 characterID; // 9 = T.T. - u8 unk3; // Might just be padding? + union { + GhostHeaderUnk0 unk0; + s16 checksum; + }; + union { + struct { + u8 characterID; // 9 = T.T. + u8 unk3; + }; + s16 unk2; + }; s16 time; // In frames, where 60 frames = 1 second. s16 nodeCount; } GhostHeader; diff --git a/livediff.sh b/livediff.sh index 37f6cbcf..0489c86e 100755 --- a/livediff.sh +++ b/livediff.sh @@ -1 +1 @@ -python3 tools/python/diff.py -smwo3 --line-numbers "$@" \ No newline at end of file +python3 tools/python/diff.py -smwo3 --line-numbers --max-lines 2048 "$@" \ No newline at end of file diff --git a/src/memory.h b/src/memory.h index 3d403744..29e2c280 100644 --- a/src/memory.h +++ b/src/memory.h @@ -25,6 +25,8 @@ // ??? #define COLOUR_TAG_GREY 0x7F7F7FFF // ??? +#define COLOUR_TAG_SEMITRANS_GREY 0x80808080 +// ??? #define COLOUR_TAG_ORANGE 0xFF7F7FFF // ??? #define COLOUR_TAG_BLACK 0x000000FF diff --git a/src/menu.c b/src/menu.c index 5a408985..92011af4 100644 --- a/src/menu.c +++ b/src/menu.c @@ -96,9 +96,9 @@ s8 gControllersYAxisDirection[4]; // Y axis (-1 = down, 1 = up) for controller s8 gControllersXAxis[4]; s8 gControllersYAxis[4]; s32 sUnused_80126470; // Set to 0 in the magic codes menu and 0xD000 elsewhere, otherwise unused. -s32 D_80126474; -s32 D_80126478; -s32 D_8012647C; +s32 gTrackSelectViewPortHalfX; +s32 gTrackSelectViewPortHalfY; +s32 gTrackSelectViewPortX; s32 gTrackSelectViewportY; s32 D_80126484; s32 D_80126488; @@ -113,17 +113,16 @@ SavefileInfo gSavefileInfo[4]; s32 D_801264D0; s32 D_801264D4; s8 gDialogueSubmenu; -s32 D_801264DC; +u8 *D_801264DC; //gGhostLevelIDs? s8 D_801264E0; s8 D_801264E1; s8 sCurrentMenuID; -s32 D_801264E4; +u8 *D_801264E4; //gGhostSomethings? s32 D_801264E8; -s32 D_801264EC; +u8 *D_801264EC; //gGhostVehicleIds? s32 D_801264F0[2]; -s32 D_801264F8[2]; -s32 D_80126500; +s16 *D_801264F8[3]; //gGhostChecksums? s8 sDialogueOptionMax; s32 D_80126508; s16 D_8012650C; @@ -253,7 +252,7 @@ s32 D_80126BE0; s32 D_80126BE4; s32 D_80126BE8; f32 D_80126BEC; -s32 D_80126BF0[8]; +char *D_80126BF0[8]; s32 D_80126C10; s32 D_80126C14; s32 D_80126C18; @@ -273,10 +272,7 @@ s16 gOptionsMenuItemIndex; s32 D_80126C48; s16 D_80126C4C; f32 D_80126C50; -s8 D_80126C54; -s8 D_80126C55; -s8 D_80126C56; -s8 D_80126C57; +unk80126C54 D_80126C54; u8 D_80126C58[20]; s32 *D_80126C6C; s32 D_80126C70; @@ -803,6 +799,7 @@ ButtonElement D_800E0700 = { 80, 152, 160, 40, 4, 4, 80, 14 }; +// Often access like D_800E0710[i * 3 + 1]. Maybe it's s16[4][3]? s16 D_800E0710[16] = { 0x0E, 0x0F, 0x00, 0x10, 0x11, 0x20, 0x12, 0x13, @@ -1488,11 +1485,7 @@ FadeTransition D_800E1DE8 = FADE_TRANSITION(0, FADE_COLOR_BLACK, 120, -1); char gRareCopyrightString[24] = "(C) COPYRIGHT RARE 1997"; -//Probably a FadeTransition, but that won't be certain -//FadeTransition D_800E1E08 = FADE_TRANSITION(0, FADE_COLOR_BLACK, 52, -1); -s16 D_800E1E08[4] = { - 0, 0, 0x34, -1 -}; +FadeTransition D_800E1E08 = FADE_TRANSITION(0, FADE_COLOR_BLACK, 52, -1); char *D_800E1E10 = " (ADV."; @@ -2534,7 +2527,7 @@ s32 menu_title_screen_loop(s32 updateRate) { if ((gTitleDemoTimer < 60) && ((gTitleDemoTimer + updateRate) >= 60)) { set_music_fade_timer(-0x300); sp28 = 0; - func_800C01D8((FadeTransition* ) D_800E1E08); + func_800C01D8(&D_800E1E08); } if (gTitleDemoTimer <= 0) { sp28 = 1; @@ -5536,10 +5529,10 @@ void menu_track_select_init(void) { D_800DF488 = 0; } videoWidthAndHeight = get_video_width_and_height_as_s32(); - D_8012647C = GET_VIDEO_WIDTH(videoWidthAndHeight); + gTrackSelectViewPortX = GET_VIDEO_WIDTH(videoWidthAndHeight); gTrackSelectViewportY = GET_VIDEO_HEIGHT(videoWidthAndHeight); - D_80126474 = D_8012647C >> 1; - D_80126478 = gTrackSelectViewportY >> 1; + gTrackSelectViewPortHalfX = gTrackSelectViewPortX >> 1; + gTrackSelectViewPortHalfY = gTrackSelectViewportY >> 1; gTrackSelectX = (f32) D_801269C8 * 320.0f; gTrackSelectY = (f32) D_801269CC * (f32) -gTrackSelectViewportY; gSelectedTrackX = -1; @@ -5591,7 +5584,7 @@ void menu_track_select_init(void) { } D_80126924 = 0; func_80078AAC(func_8008F618); - func_80066940(0, 80, D_80126478 - (D_80126478 >> 1), 240, (D_80126478 >> 1) + D_80126478); + func_80066940(0, 80, gTrackSelectViewPortHalfY - (gTrackSelectViewPortHalfY >> 1), 240, (gTrackSelectViewPortHalfY >> 1) + gTrackSelectViewPortHalfY); func_80066610(); func_80066818(0, 0); D_800E097C = 1; @@ -5984,13 +5977,13 @@ void func_80090918(s32 updateRate) { var_t1 = 20; } var_t2 = 160; - var_t0 = D_80126478; + var_t0 = gTrackSelectViewPortHalfY; if (var_t1 < 20) { var_t2 += (D_801269E8 - gTrackSelectX); var_t0 -= (D_801269EC - gTrackSelectY); } - var_t3 = (((var_t1 + 20) * D_80126478) / 40) + var_t0; - var_a2 = var_t0 - (((var_t1 + 20) * D_80126478) / 40); + var_t3 = (((var_t1 + 20) * gTrackSelectViewPortHalfY) / 40) + var_t0; + var_a2 = var_t0 - (((var_t1 + 20) * gTrackSelectViewPortHalfY) / 40); func_80066940(0, (var_t2 - (var_t1 * 4)) - 80, var_a2, (var_t1 * 4) + var_t2 + 80, var_t3); gMenuImageStack[4].unk8 = (f32) (sMenuImageProperties[4].unk8 * (1.0f + ((f32) var_t1 / 20.0f))); gMenuImageStack[6].unk8 = (f32) (sMenuImageProperties[6].unk8 * (1.0f + ((f32) var_t1 / 20.0f))); @@ -6485,7 +6478,7 @@ void render_adventure_track_setup(s32 arg0, s32 arg1, s32 arg2) { s32 sp58; char *filename; Settings* settings; - char* levelName; + char *levelName; filename = NULL; settings = get_settings(); @@ -6992,23 +6985,23 @@ void func_80094688(s32 arg0, s32 arg1) { D_80126A90 = 0; if (gNumberOfActivePlayers == 1 && gTrophyRaceWorldId == 0) { if (is_in_tracks_mode() == 1) { - D_80126BF0[0] = gMenuText[23]; - D_80126BF0[1] = gMenuText[24]; - D_80126BF0[2] = gMenuText[26]; + D_80126BF0[0] = gMenuText[ASSET_MENU_TEXT_TRYAGAIN]; + D_80126BF0[1] = gMenuText[ASSET_MENU_TEXT_SELECTTRACK]; + D_80126BF0[2] = gMenuText[ASSET_MENU_TEXT_SELECTCHARACTER]; D_80126C14 = 3; D_80126A90 = 1; } else { if (arg0 == 0) { - D_80126BF0[0] = gMenuText[23]; + D_80126BF0[0] = gMenuText[ASSET_MENU_TEXT_TRYAGAIN]; D_80126C14 = 1; } else { D_80126C14 = 0; } - D_80126BF0[D_80126C14] = gMenuText[25]; - D_80126C14 = D_80126C14 + 1; + D_80126BF0[D_80126C14] = gMenuText[ASSET_MENU_TEXT_RETURNTOLOBBY]; + D_80126C14++; } - D_80126BF0[D_80126C14] = gMenuText[28]; - D_80126C14 = D_80126C14 + 1; + D_80126BF0[D_80126C14] = gMenuText[ASSET_MENU_TEXT_QUIT]; + D_80126C14++; D_801263E0 = 0; } else { D_801263E0 = 7; @@ -7020,7 +7013,7 @@ void func_80094688(s32 arg0, s32 arg1) { D_800DF460 = 0; gMenuOption = 0; gIgnorePlayerInput = 1; - *((s32*)(&D_80126C54)) = -1; + D_80126C54.unk0_s32 = -1; gMenuSubOption = 0; D_80126C1C = NULL; D_80126A98 = 0; @@ -7029,40 +7022,40 @@ void func_80094688(s32 arg0, s32 arg1) { } if (D_80126C28) { D_801263E0 = 8; - gMenuDelay = 0x64; + gMenuDelay = 100; } if (get_render_context()) { D_801263E0 = 7; } reset_controller_sticks(); func_8006D8E0(arg0); - D_8012647C = get_video_width_and_height_as_s32(); - gTrackSelectViewportY = (D_8012647C >> 0x10) & 0xFFFF; - D_8012647C = D_8012647C & 0xFFFF; - D_80126474 = D_8012647C >> 1; - D_80126478 = gTrackSelectViewportY >> 1; + gTrackSelectViewPortX = get_video_width_and_height_as_s32(); + gTrackSelectViewportY = GET_VIDEO_HEIGHT(gTrackSelectViewPortX) & 0xFFFF; + gTrackSelectViewPortX = GET_VIDEO_WIDTH(gTrackSelectViewPortX); + gTrackSelectViewPortHalfX = gTrackSelectViewPortX >> 1; + gTrackSelectViewPortHalfY = gTrackSelectViewportY >> 1; if ((gNumberOfActivePlayers == 1) && (gTrophyRaceWorldId == 0)) { - *((s32*)(&D_80126C54)) = 0; + D_80126C54.unk0_s32 = 0; arg1 = (s8) header->world - 1; - var_v1 = &D_800E0710[3*arg1]; + var_v1 = &D_800E0710[arg1 * 3]; if (var_v1[0] != -1) { - func_8009C6D4((s32) var_v1[0]); - D_80126BB8 = (s32) D_80126550[var_v1[0]]; + func_8009C6D4(var_v1[0]); + D_80126BB8 = D_80126550[var_v1[0]]; } else { D_80126BB8 = 0; } if (var_v1[1] != -1) { - func_8009C6D4((s32) var_v1[1]); - D_80126BBC = (s32) D_80126550[var_v1[1]]; + func_8009C6D4(var_v1[1]); + D_80126BBC = D_80126550[var_v1[1]]; } else { D_80126BBC = 0; } - D_80126BC0 = (s32) var_v1[2]; + D_80126BC0 = var_v1[2]; if (get_render_context() == 0) { - func_80078170((u32) D_80126BB8, (u32) D_80126BBC, (u32) D_80126BC0); + func_80078170(D_80126BB8, D_80126BBC, D_80126BC0); } func_80066818(0, 1); - func_80066940(0, 0, 0, D_8012647C, gTrackSelectViewportY); + func_80066940(0, 0, 0, gTrackSelectViewPortX, gTrackSelectViewportY); } func_80000968(2); } @@ -7160,9 +7153,9 @@ void menu_11_init(void) { s8 temp_a2; settings = get_settings(); - D_80126BF0[0] = (s32)gMenuText[ASSET_MENU_TEXT_SELECTTRACK]; - D_80126BF0[1] = (s32)gMenuText[ASSET_MENU_TEXT_TRYAGAIN]; - D_80126BF0[2] = (s32)gMenuText[ASSET_MENU_TEXT_QUIT]; + D_80126BF0[0] = gMenuText[ASSET_MENU_TEXT_SELECTTRACK]; + D_80126BF0[1] = gMenuText[ASSET_MENU_TEXT_TRYAGAIN]; + D_80126BF0[2] = gMenuText[ASSET_MENU_TEXT_QUIT]; D_80126C14 = 3; for (i = 0; i < gNumberOfActivePlayers; i++) { @@ -7713,10 +7706,10 @@ GLOBAL_ASM("asm/non_matchings/menu/func_800998E0.s") // Should be functionally equivalent void menu_ghost_data_init(void) { s32 i; - s32 sp70; + SIDeviceStatus pakStatus; - sp70 = func_800756D4(D_801264D0, &D_801264DC, &D_801264EC, &D_801264E4, &D_801264F8); - if (sp70 == 0) { + pakStatus = func_800756D4(D_801264D0, &D_801264DC, &D_801264EC, &D_801264E4, &D_801264F8); + if (pakStatus == CONTROLLER_PAK_GOOD) { func_8009963C(); } func_8009C674(&D_800E1708); @@ -7762,7 +7755,7 @@ void menu_ghost_data_init(void) { gOpacityDecayTimer = 0; gMenuDelay = 0; D_80126498 = 0; - if (sp70 == 0) { + if (pakStatus == CONTROLLER_PAK_GOOD) { func_800C01D8(&sMenuTransitionFadeOut); return; } @@ -8411,9 +8404,9 @@ GLOBAL_ASM("asm/non_matchings/menu/func_8009CA60.s") * Comes in wood, iron and gold colours. */ void render_track_selection_viewport_border(ObjectModel *objMdl) { - s32 pad1[4]; + UNUSED s32 pad1[4]; s32 sp5C; - s32 pad2[4]; + UNUSED s32 pad2[4]; TextureHeader *tex; Triangle *tris; s32 triOffset; diff --git a/src/menu.h b/src/menu.h index 0dfdd154..30a79d0a 100644 --- a/src/menu.h +++ b/src/menu.h @@ -137,6 +137,18 @@ typedef struct unk801263C0 { }; } unk801263C0; +typedef struct unk80126C54 { + union { + struct { + u8 unk0; + u8 unk1; + u8 unk2; + u8 unk3; + }; + s32 unk0_s32; + }; +} unk80126C54; + /* Size: 0x30 bytes */ typedef struct unk800DF83C { char *unk0; // Pointer to ascii text. @@ -641,10 +653,6 @@ extern s16 D_800E1DC8[16]; extern char gRareCopyrightString[24]; -//Probably a FadeTransition -//extern FadeTransition D_800E1E08; -extern s16 D_800E1E08[4]; - extern char *D_800E1E10; extern s32 D_800E1E14; diff --git a/src/object_functions.c b/src/object_functions.c index 3fee5640..223c1593 100644 --- a/src/object_functions.c +++ b/src/object_functions.c @@ -23,19 +23,19 @@ #include "game_ui.h" #include "waves.h" #include "unknown_003260.h" -#include "objects.h" #include "math_util.h" #include "game_text.h" +#include "fade_transition.h" +#include "unknown_005740.h" +#include "object_models.h" +#include "lib/src/libc/rmonPrintf.h" /************ .data ************/ // Unsure about the signed/unsigned with these arrays. -u16 D_800DC970[4] = { - 0x40FF, 0xFFFF, 0x0007, 0x0003 -}; -u16 D_800DC978[4] = { - 0x0000, 0x0000, 0x001E, 0xFFFF -}; +FadeTransition D_800DC970 = FADE_TRANSITION(0x40, FADE_COLOR_WHITE, 7, 3); +FadeTransition D_800DC978 = FADE_TRANSITION(0x00, FADE_COLOR_BLACK, 30, 0xFFFF); + u16 D_800DC980[20] = { 0xFF00, 0x0100, 0x0000, 0xFFFF, 0xFFFF, 0x0100, 0x0100, 0x0000, @@ -123,8 +123,8 @@ f32 D_8011D4D0; s32 gTajSoundMask; s32 gTTSoundMask; s32 D_8011D4DC; -s16 D_8011D4E0; -s16 D_8011D4E2; +s8 D_8011D4E0; +s16 D_8011D4E2; // Taj Voice clips /******************************/ @@ -507,7 +507,7 @@ void obj_init_trophycab(Object *obj, LevelObjectEntry_TrophyCab *entry) { void obj_loop_trophycab(Object *obj, s32 updateRate) { Settings* settings; Object_TrophyCabinet *gfxData; - f32 dist; + UNUSED f32 dist; LevelObjectEntryCommon newObject; LevelHeader* header; Object* tempObj; @@ -1723,14 +1723,612 @@ void obj_init_parkwarden(Object *obj, UNUSED LevelObjectEntry_Parkwarden *entry) temp->unk34 = 0; temp->unk36 = 0; gTajSoundMask = 0; - D_8011D4E2 = 0x10F; + D_8011D4E2 = SOUND_VOICE_TAJ_HELLO; } -void func_80039320(s16 arg0) { - D_8011D4E2 = arg0; +void func_80039320(s16 voiceClip) { + //Set to SOUND_VOICE_TAJ_CHALLENGE_RACE in func_800CC7C + D_8011D4E2 = voiceClip; } -GLOBAL_ASM("asm/non_matchings/unknown_032760/obj_loop_parkwarden.s") +void obj_loop_parkwarden(Object *obj, s32 updateRate) { + f32 updateRateF; + f32 xPosDiff; + f32 updateRateF2; + f32 zPosDiff; + f32 distance; + f32 sp98_yPos; + struct TempStruct8 **sp94; + Object *racerObj; + s32 sp3C; + Object *temp_v0_12; + s32 var_a2; + Object **racerObjs; + s32 var_a2_2; + s32 numRacers; + Object_Taj *taj; + Object_64 *racer64; + u32 buttonsPressed; + s8 sp6B; + LevelHeader *levelHeader; + ObjectSegment *temp_v0_22; + f32 var_f2; + s32 arctan; + s32 temp; + + sp6B = 0; + sp98_yPos = obj->segment.trans.y_position; + + updateRateF2 = updateRate; + updateRateF = updateRateF2; + if (osTvType == TV_TYPE_PAL) { + updateRateF *= 1.2; + } + taj = (Object_Taj *) obj->unk64; + levelHeader = get_current_level_header(); + obj->unk74 = 0; + if (obj->segment.unk18 == 0 && taj->unk4 > 1.0) { + taj->unk4 = 0.0f; + } + distance = 0.0f; + obj->segment.x_velocity = 0.0f; + obj->segment.z_velocity = 0.0f; + racerObj = get_racer_object(PLAYER_ONE); + if (racerObj != NULL) { + racer64 = racerObj->unk64; + xPosDiff = (racerObj->segment.trans.x_position - (racer64->racer.ox1 * 50.0f)) - obj->segment.trans.x_position; + zPosDiff = (racerObj->segment.trans.z_position - (racer64->racer.oz1 * 50.0f)) - obj->segment.trans.z_position; + distance = sqrtf((xPosDiff * xPosDiff) + (zPosDiff * zPosDiff)); + } + buttonsPressed = get_buttons_pressed_from_player(PLAYER_ONE); + var_a2 = FALSE; + if ( + (obj->unk78 == NULL) && + (distance < 300.0) && + ( + ((obj->unk4C->unk14 & 8) && (racerObj == obj->unk4C->unk0)) || + (buttonsPressed & Z_TRIG) + ) + ) { + if (buttonsPressed & Z_TRIG) { + play_char_horn_sound(racerObj, &racer64->racer); + } + arctan = arctan2_f(racerObj->segment.trans.x_position - obj->segment.trans.x_position, racerObj->segment.trans.z_position - obj->segment.trans.z_position) - (racerObj->segment.trans.y_rotation & 0xFFFF); + if (arctan > 0x8000) { + arctan = -0xFFFF; + } + if (arctan < -0x8000) { + arctan = 0xFFFF; + } + var_a2 = FALSE; + if (arctan > -0x2000 && arctan < 0x2000) { + var_a2 = TRUE; + } + } + obj->unk4C->unk14 = 1; + if ((func_80052188() || (var_a2)) && ((obj->unk78 == NULL || obj->unk78 == 31))) { + func_800012E8(); + set_music_player_voice_limit(24); + play_music(SEQUENCE_ENTRANCED); + if (racerObj != NULL) { + func_80006AC8(racerObj); + racer64->racer.unk118 = 0; + } + func_80008140(); + arctan = arctan2_f( + racerObj->segment.trans.x_position - obj->segment.trans.x_position, + racerObj->segment.trans.z_position - obj->segment.trans.z_position + ); + arctan -= (racerObj->segment.trans.y_rotation & 0xFFFF); + if((arctan > 0x8000)) { + // Probably had a debug statement here. + if ((obj->unk78) && (!obj->unk78) && (!obj->unk78)){} // Fake + } + if (var_a2) { + obj->unk78 = 1; + } else { + obj->unk78 = 10; + sp6B = 1; + } + func_80030750(0, &taj->unk20, &taj->unk22, &taj->unk11, &taj->unk12, &taj->unk13); + func_80030DE0(0, 0xFF, 0, 0x78, 0x3C0, 0x44C, 0xF0); + taj->unk4 = 0.0f; + } + + if (!(obj->unk78 == 0 || obj->unk78 == 30 || obj->unk78 == 20 || obj->unk78 == 21)) { + func_8005A3B0(); + func_800AB194(3); + } + + switch (obj->unk78) { + case 3: + case 4: + case 5: + case 6: + var_a2_2 = func_8009CFEC(0); + break; + default: + func_8009CF68(0); + var_a2_2 = 0; + break; + } + + switch (obj->unk78) { + case 1: + case 2: + case 3: + case 4: + case 7: + case 10: + case 11: + case 15: + case 20: + case 21: + func_8006F388(1); + break; + } + + if (obj->unk78 != 0 && var_a2_2 != 0 && obj->unk78 < 4) { + obj->unk78 = 4; + } + switch (obj->unk78 - 1) { + case 0: + obj->segment.unk3B = 0; + taj->unkD = 0xFF; + if (distance < 100.0) { + func_8005A3C0(); + } + if (distance > 10.0) { + arctan = (arctan2_f(xPosDiff / distance, zPosDiff / distance) - (obj->segment.trans.y_rotation & 0xFFFF)) + 0x8000; + if (arctan > 0x8000) { + arctan -= 0xFFFF; + } + if (arctan < -0x8000) { + arctan += 0xFFFF; + } + if (arctan > 0 && arctan < 16) { + arctan = 16; + } + obj->segment.trans.y_rotation += (arctan >> 4); + var_f2 = -2.0f; + if (arctan > 0x800 || arctan < -0x800) { + var_f2 = -0.5f; + } + taj->unk14 += (var_f2 - taj->unk14) * 0.125; + obj->segment.x_velocity = sins_f(obj->segment.trans.y_rotation) * taj->unk14; + obj->segment.z_velocity = coss_f(obj->segment.trans.y_rotation) * taj->unk14; + taj->unk4 -= taj->unk14 * 2 * updateRateF; + } else { + obj->unk78 = 2; + } + func_80011570(obj, obj->segment.x_velocity * updateRateF, obj->segment.y_velocity * updateRateF, obj->segment.z_velocity * updateRateF); + break; + case 1: + func_8005A3C0(); + obj->segment.unk3B = 0; + taj->unk4 += updateRateF * 2.0; + arctan = (racerObj->segment.trans.y_rotation - (obj->segment.trans.y_rotation & 0xFFFF)) + 0x8000; + if (arctan > 0x8000) { + arctan -= 0xFFFF; + } + if (arctan < -0x8000) { + arctan += 0xFFFF; + } + if (arctan > 0 && arctan < 16) { + arctan = 16; + } + obj->segment.trans.y_rotation += arctan >> 3; + if (arctan < 0x400 && arctan > -0x400 && distance < 2.0) { + obj->unk78 = 3; + taj->unk4 = 0; + play_taj_voice_clip(D_8011D4E2, 1); + D_8011D4E2 = SOUND_VOICE_TAJ_HELLO; + } + obj->segment.x_velocity = xPosDiff * 0.125; + obj->segment.y_velocity = 0; + obj->segment.z_velocity = zPosDiff * 0.125; + func_80011570(obj, obj->segment.x_velocity * updateRateF, obj->segment.y_velocity * updateRateF, obj->segment.z_velocity * updateRateF); + break; + case 2: + obj->segment.unk3B = 1; + taj->unk14 = 0.0f; + taj->unk4 += updateRateF * 1.0; + if (taj->unk4 > 77.0) { + taj->unk4 = 77.0; + taj->unk18 = -1.0f; + obj->unk78 = 4; + } + arctan = (racerObj->segment.trans.y_rotation - (obj->segment.trans.y_rotation & 0xFFFF)) + 0x8000; + if (arctan > 0x8000) { + arctan -= 0xFFFF; + } + if (arctan < -0x8000) { + arctan += 0xFFFF; + } + if (arctan > 0 && arctan < 16) { + arctan = 16; + } + obj->segment.trans.y_rotation = obj->segment.trans.y_rotation + (arctan >> 4); + func_8005A3C0(); + break; + case 3: + obj->segment.unk3B = 4; + taj->unk4 += updateRateF * 1.0; + func_8005A3C0(); + if (var_a2_2 == 3 || var_a2_2 == 4) { + obj->unk78 = (var_a2_2 == 4) ? 8 : 7; + taj->unk4 = 0.1f; + obj->segment.unk3B = 2; + taj->unk1C = 0; + play_taj_voice_clip(SOUND_VOICE_TAJ_BYE, 1); + func_80030DE0(0, taj->unk11, taj->unk12, taj->unk13, taj->unk20, taj->unk22, 0xB4); + set_music_player_voice_limit(levelHeader->voiceLimit); + play_music(levelHeader->music); + func_80001074(levelHeader->instruments); + func_80008168(); + } + if (var_a2_2 & 0x80) { + D_8011D4E0 = var_a2_2 & 0x7F; + if (D_8011D4E0 != racer64->racer.unk1D6) { + obj->unk78 = 5; + taj->unk4 = 0; + // Voice clips: Abrakadabra, Alakazam, Alakazoom? + play_taj_voice_clip((racer64->racer.unk1D6 + 0x235), 1); + } else { + set_menu_id_if_option_equal(0x62, 2); + } + } + if (var_a2_2 & 0x40) { + D_8011D4E0 = var_a2_2 & 0xF; + if (D_8011D4E0 != racer64->racer.unk1D6) { + D_8011D4E0 |= 0x80; + obj->unk78 = 5; + taj->unk4 = 0.0f; + // Voice clips: Abrakadabra, Alakazam, Alakazoom? + play_taj_voice_clip((racer64->racer.unk1D6 + 0x235), 1); + } else { + obj->unk78 = 0xF; + func_800C01D8(&D_800DC978); + sp6B = 1; + play_taj_voice_clip(SOUND_WHOOSH4, 1); + taj->unk4 = 0.0f; + } + } + break; + case 4: + obj->segment.unk3B = 5; + func_8005A3C0(); + taj->unk4 += updateRateF * 2.0; + if (taj->unk4 > 25.0) { + obj->unk74 = 11; + } + if (taj->unk4 > 50.0) { + obj->unk74 = 0; + } + if (taj->unk4 > 60.0) { + taj->unk4 = 60.0f; + if (racer64->racer.transparency > (updateRate * 16)) { + racer64->racer.transparency -= (updateRate * 16); + } else { + racer64->racer.transparency = 0; + func_8000E1EC(racerObj, D_8011D4E0 & 0xF); + obj->unk78 = 6; + play_sound_global(SOUND_CYMBAL, NULL); + func_800C01D8(&D_800DC970); + } + } + break; + case 5: + func_8005A3C0(); + if (racerObj != NULL) { + if (taj->unk4 != 0.0f) { + taj->unk4 += 8.0; + } + var_a2 = updateRate; + if (var_a2 > 4) { + var_a2 = 4; + } + var_a2 <<= 5; + if (racer64->racer.transparency < (255 - (var_a2))) { + racer64->racer.transparency += var_a2; + } else { + racer64->racer.transparency = 255; + if (taj->unk4 == 0.0) { + if (D_8011D4E0 & 0x80) { + func_800C01D8(&D_800DC978); + sp6B = 1; + obj->unk78 = 0xF; + play_sound_global(SOUND_WHOOSH4, NULL); + taj->unk4 = 0.0f; + } else { + obj->unk78 = 4; + set_menu_id_if_option_equal(0x62, 2); + } + } + } + } + break; + case 6: + case 7: + if (taj->unk4 != 0.0) { + taj->unk4 = taj->unk4 + (0.5 * updateRateF); + } + if (taj->unk4 == 0) { + sp6B = 1; + if (obj->unk78 == 8) { + func_80022CFC( + obj->segment.unk2C.half.lower, + obj->segment.trans.x_position - (racer64->racer.ox1 * 50.0f), + obj->segment.trans.y_position, + obj->segment.trans.z_position - (racer64->racer.oz1 * 50.0f) + ); + } + obj->unk78 = 0x14; + play_sound_global(SOUND_WHOOSH4, NULL); + racer64->racer.unk118 = func_80004B40(racer64->racer.characterId, racer64->racer.unk1D6); + } + break; + case 9: + obj->segment.unk3B = 3; + taj->unkD = 0xFF; + taj->unk14 = 0.0f; + taj->unk4 += updateRateF * 2.0; + if (taj->unk4 > 79.0f) { + taj->unk4 = 79.0f; + } + + var_a2 = updateRate * 8; + if (taj->unk4 < 20.0f) { + var_a2 = 0; + } + if (obj->segment.unk38.half.lower > var_a2) { + obj->segment.unk38.half.lower -= var_a2; + } else { + play_sound_global(SOUND_WHOOSH4, NULL); + sp6B = 1; + obj->segment.unk38.half.lower = 0; + obj->unk78 = 0xB; + obj->segment.trans.x_position = racerObj->segment.trans.x_position - (racer64->racer.ox1 * 150.0f); + obj->segment.trans.z_position = racerObj->segment.trans.z_position - (racer64->racer.oz1 * 150.0f); + obj->segment.unk2C.half.lower = get_level_segment_index_from_position(obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position); + obj->segment.trans.y_rotation = racerObj->segment.trans.y_rotation + 0x8000; + } + break; + case 10: + obj->segment.unk3B = 3; + taj->unk4 -= updateRateF * 2.0; + if (taj->unk4 < 0.0f) { + taj->unk4 = 0.0f; + } + var_a2 = updateRate * 4; + if (obj->segment.unk38.half.lower < (255 - var_a2)) { + obj->segment.unk38.half.lower += var_a2; + } else { + obj->segment.unk38.half.lower = 0xFF; + obj->unk78 = 1; + } + break; + case 14: + obj->segment.unk3B = 3; + taj->unkD = 0xFF; + taj->unk14 = 0.0f; + taj->unk4 += updateRateF * 2.0; + if (taj->unk4 > 79.0f) { + taj->unk4 = 79.0f; + } + var_a2 = updateRate * 8; + if (taj->unk4 < 20.0f) { + var_a2 = 0; + } + if (obj->segment.unk38.half.lower > var_a2) { + obj->segment.unk38.half.lower -= var_a2; + } else { + racer64->racer.unk118 = func_80004B40(racer64->racer.characterId, racer64->racer.unk1D6); + func_80030DE0(0, taj->unk11, taj->unk12, taj->unk13, taj->unk20, taj->unk22, 0xB4); + set_music_player_voice_limit(levelHeader->voiceLimit); + play_music(levelHeader->music); + func_80001074(levelHeader->instruments); + func_800228EC(racer64->racer.unk1D6); + temp_v0_12 = func_8002342C(obj->segment.trans.x_position, obj->segment.trans.z_position); + if (temp_v0_12 != NULL) { + obj->segment.trans.x_position = temp_v0_12->segment.trans.x_position; + obj->segment.trans.z_position = temp_v0_12->segment.trans.z_position; + obj->segment.unk2C.half.lower = temp_v0_12->segment.unk2C.half.lower; + obj->segment.trans.y_rotation = racerObj->segment.trans.y_rotation + 0x8000; + } + obj->unk78 = 0x1E; + } + break; + case 19: + obj->segment.unk3B = 3; + taj->unkD = 0xFF; + taj->unk14 = 0.0f; + taj->unk4 += updateRateF * 2.0; + if (taj->unk4 > 79.0f) { + taj->unk4 = 79.0f; + } + var_a2 = updateRate * 8; + if (taj->unk4 < 20.0f) { + var_a2 = 0; + } + if (obj->segment.unk38.half.lower > var_a2) { + obj->segment.unk38.half.lower -= var_a2; + } else { + obj->segment.unk38.half.lower = 0; + obj->unk78 = 0x15; + temp_v0_12 = func_8002342C(obj->segment.trans.x_position, obj->segment.trans.z_position); + if (temp_v0_12 != NULL) { + obj->segment.trans.x_position = temp_v0_12->segment.trans.x_position; + obj->segment.trans.z_position = temp_v0_12->segment.trans.z_position; + obj->segment.unk2C.half.lower = temp_v0_12->segment.unk2C.half.lower; + obj->segment.trans.y_rotation = racerObj->segment.trans.y_rotation + 0x8000; + } + } + break; + case 20: + obj->segment.unk3B = 3; + taj->unk4 -= updateRateF * 2.0; + if (taj->unk4 < 0.0f) { + taj->unk4 = 0.0f; + } + var_a2 = updateRate * 4; + if (obj->segment.unk38.half.lower < (0xFF - var_a2)) { + obj->segment.unk38.half.lower += var_a2; + } else { + obj->segment.unk38.half.lower = 0xFF; + obj->unk78 = NULL; + } + break; + case 29: + obj->unk4C->unk14 = 0; + obj->segment.unk3B = 6; + obj->segment.unk38.half.lower = 0xFF; + taj->unk4 += updateRateF * 1.0; + break; + default: + obj->segment.unk3B = 0; + taj->unk14 = 0.0f; + if (taj->unkD == 0xFF) { + taj->unkD = func_8001C524(obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 0); + if (taj->unkD != 0xFF) { + taj->unkE = func_8001CC48(taj->unkD, -1, 0); + taj->unkF = func_8001CC48(taj->unkE, taj->unkD, 0); + taj->unk10 = func_8001CC48(taj->unkF, taj->unkE, 0); + taj->unkC = taj->unkD; + } + } else { + if ((distance < 55.0f) && (taj->unk1C == 0) && (racerObj != NULL)) { + taj->unk1C = 240; + taj->unk1E = (s16) (arctan2_f(xPosDiff / distance, zPosDiff / distance) + 0x4000); + } + if (taj->unk1C > 0) { + taj->unk1C -= updateRate; + } else { + taj->unk1C = 0; + } + if (taj->unk1C < 120) { + taj->unk4 += func_8001C6C4((Object_64*)taj, obj, updateRateF, 1.0f, 0); + } else { + var_a2 = taj->unk1E - (obj->segment.trans.y_rotation & 0xFFFF); + if (var_a2 > 0x8000) { + var_a2 -= 0xFFFF; + } + if (var_a2 < -0x8000) { + var_a2 += 0xFFFF; + } + obj->segment.trans.y_rotation += ((var_a2 * updateRate) >> 4); + xPosDiff = sins_f(obj->segment.trans.y_rotation + 0x8000); + zPosDiff = coss_f(obj->segment.trans.y_rotation + 0x8000); + func_80011570( + obj, + (updateRateF2 * xPosDiff) * 1.1, + 0.0f, + (updateRateF2 * zPosDiff) * 1.1 + ); + taj->unk4 += updateRate * 2.2; + } + } + racerObjs = get_racer_objects(&numRacers); + if (racerObjs[PLAYER_ONE] != NULL) { + xPosDiff = racerObjs[PLAYER_ONE]->segment.trans.x_position - obj->segment.trans.x_position; + distance = racerObjs[PLAYER_ONE]->segment.trans.y_position - obj->segment.trans.y_position; + zPosDiff = racerObjs[PLAYER_ONE]->segment.trans.z_position - obj->segment.trans.z_position; + var_f2 = sqrtf((xPosDiff * xPosDiff) + (distance * distance) + (zPosDiff * zPosDiff)); + if (var_f2 < 1000.0f) { + var_f2 = 1000.0f - var_f2; + sp3C = (127.0f * var_f2) / 1000.0f; + temp_v0_22 = func_80069D7C(); + xPosDiff = obj->segment.trans.x_position - temp_v0_22->trans.x_position; + zPosDiff = obj->segment.trans.z_position - temp_v0_22->trans.z_position; + arctan = func_800090C0(xPosDiff, zPosDiff, temp_v0_22->trans.y_rotation); + temp = arctan; + func_80001268(0xA, sp3C); + func_80001268(0xB, sp3C); + func_80001268(0xF, sp3C); + musicSetChlPan(0xA, temp); + musicSetChlPan(0xB, temp); + musicSetChlPan(0xF, temp); + func_80001170(0xA); + func_80001170(0xB); + func_80001170(0xF); + func_80001268(3, 0x7F - sp3C); + } else { + func_80001114(0xA); + func_80001114(0xB); + func_80001114(0xF); + } + } + switch (taj->unk36) { + case 0: + if (taj->unk34 > updateRate << 7) { + taj->unk34 -= updateRate << 7; + func_80001170(14); + func_80001268(14, taj->unk34 >> 8); + taj->unk30 = 0; + } else { + taj->unk34 = 0; + func_80001114(14); + if (taj->unk30 == 0) { + taj->unk30 = get_random_number_from_range(600, 900); + taj->unk2C = 0; + } + } + if ((taj->unk30 != 0) && ((musicGetChanMask() & ~0x4000) == 0xB)) { + taj->unk2C += updateRate; + if (taj->unk30 < taj->unk2C) { + taj->unk36 = 1; + taj->unk2C = get_random_number_from_range(600, 900); + } + } else { + taj->unk2C = 0; + taj->unk30 = 0; + } + break; + case 1: + if ((musicGetChanMask() & ~0x4000) == 0xB) { + taj->unk34 += (updateRate * 128); + if (taj->unk34 > 0x7F00) { + taj->unk34 = 0x7F00; + } + taj->unk2C -= updateRate; + if (taj->unk2C < 0) { + taj->unk36 = 0; + } + func_80001170(0xE); + func_80001268(0xE, taj->unk34 >> 8); + } else { + taj->unk36 = 0; + taj->unk2C = 0; + taj->unk30 = 0; + } + break; + } + taj->unk28 = musicGetChanMask() & 0xBFFF; + break; + } + obj->segment.trans.y_position = sp98_yPos; + var_a2 = func_8002B0F4(obj->segment.unk2C.half.lower, obj->segment.trans.x_position, obj->segment.trans.z_position, (struct TempStruct8 **) &sp94); + if(var_a2 != 0) { + var_a2--; + while(var_a2 >= 0) { + if ((sp94[var_a2]->unk10 != 11) && (sp94[var_a2]->unk10 != 14) && (sp94[var_a2]->unk8 > 0.0)) { + obj->segment.trans.y_position = sp94[var_a2]->unk0; + } + var_a2--; + } + } + obj->segment.trans.x_rotation = 0; + obj->segment.trans.z_rotation = 0; + if (obj->unk78 != NULL) { + D_8011D4D0 = obj->segment.trans.y_position; + } + if (sp6B != 0) { + func_8003FC44(obj->segment.trans.x_position, obj->segment.trans.y_position, obj->segment.trans.z_position, 0xC, 0, 1.0f, 0); + } + obj->segment.unk18 = taj->unk4 * 1.0; + func_80061C0C(obj); + func_800AFC3C(obj, updateRate); +} /** * If Taj is currently talking, clear the audio associated with gTajSoundMask, @@ -1967,7 +2565,7 @@ void obj_loop_goldenballoon(Object *obj, s32 speed) { obj64->unkC = obj64->unkD; } } else { - func_8001C6C4(obj64, obj, sp2C, speedf, 0); + func_8001C6C4((Object_64 *) obj64, obj, sp2C, speedf, 0); } } } @@ -2876,7 +3474,7 @@ void obj_loop_bubbler(Object *obj, s32 speed) { } void obj_init_boost(Object *obj, LevelObjectEntry_Boost *entry) { - obj->unk64 = (s32) get_misc_asset(MISC_ASSET_UNK14) + (entry->unk8[0] << 7); + obj->unk64 = (Object_64 *) ((s32) get_misc_asset(MISC_ASSET_UNK14) + (entry->unk8[0] << 7)); obj->segment.unk3C_a.level_entry = NULL; } diff --git a/src/object_functions.h b/src/object_functions.h index 6d9632f6..7c01d5fe 100644 --- a/src/object_functions.h +++ b/src/object_functions.h @@ -200,8 +200,6 @@ typedef struct unk80041A90_MidiFade { } unk80041A90_MidiFade; // Unsure about the signed/unsigned with these arrays. -extern u16 D_800DC970[4]; -extern u16 D_800DC978[4]; extern u16 D_800DC980[20]; extern u16 D_800DC9A8[20]; extern u16 D_800DC9D0[64]; @@ -283,7 +281,7 @@ void obj_loop_setuppoint(Object *obj, s32 speed); void obj_init_dino_whale(Object *obj, LevelObjectEntry_Dino_Whale *entry); void obj_loop_dino_whale(Object *obj, s32 speed); void obj_init_parkwarden(Object *obj, LevelObjectEntry_Parkwarden *entry); -void func_80039320(s16 arg0); +void func_80039320(s16 voiceClip); void play_taj_voice_clip(u16 soundID, s32 interrupt); void obj_loop_gbparkwarden(Object *obj, s32 speed); f32 func_8003ACAC(void); @@ -353,7 +351,7 @@ void obj_loop_goldenballoon(Object *obj, s32 speed); s32 func_8001C524(f32 x, f32 y, f32 z, s32 arg3); s32 func_8001CC48(s32, s32, s32); -void func_8001C6C4(Object_GoldenBalloon *obj64, Object *obj, f32, f32, s32); +f32 func_8001C6C4(Object_64 *, Object *, f32, f32, s32); void func_8000CBF0(Object*, s32); diff --git a/src/object_models.h b/src/object_models.h index ecdb7264..a70b4a10 100644 --- a/src/object_models.h +++ b/src/object_models.h @@ -20,5 +20,6 @@ void func_80061C0C(Object* obj); void free_object_model(ObjectModel *model); //Non Matching void func_8005FF40(ObjectModel **modelPtr); //Non Matching +void func_80061C0C(Object*); //Non Matching #endif diff --git a/src/objects.c b/src/objects.c index eb40ce12..74b67328 100644 --- a/src/objects.c +++ b/src/objects.c @@ -799,7 +799,7 @@ s32 func_8000FBCC(Object *arg0, Object_60 *arg1) { arg1->unk4 = NULL; objHeader = ((ObjectSegment*) arg0)->header; if (objHeader->unk32) { - arg1->unk4 = load_texture((s32) ((Object_Taj*)objHeader)->unk34); + arg1->unk4 = load_texture((s32) ((ObjectHeader *) objHeader)->unk34); objHeader = ((ObjectSegment*)arg0)->header; } ((Object_50*) arg1)->unk0 = (f32) objHeader->unk4; diff --git a/src/objects.h b/src/objects.h index 7f807ba1..22a1b01c 100644 --- a/src/objects.h +++ b/src/objects.h @@ -464,6 +464,7 @@ void func_80011960(Object *obj, Vertex *verts, u32 numVertices, Triangle *triang void func_8000B290(void); void func_80016BC4(unk8000FD34*); s32 func_8001C48C(Object *obj); +void func_80022CFC(s32 arg0, f32 x, f32 y, f32 z); //Non Matching void calc_dynamic_lighting_for_object_1(Object *, ObjectModel *, s16, Object *, f32, f32); @@ -487,5 +488,6 @@ void func_800113CC(Object *, s32, s32, s32, s32); s32 func_800143A8(ObjectModel*, Object*, s32, s32, s32); /* extern */ void func_80068FA8(Gfx**, Matrix**, Object*, Object*, f32); /* extern */ void func_800138A8(Object*, unk80068514_arg4*, s16*, s32); +Object *func_8002342C(f32 x, f32 z); #endif diff --git a/src/particles.c b/src/particles.c index 376c8d4c..9e060353 100644 --- a/src/particles.c +++ b/src/particles.c @@ -495,7 +495,7 @@ void func_800AF29C(unk800AF29C *arg0, s32 arg1, s32 arg2, s16 arg3, s16 arg4, s1 } else { arg0->unk7 = 0xFF; } - arg0->unkB.unkC_400.unkC = (s32 *)allocate_from_main_pool_safe(arg0->unk7 * 4, 0x80808080); + arg0->unkB.unkC_400.unkC = (s32 *)allocate_from_main_pool_safe(arg0->unk7 * 4, COLOUR_TAG_SEMITRANS_GREY); arg0->unkB.unkC_400.unk10 = temp_v1->unk14; arg0->unkB.unkC_400.unk12 = temp_v1->unk16; arg0->unkB.unkC_400.unk14 = temp_v1->unk22; diff --git a/src/racer.c b/src/racer.c index 2d916b03..cae1dd39 100644 --- a/src/racer.c +++ b/src/racer.c @@ -144,10 +144,7 @@ s8 D_800DCDB0[16][2] = { // Checksum count for obj_loop_goldenballoon s32 gObjLoopGoldenBalloonChecksum = 0xA597; -s16 D_800DCDD4[4] = { - 0, 0, 0x32, -1 - // There might be one or two extra zeroes here. -}; +FadeTransition D_800DCDD4 = FADE_TRANSITION(0, FADE_COLOR_BLACK, 50, -1); /*******************************/ @@ -4043,7 +4040,7 @@ void racer_enter_door(Object_Racer* racer, s32 updateRate) { } if ((racer->transitionTimer < -1 && gCurrentStickX < 10 && gCurrentStickX > -10) || racer->transitionTimer == -1) { if (check_if_showing_cutscene_camera() == 0) { - func_800C01D8((FadeTransition* ) D_800DCDD4); + func_800C01D8(&D_800DCDD4); } racer->transitionTimer = 60 - updateRate; } diff --git a/src/racer.h b/src/racer.h index bbe50edf..917fd4e3 100644 --- a/src/racer.h +++ b/src/racer.h @@ -192,8 +192,6 @@ extern s8 D_800DCDA8[8]; extern s32 gObjLoopGoldenBalloonChecksum; -extern s16 D_800DCDD4[4]; - extern ObjectTransform D_8011D510; extern s32 gCurrentStickX; diff --git a/src/save_data.c b/src/save_data.c index f1fb4e9c..5cb0a6f0 100644 --- a/src/save_data.c +++ b/src/save_data.c @@ -310,6 +310,7 @@ void rumble_controllers(s32 arg0) { } } +// arg0 is the number of bits we care about. s32 func_80072C54(s32 arg0) { s32 ret; u32 var_v0; @@ -339,6 +340,8 @@ s32 func_80072C54(s32 arg0) { return ret; } +// arg0 is the number of bits we care about +// arg1 is the bit being looked for. void func_80072E28(s32 arg0, s32 arg1) { u32 var_v0; @@ -348,7 +351,7 @@ void func_80072E28(s32 arg0, s32 arg1) { if (D_801241F4 == 0) { *D_801241EC++ = D_801241F0; D_801241F0 = 0; - D_801241F4 = 128; + D_801241F4 = 128; //Reset the byte counter, so we can shift 8 times before coming back here. } if (arg1 & var_v0) { D_801241F0 |= D_801241F4; @@ -486,7 +489,84 @@ GLOBAL_ASM("asm/non_matchings/save_data/func_800732E8.s") //arg1 is eepromData, from read_eeprom_data //arg2 seems to be a flag for either lap times or course initials? +#ifdef NON_MATCHING +void func_80073588(Settings *settings, u8 *saveData, u8 arg2) { + s16 availableVehicles; + s32 levelCount; + s32 worldCount; + s32 i; + s16 var_s0; + + func_8006E770(settings, arg2); + get_number_of_levels_and_worlds(&levelCount, &worldCount); + + if (arg2 & 1) { + D_801241EC = saveData; + D_801241F0 = 0; + D_801241F4 = 0; + for (i = 2, var_s0 = 5; i < 192; i++) { + var_s0 += saveData[i]; + } + var_s0 -= func_80072C54(0x10); + if (var_s0 == 0) { + for (i = 0; i < levelCount; i++) { + if (func_8006B14C(i) == 0) { + availableVehicles = get_map_available_vehicles(i); + // Car Available + if (availableVehicles & 1) { + settings->flapTimesPtr[0][i] = func_80072C54(0x10); + settings->flapInitialsPtr[0][i] = func_80072C54(0x10); + } + // Hovercraft Available + if (availableVehicles & 2) { + settings->flapTimesPtr[1][i] = func_80072C54(0x10); + settings->flapInitialsPtr[1][i] = func_80072C54(0x10); + } + // Plane Available + if (availableVehicles & 4) { + settings->flapTimesPtr[2][i] = func_80072C54(0x10); + settings->flapInitialsPtr[2][i] = func_80072C54(0x10); + } + } + } + } + } + if (arg2 & 2) { + saveData += 192; + D_801241EC = saveData; + D_801241F0 = 0; + D_801241F4 = 0; + for (i = 2, var_s0 = 5; i < 192; i++) { + var_s0 += saveData[i]; + } + var_s0 -= func_80072C54(0x10); + if (var_s0 == 0) { + for (i = 0; i < levelCount; i++) { + if (func_8006B14C(i) == 0) { + availableVehicles = get_map_available_vehicles(i); + // Car Available + if (availableVehicles & 1) { + settings->courseTimesPtr[0][i] = func_80072C54(0x10); + settings->courseInitialsPtr[0][i] = func_80072C54(0x10); + } + // Hovercraft Available + if (availableVehicles & 2) { + settings->courseTimesPtr[1][i] = func_80072C54(0x10); + settings->courseInitialsPtr[1][i] = func_80072C54(0x10); + } + // Plane Available + if (availableVehicles & 4) { + settings->courseTimesPtr[2][i] = func_80072C54(0x10); + settings->courseInitialsPtr[2][i] = func_80072C54(0x10); + } + } + } + } + } +} +#else GLOBAL_ASM("asm/non_matchings/save_data/func_80073588.s") +#endif GLOBAL_ASM("asm/non_matchings/save_data/func_800738A4.s") @@ -957,7 +1037,75 @@ GLOBAL_ASM("asm/non_matchings/save_data/func_80074B34.s") GLOBAL_ASM("asm/non_matchings/save_data/func_80074EB8.s") GLOBAL_ASM("asm/non_matchings/save_data/func_80075000.s") GLOBAL_ASM("asm/non_matchings/save_data/func_800753D8.s") -GLOBAL_ASM("asm/non_matchings/save_data/func_800756D4.s") + +typedef struct GhostHeaderAltUnk0 { + u8 levelID; + u8 vehicleID; // 0 = Car, 1 = Hovercraft, 2 = Plane +} GhostHeaderAltUnk0; + +/* Size: 4 bytes */ +typedef struct GhostHeaderAlt { + union { + GhostHeaderAltUnk0 unk0; + s16 checksum; + }; + union { + struct { + u8 characterID; // 9 = T.T. + u8 unk3; + }; + s16 unk2; + }; +} GhostHeaderAlt; + +SIDeviceStatus func_800756D4(s32 controllerIndex, u8 *arg1, u8 *arg2, u8 *arg3, s16 *arg4) { + s32 i; + u8 *fileData; + s32 ret; // sp64 + GhostHeaderAlt *var_s1; + s32 fileNumber; + s32 fileSize; + u8 temp_v0_2; + + ret = get_si_device_status(controllerIndex); + if (ret != CONTROLLER_PAK_GOOD) { + start_reading_controller_data(controllerIndex); + return ret; + } + for (i = 0; i < 6; i++) { + arg1[i] = 0xFF; + arg4[i] = 0; + temp_v0_2 = arg4[i]; + arg3[i] = temp_v0_2; + arg2[i] = temp_v0_2; + } + ret = get_file_number(controllerIndex, "DKRACING-GHOSTS", "", &fileNumber); + if (ret == CONTROLLER_PAK_GOOD) { + ret = get_file_size(controllerIndex, fileNumber, &fileSize); + if (ret == CONTROLLER_PAK_GOOD) { + fileData = allocate_from_main_pool_safe(fileSize + 0x100, COLOUR_TAG_BLACK); + ret = read_data_from_controller_pak(controllerIndex, fileNumber, (u8 *)fileData, fileSize); + if (ret == CONTROLLER_PAK_GOOD) { + for (i = 0, var_s1 = (GhostHeaderAlt *)(&fileData[4]); i < 6; i++) { + if (var_s1[i].unk0.levelID != 0xFF) { + if (calculate_ghost_header_checksum((GhostHeader *) &fileData[var_s1[i].unk2]) != ((GhostHeaderAlt*)&fileData[var_s1[i].unk2])->checksum) { + ret = CONTROLLER_PAK_BAD_DATA; + break; + } else { + arg1[i] = var_s1[i].unk0.levelID; + arg2[i] = var_s1[i].unk0.vehicleID; + arg3[i] = fileData[var_s1[i].unk2+2]; + arg4[i] = ((GhostHeaderAlt*)&fileData[var_s1[i].unk2] + 1)->checksum; + } + } + } + } + free_from_memory_pool(fileData); + } + } + start_reading_controller_data(controllerIndex); + return ret; +} SIDeviceStatus get_si_device_status(s32 controllerIndex) { OSMesg unusedMsg; diff --git a/src/save_data.h b/src/save_data.h index afa0b3e3..2c7ec991 100644 --- a/src/save_data.h +++ b/src/save_data.h @@ -84,10 +84,11 @@ s32 func_80072C54(s32 arg0); void populate_settings_from_save_data(Settings *settings, u8 *saveData); s32 func_80074204(s32 saveFileNum, Settings *settings); void erase_save_file(s32 saveFileNum, Settings *settings); +SIDeviceStatus func_800756D4(s32 controllerIndex, u8 *arg1, u8 *arg2, u8 *arg3, s16 *arg4); s32 func_800738A4(Settings *arg0, u8 *arg1); //Non matching //void func_800732E8(Settings *arg0, u8 *arg1); //Non matching -void func_80073588(Settings *arg0, u64 *eepromData, s32 arg2); //Non matching +//void func_80073588(Settings *arg0, u64 *eepromData, s32 arg2); //Non matching s32 func_80073C5C(s32 controllerIndex, s32 arg1, char **arg2); //Non matching //Using some context, and best guesses, these could be the names of the variables s32 func_80074B34(s32 controllerIndex, s16 levelID, s16 vehicleID, s16 *ghostCharacterID, s16 *ghostTime, s16 *ghostNodeCount, GhostHeader *arg6); //Non matching @@ -97,7 +98,5 @@ char *string_to_font_codes(char *inString, char *outString, s32 stringLength); s32 func_80074EB8(s32 controllerIndex, s16 arg1, s16 arg2, s16 ghostCharacterId, s16 ghostTime, s16 ghostNodeCount, u8 *dest); s32 func_80075000(s32 controllerIndex, s16 arg1, s16 arg2, s16 ghostCharacterId, s16 ghostTime, s16 ghostNodeCount, GhostHeader *arg6); 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); #endif diff --git a/src/unknown_005740.h b/src/unknown_005740.h index 5d5c93f2..13a00855 100644 --- a/src/unknown_005740.h +++ b/src/unknown_005740.h @@ -18,5 +18,6 @@ void func_800050D0(Object* obj, u32 buttonsPressed, u32 carInput, s32 updateRate f32 func_80007FA4(f32 arg0); void func_80006AC8(Object *); +s32 func_80004B40(s8, s8); #endif diff --git a/src/unknown_008C40.h b/src/unknown_008C40.h index f2797d97..cee33a75 100644 --- a/src/unknown_008C40.h +++ b/src/unknown_008C40.h @@ -35,6 +35,7 @@ extern unk8011A6D8 D_8011A6D8[]; extern s32 *D_80119C44; void func_80008168(void); void func_800096F8(s32); +void func_80008140(void); //void update_spatial_audio_position(Vec3f *arg0, f32 arg1, f32 arg2, f32 arg3); s32 func_800092A8(f32 inX, f32 inY, f32 inZ, floatXYZVals *floatXYZ, f32 *outX, f32 *outY, f32 *outZ); @@ -46,5 +47,6 @@ void func_8000A2E8(s32); // Non Matching void func_800098A4(s32, s32, f32, f32, f32, s32, s32, s32, s32, s32, s32, s32, s32); void func_80008174(void); // Non Matching void func_80008040(void); // Non Matching +s32 func_800090C0(f32, f32, s16); // Non Matching #endif diff --git a/src/unknown_0255E0.c b/src/unknown_0255E0.c index 25bc2a80..1a62ebd6 100644 --- a/src/unknown_0255E0.c +++ b/src/unknown_0255E0.c @@ -1331,11 +1331,11 @@ void func_8002C0C4(s32 modelId) { s32 temp; LevelModel *mdl; - set_texture_colour_tag(0xFF00FF); - D_8011D30C = allocate_from_main_pool_safe(LEVEL_MODEL_MAX_SIZE, 0xFFFF00FFU); + set_texture_colour_tag(COLOUR_TAG_GREEN); + D_8011D30C = allocate_from_main_pool_safe(LEVEL_MODEL_MAX_SIZE, COLOUR_TAG_YELLOW); gCurrentLevelModel = D_8011D30C; - D_8011D370 = allocate_from_main_pool_safe(0x7D0, 0xFFFF00FFU); - D_8011D374 = allocate_from_main_pool_safe(0x1F4, 0xFFFF00FFU); + D_8011D370 = allocate_from_main_pool_safe(0x7D0, COLOUR_TAG_YELLOW); + D_8011D374 = allocate_from_main_pool_safe(0x1F4, COLOUR_TAG_YELLOW); D_8011D378 = 0; D_8011D310 = (s32*)load_asset_section_from_rom(ASSET_LEVEL_MODELS_TABLE); @@ -1395,7 +1395,7 @@ void func_8002C0C4(s32 modelId) { } set_free_queue_state(0); free_from_memory_pool(D_8011D30C); - allocate_at_address_in_main_pool(temp_s4, (u8* ) D_8011D30C, 0xFFFF00FFU); + allocate_at_address_in_main_pool(temp_s4, (u8* ) D_8011D30C, COLOUR_TAG_YELLOW); set_free_queue_state(2); func_800A83B4(gCurrentLevelModel); @@ -1415,7 +1415,7 @@ void func_8002C0C4(s32 modelId) { } } } - set_texture_colour_tag(-0xFF0001); + set_texture_colour_tag(COLOUR_TAG_MAGENTA); } #else GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_8002C0C4.s") @@ -1837,7 +1837,7 @@ void func_80030664(s32 arg0, s16 arg1, s16 arg2, u8 arg3, u8 arg4, u8 arg5) { GLOBAL_ASM("asm/non_matchings/unknown_0255E0/func_80030664.s") #endif -void func_80030750(s32 arg0, s16 *arg1, s16 *arg2, s8 *arg3, s8 *arg4, s8 *arg5) { +void func_80030750(s32 arg0, s16 *arg1, s16 *arg2, u8 *arg3, u8 *arg4, u8 *arg5) { *arg1 = D_8011D388[arg0].unkC >> 0x10; *arg2 = D_8011D388[arg0].unk10 >> 0x10; *arg3 = D_8011D388[arg0].unk0 >> 0x10; diff --git a/src/unknown_0255E0.h b/src/unknown_0255E0.h index eed44319..c67aa2a6 100644 --- a/src/unknown_0255E0.h +++ b/src/unknown_0255E0.h @@ -106,7 +106,7 @@ s32 func_8002ACD4(f32 *arg0, f32 *arg1, f32 *arg2); s32 func_8002B9BC(Object *obj, f32 *arg1, f32 *arg2, s32 arg3); void func_8002C71C(LevelModelSegment *segment); LevelModel *get_current_level_model(void); -void func_80030750(s32 arg0, s16 *arg1, s16 *arg2, s8 *arg3, s8 *arg4, s8 *arg5); +void func_80030750(s32 arg0, s16 *arg1, s16 *arg2, u8 *arg3, u8 *arg4, u8 *arg5); void func_800307BC(s32 arg0); void func_80030838(s32 arg0, s32 arg1); void func_8003093C(s32 arg0); @@ -148,5 +148,6 @@ void func_800B9C18(s32); void func_800BA8E4(Gfx**, Matrix**, s32); void func_8002DE30(Object*); void func_8002E234(Object*, s32); +void func_80030DE0(s32 arg0, s32 arg1, s32 arg2, s32 arg3, s32 arg4, s32 arg5, s32 arg6); #endif