1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-14 05:19:36 +00:00

merged from master

This commit is contained in:
chandler 2020-04-07 18:00:34 -04:00
commit d852f291e4
8 changed files with 215 additions and 774 deletions

View file

@ -1,111 +0,0 @@
.rdata
glabel D_8013AE68
.asciz "\n "
.balign 4
.text
glabel func_800645A0
/* ADB740 800645A0 27BDFFE8 */ addiu $sp, $sp, -0x18
/* ADB744 800645A4 AFBF0014 */ sw $ra, 0x14($sp)
/* ADB748 800645A8 948E0020 */ lhu $t6, 0x20($a0)
/* ADB74C 800645AC 2401FDFF */ li $at, -513
/* ADB750 800645B0 00803025 */ move $a2, $a0
/* ADB754 800645B4 01C17827 */ nor $t7, $t6, $at
/* ADB758 800645B8 55E00010 */ bnezl $t7, .L800645FC
/* ADB75C 800645BC 94C90020 */ lhu $t1, 0x20($a2)
/* ADB760 800645C0 90B80008 */ lbu $t8, 8($a1)
/* ADB764 800645C4 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016
/* ADB768 800645C8 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0
/* ADB76C 800645CC 5700000B */ bnezl $t8, .L800645FC
/* ADB770 800645D0 94C90020 */ lhu $t1, 0x20($a2)
/* ADB774 800645D4 8C791360 */ lw $t9, 0x1360($v1)
/* ADB778 800645D8 24070001 */ li $a3, 1
/* ADB77C 800645DC 3408FFFD */ li $t0, 65533
/* ADB780 800645E0 2B210004 */ slti $at, $t9, 4
/* ADB784 800645E4 14200004 */ bnez $at, .L800645F8
/* ADB788 800645E8 3C018016 */ lui $at, %hi(D_8015FCC8) # $at, 0x8016
/* ADB78C 800645EC A020FCC8 */ sb $zero, %lo(D_8015FCC8)($at)
/* ADB790 800645F0 AC680008 */ sw $t0, 8($v1)
/* ADB794 800645F4 A0671414 */ sb $a3, 0x1414($v1)
.L800645F8:
/* ADB798 800645F8 94C90020 */ lhu $t1, 0x20($a2)
.L800645FC:
/* ADB79C 800645FC 2401F7FF */ li $at, -2049
/* ADB7A0 80064600 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016
/* ADB7A4 80064604 01215027 */ nor $t2, $t1, $at
/* ADB7A8 80064608 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0
/* ADB7AC 8006460C 15400011 */ bnez $t2, .L80064654
/* ADB7B0 80064610 24070001 */ li $a3, 1
/* ADB7B4 80064614 90AB0008 */ lbu $t3, 8($a1)
/* ADB7B8 80064618 5560000F */ bnezl $t3, .L80064658
/* ADB7BC 8006461C 90621414 */ lbu $v0, 0x1414($v1)
/* ADB7C0 80064620 8C6C1360 */ lw $t4, 0x1360($v1)
/* ADB7C4 80064624 3C0D8012 */ lui $t5, %hi(D_8011D394) # $t5, 0x8012
/* ADB7C8 80064628 29810004 */ slti $at, $t4, 4
/* ADB7CC 8006462C 5420000A */ bnezl $at, .L80064658
/* ADB7D0 80064630 90621414 */ lbu $v0, 0x1414($v1)
/* ADB7D4 80064634 8DADD394 */ lw $t5, %lo(D_8011D394)($t5)
/* ADB7D8 80064638 3C018016 */ lui $at, %hi(D_8015FCC8) # $at, 0x8016
/* ADB7DC 8006463C 340EFFFD */ li $t6, 65533
/* ADB7E0 80064640 55A00005 */ bnezl $t5, .L80064658
/* ADB7E4 80064644 90621414 */ lbu $v0, 0x1414($v1)
/* ADB7E8 80064648 A027FCC8 */ sb $a3, %lo(D_8015FCC8)($at)
/* ADB7EC 8006464C AC6E0008 */ sw $t6, 8($v1)
/* ADB7F0 80064650 A0671414 */ sb $a3, 0x1414($v1)
.L80064654:
/* ADB7F4 80064654 90621414 */ lbu $v0, 0x1414($v1)
.L80064658:
/* ADB7F8 80064658 3C0F0001 */ lui $t7, 1
/* ADB7FC 8006465C 01E67821 */ addu $t7, $t7, $a2
/* ADB800 80064660 10400007 */ beqz $v0, .L80064680
/* ADB804 80064664 00000000 */ nop
/* ADB808 80064668 81EF1E15 */ lb $t7, 0x1e15($t7)
/* ADB80C 8006466C 24010014 */ li $at, 20
/* ADB810 80064670 15E10003 */ bne $t7, $at, .L80064680
/* ADB814 80064674 00000000 */ nop
/* ADB818 80064678 A0601414 */ sb $zero, 0x1414($v1)
/* ADB81C 8006467C 300200FF */ andi $v0, $zero, 0xff
.L80064680:
/* ADB820 80064680 50400012 */ beql $v0, $zero, .L800646CC
/* ADB824 80064684 8C680008 */ lw $t0, 8($v1)
/* ADB828 80064688 90B80008 */ lbu $t8, 8($a1)
/* ADB82C 8006468C 3C048014 */ lui $a0, %hi(D_8013AE68) # $a0, 0x8014
/* ADB830 80064690 2484AE68 */ addiu $a0, %lo(D_8013AE68) # addiu $a0, $a0, -0x5198
/* ADB834 80064694 5700000D */ bnezl $t8, .L800646CC
/* ADB838 80064698 8C680008 */ lw $t0, 8($v1)
/* ADB83C 8006469C AFA5001C */ sw $a1, 0x1c($sp)
/* ADB840 800646A0 0C00084C */ jal osSyncPrintf
/* ADB844 800646A4 AFA60018 */ sw $a2, 0x18($sp)
/* ADB848 800646A8 3C038016 */ lui $v1, %hi(gSaveContext) # $v1, 0x8016
/* ADB84C 800646AC 2463E660 */ addiu $v1, %lo(gSaveContext) # addiu $v1, $v1, -0x19a0
/* ADB850 800646B0 24070001 */ li $a3, 1
/* ADB854 800646B4 3419FFFD */ li $t9, 65533
/* ADB858 800646B8 8FA5001C */ lw $a1, 0x1c($sp)
/* ADB85C 800646BC 8FA60018 */ lw $a2, 0x18($sp)
/* ADB860 800646C0 AC790008 */ sw $t9, 8($v1)
/* ADB864 800646C4 A0671414 */ sb $a3, 0x1414($v1)
/* ADB868 800646C8 8C680008 */ lw $t0, 8($v1)
.L800646CC:
/* ADB86C 800646CC 3401FFF0 */ li $at, 65520
/* ADB870 800646D0 00C02025 */ move $a0, $a2
/* ADB874 800646D4 0101082A */ slt $at, $t0, $at
/* ADB878 800646D8 5420000E */ bnezl $at, .L80064714
/* ADB87C 800646DC 8FBF0014 */ lw $ra, 0x14($sp)
/* ADB880 800646E0 AFA5001C */ sw $a1, 0x1c($sp)
/* ADB884 800646E4 0C01A3B3 */ jal func_80068ECC
/* ADB888 800646E8 AFA60018 */ sw $a2, 0x18($sp)
/* ADB88C 800646EC 8FA5001C */ lw $a1, 0x1c($sp)
/* ADB890 800646F0 3C198012 */ lui $t9, %hi(sCsStateHandlers2)
/* ADB894 800646F4 8FA40018 */ lw $a0, 0x18($sp)
/* ADB898 800646F8 90A90008 */ lbu $t1, 8($a1)
/* ADB89C 800646FC 00095080 */ sll $t2, $t1, 2
/* ADB8A0 80064700 032AC821 */ addu $t9, $t9, $t2
/* ADB8A4 80064704 8F39E1DC */ lw $t9, %lo(sCsStateHandlers2)($t9)
/* ADB8A8 80064708 0320F809 */ jalr $t9
/* ADB8AC 8006470C 00000000 */ nop
/* ADB8B0 80064710 8FBF0014 */ lw $ra, 0x14($sp)
.L80064714:
/* ADB8B4 80064714 27BD0018 */ addiu $sp, $sp, 0x18
/* ADB8B8 80064718 03E00008 */ jr $ra
/* ADB8BC 8006471C 00000000 */ nop

View file

@ -1,577 +0,0 @@
.late_rodata
glabel jtbl_8013AEEC
.word L800648D4
.word L8006490C
.word L8006493C
.word L80064FA4
.word L80064FA4
.word L80064978
.word L800649A0
.word L80064A28
.word L80064A48
.word L80064A5C
.word L80064A70
.word L80064AC0
.word L80064AE4
.word L80064B20
.word L80064B38
.word L80064B78
.word L80064BDC
.word L80064BF8
.word L80064C58
.word L80064C70
.word L80064C88
.word L80064CA0
.word L80064CC0
.word L80064D78
.word L80064D88
.word L80064DB8
.word L80064E3C
.word L80064EBC
.word L80064ED0
.word L80064EE0
.word L80064EF4
.word L80064F08
.word L80064F2C
.word L80064F40
.word L80064F88
.text
glabel func_80064824
/* ADB9C4 80064824 27BDFFB8 */ addiu $sp, $sp, -0x48
/* ADB9C8 80064828 AFBF002C */ sw $ra, 0x2c($sp)
/* ADB9CC 8006482C AFB00028 */ sw $s0, 0x28($sp)
/* ADB9D0 80064830 AFA5004C */ sw $a1, 0x4c($sp)
/* ADB9D4 80064834 AFA60050 */ sw $a2, 0x50($sp)
/* ADB9D8 80064838 94AF0010 */ lhu $t7, 0x10($a1)
/* ADB9DC 8006483C 8C891C44 */ lw $t1, 0x1c44($a0)
/* ADB9E0 80064840 00808025 */ move $s0, $a0
/* ADB9E4 80064844 AFAF0038 */ sw $t7, 0x38($sp)
/* ADB9E8 80064848 94D90002 */ lhu $t9, 2($a2)
/* ADB9EC 8006484C 00001025 */ move $v0, $zero
/* ADB9F0 80064850 01F9082A */ slt $at, $t7, $t9
/* ADB9F4 80064854 142001D3 */ bnez $at, .L80064FA4
/* ADB9F8 80064858 AFB90030 */ sw $t9, 0x30($sp)
/* ADB9FC 8006485C 94C30004 */ lhu $v1, 4($a2)
/* ADBA00 80064860 97A6003A */ lhu $a2, 0x3a($sp)
/* ADBA04 80064864 97A50032 */ lhu $a1, 0x32($sp)
/* ADBA08 80064868 01E3082A */ slt $at, $t7, $v1
/* ADBA0C 8006486C 14200002 */ bnez $at, .L80064878
/* ADBA10 80064870 2464FFFF */ addiu $a0, $v1, -1
/* ADBA14 80064874 172301CB */ bne $t9, $v1, .L80064FA4
.L80064878:
/* ADBA18 80064878 3084FFFF */ andi $a0, $a0, 0xffff
/* ADBA1C 8006487C A3A2003F */ sb $v0, 0x3f($sp)
/* ADBA20 80064880 0C01BE4F */ jal func_8006F93C
/* ADBA24 80064884 AFA90044 */ sw $t1, 0x44($sp)
/* ADBA28 80064888 8FA30050 */ lw $v1, 0x50($sp)
/* ADBA2C 8006488C 8FA4004C */ lw $a0, 0x4c($sp)
/* ADBA30 80064890 93A2003F */ lbu $v0, 0x3f($sp)
/* ADBA34 80064894 946A0002 */ lhu $t2, 2($v1)
/* ADBA38 80064898 94870010 */ lhu $a3, 0x10($a0)
/* ADBA3C 8006489C 8FA90044 */ lw $t1, 0x44($sp)
/* ADBA40 800648A0 55470003 */ bnel $t2, $a3, .L800648B0
/* ADBA44 800648A4 946B0000 */ lhu $t3, ($v1)
/* ADBA48 800648A8 24020001 */ li $v0, 1
/* ADBA4C 800648AC 946B0000 */ lhu $t3, ($v1)
.L800648B0:
/* ADBA50 800648B0 256CFFFF */ addiu $t4, $t3, -1
/* ADBA54 800648B4 2D810023 */ sltiu $at, $t4, 0x23
/* ADBA58 800648B8 102001BA */ beqz $at, .L80064FA4
/* ADBA5C 800648BC 000C6080 */ sll $t4, $t4, 2
/* ADBA60 800648C0 3C018014 */ lui $at, %hi(jtbl_8013AEEC)
/* ADBA64 800648C4 002C0821 */ addu $at, $at, $t4
/* ADBA68 800648C8 8C2CAEEC */ lw $t4, %lo(jtbl_8013AEEC)($at)
/* ADBA6C 800648CC 01800008 */ jr $t4
/* ADBA70 800648D0 00000000 */ nop
glabel L800648D4
/* ADBA74 800648D4 104001B3 */ beqz $v0, .L80064FA4
/* ADBA78 800648D8 2404000E */ li $a0, 14
/* ADBA7C 800648DC 24050004 */ li $a1, 4
/* ADBA80 800648E0 0C03DB56 */ jal func_800F6D58
/* ADBA84 800648E4 2406003F */ li $a2, 63
/* ADBA88 800648E8 2404000E */ li $a0, 14
/* ADBA8C 800648EC 24050001 */ li $a1, 1
/* ADBA90 800648F0 0C03DB56 */ jal func_800F6D58
/* ADBA94 800648F4 24060001 */ li $a2, 1
/* ADBA98 800648F8 3C010001 */ lui $at, 1
/* ADBA9C 800648FC 00300821 */ addu $at, $at, $s0
/* ADBAA0 80064900 240D0014 */ li $t5, 20
/* ADBAA4 80064904 100001A7 */ b .L80064FA4
/* ADBAA8 80064908 A02D0B12 */ sb $t5, 0xb12($at)
glabel L8006490C
/* ADBAAC 8006490C 104001A5 */ beqz $v0, .L80064FA4
/* ADBAB0 80064910 2404000F */ li $a0, 15
/* ADBAB4 80064914 00002825 */ move $a1, $zero
/* ADBAB8 80064918 0C03DB56 */ jal func_800F6D58
/* ADBABC 8006491C 00003025 */ move $a2, $zero
/* ADBAC0 80064920 02002025 */ move $a0, $s0
/* ADBAC4 80064924 0C01D4F1 */ jal func_800753C4
/* ADBAC8 80064928 24050003 */ li $a1, 3
/* ADBACC 8006492C 24020001 */ li $v0, 1
/* ADBAD0 80064930 3C018016 */ lui $at, %hi(D_8015FD70) # $at, 0x8016
/* ADBAD4 80064934 1000019B */ b .L80064FA4
/* ADBAD8 80064938 A022FD70 */ sb $v0, %lo(D_8015FD70)($at)
glabel L8006493C
/* ADBADC 8006493C 10400199 */ beqz $v0, .L80064FA4
/* ADBAE0 80064940 02002025 */ move $a0, $s0
/* ADBAE4 80064944 0C01B0F4 */ jal func_8006C3D0
/* ADBAE8 80064948 00002825 */ move $a1, $zero
/* ADBAEC 8006494C 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADBAF0 80064950 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADBAF4 80064954 8C8E0000 */ lw $t6, ($a0)
/* ADBAF8 80064958 24010053 */ li $at, 83
/* ADBAFC 8006495C 02002025 */ move $a0, $s0
/* ADBB00 80064960 55C10191 */ bnel $t6, $at, .L80064FA8
/* ADBB04 80064964 8FBF002C */ lw $ra, 0x2c($sp)
/* ADBB08 80064968 0C01B0F4 */ jal func_8006C3D0
/* ADBB0C 8006496C 24050002 */ li $a1, 2
/* ADBB10 80064970 1000018D */ b .L80064FA8
/* ADBB14 80064974 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064978
/* ADBB18 80064978 3C020001 */ lui $v0, 1
/* ADBB1C 8006497C 00501021 */ addu $v0, $v0, $s0
/* ADBB20 80064980 84420AC4 */ lh $v0, 0xac4($v0)
/* ADBB24 80064984 28413200 */ slti $at, $v0, 0x3200
/* ADBB28 80064988 10200186 */ beqz $at, .L80064FA4
/* ADBB2C 8006498C 244F0023 */ addiu $t7, $v0, 0x23
/* ADBB30 80064990 3C010001 */ lui $at, 1
/* ADBB34 80064994 00300821 */ addu $at, $at, $s0
/* ADBB38 80064998 10000182 */ b .L80064FA4
/* ADBB3C 8006499C A42F0AC4 */ sh $t7, 0xac4($at)
glabel L800649A0
/* ADBB40 800649A0 10400180 */ beqz $v0, .L80064FA4
/* ADBB44 800649A4 2403003C */ li $v1, 60
/* ADBB48 800649A8 3C010001 */ lui $at, 1
/* ADBB4C 800649AC 24020001 */ li $v0, 1
/* ADBB50 800649B0 00300821 */ addu $at, $at, $s0
/* ADBB54 800649B4 A0220A3D */ sb $v0, 0xa3d($at)
/* ADBB58 800649B8 3C010001 */ lui $at, 1
/* ADBB5C 800649BC 00300821 */ addu $at, $at, $s0
/* ADBB60 800649C0 A0220A3B */ sb $v0, 0xa3b($at)
/* ADBB64 800649C4 3C010001 */ lui $at, 1
/* ADBB68 800649C8 00300821 */ addu $at, $at, $s0
/* ADBB6C 800649CC A0200A3C */ sb $zero, 0xa3c($at)
/* ADBB70 800649D0 3C010001 */ lui $at, 1
/* ADBB74 800649D4 00300821 */ addu $at, $at, $s0
/* ADBB78 800649D8 A4230A3E */ sh $v1, 0xa3e($at)
/* ADBB7C 800649DC 3C010001 */ lui $at, 1
/* ADBB80 800649E0 00300821 */ addu $at, $at, $s0
/* ADBB84 800649E4 A0220A45 */ sb $v0, 0xa45($at)
/* ADBB88 800649E8 3C010001 */ lui $at, 1
/* ADBB8C 800649EC 00300821 */ addu $at, $at, $s0
/* ADBB90 800649F0 A0200A43 */ sb $zero, 0xa43($at)
/* ADBB94 800649F4 3C010001 */ lui $at, 1
/* ADBB98 800649F8 00300821 */ addu $at, $at, $s0
/* ADBB9C 800649FC A0220A44 */ sb $v0, 0xa44($at)
/* ADBBA0 80064A00 3C010001 */ lui $at, 1
/* ADBBA4 80064A04 00300821 */ addu $at, $at, $s0
/* ADBBA8 80064A08 A4230A48 */ sh $v1, 0xa48($at)
/* ADBBAC 80064A0C 3C190001 */ lui $t9, 1
/* ADBBB0 80064A10 0330C821 */ addu $t9, $t9, $s0
/* ADBBB4 80064A14 97390A48 */ lhu $t9, 0xa48($t9)
/* ADBBB8 80064A18 3C010001 */ lui $at, 1
/* ADBBBC 80064A1C 00300821 */ addu $at, $at, $s0
/* ADBBC0 80064A20 10000160 */ b .L80064FA4
/* ADBBC4 80064A24 A4390A46 */ sh $t9, 0xa46($at)
glabel L80064A28
/* ADBBC8 80064A28 3C010001 */ lui $at, 1
/* ADBBCC 80064A2C 02011021 */ addu $v0, $s0, $at
/* ADBBD0 80064A30 84431D30 */ lh $v1, 0x1d30($v0)
/* ADBBD4 80064A34 28610080 */ slti $at, $v1, 0x80
/* ADBBD8 80064A38 1020015A */ beqz $at, .L80064FA4
/* ADBBDC 80064A3C 24780004 */ addiu $t8, $v1, 4
/* ADBBE0 80064A40 10000158 */ b .L80064FA4
/* ADBBE4 80064A44 A4581D30 */ sh $t8, 0x1d30($v0)
glabel L80064A48
/* ADBBE8 80064A48 3C010001 */ lui $at, 1
/* ADBBEC 80064A4C 00300821 */ addu $at, $at, $s0
/* ADBBF0 80064A50 240A0010 */ li $t2, 16
/* ADBBF4 80064A54 10000153 */ b .L80064FA4
/* ADBBF8 80064A58 A02A0B15 */ sb $t2, 0xb15($at)
glabel L80064A5C
/* ADBBFC 80064A5C 02002025 */ move $a0, $s0
/* ADBC00 80064A60 0C01B0F4 */ jal func_8006C3D0
/* ADBC04 80064A64 24050001 */ li $a1, 1
/* ADBC08 80064A68 1000014F */ b .L80064FA8
/* ADBC0C 80064A6C 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064A70
/* ADBC10 80064A70 3C010001 */ lui $at, 1
/* ADBC14 80064A74 02011021 */ addu $v0, $s0, $at
/* ADBC18 80064A78 84431D30 */ lh $v1, 0x1d30($v0)
/* ADBC1C 80064A7C 28610672 */ slti $at, $v1, 0x672
/* ADBC20 80064A80 10200003 */ beqz $at, .L80064A90
/* ADBC24 80064A84 246B0014 */ addiu $t3, $v1, 0x14
/* ADBC28 80064A88 A44B1D30 */ sh $t3, 0x1d30($v0)
/* ADBC2C 80064A8C 94870010 */ lhu $a3, 0x10($a0)
.L80064A90:
/* ADBC30 80064A90 2401030F */ li $at, 783
/* ADBC34 80064A94 54E10006 */ bnel $a3, $at, .L80064AB0
/* ADBC38 80064A98 240102CD */ li $at, 717
/* ADBC3C 80064A9C 0C01E221 */ jal func_80078884
/* ADBC40 80064AA0 2404288E */ li $a0, 10382
/* ADBC44 80064AA4 10000140 */ b .L80064FA8
/* ADBC48 80064AA8 8FBF002C */ lw $ra, 0x2c($sp)
/* ADBC4C 80064AAC 240102CD */ li $at, 717
.L80064AB0:
/* ADBC50 80064AB0 54E1013D */ bnel $a3, $at, .L80064FA8
/* ADBC54 80064AB4 8FBF002C */ lw $ra, 0x2c($sp)
/* ADBC58 80064AB8 1000013A */ b .L80064FA4
/* ADBC5C 80064ABC A4401D30 */ sh $zero, 0x1d30($v0)
glabel L80064AC0
/* ADBC60 80064AC0 50400139 */ beql $v0, $zero, .L80064FA8
/* ADBC64 80064AC4 8FBF002C */ lw $ra, 0x2c($sp)
/* ADBC68 80064AC8 908C0008 */ lbu $t4, 8($a0)
/* ADBC6C 80064ACC 24010004 */ li $at, 4
/* ADBC70 80064AD0 240D0003 */ li $t5, 3
/* ADBC74 80064AD4 51810134 */ beql $t4, $at, .L80064FA8
/* ADBC78 80064AD8 8FBF002C */ lw $ra, 0x2c($sp)
/* ADBC7C 80064ADC 10000131 */ b .L80064FA4
/* ADBC80 80064AE0 A08D0008 */ sb $t5, 8($a0)
glabel L80064AE4
/* ADBC84 80064AE4 3C010001 */ lui $at, 1
/* ADBC88 80064AE8 02011021 */ addu $v0, $s0, $at
/* ADBC8C 80064AEC 84431D32 */ lh $v1, 0x1d32($v0)
/* ADBC90 80064AF0 2404286F */ li $a0, 10351
/* ADBC94 80064AF4 54600006 */ bnezl $v1, .L80064B10
/* ADBC98 80064AF8 286100FF */ slti $at, $v1, 0xff
/* ADBC9C 80064AFC 0C01E221 */ jal func_80078884
/* ADBCA0 80064B00 AFA20038 */ sw $v0, 0x38($sp)
/* ADBCA4 80064B04 8FA20038 */ lw $v0, 0x38($sp)
/* ADBCA8 80064B08 84431D32 */ lh $v1, 0x1d32($v0)
/* ADBCAC 80064B0C 286100FF */ slti $at, $v1, 0xff
.L80064B10:
/* ADBCB0 80064B10 10200124 */ beqz $at, .L80064FA4
/* ADBCB4 80064B14 246E0005 */ addiu $t6, $v1, 5
/* ADBCB8 80064B18 10000122 */ b .L80064FA4
/* ADBCBC 80064B1C A44E1D32 */ sh $t6, 0x1d32($v0)
glabel L80064B20
/* ADBCC0 80064B20 10400120 */ beqz $v0, .L80064FA4
/* ADBCC4 80064B24 02002025 */ move $a0, $s0
/* ADBCC8 80064B28 0C02F124 */ jal func_800BC490
/* ADBCCC 80064B2C 24050001 */ li $a1, 1
/* ADBCD0 80064B30 1000011D */ b .L80064FA8
/* ADBCD4 80064B34 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064B38
/* ADBCD8 80064B38 1040011A */ beqz $v0, .L80064FA4
/* ADBCDC 80064B3C 02002025 */ move $a0, $s0
/* ADBCE0 80064B40 8D2601B0 */ lw $a2, 0x1b0($t1)
/* ADBCE4 80064B44 240F0078 */ li $t7, 120
/* ADBCE8 80064B48 24190090 */ li $t9, 144
/* ADBCEC 80064B4C 24180018 */ li $t8, 24
/* ADBCF0 80064B50 240A0014 */ li $t2, 20
/* ADBCF4 80064B54 AFAA001C */ sw $t2, 0x1c($sp)
/* ADBCF8 80064B58 AFB80018 */ sw $t8, 0x18($sp)
/* ADBCFC 80064B5C AFB90014 */ sw $t9, 0x14($sp)
/* ADBD00 80064B60 AFAF0010 */ sw $t7, 0x10($sp)
/* ADBD04 80064B64 26051D4C */ addiu $a1, $s0, 0x1d4c
/* ADBD08 80064B68 0C00B390 */ jal TitleCard_InitPlaceName
/* ADBD0C 80064B6C 240700A0 */ li $a3, 160
/* ADBD10 80064B70 1000010D */ b .L80064FA8
/* ADBD14 80064B74 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064B78
/* ADBD18 80064B78 5040010B */ beql $v0, $zero, .L80064FA8
/* ADBD1C 80064B7C 8FBF002C */ lw $ra, 0x2c($sp)
/* ADBD20 80064B80 860B07A0 */ lh $t3, 0x7a0($s0)
/* ADBD24 80064B84 24050006 */ li $a1, 6
/* ADBD28 80064B88 000B6080 */ sll $t4, $t3, 2
/* ADBD2C 80064B8C 020C6821 */ addu $t5, $s0, $t4
/* ADBD30 80064B90 0C024BE2 */ jal Quake_Add
/* ADBD34 80064B94 8DA40790 */ lw $a0, 0x790($t5)
/* ADBD38 80064B98 3C108016 */ lui $s0, %hi(D_8015FCCA) # $s0, 0x8016
/* ADBD3C 80064B9C 2610FCCA */ addiu $s0, %lo(D_8015FCCA) # addiu $s0, $s0, -0x336
/* ADBD40 80064BA0 A6020000 */ sh $v0, ($s0)
/* ADBD44 80064BA4 86040000 */ lh $a0, ($s0)
/* ADBD48 80064BA8 0C024B6B */ jal Quake_SetSpeed
/* ADBD4C 80064BAC 24057FFF */ li $a1, 32767
/* ADBD50 80064BB0 86040000 */ lh $a0, ($s0)
/* ADBD54 80064BB4 24050004 */ li $a1, 4
/* ADBD58 80064BB8 00003025 */ move $a2, $zero
/* ADBD5C 80064BBC 240703E8 */ li $a3, 1000
/* ADBD60 80064BC0 0C024B9C */ jal Quake_SetQuakeValues
/* ADBD64 80064BC4 AFA00010 */ sw $zero, 0x10($sp)
/* ADBD68 80064BC8 86040000 */ lh $a0, ($s0)
/* ADBD6C 80064BCC 0C024B7C */ jal Quake_SetCountdown
/* ADBD70 80064BD0 24050320 */ li $a1, 800
/* ADBD74 80064BD4 100000F4 */ b .L80064FA8
/* ADBD78 80064BD8 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064BDC
/* ADBD7C 80064BDC 104000F1 */ beqz $v0, .L80064FA4
/* ADBD80 80064BE0 3C108016 */ lui $s0, %hi(D_8015FCCA) # $s0, 0x8016
/* ADBD84 80064BE4 2610FCCA */ addiu $s0, %lo(D_8015FCCA) # addiu $s0, $s0, -0x336
/* ADBD88 80064BE8 0C024BEB */ jal Quake_RemoveFromIdx
/* ADBD8C 80064BEC 86040000 */ lh $a0, ($s0)
/* ADBD90 80064BF0 100000ED */ b .L80064FA8
/* ADBD94 80064BF4 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064BF8
/* ADBD98 80064BF8 3C010001 */ lui $at, 1
/* ADBD9C 80064BFC 02011021 */ addu $v0, $s0, $at
/* ADBDA0 80064C00 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADBDA4 80064C04 A0400B12 */ sb $zero, 0xb12($v0)
/* ADBDA8 80064C08 00300821 */ addu $at, $at, $s0
/* ADBDAC 80064C0C 240E0002 */ li $t6, 2
/* ADBDB0 80064C10 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADBDB4 80064C14 A02E0B01 */ sb $t6, 0xb01($at)
/* ADBDB8 80064C18 9483000C */ lhu $v1, 0xc($a0)
/* ADBDBC 80064C1C 24050001 */ li $a1, 1
/* ADBDC0 80064C20 00003025 */ move $a2, $zero
/* ADBDC4 80064C24 28614AAB */ slti $at, $v1, 0x4aab
/* ADBDC8 80064C28 10200002 */ beqz $at, .L80064C34
/* ADBDCC 80064C2C 246F001E */ addiu $t7, $v1, 0x1e
/* ADBDD0 80064C30 A48F000C */ sh $t7, 0xc($a0)
.L80064C34:
/* ADBDD4 80064C34 90590B13 */ lbu $t9, 0xb13($v0)
/* ADBDD8 80064C38 3C018012 */ lui $at, %hi(D_8011FB30) # $at, 0x8012
/* ADBDDC 80064C3C 2404000E */ li $a0, 14
/* ADBDE0 80064C40 572000D9 */ bnezl $t9, .L80064FA8
/* ADBDE4 80064C44 8FBF002C */ lw $ra, 0x2c($sp)
/* ADBDE8 80064C48 0C03DB56 */ jal func_800F6D58
/* ADBDEC 80064C4C A020FB30 */ sb $zero, %lo(D_8011FB30)($at)
/* ADBDF0 80064C50 100000D5 */ b .L80064FA8
/* ADBDF4 80064C54 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064C58
/* ADBDF8 80064C58 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADBDFC 80064C5C 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADBE00 80064C60 94980EE0 */ lhu $t8, 0xee0($a0)
/* ADBE04 80064C64 370A0020 */ ori $t2, $t8, 0x20
/* ADBE08 80064C68 100000CE */ b .L80064FA4
/* ADBE0C 80064C6C A48A0EE0 */ sh $t2, 0xee0($a0)
glabel L80064C70
/* ADBE10 80064C70 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADBE14 80064C74 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADBE18 80064C78 948B0EE0 */ lhu $t3, 0xee0($a0)
/* ADBE1C 80064C7C 356C0080 */ ori $t4, $t3, 0x80
/* ADBE20 80064C80 100000C8 */ b .L80064FA4
/* ADBE24 80064C84 A48C0EE0 */ sh $t4, 0xee0($a0)
glabel L80064C88
/* ADBE28 80064C88 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADBE2C 80064C8C 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADBE30 80064C90 948D0EE0 */ lhu $t5, 0xee0($a0)
/* ADBE34 80064C94 35AE0200 */ ori $t6, $t5, 0x200
/* ADBE38 80064C98 100000C2 */ b .L80064FA4
/* ADBE3C 80064C9C A48E0EE0 */ sh $t6, 0xee0($a0)
glabel L80064CA0
/* ADBE40 80064CA0 3C028016 */ lui $v0, %hi(D_801614B0) # $v0, 0x8016
/* ADBE44 80064CA4 244214B0 */ addiu $v0, %lo(D_801614B0) # addiu $v0, $v0, 0x14b0
/* ADBE48 80064CA8 240300FF */ li $v1, 255
/* ADBE4C 80064CAC A0430000 */ sb $v1, ($v0)
/* ADBE50 80064CB0 A0430001 */ sb $v1, 1($v0)
/* ADBE54 80064CB4 A0430002 */ sb $v1, 2($v0)
/* ADBE58 80064CB8 100000BA */ b .L80064FA4
/* ADBE5C 80064CBC A0430003 */ sb $v1, 3($v0)
glabel L80064CC0
/* ADBE60 80064CC0 3C01437F */ li $at, 0x437F0000 # 0.000000
/* ADBE64 80064CC4 44812000 */ mtc1 $at, $f4
/* ADBE68 80064CC8 240A0001 */ li $t2, 1
/* ADBE6C 80064CCC 3C028016 */ lui $v0, %hi(D_801614B0) # $v0, 0x8016
/* ADBE70 80064CD0 46002182 */ mul.s $f6, $f4, $f0
/* ADBE74 80064CD4 244214B0 */ addiu $v0, %lo(D_801614B0) # addiu $v0, $v0, 0x14b0
/* ADBE78 80064CD8 240300FF */ li $v1, 255
/* ADBE7C 80064CDC 240F00B4 */ li $t7, 180
/* ADBE80 80064CE0 24190064 */ li $t9, 100
/* ADBE84 80064CE4 A0430000 */ sb $v1, ($v0)
/* ADBE88 80064CE8 A04F0001 */ sb $t7, 1($v0)
/* ADBE8C 80064CEC 4458F800 */ cfc1 $t8, $31
/* ADBE90 80064CF0 44CAF800 */ ctc1 $t2, $31
/* ADBE94 80064CF4 A0590002 */ sb $t9, 2($v0)
/* ADBE98 80064CF8 3C014F00 */ li $at, 0x4F000000 # 0.000000
/* ADBE9C 80064CFC 46003224 */ cvt.w.s $f8, $f6
/* ADBEA0 80064D00 444AF800 */ cfc1 $t2, $31
/* ADBEA4 80064D04 00000000 */ nop
/* ADBEA8 80064D08 314A0078 */ andi $t2, $t2, 0x78
/* ADBEAC 80064D0C 51400013 */ beql $t2, $zero, .L80064D5C
/* ADBEB0 80064D10 440A4000 */ mfc1 $t2, $f8
/* ADBEB4 80064D14 44814000 */ mtc1 $at, $f8
/* ADBEB8 80064D18 240A0001 */ li $t2, 1
/* ADBEBC 80064D1C 46083201 */ sub.s $f8, $f6, $f8
/* ADBEC0 80064D20 44CAF800 */ ctc1 $t2, $31
/* ADBEC4 80064D24 00000000 */ nop
/* ADBEC8 80064D28 46004224 */ cvt.w.s $f8, $f8
/* ADBECC 80064D2C 444AF800 */ cfc1 $t2, $31
/* ADBED0 80064D30 00000000 */ nop
/* ADBED4 80064D34 314A0078 */ andi $t2, $t2, 0x78
/* ADBED8 80064D38 15400005 */ bnez $t2, .L80064D50
/* ADBEDC 80064D3C 00000000 */ nop
/* ADBEE0 80064D40 440A4000 */ mfc1 $t2, $f8
/* ADBEE4 80064D44 3C018000 */ lui $at, 0x8000
/* ADBEE8 80064D48 10000007 */ b .L80064D68
/* ADBEEC 80064D4C 01415025 */ or $t2, $t2, $at
.L80064D50:
/* ADBEF0 80064D50 10000005 */ b .L80064D68
/* ADBEF4 80064D54 240AFFFF */ li $t2, -1
/* ADBEF8 80064D58 440A4000 */ mfc1 $t2, $f8
.L80064D5C:
/* ADBEFC 80064D5C 00000000 */ nop
/* ADBF00 80064D60 0540FFFB */ bltz $t2, .L80064D50
/* ADBF04 80064D64 00000000 */ nop
.L80064D68:
/* ADBF08 80064D68 44D8F800 */ ctc1 $t8, $31
/* ADBF0C 80064D6C 3C018016 */ lui $at, %hi(D_801614B3) # $at, 0x8016
/* ADBF10 80064D70 1000008C */ b .L80064FA4
/* ADBF14 80064D74 A02A14B3 */ sb $t2, %lo(D_801614B3)($at)
glabel L80064D78
/* ADBF18 80064D78 3C010001 */ lui $at, 1
/* ADBF1C 80064D7C 00300821 */ addu $at, $at, $s0
/* ADBF20 80064D80 10000088 */ b .L80064FA4
/* ADBF24 80064D84 AC201CC8 */ sw $zero, 0x1cc8($at)
glabel L80064D88
/* ADBF28 80064D88 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADBF2C 80064D8C 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADBF30 80064D90 948B000C */ lhu $t3, 0xc($a0)
/* ADBF34 80064D94 3401CAAB */ li $at, 51883
/* ADBF38 80064D98 340ECAAA */ li $t6, 51882
/* ADBF3C 80064D9C 256C001E */ addiu $t4, $t3, 0x1e
/* ADBF40 80064DA0 318DFFFF */ andi $t5, $t4, 0xffff
/* ADBF44 80064DA4 01A1082A */ slt $at, $t5, $at
/* ADBF48 80064DA8 1420007E */ bnez $at, .L80064FA4
/* ADBF4C 80064DAC A48C000C */ sh $t4, 0xc($a0)
/* ADBF50 80064DB0 1000007C */ b .L80064FA4
/* ADBF54 80064DB4 A48E000C */ sh $t6, 0xc($a0)
glabel L80064DB8
/* ADBF58 80064DB8 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADBF5C 80064DBC 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADBF60 80064DC0 9483000C */ lhu $v1, 0xc($a0)
/* ADBF64 80064DC4 28613000 */ slti $at, $v1, 0x3000
/* ADBF68 80064DC8 14200002 */ bnez $at, .L80064DD4
/* ADBF6C 80064DCC 28614555 */ slti $at, $v1, 0x4555
/* ADBF70 80064DD0 14200074 */ bnez $at, .L80064FA4
.L80064DD4:
/* ADBF74 80064DD4 28614555 */ slti $at, $v1, 0x4555
/* ADBF78 80064DD8 14200008 */ bnez $at, .L80064DFC
/* ADBF7C 80064DDC 3401AAAB */ li $at, 43691
/* ADBF80 80064DE0 0061082A */ slt $at, $v1, $at
/* ADBF84 80064DE4 10200005 */ beqz $at, .L80064DFC
/* ADBF88 80064DE8 24020001 */ li $v0, 1
/* ADBF8C 80064DEC 3C010001 */ lui $at, 1
/* ADBF90 80064DF0 00300821 */ addu $at, $at, $s0
/* ADBF94 80064DF4 1000006B */ b .L80064FA4
/* ADBF98 80064DF8 A0220AE3 */ sb $v0, 0xae3($at)
.L80064DFC:
/* ADBF9C 80064DFC 3401AAAB */ li $at, 43691
/* ADBFA0 80064E00 0061082A */ slt $at, $v1, $at
/* ADBFA4 80064E04 14200009 */ bnez $at, .L80064E2C
/* ADBFA8 80064E08 24190003 */ li $t9, 3
/* ADBFAC 80064E0C 3401C556 */ li $at, 50518
/* ADBFB0 80064E10 0061082A */ slt $at, $v1, $at
/* ADBFB4 80064E14 10200005 */ beqz $at, .L80064E2C
/* ADBFB8 80064E18 240F0002 */ li $t7, 2
/* ADBFBC 80064E1C 3C010001 */ lui $at, 1
/* ADBFC0 80064E20 00300821 */ addu $at, $at, $s0
/* ADBFC4 80064E24 1000005F */ b .L80064FA4
/* ADBFC8 80064E28 A02F0AE3 */ sb $t7, 0xae3($at)
.L80064E2C:
/* ADBFCC 80064E2C 3C010001 */ lui $at, 1
/* ADBFD0 80064E30 00300821 */ addu $at, $at, $s0
/* ADBFD4 80064E34 1000005B */ b .L80064FA4
/* ADBFD8 80064E38 A0390AE3 */ sb $t9, 0xae3($at)
glabel L80064E3C
/* ADBFDC 80064E3C 8E18009C */ lw $t8, 0x9c($s0)
/* ADBFE0 80064E40 3C010001 */ lui $at, 1
/* ADBFE4 80064E44 02011021 */ addu $v0, $s0, $at
/* ADBFE8 80064E48 330A0008 */ andi $t2, $t8, 8
/* ADBFEC 80064E4C 51400010 */ beql $t2, $zero, .L80064E90
/* ADBFF0 80064E50 84430AB0 */ lh $v1, 0xab0($v0)
/* ADBFF4 80064E54 3C010001 */ lui $at, 1
/* ADBFF8 80064E58 02011021 */ addu $v0, $s0, $at
/* ADBFFC 80064E5C 84430AB0 */ lh $v1, 0xab0($v0)
/* ADC000 80064E60 28610028 */ slti $at, $v1, 0x28
/* ADC004 80064E64 1020004F */ beqz $at, .L80064FA4
/* ADC008 80064E68 246B0002 */ addiu $t3, $v1, 2
/* ADC00C 80064E6C 844C0AB8 */ lh $t4, 0xab8($v0)
/* ADC010 80064E70 844E0ABA */ lh $t6, 0xaba($v0)
/* ADC014 80064E74 A44B0AB0 */ sh $t3, 0xab0($v0)
/* ADC018 80064E78 258DFFFD */ addiu $t5, $t4, -3
/* ADC01C 80064E7C 25CFFFFD */ addiu $t7, $t6, -3
/* ADC020 80064E80 A44D0AB8 */ sh $t5, 0xab8($v0)
/* ADC024 80064E84 10000047 */ b .L80064FA4
/* ADC028 80064E88 A44F0ABA */ sh $t7, 0xaba($v0)
/* ADC02C 80064E8C 84430AB0 */ lh $v1, 0xab0($v0)
.L80064E90:
/* ADC030 80064E90 28610003 */ slti $at, $v1, 3
/* ADC034 80064E94 14200043 */ bnez $at, .L80064FA4
/* ADC038 80064E98 2479FFFE */ addiu $t9, $v1, -2
/* ADC03C 80064E9C 84580AB8 */ lh $t8, 0xab8($v0)
/* ADC040 80064EA0 844B0ABA */ lh $t3, 0xaba($v0)
/* ADC044 80064EA4 A4590AB0 */ sh $t9, 0xab0($v0)
/* ADC048 80064EA8 270A0003 */ addiu $t2, $t8, 3
/* ADC04C 80064EAC 256C0003 */ addiu $t4, $t3, 3
/* ADC050 80064EB0 A44A0AB8 */ sh $t2, 0xab8($v0)
/* ADC054 80064EB4 1000003B */ b .L80064FA4
/* ADC058 80064EB8 A44C0ABA */ sh $t4, 0xaba($v0)
glabel L80064EBC
/* ADC05C 80064EBC 3C010001 */ lui $at, 1
/* ADC060 80064EC0 24020001 */ li $v0, 1
/* ADC064 80064EC4 00300821 */ addu $at, $at, $s0
/* ADC068 80064EC8 10000036 */ b .L80064FA4
/* ADC06C 80064ECC A0221DE9 */ sb $v0, 0x1de9($at)
glabel L80064ED0
/* ADC070 80064ED0 3C010001 */ lui $at, 1
/* ADC074 80064ED4 00300821 */ addu $at, $at, $s0
/* ADC078 80064ED8 10000032 */ b .L80064FA4
/* ADC07C 80064EDC A0201DE9 */ sb $zero, 0x1de9($at)
glabel L80064EE0
/* ADC080 80064EE0 02002025 */ move $a0, $s0
/* ADC084 80064EE4 0C01B0F4 */ jal func_8006C3D0
/* ADC088 80064EE8 24050003 */ li $a1, 3
/* ADC08C 80064EEC 1000002E */ b .L80064FA8
/* ADC090 80064EF0 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064EF4
/* ADC094 80064EF4 02002025 */ move $a0, $s0
/* ADC098 80064EF8 0C01B0F4 */ jal func_8006C3D0
/* ADC09C 80064EFC 24050004 */ li $a1, 4
/* ADC0A0 80064F00 10000029 */ b .L80064FA8
/* ADC0A4 80064F04 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064F08
/* ADC0A8 80064F08 10400004 */ beqz $v0, .L80064F1C
/* ADC0AC 80064F0C 3C010001 */ lui $at, 1
/* ADC0B0 80064F10 24020001 */ li $v0, 1
/* ADC0B4 80064F14 00300821 */ addu $at, $at, $s0
/* ADC0B8 80064F18 A0220B0A */ sb $v0, 0xb0a($at)
.L80064F1C:
/* ADC0BC 80064F1C 0C01E233 */ jal func_800788CC
/* ADC0C0 80064F20 240420C0 */ li $a0, 8384
/* ADC0C4 80064F24 10000020 */ b .L80064FA8
/* ADC0C8 80064F28 8FBF002C */ lw $ra, 0x2c($sp)
glabel L80064F2C
/* ADC0CC 80064F2C 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADC0D0 80064F30 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADC0D4 80064F34 240D0001 */ li $t5, 1
/* ADC0D8 80064F38 1000001A */ b .L80064FA4
/* ADC0DC 80064F3C A48D1422 */ sh $t5, 0x1422($a0)
glabel L80064F40
/* ADC0E0 80064F40 3C048016 */ lui $a0, %hi(gSaveContext) # $a0, 0x8016
/* ADC0E4 80064F44 2484E660 */ addiu $a0, %lo(gSaveContext) # addiu $a0, $a0, -0x19a0
/* ADC0E8 80064F48 8C8E0010 */ lw $t6, 0x10($a0)
/* ADC0EC 80064F4C 3C198012 */ lui $t9, %hi(D_8011FB40) # $t9, 0x8012
/* ADC0F0 80064F50 3C0B8012 */ lui $t3, %hi(D_8011FB40) # $t3, 0x8012
/* ADC0F4 80064F54 15C00006 */ bnez $t6, .L80064F70
/* ADC0F8 80064F58 00000000 */ nop
/* ADC0FC 80064F5C 948F000C */ lhu $t7, 0xc($a0)
/* ADC100 80064F60 9739FB40 */ lhu $t9, %lo(D_8011FB40)($t9)
/* ADC104 80064F64 01F9C023 */ subu $t8, $t7, $t9
/* ADC108 80064F68 1000000E */ b .L80064FA4
/* ADC10C 80064F6C A498000C */ sh $t8, 0xc($a0)
.L80064F70:
/* ADC110 80064F70 956BFB40 */ lhu $t3, %lo(D_8011FB40)($t3)
/* ADC114 80064F74 948A000C */ lhu $t2, 0xc($a0)
/* ADC118 80064F78 000B6040 */ sll $t4, $t3, 1
/* ADC11C 80064F7C 014C6823 */ subu $t5, $t2, $t4
/* ADC120 80064F80 10000008 */ b .L80064FA4
/* ADC124 80064F84 A48D000C */ sh $t5, 0xc($a0)
glabel L80064F88
/* ADC128 80064F88 0C03BA09 */ jal func_800EE824
/* ADC12C 80064F8C 00000000 */ nop
/* ADC130 80064F90 8FA30050 */ lw $v1, 0x50($sp)
/* ADC134 80064F94 8FA4004C */ lw $a0, 0x4c($sp)
/* ADC138 80064F98 946E0002 */ lhu $t6, 2($v1)
/* ADC13C 80064F9C 25CFFFFF */ addiu $t7, $t6, -1
/* ADC140 80064FA0 A48F0010 */ sh $t7, 0x10($a0)
glabel L80064FA4
.L80064FA4:
/* ADC144 80064FA4 8FBF002C */ lw $ra, 0x2c($sp)
.L80064FA8:
/* ADC148 80064FA8 8FB00028 */ lw $s0, 0x28($sp)
/* ADC14C 80064FAC 27BD0048 */ addiu $sp, $sp, 0x48
/* ADC150 80064FB0 03E00008 */ jr $ra
/* ADC154 80064FB4 00000000 */ nop

View file

@ -1,45 +0,0 @@
glabel func_80065134
/* ADC2D4 80065134 AFA40000 */ sw $a0, ($sp)
/* ADC2D8 80065138 94AF0010 */ lhu $t7, 0x10($a1)
/* ADC2DC 8006513C 94CE0002 */ lhu $t6, 2($a2)
/* ADC2E0 80065140 3C058016 */ lui $a1, %hi(gSaveContext) # $a1, 0x8016
/* ADC2E4 80065144 15CF0022 */ bne $t6, $t7, .L800651D0
/* ADC2E8 80065148 00000000 */ nop
/* ADC2EC 8006514C 90D80006 */ lbu $t8, 6($a2)
/* ADC2F0 80065150 3C013CB4 */ li $at, 0x3CB40000 # 0.000000
/* ADC2F4 80065154 44810000 */ mtc1 $at, $f0
/* ADC2F8 80065158 44982000 */ mtc1 $t8, $f4
/* ADC2FC 8006515C 24A5E660 */ addiu $a1, %lo(gSaveContext) # addiu $a1, $a1, -0x19a0
/* ADC300 80065160 07010005 */ bgez $t8, .L80065178
/* ADC304 80065164 468021A0 */ cvt.s.w $f6, $f4
/* ADC308 80065168 3C014F80 */ li $at, 0x4F800000 # 0.000000
/* ADC30C 8006516C 44814000 */ mtc1 $at, $f8
/* ADC310 80065170 00000000 */ nop
/* ADC314 80065174 46083180 */ add.s $f6, $f6, $f8
.L80065178:
/* ADC318 80065178 90C80007 */ lbu $t0, 7($a2)
/* ADC31C 8006517C 3C014270 */ li $at, 0x42700000 # 0.000000
/* ADC320 80065180 44815000 */ mtc1 $at, $f10
/* ADC324 80065184 25090001 */ addiu $t1, $t0, 1
/* ADC328 80065188 44894000 */ mtc1 $t1, $f8
/* ADC32C 8006518C 460A3402 */ mul.s $f16, $f6, $f10
/* ADC330 80065190 468041A0 */ cvt.s.w $f6, $f8
/* ADC334 80065194 46008483 */ div.s $f18, $f16, $f0
/* ADC338 80065198 46003283 */ div.s $f10, $f6, $f0
/* ADC33C 8006519C 4600910D */ trunc.w.s $f4, $f18
/* ADC340 800651A0 44022000 */ mfc1 $v0, $f4
/* ADC344 800651A4 00000000 */ nop
/* ADC348 800651A8 00021400 */ sll $v0, $v0, 0x10
/* ADC34C 800651AC 00021403 */ sra $v0, $v0, 0x10
/* ADC350 800651B0 4600540D */ trunc.w.s $f16, $f10
/* ADC354 800651B4 44038000 */ mfc1 $v1, $f16
/* ADC358 800651B8 00000000 */ nop
/* ADC35C 800651BC 00031C00 */ sll $v1, $v1, 0x10
/* ADC360 800651C0 00031C03 */ sra $v1, $v1, 0x10
/* ADC364 800651C4 00432021 */ addu $a0, $v0, $v1
/* ADC368 800651C8 A4A4000C */ sh $a0, 0xc($a1)
/* ADC36C 800651CC A4A4141A */ sh $a0, 0x141a($a1)
.L800651D0:
/* ADC370 800651D0 03E00008 */ jr $ra
/* ADC374 800651D4 00000000 */ nop

4
spec
View file

@ -930,9 +930,7 @@ endseg
beginseg
name "ovl_Bg_Hidan_Firewall"
include "build/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.o"
include "build/data/overlays/actors/z_bg_hidan_firewall.data.o"
include "build/data/overlays/actors/z_bg_hidan_firewall.rodata.o"
include "build/data/overlays/actors/z_bg_hidan_firewall.reloc.o"
include "build/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall_reloc.o"
endseg
beginseg

View file

@ -1,5 +1,6 @@
#include <ultra64.h>
#include <global.h>
#include <PR/os_cont.h>
u16 D_8011E1C0 = 0;
u16 D_8011E1C4 = 0;
@ -95,19 +96,17 @@ void func_80064558(GlobalContext* globalCtx, CutsceneContext* csCtx) {
}
}
#ifdef NON_MATCHING
// minor ordering and regalloc differences
void func_800645A0(GlobalContext* globalCtx, CutsceneContext* csCtx) {
CutsceneStateHandler handler;
Input* pad1 = &globalCtx->state.input[0];
if (!~(globalCtx->state.input[0].padPressed | -0x201) && (csCtx->state == CS_STATE_IDLE) &&
if (!~(pad1->padPressed | ~L_JPAD) && (csCtx->state == CS_STATE_IDLE) &&
(gSaveContext.scene_setup_index >= 4)) {
D_8015FCC8 = 0;
gSaveContext.cutscene_index = 0xFFFD;
gSaveContext.cutscene_trigger = 1;
}
if (!~(globalCtx->state.input[0].padPressed | -0x801) && (csCtx->state == CS_STATE_IDLE) &&
if (!~(pad1->padPressed | ~U_JPAD) && (csCtx->state == CS_STATE_IDLE) &&
(gSaveContext.scene_setup_index >= 4) && (D_8011D394 == 0)) {
D_8015FCC8 = 1;
gSaveContext.cutscene_index = 0xFFFD;
@ -127,13 +126,9 @@ void func_800645A0(GlobalContext* globalCtx, CutsceneContext* csCtx) {
if (gSaveContext.cutscene_index >= 0xFFF0) {
func_80068ECC(globalCtx, csCtx);
handler = sCsStateHandlers2[csCtx->state];
handler(globalCtx, csCtx);
sCsStateHandlers2[csCtx->state](globalCtx, csCtx);
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_demo/func_800645A0.s")
#endif
void func_80064720(GlobalContext* globalCtx, CutsceneContext* csCtx) {
}
@ -164,8 +159,6 @@ void func_800647C0(GlobalContext* globalCtx, CutsceneContext* csCtx) {
}
// Command 3: Misc. Actions
#ifdef NON_MATCHING
// regalloc and minor ordering differences
void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* cmd) {
Player* player = PLAYER;
f32 temp;
@ -195,6 +188,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
if (sp3F != 0) {
func_800F6D58(0xF, 0, 0);
func_800753C4(globalCtx, 3);
if (1) {}
D_8015FD70 = 1;
}
break;
@ -320,7 +314,7 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
case 25:
gSaveContext.day_time += 30;
if ((gSaveContext.day_time & 0xFFFF) > 0xCAAA) {
if ((gSaveContext.day_time) > 0xCAAA) {
gSaveContext.day_time = 0xCAAA;
}
break;
@ -384,9 +378,6 @@ void func_80064824(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase*
break;
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_demo/func_80064824.s")
#endif
// Command 4: Set Environment Lighting
void Cutscene_Command_SetLighting(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdEnvLighting* cmd) {
@ -433,8 +424,6 @@ void Cutscene_Command_09(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmd
}
// Command 0x8C: Set Time of Day & Environment Time
#ifdef NON_MATCHING
// regalloc differences
void func_80065134(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdDayTime* cmd) {
s16 temp1;
s16 temp2;
@ -442,12 +431,11 @@ void func_80065134(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdDayTim
if (csCtx->frames == cmd->startFrame) {
temp1 = (cmd->hour * 60.0f) / 0.021972656f;
temp2 = (cmd->minute + 1) / 0.021972656f;
gSaveContext.environment_time = gSaveContext.day_time = temp1 + temp2;
gSaveContext.day_time = temp1 + temp2;
gSaveContext.environment_time = temp1 + temp2;
}
}
#else
#pragma GLOBAL_ASM("asm/non_matchings/code/z_demo/func_80065134.s")
#endif
// Command 0x3E8: Code Execution (& Terminates Cutscene?)
void Cutscene_Command_Terminator(GlobalContext* globalCtx, CutsceneContext* csCtx, CsCmdBase* cmd) {

View file

@ -1,3 +1,9 @@
/*
* File: z_bg_hidan_firewall.c
* Overlay: ovl_Bg_Hidan_Firewall
* Description: Proximity Flame Wall
*/
#include "z_bg_hidan_firewall.h"
#define ROOM 0x00
@ -5,9 +11,17 @@
void BgHidanFirewall_Init(BgHidanFirewall* this, GlobalContext* globalCtx);
void BgHidanFirewall_Destroy(BgHidanFirewall* this, GlobalContext* globalCtx);
s32 BgHidanFirewall_CheckProximity(BgHidanFirewall* this, GlobalContext* globalCtx);
void BgHidanFirewall_Wait(BgHidanFirewall* this, GlobalContext* globalCtx);
void BgHidanFirewall_Countdown(BgHidanFirewall* this, GlobalContext* globalCtx);
void BgHidanFirewall_Erupt(BgHidanFirewall* this, GlobalContext* globalCtx);
void BgHidanFirewall_Collide(BgHidanFirewall* this, GlobalContext* globalCtx);
void BgHidanFirewall_ColliderFollowPlayer(BgHidanFirewall* this, GlobalContext* globalCtx);
void BgHidanFirewall_Update(BgHidanFirewall* this, GlobalContext* globalCtx);
void BgHidanFirewall_Draw(BgHidanFirewall* this, GlobalContext* globalCtx);
extern Gfx D_0600DA80[];
/*
const ActorInit Bg_Hidan_Firewall_InitVars = {
ACTOR_BG_HIDAN_FIREWALL,
ACTORTYPE_BG,
@ -20,23 +34,194 @@ const ActorInit Bg_Hidan_Firewall_InitVars = {
(ActorFunc)BgHidanFirewall_Update,
NULL,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/BgHidanFirewall_Init.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/BgHidanFirewall_Destroy.s")
static ColliderCylinderInit cylinderInitData = {
0x0A, 0x11, 0x00, 0x09,
0x20, 0x01, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00,
0x20000000,
0x01, 0x04, 0x00, 0x00,
0xFFCFFFFF,
0x00, 0x00, 0x00, 0x00,
0x19, 0x00, 0x01, 0x00,
0x001E, 0x0053,
0x0000,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/func_80886728.s")
static Sub98Init4 actor98InitData = {
0x01, 0x0050, 0x0064, 0xFF,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/func_80886794.s")
UNK_PTR D_80886D04[] = {
0x06015D20,
0x06016120,
0x06016520,
0x06016920,
0x06016D20,
0x06017120,
0x06017520,
0x06017920,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/func_808867DC.s")
void BgHidanFirewall_Init(BgHidanFirewall* this, GlobalContext* globalCtx) {
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/func_80886810.s")
f32 scale;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/func_80886898.s")
scale = 0.12f;
this->actor.scale.x = scale;
this->actor.scale.z = scale;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/func_808868FC.s")
scale = 0.01f;
this->actor.scale.y = 0.01f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/BgHidanFirewall_Update.s")
this->unk_150 = 0;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Bg_Hidan_Firewall/func_80886B34.s")
ActorCollider_AllocCylinder(globalCtx, &this->collider);
ActorCollider_InitCylinder(globalCtx, &this->collider, &this->actor, &cylinderInitData);
this->collider.dim.position.y = this->actor.posRot.pos.y;
func_80061ED4(&this->actor.sub_98, NULL, &actor98InitData);
this->actionFunc = (ActorFunc)BgHidanFirewall_Wait;
}
void BgHidanFirewall_Destroy(BgHidanFirewall* this, GlobalContext* globalCtx) {
BgHidanFirewall* thing = this;
ActorCollider_FreeCylinder(globalCtx, &this->collider);
}
s32 BgHidanFirewall_CheckProximity(BgHidanFirewall* this, GlobalContext* globalCtx) {
Player* player;
Vec3f distance;
player = PLAYER;
func_8002DBD0(&this->actor, &distance, &player->actor.posRot.pos);
if (fabsf(distance.x) < 100.0f && fabsf(distance.z) < 120.0f) {
return 1;
}
return 0;
}
void BgHidanFirewall_Wait(BgHidanFirewall* this, GlobalContext* globalCtx) {
if (BgHidanFirewall_CheckProximity(this, globalCtx) != 0) {
this->actor.draw = BgHidanFirewall_Draw;
this->actor.params = 5;
this->actionFunc = (ActorFunc)BgHidanFirewall_Countdown;
}
}
void BgHidanFirewall_Countdown(BgHidanFirewall* this, GlobalContext* globalCtx) {
if (this->actor.params != 0) {
this->actor.params--;
}
if (this->actor.params == 0) {
this->actionFunc = (ActorFunc)BgHidanFirewall_Erupt;
}
}
void BgHidanFirewall_Erupt(BgHidanFirewall* this, GlobalContext* globalCtx) {
if (BgHidanFirewall_CheckProximity(this, globalCtx) != 0) {
Math_ApproxF(&this->actor.scale.y, 0.1f, 0.01f/0.4f);
} else {
if (Math_ApproxF(&this->actor.scale.y, 0.01f, 0.01f) != 0) {
this->actor.draw = NULL;
this->actionFunc = (ActorFunc)BgHidanFirewall_Wait;
} else {
this->actor.params = 0;
}
}
}
void BgHidanFirewall_Collide(BgHidanFirewall* this, GlobalContext* globalCtx) {
s16 phi_a3;
if (func_8002E084(&this->actor, 0x4000) != 0) {
phi_a3 = this->actor.shape.rot.y;
} else {
phi_a3 = this->actor.shape.rot.y + 0x8000;
}
func_8002F71C(globalCtx, &this->actor, 5.0f, phi_a3, 1.0f);
}
void BgHidanFirewall_ColliderFollowPlayer(BgHidanFirewall* this, GlobalContext* globalCtx) {
Player* player;
Vec3f sp30;
f32 temp_ret;
f32 sp28;
f32 phi_f0;
player = PLAYER;
func_8002DBD0(&this->actor, &sp30, &player->actor.posRot.pos);
if (sp30.x < -70.0f) {
sp30.x = -70.0f;
} else {
if (70.0f < sp30.x) {
phi_f0 = 70.0f;
} else {
phi_f0 = sp30.x;
}
sp30.x = phi_f0;
}
if (this->actor.params == 0) {
if (0.0f < sp30.z) {
sp30.z = -25.0f;
this->actor.params = -1;
} else {
sp30.z = 25.0f;
this->actor.params = 1;
}
} else {
sp30.z = this->actor.params * 25.0f;
}
sp28 = Math_Sins(this->actor.shape.rot.y);
temp_ret = Math_Coss(this->actor.shape.rot.y);
this->collider.dim.position.x = this->actor.posRot.pos.x + sp30.x * temp_ret + sp30.z * sp28;
this->collider.dim.position.z = this->actor.posRot.pos.z - sp30.x * sp28 + sp30.z * temp_ret;
}
void BgHidanFirewall_Update(BgHidanFirewall* this, GlobalContext* globalCtx) {
s32 pad1;
s32 pad2;
this->unk_150 = (this->unk_150 + 1) % 8;
if (this->collider.base.colliderFlags & 2) {
this->collider.base.colliderFlags &= ~2;
BgHidanFirewall_Collide(this, globalCtx);
}
this->actionFunc(this, globalCtx);
if (this->actionFunc == (ActorFunc)BgHidanFirewall_Erupt) {
BgHidanFirewall_ColliderFollowPlayer(this, globalCtx);
Actor_CollisionCheck_SetAT(globalCtx, &globalCtx->sub_11E60, &this->collider);
Actor_CollisionCheck_SetOT(globalCtx, &globalCtx->sub_11E60, &this->collider);
func_8002F974(&this->actor, 0x2034);
}
}
void BgHidanFirewall_Draw(BgHidanFirewall* this, GlobalContext* globalCtx) {
UNK_PTR* temp;
u32 pad;
GraphicsContext* gfxCtx;
Gfx* dispRefs[3];
gfxCtx = globalCtx->state.gfxCtx;
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_hidan_firewall.c", 448);
gfxCtx->polyXlu.p = Gfx_CallSetupDL(gfxCtx->polyXlu.p, 0x14);
temp = D_80886D04;
gSPSegment(gfxCtx->polyXlu.p++, 0x08, SEGMENTED_TO_VIRTUAL(temp[this->unk_150]));
gDPSetPrimColor(gfxCtx->polyXlu.p++, 0, 0x01, 0xFF, 0xFF, 0x00, 0x96);
gDPSetEnvColor(gfxCtx->polyXlu.p++, 0xFF, 0x00, 0x00, 0xFF);
gSPMatrix(gfxCtx->polyXlu.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_bg_hidan_firewall.c", 458),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
gSPDisplayList(gfxCtx->polyXlu.p++, D_0600DA80);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_bg_hidan_firewall.c", 463);
}

View file

@ -5,10 +5,10 @@
#include <global.h>
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0x54];
/* 0x0000 */ Actor actor;
/* 0x014C */ ActorFunc actionFunc;
/* 0x0150 */ s16 unk_150;
/* 0x0154 */ ColliderCylinderMain collider;
} BgHidanFirewall; // size = 0x01A0
extern const ActorInit Bg_Hidan_Firewall_InitVars;
#endif

View file

@ -481,6 +481,9 @@ D_060012C0 = 0x060012C0;
D_050095B0 = 0x050095B0;
D_05009940 = 0x05009940;
// z_bg_hidan_firewall
D_0600DA80 = 0x0600DA80;
// z_en_ani
D_060067B8 = 0x060067B8;
D_060070F0 = 0x060070F0;