mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 08:52:40 +01:00
129 lines
5.8 KiB
ArmAsm
129 lines
5.8 KiB
ArmAsm
.set noat # allow manual use of $at
|
|
.set noreorder # don't insert nops after branches
|
|
|
|
|
|
glabel func_8024A7A0
|
|
/* 13DAE0 8024A7A0 24420024 */ addiu $v0, $v0, 0x24
|
|
/* 13DAE4 8024A7A4 3C048025 */ lui $a0, 0x8025
|
|
/* 13DAE8 8024A7A8 2484F5C0 */ addiu $a0, $a0, -0xa40
|
|
/* 13DAEC 8024A7AC 0C051FCC */ jal func_80147F30
|
|
/* 13DAF0 8024A7B0 24050001 */ addiu $a1, $zero, 1
|
|
/* 13DAF4 8024A7B4 24020001 */ addiu $v0, $zero, 1
|
|
/* 13DAF8 8024A7B8 A2620000 */ sb $v0, ($s3)
|
|
/* 13DAFC 8024A7BC 8FBF0020 */ lw $ra, 0x20($sp)
|
|
/* 13DB00 8024A7C0 8FB3001C */ lw $s3, 0x1c($sp)
|
|
/* 13DB04 8024A7C4 8FB20018 */ lw $s2, 0x18($sp)
|
|
/* 13DB08 8024A7C8 8FB10014 */ lw $s1, 0x14($sp)
|
|
/* 13DB0C 8024A7CC 8FB00010 */ lw $s0, 0x10($sp)
|
|
/* 13DB10 8024A7D0 03E00008 */ jr $ra
|
|
/* 13DB14 8024A7D4 27BD0028 */ addiu $sp, $sp, 0x28
|
|
|
|
/* 13DB18 8024A7D8 3C038027 */ lui $v1, 0x8027
|
|
/* 13DB1C 8024A7DC 8C6304C8 */ lw $v1, 0x4c8($v1)
|
|
/* 13DB20 8024A7E0 27BDFFE8 */ addiu $sp, $sp, -0x18
|
|
/* 13DB24 8024A7E4 AFBF0014 */ sw $ra, 0x14($sp)
|
|
/* 13DB28 8024A7E8 AFB00010 */ sw $s0, 0x10($sp)
|
|
/* 13DB2C 8024A7EC 00031040 */ sll $v0, $v1, 1
|
|
/* 13DB30 8024A7F0 00431021 */ addu $v0, $v0, $v1
|
|
/* 13DB34 8024A7F4 00021080 */ sll $v0, $v0, 2
|
|
/* 13DB38 8024A7F8 3C038027 */ lui $v1, 0x8027
|
|
/* 13DB3C 8024A7FC 00621821 */ addu $v1, $v1, $v0
|
|
/* 13DB40 8024A800 906304D2 */ lbu $v1, 0x4d2($v1)
|
|
/* 13DB44 8024A804 3C028027 */ lui $v0, 0x8027
|
|
/* 13DB48 8024A808 8C4200C4 */ lw $v0, 0xc4($v0)
|
|
/* 13DB4C 8024A80C 3C098027 */ lui $t1, 0x8027
|
|
/* 13DB50 8024A810 8D2905C0 */ lw $t1, 0x5c0($t1)
|
|
/* 13DB54 8024A814 30428000 */ andi $v0, $v0, 0x8000
|
|
/* 13DB58 8024A818 14600002 */ bnez $v1, .L8024A824
|
|
/* 13DB5C 8024A81C 0123001A */ div $zero, $t1, $v1
|
|
/* 13DB60 8024A820 0007000D */ break 7
|
|
.L8024A824:
|
|
/* 13DB64 8024A824 2401FFFF */ addiu $at, $zero, -1
|
|
/* 13DB68 8024A828 14610004 */ bne $v1, $at, .L8024A83C
|
|
/* 13DB6C 8024A82C 3C018000 */ lui $at, 0x8000
|
|
/* 13DB70 8024A830 15210002 */ bne $t1, $at, .L8024A83C
|
|
/* 13DB74 8024A834 00000000 */ nop
|
|
/* 13DB78 8024A838 0006000D */ break 6
|
|
.L8024A83C:
|
|
/* 13DB7C 8024A83C 00002812 */ mflo $a1
|
|
/* 13DB80 8024A840 00004010 */ mfhi $t0
|
|
/* 13DB84 8024A844 10400015 */ beqz $v0, .L8024A89C
|
|
/* 13DB88 8024A848 00000000 */ nop
|
|
/* 13DB8C 8024A84C 3C048027 */ lui $a0, 0x8027
|
|
/* 13DB90 8024A850 248405E0 */ addiu $a0, $a0, 0x5e0
|
|
/* 13DB94 8024A854 8C820000 */ lw $v0, ($a0)
|
|
/* 13DB98 8024A858 14400010 */ bnez $v0, .L8024A89C
|
|
/* 13DB9C 8024A85C 00091040 */ sll $v0, $t1, 1
|
|
/* 13DBA0 8024A860 3C038027 */ lui $v1, 0x8027
|
|
/* 13DBA4 8024A864 00621821 */ addu $v1, $v1, $v0
|
|
/* 13DBA8 8024A868 84630400 */ lh $v1, 0x400($v1)
|
|
/* 13DBAC 8024A86C 24027FFE */ addiu $v0, $zero, 0x7ffe
|
|
/* 13DBB0 8024A870 14620005 */ bne $v1, $v0, .L8024A888
|
|
/* 13DBB4 8024A874 24020001 */ addiu $v0, $zero, 1
|
|
/* 13DBB8 8024A878 0C05272D */ jal play_sound
|
|
/* 13DBBC 8024A87C 2404021D */ addiu $a0, $zero, 0x21d
|
|
/* 13DBC0 8024A880 08092B11 */ j func_8024AC44
|
|
/* 13DBC4 8024A884 00000000 */ nop
|
|
|
|
.L8024A888:
|
|
/* 13DBC8 8024A888 AC820000 */ sw $v0, ($a0)
|
|
/* 13DBCC 8024A88C 0C05272D */ jal play_sound
|
|
/* 13DBD0 8024A890 240400C9 */ addiu $a0, $zero, 0xc9
|
|
/* 13DBD4 8024A894 08092B11 */ j func_8024AC44
|
|
/* 13DBD8 8024A898 00000000 */ nop
|
|
|
|
.L8024A89C:
|
|
/* 13DBDC 8024A89C 3C028027 */ lui $v0, 0x8027
|
|
/* 13DBE0 8024A8A0 844205CC */ lh $v0, 0x5cc($v0)
|
|
/* 13DBE4 8024A8A4 104000B1 */ beqz $v0, .L8024AB6C
|
|
/* 13DBE8 8024A8A8 00000000 */ nop
|
|
/* 13DBEC 8024A8AC 3C028027 */ lui $v0, 0x8027
|
|
/* 13DBF0 8024A8B0 8C4205E0 */ lw $v0, 0x5e0($v0)
|
|
/* 13DBF4 8024A8B4 14400015 */ bnez $v0, .L8024A90C
|
|
/* 13DBF8 8024A8B8 3C020001 */ lui $v0, 1
|
|
/* 13DBFC 8024A8BC 3C108027 */ lui $s0, 0x8027
|
|
/* 13DC00 8024A8C0 261005E4 */ addiu $s0, $s0, 0x5e4
|
|
/* 13DC04 8024A8C4 3C028027 */ lui $v0, 0x8027
|
|
/* 13DC08 8024A8C8 8C4200C0 */ lw $v0, 0xc0($v0)
|
|
/* 13DC0C 8024A8CC 3C030003 */ lui $v1, 3
|
|
/* 13DC10 8024A8D0 00431024 */ and $v0, $v0, $v1
|
|
/* 13DC14 8024A8D4 8E030000 */ lw $v1, ($s0)
|
|
/* 13DC18 8024A8D8 10400002 */ beqz $v0, .L8024A8E4
|
|
/* 13DC1C 8024A8DC 38620001 */ xori $v0, $v1, 1
|
|
/* 13DC20 8024A8E0 AE020000 */ sw $v0, ($s0)
|
|
.L8024A8E4:
|
|
/* 13DC24 8024A8E4 8E020000 */ lw $v0, ($s0)
|
|
/* 13DC28 8024A8E8 106200A0 */ beq $v1, $v0, .L8024AB6C
|
|
/* 13DC2C 8024A8EC 00000000 */ nop
|
|
/* 13DC30 8024A8F0 0C05272D */ jal play_sound
|
|
/* 13DC34 8024A8F4 240400C8 */ addiu $a0, $zero, 0xc8
|
|
/* 13DC38 8024A8F8 8E040000 */ lw $a0, ($s0)
|
|
/* 13DC3C 8024A8FC 0C092937 */ jal func_8024A4DC
|
|
/* 13DC40 8024A900 00000000 */ nop
|
|
/* 13DC44 8024A904 08092ADB */ j func_8024AB6C
|
|
/* 13DC48 8024A908 00000000 */ nop
|
|
|
|
.L8024A90C:
|
|
/* 13DC4C 8024A90C 3C038027 */ lui $v1, 0x8027
|
|
/* 13DC50 8024A910 8C6300C0 */ lw $v1, 0xc0($v1)
|
|
/* 13DC54 8024A914 34422000 */ ori $v0, $v0, 0x2000
|
|
/* 13DC58 8024A918 00621024 */ and $v0, $v1, $v0
|
|
/* 13DC5C 8024A91C 10400022 */ beqz $v0, .L8024A9A8
|
|
/* 13DC60 8024A920 3C020001 */ lui $v0, 1
|
|
/* 13DC64 8024A924 00621024 */ and $v0, $v1, $v0
|
|
/* 13DC68 8024A928 10400011 */ beqz $v0, .L8024A970
|
|
/* 13DC6C 8024A92C 24A5FFFF */ addiu $a1, $a1, -1
|
|
/* 13DC70 8024A930 04A20001 */ bltzl $a1, .L8024A938
|
|
/* 13DC74 8024A934 0000282D */ daddu $a1, $zero, $zero
|
|
.L8024A938:
|
|
/* 13DC78 8024A938 3C048027 */ lui $a0, 0x8027
|
|
/* 13DC7C 8024A93C 248404C8 */ addiu $a0, $a0, 0x4c8
|
|
/* 13DC80 8024A940 8C830000 */ lw $v1, ($a0)
|
|
/* 13DC84 8024A944 00031040 */ sll $v0, $v1, 1
|
|
/* 13DC88 8024A948 00431021 */ addu $v0, $v0, $v1
|
|
/* 13DC8C 8024A94C 00021080 */ sll $v0, $v0, 2
|
|
/* 13DC90 8024A950 3C018027 */ lui $at, 0x8027
|
|
/* 13DC94 8024A954 00220821 */ addu $at, $at, $v0
|
|
/* 13DC98 8024A958 902204D1 */ lbu $v0, 0x4d1($at)
|
|
/* 13DC9C 8024A95C 00A2102A */ slt $v0, $a1, $v0
|