mirror of
https://github.com/pmret/papermario.git
synced 2024-11-18 17:02:46 +01:00
88 lines
3.7 KiB
ArmAsm
88 lines
3.7 KiB
ArmAsm
|
.set noat # allow manual use of $at
|
||
|
.set noreorder # don't insert nops after branches
|
||
|
|
||
|
|
||
|
glabel nuScEventHandler
|
||
|
/* 03A3A8 8005EFA8 27BDFFD0 */ addiu $sp, $sp, -0x30
|
||
|
/* 03A3AC 8005EFAC AFB1001C */ sw $s1, 0x1c($sp)
|
||
|
/* 03A3B0 8005EFB0 3C11800E */ lui $s1, 0x800e
|
||
|
/* 03A3B4 8005EFB4 2631A4B4 */ addiu $s1, $s1, -0x5b4c
|
||
|
/* 03A3B8 8005EFB8 AFB40028 */ sw $s4, 0x28($sp)
|
||
|
/* 03A3BC 8005EFBC 2414029A */ addiu $s4, $zero, 0x29a
|
||
|
/* 03A3C0 8005EFC0 AFB30024 */ sw $s3, 0x24($sp)
|
||
|
/* 03A3C4 8005EFC4 2413029D */ addiu $s3, $zero, 0x29d
|
||
|
/* 03A3C8 8005EFC8 AFB20020 */ sw $s2, 0x20($sp)
|
||
|
/* 03A3CC 8005EFCC 24120001 */ addiu $s2, $zero, 1
|
||
|
/* 03A3D0 8005EFD0 AFBF002C */ sw $ra, 0x2c($sp)
|
||
|
/* 03A3D4 8005EFD4 AFB00018 */ sw $s0, 0x18($sp)
|
||
|
/* 03A3D8 8005EFD8 3C018009 */ lui $at, 0x8009
|
||
|
/* 03A3DC 8005EFDC AC203B94 */ sw $zero, 0x3b94($at)
|
||
|
.L8005EFE0:
|
||
|
/* 03A3E0 8005EFE0 0220202D */ daddu $a0, $s1, $zero
|
||
|
.L8005EFE4:
|
||
|
/* 03A3E4 8005EFE4 27A50010 */ addiu $a1, $sp, 0x10
|
||
|
.L8005EFE8:
|
||
|
/* 03A3E8 8005EFE8 0C0195BC */ jal osRecvMesg
|
||
|
/* 03A3EC 8005EFEC 24060001 */ addiu $a2, $zero, 1
|
||
|
/* 03A3F0 8005EFF0 8FA20010 */ lw $v0, 0x10($sp)
|
||
|
/* 03A3F4 8005EFF4 10540005 */ beq $v0, $s4, .L8005F00C
|
||
|
/* 03A3F8 8005EFF8 00000000 */ nop
|
||
|
/* 03A3FC 8005EFFC 1053001D */ beq $v0, $s3, .L8005F074
|
||
|
/* 03A400 8005F000 0220202D */ daddu $a0, $s1, $zero
|
||
|
/* 03A404 8005F004 08017BFA */ j .L8005EFE8
|
||
|
/* 03A408 8005F008 27A50010 */ addiu $a1, $sp, 0x10
|
||
|
|
||
|
.L8005F00C:
|
||
|
/* 03A40C 8005F00C 3C028009 */ lui $v0, 0x8009
|
||
|
/* 03A410 8005F010 8C423B94 */ lw $v0, 0x3b94($v0)
|
||
|
/* 03A414 8005F014 24420001 */ addiu $v0, $v0, 1
|
||
|
/* 03A418 8005F018 3C018009 */ lui $at, 0x8009
|
||
|
/* 03A41C 8005F01C AC223B94 */ sw $v0, 0x3b94($at)
|
||
|
/* 03A420 8005F020 0C017C30 */ jal nuScEventBroadcast
|
||
|
/* 03A424 8005F024 2624FF8C */ addiu $a0, $s1, -0x74
|
||
|
/* 03A428 8005F028 3C02800A */ lui $v0, 0x800a
|
||
|
/* 03A42C 8005F02C 9042A5B0 */ lbu $v0, -0x5a50($v0)
|
||
|
/* 03A430 8005F030 1040FFEC */ beqz $v0, .L8005EFE4
|
||
|
/* 03A434 8005F034 0220202D */ daddu $a0, $s1, $zero
|
||
|
/* 03A438 8005F038 12000003 */ beqz $s0, .L8005F048
|
||
|
/* 03A43C 8005F03C 34420002 */ ori $v0, $v0, 2
|
||
|
/* 03A440 8005F040 08017BF9 */ j .L8005EFE4
|
||
|
/* 03A444 8005F044 2610FFFF */ addiu $s0, $s0, -1
|
||
|
|
||
|
.L8005F048:
|
||
|
/* 03A448 8005F048 3C01800A */ lui $at, 0x800a
|
||
|
/* 03A44C 8005F04C 0C01A98C */ jal osAfterPreNMI
|
||
|
/* 03A450 8005F050 A022A5B0 */ sb $v0, -0x5a50($at)
|
||
|
/* 03A454 8005F054 3C013F80 */ lui $at, 0x3f80
|
||
|
/* 03A458 8005F058 44816000 */ mtc1 $at, $f12
|
||
|
/* 03A45C 8005F05C 0C019BF4 */ jal osViSetYScale
|
||
|
/* 03A460 8005F060 00000000 */ nop
|
||
|
/* 03A464 8005F064 0C019CE0 */ jal osViBlack
|
||
|
/* 03A468 8005F068 24040001 */ addiu $a0, $zero, 1
|
||
|
/* 03A46C 8005F06C 08017BF9 */ j .L8005EFE4
|
||
|
/* 03A470 8005F070 0220202D */ daddu $a0, $s1, $zero
|
||
|
|
||
|
.L8005F074:
|
||
|
/* 03A474 8005F074 3C01800A */ lui $at, 0x800a
|
||
|
/* 03A478 8005F078 A032A5B0 */ sb $s2, -0x5a50($at)
|
||
|
/* 03A47C 8005F07C 0C017C30 */ jal nuScEventBroadcast
|
||
|
/* 03A480 8005F080 2624FF8E */ addiu $a0, $s1, -0x72
|
||
|
/* 03A484 8005F084 3C028009 */ lui $v0, 0x8009
|
||
|
/* 03A488 8005F088 8C423B80 */ lw $v0, 0x3b80($v0)
|
||
|
/* 03A48C 8005F08C 10400003 */ beqz $v0, .L8005F09C
|
||
|
/* 03A490 8005F090 00000000 */ nop
|
||
|
/* 03A494 8005F094 0040F809 */ jalr $v0
|
||
|
/* 03A498 8005F098 00000000 */ nop
|
||
|
.L8005F09C:
|
||
|
/* 03A49C 8005F09C 92220608 */ lbu $v0, 0x608($s1)
|
||
|
/* 03A4A0 8005F0A0 8E230604 */ lw $v1, 0x604($s1)
|
||
|
/* 03A4A4 8005F0A4 00021042 */ srl $v0, $v0, 1
|
||
|
/* 03A4A8 8005F0A8 14600002 */ bnez $v1, .L8005F0B4
|
||
|
/* 03A4AC 8005F0AC 0043001B */ divu $zero, $v0, $v1
|
||
|
/* 03A4B0 8005F0B0 0007000D */ break 7
|
||
|
.L8005F0B4:
|
||
|
/* 03A4B4 8005F0B4 00001012 */ mflo $v0
|
||
|
/* 03A4B8 8005F0B8 08017BF8 */ j .L8005EFE0
|
||
|
/* 03A4BC 8005F0BC 2450FFFD */ addiu $s0, $v0, -3
|
||
|
|