mirror of https://github.com/zeldaret/oot.git
126 lines
5.8 KiB
ArmAsm
126 lines
5.8 KiB
ArmAsm
.rdata
|
|
glabel D_801398E4
|
|
.asciz "camera: change camera status: cond %c%c\n"
|
|
.balign 4
|
|
|
|
glabel D_80139910
|
|
.asciz "camera: res: stat (%d/%d/%d)\n"
|
|
.balign 4
|
|
|
|
glabel D_80139930
|
|
.asciz "camera: change camera status: PREG(%02d) = %d\n"
|
|
.balign 4
|
|
|
|
.text
|
|
glabel Camera_ChangeStatus
|
|
/* ACF4F4 80058354 27BDFFD0 */ addiu $sp, $sp, -0x30
|
|
/* ACF4F8 80058358 AFB40024 */ sw $s4, 0x24($sp)
|
|
/* ACF4FC 8005835C 3C148016 */ lui $s4, %hi(gGameInfo) # $s4, 0x8016
|
|
/* ACF500 80058360 2694FA90 */ addiu $s4, %lo(gGameInfo) # addiu $s4, $s4, -0x570
|
|
/* ACF504 80058364 8E8E0000 */ lw $t6, ($s4)
|
|
/* ACF508 80058368 AFBF002C */ sw $ra, 0x2c($sp)
|
|
/* ACF50C 8005836C AFB50028 */ sw $s5, 0x28($sp)
|
|
/* ACF510 80058370 AFB30020 */ sw $s3, 0x20($sp)
|
|
/* ACF514 80058374 AFB2001C */ sw $s2, 0x1c($sp)
|
|
/* ACF518 80058378 AFB10018 */ sw $s1, 0x18($sp)
|
|
/* ACF51C 8005837C AFB00014 */ sw $s0, 0x14($sp)
|
|
/* ACF520 80058380 AFA50034 */ sw $a1, 0x34($sp)
|
|
/* ACF524 80058384 85C202F8 */ lh $v0, 0x2f8($t6)
|
|
/* ACF528 80058388 00809825 */ move $s3, $a0
|
|
/* ACF52C 8005838C 3C048014 */ lui $a0, %hi(D_801398E4) # $a0, 0x8014
|
|
/* ACF530 80058390 10400010 */ beqz $v0, .L800583D4
|
|
/* ACF534 80058394 87AF0036 */ lh $t7, 0x36($sp)
|
|
/* ACF538 80058398 24100007 */ li $s0, 7
|
|
/* ACF53C 8005839C 15F00003 */ bne $t7, $s0, .L800583AC
|
|
/* ACF540 800583A0 24050078 */ li $a1, 120
|
|
/* ACF544 800583A4 10000001 */ b .L800583AC
|
|
/* ACF548 800583A8 2405006F */ li $a1, 111
|
|
.L800583AC:
|
|
/* ACF54C 800583AC 86780140 */ lh $t8, 0x140($s3)
|
|
/* ACF550 800583B0 24060078 */ li $a2, 120
|
|
/* ACF554 800583B4 12180003 */ beq $s0, $t8, .L800583C4
|
|
/* ACF558 800583B8 00000000 */ nop
|
|
/* ACF55C 800583BC 10000001 */ b .L800583C4
|
|
/* ACF560 800583C0 2406006F */ li $a2, 111
|
|
.L800583C4:
|
|
/* ACF564 800583C4 0C00084C */ jal osSyncPrintf
|
|
/* ACF568 800583C8 248498E4 */ addiu $a0, %lo(D_801398E4) # addiu $a0, $a0, -0x671c
|
|
/* ACF56C 800583CC 8E990000 */ lw $t9, ($s4)
|
|
/* ACF570 800583D0 872202F8 */ lh $v0, 0x2f8($t9)
|
|
.L800583D4:
|
|
/* ACF574 800583D4 10400007 */ beqz $v0, .L800583F4
|
|
/* ACF578 800583D8 24100007 */ li $s0, 7
|
|
/* ACF57C 800583DC 3C048014 */ lui $a0, %hi(D_80139910) # $a0, 0x8014
|
|
/* ACF580 800583E0 24849910 */ addiu $a0, %lo(D_80139910) # addiu $a0, $a0, -0x66f0
|
|
/* ACF584 800583E4 86650164 */ lh $a1, 0x164($s3)
|
|
/* ACF588 800583E8 86660142 */ lh $a2, 0x142($s3)
|
|
/* ACF58C 800583EC 0C00084C */ jal osSyncPrintf
|
|
/* ACF590 800583F0 86670144 */ lh $a3, 0x144($s3)
|
|
.L800583F4:
|
|
/* ACF594 800583F4 87A80036 */ lh $t0, 0x36($sp)
|
|
/* ACF598 800583F8 55100030 */ bnel $t0, $s0, .L800584BC
|
|
/* ACF59C 800583FC 87AC0036 */ lh $t4, 0x36($sp)
|
|
/* ACF5A0 80058400 86690140 */ lh $t1, 0x140($s3)
|
|
/* ACF5A4 80058404 3C158012 */ lui $s5, %hi(sCameraSettings) # $s5, 0x8012
|
|
/* ACF5A8 80058408 5209002C */ beql $s0, $t1, .L800584BC
|
|
/* ACF5AC 8005840C 87AC0036 */ lh $t4, 0x36($sp)
|
|
/* ACF5B0 80058410 866A0142 */ lh $t2, 0x142($s3)
|
|
/* ACF5B4 80058414 26B5D064 */ addiu $s5, %lo(sCameraSettings) # addiu $s5, $s5, -0x2f9c
|
|
/* ACF5B8 80058418 866E0144 */ lh $t6, 0x144($s3)
|
|
/* ACF5BC 8005841C 000A58C0 */ sll $t3, $t2, 3
|
|
/* ACF5C0 80058420 02AB6021 */ addu $t4, $s5, $t3
|
|
/* ACF5C4 80058424 8D8D0004 */ lw $t5, 4($t4)
|
|
/* ACF5C8 80058428 000E78C0 */ sll $t7, $t6, 3
|
|
/* ACF5CC 8005842C 00008825 */ move $s1, $zero
|
|
/* ACF5D0 80058430 01AF1021 */ addu $v0, $t5, $t7
|
|
/* ACF5D4 80058434 84580002 */ lh $t8, 2($v0)
|
|
/* ACF5D8 80058438 8C430004 */ lw $v1, 4($v0)
|
|
/* ACF5DC 8005843C 3C128014 */ lui $s2, %hi(D_80139930) # $s2, 0x8014
|
|
/* ACF5E0 80058440 1B00001D */ blez $t8, .L800584B8
|
|
/* ACF5E4 80058444 00608025 */ move $s0, $v1
|
|
/* ACF5E8 80058448 26529930 */ addiu $s2, %lo(D_80139930) # addiu $s2, $s2, -0x66d0
|
|
/* ACF5EC 8005844C 86090002 */ lh $t1, 2($s0)
|
|
.L80058450:
|
|
/* ACF5F0 80058450 8E880000 */ lw $t0, ($s4)
|
|
/* ACF5F4 80058454 86190000 */ lh $t9, ($s0)
|
|
/* ACF5F8 80058458 00095040 */ sll $t2, $t1, 1
|
|
/* ACF5FC 8005845C 010A5821 */ addu $t3, $t0, $t2
|
|
/* ACF600 80058460 A5790254 */ sh $t9, 0x254($t3)
|
|
/* ACF604 80058464 8E8C0000 */ lw $t4, ($s4)
|
|
/* ACF608 80058468 02402025 */ move $a0, $s2
|
|
/* ACF60C 8005846C 858E02F8 */ lh $t6, 0x2f8($t4)
|
|
/* ACF610 80058470 51C00005 */ beql $t6, $zero, .L80058488
|
|
/* ACF614 80058474 866D0142 */ lh $t5, 0x142($s3)
|
|
/* ACF618 80058478 86050002 */ lh $a1, 2($s0)
|
|
/* ACF61C 8005847C 0C00084C */ jal osSyncPrintf
|
|
/* ACF620 80058480 86060000 */ lh $a2, ($s0)
|
|
/* ACF624 80058484 866D0142 */ lh $t5, 0x142($s3)
|
|
.L80058488:
|
|
/* ACF628 80058488 86680144 */ lh $t0, 0x144($s3)
|
|
/* ACF62C 8005848C 26310001 */ addiu $s1, $s1, 1
|
|
/* ACF630 80058490 000D78C0 */ sll $t7, $t5, 3
|
|
/* ACF634 80058494 02AFC021 */ addu $t8, $s5, $t7
|
|
/* ACF638 80058498 8F090004 */ lw $t1, 4($t8)
|
|
/* ACF63C 8005849C 000850C0 */ sll $t2, $t0, 3
|
|
/* ACF640 800584A0 26100004 */ addiu $s0, $s0, 4
|
|
/* ACF644 800584A4 012AC821 */ addu $t9, $t1, $t2
|
|
/* ACF648 800584A8 872B0002 */ lh $t3, 2($t9)
|
|
/* ACF64C 800584AC 022B082A */ slt $at, $s1, $t3
|
|
/* ACF650 800584B0 5420FFE7 */ bnezl $at, .L80058450
|
|
/* ACF654 800584B4 86090002 */ lh $t1, 2($s0)
|
|
.L800584B8:
|
|
/* ACF658 800584B8 87AC0036 */ lh $t4, 0x36($sp)
|
|
.L800584BC:
|
|
/* ACF65C 800584BC A66C0140 */ sh $t4, 0x140($s3)
|
|
/* ACF660 800584C0 8FBF002C */ lw $ra, 0x2c($sp)
|
|
/* ACF664 800584C4 86620140 */ lh $v0, 0x140($s3)
|
|
/* ACF668 800584C8 8FB30020 */ lw $s3, 0x20($sp)
|
|
/* ACF66C 800584CC 8FB50028 */ lw $s5, 0x28($sp)
|
|
/* ACF670 800584D0 8FB40024 */ lw $s4, 0x24($sp)
|
|
/* ACF674 800584D4 8FB2001C */ lw $s2, 0x1c($sp)
|
|
/* ACF678 800584D8 8FB10018 */ lw $s1, 0x18($sp)
|
|
/* ACF67C 800584DC 8FB00014 */ lw $s0, 0x14($sp)
|
|
/* ACF680 800584E0 03E00008 */ jr $ra
|
|
/* ACF684 800584E4 27BD0030 */ addiu $sp, $sp, 0x30
|
|
|