From 9bfad1ebd693632ea7ed409b2022445973e15698 Mon Sep 17 00:00:00 2001 From: i82orbom Date: Sun, 4 Oct 2020 18:17:54 +0200 Subject: [PATCH] z_en_kakasi.c OK (#428) * Starts decompiling z_en_kakasi * Destroy * EnKakasi_Init * func_80A8F660 * func_80A8F75C * func_80A8F28C * func_80A8F320 equivalent, non matching due to regalloc * EnKakasi_Draw * func_80A8FBB8 * func_80A8FAA4 * func_80A8F9C8 * z_en_kakasi.c OK (1 equivalent, 1 non-matching) * Fixed one non matching * z_en_kakasi.c OK * Removes unused asm * Some fixes * Additional fixes * PR fixes * Rename angle reference to yaw * Change low rotation values to decimal Co-authored-by: i82orbom --- .../actors/ovl_En_Kakasi/EnKakasi_Destroy.s | 12 - .../actors/ovl_En_Kakasi/EnKakasi_Draw.s | 50 --- .../actors/ovl_En_Kakasi/EnKakasi_Init.s | 77 ----- .../actors/ovl_En_Kakasi/EnKakasi_Update.s | 72 ---- .../actors/ovl_En_Kakasi/func_80A8F28C.s | 42 --- .../actors/ovl_En_Kakasi/func_80A8F320.s | 253 -------------- .../actors/ovl_En_Kakasi/func_80A8F660.s | 69 ---- .../actors/ovl_En_Kakasi/func_80A8F75C.s | 103 ------ .../actors/ovl_En_Kakasi/func_80A8F8D0.s | 74 ---- .../actors/ovl_En_Kakasi/func_80A8F9C8.s | 59 ---- .../actors/ovl_En_Kakasi/func_80A8FAA4.s | 81 ----- .../actors/ovl_En_Kakasi/func_80A8FBB8.s | 40 --- data/overlays/actors/z_en_kakasi.data.s | 21 -- data/overlays/actors/z_en_kakasi.reloc.s | 13 - spec | 3 +- .../actors/ovl_En_Kakasi/z_en_kakasi.c | 324 +++++++++++++++++- .../actors/ovl_En_Kakasi/z_en_kakasi.h | 20 +- undefined_syms.txt | 1 + 18 files changed, 331 insertions(+), 983 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F28C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F320.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F660.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F75C.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F8D0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F9C8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FAA4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FBB8.s delete mode 100644 data/overlays/actors/z_en_kakasi.data.s delete mode 100644 data/overlays/actors/z_en_kakasi.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Destroy.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Destroy.s deleted file mode 100644 index d9121ad8de..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Destroy.s +++ /dev/null @@ -1,12 +0,0 @@ -glabel EnKakasi_Destroy -/* 00000 80A8F170 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00004 80A8F174 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 00008 80A8F178 AFBF0014 */ sw $ra, 0x0014($sp) -/* 0000C 80A8F17C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00010 80A8F180 0C0170EB */ jal Collider_DestroyCylinder - -/* 00014 80A8F184 24C501BC */ addiu $a1, $a2, 0x01BC ## $a1 = 000001BC -/* 00018 80A8F188 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0001C 80A8F18C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00020 80A8F190 03E00008 */ jr $ra -/* 00024 80A8F194 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Draw.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Draw.s deleted file mode 100644 index b9606bf0b8..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Draw.s +++ /dev/null @@ -1,50 +0,0 @@ -.rdata -glabel D_80A8FEB8 - .asciz "\n\n" - .balign 4 - -glabel D_80A8FEBC - .asciz "\x1b[33m☆☆☆☆☆ フラグ! ☆☆☆☆☆ %d\n\x1b[m" - .balign 4 - -.text -glabel EnKakasi_Draw -/* 00BE0 80A8FD50 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00BE4 80A8FD54 3C0E8016 */ lui $t6, %hi(gGameInfo) -/* 00BE8 80A8FD58 8DCEFA90 */ lw $t6, %lo(gGameInfo)($t6) -/* 00BEC 80A8FD5C AFBF0024 */ sw $ra, 0x0024($sp) -/* 00BF0 80A8FD60 AFA40028 */ sw $a0, 0x0028($sp) -/* 00BF4 80A8FD64 AFA5002C */ sw $a1, 0x002C($sp) -/* 00BF8 80A8FD68 85CF12DA */ lh $t7, 0x12DA($t6) ## 801612DA -/* 00BFC 80A8FD6C 3C0480A9 */ lui $a0, %hi(D_80A8FEB8) ## $a0 = 80A90000 -/* 00C00 80A8FD70 51E00009 */ beql $t7, $zero, .L80A8FD98 -/* 00C04 80A8FD74 8FB8002C */ lw $t8, 0x002C($sp) -/* 00C08 80A8FD78 0C00084C */ jal osSyncPrintf - -/* 00C0C 80A8FD7C 2484FEB8 */ addiu $a0, $a0, %lo(D_80A8FEB8) ## $a0 = 80A8FEB8 -/* 00C10 80A8FD80 3C0480A9 */ lui $a0, %hi(D_80A8FEBC) ## $a0 = 80A90000 -/* 00C14 80A8FD84 3C058016 */ lui $a1, %hi(gSaveContext+0xf40) -/* 00C18 80A8FD88 90A5F5A0 */ lbu $a1, %lo(gSaveContext+0xf40)($a1) -/* 00C1C 80A8FD8C 0C00084C */ jal osSyncPrintf - -/* 00C20 80A8FD90 2484FEBC */ addiu $a0, $a0, %lo(D_80A8FEBC) ## $a0 = 80A8FEBC -/* 00C24 80A8FD94 8FB8002C */ lw $t8, 0x002C($sp) -.L80A8FD98: -/* 00C28 80A8FD98 0C024F46 */ jal func_80093D18 -/* 00C2C 80A8FD9C 8F040000 */ lw $a0, 0x0000($t8) ## 00000000 -/* 00C30 80A8FDA0 8FA20028 */ lw $v0, 0x0028($sp) -/* 00C34 80A8FDA4 8FA4002C */ lw $a0, 0x002C($sp) -/* 00C38 80A8FDA8 8C450154 */ lw $a1, 0x0154($v0) ## 00000154 -/* 00C3C 80A8FDAC 8C460170 */ lw $a2, 0x0170($v0) ## 00000170 -/* 00C40 80A8FDB0 90470152 */ lbu $a3, 0x0152($v0) ## 00000152 -/* 00C44 80A8FDB4 AFA00014 */ sw $zero, 0x0014($sp) -/* 00C48 80A8FDB8 AFA00010 */ sw $zero, 0x0010($sp) -/* 00C4C 80A8FDBC 0C0286B2 */ jal SkelAnime_DrawSV -/* 00C50 80A8FDC0 AFA20018 */ sw $v0, 0x0018($sp) -/* 00C54 80A8FDC4 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00C58 80A8FDC8 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00C5C 80A8FDCC 03E00008 */ jr $ra -/* 00C60 80A8FDD0 00000000 */ nop -/* 00C64 80A8FDD4 00000000 */ nop -/* 00C68 80A8FDD8 00000000 */ nop -/* 00C6C 80A8FDDC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Init.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Init.s deleted file mode 100644 index 4b8541023d..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Init.s +++ /dev/null @@ -1,77 +0,0 @@ -.rdata -glabel D_80A8FE30 - .asciz "\n\n" - .balign 4 - -glabel D_80A8FE34 - .asciz "\x1b[33m☆☆☆☆☆ Let’s DANCE! ☆☆☆☆☆ %f\n\x1b[m" - .balign 4 - -.text -glabel EnKakasi_Init -/* 00028 80A8F198 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 0002C 80A8F19C AFB00028 */ sw $s0, 0x0028($sp) -/* 00030 80A8F1A0 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00034 80A8F1A4 AFBF002C */ sw $ra, 0x002C($sp) -/* 00038 80A8F1A8 3C0480A9 */ lui $a0, %hi(D_80A8FE30) ## $a0 = 80A90000 -/* 0003C 80A8F1AC AFA5003C */ sw $a1, 0x003C($sp) -/* 00040 80A8F1B0 0C00084C */ jal osSyncPrintf - -/* 00044 80A8F1B4 2484FE30 */ addiu $a0, $a0, %lo(D_80A8FE30) ## $a0 = 80A8FE30 -/* 00048 80A8F1B8 C6040028 */ lwc1 $f4, 0x0028($s0) ## 00000028 -/* 0004C 80A8F1BC 3C0480A9 */ lui $a0, %hi(D_80A8FE34) ## $a0 = 80A90000 -/* 00050 80A8F1C0 2484FE34 */ addiu $a0, $a0, %lo(D_80A8FE34) ## $a0 = 80A8FE34 -/* 00054 80A8F1C4 460021A1 */ cvt.d.s $f6, $f4 -/* 00058 80A8F1C8 44073000 */ mfc1 $a3, $f6 -/* 0005C 80A8F1CC 44063800 */ mfc1 $a2, $f7 -/* 00060 80A8F1D0 0C00084C */ jal osSyncPrintf - -/* 00064 80A8F1D4 00000000 */ nop -/* 00068 80A8F1D8 260501BC */ addiu $a1, $s0, 0x01BC ## $a1 = 000001BC -/* 0006C 80A8F1DC AFA50030 */ sw $a1, 0x0030($sp) -/* 00070 80A8F1E0 0C0170D9 */ jal Collider_InitCylinder - -/* 00074 80A8F1E4 8FA4003C */ lw $a0, 0x003C($sp) -/* 00078 80A8F1E8 3C0780A9 */ lui $a3, %hi(D_80A8FDE0) ## $a3 = 80A90000 -/* 0007C 80A8F1EC 8FA50030 */ lw $a1, 0x0030($sp) -/* 00080 80A8F1F0 24E7FDE0 */ addiu $a3, $a3, %lo(D_80A8FDE0) ## $a3 = 80A8FDE0 -/* 00084 80A8F1F4 8FA4003C */ lw $a0, 0x003C($sp) -/* 00088 80A8F1F8 0C01712B */ jal Collider_SetCylinder - -/* 0008C 80A8F1FC 02003025 */ or $a2, $s0, $zero ## $a2 = 00000000 -/* 00090 80A8F200 240E0006 */ addiu $t6, $zero, 0x0006 ## $t6 = 00000006 -/* 00094 80A8F204 A20E001F */ sb $t6, 0x001F($s0) ## 0000001F -/* 00098 80A8F208 3C060600 */ lui $a2, 0x0600 ## $a2 = 06000000 -/* 0009C 80A8F20C 3C070600 */ lui $a3, 0x0600 ## $a3 = 06000000 -/* 000A0 80A8F210 24E70214 */ addiu $a3, $a3, 0x0214 ## $a3 = 06000214 -/* 000A4 80A8F214 24C665B0 */ addiu $a2, $a2, 0x65B0 ## $a2 = 060065B0 -/* 000A8 80A8F218 AFA00018 */ sw $zero, 0x0018($sp) -/* 000AC 80A8F21C AFA00014 */ sw $zero, 0x0014($sp) -/* 000B0 80A8F220 AFA00010 */ sw $zero, 0x0010($sp) -/* 000B4 80A8F224 8FA4003C */ lw $a0, 0x003C($sp) -/* 000B8 80A8F228 0C0291BE */ jal SkelAnime_InitSV -/* 000BC 80A8F22C 26050150 */ addiu $a1, $s0, 0x0150 ## $a1 = 00000150 -/* 000C0 80A8F230 8A180030 */ lwl $t8, 0x0030($s0) ## 00000030 -/* 000C4 80A8F234 9A180033 */ lwr $t8, 0x0033($s0) ## 00000033 -/* 000C8 80A8F238 8E190004 */ lw $t9, 0x0004($s0) ## 00000004 -/* 000CC 80A8F23C 240900FF */ addiu $t1, $zero, 0x00FF ## $t1 = 000000FF -/* 000D0 80A8F240 AA1801AE */ swl $t8, 0x01AE($s0) ## 000001AE -/* 000D4 80A8F244 BA1801B1 */ swr $t8, 0x01B1($s0) ## 000001B1 -/* 000D8 80A8F248 96180034 */ lhu $t8, 0x0034($s0) ## 00000034 -/* 000DC 80A8F24C 3C053C23 */ lui $a1, 0x3C23 ## $a1 = 3C230000 -/* 000E0 80A8F250 37280400 */ ori $t0, $t9, 0x0400 ## $t0 = 00000400 -/* 000E4 80A8F254 AE080004 */ sw $t0, 0x0004($s0) ## 00000004 -/* 000E8 80A8F258 A20900AE */ sb $t1, 0x00AE($s0) ## 000000AE -/* 000EC 80A8F25C 34A5D70A */ ori $a1, $a1, 0xD70A ## $a1 = 3C23D70A -/* 000F0 80A8F260 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000F4 80A8F264 0C00B58B */ jal Actor_SetScale - -/* 000F8 80A8F268 A61801B2 */ sh $t8, 0x01B2($s0) ## 000001B2 -/* 000FC 80A8F26C 3C0A80A9 */ lui $t2, %hi(func_80A8F660) ## $t2 = 80A90000 -/* 00100 80A8F270 254AF660 */ addiu $t2, $t2, %lo(func_80A8F660) ## $t2 = 80A8F660 -/* 00104 80A8F274 AE0A014C */ sw $t2, 0x014C($s0) ## 0000014C -/* 00108 80A8F278 8FBF002C */ lw $ra, 0x002C($sp) -/* 0010C 80A8F27C 8FB00028 */ lw $s0, 0x0028($sp) -/* 00110 80A8F280 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00114 80A8F284 03E00008 */ jr $ra -/* 00118 80A8F288 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Update.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Update.s deleted file mode 100644 index 193a75281b..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Update.s +++ /dev/null @@ -1,72 +0,0 @@ -glabel EnKakasi_Update -/* 00ADC 80A8FC4C 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00AE0 80A8FC50 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00AE4 80A8FC54 AFB00020 */ sw $s0, 0x0020($sp) -/* 00AE8 80A8FC58 AFA5003C */ sw $a1, 0x003C($sp) -/* 00AEC 80A8FC5C 889900B4 */ lwl $t9, 0x00B4($a0) ## 000000B4 -/* 00AF0 80A8FC60 989900B7 */ lwr $t9, 0x00B7($a0) ## 000000B7 -/* 00AF4 80A8FC64 848E0198 */ lh $t6, 0x0198($a0) ## 00000198 -/* 00AF8 80A8FC68 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00AFC 80A8FC6C A8990030 */ swl $t9, 0x0030($a0) ## 00000030 -/* 00B00 80A8FC70 B8990033 */ swr $t9, 0x0033($a0) ## 00000033 -/* 00B04 80A8FC74 949900B8 */ lhu $t9, 0x00B8($a0) ## 000000B8 -/* 00B08 80A8FC78 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001 -/* 00B0C 80A8FC7C A48F0198 */ sh $t7, 0x0198($a0) ## 00000198 -/* 00B10 80A8FC80 24050008 */ addiu $a1, $zero, 0x0008 ## $a1 = 00000008 -/* 00B14 80A8FC84 00001825 */ or $v1, $zero, $zero ## $v1 = 00000000 -/* 00B18 80A8FC88 00801025 */ or $v0, $a0, $zero ## $v0 = 00000000 -/* 00B1C 80A8FC8C A4990034 */ sh $t9, 0x0034($a0) ## 00000034 -.L80A8FC90: -/* 00B20 80A8FC90 8444019C */ lh $a0, 0x019C($v0) ## 0000019C -/* 00B24 80A8FC94 24630002 */ addiu $v1, $v1, 0x0002 ## $v1 = 00000002 -/* 00B28 80A8FC98 10800002 */ beq $a0, $zero, .L80A8FCA4 -/* 00B2C 80A8FC9C 2488FFFF */ addiu $t0, $a0, 0xFFFF ## $t0 = FFFFFFFF -/* 00B30 80A8FCA0 A448019C */ sh $t0, 0x019C($v0) ## 0000019C -.L80A8FCA4: -/* 00B34 80A8FCA4 1465FFFA */ bne $v1, $a1, .L80A8FC90 -/* 00B38 80A8FCA8 24420002 */ addiu $v0, $v0, 0x0002 ## $v0 = 00000002 -/* 00B3C 80A8FCAC 3C014270 */ lui $at, 0x4270 ## $at = 42700000 -/* 00B40 80A8FCB0 44810000 */ mtc1 $at, $f0 ## $f0 = 60.00 -/* 00B44 80A8FCB4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00B48 80A8FCB8 44050000 */ mfc1 $a1, $f0 -/* 00B4C 80A8FCBC 0C00B56E */ jal Actor_SetHeight - -/* 00B50 80A8FCC0 E60001B4 */ swc1 $f0, 0x01B4($s0) ## 000001B4 -/* 00B54 80A8FCC4 8E19014C */ lw $t9, 0x014C($s0) ## 0000014C -/* 00B58 80A8FCC8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00B5C 80A8FCCC 8FA5003C */ lw $a1, 0x003C($sp) -/* 00B60 80A8FCD0 0320F809 */ jalr $ra, $t9 -/* 00B64 80A8FCD4 00000000 */ nop -/* 00B68 80A8FCD8 0C00B638 */ jal Actor_MoveForward - -/* 00B6C 80A8FCDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00B70 80A8FCE0 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 00B74 80A8FCE4 44810000 */ mtc1 $at, $f0 ## $f0 = 50.00 -/* 00B78 80A8FCE8 3C0142C8 */ lui $at, 0x42C8 ## $at = 42C80000 -/* 00B7C 80A8FCEC 44812000 */ mtc1 $at, $f4 ## $f4 = 100.00 -/* 00B80 80A8FCF0 2409001C */ addiu $t1, $zero, 0x001C ## $t1 = 0000001C -/* 00B84 80A8FCF4 44060000 */ mfc1 $a2, $f0 -/* 00B88 80A8FCF8 44070000 */ mfc1 $a3, $f0 -/* 00B8C 80A8FCFC AFA90014 */ sw $t1, 0x0014($sp) -/* 00B90 80A8FD00 8FA4003C */ lw $a0, 0x003C($sp) -/* 00B94 80A8FD04 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00B98 80A8FD08 0C00B92D */ jal func_8002E4B4 -/* 00B9C 80A8FD0C E7A40010 */ swc1 $f4, 0x0010($sp) -/* 00BA0 80A8FD10 260601BC */ addiu $a2, $s0, 0x01BC ## $a2 = 000001BC -/* 00BA4 80A8FD14 00C02825 */ or $a1, $a2, $zero ## $a1 = 000001BC -/* 00BA8 80A8FD18 AFA60028 */ sw $a2, 0x0028($sp) -/* 00BAC 80A8FD1C 0C0189B7 */ jal Collider_CylinderUpdate - -/* 00BB0 80A8FD20 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00BB4 80A8FD24 8FA4003C */ lw $a0, 0x003C($sp) -/* 00BB8 80A8FD28 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00BBC 80A8FD2C 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 00BC0 80A8FD30 8FA60028 */ lw $a2, 0x0028($sp) -/* 00BC4 80A8FD34 0C017713 */ jal CollisionCheck_SetOC - ## CollisionCheck_setOT -/* 00BC8 80A8FD38 00812821 */ addu $a1, $a0, $at -/* 00BCC 80A8FD3C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00BD0 80A8FD40 8FB00020 */ lw $s0, 0x0020($sp) -/* 00BD4 80A8FD44 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00BD8 80A8FD48 03E00008 */ jr $ra -/* 00BDC 80A8FD4C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F28C.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F28C.s deleted file mode 100644 index bf632a6635..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F28C.s +++ /dev/null @@ -1,42 +0,0 @@ -glabel func_80A8F28C -/* 0011C 80A8F28C 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00120 80A8F290 AFBF0024 */ sw $ra, 0x0024($sp) -/* 00124 80A8F294 AFB00020 */ sw $s0, 0x0020($sp) -/* 00128 80A8F298 A48001AC */ sh $zero, 0x01AC($a0) ## 000001AC -/* 0012C 80A8F29C 44802000 */ mtc1 $zero, $f4 ## $f4 = 0.00 -/* 00130 80A8F2A0 848E01AC */ lh $t6, 0x01AC($a0) ## 000001AC -/* 00134 80A8F2A4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00138 80A8F2A8 A48001A4 */ sh $zero, 0x01A4($a0) ## 000001A4 -/* 0013C 80A8F2AC 24840168 */ addiu $a0, $a0, 0x0168 ## $a0 = 00000168 -/* 00140 80A8F2B0 3C053F00 */ lui $a1, 0x3F00 ## $a1 = 3F000000 -/* 00144 80A8F2B4 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 00148 80A8F2B8 E4840004 */ swc1 $f4, 0x0004($a0) ## 0000016C -/* 0014C 80A8F2BC 0C01E123 */ jal Math_SmoothDownscaleMaxF - -/* 00150 80A8F2C0 A48E0040 */ sh $t6, 0x0040($a0) ## 000001A8 -/* 00154 80A8F2C4 860501AE */ lh $a1, 0x01AE($s0) ## 000001AE -/* 00158 80A8F2C8 AFA00010 */ sw $zero, 0x0010($sp) -/* 0015C 80A8F2CC 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4 -/* 00160 80A8F2D0 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005 -/* 00164 80A8F2D4 0C01E1A7 */ jal Math_SmoothScaleMaxMinS - -/* 00168 80A8F2D8 24072710 */ addiu $a3, $zero, 0x2710 ## $a3 = 00002710 -/* 0016C 80A8F2DC 860501B0 */ lh $a1, 0x01B0($s0) ## 000001B0 -/* 00170 80A8F2E0 AFA00010 */ sw $zero, 0x0010($sp) -/* 00174 80A8F2E4 260400B6 */ addiu $a0, $s0, 0x00B6 ## $a0 = 000000B6 -/* 00178 80A8F2E8 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005 -/* 0017C 80A8F2EC 0C01E1A7 */ jal Math_SmoothScaleMaxMinS - -/* 00180 80A8F2F0 24072710 */ addiu $a3, $zero, 0x2710 ## $a3 = 00002710 -/* 00184 80A8F2F4 860501B2 */ lh $a1, 0x01B2($s0) ## 000001B2 -/* 00188 80A8F2F8 AFA00010 */ sw $zero, 0x0010($sp) -/* 0018C 80A8F2FC 260400B8 */ addiu $a0, $s0, 0x00B8 ## $a0 = 000000B8 -/* 00190 80A8F300 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005 -/* 00194 80A8F304 0C01E1A7 */ jal Math_SmoothScaleMaxMinS - -/* 00198 80A8F308 24072710 */ addiu $a3, $zero, 0x2710 ## $a3 = 00002710 -/* 0019C 80A8F30C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 001A0 80A8F310 8FB00020 */ lw $s0, 0x0020($sp) -/* 001A4 80A8F314 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 001A8 80A8F318 03E00008 */ jr $ra -/* 001AC 80A8F31C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F320.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F320.s deleted file mode 100644 index e285b72775..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F320.s +++ /dev/null @@ -1,253 +0,0 @@ -.late_rodata -glabel D_80A8FEE8 - .word 0x412FD70A -glabel D_80A8FEEC - .word 0x409FAE14 -glabel D_80A8FEF0 - .word 0x403F5C29 -glabel jtbl_80A8FEF4 -.word L80A8F3D8 -.word L80A8F408 -.word L80A8F424 -.word L80A8F444 -.word L80A8F464 -.word 0x00000000, 0x00000000 - -.text -glabel func_80A8F320 -/* 001B0 80A8F320 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 001B4 80A8F324 AFA60030 */ sw $a2, 0x0030($sp) -/* 001B8 80A8F328 00063400 */ sll $a2, $a2, 16 -/* 001BC 80A8F32C 3C020001 */ lui $v0, 0x0001 ## $v0 = 00010000 -/* 001C0 80A8F330 00063403 */ sra $a2, $a2, 16 -/* 001C4 80A8F334 AFBF0024 */ sw $ra, 0x0024($sp) -/* 001C8 80A8F338 AFB00020 */ sw $s0, 0x0020($sp) -/* 001CC 80A8F33C 00451021 */ addu $v0, $v0, $a1 -/* 001D0 80A8F340 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 001D4 80A8F344 10C0001C */ beq $a2, $zero, .L80A8F3B8 -/* 001D8 80A8F348 904204E8 */ lbu $v0, 0x04E8($v0) ## 000104E8 -/* 001DC 80A8F34C 848E01A2 */ lh $t6, 0x01A2($a0) ## 000001A2 -/* 001E0 80A8F350 3C0180A9 */ lui $at, %hi(D_80A8FEE8) ## $at = 80A90000 -/* 001E4 80A8F354 15C0000F */ bne $t6, $zero, .L80A8F394 -/* 001E8 80A8F358 00000000 */ nop -/* 001EC 80A8F35C 0C00CFBE */ jal Math_Rand_ZeroFloat - -/* 001F0 80A8F360 C42CFEE8 */ lwc1 $f12, %lo(D_80A8FEE8)($at) -/* 001F4 80A8F364 4600010D */ trunc.w.s $f4, $f0 -/* 001F8 80A8F368 3C0180A9 */ lui $at, %hi(D_80A8FEEC) ## $at = 80A90000 -/* 001FC 80A8F36C 44082000 */ mfc1 $t0, $f4 -/* 00200 80A8F370 00000000 */ nop -/* 00204 80A8F374 2509001E */ addiu $t1, $t0, 0x001E ## $t1 = 0000001E -/* 00208 80A8F378 A60901A2 */ sh $t1, 0x01A2($s0) ## 000001A2 -/* 0020C 80A8F37C 0C00CFBE */ jal Math_Rand_ZeroFloat - -/* 00210 80A8F380 C42CFEEC */ lwc1 $f12, %lo(D_80A8FEEC)($at) -/* 00214 80A8F384 4600018D */ trunc.w.s $f6, $f0 -/* 00218 80A8F388 440B3000 */ mfc1 $t3, $f6 -/* 0021C 80A8F38C 00000000 */ nop -/* 00220 80A8F390 A60B01A6 */ sh $t3, 0x01A6($s0) ## 000001A6 -.L80A8F394: -/* 00224 80A8F394 3C0180A9 */ lui $at, %hi(D_80A8FEF0) ## $at = 80A90000 -/* 00228 80A8F398 0C00CFBE */ jal Math_Rand_ZeroFloat - -/* 0022C 80A8F39C C42CFEF0 */ lwc1 $f12, %lo(D_80A8FEF0)($at) -/* 00230 80A8F3A0 4600020D */ trunc.w.s $f8, $f0 -/* 00234 80A8F3A4 860201A6 */ lh $v0, 0x01A6($s0) ## 000001A6 -/* 00238 80A8F3A8 440F4000 */ mfc1 $t7, $f8 -/* 0023C 80A8F3AC 00000000 */ nop -/* 00240 80A8F3B0 25F80005 */ addiu $t8, $t7, 0x0005 ## $t8 = 00000005 -/* 00244 80A8F3B4 A618019A */ sh $t8, 0x019A($s0) ## 0000019A -.L80A8F3B8: -/* 00248 80A8F3B8 2C410005 */ sltiu $at, $v0, 0x0005 -/* 0024C 80A8F3BC 1020002F */ beq $at, $zero, .L80A8F47C -/* 00250 80A8F3C0 0002C880 */ sll $t9, $v0, 2 -/* 00254 80A8F3C4 3C0180A9 */ lui $at, %hi(jtbl_80A8FEF4) ## $at = 80A90000 -/* 00258 80A8F3C8 00390821 */ addu $at, $at, $t9 -/* 0025C 80A8F3CC 8C39FEF4 */ lw $t9, %lo(jtbl_80A8FEF4)($at) -/* 00260 80A8F3D0 03200008 */ jr $t9 -/* 00264 80A8F3D4 00000000 */ nop -glabel L80A8F3D8 -/* 00268 80A8F3D8 8608019A */ lh $t0, 0x019A($s0) ## 0000019A -/* 0026C 80A8F3DC 860A01A4 */ lh $t2, 0x01A4($s0) ## 000001A4 -/* 00270 80A8F3E0 240B0001 */ addiu $t3, $zero, 0x0001 ## $t3 = 00000001 -/* 00274 80A8F3E4 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001 -/* 00278 80A8F3E8 15400024 */ bne $t2, $zero, .L80A8F47C -/* 0027C 80A8F3EC A609019A */ sh $t1, 0x019A($s0) ## 0000019A -/* 00280 80A8F3F0 A60B01A4 */ sh $t3, 0x01A4($s0) ## 000001A4 -/* 00284 80A8F3F4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00288 80A8F3F8 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 0028C 80A8F3FC 2405286B */ addiu $a1, $zero, 0x286B ## $a1 = 0000286B -/* 00290 80A8F400 1000001F */ beq $zero, $zero, .L80A8F480 -/* 00294 80A8F404 8602019A */ lh $v0, 0x019A($s0) ## 0000019A -glabel L80A8F408 -/* 00298 80A8F408 860C019A */ lh $t4, 0x019A($s0) ## 0000019A -/* 0029C 80A8F40C 3C013F80 */ lui $at, 0x3F80 ## $at = 3F800000 -/* 002A0 80A8F410 44815000 */ mtc1 $at, $f10 ## $f10 = 1.00 -/* 002A4 80A8F414 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001 -/* 002A8 80A8F418 A60D019A */ sh $t5, 0x019A($s0) ## 0000019A -/* 002AC 80A8F41C 10000017 */ beq $zero, $zero, .L80A8F47C -/* 002B0 80A8F420 E60A01B8 */ swc1 $f10, 0x01B8($s0) ## 000001B8 -glabel L80A8F424 -/* 002B4 80A8F424 860E019A */ lh $t6, 0x019A($s0) ## 0000019A -/* 002B8 80A8F428 861801AC */ lh $t8, 0x01AC($s0) ## 000001AC -/* 002BC 80A8F42C 24191388 */ addiu $t9, $zero, 0x1388 ## $t9 = 00001388 -/* 002C0 80A8F430 25CF0001 */ addiu $t7, $t6, 0x0001 ## $t7 = 00000001 -/* 002C4 80A8F434 17000011 */ bne $t8, $zero, .L80A8F47C -/* 002C8 80A8F438 A60F019A */ sh $t7, 0x019A($s0) ## 0000019A -/* 002CC 80A8F43C 1000000F */ beq $zero, $zero, .L80A8F47C -/* 002D0 80A8F440 A61901AC */ sh $t9, 0x01AC($s0) ## 000001AC -glabel L80A8F444 -/* 002D4 80A8F444 8608019A */ lh $t0, 0x019A($s0) ## 0000019A -/* 002D8 80A8F448 860A01A8 */ lh $t2, 0x01A8($s0) ## 000001A8 -/* 002DC 80A8F44C 240B1388 */ addiu $t3, $zero, 0x1388 ## $t3 = 00001388 -/* 002E0 80A8F450 25090001 */ addiu $t1, $t0, 0x0001 ## $t1 = 00000001 -/* 002E4 80A8F454 15400009 */ bne $t2, $zero, .L80A8F47C -/* 002E8 80A8F458 A609019A */ sh $t1, 0x019A($s0) ## 0000019A -/* 002EC 80A8F45C 10000007 */ beq $zero, $zero, .L80A8F47C -/* 002F0 80A8F460 A60B01A8 */ sh $t3, 0x01A8($s0) ## 000001A8 -glabel L80A8F464 -/* 002F4 80A8F464 860C019A */ lh $t4, 0x019A($s0) ## 0000019A -/* 002F8 80A8F468 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 002FC 80A8F46C 44818000 */ mtc1 $at, $f16 ## $f16 = 2.00 -/* 00300 80A8F470 258D0001 */ addiu $t5, $t4, 0x0001 ## $t5 = 00000001 -/* 00304 80A8F474 A60D019A */ sh $t5, 0x019A($s0) ## 0000019A -/* 00308 80A8F478 E61001B8 */ swc1 $f16, 0x01B8($s0) ## 000001B8 -.L80A8F47C: -/* 0030C 80A8F47C 8602019A */ lh $v0, 0x019A($s0) ## 0000019A -.L80A8F480: -/* 00310 80A8F480 240E0008 */ addiu $t6, $zero, 0x0008 ## $t6 = 00000008 -/* 00314 80A8F484 28410009 */ slti $at, $v0, 0x0009 -/* 00318 80A8F488 14200003 */ bne $at, $zero, .L80A8F498 -/* 0031C 80A8F48C 00000000 */ nop -/* 00320 80A8F490 A60E019A */ sh $t6, 0x019A($s0) ## 0000019A -/* 00324 80A8F494 8602019A */ lh $v0, 0x019A($s0) ## 0000019A -.L80A8F498: -/* 00328 80A8F498 1040006C */ beq $v0, $zero, .L80A8F64C -/* 0032C 80A8F49C 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 00330 80A8F4A0 44819000 */ mtc1 $at, $f18 ## $f18 = -1.00 -/* 00334 80A8F4A4 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 00338 80A8F4A8 1441000B */ bne $v0, $at, .L80A8F4D8 -/* 0033C 80A8F4AC E612006C */ swc1 $f18, 0x006C($s0) ## 0000006C -/* 00340 80A8F4B0 960F0088 */ lhu $t7, 0x0088($s0) ## 00000088 -/* 00344 80A8F4B4 3C014040 */ lui $at, 0x4040 ## $at = 40400000 -/* 00348 80A8F4B8 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0034C 80A8F4BC 31F80001 */ andi $t8, $t7, 0x0001 ## $t8 = 00000001 -/* 00350 80A8F4C0 53000006 */ beql $t8, $zero, .L80A8F4DC -/* 00354 80A8F4C4 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -/* 00358 80A8F4C8 44812000 */ mtc1 $at, $f4 ## $f4 = 3.00 -/* 0035C 80A8F4CC 24051847 */ addiu $a1, $zero, 0x1847 ## $a1 = 00001847 -/* 00360 80A8F4D0 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 00364 80A8F4D4 E6040060 */ swc1 $f4, 0x0060($s0) ## 00000060 -.L80A8F4D8: -/* 00368 80A8F4D8 3C063DCC */ lui $a2, 0x3DCC ## $a2 = 3DCC0000 -.L80A8F4DC: -/* 0036C 80A8F4DC 3C073E4C */ lui $a3, 0x3E4C ## $a3 = 3E4C0000 -/* 00370 80A8F4E0 34E7CCCD */ ori $a3, $a3, 0xCCCD ## $a3 = 3E4CCCCD -/* 00374 80A8F4E4 34C6CCCD */ ori $a2, $a2, 0xCCCD ## $a2 = 3DCCCCCD -/* 00378 80A8F4E8 2604016C */ addiu $a0, $s0, 0x016C ## $a0 = 0000016C -/* 0037C 80A8F4EC 0C01E107 */ jal Math_SmoothScaleMaxF - -/* 00380 80A8F4F0 8E0501B8 */ lw $a1, 0x01B8($s0) ## 000001B8 -/* 00384 80A8F4F4 860501A8 */ lh $a1, 0x01A8($s0) ## 000001A8 -/* 00388 80A8F4F8 AFA00010 */ sw $zero, 0x0010($sp) -/* 0038C 80A8F4FC 260400B4 */ addiu $a0, $s0, 0x00B4 ## $a0 = 000000B4 -/* 00390 80A8F500 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005 -/* 00394 80A8F504 0C01E1A7 */ jal Math_SmoothScaleMaxMinS - -/* 00398 80A8F508 240703E8 */ addiu $a3, $zero, 0x03E8 ## $a3 = 000003E8 -/* 0039C 80A8F50C 860501AC */ lh $a1, 0x01AC($s0) ## 000001AC -/* 003A0 80A8F510 AFA00010 */ sw $zero, 0x0010($sp) -/* 003A4 80A8F514 260400B8 */ addiu $a0, $s0, 0x00B8 ## $a0 = 000000B8 -/* 003A8 80A8F518 24060005 */ addiu $a2, $zero, 0x0005 ## $a2 = 00000005 -/* 003AC 80A8F51C 0C01E1A7 */ jal Math_SmoothScaleMaxMinS - -/* 003B0 80A8F520 240703E8 */ addiu $a3, $zero, 0x03E8 ## $a3 = 000003E8 -/* 003B4 80A8F524 860201A8 */ lh $v0, 0x01A8($s0) ## 000001A8 -/* 003B8 80A8F528 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 003BC 80A8F52C 50400017 */ beql $v0, $zero, .L80A8F58C -/* 003C0 80A8F530 860201AC */ lh $v0, 0x01AC($s0) ## 000001AC -/* 003C4 80A8F534 861900B4 */ lh $t9, 0x00B4($s0) ## 000000B4 -/* 003C8 80A8F538 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 003CC 80A8F53C 44814000 */ mtc1 $at, $f8 ## $f8 = 50.00 -/* 003D0 80A8F540 03224023 */ subu $t0, $t9, $v0 -/* 003D4 80A8F544 44883000 */ mtc1 $t0, $f6 ## $f6 = 0.00 -/* 003D8 80A8F548 00000000 */ nop -/* 003DC 80A8F54C 46803020 */ cvt.s.w $f0, $f6 -/* 003E0 80A8F550 46000005 */ abs.s $f0, $f0 -/* 003E4 80A8F554 4608003C */ c.lt.s $f0, $f8 -/* 003E8 80A8F558 00000000 */ nop -/* 003EC 80A8F55C 4502000B */ bc1fl .L80A8F58C -/* 003F0 80A8F560 860201AC */ lh $v0, 0x01AC($s0) ## 000001AC -/* 003F4 80A8F564 44825000 */ mtc1 $v0, $f10 ## $f10 = 0.00 -/* 003F8 80A8F568 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 003FC 80A8F56C 44819000 */ mtc1 $at, $f18 ## $f18 = -1.00 -/* 00400 80A8F570 46805420 */ cvt.s.w $f16, $f10 -/* 00404 80A8F574 46128102 */ mul.s $f4, $f16, $f18 -/* 00408 80A8F578 4600218D */ trunc.w.s $f6, $f4 -/* 0040C 80A8F57C 440A3000 */ mfc1 $t2, $f6 -/* 00410 80A8F580 00000000 */ nop -/* 00414 80A8F584 A60A01A8 */ sh $t2, 0x01A8($s0) ## 000001A8 -/* 00418 80A8F588 860201AC */ lh $v0, 0x01AC($s0) ## 000001AC -.L80A8F58C: -/* 0041C 80A8F58C 50400017 */ beql $v0, $zero, .L80A8F5EC -/* 00420 80A8F590 860F01A4 */ lh $t7, 0x01A4($s0) ## 000001A4 -/* 00424 80A8F594 860B00B8 */ lh $t3, 0x00B8($s0) ## 000000B8 -/* 00428 80A8F598 3C014248 */ lui $at, 0x4248 ## $at = 42480000 -/* 0042C 80A8F59C 44815000 */ mtc1 $at, $f10 ## $f10 = 50.00 -/* 00430 80A8F5A0 01626023 */ subu $t4, $t3, $v0 -/* 00434 80A8F5A4 448C4000 */ mtc1 $t4, $f8 ## $f8 = 0.00 -/* 00438 80A8F5A8 00000000 */ nop -/* 0043C 80A8F5AC 46804020 */ cvt.s.w $f0, $f8 -/* 00440 80A8F5B0 46000005 */ abs.s $f0, $f0 -/* 00444 80A8F5B4 460A003C */ c.lt.s $f0, $f10 -/* 00448 80A8F5B8 00000000 */ nop -/* 0044C 80A8F5BC 4502000B */ bc1fl .L80A8F5EC -/* 00450 80A8F5C0 860F01A4 */ lh $t7, 0x01A4($s0) ## 000001A4 -/* 00454 80A8F5C4 44828000 */ mtc1 $v0, $f16 ## $f16 = 0.00 -/* 00458 80A8F5C8 3C01BF80 */ lui $at, 0xBF80 ## $at = BF800000 -/* 0045C 80A8F5CC 44812000 */ mtc1 $at, $f4 ## $f4 = -1.00 -/* 00460 80A8F5D0 468084A0 */ cvt.s.w $f18, $f16 -/* 00464 80A8F5D4 46049182 */ mul.s $f6, $f18, $f4 -/* 00468 80A8F5D8 4600320D */ trunc.w.s $f8, $f6 -/* 0046C 80A8F5DC 440E4000 */ mfc1 $t6, $f8 -/* 00470 80A8F5E0 00000000 */ nop -/* 00474 80A8F5E4 A60E01AC */ sh $t6, 0x01AC($s0) ## 000001AC -/* 00478 80A8F5E8 860F01A4 */ lh $t7, 0x01A4($s0) ## 000001A4 -.L80A8F5EC: -/* 0047C 80A8F5EC 51E00009 */ beql $t7, $zero, .L80A8F614 -/* 00480 80A8F5F0 C60A0168 */ lwc1 $f10, 0x0168($s0) ## 00000168 -/* 00484 80A8F5F4 861800B6 */ lh $t8, 0x00B6($s0) ## 000000B6 -/* 00488 80A8F5F8 27191000 */ addiu $t9, $t8, 0x1000 ## $t9 = 00001000 -/* 0048C 80A8F5FC A61900B6 */ sh $t9, 0x00B6($s0) ## 000000B6 -/* 00490 80A8F600 860800B6 */ lh $t0, 0x00B6($s0) ## 000000B6 -/* 00494 80A8F604 55000003 */ bnel $t0, $zero, .L80A8F614 -/* 00498 80A8F608 C60A0168 */ lwc1 $f10, 0x0168($s0) ## 00000168 -/* 0049C 80A8F60C A60001A4 */ sh $zero, 0x01A4($s0) ## 000001A4 -/* 004A0 80A8F610 C60A0168 */ lwc1 $f10, 0x0168($s0) ## 00000168 -.L80A8F614: -/* 004A4 80A8F614 2401000B */ addiu $at, $zero, 0x000B ## $at = 0000000B -/* 004A8 80A8F618 4600540D */ trunc.w.s $f16, $f10 -/* 004AC 80A8F61C 44028000 */ mfc1 $v0, $f16 -/* 004B0 80A8F620 00000000 */ nop -/* 004B4 80A8F624 00021400 */ sll $v0, $v0, 16 -/* 004B8 80A8F628 00021403 */ sra $v0, $v0, 16 -/* 004BC 80A8F62C 10410003 */ beq $v0, $at, .L80A8F63C -/* 004C0 80A8F630 24010011 */ addiu $at, $zero, 0x0011 ## $at = 00000011 -/* 004C4 80A8F634 14410003 */ bne $v0, $at, .L80A8F644 -/* 004C8 80A8F638 00000000 */ nop -.L80A8F63C: -/* 004CC 80A8F63C 0C00BE0A */ jal Audio_PlayActorSound2 - -/* 004D0 80A8F640 2405286A */ addiu $a1, $zero, 0x286A ## $a1 = 0000286A -.L80A8F644: -/* 004D4 80A8F644 0C02927F */ jal SkelAnime_FrameUpdateMatrix - -/* 004D8 80A8F648 26040150 */ addiu $a0, $s0, 0x0150 ## $a0 = 00000150 -.L80A8F64C: -/* 004DC 80A8F64C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 004E0 80A8F650 8FB00020 */ lw $s0, 0x0020($sp) -/* 004E4 80A8F654 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 004E8 80A8F658 03E00008 */ jr $ra -/* 004EC 80A8F65C 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F660.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F660.s deleted file mode 100644 index 6c6121aed5..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F660.s +++ /dev/null @@ -1,69 +0,0 @@ -glabel func_80A8F660 -/* 004F0 80A8F660 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 004F4 80A8F664 AFB00028 */ sw $s0, 0x0028($sp) -/* 004F8 80A8F668 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 004FC 80A8F66C AFBF002C */ sw $ra, 0x002C($sp) -/* 00500 80A8F670 3C040600 */ lui $a0, 0x0600 ## $a0 = 06000000 -/* 00504 80A8F674 AFA50034 */ sw $a1, 0x0034($sp) -/* 00508 80A8F678 0C028800 */ jal SkelAnime_GetFrameCount - -/* 0050C 80A8F67C 24840214 */ addiu $a0, $a0, 0x0214 ## $a0 = 06000214 -/* 00510 80A8F680 44822000 */ mtc1 $v0, $f4 ## $f4 = 0.00 -/* 00514 80A8F684 3C01C120 */ lui $at, 0xC120 ## $at = C1200000 -/* 00518 80A8F688 44819000 */ mtc1 $at, $f18 ## $f18 = -10.00 -/* 0051C 80A8F68C 468021A0 */ cvt.s.w $f6, $f4 -/* 00520 80A8F690 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 00524 80A8F694 24A50214 */ addiu $a1, $a1, 0x0214 ## $a1 = 06000214 -/* 00528 80A8F698 26040150 */ addiu $a0, $s0, 0x0150 ## $a0 = 00000150 -/* 0052C 80A8F69C 3C063F80 */ lui $a2, 0x3F80 ## $a2 = 3F800000 -/* 00530 80A8F6A0 24070000 */ addiu $a3, $zero, 0x0000 ## $a3 = 00000000 -/* 00534 80A8F6A4 4600320D */ trunc.w.s $f8, $f6 -/* 00538 80A8F6A8 AFA00014 */ sw $zero, 0x0014($sp) -/* 0053C 80A8F6AC E7B20018 */ swc1 $f18, 0x0018($sp) -/* 00540 80A8F6B0 440F4000 */ mfc1 $t7, $f8 -/* 00544 80A8F6B4 00000000 */ nop -/* 00548 80A8F6B8 000FC400 */ sll $t8, $t7, 16 -/* 0054C 80A8F6BC 0018CC03 */ sra $t9, $t8, 16 -/* 00550 80A8F6C0 44995000 */ mtc1 $t9, $f10 ## $f10 = 0.00 -/* 00554 80A8F6C4 00000000 */ nop -/* 00558 80A8F6C8 46805420 */ cvt.s.w $f16, $f10 -/* 0055C 80A8F6CC 0C029468 */ jal SkelAnime_ChangeAnim - -/* 00560 80A8F6D0 E7B00010 */ swc1 $f16, 0x0010($sp) -/* 00564 80A8F6D4 3C028016 */ lui $v0, %hi(gSaveContext) -/* 00568 80A8F6D8 24084076 */ addiu $t0, $zero, 0x4076 ## $t0 = 00004076 -/* 0056C 80A8F6DC 24090006 */ addiu $t1, $zero, 0x0006 ## $t1 = 00000006 -/* 00570 80A8F6E0 2442E660 */ addiu $v0, %lo(gSaveContext) -/* 00574 80A8F6E4 A608010E */ sh $t0, 0x010E($s0) ## 0000010E -/* 00578 80A8F6E8 A6090196 */ sh $t1, 0x0196($s0) ## 00000196 -/* 0057C 80A8F6EC 8C4A0004 */ lw $t2, 0x0004($v0) ## 8015E664 -/* 00580 80A8F6F0 3C0880A9 */ lui $t0, %hi(func_80A8F75C) ## $t0 = 80A90000 -/* 00584 80A8F6F4 240E0001 */ addiu $t6, $zero, 0x0001 ## $t6 = 00000001 -/* 00588 80A8F6F8 1140000A */ beq $t2, $zero, .L80A8F724 -/* 0058C 80A8F6FC 2508F75C */ addiu $t0, $t0, %lo(func_80A8F75C) ## $t0 = 80A8F75C -/* 00590 80A8F700 A2000194 */ sb $zero, 0x0194($s0) ## 00000194 -/* 00594 80A8F704 904B0F40 */ lbu $t3, 0x0F40($v0) ## 8015F5A0 -/* 00598 80A8F708 240C407A */ addiu $t4, $zero, 0x407A ## $t4 = 0000407A -/* 0059C 80A8F70C 240D0005 */ addiu $t5, $zero, 0x0005 ## $t5 = 00000005 -/* 005A0 80A8F710 5160000D */ beql $t3, $zero, .L80A8F748 -/* 005A4 80A8F714 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C -/* 005A8 80A8F718 A60C010E */ sh $t4, 0x010E($s0) ## 0000010E -/* 005AC 80A8F71C 10000009 */ beq $zero, $zero, .L80A8F744 -/* 005B0 80A8F720 A60D0196 */ sh $t5, 0x0196($s0) ## 00000196 -.L80A8F724: -/* 005B4 80A8F724 A20E0194 */ sb $t6, 0x0194($s0) ## 00000194 -/* 005B8 80A8F728 904F0F40 */ lbu $t7, 0x0F40($v0) ## 8015F5A0 -/* 005BC 80A8F72C 24184079 */ addiu $t8, $zero, 0x4079 ## $t8 = 00004079 -/* 005C0 80A8F730 24190005 */ addiu $t9, $zero, 0x0005 ## $t9 = 00000005 -/* 005C4 80A8F734 51E00004 */ beql $t7, $zero, .L80A8F748 -/* 005C8 80A8F738 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C -/* 005CC 80A8F73C A618010E */ sh $t8, 0x010E($s0) ## 0000010E -/* 005D0 80A8F740 A6190196 */ sh $t9, 0x0196($s0) ## 00000196 -.L80A8F744: -/* 005D4 80A8F744 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C -.L80A8F748: -/* 005D8 80A8F748 8FBF002C */ lw $ra, 0x002C($sp) -/* 005DC 80A8F74C 8FB00028 */ lw $s0, 0x0028($sp) -/* 005E0 80A8F750 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 005E4 80A8F754 03E00008 */ jr $ra -/* 005E8 80A8F758 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F75C.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F75C.s deleted file mode 100644 index bec03c8abb..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F75C.s +++ /dev/null @@ -1,103 +0,0 @@ -glabel func_80A8F75C -/* 005EC 80A8F75C 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 005F0 80A8F760 AFBF0024 */ sw $ra, 0x0024($sp) -/* 005F4 80A8F764 AFB00020 */ sw $s0, 0x0020($sp) -/* 005F8 80A8F768 AFA50034 */ sw $a1, 0x0034($sp) -/* 005FC 80A8F76C 8CAF1C44 */ lw $t7, 0x1C44($a1) ## 00001C44 -/* 00600 80A8F770 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00604 80A8F774 0C2A3CA3 */ jal func_80A8F28C -/* 00608 80A8F778 AFAF002C */ sw $t7, 0x002C($sp) -/* 0060C 80A8F77C 0C02927F */ jal SkelAnime_FrameUpdateMatrix - -/* 00610 80A8F780 26040150 */ addiu $a0, $s0, 0x0150 ## $a0 = 00000150 -/* 00614 80A8F784 2418FFFF */ addiu $t8, $zero, 0xFFFF ## $t8 = FFFFFFFF -/* 00618 80A8F788 A6180208 */ sh $t8, 0x0208($s0) ## 00000208 -/* 0061C 80A8F78C 8FA50034 */ lw $a1, 0x0034($sp) -/* 00620 80A8F790 0C00BC65 */ jal func_8002F194 -/* 00624 80A8F794 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00628 80A8F798 1040000C */ beq $v0, $zero, .L80A8F7CC -/* 0062C 80A8F79C 3C0142F0 */ lui $at, 0x42F0 ## $at = 42F00000 -/* 00630 80A8F7A0 86190196 */ lh $t9, 0x0196($s0) ## 00000196 -/* 00634 80A8F7A4 24010005 */ addiu $at, $zero, 0x0005 ## $at = 00000005 -/* 00638 80A8F7A8 3C0980A9 */ lui $t1, %hi(func_80A8F660) ## $t1 = 80A90000 -/* 0063C 80A8F7AC 17210005 */ bne $t9, $at, .L80A8F7C4 -/* 00640 80A8F7B0 2529F660 */ addiu $t1, $t1, %lo(func_80A8F660) ## $t1 = 80A8F660 -/* 00644 80A8F7B4 3C0880A9 */ lui $t0, %hi(func_80A8F9C8) ## $t0 = 80A90000 -/* 00648 80A8F7B8 2508F9C8 */ addiu $t0, $t0, %lo(func_80A8F9C8) ## $t0 = 80A8F9C8 -/* 0064C 80A8F7BC 1000003F */ beq $zero, $zero, .L80A8F8BC -/* 00650 80A8F7C0 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C -.L80A8F7C4: -/* 00654 80A8F7C4 1000003D */ beq $zero, $zero, .L80A8F8BC -/* 00658 80A8F7C8 AE09014C */ sw $t1, 0x014C($s0) ## 0000014C -.L80A8F7CC: -/* 0065C 80A8F7CC C6000090 */ lwc1 $f0, 0x0090($s0) ## 00000090 -/* 00660 80A8F7D0 44812000 */ mtc1 $at, $f4 ## $f4 = 0.00 -/* 00664 80A8F7D4 860A008A */ lh $t2, 0x008A($s0) ## 0000008A -/* 00668 80A8F7D8 860B00B6 */ lh $t3, 0x00B6($s0) ## 000000B6 -/* 0066C 80A8F7DC 4600203C */ c.lt.s $f4, $f0 -/* 00670 80A8F7E0 014B1023 */ subu $v0, $t2, $t3 -/* 00674 80A8F7E4 00021400 */ sll $v0, $v0, 16 -/* 00678 80A8F7E8 45010034 */ bc1t .L80A8F8BC -/* 0067C 80A8F7EC 00021403 */ sra $v0, $v0, 16 -/* 00680 80A8F7F0 04400004 */ bltz $v0, .L80A8F804 -/* 00684 80A8F7F4 00021823 */ subu $v1, $zero, $v0 -/* 00688 80A8F7F8 00021C00 */ sll $v1, $v0, 16 -/* 0068C 80A8F7FC 10000003 */ beq $zero, $zero, .L80A8F80C -/* 00690 80A8F800 00031C03 */ sra $v1, $v1, 16 -.L80A8F804: -/* 00694 80A8F804 00031C00 */ sll $v1, $v1, 16 -/* 00698 80A8F808 00031C03 */ sra $v1, $v1, 16 -.L80A8F80C: -/* 0069C 80A8F80C 28614300 */ slti $at, $v1, 0x4300 -/* 006A0 80A8F810 5020002B */ beql $at, $zero, .L80A8F8C0 -/* 006A4 80A8F814 8FBF0024 */ lw $ra, 0x0024($sp) -/* 006A8 80A8F818 920C0194 */ lbu $t4, 0x0194($s0) ## 00000194 -/* 006AC 80A8F81C 8FA3002C */ lw $v1, 0x002C($sp) -/* 006B0 80A8F820 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 006B4 80A8F824 15800023 */ bne $t4, $zero, .L80A8F8B4 -/* 006B8 80A8F828 3C0642C8 */ lui $a2, 0x42C8 ## $a2 = 42C80000 -/* 006BC 80A8F82C 8C620680 */ lw $v0, 0x0680($v1) ## 00000680 -/* 006C0 80A8F830 240508D4 */ addiu $a1, $zero, 0x08D4 ## $a1 = 000008D4 -/* 006C4 80A8F834 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000 -/* 006C8 80A8F838 000269C0 */ sll $t5, $v0, 7 -/* 006CC 80A8F83C 05A10015 */ bgez $t5, .L80A8F894 -/* 006D0 80A8F840 3C0142A0 */ lui $at, 0x42A0 ## $at = 42A00000 -/* 006D4 80A8F844 8FA40034 */ lw $a0, 0x0034($sp) -/* 006D8 80A8F848 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D -/* 006DC 80A8F84C 0C02003E */ jal func_800800F8 -/* 006E0 80A8F850 AFA00010 */ sw $zero, 0x0010($sp) -/* 006E4 80A8F854 A6020208 */ sh $v0, 0x0208($s0) ## 00000208 -/* 006E8 80A8F858 8FA40034 */ lw $a0, 0x0034($sp) -/* 006EC 80A8F85C 0C042F56 */ jal func_8010BD58 -/* 006F0 80A8F860 2405002A */ addiu $a1, $zero, 0x002A ## $a1 = 0000002A -/* 006F4 80A8F864 44803000 */ mtc1 $zero, $f6 ## $f6 = 0.00 -/* 006F8 80A8F868 A600019A */ sh $zero, 0x019A($s0) ## 0000019A -/* 006FC 80A8F86C 3C010080 */ lui $at, 0x0080 ## $at = 00800000 -/* 00700 80A8F870 E60601B8 */ swc1 $f6, 0x01B8($s0) ## 000001B8 -/* 00704 80A8F874 8FAE002C */ lw $t6, 0x002C($sp) -/* 00708 80A8F878 3C1980A9 */ lui $t9, %hi(func_80A8F8D0) ## $t9 = 80A90000 -/* 0070C 80A8F87C 2739F8D0 */ addiu $t9, $t9, %lo(func_80A8F8D0) ## $t9 = 80A8F8D0 -/* 00710 80A8F880 8DCF0680 */ lw $t7, 0x0680($t6) ## 00000680 -/* 00714 80A8F884 01E1C025 */ or $t8, $t7, $at ## $t8 = 00800000 -/* 00718 80A8F888 ADD80680 */ sw $t8, 0x0680($t6) ## 00000680 -/* 0071C 80A8F88C 1000000B */ beq $zero, $zero, .L80A8F8BC -/* 00720 80A8F890 AE19014C */ sw $t9, 0x014C($s0) ## 0000014C -.L80A8F894: -/* 00724 80A8F894 44814000 */ mtc1 $at, $f8 ## $f8 = 0.00 -/* 00728 80A8F898 3C010080 */ lui $at, 0x0080 ## $at = 00800000 -/* 0072C 80A8F89C 00414025 */ or $t0, $v0, $at ## $t0 = 00800000 -/* 00730 80A8F8A0 4608003C */ c.lt.s $f0, $f8 -/* 00734 80A8F8A4 00000000 */ nop -/* 00738 80A8F8A8 45000002 */ bc1f .L80A8F8B4 -/* 0073C 80A8F8AC 00000000 */ nop -/* 00740 80A8F8B0 AC680680 */ sw $t0, 0x0680($v1) ## 00000680 -.L80A8F8B4: -/* 00744 80A8F8B4 0C00BCB3 */ jal func_8002F2CC -/* 00748 80A8F8B8 8FA50034 */ lw $a1, 0x0034($sp) -.L80A8F8BC: -/* 0074C 80A8F8BC 8FBF0024 */ lw $ra, 0x0024($sp) -.L80A8F8C0: -/* 00750 80A8F8C0 8FB00020 */ lw $s0, 0x0020($sp) -/* 00754 80A8F8C4 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 -/* 00758 80A8F8C8 03E00008 */ jr $ra -/* 0075C 80A8F8CC 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F8D0.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F8D0.s deleted file mode 100644 index ca1f3b6b66..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F8D0.s +++ /dev/null @@ -1,74 +0,0 @@ -.rdata -glabel D_80A8FE70 - .asciz "\x1b[34m☆☆☆☆☆ 終り? ☆☆☆☆☆ \n\x1b[m" - .balign 4 - -.text -glabel func_80A8F8D0 -/* 00760 80A8F8D0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 00764 80A8F8D4 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00768 80A8F8D8 AFBF001C */ sw $ra, 0x001C($sp) -/* 0076C 80A8F8DC AFB00018 */ sw $s0, 0x0018($sp) -/* 00770 80A8F8E0 00A11821 */ addu $v1, $a1, $at -/* 00774 80A8F8E4 946604C6 */ lhu $a2, 0x04C6($v1) ## 000004C6 -/* 00778 80A8F8E8 24010004 */ addiu $at, $zero, 0x0004 ## $at = 00000004 -/* 0077C 80A8F8EC 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00780 80A8F8F0 00A03825 */ or $a3, $a1, $zero ## $a3 = 00000000 -/* 00784 80A8F8F4 14C10023 */ bne $a2, $at, .L80A8F984 -/* 00788 80A8F8F8 8CA21C44 */ lw $v0, 0x1C44($a1) ## 00001C44 -/* 0078C 80A8F8FC 906E03DC */ lbu $t6, 0x03DC($v1) ## 000003DC -/* 00790 80A8F900 3C0480A9 */ lui $a0, %hi(D_80A8FE70) ## $a0 = 80A90000 -/* 00794 80A8F904 2484FE70 */ addiu $a0, $a0, %lo(D_80A8FE70) ## $a0 = 80A8FE70 -/* 00798 80A8F908 55C0001F */ bnel $t6, $zero, .L80A8F988 -/* 0079C 80A8F90C 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 007A0 80A8F910 0C00084C */ jal osSyncPrintf - -/* 007A4 80A8F914 AFA5002C */ sw $a1, 0x002C($sp) -/* 007A8 80A8F918 860F019A */ lh $t7, 0x019A($s0) ## 0000019A -/* 007AC 80A8F91C 8FA7002C */ lw $a3, 0x002C($sp) -/* 007B0 80A8F920 11E00010 */ beq $t7, $zero, .L80A8F964 -/* 007B4 80A8F924 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000 -/* 007B8 80A8F928 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000 -/* 007BC 80A8F92C 0C041B33 */ jal func_80106CCC -/* 007C0 80A8F930 AFA7002C */ sw $a3, 0x002C($sp) -/* 007C4 80A8F934 8FA4002C */ lw $a0, 0x002C($sp) -/* 007C8 80A8F938 24184077 */ addiu $t8, $zero, 0x4077 ## $t8 = 00004077 -/* 007CC 80A8F93C 24190005 */ addiu $t9, $zero, 0x0005 ## $t9 = 00000005 -/* 007D0 80A8F940 A618010E */ sh $t8, 0x010E($s0) ## 0000010E -/* 007D4 80A8F944 A6190196 */ sh $t9, 0x0196($s0) ## 00000196 -/* 007D8 80A8F948 3305FFFF */ andi $a1, $t8, 0xFFFF ## $a1 = 00004077 -/* 007DC 80A8F94C 0C042DA0 */ jal func_8010B680 -/* 007E0 80A8F950 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 007E4 80A8F954 3C0880A9 */ lui $t0, %hi(func_80A8F9C8) ## $t0 = 80A90000 -/* 007E8 80A8F958 2508F9C8 */ addiu $t0, $t0, %lo(func_80A8F9C8) ## $t0 = 80A8F9C8 -/* 007EC 80A8F95C 10000015 */ beq $zero, $zero, .L80A8F9B4 -/* 007F0 80A8F960 AE08014C */ sw $t0, 0x014C($s0) ## 0000014C -.L80A8F964: -/* 007F4 80A8F964 0C0200FC */ jal func_800803F0 -/* 007F8 80A8F968 86050208 */ lh $a1, 0x0208($s0) ## 00000208 -/* 007FC 80A8F96C 3C0A80A9 */ lui $t2, %hi(func_80A8F660) ## $t2 = 80A90000 -/* 00800 80A8F970 2409FFFF */ addiu $t1, $zero, 0xFFFF ## $t1 = FFFFFFFF -/* 00804 80A8F974 254AF660 */ addiu $t2, $t2, %lo(func_80A8F660) ## $t2 = 80A8F660 -/* 00808 80A8F978 A6090208 */ sh $t1, 0x0208($s0) ## 00000208 -/* 0080C 80A8F97C 1000000D */ beq $zero, $zero, .L80A8F9B4 -/* 00810 80A8F980 AE0A014C */ sw $t2, 0x014C($s0) ## 0000014C -.L80A8F984: -/* 00814 80A8F984 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -.L80A8F988: -/* 00818 80A8F988 14C1000A */ bne $a2, $at, .L80A8F9B4 -/* 0081C 80A8F98C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00820 80A8F990 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000 -/* 00824 80A8F994 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 00828 80A8F998 0C2A3CC8 */ jal func_80A8F320 -/* 0082C 80A8F99C AFA20024 */ sw $v0, 0x0024($sp) -/* 00830 80A8F9A0 8FA20024 */ lw $v0, 0x0024($sp) -/* 00834 80A8F9A4 3C010080 */ lui $at, 0x0080 ## $at = 00800000 -/* 00838 80A8F9A8 8C4B0680 */ lw $t3, 0x0680($v0) ## 00000680 -/* 0083C 80A8F9AC 01616025 */ or $t4, $t3, $at ## $t4 = 00800000 -/* 00840 80A8F9B0 AC4C0680 */ sw $t4, 0x0680($v0) ## 00000680 -.L80A8F9B4: -/* 00844 80A8F9B4 8FBF001C */ lw $ra, 0x001C($sp) -/* 00848 80A8F9B8 8FB00018 */ lw $s0, 0x0018($sp) -/* 0084C 80A8F9BC 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00850 80A8F9C0 03E00008 */ jr $ra -/* 00854 80A8F9C4 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F9C8.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F9C8.s deleted file mode 100644 index 32c204ecc1..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F9C8.s +++ /dev/null @@ -1,59 +0,0 @@ -glabel func_80A8F9C8 -/* 00858 80A8F9C8 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 0085C 80A8F9CC AFBF0024 */ sw $ra, 0x0024($sp) -/* 00860 80A8F9D0 AFB10020 */ sw $s1, 0x0020($sp) -/* 00864 80A8F9D4 AFB0001C */ sw $s0, 0x001C($sp) -/* 00868 80A8F9D8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 0086C 80A8F9DC 0C2A3CA3 */ jal func_80A8F28C -/* 00870 80A8F9E0 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 -/* 00874 80A8F9E4 0C02927F */ jal SkelAnime_FrameUpdateMatrix - -/* 00878 80A8F9E8 26240150 */ addiu $a0, $s1, 0x0150 ## $a0 = 00000150 -/* 0087C 80A8F9EC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00880 80A8F9F0 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00884 80A8F9F4 0C00B7D5 */ jal func_8002DF54 -/* 00888 80A8F9F8 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008 -/* 0088C 80A8F9FC 0C042F6F */ jal func_8010BDBC -/* 00890 80A8FA00 260420D8 */ addiu $a0, $s0, 0x20D8 ## $a0 = 000020D8 -/* 00894 80A8FA04 862E0196 */ lh $t6, 0x0196($s1) ## 00000196 -/* 00898 80A8FA08 55C20022 */ bnel $t6, $v0, .L80A8FA94 -/* 0089C 80A8FA0C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 008A0 80A8FA10 0C041AF2 */ jal func_80106BC8 -/* 008A4 80A8FA14 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 008A8 80A8FA18 5040001E */ beql $v0, $zero, .L80A8FA94 -/* 008AC 80A8FA1C 8FBF0024 */ lw $ra, 0x0024($sp) -/* 008B0 80A8FA20 86220208 */ lh $v0, 0x0208($s1) ## 00000208 -/* 008B4 80A8FA24 2401FFFF */ addiu $at, $zero, 0xFFFF ## $at = FFFFFFFF -/* 008B8 80A8FA28 10410004 */ beq $v0, $at, .L80A8FA3C -/* 008BC 80A8FA2C 00027880 */ sll $t7, $v0, 2 -/* 008C0 80A8FA30 020FC021 */ addu $t8, $s0, $t7 -/* 008C4 80A8FA34 0C016C69 */ jal func_8005B1A4 -/* 008C8 80A8FA38 8F040790 */ lw $a0, 0x0790($t8) ## 00000790 -.L80A8FA3C: -/* 008CC 80A8FA3C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 008D0 80A8FA40 240508DE */ addiu $a1, $zero, 0x08DE ## $a1 = 000008DE -/* 008D4 80A8FA44 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D -/* 008D8 80A8FA48 02203825 */ or $a3, $s1, $zero ## $a3 = 00000000 -/* 008DC 80A8FA4C 0C02003E */ jal func_800800F8 -/* 008E0 80A8FA50 AFA00010 */ sw $zero, 0x0010($sp) -/* 008E4 80A8FA54 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 008E8 80A8FA58 A6220208 */ sh $v0, 0x0208($s1) ## 00000208 -/* 008EC 80A8FA5C 00300821 */ addu $at, $at, $s0 -/* 008F0 80A8FA60 24190037 */ addiu $t9, $zero, 0x0037 ## $t9 = 00000037 -/* 008F4 80A8FA64 A03903DC */ sb $t9, 0x03DC($at) ## 000103DC -/* 008F8 80A8FA68 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 008FC 80A8FA6C 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00900 80A8FA70 0C00B7D5 */ jal func_8002DF54 -/* 00904 80A8FA74 24060008 */ addiu $a2, $zero, 0x0008 ## $a2 = 00000008 -/* 00908 80A8FA78 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0090C 80A8FA7C 0C042F56 */ jal func_8010BD58 -/* 00910 80A8FA80 2405002B */ addiu $a1, $zero, 0x002B ## $a1 = 0000002B -/* 00914 80A8FA84 3C0880A9 */ lui $t0, %hi(func_80A8FAA4) ## $t0 = 80A90000 -/* 00918 80A8FA88 2508FAA4 */ addiu $t0, $t0, %lo(func_80A8FAA4) ## $t0 = 80A8FAA4 -/* 0091C 80A8FA8C AE28014C */ sw $t0, 0x014C($s1) ## 0000014C -/* 00920 80A8FA90 8FBF0024 */ lw $ra, 0x0024($sp) -.L80A8FA94: -/* 00924 80A8FA94 8FB0001C */ lw $s0, 0x001C($sp) -/* 00928 80A8FA98 8FB10020 */ lw $s1, 0x0020($sp) -/* 0092C 80A8FA9C 03E00008 */ jr $ra -/* 00930 80A8FAA0 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FAA4.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FAA4.s deleted file mode 100644 index c16641cdb0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FAA4.s +++ /dev/null @@ -1,81 +0,0 @@ -.rdata -glabel D_80A8FE98 - .asciz "game_play->message.msg_mode=%d\n" - .balign 4 - -.text -glabel func_80A8FAA4 -/* 00934 80A8FAA4 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 00938 80A8FAA8 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 0093C 80A8FAAC AFBF0024 */ sw $ra, 0x0024($sp) -/* 00940 80A8FAB0 AFB10020 */ sw $s1, 0x0020($sp) -/* 00944 80A8FAB4 AFB0001C */ sw $s0, 0x001C($sp) -/* 00948 80A8FAB8 00A11021 */ addu $v0, $a1, $at -/* 0094C 80A8FABC 944E04C6 */ lhu $t6, 0x04C6($v0) ## 000004C6 -/* 00950 80A8FAC0 2401000F */ addiu $at, $zero, 0x000F ## $at = 0000000F -/* 00954 80A8FAC4 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00958 80A8FAC8 11C10005 */ beq $t6, $at, .L80A8FAE0 -/* 0095C 80A8FACC 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 00960 80A8FAD0 0C2A3CC8 */ jal func_80A8F320 -/* 00964 80A8FAD4 24060001 */ addiu $a2, $zero, 0x0001 ## $a2 = 00000001 -/* 00968 80A8FAD8 10000033 */ beq $zero, $zero, .L80A8FBA8 -/* 0096C 80A8FADC 8FBF0024 */ lw $ra, 0x0024($sp) -.L80A8FAE0: -/* 00970 80A8FAE0 3C0480A9 */ lui $a0, %hi(D_80A8FE98) ## $a0 = 80A90000 -/* 00974 80A8FAE4 904503DC */ lbu $a1, 0x03DC($v0) ## 000003DC -/* 00978 80A8FAE8 AFA2002C */ sw $v0, 0x002C($sp) -/* 0097C 80A8FAEC 0C00084C */ jal osSyncPrintf - -/* 00980 80A8FAF0 2484FE98 */ addiu $a0, $a0, %lo(D_80A8FE98) ## $a0 = 80A8FE98 -/* 00984 80A8FAF4 8FA2002C */ lw $v0, 0x002C($sp) -/* 00988 80A8FAF8 904F03DC */ lbu $t7, 0x03DC($v0) ## 000003DC -/* 0098C 80A8FAFC 55E0002A */ bnel $t7, $zero, .L80A8FBA8 -/* 00990 80A8FB00 8FBF0024 */ lw $ra, 0x0024($sp) -/* 00994 80A8FB04 92180194 */ lbu $t8, 0x0194($s0) ## 00000194 -/* 00998 80A8FB08 24094078 */ addiu $t1, $zero, 0x4078 ## $t1 = 00004078 -/* 0099C 80A8FB0C 240A0005 */ addiu $t2, $zero, 0x0005 ## $t2 = 00000005 -/* 009A0 80A8FB10 1300000B */ beq $t8, $zero, .L80A8FB40 -/* 009A4 80A8FB14 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 009A8 80A8FB18 24194077 */ addiu $t9, $zero, 0x4077 ## $t9 = 00004077 -/* 009AC 80A8FB1C 24080005 */ addiu $t0, $zero, 0x0005 ## $t0 = 00000005 -/* 009B0 80A8FB20 A619010E */ sh $t9, 0x010E($s0) ## 0000010E -/* 009B4 80A8FB24 A6080196 */ sh $t0, 0x0196($s0) ## 00000196 -/* 009B8 80A8FB28 3325FFFF */ andi $a1, $t9, 0xFFFF ## $a1 = 00004077 -/* 009BC 80A8FB2C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 009C0 80A8FB30 0C042DA0 */ jal func_8010B680 -/* 009C4 80A8FB34 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -/* 009C8 80A8FB38 10000006 */ beq $zero, $zero, .L80A8FB54 -/* 009CC 80A8FB3C 00000000 */ nop -.L80A8FB40: -/* 009D0 80A8FB40 A609010E */ sh $t1, 0x010E($s0) ## 0000010E -/* 009D4 80A8FB44 A60A0196 */ sh $t2, 0x0196($s0) ## 00000196 -/* 009D8 80A8FB48 3125FFFF */ andi $a1, $t1, 0xFFFF ## $a1 = 00000000 -/* 009DC 80A8FB4C 0C042DA0 */ jal func_8010B680 -/* 009E0 80A8FB50 00003025 */ or $a2, $zero, $zero ## $a2 = 00000000 -.L80A8FB54: -/* 009E4 80A8FB54 3C0B80A9 */ lui $t3, %hi(func_80A8FBB8) ## $t3 = 80A90000 -/* 009E8 80A8FB58 256BFBB8 */ addiu $t3, $t3, %lo(func_80A8FBB8) ## $t3 = 80A8FBB8 -/* 009EC 80A8FB5C AE0B014C */ sw $t3, 0x014C($s0) ## 0000014C -/* 009F0 80A8FB60 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 009F4 80A8FB64 0C0200FC */ jal func_800803F0 -/* 009F8 80A8FB68 86050208 */ lh $a1, 0x0208($s0) ## 00000208 -/* 009FC 80A8FB6C 240CFFFF */ addiu $t4, $zero, 0xFFFF ## $t4 = FFFFFFFF -/* 00A00 80A8FB70 A60C0208 */ sh $t4, 0x0208($s0) ## 00000208 -/* 00A04 80A8FB74 AFA00010 */ sw $zero, 0x0010($sp) -/* 00A08 80A8FB78 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00A0C 80A8FB7C 240508D4 */ addiu $a1, $zero, 0x08D4 ## $a1 = 000008D4 -/* 00A10 80A8FB80 2406FF9D */ addiu $a2, $zero, 0xFF9D ## $a2 = FFFFFF9D -/* 00A14 80A8FB84 0C02003E */ jal func_800800F8 -/* 00A18 80A8FB88 02003825 */ or $a3, $s0, $zero ## $a3 = 00000000 -/* 00A1C 80A8FB8C A6020208 */ sh $v0, 0x0208($s0) ## 00000208 -/* 00A20 80A8FB90 860D0208 */ lh $t5, 0x0208($s0) ## 00000208 -/* 00A24 80A8FB94 000D7080 */ sll $t6, $t5, 2 -/* 00A28 80A8FB98 022E7821 */ addu $t7, $s1, $t6 -/* 00A2C 80A8FB9C 0C016C69 */ jal func_8005B1A4 -/* 00A30 80A8FBA0 8DE40790 */ lw $a0, 0x0790($t7) ## 00000790 -/* 00A34 80A8FBA4 8FBF0024 */ lw $ra, 0x0024($sp) -.L80A8FBA8: -/* 00A38 80A8FBA8 8FB0001C */ lw $s0, 0x001C($sp) -/* 00A3C 80A8FBAC 8FB10020 */ lw $s1, 0x0020($sp) -/* 00A40 80A8FBB0 03E00008 */ jr $ra -/* 00A44 80A8FBB4 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 diff --git a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FBB8.s b/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FBB8.s deleted file mode 100644 index 2645fd6ff3..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FBB8.s +++ /dev/null @@ -1,40 +0,0 @@ -glabel func_80A8FBB8 -/* 00A48 80A8FBB8 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00A4C 80A8FBBC AFBF001C */ sw $ra, 0x001C($sp) -/* 00A50 80A8FBC0 AFB10018 */ sw $s1, 0x0018($sp) -/* 00A54 80A8FBC4 AFB00014 */ sw $s0, 0x0014($sp) -/* 00A58 80A8FBC8 00A08025 */ or $s0, $a1, $zero ## $s0 = 00000000 -/* 00A5C 80A8FBCC 0C2A3CA3 */ jal func_80A8F28C -/* 00A60 80A8FBD0 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 -/* 00A64 80A8FBD4 0C02927F */ jal SkelAnime_FrameUpdateMatrix - -/* 00A68 80A8FBD8 26240150 */ addiu $a0, $s1, 0x0150 ## $a0 = 00000150 -/* 00A6C 80A8FBDC 0C042F6F */ jal func_8010BDBC -/* 00A70 80A8FBE0 260420D8 */ addiu $a0, $s0, 0x20D8 ## $a0 = 000020D8 -/* 00A74 80A8FBE4 862E0196 */ lh $t6, 0x0196($s1) ## 00000196 -/* 00A78 80A8FBE8 55C20014 */ bnel $t6, $v0, .L80A8FC3C -/* 00A7C 80A8FBEC 8FBF001C */ lw $ra, 0x001C($sp) -/* 00A80 80A8FBF0 0C041AF2 */ jal func_80106BC8 -/* 00A84 80A8FBF4 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00A88 80A8FBF8 50400010 */ beql $v0, $zero, .L80A8FC3C -/* 00A8C 80A8FBFC 8FBF001C */ lw $ra, 0x001C($sp) -/* 00A90 80A8FC00 862F0208 */ lh $t7, 0x0208($s1) ## 00000208 -/* 00A94 80A8FC04 000FC080 */ sll $t8, $t7, 2 -/* 00A98 80A8FC08 0218C821 */ addu $t9, $s0, $t8 -/* 00A9C 80A8FC0C 0C016C69 */ jal func_8005B1A4 -/* 00AA0 80A8FC10 8F240790 */ lw $a0, 0x0790($t9) ## 00000790 -/* 00AA4 80A8FC14 0C041B33 */ jal func_80106CCC -/* 00AA8 80A8FC18 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AAC 80A8FC1C 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00AB0 80A8FC20 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 00AB4 80A8FC24 0C00B7D5 */ jal func_8002DF54 -/* 00AB8 80A8FC28 24060007 */ addiu $a2, $zero, 0x0007 ## $a2 = 00000007 -/* 00ABC 80A8FC2C 3C0880A9 */ lui $t0, %hi(func_80A8F660) ## $t0 = 80A90000 -/* 00AC0 80A8FC30 2508F660 */ addiu $t0, $t0, %lo(func_80A8F660) ## $t0 = 80A8F660 -/* 00AC4 80A8FC34 AE28014C */ sw $t0, 0x014C($s1) ## 0000014C -/* 00AC8 80A8FC38 8FBF001C */ lw $ra, 0x001C($sp) -.L80A8FC3C: -/* 00ACC 80A8FC3C 8FB00014 */ lw $s0, 0x0014($sp) -/* 00AD0 80A8FC40 8FB10018 */ lw $s1, 0x0018($sp) -/* 00AD4 80A8FC44 03E00008 */ jr $ra -/* 00AD8 80A8FC48 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 diff --git a/data/overlays/actors/z_en_kakasi.data.s b/data/overlays/actors/z_en_kakasi.data.s deleted file mode 100644 index aef12a0d13..0000000000 --- a/data/overlays/actors/z_en_kakasi.data.s +++ /dev/null @@ -1,21 +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 purpose registers - -.section .data - -.balign 16 - -glabel D_80A8FDE0 - .word 0x0A000039, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00040100, 0x00140046, 0x00000000, 0x00000000 -glabel En_Kakasi_InitVars - .word 0x017B0400, 0x02000009, 0x01540000, 0x0000020C -.word EnKakasi_Init -.word EnKakasi_Destroy -.word EnKakasi_Update -.word EnKakasi_Draw -.word 0x00000000 - diff --git a/data/overlays/actors/z_en_kakasi.reloc.s b/data/overlays/actors/z_en_kakasi.reloc.s deleted file mode 100644 index 8f1179d229..0000000000 --- a/data/overlays/actors/z_en_kakasi.reloc.s +++ /dev/null @@ -1,13 +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 purpose registers - -.section .rodata - -.balign 16 - -glabel D_80A8FF10 - .incbin "baserom/ovl_En_Kakasi", 0xDA0, 0x00000100 diff --git a/spec b/spec index 965d731ada..1963f2f9d4 100644 --- a/spec +++ b/spec @@ -2638,8 +2638,7 @@ endseg beginseg name "ovl_En_Kakasi" include "build/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.o" - include "build/data/overlays/actors/z_en_kakasi.data.o" - include "build/data/overlays/actors/z_en_kakasi.reloc.o" + include "build/src/overlays/actors/ovl_En_Kakasi/ovl_En_Kakasi_reloc.o" endseg beginseg diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c index eccc1f465a..718959413f 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c @@ -1,4 +1,11 @@ +/* + * File: z_en_kakasi.c + * Overlay: ovl_En_Kakasi + * Description: Pierre the Scarecrow + */ + #include "z_en_kakasi.h" +#include "vt.h" #define FLAGS 0x02000009 @@ -9,7 +16,22 @@ void EnKakasi_Destroy(Actor* thisx, GlobalContext* globalCtx); void EnKakasi_Update(Actor* thisx, GlobalContext* globalCtx); void EnKakasi_Draw(Actor* thisx, GlobalContext* globalCtx); -/* +void func_80A8F660(EnKakasi* this, GlobalContext* globalCtx); +void func_80A8F75C(EnKakasi* this, GlobalContext* globalCtx); +void func_80A8F8D0(EnKakasi* this, GlobalContext* globalCtx); +void func_80A8F9C8(EnKakasi* this, GlobalContext* globalCtx); +void func_80A8FBB8(EnKakasi* this, GlobalContext* globalCtx); +void func_80A8FAA4(EnKakasi* this, GlobalContext* globalCtx); + +static ColliderCylinderInit sCylinderInit = { + { COLTYPE_UNK10, 0x00, 0x00, 0x39, 0x20, COLSHAPE_CYLINDER }, + { 0x00, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, 0x00, 0x04, 0x01 }, + { 20, 70, 0, { 0, 0, 0 } }, +}; + +extern SkeletonHeader D_060065B0; +extern AnimationHeader D_06000214; + const ActorInit En_Kakasi_InitVars = { ACTOR_EN_KAKASI, ACTORTYPE_NPC, @@ -21,27 +43,301 @@ const ActorInit En_Kakasi_InitVars = { (ActorFunc)EnKakasi_Update, (ActorFunc)EnKakasi_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Destroy.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Init.s") +void EnKakasi_Destroy(Actor* thisx, GlobalContext* globalCtx) { + EnKakasi* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F28C.s") + Collider_DestroyCylinder(globalCtx, &this->collider); + //! @bug Skelanime_Free is not called +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F320.s") +void EnKakasi_Init(Actor* thisx, GlobalContext* globalCtx) { + EnKakasi* this = THIS; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F660.s") + osSyncPrintf("\n\n"); + osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ Let’s DANCE! ☆☆☆☆☆ %f\n" VT_RST, this->actor.posRot.pos.y); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F75C.s") + Collider_InitCylinder(globalCtx, &this->collider); + Collider_SetCylinder(globalCtx, &this->collider, &this->actor, &sCylinderInit); + this->actor.unk_1F = 6; + SkelAnime_InitSV(globalCtx, &this->skelanime, &D_060065B0, &D_06000214, NULL, NULL, 0); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F8D0.s") + this->rot = this->actor.posRot.rot; + this->actor.flags |= 0x400; + this->actor.colChkInfo.mass = 0xFF; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8F9C8.s") + Actor_SetScale(&this->actor, 0.01f); + this->actionFunc = func_80A8F660; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FAA4.s") +void func_80A8F28C(EnKakasi* this) { + this->unk_1A4 = 0; + this->skelanime.animPlaybackSpeed = 0.0f; + this->unk_1A8 = this->unk_1AC = 0; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/func_80A8FBB8.s") + Math_SmoothDownscaleMaxF(&this->skelanime.animCurrentFrame, 0.5f, 1.0f); + Math_SmoothScaleMaxMinS(&this->actor.shape.rot.x, this->rot.x, 5, 0x2710, 0); + Math_SmoothScaleMaxMinS(&this->actor.shape.rot.y, this->rot.y, 5, 0x2710, 0); + Math_SmoothScaleMaxMinS(&this->actor.shape.rot.z, this->rot.z, 5, 0x2710, 0); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Update.s") +void func_80A8F320(EnKakasi* this, GlobalContext* globalCtx, s16 arg) { + s16 phi_v0; + s16 currentFrame; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_En_Kakasi/EnKakasi_Draw.s") + phi_v0 = globalCtx->msgCtx.unk_E410[0]; + if (arg != 0) { + if (this->unk_19C[3] == 0) { + this->unk_19C[3] = (s16)Math_Rand_ZeroFloat(10.99f) + 30; + this->unk_1A6 = (s16)Math_Rand_ZeroFloat(4.99f); + } + + this->unk_19A = (s16)Math_Rand_ZeroFloat(2.99f) + 5; + phi_v0 = this->unk_1A6; + } + switch (phi_v0) { + case 0: + this->unk_19A++; + if (this->unk_1A4 == 0) { + this->unk_1A4 = 1; + Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_ROLL); + } + break; + case 1: + this->unk_19A++; + this->unk_1B8 = 1.0f; + break; + case 2: + this->unk_19A++; + if (this->unk_1AC == 0) { + this->unk_1AC = 0x1388; + } + break; + case 3: + this->unk_19A++; + if (this->unk_1A8 == 0) { + this->unk_1A8 = 0x1388; + } + break; + case 4: + this->unk_19A++; + this->unk_1B8 = 2.0f; + break; + } + + if (this->unk_19A > 8) { + this->unk_19A = 8; + } + + if (this->unk_19A != 0) { + this->actor.gravity = -1.0f; + if (this->unk_19A == 8 && (this->actor.bgCheckFlags & 1)) { + this->actor.velocity.y = 3.0f; + Audio_PlayActorSound2(&this->actor, NA_SE_IT_KAKASHI_JUMP); + } + Math_SmoothScaleMaxF(&this->skelanime.animPlaybackSpeed, this->unk_1B8, 0.1f, 0.2f); + Math_SmoothScaleMaxMinS(&this->actor.shape.rot.x, this->unk_1A8, 5, 0x3E8, 0); + Math_SmoothScaleMaxMinS(&this->actor.shape.rot.z, this->unk_1AC, 5, 0x3E8, 0); + + if (this->unk_1A8 != 0 && fabsf(this->actor.shape.rot.x - this->unk_1A8) < 50.0f) { + this->unk_1A8 *= -1.0f; + } + if (this->unk_1AC != 0 && fabsf(this->actor.shape.rot.z - this->unk_1AC) < 50.0f) { + this->unk_1AC *= -1.0f; + } + + if (this->unk_1A4 != 0) { + this->actor.shape.rot.y += 0x1000; + if (this->actor.shape.rot.y == 0) { + this->unk_1A4 = 0; + } + } + currentFrame = this->skelanime.animCurrentFrame; + if (currentFrame == 11 || currentFrame == 17) { + Audio_PlayActorSound2(&this->actor, NA_SE_EV_KAKASHI_SWING); + } + SkelAnime_FrameUpdateMatrix(&this->skelanime); + } +} + +void func_80A8F660(EnKakasi* this, GlobalContext* globalCtx) { + f32 frameCount = SkelAnime_GetFrameCount(&D_06000214.genericHeader); + + SkelAnime_ChangeAnim(&this->skelanime, &D_06000214, 1.0f, 0.0f, (s16)frameCount, 0, -10.0f); + + this->actor.textId = 0x4076; + this->unk_196 = 6; + if (LINK_IS_CHILD) { + this->unk_194 = false; + if (gSaveContext.unk_F3C[4] != 0) { + this->actor.textId = 0x407A; + this->unk_196 = 5; + } + } else { + this->unk_194 = true; + if (gSaveContext.unk_F3C[4] != 0) { + this->actor.textId = 0x4079; + this->unk_196 = 5; + } + } + this->actionFunc = func_80A8F75C; +} + +void func_80A8F75C(EnKakasi* this, GlobalContext* globalCtx) { + Player* player = PLAYER; + s16 yawTowardsLink; + s16 absyawTowardsLink; + + func_80A8F28C(this); + SkelAnime_FrameUpdateMatrix(&this->skelanime); + this->camId = -1; + if (func_8002F194(&this->actor, globalCtx)) { + if (this->unk_196 == 5) { + this->actionFunc = func_80A8F9C8; + } else { + this->actionFunc = func_80A8F660; + } + return; + } + + yawTowardsLink = this->actor.yawTowardsLink - this->actor.shape.rot.y; + if (!(this->actor.xzDistFromLink > 120.0f)) { + absyawTowardsLink = ABS(yawTowardsLink); + + if (absyawTowardsLink < 0x4300) { + if (!this->unk_194) { + if (player->stateFlags2 & 0x1000000) { + this->camId = func_800800F8(globalCtx, 0x8D4, -0x63, &this->actor, 0); + + func_8010BD58(globalCtx, 0x2A); + this->unk_19A = 0; + this->unk_1B8 = 0.0; + player->stateFlags2 |= 0x800000; + this->actionFunc = func_80A8F8D0; + return; + } + if (this->actor.xzDistFromLink < 80.0f) { + player->stateFlags2 |= 0x800000; + } + } + func_8002F2CC(&this->actor, globalCtx, 100.0f); + } + } +} + +void func_80A8F8D0(EnKakasi* this, GlobalContext* globalCtx) { + Player* player = PLAYER; + + if (globalCtx->msgCtx.unk_E3EE == 4 && globalCtx->msgCtx.msgMode == 0) { + // end? + osSyncPrintf(VT_FGCOL(BLUE) "☆☆☆☆☆ 終り? ☆☆☆☆☆ \n" VT_RST); + + if (this->unk_19A != 0) { + func_80106CCC(globalCtx); + this->actor.textId = 0x4077; + this->unk_196 = 5; + func_8010B680(globalCtx, this->actor.textId, NULL); + this->actionFunc = func_80A8F9C8; + } else { + func_800803F0(globalCtx, this->camId); + this->camId = -1; + this->actionFunc = func_80A8F660; + } + } else if (globalCtx->msgCtx.unk_E3EE == 1) { + func_80A8F320(this, globalCtx, 0); + player->stateFlags2 |= 0x800000; + } +} + +void func_80A8F9C8(EnKakasi* this, GlobalContext* globalCtx) { + func_80A8F28C(this); + SkelAnime_FrameUpdateMatrix(&this->skelanime); + func_8002DF54(globalCtx, NULL, 8); + + if (this->unk_196 == func_8010BDBC(&globalCtx->msgCtx) && (func_80106BC8(globalCtx) != 0)) { + + if (this->camId != -1) { + func_8005B1A4(globalCtx->cameraPtrs[this->camId]); + } + this->camId = func_800800F8(globalCtx, 0x8DE, -0x63, &this->actor, 0); + globalCtx->msgCtx.msgMode = 0x37; + func_8002DF54(globalCtx, NULL, 8); + func_8010BD58(globalCtx, 0x2B); + this->actionFunc = func_80A8FAA4; + } +} + +void func_80A8FAA4(EnKakasi* this, GlobalContext* globalCtx) { + if (globalCtx->msgCtx.unk_E3EE != 0xF) { + func_80A8F320(this, globalCtx, 1); + return; + } + + osSyncPrintf("game_play->message.msg_mode=%d\n", globalCtx->msgCtx.msgMode); + + if (globalCtx->msgCtx.msgMode == 0) { + if (this->unk_194) { + this->actor.textId = 0x4077; + this->unk_196 = 5; + func_8010B680(globalCtx, this->actor.textId, NULL); + } else { + this->actor.textId = 0x4078; + this->unk_196 = 5; + func_8010B680(globalCtx, this->actor.textId, NULL); + } + this->actionFunc = func_80A8FBB8; + func_800803F0(globalCtx, this->camId); + this->camId = -1; + this->camId = func_800800F8(globalCtx, 0x8D4, -0x63, &this->actor, 0); + func_8005B1A4(globalCtx->cameraPtrs[this->camId]); + } +} + +void func_80A8FBB8(EnKakasi* this, GlobalContext* globalCtx) { + func_80A8F28C(this); + SkelAnime_FrameUpdateMatrix(&this->skelanime); + + if (this->unk_196 == func_8010BDBC(&globalCtx->msgCtx)) { + if (func_80106BC8(globalCtx) != 0) { + func_8005B1A4(globalCtx->cameraPtrs[this->camId]); + func_80106CCC(globalCtx); + func_8002DF54(globalCtx, NULL, 7); + this->actionFunc = func_80A8F660; + } + } +} + +void EnKakasi_Update(Actor* thisx, GlobalContext* globalCtx) { + EnKakasi* this = THIS; + s32 pad; + s32 i; + + this->unk_198++; + this->actor.posRot.rot = this->actor.shape.rot; + for (i = 0; i < ARRAY_COUNT(this->unk_19C); i++) { + if (this->unk_19C[i] != 0) { + this->unk_19C[i]--; + } + } + + this->height = 60.0f; + Actor_SetHeight(&this->actor, this->height); + this->actionFunc(this, globalCtx); + Actor_MoveForward(&this->actor); + func_8002E4B4(globalCtx, &this->actor, 50.0f, 50.0f, 100.0f, 28); + Collider_CylinderUpdate(&this->actor, &this->collider); + CollisionCheck_SetOC(globalCtx, &globalCtx->colChkCtx, &this->collider.base); +} + +void EnKakasi_Draw(Actor* thisx, GlobalContext* globalCtx) { + EnKakasi* this = THIS; + + if (BREG(3) != 0) { + osSyncPrintf("\n\n"); + // flag! + osSyncPrintf(VT_FGCOL(YELLOW) "☆☆☆☆☆ フラグ! ☆☆☆☆☆ %d\n" VT_RST, gSaveContext.unk_F3C[4]); + } + func_80093D18(globalCtx->state.gfxCtx); + SkelAnime_DrawSV(globalCtx, this->skelanime.skeleton, this->skelanime.limbDrawTbl, this->skelanime.dListCount, NULL, + NULL, &this->actor); +} diff --git a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.h b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.h index be2d3ca0c2..03a0884e02 100644 --- a/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.h +++ b/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.h @@ -6,9 +6,27 @@ struct EnKakasi; +typedef void (*EnKakasiFunc)(struct EnKakasi*, GlobalContext*); + typedef struct EnKakasi { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0xC0]; + /* 0x014C */ EnKakasiFunc actionFunc; + /* 0x0150 */ SkelAnime skelanime; + /* 0x0194 */ u8 unk_194; + /* 0x0196 */ s16 unk_196; + /* 0x0198 */ s16 unk_198; + /* 0x019A */ s16 unk_19A; + /* 0x019C */ s16 unk_19C[4]; + /* 0x01A4 */ s16 unk_1A4; + /* 0x01A6 */ s16 unk_1A6; + /* 0x01A8 */ s16 unk_1A8; + /* 0x01AA */ char unk_1AA[0x2]; + /* 0x01AC */ s16 unk_1AC; + /* 0x01AE */ Vec3s rot; + /* 0x01B4 */ f32 height; + /* 0x01B8 */ f32 unk_1B8; + /* 0x01BC */ ColliderCylinder collider; + /* 0x0208 */ s16 camId; } EnKakasi; // size = 0x020C extern const ActorInit En_Kakasi_InitVars; diff --git a/undefined_syms.txt b/undefined_syms.txt index d311b92351..96802ca265 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -870,6 +870,7 @@ D_06001080 = 0x06001080; D_06004768 = 0x06004768; D_0600039C = 0x0600039C; +// z_en_kakasi // z_en_kakasi2 // z_en_kakasi3 D_060065B0 = 0x060065B0;