1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2024-11-13 04:39:36 +00:00

Decompiled ovl_En_Ma1 (#83)

* first steps

* some more

* fixing merge

* more progress

* progs

* Decompiled ovl_En_Ma1

* newline

* Pr suggestion

* Fixing some small things

* Update src/overlays/actors/ovl_En_Ma1/z_en_ma1.c

Co-Authored-By: Roman971 <32455037+Roman971@users.noreply.github.com>

* Removing padding

* Fixing script

* Fixing some things

Co-authored-by: Roman971 <32455037+Roman971@users.noreply.github.com>
This commit is contained in:
Ethan Roseman 2020-04-27 01:47:35 -04:00 committed by GitHub
parent e126e37084
commit d58983494c
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
34 changed files with 585 additions and 1379 deletions

View file

@ -1,16 +0,0 @@
glabel EnMa1_Destroy
/* 006C0 80AA0D50 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 006C4 80AA0D54 AFBF0014 */ sw $ra, 0x0014($sp)
/* 006C8 80AA0D58 AFA40018 */ sw $a0, 0x0018($sp)
/* 006CC 80AA0D5C AFA5001C */ sw $a1, 0x001C($sp)
/* 006D0 80AA0D60 0C0295BC */ jal SkelAnime_Free
/* 006D4 80AA0D64 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 006D8 80AA0D68 8FA50018 */ lw $a1, 0x0018($sp)
/* 006DC 80AA0D6C 8FA4001C */ lw $a0, 0x001C($sp)
/* 006E0 80AA0D70 0C0170EB */ jal Collider_DestroyCylinder
/* 006E4 80AA0D74 24A50194 */ addiu $a1, $a1, 0x0194 ## $a1 = 00000194
/* 006E8 80AA0D78 8FBF0014 */ lw $ra, 0x0014($sp)
/* 006EC 80AA0D7C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 006F0 80AA0D80 03E00008 */ jr $ra
/* 006F4 80AA0D84 00000000 */ nop

View file

@ -1,107 +0,0 @@
.rdata
glabel D_80AA16E0
.asciz "../z_en_ma1.c"
.balign 4
glabel D_80AA16F0
.asciz "../z_en_ma1.c"
.balign 4
.text
glabel EnMa1_Draw
/* 00E14 80AA14A4 27BDFF98 */ addiu $sp, $sp, 0xFF98 ## $sp = FFFFFF98
/* 00E18 80AA14A8 AFB20030 */ sw $s2, 0x0030($sp)
/* 00E1C 80AA14AC 00A09025 */ or $s2, $a1, $zero ## $s2 = 00000000
/* 00E20 80AA14B0 AFBF0034 */ sw $ra, 0x0034($sp)
/* 00E24 80AA14B4 AFB1002C */ sw $s1, 0x002C($sp)
/* 00E28 80AA14B8 AFB00028 */ sw $s0, 0x0028($sp)
/* 00E2C 80AA14BC 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000
/* 00E30 80AA14C0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00E34 80AA14C4 3C0680AA */ lui $a2, %hi(D_80AA16E0) ## $a2 = 80AA0000
/* 00E38 80AA14C8 24C616E0 */ addiu $a2, $a2, %lo(D_80AA16E0) ## $a2 = 80AA16E0
/* 00E3C 80AA14CC 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFDC
/* 00E40 80AA14D0 240704CA */ addiu $a3, $zero, 0x04CA ## $a3 = 000004CA
/* 00E44 80AA14D4 0C031AB1 */ jal Graph_OpenDisps
/* 00E48 80AA14D8 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00E4C 80AA14DC 864E07A0 */ lh $t6, 0x07A0($s2) ## 000007A0
/* 00E50 80AA14E0 26040024 */ addiu $a0, $s0, 0x0024 ## $a0 = 00000024
/* 00E54 80AA14E4 000E7880 */ sll $t7, $t6, 2
/* 00E58 80AA14E8 024FC021 */ addu $t8, $s2, $t7
/* 00E5C 80AA14EC 8F020790 */ lw $v0, 0x0790($t8) ## 00000790
/* 00E60 80AA14F0 0C01E00A */ jal Math_Vec3f_DistXZ
/* 00E64 80AA14F4 2445005C */ addiu $a1, $v0, 0x005C ## $a1 = 0000005C
/* 00E68 80AA14F8 46000306 */ mov.s $f12, $f0
/* 00E6C 80AA14FC 0C03D89A */ jal func_800F6268
/* 00E70 80AA1500 2405002F */ addiu $a1, $zero, 0x002F ## $a1 = 0000002F
/* 00E74 80AA1504 0C024F46 */ jal func_80093D18
/* 00E78 80AA1508 8E440000 */ lw $a0, 0x0000($s2) ## 00000000
/* 00E7C 80AA150C 8E2302C0 */ lw $v1, 0x02C0($s1) ## 000002C0
/* 00E80 80AA1510 3C08DB06 */ lui $t0, 0xDB06 ## $t0 = DB060000
/* 00E84 80AA1514 35080024 */ ori $t0, $t0, 0x0024 ## $t0 = DB060024
/* 00E88 80AA1518 24790008 */ addiu $t9, $v1, 0x0008 ## $t9 = 00000008
/* 00E8C 80AA151C AE3902C0 */ sw $t9, 0x02C0($s1) ## 000002C0
/* 00E90 80AA1520 AC680000 */ sw $t0, 0x0000($v1) ## 00000000
/* 00E94 80AA1524 860901E6 */ lh $t1, 0x01E6($s0) ## 000001E6
/* 00E98 80AA1528 3C0480AA */ lui $a0, %hi(D_80AA16C4) ## $a0 = 80AA0000
/* 00E9C 80AA152C 3C068016 */ lui $a2, %hi(gSegments)
/* 00EA0 80AA1530 00095080 */ sll $t2, $t1, 2
/* 00EA4 80AA1534 008A2021 */ addu $a0, $a0, $t2
/* 00EA8 80AA1538 8C8416C4 */ lw $a0, %lo(D_80AA16C4)($a0)
/* 00EAC 80AA153C 24C66FA8 */ addiu $a2, %lo(gSegments)
/* 00EB0 80AA1540 3C0500FF */ lui $a1, 0x00FF ## $a1 = 00FF0000
/* 00EB4 80AA1544 00046100 */ sll $t4, $a0, 4
/* 00EB8 80AA1548 000C6F02 */ srl $t5, $t4, 28
/* 00EBC 80AA154C 000D7080 */ sll $t6, $t5, 2
/* 00EC0 80AA1550 00CE7821 */ addu $t7, $a2, $t6
/* 00EC4 80AA1554 8DF80000 */ lw $t8, 0x0000($t7) ## 00000000
/* 00EC8 80AA1558 34A5FFFF */ ori $a1, $a1, 0xFFFF ## $a1 = 00FFFFFF
/* 00ECC 80AA155C 00855824 */ and $t3, $a0, $a1
/* 00ED0 80AA1560 3C078000 */ lui $a3, 0x8000 ## $a3 = 80000000
/* 00ED4 80AA1564 0178C821 */ addu $t9, $t3, $t8
/* 00ED8 80AA1568 03274021 */ addu $t0, $t9, $a3
/* 00EDC 80AA156C AC680004 */ sw $t0, 0x0004($v1) ## 00000004
/* 00EE0 80AA1570 8E2302C0 */ lw $v1, 0x02C0($s1) ## 000002C0
/* 00EE4 80AA1574 3C0ADB06 */ lui $t2, 0xDB06 ## $t2 = DB060000
/* 00EE8 80AA1578 354A0020 */ ori $t2, $t2, 0x0020 ## $t2 = DB060020
/* 00EEC 80AA157C 24690008 */ addiu $t1, $v1, 0x0008 ## $t1 = 00000008
/* 00EF0 80AA1580 AE2902C0 */ sw $t1, 0x02C0($s1) ## 000002C0
/* 00EF4 80AA1584 AC6A0000 */ sw $t2, 0x0000($v1) ## 00000000
/* 00EF8 80AA1588 860C01E4 */ lh $t4, 0x01E4($s0) ## 000001E4
/* 00EFC 80AA158C 3C0480AA */ lui $a0, %hi(D_80AA16D0) ## $a0 = 80AA0000
/* 00F00 80AA1590 000C6880 */ sll $t5, $t4, 2
/* 00F04 80AA1594 008D2021 */ addu $a0, $a0, $t5
/* 00F08 80AA1598 8C8416D0 */ lw $a0, %lo(D_80AA16D0)($a0)
/* 00F0C 80AA159C 3C0D80AA */ lui $t5, %hi(func_80AA1448) ## $t5 = 80AA0000
/* 00F10 80AA15A0 3C0C80AA */ lui $t4, %hi(func_80AA12BC) ## $t4 = 80AA0000
/* 00F14 80AA15A4 00047900 */ sll $t7, $a0, 4
/* 00F18 80AA15A8 000F5F02 */ srl $t3, $t7, 28
/* 00F1C 80AA15AC 000BC080 */ sll $t8, $t3, 2
/* 00F20 80AA15B0 00D8C821 */ addu $t9, $a2, $t8
/* 00F24 80AA15B4 8F280000 */ lw $t0, 0x0000($t9) ## 00000008
/* 00F28 80AA15B8 00857024 */ and $t6, $a0, $a1
/* 00F2C 80AA15BC 258C12BC */ addiu $t4, $t4, %lo(func_80AA12BC) ## $t4 = 80AA12BC
/* 00F30 80AA15C0 01C84821 */ addu $t1, $t6, $t0
/* 00F34 80AA15C4 01275021 */ addu $t2, $t1, $a3
/* 00F38 80AA15C8 AC6A0004 */ sw $t2, 0x0004($v1) ## 00000004
/* 00F3C 80AA15CC 9207014E */ lbu $a3, 0x014E($s0) ## 0000014E
/* 00F40 80AA15D0 8E06016C */ lw $a2, 0x016C($s0) ## 0000016C
/* 00F44 80AA15D4 8E050150 */ lw $a1, 0x0150($s0) ## 00000150
/* 00F48 80AA15D8 25AD1448 */ addiu $t5, $t5, %lo(func_80AA1448) ## $t5 = 80AA1448
/* 00F4C 80AA15DC AFAD0014 */ sw $t5, 0x0014($sp)
/* 00F50 80AA15E0 AFB00018 */ sw $s0, 0x0018($sp)
/* 00F54 80AA15E4 AFAC0010 */ sw $t4, 0x0010($sp)
/* 00F58 80AA15E8 0C0286B2 */ jal SkelAnime_DrawSV
/* 00F5C 80AA15EC 02402025 */ or $a0, $s2, $zero ## $a0 = 00000000
/* 00F60 80AA15F0 3C0680AA */ lui $a2, %hi(D_80AA16F0) ## $a2 = 80AA0000
/* 00F64 80AA15F4 24C616F0 */ addiu $a2, $a2, %lo(D_80AA16F0) ## $a2 = 80AA16F0
/* 00F68 80AA15F8 27A40044 */ addiu $a0, $sp, 0x0044 ## $a0 = FFFFFFDC
/* 00F6C 80AA15FC 8E450000 */ lw $a1, 0x0000($s2) ## 00000000
/* 00F70 80AA1600 0C031AD5 */ jal Graph_CloseDisps
/* 00F74 80AA1604 240704ED */ addiu $a3, $zero, 0x04ED ## $a3 = 000004ED
/* 00F78 80AA1608 8FBF0034 */ lw $ra, 0x0034($sp)
/* 00F7C 80AA160C 8FB00028 */ lw $s0, 0x0028($sp)
/* 00F80 80AA1610 8FB1002C */ lw $s1, 0x002C($sp)
/* 00F84 80AA1614 8FB20030 */ lw $s2, 0x0030($sp)
/* 00F88 80AA1618 03E00008 */ jr $ra
/* 00F8C 80AA161C 27BD0068 */ addiu $sp, $sp, 0x0068 ## $sp = 00000000

View file

@ -1,101 +0,0 @@
glabel EnMa1_Init
/* 00558 80AA0BE8 27BDFFC0 */ addiu $sp, $sp, 0xFFC0 ## $sp = FFFFFFC0
/* 0055C 80AA0BEC AFB00028 */ sw $s0, 0x0028($sp)
/* 00560 80AA0BF0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00564 80AA0BF4 AFBF002C */ sw $ra, 0x002C($sp)
/* 00568 80AA0BF8 AFA50044 */ sw $a1, 0x0044($sp)
/* 0056C 80AA0BFC 3C068003 */ lui $a2, %hi(ActorShadow_DrawFunc_Circle)
/* 00570 80AA0C00 24C6B5EC */ addiu $a2, %lo(ActorShadow_DrawFunc_Circle)
/* 00574 80AA0C04 24050000 */ addiu $a1, $zero, 0x0000 ## $a1 = 00000000
/* 00578 80AA0C08 248400B4 */ addiu $a0, $a0, 0x00B4 ## $a0 = 000000B4
/* 0057C 80AA0C0C 0C00AC78 */ jal ActorShape_Init
/* 00580 80AA0C10 3C074190 */ lui $a3, 0x4190 ## $a3 = 41900000
/* 00584 80AA0C14 3C060601 */ lui $a2, 0x0601 ## $a2 = 06010000
/* 00588 80AA0C18 24C68460 */ addiu $a2, $a2, 0x8460 ## $a2 = 06008460
/* 0058C 80AA0C1C 8FA40044 */ lw $a0, 0x0044($sp)
/* 00590 80AA0C20 2605014C */ addiu $a1, $s0, 0x014C ## $a1 = 0000014C
/* 00594 80AA0C24 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00598 80AA0C28 AFA00010 */ sw $zero, 0x0010($sp)
/* 0059C 80AA0C2C AFA00014 */ sw $zero, 0x0014($sp)
/* 005A0 80AA0C30 0C0291BE */ jal SkelAnime_InitSV
/* 005A4 80AA0C34 AFA00018 */ sw $zero, 0x0018($sp)
/* 005A8 80AA0C38 26050194 */ addiu $a1, $s0, 0x0194 ## $a1 = 00000194
/* 005AC 80AA0C3C AFA50030 */ sw $a1, 0x0030($sp)
/* 005B0 80AA0C40 0C0170D9 */ jal Collider_InitCylinder
/* 005B4 80AA0C44 8FA40044 */ lw $a0, 0x0044($sp)
/* 005B8 80AA0C48 3C0780AA */ lui $a3, %hi(D_80AA1640) ## $a3 = 80AA0000
/* 005BC 80AA0C4C 8FA50030 */ lw $a1, 0x0030($sp)
/* 005C0 80AA0C50 24E71640 */ addiu $a3, $a3, %lo(D_80AA1640) ## $a3 = 80AA1640
/* 005C4 80AA0C54 8FA40044 */ lw $a0, 0x0044($sp)
/* 005C8 80AA0C58 0C01712B */ jal Collider_SetCylinder
/* 005CC 80AA0C5C 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000
/* 005D0 80AA0C60 0C016C80 */ jal DamageTable_Get
/* 005D4 80AA0C64 24040016 */ addiu $a0, $zero, 0x0016 ## $a0 = 00000016
/* 005D8 80AA0C68 3C0680AA */ lui $a2, %hi(D_80AA166C) ## $a2 = 80AA0000
/* 005DC 80AA0C6C 24C6166C */ addiu $a2, $a2, %lo(D_80AA166C) ## $a2 = 80AA166C
/* 005E0 80AA0C70 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098
/* 005E4 80AA0C74 0C0187BF */ jal func_80061EFC
/* 005E8 80AA0C78 00402825 */ or $a1, $v0, $zero ## $a1 = 00000000
/* 005EC 80AA0C7C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 005F0 80AA0C80 0C2A8231 */ jal func_80AA08C4
/* 005F4 80AA0C84 8FA50044 */ lw $a1, 0x0044($sp)
/* 005F8 80AA0C88 14400005 */ bne $v0, $zero, .L80AA0CA0
/* 005FC 80AA0C8C 8FA40044 */ lw $a0, 0x0044($sp)
/* 00600 80AA0C90 0C00B55C */ jal Actor_Kill
/* 00604 80AA0C94 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00608 80AA0C98 10000029 */ beq $zero, $zero, .L80AA0D40
/* 0060C 80AA0C9C 8FBF002C */ lw $ra, 0x002C($sp)
.L80AA0CA0:
/* 00610 80AA0CA0 44800000 */ mtc1 $zero, $f0 ## $f0 = 0.00
/* 00614 80AA0CA4 240E0004 */ addiu $t6, $zero, 0x0004 ## $t6 = 00000004
/* 00618 80AA0CA8 AFAE0014 */ sw $t6, 0x0014($sp)
/* 0061C 80AA0CAC 44060000 */ mfc1 $a2, $f0
/* 00620 80AA0CB0 44070000 */ mfc1 $a3, $f0
/* 00624 80AA0CB4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00628 80AA0CB8 0C00B92D */ jal func_8002E4B4
/* 0062C 80AA0CBC E7A00010 */ swc1 $f0, 0x0010($sp)
/* 00630 80AA0CC0 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000
/* 00634 80AA0CC4 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A
/* 00638 80AA0CC8 0C00B58B */ jal Actor_SetScale
/* 0063C 80AA0CCC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00640 80AA0CD0 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00644 80AA0CD4 240F0006 */ addiu $t7, $zero, 0x0006 ## $t7 = 00000006
/* 00648 80AA0CD8 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 0064C 80AA0CDC A20F001F */ sb $t7, 0x001F($s0) ## 0000001F
/* 00650 80AA0CE0 A60001E8 */ sh $zero, 0x01E8($s0) ## 000001E8
/* 00654 80AA0CE4 94580ED6 */ lhu $t8, 0x0ED6($v0) ## 8015F536
/* 00658 80AA0CE8 3C0B80AA */ lui $t3, %hi(func_80AA0D88) ## $t3 = 80AA0000
/* 0065C 80AA0CEC 3C088012 */ lui $t0, %hi(gBitFlags+0x34)
/* 00660 80AA0CF0 33190010 */ andi $t9, $t8, 0x0010 ## $t9 = 00000000
/* 00664 80AA0CF4 13200008 */ beq $t9, $zero, .L80AA0D18
/* 00668 80AA0CF8 256B0D88 */ addiu $t3, $t3, %lo(func_80AA0D88) ## $t3 = 80AA0D88
/* 0066C 80AA0CFC 8D087154 */ lw $t0, %lo(gBitFlags+0x34)($t0)
/* 00670 80AA0D00 8C4900A4 */ lw $t1, 0x00A4($v0) ## 8015E704
/* 00674 80AA0D04 3C0C80AA */ lui $t4, %hi(func_80AA0F44) ## $t4 = 80AA0000
/* 00678 80AA0D08 258C0F44 */ addiu $t4, $t4, %lo(func_80AA0F44) ## $t4 = 80AA0F44
/* 0067C 80AA0D0C 01095024 */ and $t2, $t0, $t1
/* 00680 80AA0D10 11400007 */ beq $t2, $zero, .L80AA0D30
/* 00684 80AA0D14 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
.L80AA0D18:
/* 00688 80AA0D18 AE0B0190 */ sw $t3, 0x0190($s0) ## 00000190
/* 0068C 80AA0D1C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00690 80AA0D20 0C2A82A1 */ jal func_80AA0A84
/* 00694 80AA0D24 24050002 */ addiu $a1, $zero, 0x0002 ## $a1 = 00000002
/* 00698 80AA0D28 10000005 */ beq $zero, $zero, .L80AA0D40
/* 0069C 80AA0D2C 8FBF002C */ lw $ra, 0x002C($sp)
.L80AA0D30:
/* 006A0 80AA0D30 AE0C0190 */ sw $t4, 0x0190($s0) ## 00000190
/* 006A4 80AA0D34 0C2A82A1 */ jal func_80AA0A84
/* 006A8 80AA0D38 24050002 */ addiu $a1, $zero, 0x0002 ## $a1 = 00000002
/* 006AC 80AA0D3C 8FBF002C */ lw $ra, 0x002C($sp)
.L80AA0D40:
/* 006B0 80AA0D40 8FB00028 */ lw $s0, 0x0028($sp)
/* 006B4 80AA0D44 27BD0040 */ addiu $sp, $sp, 0x0040 ## $sp = 00000000
/* 006B8 80AA0D48 03E00008 */ jr $ra
/* 006BC 80AA0D4C 00000000 */ nop

View file

@ -1,63 +0,0 @@
glabel EnMa1_Update
/* 00B44 80AA11D4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8
/* 00B48 80AA11D8 AFB0001C */ sw $s0, 0x001C($sp)
/* 00B4C 80AA11DC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 00B50 80AA11E0 AFB10020 */ sw $s1, 0x0020($sp)
/* 00B54 80AA11E4 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000
/* 00B58 80AA11E8 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00B5C 80AA11EC 26060194 */ addiu $a2, $s0, 0x0194 ## $a2 = 00000194
/* 00B60 80AA11F0 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000194
/* 00B64 80AA11F4 0C0189B7 */ jal Collider_CylinderUpdate
/* 00B68 80AA11F8 AFA6002C */ sw $a2, 0x002C($sp)
/* 00B6C 80AA11FC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B70 80AA1200 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60
/* 00B74 80AA1204 8FA6002C */ lw $a2, 0x002C($sp)
/* 00B78 80AA1208 02212821 */ addu $a1, $s1, $at
/* 00B7C 80AA120C 0C017713 */ jal CollisionCheck_SetOC
## CollisionCheck_setOT
/* 00B80 80AA1210 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00B84 80AA1214 0C02927F */ jal SkelAnime_FrameUpdateMatrix
/* 00B88 80AA1218 2604014C */ addiu $a0, $s0, 0x014C ## $a0 = 0000014C
/* 00B8C 80AA121C 0C2A8283 */ jal func_80AA0A0C
/* 00B90 80AA1220 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B94 80AA1224 8E190190 */ lw $t9, 0x0190($s0) ## 00000190
/* 00B98 80AA1228 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00B9C 80AA122C 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00BA0 80AA1230 0320F809 */ jalr $ra, $t9
/* 00BA4 80AA1234 00000000 */ nop
/* 00BA8 80AA1238 8E0F0190 */ lw $t7, 0x0190($s0) ## 00000190
/* 00BAC 80AA123C 3C0E80AA */ lui $t6, %hi(func_80AA11C8) ## $t6 = 80AA0000
/* 00BB0 80AA1240 25CE11C8 */ addiu $t6, $t6, %lo(func_80AA11C8) ## $t6 = 80AA11C8
/* 00BB4 80AA1244 11CF0013 */ beq $t6, $t7, .L80AA1294
/* 00BB8 80AA1248 00000000 */ nop
/* 00BBC 80AA124C 861801D4 */ lh $t8, 0x01D4($s0) ## 000001D4
/* 00BC0 80AA1250 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00BC4 80AA1254 44814000 */ mtc1 $at, $f8 ## $f8 = 30.00
/* 00BC8 80AA1258 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00
/* 00BCC 80AA125C 3C0880AA */ lui $t0, %hi(func_80AA0690) ## $t0 = 80AA0000
/* 00BD0 80AA1260 3C0980AA */ lui $t1, %hi(func_80AA0778) ## $t1 = 80AA0000
/* 00BD4 80AA1264 468021A0 */ cvt.s.w $f6, $f4
/* 00BD8 80AA1268 25290778 */ addiu $t1, $t1, %lo(func_80AA0778) ## $t1 = 80AA0778
/* 00BDC 80AA126C 25080690 */ addiu $t0, $t0, %lo(func_80AA0690) ## $t0 = 80AA0690
/* 00BE0 80AA1270 AFA80010 */ sw $t0, 0x0010($sp)
/* 00BE4 80AA1274 AFA90014 */ sw $t1, 0x0014($sp)
/* 00BE8 80AA1278 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000
/* 00BEC 80AA127C 46083280 */ add.s $f10, $f6, $f8
/* 00BF0 80AA1280 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000
/* 00BF4 80AA1284 260601E8 */ addiu $a2, $s0, 0x01E8 ## $a2 = 000001E8
/* 00BF8 80AA1288 44075000 */ mfc1 $a3, $f10
/* 00BFC 80AA128C 0C00D0F3 */ jal func_800343CC
/* 00C00 80AA1290 00000000 */ nop
.L80AA1294:
/* 00C04 80AA1294 0C2A82DD */ jal func_80AA0B74
/* 00C08 80AA1298 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C0C 80AA129C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00C10 80AA12A0 0C2A82BD */ jal func_80AA0AF4
/* 00C14 80AA12A4 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000
/* 00C18 80AA12A8 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00C1C 80AA12AC 8FB0001C */ lw $s0, 0x001C($sp)
/* 00C20 80AA12B0 8FB10020 */ lw $s1, 0x0020($sp)
/* 00C24 80AA12B4 03E00008 */ jr $ra
/* 00C28 80AA12B8 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000

View file

@ -1,69 +0,0 @@
glabel func_80AA0690
/* 00000 80AA0690 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00004 80AA0694 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00008 80AA0698 AFA5001C */ sw $a1, 0x001C($sp)
/* 0000C 80AA069C 0C01B0D8 */ jal Text_GetFaceReaction
/* 00010 80AA06A0 24050017 */ addiu $a1, $zero, 0x0017 ## $a1 = 00000017
/* 00014 80AA06A4 10400003 */ beq $v0, $zero, .L80AA06B4
/* 00018 80AA06A8 3043FFFF */ andi $v1, $v0, 0xFFFF ## $v1 = 00000000
/* 0001C 80AA06AC 1000002E */ beq $zero, $zero, .L80AA0768
/* 00020 80AA06B0 00601025 */ or $v0, $v1, $zero ## $v0 = 00000000
.L80AA06B4:
/* 00024 80AA06B4 3C038016 */ lui $v1, %hi(gSaveContext)
/* 00028 80AA06B8 2463E660 */ addiu $v1, %lo(gSaveContext)
/* 0002C 80AA06BC 3C0E8012 */ lui $t6, %hi(gBitFlags+0x34)
/* 00030 80AA06C0 8DCE7154 */ lw $t6, %lo(gBitFlags+0x34)($t6)
/* 00034 80AA06C4 8C6F00A4 */ lw $t7, 0x00A4($v1) ## 8015E704
/* 00038 80AA06C8 01CFC024 */ and $t8, $t6, $t7
/* 0003C 80AA06CC 53000004 */ beql $t8, $zero, .L80AA06E0
/* 00040 80AA06D0 94620ED6 */ lhu $v0, 0x0ED6($v1) ## 8015F536
/* 00044 80AA06D4 10000024 */ beq $zero, $zero, .L80AA0768
/* 00048 80AA06D8 2402204A */ addiu $v0, $zero, 0x204A ## $v0 = 0000204A
/* 0004C 80AA06DC 94620ED6 */ lhu $v0, 0x0ED6($v1) ## 8015F536
.L80AA06E0:
/* 00050 80AA06E0 30590040 */ andi $t9, $v0, 0x0040 ## $t9 = 00000040
/* 00054 80AA06E4 13200003 */ beq $t9, $zero, .L80AA06F4
/* 00058 80AA06E8 30480020 */ andi $t0, $v0, 0x0020 ## $t0 = 00000000
/* 0005C 80AA06EC 1000001E */ beq $zero, $zero, .L80AA0768
/* 00060 80AA06F0 24022049 */ addiu $v0, $zero, 0x2049 ## $v0 = 00002049
.L80AA06F4:
/* 00064 80AA06F4 11000009 */ beq $t0, $zero, .L80AA071C
/* 00068 80AA06F8 304B0010 */ andi $t3, $v0, 0x0010 ## $t3 = 00000000
/* 0006C 80AA06FC 94690F08 */ lhu $t1, 0x0F08($v1) ## 8015F568
/* 00070 80AA0700 312A0020 */ andi $t2, $t1, 0x0020 ## $t2 = 00000000
/* 00074 80AA0704 11400003 */ beq $t2, $zero, .L80AA0714
/* 00078 80AA0708 00000000 */ nop
/* 0007C 80AA070C 10000016 */ beq $zero, $zero, .L80AA0768
/* 00080 80AA0710 24022049 */ addiu $v0, $zero, 0x2049 ## $v0 = 00002049
.L80AA0714:
/* 00084 80AA0714 10000014 */ beq $zero, $zero, .L80AA0768
/* 00088 80AA0718 24022048 */ addiu $v0, $zero, 0x2048 ## $v0 = 00002048
.L80AA071C:
/* 0008C 80AA071C 11600003 */ beq $t3, $zero, .L80AA072C
/* 00090 80AA0720 304C0004 */ andi $t4, $v0, 0x0004 ## $t4 = 00000000
/* 00094 80AA0724 10000010 */ beq $zero, $zero, .L80AA0768
/* 00098 80AA0728 24022047 */ addiu $v0, $zero, 0x2047 ## $v0 = 00002047
.L80AA072C:
/* 0009C 80AA072C 51800004 */ beql $t4, $zero, .L80AA0740
/* 000A0 80AA0730 94620F08 */ lhu $v0, 0x0F08($v1) ## 8015F568
/* 000A4 80AA0734 1000000C */ beq $zero, $zero, .L80AA0768
/* 000A8 80AA0738 24022044 */ addiu $v0, $zero, 0x2044 ## $v0 = 00002044
/* 000AC 80AA073C 94620F08 */ lhu $v0, 0x0F08($v1) ## 8015F568
.L80AA0740:
/* 000B0 80AA0740 304D0010 */ andi $t5, $v0, 0x0010 ## $t5 = 00000000
/* 000B4 80AA0744 11A00007 */ beq $t5, $zero, .L80AA0764
/* 000B8 80AA0748 304E0800 */ andi $t6, $v0, 0x0800 ## $t6 = 00000000
/* 000BC 80AA074C 11C00003 */ beq $t6, $zero, .L80AA075C
/* 000C0 80AA0750 00000000 */ nop
/* 000C4 80AA0754 10000004 */ beq $zero, $zero, .L80AA0768
/* 000C8 80AA0758 24022043 */ addiu $v0, $zero, 0x2043 ## $v0 = 00002043
.L80AA075C:
/* 000CC 80AA075C 10000002 */ beq $zero, $zero, .L80AA0768
/* 000D0 80AA0760 24022042 */ addiu $v0, $zero, 0x2042 ## $v0 = 00002042
.L80AA0764:
/* 000D4 80AA0764 24022041 */ addiu $v0, $zero, 0x2041 ## $v0 = 00002041
.L80AA0768:
/* 000D8 80AA0768 8FBF0014 */ lw $ra, 0x0014($sp)
/* 000DC 80AA076C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 000E0 80AA0770 03E00008 */ jr $ra
/* 000E4 80AA0774 00000000 */ nop

View file

@ -1,145 +0,0 @@
.late_rodata
.late_rodata_alignment 8
glabel jtbl_80AA1700
.word L80AA08B0
.word L80AA08B0
.word L80AA07C4
.word L80AA08B0
.word L80AA087C
.word L80AA087C
.word L80AA0898
.word L80AA08B0
.word L80AA08B0
.word L80AA08B0
glabel jtbl_80AA1728
.word L80AA07F0
.word L80AA0874
.word L80AA08B0
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0818
.word L80AA0834
.word L80AA0850
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA0874
.word L80AA086C
.text
glabel func_80AA0778
/* 000E8 80AA0778 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 000EC 80AA077C AFBF0014 */ sw $ra, 0x0014($sp)
/* 000F0 80AA0780 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 000F4 80AA0784 24030001 */ addiu $v1, $zero, 0x0001 ## $v1 = 00000001
/* 000F8 80AA0788 AFA50024 */ sw $a1, 0x0024($sp)
/* 000FC 80AA078C A7A3001E */ sh $v1, 0x001E($sp)
/* 00100 80AA0790 AFA60020 */ sw $a2, 0x0020($sp)
/* 00104 80AA0794 0C042F6F */ jal func_8010BDBC
/* 00108 80AA0798 248420D8 */ addiu $a0, $a0, 0x20D8 ## $a0 = 000020D8
/* 0010C 80AA079C 2C41000A */ sltiu $at, $v0, 0x000A
/* 00110 80AA07A0 87A3001E */ lh $v1, 0x001E($sp)
/* 00114 80AA07A4 10200042 */ beq $at, $zero, .L80AA08B0
/* 00118 80AA07A8 8FA60020 */ lw $a2, 0x0020($sp)
/* 0011C 80AA07AC 00027080 */ sll $t6, $v0, 2
/* 00120 80AA07B0 3C0180AA */ lui $at, %hi(jtbl_80AA1700) ## $at = 80AA0000
/* 00124 80AA07B4 002E0821 */ addu $at, $at, $t6
/* 00128 80AA07B8 8C2E1700 */ lw $t6, %lo(jtbl_80AA1700)($at)
/* 0012C 80AA07BC 01C00008 */ jr $t6
/* 00130 80AA07C0 00000000 */ nop
glabel L80AA07C4
/* 00134 80AA07C4 8FAF0024 */ lw $t7, 0x0024($sp)
/* 00138 80AA07C8 95F8010E */ lhu $t8, 0x010E($t7) ## 0000010E
/* 0013C 80AA07CC 2719DFBF */ addiu $t9, $t8, 0xDFBF ## $t9 = FFFFDFBF
/* 00140 80AA07D0 2F210021 */ sltiu $at, $t9, 0x0021
/* 00144 80AA07D4 10200027 */ beq $at, $zero, .L80AA0874
/* 00148 80AA07D8 0019C880 */ sll $t9, $t9, 2
/* 0014C 80AA07DC 3C0180AA */ lui $at, %hi(jtbl_80AA1728) ## $at = 80AA0000
/* 00150 80AA07E0 00390821 */ addu $at, $at, $t9
/* 00154 80AA07E4 8C391728 */ lw $t9, %lo(jtbl_80AA1728)($at)
/* 00158 80AA07E8 03200008 */ jr $t9
/* 0015C 80AA07EC 00000000 */ nop
glabel L80AA07F0
/* 00160 80AA07F0 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00164 80AA07F4 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00168 80AA07F8 94480F08 */ lhu $t0, 0x0F08($v0) ## 8015F568
/* 0016C 80AA07FC 944A0ED6 */ lhu $t2, 0x0ED6($v0) ## 8015F536
/* 00170 80AA0800 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
/* 00174 80AA0804 35090010 */ ori $t1, $t0, 0x0010 ## $t1 = 00000010
/* 00178 80AA0808 354B0001 */ ori $t3, $t2, 0x0001 ## $t3 = 00000001
/* 0017C 80AA080C A4490F08 */ sh $t1, 0x0F08($v0) ## 8015F568
/* 00180 80AA0810 10000027 */ beq $zero, $zero, .L80AA08B0
/* 00184 80AA0814 A44B0ED6 */ sh $t3, 0x0ED6($v0) ## 8015F536
glabel L80AA0818
/* 00188 80AA0818 3C028016 */ lui $v0, %hi(gSaveContext)
/* 0018C 80AA081C 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00190 80AA0820 944C0ED6 */ lhu $t4, 0x0ED6($v0) ## 8015F536
/* 00194 80AA0824 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
/* 00198 80AA0828 358D0020 */ ori $t5, $t4, 0x0020 ## $t5 = 00000020
/* 0019C 80AA082C 10000020 */ beq $zero, $zero, .L80AA08B0
/* 001A0 80AA0830 A44D0ED6 */ sh $t5, 0x0ED6($v0) ## 8015F536
glabel L80AA0834
/* 001A4 80AA0834 3C028016 */ lui $v0, %hi(gSaveContext)
/* 001A8 80AA0838 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 001AC 80AA083C 944E0F08 */ lhu $t6, 0x0F08($v0) ## 8015F568
/* 001B0 80AA0840 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
/* 001B4 80AA0844 35CF0020 */ ori $t7, $t6, 0x0020 ## $t7 = 00000020
/* 001B8 80AA0848 10000019 */ beq $zero, $zero, .L80AA08B0
/* 001BC 80AA084C A44F0F08 */ sh $t7, 0x0F08($v0) ## 8015F568
glabel L80AA0850
/* 001C0 80AA0850 3C028016 */ lui $v0, %hi(gSaveContext)
/* 001C4 80AA0854 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 001C8 80AA0858 94580ED6 */ lhu $t8, 0x0ED6($v0) ## 8015F536
/* 001CC 80AA085C 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
/* 001D0 80AA0860 37190040 */ ori $t9, $t8, 0x0040 ## $t9 = 00000040
/* 001D4 80AA0864 10000012 */ beq $zero, $zero, .L80AA08B0
/* 001D8 80AA0868 A4590ED6 */ sh $t9, 0x0ED6($v0) ## 8015F536
glabel L80AA086C
/* 001DC 80AA086C 10000010 */ beq $zero, $zero, .L80AA08B0
/* 001E0 80AA0870 24030002 */ addiu $v1, $zero, 0x0002 ## $v1 = 00000002
glabel L80AA0874
.L80AA0874:
/* 001E4 80AA0874 1000000E */ beq $zero, $zero, .L80AA08B0
/* 001E8 80AA0878 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
glabel L80AA087C
/* 001EC 80AA087C 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 001F0 80AA0880 0C041AF2 */ jal func_80106BC8
/* 001F4 80AA0884 A7A3001E */ sh $v1, 0x001E($sp)
/* 001F8 80AA0888 10400009 */ beq $v0, $zero, .L80AA08B0
/* 001FC 80AA088C 87A3001E */ lh $v1, 0x001E($sp)
/* 00200 80AA0890 10000007 */ beq $zero, $zero, .L80AA08B0
/* 00204 80AA0894 24030002 */ addiu $v1, $zero, 0x0002 ## $v1 = 00000002
glabel L80AA0898
/* 00208 80AA0898 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 0020C 80AA089C 0C041AF2 */ jal func_80106BC8
/* 00210 80AA08A0 A7A3001E */ sh $v1, 0x001E($sp)
/* 00214 80AA08A4 10400002 */ beq $v0, $zero, .L80AA08B0
/* 00218 80AA08A8 87A3001E */ lh $v1, 0x001E($sp)
/* 0021C 80AA08AC 24030003 */ addiu $v1, $zero, 0x0003 ## $v1 = 00000003
glabel L80AA08B0
.L80AA08B0:
/* 00220 80AA08B0 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00224 80AA08B4 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00228 80AA08B8 00601025 */ or $v0, $v1, $zero ## $v0 = 00000003
/* 0022C 80AA08BC 03E00008 */ jr $ra
/* 00230 80AA08C0 00000000 */ nop

View file

@ -1,97 +0,0 @@
glabel func_80AA08C4
/* 00234 80AA08C4 848200B8 */ lh $v0, 0x00B8($a0) ## 000000B8
/* 00238 80AA08C8 24060003 */ addiu $a2, $zero, 0x0003 ## $a2 = 00000003
/* 0023C 80AA08CC 3C048016 */ lui $a0, %hi(gSaveContext)
/* 00240 80AA08D0 14C20007 */ bne $a2, $v0, .L80AA08F0
/* 00244 80AA08D4 2484E660 */ addiu $a0, %lo(gSaveContext)
/* 00248 80AA08D8 8C8E1360 */ lw $t6, 0x1360($a0) ## 8015F9C0
/* 0024C 80AA08DC 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00250 80AA08E0 15C10003 */ bne $t6, $at, .L80AA08F0
/* 00254 80AA08E4 00000000 */ nop
/* 00258 80AA08E8 03E00008 */ jr $ra
/* 0025C 80AA08EC 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80AA08F0:
/* 00260 80AA08F0 3C048016 */ lui $a0, %hi(gSaveContext)
/* 00264 80AA08F4 2484E660 */ addiu $a0, %lo(gSaveContext)
/* 00268 80AA08F8 8C8F0004 */ lw $t7, 0x0004($a0) ## 8015E664
/* 0026C 80AA08FC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00270 80AA0900 50EF0004 */ beql $a3, $t7, .L80AA0914
/* 00274 80AA0904 84A300A4 */ lh $v1, 0x00A4($a1) ## 000000A4
/* 00278 80AA0908 03E00008 */ jr $ra
/* 0027C 80AA090C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80AA0910:
/* 00280 80AA0910 84A300A4 */ lh $v1, 0x00A4($a1) ## 000000A4
.L80AA0914:
/* 00284 80AA0914 24010021 */ addiu $at, $zero, 0x0021 ## $at = 00000021
/* 00288 80AA0918 10610003 */ beq $v1, $at, .L80AA0928
/* 0028C 80AA091C 24010020 */ addiu $at, $zero, 0x0020 ## $at = 00000020
/* 00290 80AA0920 5461000C */ bnel $v1, $at, .L80AA0954
/* 00294 80AA0924 2401005F */ addiu $at, $zero, 0x005F ## $at = 0000005F
.L80AA0928:
/* 00298 80AA0928 94980ED6 */ lhu $t8, 0x0ED6($a0) ## 8015F536
/* 0029C 80AA092C 33190010 */ andi $t9, $t8, 0x0010 ## $t9 = 00000000
/* 002A0 80AA0930 57200008 */ bnel $t9, $zero, .L80AA0954
/* 002A4 80AA0934 2401005F */ addiu $at, $zero, 0x005F ## $at = 0000005F
/* 002A8 80AA0938 94880F08 */ lhu $t0, 0x0F08($a0) ## 8015F568
/* 002AC 80AA093C 31090800 */ andi $t1, $t0, 0x0800 ## $t1 = 00000000
/* 002B0 80AA0940 55200004 */ bnel $t1, $zero, .L80AA0954
/* 002B4 80AA0944 2401005F */ addiu $at, $zero, 0x005F ## $at = 0000005F
/* 002B8 80AA0948 03E00008 */ jr $ra
/* 002BC 80AA094C 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80AA0950:
/* 002C0 80AA0950 2401005F */ addiu $at, $zero, 0x005F ## $at = 0000005F
.L80AA0954:
/* 002C4 80AA0954 5461000F */ bnel $v1, $at, .L80AA0994
/* 002C8 80AA0958 2401004C */ addiu $at, $zero, 0x004C ## $at = 0000004C
/* 002CC 80AA095C 948A0ED6 */ lhu $t2, 0x0ED6($a0) ## 8015F536
/* 002D0 80AA0960 314B0010 */ andi $t3, $t2, 0x0010 ## $t3 = 00000000
/* 002D4 80AA0964 5560000B */ bnel $t3, $zero, .L80AA0994
/* 002D8 80AA0968 2401004C */ addiu $at, $zero, 0x004C ## $at = 0000004C
/* 002DC 80AA096C 94830F08 */ lhu $v1, 0x0F08($a0) ## 8015F568
/* 002E0 80AA0970 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 002E4 80AA0974 306C0800 */ andi $t4, $v1, 0x0800 ## $t4 = 00000000
/* 002E8 80AA0978 11800003 */ beq $t4, $zero, .L80AA0988
/* 002EC 80AA097C 346D0800 */ ori $t5, $v1, 0x0800 ## $t5 = 00000800
/* 002F0 80AA0980 03E00008 */ jr $ra
/* 002F4 80AA0984 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80AA0988:
/* 002F8 80AA0988 03E00008 */ jr $ra
/* 002FC 80AA098C A48D0F08 */ sh $t5, 0x0F08($a0) ## 8015F568
.L80AA0990:
/* 00300 80AA0990 2401004C */ addiu $at, $zero, 0x004C ## $at = 0000004C
.L80AA0994:
/* 00304 80AA0994 5461000B */ bnel $v1, $at, .L80AA09C4
/* 00308 80AA0998 24010063 */ addiu $at, $zero, 0x0063 ## $at = 00000063
/* 0030C 80AA099C 8C8E0010 */ lw $t6, 0x0010($a0) ## 8015E670
/* 00310 80AA09A0 54EE0008 */ bnel $a3, $t6, .L80AA09C4
/* 00314 80AA09A4 24010063 */ addiu $at, $zero, 0x0063 ## $at = 00000063
/* 00318 80AA09A8 948F0ED6 */ lhu $t7, 0x0ED6($a0) ## 8015F536
/* 0031C 80AA09AC 31F80010 */ andi $t8, $t7, 0x0010 ## $t8 = 00000000
/* 00320 80AA09B0 53000004 */ beql $t8, $zero, .L80AA09C4
/* 00324 80AA09B4 24010063 */ addiu $at, $zero, 0x0063 ## $at = 00000063
/* 00328 80AA09B8 03E00008 */ jr $ra
/* 0032C 80AA09BC 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80AA09C0:
/* 00330 80AA09C0 24010063 */ addiu $at, $zero, 0x0063 ## $at = 00000063
.L80AA09C4:
/* 00334 80AA09C4 10610003 */ beq $v1, $at, .L80AA09D4
/* 00338 80AA09C8 00000000 */ nop
/* 0033C 80AA09CC 03E00008 */ jr $ra
/* 00340 80AA09D0 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80AA09D4:
/* 00344 80AA09D4 54C2000B */ bnel $a2, $v0, .L80AA0A04
/* 00348 80AA09D8 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 0034C 80AA09DC 8C990010 */ lw $t9, 0x0010($a0) ## 8015E670
/* 00350 80AA09E0 57200008 */ bnel $t9, $zero, .L80AA0A04
/* 00354 80AA09E4 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00358 80AA09E8 94880ED6 */ lhu $t0, 0x0ED6($a0) ## 8015F536
/* 0035C 80AA09EC 31090010 */ andi $t1, $t0, 0x0010 ## $t1 = 00000000
/* 00360 80AA09F0 51200004 */ beql $t1, $zero, .L80AA0A04
/* 00364 80AA09F4 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00368 80AA09F8 03E00008 */ jr $ra
/* 0036C 80AA09FC 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001
.L80AA0A00:
/* 00370 80AA0A00 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
.L80AA0A04:
/* 00374 80AA0A04 03E00008 */ jr $ra
/* 00378 80AA0A08 00000000 */ nop

View file

@ -1,35 +0,0 @@
glabel func_80AA0A0C
/* 0037C 80AA0A0C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00380 80AA0A10 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00384 80AA0A14 848201E2 */ lh $v0, 0x01E2($a0) ## 000001E2
/* 00388 80AA0A18 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 0038C 80AA0A1C 14400003 */ bne $v0, $zero, .L80AA0A2C
/* 00390 80AA0A20 244EFFFF */ addiu $t6, $v0, 0xFFFF ## $t6 = FFFFFFFF
/* 00394 80AA0A24 10000003 */ beq $zero, $zero, .L80AA0A34
/* 00398 80AA0A28 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000
.L80AA0A2C:
/* 0039C 80AA0A2C A4CE01E2 */ sh $t6, 0x01E2($a2) ## 000001E2
/* 003A0 80AA0A30 84C301E2 */ lh $v1, 0x01E2($a2) ## 000001E2
.L80AA0A34:
/* 003A4 80AA0A34 54600010 */ bnel $v1, $zero, .L80AA0A78
/* 003A8 80AA0A38 8FBF0014 */ lw $ra, 0x0014($sp)
/* 003AC 80AA0A3C 84CF01E4 */ lh $t7, 0x01E4($a2) ## 000001E4
/* 003B0 80AA0A40 2404001E */ addiu $a0, $zero, 0x001E ## $a0 = 0000001E
/* 003B4 80AA0A44 2405001E */ addiu $a1, $zero, 0x001E ## $a1 = 0000001E
/* 003B8 80AA0A48 25F80001 */ addiu $t8, $t7, 0x0001 ## $t8 = 00000001
/* 003BC 80AA0A4C A4D801E4 */ sh $t8, 0x01E4($a2) ## 000001E4
/* 003C0 80AA0A50 84D901E4 */ lh $t9, 0x01E4($a2) ## 000001E4
/* 003C4 80AA0A54 2B210003 */ slti $at, $t9, 0x0003
/* 003C8 80AA0A58 54200007 */ bnel $at, $zero, .L80AA0A78
/* 003CC 80AA0A5C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 003D0 80AA0A60 0C01DF64 */ jal Math_Rand_S16Offset
/* 003D4 80AA0A64 AFA60018 */ sw $a2, 0x0018($sp)
/* 003D8 80AA0A68 8FA60018 */ lw $a2, 0x0018($sp)
/* 003DC 80AA0A6C A4C201E2 */ sh $v0, 0x01E2($a2) ## 000001E2
/* 003E0 80AA0A70 A4C001E4 */ sh $zero, 0x01E4($a2) ## 000001E4
/* 003E4 80AA0A74 8FBF0014 */ lw $ra, 0x0014($sp)
.L80AA0A78:
/* 003E8 80AA0A78 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 003EC 80AA0A7C 03E00008 */ jr $ra
/* 003F0 80AA0A80 00000000 */ nop

View file

@ -1,31 +0,0 @@
glabel func_80AA0A84
/* 003F4 80AA0A84 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0
/* 003F8 80AA0A88 3C0F80AA */ lui $t7, %hi(D_80AA1678) ## $t7 = 80AA0000
/* 003FC 80AA0A8C 25EF1678 */ addiu $t7, $t7, %lo(D_80AA1678) ## $t7 = 80AA1678
/* 00400 80AA0A90 00057100 */ sll $t6, $a1, 4
/* 00404 80AA0A94 AFBF0024 */ sw $ra, 0x0024($sp)
/* 00408 80AA0A98 AFA40030 */ sw $a0, 0x0030($sp)
/* 0040C 80AA0A9C 01CF1821 */ addu $v1, $t6, $t7
/* 00410 80AA0AA0 8C640000 */ lw $a0, 0x0000($v1) ## 00000000
/* 00414 80AA0AA4 0C028800 */ jal SkelAnime_GetFrameCount
/* 00418 80AA0AA8 AFA30028 */ sw $v1, 0x0028($sp)
/* 0041C 80AA0AAC 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00
/* 00420 80AA0AB0 8FA30028 */ lw $v1, 0x0028($sp)
/* 00424 80AA0AB4 8FA40030 */ lw $a0, 0x0030($sp)
/* 00428 80AA0AB8 468021A0 */ cvt.s.w $f6, $f4
/* 0042C 80AA0ABC 90780008 */ lbu $t8, 0x0008($v1) ## 00000008
/* 00430 80AA0AC0 C468000C */ lwc1 $f8, 0x000C($v1) ## 0000000C
/* 00434 80AA0AC4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000
/* 00438 80AA0AC8 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000
/* 0043C 80AA0ACC 8C650000 */ lw $a1, 0x0000($v1) ## 00000000
/* 00440 80AA0AD0 E7A60010 */ swc1 $f6, 0x0010($sp)
/* 00444 80AA0AD4 2484014C */ addiu $a0, $a0, 0x014C ## $a0 = 0000014C
/* 00448 80AA0AD8 AFB80014 */ sw $t8, 0x0014($sp)
/* 0044C 80AA0ADC 0C029468 */ jal SkelAnime_ChangeAnim
/* 00450 80AA0AE0 E7A80018 */ swc1 $f8, 0x0018($sp)
/* 00454 80AA0AE4 8FBF0024 */ lw $ra, 0x0024($sp)
/* 00458 80AA0AE8 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000
/* 0045C 80AA0AEC 03E00008 */ jr $ra
/* 00460 80AA0AF0 00000000 */ nop

View file

@ -1,34 +0,0 @@
glabel func_80AA0AF4
/* 00464 80AA0AF4 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00468 80AA0AF8 AFBF0014 */ sw $ra, 0x0014($sp)
/* 0046C 80AA0AFC 848E01E8 */ lh $t6, 0x01E8($a0) ## 000001E8
/* 00470 80AA0B00 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00474 80AA0B04 00003825 */ or $a3, $zero, $zero ## $a3 = 00000000
/* 00478 80AA0B08 15C00008 */ bne $t6, $zero, .L80AA0B2C
/* 0047C 80AA0B0C 00000000 */ nop
/* 00480 80AA0B10 8C980154 */ lw $t8, 0x0154($a0) ## 00000154
/* 00484 80AA0B14 3C0F0601 */ lui $t7, 0x0601 ## $t7 = 06010000
/* 00488 80AA0B18 25EF8D64 */ addiu $t7, $t7, 0x8D64 ## $t7 = 06008D64
/* 0048C 80AA0B1C 15F80003 */ bne $t7, $t8, .L80AA0B2C
/* 00490 80AA0B20 00000000 */ nop
/* 00494 80AA0B24 10000001 */ beq $zero, $zero, .L80AA0B2C
/* 00498 80AA0B28 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
.L80AA0B2C:
/* 0049C 80AA0B2C 8C480024 */ lw $t0, 0x0024($v0) ## 00000024
/* 004A0 80AA0B30 3C01C120 */ lui $at, 0xC120 ## $at = C1200000
/* 004A4 80AA0B34 44813000 */ mtc1 $at, $f6 ## $f6 = -10.00
/* 004A8 80AA0B38 AC880200 */ sw $t0, 0x0200($a0) ## 00000200
/* 004AC 80AA0B3C 8C590028 */ lw $t9, 0x0028($v0) ## 00000028
/* 004B0 80AA0B40 248501E8 */ addiu $a1, $a0, 0x01E8 ## $a1 = 000001E8
/* 004B4 80AA0B44 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 004B8 80AA0B48 AC990204 */ sw $t9, 0x0204($a0) ## 00000204
/* 004BC 80AA0B4C C4840204 */ lwc1 $f4, 0x0204($a0) ## 00000204
/* 004C0 80AA0B50 8C48002C */ lw $t0, 0x002C($v0) ## 0000002C
/* 004C4 80AA0B54 46062201 */ sub.s $f8, $f4, $f6
/* 004C8 80AA0B58 AC880208 */ sw $t0, 0x0208($a0) ## 00000208
/* 004CC 80AA0B5C 0C00D285 */ jal func_80034A14
/* 004D0 80AA0B60 E4880204 */ swc1 $f8, 0x0204($a0) ## 00000204
/* 004D4 80AA0B64 8FBF0014 */ lw $ra, 0x0014($sp)
/* 004D8 80AA0B68 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 004DC 80AA0B6C 03E00008 */ jr $ra
/* 004E0 80AA0B70 00000000 */ nop

View file

@ -1,33 +0,0 @@
glabel func_80AA0B74
/* 004E4 80AA0B74 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 004E8 80AA0B78 AFBF0014 */ sw $ra, 0x0014($sp)
/* 004EC 80AA0B7C 8C8F0154 */ lw $t7, 0x0154($a0) ## 00000154
/* 004F0 80AA0B80 3C0E0601 */ lui $t6, 0x0601 ## $t6 = 06010000
/* 004F4 80AA0B84 25CE8D64 */ addiu $t6, $t6, 0x8D64 ## $t6 = 06008D64
/* 004F8 80AA0B88 15CF0013 */ bne $t6, $t7, .L80AA0BD8
/* 004FC 80AA0B8C 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000
/* 00500 80AA0B90 849801E8 */ lh $t8, 0x01E8($a0) ## 000001E8
/* 00504 80AA0B94 5700000A */ bnel $t8, $zero, .L80AA0BC0
/* 00508 80AA0B98 84A801E0 */ lh $t0, 0x01E0($a1) ## 000001E0
/* 0050C 80AA0B9C 849901E0 */ lh $t9, 0x01E0($a0) ## 000001E0
/* 00510 80AA0BA0 5320000E */ beql $t9, $zero, .L80AA0BDC
/* 00514 80AA0BA4 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00518 80AA0BA8 A48001E0 */ sh $zero, 0x01E0($a0) ## 000001E0
/* 0051C 80AA0BAC 0C03D961 */ jal func_800F6584
/* 00520 80AA0BB0 00002025 */ or $a0, $zero, $zero ## $a0 = 00000000
/* 00524 80AA0BB4 10000009 */ beq $zero, $zero, .L80AA0BDC
/* 00528 80AA0BB8 8FBF0014 */ lw $ra, 0x0014($sp)
/* 0052C 80AA0BBC 84A801E0 */ lh $t0, 0x01E0($a1) ## 000001E0
.L80AA0BC0:
/* 00530 80AA0BC0 24090001 */ addiu $t1, $zero, 0x0001 ## $t1 = 00000001
/* 00534 80AA0BC4 24040001 */ addiu $a0, $zero, 0x0001 ## $a0 = 00000001
/* 00538 80AA0BC8 55000004 */ bnel $t0, $zero, .L80AA0BDC
/* 0053C 80AA0BCC 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00540 80AA0BD0 0C03D961 */ jal func_800F6584
/* 00544 80AA0BD4 A4A901E0 */ sh $t1, 0x01E0($a1) ## 000001E0
.L80AA0BD8:
/* 00548 80AA0BD8 8FBF0014 */ lw $ra, 0x0014($sp)
.L80AA0BDC:
/* 0054C 80AA0BDC 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00550 80AA0BE0 03E00008 */ jr $ra
/* 00554 80AA0BE4 00000000 */ nop

View file

@ -1,78 +0,0 @@
glabel func_80AA0D88
/* 006F8 80AA0D88 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 006FC 80AA0D8C AFBF0014 */ sw $ra, 0x0014($sp)
/* 00700 80AA0D90 848E01E8 */ lh $t6, 0x01E8($a0) ## 000001E8
/* 00704 80AA0D94 00A03025 */ or $a2, $a1, $zero ## $a2 = 00000000
/* 00708 80AA0D98 51C0000D */ beql $t6, $zero, .L80AA0DD0
/* 0070C 80AA0D9C 8C880154 */ lw $t0, 0x0154($a0) ## 00000154
/* 00710 80AA0DA0 8C980154 */ lw $t8, 0x0154($a0) ## 00000154
/* 00714 80AA0DA4 3C0F0600 */ lui $t7, 0x0600 ## $t7 = 06000000
/* 00718 80AA0DA8 25EF0820 */ addiu $t7, $t7, 0x0820 ## $t7 = 06000820
/* 0071C 80AA0DAC 11F80011 */ beq $t7, $t8, .L80AA0DF4
/* 00720 80AA0DB0 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00724 80AA0DB4 AFA40018 */ sw $a0, 0x0018($sp)
/* 00728 80AA0DB8 0C2A82A1 */ jal func_80AA0A84
/* 0072C 80AA0DBC AFA6001C */ sw $a2, 0x001C($sp)
/* 00730 80AA0DC0 8FA40018 */ lw $a0, 0x0018($sp)
/* 00734 80AA0DC4 1000000B */ beq $zero, $zero, .L80AA0DF4
/* 00738 80AA0DC8 8FA6001C */ lw $a2, 0x001C($sp)
/* 0073C 80AA0DCC 8C880154 */ lw $t0, 0x0154($a0) ## 00000154
.L80AA0DD0:
/* 00740 80AA0DD0 3C190601 */ lui $t9, 0x0601 ## $t9 = 06010000
/* 00744 80AA0DD4 27398D64 */ addiu $t9, $t9, 0x8D64 ## $t9 = 06008D64
/* 00748 80AA0DD8 13280006 */ beq $t9, $t0, .L80AA0DF4
/* 0074C 80AA0DDC 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00750 80AA0DE0 AFA40018 */ sw $a0, 0x0018($sp)
/* 00754 80AA0DE4 0C2A82A1 */ jal func_80AA0A84
/* 00758 80AA0DE8 AFA6001C */ sw $a2, 0x001C($sp)
/* 0075C 80AA0DEC 8FA40018 */ lw $a0, 0x0018($sp)
/* 00760 80AA0DF0 8FA6001C */ lw $a2, 0x001C($sp)
.L80AA0DF4:
/* 00764 80AA0DF4 84C900A4 */ lh $t1, 0x00A4($a2) ## 000000A4
/* 00768 80AA0DF8 2401005F */ addiu $at, $zero, 0x005F ## $at = 0000005F
/* 0076C 80AA0DFC 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00770 80AA0E00 15210009 */ bne $t1, $at, .L80AA0E28
/* 00774 80AA0E04 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00778 80AA0E08 944A0ED6 */ lhu $t2, 0x0ED6($v0) ## 8015F536
/* 0077C 80AA0E0C 314B0010 */ andi $t3, $t2, 0x0010 ## $t3 = 00000000
/* 00780 80AA0E10 11600005 */ beq $t3, $zero, .L80AA0E28
/* 00784 80AA0E14 00000000 */ nop
/* 00788 80AA0E18 0C00B55C */ jal Actor_Kill
/* 0078C 80AA0E1C 00000000 */ nop
/* 00790 80AA0E20 1000001C */ beq $zero, $zero, .L80AA0E94
/* 00794 80AA0E24 8FBF0014 */ lw $ra, 0x0014($sp)
.L80AA0E28:
/* 00798 80AA0E28 3C028016 */ lui $v0, %hi(gSaveContext)
/* 0079C 80AA0E2C 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 007A0 80AA0E30 944C0ED6 */ lhu $t4, 0x0ED6($v0) ## 8015F536
/* 007A4 80AA0E34 3C0E8012 */ lui $t6, %hi(gBitFlags+0x34)
/* 007A8 80AA0E38 318D0010 */ andi $t5, $t4, 0x0010 ## $t5 = 00000000
/* 007AC 80AA0E3C 51A00007 */ beql $t5, $zero, .L80AA0E5C
/* 007B0 80AA0E40 849901E8 */ lh $t9, 0x01E8($a0) ## 000001E8
/* 007B4 80AA0E44 8DCE7154 */ lw $t6, %lo(gBitFlags+0x34)($t6)
/* 007B8 80AA0E48 8C4F00A4 */ lw $t7, 0x00A4($v0) ## 8015E704
/* 007BC 80AA0E4C 01CFC024 */ and $t8, $t6, $t7
/* 007C0 80AA0E50 53000010 */ beql $t8, $zero, .L80AA0E94
/* 007C4 80AA0E54 8FBF0014 */ lw $ra, 0x0014($sp)
/* 007C8 80AA0E58 849901E8 */ lh $t9, 0x01E8($a0) ## 000001E8
.L80AA0E5C:
/* 007CC 80AA0E5C 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 007D0 80AA0E60 3C0880AA */ lui $t0, %hi(func_80AA0EA0) ## $t0 = 80AA0000
/* 007D4 80AA0E64 1721000A */ bne $t9, $at, .L80AA0E90
/* 007D8 80AA0E68 25080EA0 */ addiu $t0, $t0, %lo(func_80AA0EA0) ## $t0 = 80AA0EA0
/* 007DC 80AA0E6C 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 007E0 80AA0E70 AC880190 */ sw $t0, 0x0190($a0) ## 00000190
/* 007E4 80AA0E74 00260821 */ addu $at, $at, $a2
/* 007E8 80AA0E78 24090004 */ addiu $t1, $zero, 0x0004 ## $t1 = 00000004
/* 007EC 80AA0E7C A02904BF */ sb $t1, 0x04BF($at) ## 000104BF
/* 007F0 80AA0E80 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 007F4 80AA0E84 00260821 */ addu $at, $at, $a2
/* 007F8 80AA0E88 240A0036 */ addiu $t2, $zero, 0x0036 ## $t2 = 00000036
/* 007FC 80AA0E8C A02A03DC */ sb $t2, 0x03DC($at) ## 000103DC
.L80AA0E90:
/* 00800 80AA0E90 8FBF0014 */ lw $ra, 0x0014($sp)
.L80AA0E94:
/* 00804 80AA0E94 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00808 80AA0E98 03E00008 */ jr $ra
/* 0080C 80AA0E9C 00000000 */ nop

View file

@ -1,26 +0,0 @@
glabel func_80AA0EA0
/* 00810 80AA0EA0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0
/* 00814 80AA0EA4 AFBF001C */ sw $ra, 0x001C($sp)
/* 00818 80AA0EA8 AFA50024 */ sw $a1, 0x0024($sp)
/* 0081C 80AA0EAC 0C00BD04 */ jal func_8002F410
/* 00820 80AA0EB0 AFA40020 */ sw $a0, 0x0020($sp)
/* 00824 80AA0EB4 10400006 */ beq $v0, $zero, .L80AA0ED0
/* 00828 80AA0EB8 8FA40020 */ lw $a0, 0x0020($sp)
/* 0082C 80AA0EBC 3C0E80AA */ lui $t6, %hi(func_80AA0EFC) ## $t6 = 80AA0000
/* 00830 80AA0EC0 25CE0EFC */ addiu $t6, $t6, %lo(func_80AA0EFC) ## $t6 = 80AA0EFC
/* 00834 80AA0EC4 AC800118 */ sw $zero, 0x0118($a0) ## 00000118
/* 00838 80AA0EC8 10000008 */ beq $zero, $zero, .L80AA0EEC
/* 0083C 80AA0ECC AC8E0190 */ sw $t6, 0x0190($a0) ## 00000190
.L80AA0ED0:
/* 00840 80AA0ED0 3C014120 */ lui $at, 0x4120 ## $at = 41200000
/* 00844 80AA0ED4 44812000 */ mtc1 $at, $f4 ## $f4 = 10.00
/* 00848 80AA0ED8 8FA50024 */ lw $a1, 0x0024($sp)
/* 0084C 80AA0EDC 24060047 */ addiu $a2, $zero, 0x0047 ## $a2 = 00000047
/* 00850 80AA0EE0 3C0742F0 */ lui $a3, 0x42F0 ## $a3 = 42F00000
/* 00854 80AA0EE4 0C00BD0D */ jal func_8002F434
/* 00858 80AA0EE8 E7A40010 */ swc1 $f4, 0x0010($sp)
.L80AA0EEC:
/* 0085C 80AA0EEC 8FBF001C */ lw $ra, 0x001C($sp)
/* 00860 80AA0EF0 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000
/* 00864 80AA0EF4 03E00008 */ jr $ra
/* 00868 80AA0EF8 00000000 */ nop

View file

@ -1,20 +0,0 @@
glabel func_80AA0EFC
/* 0086C 80AA0EFC 848E01E8 */ lh $t6, 0x01E8($a0) ## 000001E8
/* 00870 80AA0F00 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00874 80AA0F04 3C028016 */ lui $v0, %hi(gSaveContext)
/* 00878 80AA0F08 15C1000C */ bne $t6, $at, .L80AA0F3C
/* 0087C 80AA0F0C 2442E660 */ addiu $v0, %lo(gSaveContext)
/* 00880 80AA0F10 3C0F80AA */ lui $t7, %hi(func_80AA0D88) ## $t7 = 80AA0000
/* 00884 80AA0F14 25EF0D88 */ addiu $t7, $t7, %lo(func_80AA0D88) ## $t7 = 80AA0D88
/* 00888 80AA0F18 A48001E8 */ sh $zero, 0x01E8($a0) ## 000001E8
/* 0088C 80AA0F1C AC8F0190 */ sw $t7, 0x0190($a0) ## 00000190
/* 00890 80AA0F20 94580ED6 */ lhu $t8, 0x0ED6($v0) ## 8015F536
/* 00894 80AA0F24 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00898 80AA0F28 00250821 */ addu $at, $at, $a1
/* 0089C 80AA0F2C 37190004 */ ori $t9, $t8, 0x0004 ## $t9 = 00000004
/* 008A0 80AA0F30 A4590ED6 */ sh $t9, 0x0ED6($v0) ## 8015F536
/* 008A4 80AA0F34 24080036 */ addiu $t0, $zero, 0x0036 ## $t0 = 00000036
/* 008A8 80AA0F38 A02803DC */ sb $t0, 0x03DC($at) ## 000103DC
.L80AA0F3C:
/* 008AC 80AA0F3C 03E00008 */ jr $ra
/* 008B0 80AA0F40 00000000 */ nop

View file

@ -1,80 +0,0 @@
glabel func_80AA0F44
/* 008B4 80AA0F44 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 008B8 80AA0F48 AFBF001C */ sw $ra, 0x001C($sp)
/* 008BC 80AA0F4C AFB00018 */ sw $s0, 0x0018($sp)
/* 008C0 80AA0F50 AFA5002C */ sw $a1, 0x002C($sp)
/* 008C4 80AA0F54 848F01E8 */ lh $t7, 0x01E8($a0) ## 000001E8
/* 008C8 80AA0F58 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000
/* 008CC 80AA0F5C 8CA31C44 */ lw $v1, 0x1C44($a1) ## 00001C44
/* 008D0 80AA0F60 51E0000B */ beql $t7, $zero, .L80AA0F90
/* 008D4 80AA0F64 8E090154 */ lw $t1, 0x0154($s0) ## 00000154
/* 008D8 80AA0F68 8C990154 */ lw $t9, 0x0154($a0) ## 00000154
/* 008DC 80AA0F6C 3C180600 */ lui $t8, 0x0600 ## $t8 = 06000000
/* 008E0 80AA0F70 27180820 */ addiu $t8, $t8, 0x0820 ## $t8 = 06000820
/* 008E4 80AA0F74 1319000E */ beq $t8, $t9, .L80AA0FB0
/* 008E8 80AA0F78 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 008EC 80AA0F7C 0C2A82A1 */ jal func_80AA0A84
/* 008F0 80AA0F80 AFA30024 */ sw $v1, 0x0024($sp)
/* 008F4 80AA0F84 1000000A */ beq $zero, $zero, .L80AA0FB0
/* 008F8 80AA0F88 8FA30024 */ lw $v1, 0x0024($sp)
/* 008FC 80AA0F8C 8E090154 */ lw $t1, 0x0154($s0) ## 00000154
.L80AA0F90:
/* 00900 80AA0F90 3C080601 */ lui $t0, 0x0601 ## $t0 = 06010000
/* 00904 80AA0F94 25088D64 */ addiu $t0, $t0, 0x8D64 ## $t0 = 06008D64
/* 00908 80AA0F98 11090005 */ beq $t0, $t1, .L80AA0FB0
/* 0090C 80AA0F9C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000
/* 00910 80AA0FA0 24050003 */ addiu $a1, $zero, 0x0003 ## $a1 = 00000003
/* 00914 80AA0FA4 0C2A82A1 */ jal func_80AA0A84
/* 00918 80AA0FA8 AFA30024 */ sw $v1, 0x0024($sp)
/* 0091C 80AA0FAC 8FA30024 */ lw $v1, 0x0024($sp)
.L80AA0FB0:
/* 00920 80AA0FB0 3C0A8016 */ lui $t2, %hi(gSaveContext+0xed6)
/* 00924 80AA0FB4 954AF536 */ lhu $t2, %lo(gSaveContext+0xed6)($t2)
/* 00928 80AA0FB8 314B0040 */ andi $t3, $t2, 0x0040 ## $t3 = 00000000
/* 0092C 80AA0FBC 51600027 */ beql $t3, $zero, .L80AA105C
/* 00930 80AA0FC0 8FBF001C */ lw $ra, 0x001C($sp)
/* 00934 80AA0FC4 8C620680 */ lw $v0, 0x0680($v1) ## 00000680
/* 00938 80AA0FC8 3C010200 */ lui $at, 0x0200 ## $at = 02000000
/* 0093C 80AA0FCC 240E2061 */ addiu $t6, $zero, 0x2061 ## $t6 = 00002061
/* 00940 80AA0FD0 000261C0 */ sll $t4, $v0, 7
/* 00944 80AA0FD4 05810012 */ bgez $t4, .L80AA1020
/* 00948 80AA0FD8 00416825 */ or $t5, $v0, $at ## $t5 = 02000000
/* 0094C 80AA0FDC AC6D0680 */ sw $t5, 0x0680($v1) ## 00000680
/* 00950 80AA0FE0 AC7006A8 */ sw $s0, 0x06A8($v1) ## 000006A8
/* 00954 80AA0FE4 A60E010E */ sh $t6, 0x010E($s0) ## 0000010E
/* 00958 80AA0FE8 8FA4002C */ lw $a0, 0x002C($sp)
/* 0095C 80AA0FEC 31C5FFFF */ andi $a1, $t6, 0xFFFF ## $a1 = 00002061
/* 00960 80AA0FF0 0C042DA0 */ jal func_8010B680
/* 00964 80AA0FF4 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000
/* 00968 80AA0FF8 8E180004 */ lw $t8, 0x0004($s0) ## 00000004
/* 0096C 80AA0FFC 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00970 80AA1000 3C0880AA */ lui $t0, %hi(func_80AA106C) ## $t0 = 80AA0000
/* 00974 80AA1004 240F0001 */ addiu $t7, $zero, 0x0001 ## $t7 = 00000001
/* 00978 80AA1008 2508106C */ addiu $t0, $t0, %lo(func_80AA106C) ## $t0 = 80AA106C
/* 0097C 80AA100C 0301C825 */ or $t9, $t8, $at ## $t9 = 00010000
/* 00980 80AA1010 A60F01E8 */ sh $t7, 0x01E8($s0) ## 000001E8
/* 00984 80AA1014 AE190004 */ sw $t9, 0x0004($s0) ## 00000004
/* 00988 80AA1018 1000000F */ beq $zero, $zero, .L80AA1058
/* 0098C 80AA101C AE080190 */ sw $t0, 0x0190($s0) ## 00000190
.L80AA1020:
/* 00990 80AA1020 860901D4 */ lh $t1, 0x01D4($s0) ## 000001D4
/* 00994 80AA1024 3C0141F0 */ lui $at, 0x41F0 ## $at = 41F00000
/* 00998 80AA1028 44813000 */ mtc1 $at, $f6 ## $f6 = 30.00
/* 0099C 80AA102C 44894000 */ mtc1 $t1, $f8 ## $f8 = 0.00
/* 009A0 80AA1030 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090
/* 009A4 80AA1034 3C010080 */ lui $at, 0x0080 ## $at = 00800000
/* 009A8 80AA1038 468042A0 */ cvt.s.w $f10, $f8
/* 009AC 80AA103C 00415025 */ or $t2, $v0, $at ## $t2 = 00800000
/* 009B0 80AA1040 460A3400 */ add.s $f16, $f6, $f10
/* 009B4 80AA1044 4610203C */ c.lt.s $f4, $f16
/* 009B8 80AA1048 00000000 */ nop
/* 009BC 80AA104C 45020003 */ bc1fl .L80AA105C
/* 009C0 80AA1050 8FBF001C */ lw $ra, 0x001C($sp)
/* 009C4 80AA1054 AC6A0680 */ sw $t2, 0x0680($v1) ## 00000680
.L80AA1058:
/* 009C8 80AA1058 8FBF001C */ lw $ra, 0x001C($sp)
.L80AA105C:
/* 009CC 80AA105C 8FB00018 */ lw $s0, 0x0018($sp)
/* 009D0 80AA1060 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 009D4 80AA1064 03E00008 */ jr $ra
/* 009D8 80AA1068 00000000 */ nop

View file

@ -1,34 +0,0 @@
glabel func_80AA106C
/* 009DC 80AA106C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 009E0 80AA1070 AFBF0014 */ sw $ra, 0x0014($sp)
/* 009E4 80AA1074 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 009E8 80AA1078 3C010080 */ lui $at, 0x0080 ## $at = 00800000
/* 009EC 80AA107C 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000
/* 009F0 80AA1080 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 009F4 80AA1084 01C17825 */ or $t7, $t6, $at ## $t7 = 00800000
/* 009F8 80AA1088 AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 009FC 80AA108C 849801E8 */ lh $t8, 0x01E8($a0) ## 000001E8
/* 00A00 80AA1090 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00A04 80AA1094 24040002 */ addiu $a0, $zero, 0x0002 ## $a0 = 00000002
/* 00A08 80AA1098 57010011 */ bnel $t8, $at, .L80AA10E0
/* 00A0C 80AA109C 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00A10 80AA10A0 AFA60018 */ sw $a2, 0x0018($sp)
/* 00A14 80AA10A4 0C03B616 */ jal func_800ED858
/* 00A18 80AA10A8 AFA5001C */ sw $a1, 0x001C($sp)
/* 00A1C 80AA10AC 8FA4001C */ lw $a0, 0x001C($sp)
/* 00A20 80AA10B0 0C042F56 */ jal func_8010BD58
/* 00A24 80AA10B4 24050009 */ addiu $a1, $zero, 0x0009 ## $a1 = 00000009
/* 00A28 80AA10B8 8FA60018 */ lw $a2, 0x0018($sp)
/* 00A2C 80AA10BC 3C01FFFE */ lui $at, 0xFFFE ## $at = FFFE0000
/* 00A30 80AA10C0 3421FFFF */ ori $at, $at, 0xFFFF ## $at = FFFEFFFF
/* 00A34 80AA10C4 8CD90004 */ lw $t9, 0x0004($a2) ## 00000004
/* 00A38 80AA10C8 3C0980AA */ lui $t1, %hi(func_80AA10EC) ## $t1 = 80AA0000
/* 00A3C 80AA10CC 252910EC */ addiu $t1, $t1, %lo(func_80AA10EC) ## $t1 = 80AA10EC
/* 00A40 80AA10D0 03214024 */ and $t0, $t9, $at
/* 00A44 80AA10D4 ACC80004 */ sw $t0, 0x0004($a2) ## 00000004
/* 00A48 80AA10D8 ACC90190 */ sw $t1, 0x0190($a2) ## 00000190
/* 00A4C 80AA10DC 8FBF0014 */ lw $ra, 0x0014($sp)
.L80AA10E0:
/* 00A50 80AA10E0 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00A54 80AA10E4 03E00008 */ jr $ra
/* 00A58 80AA10E8 00000000 */ nop

View file

@ -1,27 +0,0 @@
glabel func_80AA10EC
/* 00A5C 80AA10EC 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8
/* 00A60 80AA10F0 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00A64 80AA10F4 AFA40018 */ sw $a0, 0x0018($sp)
/* 00A68 80AA10F8 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00A6C 80AA10FC 3C010080 */ lui $at, 0x0080 ## $at = 00800000
/* 00A70 80AA1100 24A420D8 */ addiu $a0, $a1, 0x20D8 ## $a0 = 000020D8
/* 00A74 80AA1104 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 00A78 80AA1108 01C17825 */ or $t7, $t6, $at ## $t7 = 00800000
/* 00A7C 80AA110C AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 00A80 80AA1110 0C042F6F */ jal func_8010BDBC
/* 00A84 80AA1114 AFA5001C */ sw $a1, 0x001C($sp)
/* 00A88 80AA1118 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007
/* 00A8C 80AA111C 14410008 */ bne $v0, $at, .L80AA1140
/* 00A90 80AA1120 8FA6001C */ lw $a2, 0x001C($sp)
/* 00A94 80AA1124 00C02025 */ or $a0, $a2, $zero ## $a0 = 00000000
/* 00A98 80AA1128 0C042F56 */ jal func_8010BD58
/* 00A9C 80AA112C 24050016 */ addiu $a1, $zero, 0x0016 ## $a1 = 00000016
/* 00AA0 80AA1130 8FB90018 */ lw $t9, 0x0018($sp)
/* 00AA4 80AA1134 3C1880AA */ lui $t8, %hi(func_80AA1150) ## $t8 = 80AA0000
/* 00AA8 80AA1138 27181150 */ addiu $t8, $t8, %lo(func_80AA1150) ## $t8 = 80AA1150
/* 00AAC 80AA113C AF380190 */ sw $t8, 0x0190($t9) ## 00000190
.L80AA1140:
/* 00AB0 80AA1140 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00AB4 80AA1144 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000
/* 00AB8 80AA1148 03E00008 */ jr $ra
/* 00ABC 80AA114C 00000000 */ nop

View file

@ -1,32 +0,0 @@
glabel func_80AA1150
/* 00AC0 80AA1150 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44
/* 00AC4 80AA1154 3C010080 */ lui $at, 0x0080 ## $at = 00800000
/* 00AC8 80AA1158 3C180001 */ lui $t8, 0x0001 ## $t8 = 00010000
/* 00ACC 80AA115C 8C4E0680 */ lw $t6, 0x0680($v0) ## 00000680
/* 00AD0 80AA1160 0305C021 */ addu $t8, $t8, $a1
/* 00AD4 80AA1164 24190157 */ addiu $t9, $zero, 0x0157 ## $t9 = 00000157
/* 00AD8 80AA1168 01C17825 */ or $t7, $t6, $at ## $t7 = 00800000
/* 00ADC 80AA116C AC4F0680 */ sw $t7, 0x0680($v0) ## 00000680
/* 00AE0 80AA1170 971804C6 */ lhu $t8, 0x04C6($t8) ## 000104C6
/* 00AE4 80AA1174 24010003 */ addiu $at, $zero, 0x0003 ## $at = 00000003
/* 00AE8 80AA1178 3408FFF1 */ ori $t0, $zero, 0xFFF1 ## $t0 = 0000FFF1
/* 00AEC 80AA117C 17010010 */ bne $t8, $at, .L80AA11C0
/* 00AF0 80AA1180 2409002A */ addiu $t1, $zero, 0x002A ## $t1 = 0000002A
/* 00AF4 80AA1184 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00AF8 80AA1188 00250821 */ addu $at, $at, $a1
/* 00AFC 80AA118C A4391E1A */ sh $t9, 0x1E1A($at) ## 00011E1A
/* 00B00 80AA1190 3C018016 */ lui $at, %hi(gSaveContext+0x1412)
/* 00B04 80AA1194 A428FA72 */ sh $t0, %lo(gSaveContext+0x1412)($at)
/* 00B08 80AA1198 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B0C 80AA119C 00250821 */ addu $at, $at, $a1
/* 00B10 80AA11A0 A0291E5E */ sb $t1, 0x1E5E($at) ## 00011E5E
/* 00B14 80AA11A4 3C010001 */ lui $at, 0x0001 ## $at = 00010000
/* 00B18 80AA11A8 00250821 */ addu $at, $at, $a1
/* 00B1C 80AA11AC 240A0014 */ addiu $t2, $zero, 0x0014 ## $t2 = 00000014
/* 00B20 80AA11B0 3C0B80AA */ lui $t3, %hi(func_80AA11C8) ## $t3 = 80AA0000
/* 00B24 80AA11B4 A02A1E15 */ sb $t2, 0x1E15($at) ## 00011E15
/* 00B28 80AA11B8 256B11C8 */ addiu $t3, $t3, %lo(func_80AA11C8) ## $t3 = 80AA11C8
/* 00B2C 80AA11BC AC8B0190 */ sw $t3, 0x0190($a0) ## 00000190
.L80AA11C0:
/* 00B30 80AA11C0 03E00008 */ jr $ra
/* 00B34 80AA11C4 00000000 */ nop

View file

@ -1,4 +0,0 @@
glabel func_80AA11C8
/* 00B38 80AA11C8 AFA40000 */ sw $a0, 0x0000($sp)
/* 00B3C 80AA11CC 03E00008 */ jr $ra
/* 00B40 80AA11D0 AFA50004 */ sw $a1, 0x0004($sp)

View file

@ -1,118 +0,0 @@
.late_rodata
glabel D_80AA17AC
.float 3.14159274101
glabel D_80AA17B0
.float 3.14159274101
glabel D_80AA17B4
.float 3.14159274101
glabel D_80AA17B8
.float 3.14159274101
.text
glabel func_80AA12BC
/* 00C2C 80AA12BC 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00C30 80AA12C0 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002
/* 00C34 80AA12C4 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00C38 80AA12C8 AFA40028 */ sw $a0, 0x0028($sp)
/* 00C3C 80AA12CC 10A10004 */ beq $a1, $at, .L80AA12E0
/* 00C40 80AA12D0 AFA70034 */ sw $a3, 0x0034($sp)
/* 00C44 80AA12D4 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005
/* 00C48 80AA12D8 54A10003 */ bnel $a1, $at, .L80AA12E8
/* 00C4C 80AA12DC 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
.L80AA12E0:
/* 00C50 80AA12E0 ACC00000 */ sw $zero, 0x0000($a2) ## 00000000
/* 00C54 80AA12E4 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
.L80AA12E8:
/* 00C58 80AA12E8 14A1002E */ bne $a1, $at, .L80AA13A4
/* 00C5C 80AA12EC 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00C60 80AA12F0 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
/* 00C64 80AA12F4 3C0144AF */ lui $at, 0x44AF ## $at = 44AF0000
/* 00C68 80AA12F8 44816000 */ mtc1 $at, $f12 ## $f12 = 1400.00
/* 00C6C 80AA12FC 44067000 */ mfc1 $a2, $f14
/* 00C70 80AA1300 0C034261 */ jal Matrix_Translate
/* 00C74 80AA1304 AFA5002C */ sw $a1, 0x002C($sp)
/* 00C78 80AA1308 8FAF003C */ lw $t7, 0x003C($sp)
/* 00C7C 80AA130C 27AE001C */ addiu $t6, $sp, 0x001C ## $t6 = FFFFFFF4
/* 00C80 80AA1310 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 00C84 80AA1314 89F901F0 */ lwl $t9, 0x01F0($t7) ## 000001F0
/* 00C88 80AA1318 99F901F3 */ lwr $t9, 0x01F3($t7) ## 000001F3
/* 00C8C 80AA131C 44814000 */ mtc1 $at, $f8 ## $f8 = 32768.00
/* 00C90 80AA1320 3C0180AA */ lui $at, %hi(D_80AA17AC) ## $at = 80AA0000
/* 00C94 80AA1324 ADD90000 */ sw $t9, 0x0000($t6) ## FFFFFFF4
/* 00C98 80AA1328 95F901F4 */ lhu $t9, 0x01F4($t7) ## 000001F4
/* 00C9C 80AA132C 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00CA0 80AA1330 A5D90004 */ sh $t9, 0x0004($t6) ## FFFFFFF8
/* 00CA4 80AA1334 87A8001E */ lh $t0, 0x001E($sp)
/* 00CA8 80AA1338 C43017AC */ lwc1 $f16, %lo(D_80AA17AC)($at)
/* 00CAC 80AA133C 44882000 */ mtc1 $t0, $f4 ## $f4 = 0.00
/* 00CB0 80AA1340 00000000 */ nop
/* 00CB4 80AA1344 468021A0 */ cvt.s.w $f6, $f4
/* 00CB8 80AA1348 46083283 */ div.s $f10, $f6, $f8
/* 00CBC 80AA134C 46105302 */ mul.s $f12, $f10, $f16
/* 00CC0 80AA1350 0C0342DC */ jal Matrix_RotateX
/* 00CC4 80AA1354 00000000 */ nop
/* 00CC8 80AA1358 87A9001C */ lh $t1, 0x001C($sp)
/* 00CCC 80AA135C 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 00CD0 80AA1360 44813000 */ mtc1 $at, $f6 ## $f6 = 32768.00
/* 00CD4 80AA1364 44899000 */ mtc1 $t1, $f18 ## $f18 = 0.00
/* 00CD8 80AA1368 3C0180AA */ lui $at, %hi(D_80AA17B0) ## $at = 80AA0000
/* 00CDC 80AA136C C42A17B0 */ lwc1 $f10, %lo(D_80AA17B0)($at)
/* 00CE0 80AA1370 46809120 */ cvt.s.w $f4, $f18
/* 00CE4 80AA1374 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00CE8 80AA1378 46062203 */ div.s $f8, $f4, $f6
/* 00CEC 80AA137C 460A4302 */ mul.s $f12, $f8, $f10
/* 00CF0 80AA1380 0C0343B5 */ jal Matrix_RotateZ
/* 00CF4 80AA1384 00000000 */ nop
/* 00CF8 80AA1388 44807000 */ mtc1 $zero, $f14 ## $f14 = 0.00
/* 00CFC 80AA138C 3C01C4AF */ lui $at, 0xC4AF ## $at = C4AF0000
/* 00D00 80AA1390 44816000 */ mtc1 $at, $f12 ## $f12 = -1400.00
/* 00D04 80AA1394 44067000 */ mfc1 $a2, $f14
/* 00D08 80AA1398 0C034261 */ jal Matrix_Translate
/* 00D0C 80AA139C 24070001 */ addiu $a3, $zero, 0x0001 ## $a3 = 00000001
/* 00D10 80AA13A0 8FA5002C */ lw $a1, 0x002C($sp)
.L80AA13A4:
/* 00D14 80AA13A4 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008
/* 00D18 80AA13A8 14A10022 */ bne $a1, $at, .L80AA1434
/* 00D1C 80AA13AC 8FAB003C */ lw $t3, 0x003C($sp)
/* 00D20 80AA13B0 896D01F6 */ lwl $t5, 0x01F6($t3) ## 000001F6
/* 00D24 80AA13B4 996D01F9 */ lwr $t5, 0x01F9($t3) ## 000001F9
/* 00D28 80AA13B8 27AA001C */ addiu $t2, $sp, 0x001C ## $t2 = FFFFFFF4
/* 00D2C 80AA13BC 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 00D30 80AA13C0 AD4D0000 */ sw $t5, 0x0000($t2) ## FFFFFFF4
/* 00D34 80AA13C4 956D01FA */ lhu $t5, 0x01FA($t3) ## 000001FA
/* 00D38 80AA13C8 44812000 */ mtc1 $at, $f4 ## $f4 = 32768.00
/* 00D3C 80AA13CC 3C0180AA */ lui $at, %hi(D_80AA17B4) ## $at = 80AA0000
/* 00D40 80AA13D0 A54D0004 */ sh $t5, 0x0004($t2) ## FFFFFFF8
/* 00D44 80AA13D4 87AE001E */ lh $t6, 0x001E($sp)
/* 00D48 80AA13D8 C42817B4 */ lwc1 $f8, %lo(D_80AA17B4)($at)
/* 00D4C 80AA13DC 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00D50 80AA13E0 000E7823 */ subu $t7, $zero, $t6
/* 00D54 80AA13E4 448F8000 */ mtc1 $t7, $f16 ## $f16 = 0.00
/* 00D58 80AA13E8 00000000 */ nop
/* 00D5C 80AA13EC 468084A0 */ cvt.s.w $f18, $f16
/* 00D60 80AA13F0 46049183 */ div.s $f6, $f18, $f4
/* 00D64 80AA13F4 46083302 */ mul.s $f12, $f6, $f8
/* 00D68 80AA13F8 0C0342DC */ jal Matrix_RotateX
/* 00D6C 80AA13FC 00000000 */ nop
/* 00D70 80AA1400 87B8001C */ lh $t8, 0x001C($sp)
/* 00D74 80AA1404 3C014700 */ lui $at, 0x4700 ## $at = 47000000
/* 00D78 80AA1408 44819000 */ mtc1 $at, $f18 ## $f18 = 32768.00
/* 00D7C 80AA140C 0018C823 */ subu $t9, $zero, $t8
/* 00D80 80AA1410 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00
/* 00D84 80AA1414 3C0180AA */ lui $at, %hi(D_80AA17B8) ## $at = 80AA0000
/* 00D88 80AA1418 C42617B8 */ lwc1 $f6, %lo(D_80AA17B8)($at)
/* 00D8C 80AA141C 46805420 */ cvt.s.w $f16, $f10
/* 00D90 80AA1420 24050001 */ addiu $a1, $zero, 0x0001 ## $a1 = 00000001
/* 00D94 80AA1424 46128103 */ div.s $f4, $f16, $f18
/* 00D98 80AA1428 46062302 */ mul.s $f12, $f4, $f6
/* 00D9C 80AA142C 0C0343B5 */ jal Matrix_RotateZ
/* 00DA0 80AA1430 00000000 */ nop
.L80AA1434:
/* 00DA4 80AA1434 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00DA8 80AA1438 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00DAC 80AA143C 00001025 */ or $v0, $zero, $zero ## $v0 = 00000000
/* 00DB0 80AA1440 03E00008 */ jr $ra
/* 00DB4 80AA1444 00000000 */ nop

View file

@ -1,25 +0,0 @@
glabel func_80AA1448
/* 00DB8 80AA1448 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8
/* 00DBC 80AA144C 3C0E80AA */ lui $t6, %hi(D_80AA16B8) ## $t6 = 80AA0000
/* 00DC0 80AA1450 AFBF0014 */ sw $ra, 0x0014($sp)
/* 00DC4 80AA1454 AFA40028 */ sw $a0, 0x0028($sp)
/* 00DC8 80AA1458 AFA60030 */ sw $a2, 0x0030($sp)
/* 00DCC 80AA145C AFA70034 */ sw $a3, 0x0034($sp)
/* 00DD0 80AA1460 25CE16B8 */ addiu $t6, $t6, %lo(D_80AA16B8) ## $t6 = 80AA16B8
/* 00DD4 80AA1464 8DD80000 */ lw $t8, 0x0000($t6) ## 80AA16B8
/* 00DD8 80AA1468 27A40018 */ addiu $a0, $sp, 0x0018 ## $a0 = FFFFFFF0
/* 00DDC 80AA146C 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F
/* 00DE0 80AA1470 AC980000 */ sw $t8, 0x0000($a0) ## FFFFFFF0
/* 00DE4 80AA1474 8DCF0004 */ lw $t7, 0x0004($t6) ## 80AA16BC
/* 00DE8 80AA1478 AC8F0004 */ sw $t7, 0x0004($a0) ## FFFFFFF4
/* 00DEC 80AA147C 8DD80008 */ lw $t8, 0x0008($t6) ## 80AA16C0
/* 00DF0 80AA1480 14A10004 */ bne $a1, $at, .L80AA1494
/* 00DF4 80AA1484 AC980008 */ sw $t8, 0x0008($a0) ## FFFFFFF8
/* 00DF8 80AA1488 8FA50038 */ lw $a1, 0x0038($sp)
/* 00DFC 80AA148C 0C0346BD */ jal Matrix_MultVec3f
/* 00E00 80AA1490 24A50038 */ addiu $a1, $a1, 0x0038 ## $a1 = 00000038
.L80AA1494:
/* 00E04 80AA1494 8FBF0014 */ lw $ra, 0x0014($sp)
/* 00E08 80AA1498 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000
/* 00E0C 80AA149C 03E00008 */ jr $ra
/* 00E10 80AA14A0 00000000 */ nop

View file

@ -1,28 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .data
glabel En_Ma1_InitVars
.word 0x00E70400, 0x02000039, 0x00E00000, 0x00000210
.word EnMa1_Init
.word EnMa1_Destroy
.word EnMa1_Update
.word EnMa1_Draw
glabel D_80AA1640
.word 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000100, 0x0012002E, 0x00000000, 0x00000000
glabel D_80AA166C
.word 0x00000000, 0x00000000, 0xFF000000
glabel D_80AA1678
.word 0x06000820, 0x3F800000, 0x00000000, 0x00000000, 0x06000820, 0x3F800000, 0x00000000, 0xC1200000, 0x06008D64, 0x3F800000, 0x00000000, 0x00000000, 0x06008D64, 0x3F800000, 0x00000000, 0xC1200000
glabel D_80AA16B8
.word 0x44480000, 0x00000000, 0x00000000
glabel D_80AA16C4
.word 0x06001F18, 0x06002B18, 0x06002F18
glabel D_80AA16D0
.word 0x06001B18, 0x06002318, 0x06002718, 0x00000000

View file

@ -1,11 +0,0 @@
.include "macro.inc"
# assembler directives
.set noat # allow manual use of $at
.set noreorder # don't insert nops after branches
.set gp=64 # allow use of 64-bit general purposee registers
.section .rodata
glabel D_80AA17C0
.incbin "baserom/ovl_En_Ma1", 0x1130, 0x000001E0

View file

@ -400,6 +400,7 @@ Hilite* func_8003435C(Vec3f* object, GlobalContext* globalCtx);
s32 func_800343CC(GlobalContext* globalCtx, Actor* actor, s16* arg2, f32 arg3, u16 (*unkFunc1)(GlobalContext*, Actor*),
s16 (*unkFunc2)(GlobalContext*, Actor*));
s16 func_800347E8(s16 arg0);
void func_80034A14(Actor* actor, struct_80034A14_arg1* arg1, s16 arg2, s16 arg3);
void func_80034BA0(GlobalContext* globalCtx, SkelAnime* skelAnime, OverrideLimbDraw2 overrideLimbDraw,
PostLimbDraw2 postLimbDraw, Actor* actor, s16 alpha);
void func_80034CC4(GlobalContext* globalCtx, SkelAnime* skelAnime, OverrideLimbDraw2 overrideLimbDraw,
@ -2154,6 +2155,7 @@ void func_800F59E8(u16);
// ? func_800F5CF8(?);
// ? func_800F5E18(?);
// ? func_800F5E90(?);
void func_800F6268(f32, UNK_TYPE);
// ? func_800F64E0(?);
// ? func_800F66C0(?);
// ? func_800F6700(?);

View file

@ -604,9 +604,11 @@ typedef struct {
/* 0xE3E2 */ u16 unk_E3E2;
/* 0xE3E4 */ u8 unk_E3E4;
/* 0xE3E5 */ u8 choiceIndex;
/* 0xE3E6 */ char unk_E3E6[0x08];
/* 0xE3E6 */ char unk_E3E6[0x01];
/* 0xE3E7 */ u8 unk_E3E7;
/* 0xE3E8 */ char unk_E3E8[0x6];
/* 0xE3EE */ u16 unk_E3EE;
/* 0xE3EE */ u16 unk_E3F0;
/* 0xE3F0 */ u16 unk_E3F0;
/* 0xE3F2 */ char unk_E3F2[0x02];
/* 0xE3F4 */ u16 unk_E3F4;
/* 0xE3F6 */ char unk_E3F6[0x16];
@ -1129,6 +1131,14 @@ typedef struct {
/* 0x14 */ f32 transitionRate;
} struct_80034EC0_Entry; // size = 0x18
// Another animation related structure
typedef struct {
/* 0x00 */ AnimationHeader* animation;
/* 0x04 */ f32 frameCount;
/* 0x08 */ u8 unk_08;
/* 0x0C */ f32 transitionRate;
} struct_D_80AA1678; // size = 0x10
typedef struct {
/* 0x00 */ s16 unk_00;
/* 0x02 */ s16 unk_02;
@ -1138,6 +1148,7 @@ typedef struct {
/* 0x0E */ Vec3s unk_0E;
/* 0x14 */ f32 unk_14;
/* 0x18 */ Vec3f unk_18;
/* 0x24 */ char unk_24[0x4];
} struct_80034A14_arg1;
typedef struct {
@ -1577,7 +1588,7 @@ typedef struct {
/* 0xB4 */ JpegWork* workBuf;
} JpegContext; // size = 0xB8
typedef struct {
typedef struct {
/* 0x00 */ char unk_00[0x08];
/* 0x08 */ Color_RGBA8 color;
/* 0x0C */ char unk_0C[0x0C];

View file

@ -250,7 +250,8 @@ typedef struct {
/* 0x0698 */ f32 unk_698;
/* 0x069C */ char unk_69C[0x008];
/* 0x06A4 */ f32 unk_6A4;
/* 0x06A8 */ char unk_6A8[0x5];
/* 0x06A8 */ Actor* unk_6A8;
/* 0x06AC */ char unk_6AC[0x001];
/* 0x06AD */ u8 unk_6AD;
/* 0x06AE */ char unk_6AE[0x1A];
/* 0x06C8 */ SkelAnime skelAnime2;

3
spec
View file

@ -2916,8 +2916,7 @@ endseg
beginseg
name "ovl_En_Ma1"
include "build/src/overlays/actors/ovl_En_Ma1/z_en_ma1.o"
include "build/data/overlays/actors/z_en_ma1.data.o"
include "build/data/overlays/actors/z_en_ma1.reloc.o"
include "build/src/overlays/actors/ovl_En_Ma1/z_en_ma1_reloc.o"
endseg
beginseg

View file

@ -1,3 +1,9 @@
/*
* File: z_en_ma1.c
* Overlay: En_Ma1
* Description:
*/
#include "z_en_ma1.h"
#define FLAGS 0x02000039
@ -7,7 +13,18 @@ void EnMa1_Destroy(EnMa1* this, GlobalContext* globalCtx);
void EnMa1_Update(EnMa1* this, GlobalContext* globalCtx);
void EnMa1_Draw(EnMa1* this, GlobalContext* globalCtx);
/*
u16 EnMa1_GetText(GlobalContext* globalCtx, Actor* this);
s16 func_80AA0778(GlobalContext* globalCtx, Actor* this);
void func_80AA0D88(EnMa1* this, GlobalContext* globalCtx);
void func_80AA0EA0(EnMa1* this, GlobalContext* globalCtx);
void func_80AA0EFC(EnMa1* this, GlobalContext* globalCtx);
void func_80AA0F44(EnMa1* this, GlobalContext* globalCtx);
void func_80AA106C(EnMa1* this, GlobalContext* globalCtx);
void func_80AA10EC(EnMa1* this, GlobalContext* globalCtx);
void func_80AA1150(EnMa1* this, GlobalContext* globalCtx);
void func_80AA11C8(EnMa1* this, GlobalContext* globalCtx);
const ActorInit En_Ma1_InitVars = {
ACTOR_EN_MA1,
ACTORTYPE_NPC,
@ -19,45 +36,410 @@ const ActorInit En_Ma1_InitVars = {
(ActorFunc)EnMa1_Update,
(ActorFunc)EnMa1_Draw,
};
*/
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0690.s")
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0778.s")
ColliderCylinderInit cylinderInit = {
{ COLTYPE_UNK10, 0x00, 0x00, 0x39, 0x20, COLSHAPE_CYLINDER },
{ 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x00, 0x01 },
{ 18, 46, 0, { 0, 0, 0 } },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA08C4.s")
CollisionCheckInfoInit2 D_80AA166C = {
0x00, 0x0000, 0x0000, 0x0000, 0xFF,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0A0C.s")
struct_D_80AA1678 D_80AA1678[] = {
{ 0x06000820, 1.0f, 0x00, 0.0f },
{ 0x06000820, 1.0f, 0x00, -10.0f },
{ 0x06008D64, 1.0f, 0x00, 0.0f },
{ 0x06008D64, 1.0f, 0x00, -10.0f },
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0A84.s")
Vec3f D_80AA16B8 = { 800.0f, 0.0f, 0.0f };
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0AF4.s")
u32 D_80AA16C4[] = {
0x06001F18,
0x06002B18,
0x06002F18,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0B74.s")
u32 D_80AA16D0[] = {
0x06001B18,
0x06002318,
0x06002718,
};
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/EnMa1_Init.s")
extern AnimationHeader D_06000820;
extern SkeletonHeader D_06008460;
extern AnimationHeader D_06008D64;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/EnMa1_Destroy.s")
u16 EnMa1_GetText(GlobalContext* globalCtx, Actor* this) {
u16 faceReaction = Text_GetFaceReaction(globalCtx, 0x17);
if (faceReaction != 0) {
return faceReaction;
}
if (CHECK_QUEST_ITEM(QUEST_SONG_EPONA)) {
return 0x204A;
}
if (gSaveContext.eventChkInf[1] & 0x40) {
return 0x2049;
}
if (gSaveContext.eventChkInf[1] & 0x20) {
if ((gSaveContext.infTable[8] & 0x20)) {
return 0x2049;
} else {
return 0x2048;
}
}
if (gSaveContext.eventChkInf[1] & 0x10) {
return 0x2047;
}
if (gSaveContext.eventChkInf[1] & 4) {
return 0x2044;
}
if (gSaveContext.infTable[8] & 0x10) {
if (gSaveContext.infTable[8] & 0x800) {
return 0x2043;
} else {
return 0x2042;
}
}
return 0x2041;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0D88.s")
s16 func_80AA0778(GlobalContext* globalCtx, Actor* this) {
s16 ret = 1;
switch (func_8010BDBC(&globalCtx->msgCtx)) {
case 2:
switch (this->textId - 0x2041) {
case 0:
gSaveContext.infTable[8] |= 0x10;
gSaveContext.eventChkInf[1] |= 1;
ret = 0;
break;
case 2:
ret = 1;
break;
case 6:
gSaveContext.eventChkInf[1] |= 0x20;
ret = 0;
break;
case 7:
gSaveContext.infTable[8] |= 0x20;
ret = 0;
break;
case 8:
gSaveContext.eventChkInf[1] |= 0x40;
ret = 0;
break;
case 32:
ret = 2;
break;
default:
ret = 0;
break;
}
break;
case 4:
case 5:
if (func_80106BC8(globalCtx) != 0) {
ret = 2;
}
break;
case 6:
if (func_80106BC8(globalCtx) != 0) {
ret = 3;
}
break;
case 0:
case 1:
case 3:
case 7:
case 8:
case 9:
ret = 1;
break;
}
return ret;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0EA0.s")
s32 func_80AA08C4(EnMa1* this, GlobalContext* globalCtx) {
if ((this->actor.shape.rot.z == 3) && (gSaveContext.sceneSetupIndex == 5)) {
return 1;
}
if (gSaveContext.linkAge != 1) {
return 0;
}
if (((globalCtx->sceneNum == SCENE_MARKET_NIGHT) || (globalCtx->sceneNum == SCENE_MARKET_DAY)) &&
(!(gSaveContext.eventChkInf[1] & 0x10)) && (!(gSaveContext.infTable[8] & 0x800))) {
return 1;
}
if ((globalCtx->sceneNum == SCENE_SPOT15) && (!(gSaveContext.eventChkInf[1] & 0x10))) {
if (gSaveContext.infTable[8] & 0x800) {
return 1;
} else {
gSaveContext.infTable[8] |= 0x800;
return 0;
}
}
if ((globalCtx->sceneNum == SCENE_SOUKO) && (gSaveContext.nightFlag == 1) && (gSaveContext.eventChkInf[1] & 0x10)) {
return 1;
}
if (globalCtx->sceneNum != SCENE_SPOT20) {
return 0;
}
if ((this->actor.shape.rot.z == 3) && (gSaveContext.nightFlag == 0) && (gSaveContext.eventChkInf[1] & 0x10)) {
return 1;
}
return 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0EFC.s")
void func_80AA0A0C(EnMa1* this) {
if (DECR(this->unk_1E2) == 0) {
this->unk_1E4 += 1;
if (this->unk_1E4 >= 3) {
this->unk_1E2 = Math_Rand_S16Offset(0x1E, 0x1E);
this->unk_1E4 = 0;
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA0F44.s")
void func_80AA0A84(EnMa1* this, UNK_TYPE idx) {
f32 frameCount = SkelAnime_GetFrameCount(&D_80AA1678[idx].animation->genericHeader);
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA106C.s")
SkelAnime_ChangeAnim(&this->skelAnime, D_80AA1678[idx].animation, 1.0f, 0.0f, frameCount, D_80AA1678[idx].unk_08,
D_80AA1678[idx].transitionRate);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA10EC.s")
void func_80AA0AF4(EnMa1* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
s16 phi_a3;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA1150.s")
if ((this->unk_1E8.unk_00 == 0) && (this->skelAnime.animCurrentSeg == &D_06008D64)) {
phi_a3 = 1;
} else {
phi_a3 = 0;
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA11C8.s")
this->unk_1E8.unk_18 = player->actor.posRot.pos;
this->unk_1E8.unk_18.y -= -10.0f;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/EnMa1_Update.s")
func_80034A14(&this->actor, &this->unk_1E8, 0, phi_a3);
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA12BC.s")
void func_80AA0B74(EnMa1* this) {
if (this->skelAnime.animCurrentSeg == &D_06008D64) {
if (this->unk_1E8.unk_00 == 0) {
if (this->unk_1E0 != 0) {
this->unk_1E0 = 0;
func_800F6584(0);
}
} else {
if (this->unk_1E0 == 0) {
this->unk_1E0 = 1;
func_800F6584(1);
}
}
}
}
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/func_80AA1448.s")
void EnMa1_Init(EnMa1* this, GlobalContext* globalCtx) {
s32 pad;
ColliderCylinder* collider = &this->collider;
#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Ma1/EnMa1_Draw.s")
ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawFunc_Circle, 18.0f);
SkelAnime_InitSV(globalCtx, &this->skelAnime, &D_06008460, NULL, NULL, NULL, 0);
Collider_InitCylinder(globalCtx, collider);
Collider_SetCylinder(globalCtx, collider, &this->actor, &cylinderInit);
func_80061EFC(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80AA166C);
if (!func_80AA08C4(this, globalCtx)) {
Actor_Kill(&this->actor);
return;
}
func_8002E4B4(globalCtx, &this->actor, 0.0f, 0.0f, 0.0f, 4);
Actor_SetScale(&this->actor, 0.01f);
this->actor.unk_1F = 6;
this->unk_1E8.unk_00 = 0;
if ((!(gSaveContext.eventChkInf[1] & 0x10)) || (CHECK_QUEST_ITEM(QUEST_SONG_EPONA))) {
this->actionFunc = (ActorFunc)func_80AA0D88;
func_80AA0A84(this, 2);
} else {
this->actionFunc = (ActorFunc)func_80AA0F44;
func_80AA0A84(this, 2);
}
}
void EnMa1_Destroy(EnMa1* this, GlobalContext* globalCtx) {
SkelAnime_Free(&this->skelAnime, globalCtx);
Collider_DestroyCylinder(globalCtx, &this->collider);
}
void func_80AA0D88(EnMa1* this, GlobalContext* globalCtx) {
if (this->unk_1E8.unk_00 != 0) {
if (this->skelAnime.animCurrentSeg != &D_06000820) {
func_80AA0A84(this, 1);
}
} else {
if (this->skelAnime.animCurrentSeg != &D_06008D64) {
func_80AA0A84(this, 3);
}
}
if ((globalCtx->sceneNum == SCENE_SPOT15) && (gSaveContext.eventChkInf[1] & 0x10)) {
Actor_Kill(&this->actor);
} else if ((!(gSaveContext.eventChkInf[1] & 0x10)) || (CHECK_QUEST_ITEM(QUEST_SONG_EPONA))) {
if (this->unk_1E8.unk_00 == 2) {
this->actionFunc = (ActorFunc)func_80AA0EA0;
globalCtx->msgCtx.unk_E3E7 = 4;
globalCtx->msgCtx.msgMode = 0x36;
}
}
}
void func_80AA0EA0(EnMa1* this, GlobalContext* globalCtx) {
if (func_8002F410(&this->actor, globalCtx)) {
this->actor.attachedA = NULL;
this->actionFunc = (ActorFunc)func_80AA0EFC;
} else {
func_8002F434(&this->actor, globalCtx, GI_WEIRD_EGG, 120.0f, 10.0f);
}
}
void func_80AA0EFC(EnMa1* this, GlobalContext* globalCtx) {
if (this->unk_1E8.unk_00 == 3) {
this->unk_1E8.unk_00 = 0;
this->actionFunc = (ActorFunc)func_80AA0D88;
gSaveContext.eventChkInf[1] |= 4;
globalCtx->msgCtx.msgMode = 0x36;
}
}
void func_80AA0F44(EnMa1* this, GlobalContext* globalCtx) {
Player* player = PLAYER;
if (this->unk_1E8.unk_00 != 0) {
if (this->skelAnime.animCurrentSeg != &D_06000820) {
func_80AA0A84(this, 1);
}
} else {
if (this->skelAnime.animCurrentSeg != &D_06008D64) {
func_80AA0A84(this, 3);
}
}
if (gSaveContext.eventChkInf[1] & 0x40) {
if (player->stateFlags2 & 0x1000000) {
player->stateFlags2 |= 0x2000000;
player->unk_6A8 = &this->actor;
this->actor.textId = 0x2061;
func_8010B680(globalCtx, this->actor.textId, 0);
this->unk_1E8.unk_00 = 1;
this->actor.flags |= 0x10000;
this->actionFunc = (ActorFunc)func_80AA106C;
} else if (this->actor.xzDistanceFromLink < 30.0f + (f32)this->collider.dim.radius) {
player->stateFlags2 |= 0x800000;
}
}
}
void func_80AA106C(EnMa1* this, GlobalContext* globalCtx) {
PLAYER->stateFlags2 |= 0x800000;
if (this->unk_1E8.unk_00 == 2) {
func_800ED858(2);
func_8010BD58(globalCtx, 9);
this->actor.flags &= ~0x10000;
this->actionFunc = (ActorFunc)func_80AA10EC;
}
}
void func_80AA10EC(EnMa1* this, GlobalContext* globalCtx) {
PLAYER->stateFlags2 |= 0x800000;
if (func_8010BDBC(&globalCtx->msgCtx) == 7) {
func_8010BD58(globalCtx, 0x16);
this->actionFunc = (ActorFunc)func_80AA1150;
}
}
void func_80AA1150(EnMa1* this, GlobalContext* globalCtx) {
PLAYER->stateFlags2 |= 0x800000;
if (globalCtx->msgCtx.unk_E3EE == 3) {
globalCtx->nextEntranceIndex = 0x157;
gSaveContext.nextCutsceneIndex = 0xFFF1;
globalCtx->fadeTransition = 42;
globalCtx->sceneLoadFlag = 0x14;
this->actionFunc = (ActorFunc)func_80AA11C8;
}
}
void func_80AA11C8(EnMa1* this, GlobalContext* globalCtx) {
}
void EnMa1_Update(EnMa1* this, GlobalContext* globalCtx) {
ColliderCylinder* collider = &this->collider;
s32 pad;
Collider_CylinderUpdate(&this->actor, collider);
CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &collider->base);
SkelAnime_FrameUpdateMatrix(&this->skelAnime);
func_80AA0A0C(this);
this->actionFunc(this, globalCtx);
if (this->actionFunc != (ActorFunc)func_80AA11C8) {
func_800343CC(globalCtx, &this->actor, &this->unk_1E8.unk_00, (f32)this->collider.dim.radius + 30.0f,
EnMa1_GetText, func_80AA0778);
}
func_80AA0B74(this);
func_80AA0AF4(this, globalCtx);
}
s32 EnMa1_OverrideLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3f* pos, Vec3s* rot, Actor* this) {
EnMa1* thisx = (EnMa1*)this;
Vec3s tempVec;
if ((limbIndex == 2) || (limbIndex == 5)) {
*dList = NULL;
}
if (limbIndex == 15) {
Matrix_Translate(1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
tempVec = thisx->unk_1E8.unk_08;
Matrix_RotateX(((f32)tempVec.y / 32768.0f) * M_PI, MTXMODE_APPLY);
Matrix_RotateZ(((f32)tempVec.x / 32768.0f) * M_PI, MTXMODE_APPLY);
Matrix_Translate(-1400.0f, 0.0f, 0.0f, MTXMODE_APPLY);
}
if (limbIndex == 8) {
tempVec = thisx->unk_1E8.unk_0E;
Matrix_RotateX(((f32)(0 - tempVec.y) / 32768.0f) * M_PI, MTXMODE_APPLY);
Matrix_RotateZ(((f32)(0 - tempVec.x) / 32768.0f) * M_PI, MTXMODE_APPLY);
}
return 0;
}
void EnMa1_PostLimbDraw(GlobalContext* globalCtx, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* actor) {
s32 pad;
Vec3f vec = D_80AA16B8;
if (limbIndex == 15) {
Matrix_MultVec3f(&vec, &actor->posRot2.pos);
}
}
void EnMa1_Draw(EnMa1* this, GlobalContext* globalCtx) {
Camera* camera;
f32 someFloat;
GraphicsContext* gfxCtx = globalCtx->state.gfxCtx;
Gfx* dispRefs[6];
Graph_OpenDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ma1.c", 1226);
camera = globalCtx->cameraPtrs[globalCtx->activeCamera];
someFloat = Math_Vec3f_DistXZ(&this->actor.posRot.pos, &camera->unk_5C);
func_800F6268(someFloat, 0x2F);
func_80093D18(globalCtx->state.gfxCtx);
gSPSegment(gfxCtx->polyOpa.p++, 0x09, SEGMENTED_TO_VIRTUAL(D_80AA16C4[this->unk_1E6]));
gSPSegment(gfxCtx->polyOpa.p++, 0x08, SEGMENTED_TO_VIRTUAL(D_80AA16D0[this->unk_1E4]));
SkelAnime_DrawSV(globalCtx, this->skelAnime.skeleton, this->skelAnime.limbDrawTbl, this->skelAnime.dListCount,
EnMa1_OverrideLimbDraw, EnMa1_PostLimbDraw, &this->actor);
Graph_CloseDisps(dispRefs, globalCtx->state.gfxCtx, "../z_en_ma1.c", 1261);
}

View file

@ -6,7 +6,14 @@
typedef struct {
/* 0x0000 */ Actor actor;
/* 0x014C */ char unk_14C[0xC4];
/* 0x014C */ SkelAnime skelAnime;
/* 0x0190 */ ActorFunc actionFunc;
/* 0x0194 */ ColliderCylinder collider;
/* 0x01E0 */ s16 unk_1E0;
/* 0x01E2 */ s16 unk_1E2;
/* 0x01E4 */ s16 unk_1E4;
/* 0x01E6 */ s16 unk_1E6;
/* 0x01E8 */ struct_80034A14_arg1 unk_1E8;
} EnMa1; // size = 0x0210
extern const ActorInit En_Ma1_InitVars;

View file

@ -52,7 +52,6 @@ typedef struct {
/* 0x0364 */ Vec3f unk_364;
/* 0x0370 */ f32 unk_370;
/* 0x0374 */ struct_80034A14_arg1 unk_374;
/* 0x0398 */ char unk_398[0x4]; // probably belongs to previous struct
} EnRu1; // size = 0x039C
extern const ActorInit En_Ru1_InitVars;

View file

@ -10,121 +10,6 @@ root_dir = script_dir + "/../"
data_dir = root_dir + "data/"
asm_dir = root_dir + "asm/"
floats = {}
floats["0x3F800000"] = "1.0"
floats["0x46EC7A00"] = "30269.0"
floats["0x46ECC600"] = "30307.0"
floats["0x46ECE600"] = "30323.0"
floats["0x3B23D70A"] = "0.0025"
floats["0x3D4CCCCD"] = "0.05"
floats["0x3DCCCCCD"] = "0.1"
floats["0x451C4000"] = "2500.0"
floats["0x453B8000"] = "3000.0"
floats["0x44BB8000"] = "1500.0"
floats["0x3FCCCCCD"] = "1.6"
floats["0x3E99999A"] = "0.3"
floats["0x40C90FDB"] = "6.28318548203"
floats["0x3DA3D70A"] = "0.08"
floats["0x3F333333"] = "0.7"
floats["0x3F19999A"] = "0.6"
floats["0x40133333"] = "2.3"
floats["0x40933333"] = "4.6"
floats["0x44758000"] = "982.0"
floats["0x409FFFEB"] = "4.99998998642"
floats["0x40FFFFEB"] = "7.99998998642"
floats["0x3F3AE148"] = "0.73"
floats["0x3A83126F"] = "0.001"
floats["0x494EA400"] = "846400.0"
floats["0x3DE147AE"] = "0.11"
floats["0x3C23D70B"] = "0.0100000007078"
floats["0x3E16872B"] = "0.147"
floats["0x3B03126F"] = "0.002"
floats["0x40490FDB"] = "3.14159274101"
floats["0xC49C4000"] = "-1250.0"
floats["0x3FC90FDB"] = "1.57079637051"
floats["0x44278000"] = "670.0"
floats["0x3CA3D70A"] = "0.02"
floats["0x3F7851EC"] = "0.97"
floats["0x3E999999"] = "0.299999982119"
floats["0x3E4CCCCD"] = "0.2"
floats["0x3B83126E"] = "0.00399999972433"
floats["0x3F59999A"] = "0.85"
floats["0x38C90FDB"] = "9.58738019108e-05"
floats["0x3D23D70A"] = "0.04"
floats["0xC4548000"] = "-850.0"
floats["0x45034000"] = "2100.0"
floats["0xBC23D70A"] = "-0.01"
floats["0x3C23D70A"] = "0.01"
floats["0x3CCCCCCD"] = "0.025"
floats["0xBCF5C28F"] = "-0.03"
floats["0x3FE1307A"] = "1.75929188728"
floats["0x3FA4DEEC"] = "1.28805303574"
floats["0xBF20D97B"] = "-0.628318488598"
floats["0x3EF1463A"] = "0.471238911152"
floats["0x3F333334"] = "0.700000047684"
floats["0x407FEF9E"] = "3.99900007248"
floats["0x3FF33333"] = "1.9"
floats["0x3F666666"] = "0.9"
floats["0x44A8C000"] = "1350.0"
floats["0x44898000"] = "1100.0"
floats["0x40C8F5C3"] = "6.28"
floats["0x48742400"] = "250000.0"
floats["0xBF060A92"] = "-0.523598790169"
floats["0x3C888889"] = "0.0166666675359"
floats["0x3F4CCCCD"] = "0.8"
floats["0x3FFFDF3B"] = "1.99899995327"
floats["0x3A031270"] = "0.000500000081956"
floats["0x3F99999A"] = "1.2"
floats["0x471C4000"] = "40000.0"
floats["0x45992000"] = "4900.0"
floats["0x461C4000"] = "10000.0"
floats["0x3E19999A"] = "0.15"
floats["0x448FC000"] = "1150.0"
floats["0x3727C5AC"] = "9.99999974738e-06"
floats["0x358637BD"] = "9.99999997475e-07"
floats["0xBF99999A"] = "-1.2"
floats["0x3F8CCCCD"] = "1.1"
floats["0x40066666"] = "2.1"
floats["0x3ECCCCCD"] = "0.4"
floats["0x44A28000"] = "1300.0"
floats["0x3CF5C28F"] = "0.03"
floats["0x43A6AAAB"] = "333.333343506"
floats["0x3BA3D70A"] = "0.005"
floats["0x3C03126F"] = "0.008"
floats["0x459C4000"] = "5000.0"
floats["0x3FAAAAA8"] = "1.33333301544"
floats["0x3FD9999A"] = "1.7"
floats["0x45DAC000"] = "7000.0"
floats["0x4016CBE4"] = "2.35619449615"
floats["0x49095440"] = "562500.0"
floats["0x45BB8000"] = "6000.0"
floats["0x3FB33333"] = "1.4"
floats["0x3C134ACB"] = "0.00899"
floats["0x458CA000"] = "4500.0"
floats["0x3FA66666"] = "1.3"
floats["0xBF4CCCCD"] = "-0.8"
floats["0xBF666666"] = "-0.9"
floats["0xBF59999A"] = "-0.85"
floats["0x3FFEB852"] = "1.99000000954"
floats["0x404CCCCD"] = "3.2"
floats["0xBB449BA6"] = "-0.003"
floats["0x3D99999A"] = "0.075"
floats["0x3D0F5C29"] = "0.035"
floats["0xBFC90FDB"] = "-1.57079637051"
floats["0xB8D1B717"] = "-9.99999974738e-05"
floats["0x3B59E83E"] = "0.003325"
floats["0x3B9BA5E3"] = "0.00475"
floats["0x3AC49BA6"] = "0.0015"
floats["0x3CA3D70B"] = "0.0200000014156"
floats["0x4316199A"] = "150.1"
floats["0x3FD5DCA8"] = "1.67079639435"
floats["0xB8C90FDB"] = "-9.58738019108e-05"
floats["0x3B6BEDFA"] = "0.0036"
floats["0x3DF5C28F"] = "0.12"
floats["0x3B30F27C"] = "0.0027"
floats["0xC3E28000"] = "-453.0"
floats["0xC4DC2000"] = "-1761.0"
floats["0x449FC000"] = "1278.0"
def try_text(text_bytes):
bad_bytes = 0
for byte in text_bytes:
@ -156,8 +41,6 @@ def is_zeros(stuff):
def try_float(word):
if (word in floats):
return floats[word]
if (word[:3] == "0x3") or (word[:3] == "0x4") or \
(word[:3] == "0xB") or (word[:3] == "0xC"):
return struct.unpack('!f', bytes.fromhex(word[2:10]))[0]

View file

@ -0,0 +1,129 @@
#!/usr/bin/python3
import os
import sys
import subprocess
import re
import shlex
from disassemble import get_z_name
script_dir = os.path.dirname(os.path.realpath(__file__))
root_dir = script_dir + "/../"
build_dir = root_dir + "build/"
src_dir = root_dir + "src/"
def find_build_command_line(c_file):
rel_c_file = os.path.relpath(c_file, root_dir)
make_cmd = ["make", "--always-make", "--dry-run", "--debug=j", "PERMUTER=1"]
debug_output = (
subprocess.check_output(make_cmd, cwd=root_dir).decode("utf-8").split("\n")
)
output = []
for line in debug_output:
while "//" in line:
line = line.replace("//", "/")
while "/./" in line:
line = line.replace("/./", "/")
if rel_c_file not in line:
continue
parts = shlex.split(line)
if rel_c_file not in parts:
continue
if "-o" not in parts:
continue
if "-fsyntax-only" in parts:
continue
output.append(line)
if len(output) > 1:
output_lines = "\n".join(output)
print(
f"Error: found multiple compile commands for {rel_c_file}:\n{output_lines}\n"
"Please modify the makefile such that if PERMUTER = 1, "
"only a single compile command is included.",
file=sys.stderr,
)
sys.exit(1)
return output[0]
def import_c_file(compiler, in_file):
in_file = os.path.relpath(in_file, root_dir)
include_next = 0
cpp_command = ["cpp", "-P"]
compiler_split = compiler.split(" ")
for arg in compiler_split:
if include_next > 0:
include_next -= 1
cpp_command.append(arg)
continue
if arg in ["-D", "-U", "-I"]:
cpp_command.append(arg)
include_next = 1
continue
if (
arg.startswith("-D")
or arg.startswith("-U")
or arg.startswith("-I")
or arg in ["-nostdinc"]
):
cpp_command.append(arg)
cpp_command.extend(
[
"-undef",
"-D__sgi",
"-D_LANGUAGE_C",
"-DNON_MATCHING",
"-D_Static_assert(x, y)=",
"-D__attribute__(x)=",
]
)
cpp_command.append(in_file)
try:
return subprocess.check_output(cpp_command, cwd=root_dir, encoding="utf-8")
except subprocess.CalledProcessError:
print(
"Failed to preprocess input file, when running command:\n"
+ cpp_command,
file=sys.stderr,
)
sys.exit(1)
def get_c_dir(dirname):
for root, dirs, files in os.walk(src_dir):
for dir in dirs:
if dir == dirname:
return os.path.join(root, dir)
def get_c_file(dir):
for root, dirs, files in os.walk(dir):
for file in files:
if file.endswith(".c") and "data" not in file:
return file
def main():
target_script = sys.argv[1]
this_dir = os.getcwd().split("/")[-1]
c_dir_path = get_c_dir(this_dir)
c_file = get_c_file(c_dir_path)
c_file_path = os.path.join(c_dir_path, c_file)
compiler = find_build_command_line(c_file_path)
output = import_c_file(compiler, c_file_path)
with open(os.path.join(build_dir, "ctx.c"), "w") as f:
f.write(output)
if __name__ == "__main__":
main()

View file

@ -1,3 +1,5 @@
#!/usr/bin/env python3
import struct
T_DEFAULT = ''
@ -8,7 +10,7 @@ TYPE_ENUM = [
"COLTYPE_UNK0",
"COLTYPE_UNK1",
"COLTYPE_UNK2",
"COLTYPE_UNK3",
"COLTYPE_UNK3",
"COLTYPE_UNK4",
"COLTYPE_UNK5",
"COLTYPE_UNK6",
@ -17,14 +19,14 @@ TYPE_ENUM = [
"COLTYPE_METAL_SHIELD",
"COLTYPE_UNK10",
"COLTYPE_WOODEN_SHIELD",
"COLTYPE_UNK12",
"COLTYPE_UNK12",
"COLTYPE_UNK13" ]
SHAPE_ENUM = [
SHAPE_ENUM = [
"COLSHAPE_JNTSPH",
"COLSHAPE_CYLINDER",
"COLSHAPE_TRIS",
"COLSHAPE_QUAD" ]
"COLSHAPE_QUAD" ]
sf_ColliderInit = ">BBBBBB"
sf_ColliderInit_Set3 = ">BBBBB"
@ -40,7 +42,7 @@ sf_Quad = ">12f"
f_ColliderInit = "{{ {0}, 0x{1:02X}, 0x{2:02X}, 0x{3:02X}, 0x{4:02X}, {5} }}"
f_ColliderInit_Set3 = "{{ {0}, 0x{1:02X}, 0x{2:02X}, 0x{3:02X}, {4} }}"
f_ColliderInit_Actor = "{{ {0}, 0x{1:02X}, 0x{2:02X}, 0x{3:02X}, {4} }}"
f_ColliderBodyInit = "{{ 0x{0:02X}, {{ 0x{1:08X}, 0x{2:02X}, 0x{3:02X} }}, {{ 0x{4:08X}, 0x{5:02X}, 0x{6:02X} }}, 0x{7:02X} 0x{8:02X} 0x{9:02X} }}"
f_ColliderBodyInit = "{{ 0x{0:02X}, {{ 0x{1:08X}, 0x{2:02X}, 0x{3:02X} }}, {{ 0x{4:08X}, 0x{5:02X}, 0x{6:02X} }}, 0x{7:02X}, 0x{8:02X}, 0x{9:02X} }}"
f_JntSph = "{{ {0}, D_{1:08X} }}"
f_JntSphItem = "{{ {0}, {{ {{ {1}, {2}, {3} }}, {4} }}, {5} }}"
f_Cylinder16 = "{{ {0}, {1}, {2}, {{ {3}, {4}, {5} }} }}"
@ -56,7 +58,7 @@ def GetColliderFormat(type):
if type == T_ACTOR:
return (sf_ColliderInit_Actor, f_ColliderInit_Actor)
return None
def GetColliderStr(data, off, type):
cf = GetColliderFormat(type)
cBase = list(struct.unpack_from(cf[0], data, off))
@ -70,16 +72,16 @@ def GetColliderStr(data, off, type):
cBase[0] = TYPE_ENUM[cBase[0]]
else:
cBase[0] = '0x{0:02X}'.format(cBase[0])
i = 4
if type == T_DEFAULT:
i = 5
if cBase[i] < 4:
cBase[i] = SHAPE_ENUM[cBase[i]]
else:
cBase[i] = '0x{0:02X}'.format(cBase[i])
return cf[1].format(*cBase);
def GetItems(data, off, count, structf, fmt, size):
@ -94,7 +96,7 @@ def GetItems(data, off, count, structf, fmt, size):
{1},
}},'''.format(f_ColliderBodyInit.format(*cBody), fmt.format(*cItem))
return result
def GetJntSphItems(data, off, count):
items = GetItems(data, off, count, sf_JntSphItem, f_JntSphItem, 0x0C)
print('''
@ -105,7 +107,7 @@ ColliderJntSphItemInit jntsphItemsInit[{0}] = {{{1}
def GetJntSph(data, off, type):
sBase = GetColliderStr(data, off, type)
cJntSph = struct.unpack_from(sf_JntSph, data, off + 8)
print('''
ColliderJntSphInit{0} jntsphInit =
{{
@ -121,13 +123,13 @@ def GetTrisItems(data, off, count):
ColliderTrisItemInit trisItemsInit[{0}] = {{{1}
}};
'''.format(count, items))
def GetCylinder(data, off, type):
sBase = GetColliderStr(data, off, type)
cBody = struct.unpack_from(sf_ColliderBodyInit, data, off + 0x08)
cCyl16 = struct.unpack_from(sf_Cylinder16, data, off + 0x20)
print('''
ColliderCylinderInit{0} cylinderInit =
{{
@ -136,11 +138,11 @@ ColliderCylinderInit{0} cylinderInit =
{3},
}};
'''.format(type, sBase, f_ColliderBodyInit.format(*cBody),f_Cylinder16.format(*cCyl16)))
def GetTris(data, off, type):
sBase = GetColliderStr(data, off, type)
cTris = struct.unpack_from(sf_Tris, data, off + 8)
print('''
ColliderTrisInit{0} trisInit =
{{
@ -164,8 +166,8 @@ ColliderQuadInit{0} quadInit =
'''.format(type, sBase, f_ColliderBodyInit.format(*cBody), f_Quad.format(*cQuad)))
TYPE_DICT = {
'ColliderJntSphInit' : (GetCylinder, 'Shape', T_DEFAULT),
'ColliderCylinderInit' : (GetJntSph, 'Shape', T_DEFAULT),
'ColliderJntSphInit' : (GetJntSph, 'Shape', T_DEFAULT),
'ColliderCylinderInit' : (GetCylinder, 'Shape', T_DEFAULT),
'ColliderTrisInit': (GetTris, 'Shape', T_DEFAULT),
'ColliderQuadInit': (GetQuad, 'Shape', T_DEFAULT),
'ColliderJntSphItemInit' : (GetJntSphItems, 'Item'),

View file

@ -219,6 +219,11 @@ D_060074EC = 0x060074EC;
D_060038FC = 0x060038FC;
D_06002590 = 0x06002590;
// z_en_ma1
D_06000820 = 0x06000820;
D_06008460 = 0x06008460;
D_06008D64 = 0x06008D64;
// z_en_ms
D_060005EC = 0x060005EC;
D_06003DC0 = 0x06003DC0;