diff --git a/.gitignore b/.gitignore index 76bc0fd81f..a01307c6b1 100644 --- a/.gitignore +++ b/.gitignore @@ -23,6 +23,7 @@ out.txt # Tool artifacts tools/ido7.1_compiler/* +tools/mipspro7.2_compiler/ tools/overlayhelpers/batchdisasm/output/* tools/overlayhelpers/batchdisasm/output2/* tools/overlayhelpers/batchdisasm/mipsdisasm/* @@ -41,4 +42,4 @@ tools/asmsplitter/c/* *.ci8.png #Per-user configuration -.python-version +.python-version \ No newline at end of file diff --git a/asm/graph.s b/asm/graph.s index 95e67955a5..4ca4e63c46 100644 --- a/asm/graph.s +++ b/asm/graph.s @@ -539,13 +539,13 @@ glabel func_800C5DC0 /* B3D1A8 800C6008 24090001 */ li $t1, 1 /* B3D1AC 800C600C 240C0004 */ li $t4, 4 /* B3D1B0 800C6010 AE090000 */ sw $t1, ($s0) -/* B3D1B4 800C6014 0C034B7C */ jal func_800D2DF0 +/* B3D1B4 800C6014 0C034B7C */ jal SysUcode_GetUCodeBoot /* B3D1B8 800C6018 AE0C0004 */ sw $t4, 4($s0) -/* B3D1BC 800C601C 0C034B7F */ jal func_800D2DFC +/* B3D1BC 800C601C 0C034B7F */ jal SysUcode_GetUcodeBootSize /* B3D1C0 800C6020 AE020008 */ sw $v0, 8($s0) -/* B3D1C4 800C6024 0C034B85 */ jal func_800D2E14 +/* B3D1C4 800C6024 0C034B85 */ jal SysUcode_GetUcode /* B3D1C8 800C6028 AE02000C */ sw $v0, 0xc($s0) -/* B3D1CC 800C602C 0C034B88 */ jal func_800D2E20 +/* B3D1CC 800C602C 0C034B88 */ jal SysUcode_GetUcodeData /* B3D1D0 800C6030 AE020010 */ sw $v0, 0x10($s0) /* B3D1D4 800C6034 3C0F801B */ lui $t7, %hi(gGfxSPTaskStack) # $t7, 0x801b /* B3D1D8 800C6038 3C19801A */ lui $t9, %hi(gGfxSPTaskOutputBuffer) # $t9, 0x801a @@ -1056,7 +1056,7 @@ glabel func_800C61D8 .L800C67DC: /* B3D97C 800C67DC 10800014 */ beqz $a0, .L800C6830 /* B3D980 800C67E0 3C048016 */ lui $a0, %hi(gAppNmiBufferPtr) # $a0, 0x8016 -/* B3D984 800C67E4 0C01EFC2 */ jal func_8007BF08 +/* B3D984 800C67E4 0C01EFC2 */ jal PreNmiBuff_IsResetting /* B3D988 800C67E8 8C846660 */ lw $a0, %lo(gAppNmiBufferPtr)($a0) /* B3D98C 800C67EC 10400010 */ beqz $v0, .L800C6830 /* B3D990 800C67F0 8FAE00CC */ lw $t6, 0xcc($sp) diff --git a/asm/non_matchings/code/code_8006C360/func_8006C360.s b/asm/non_matchings/code/code_8006C360/func_8006C360.s deleted file mode 100644 index af861774b2..0000000000 --- a/asm/non_matchings/code/code_8006C360/func_8006C360.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel func_8006C360 -/* AE3500 8006C360 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* AE3504 8006C364 AFBF0014 */ sw $ra, 0x14($sp) -/* AE3508 8006C368 0C023C20 */ jal func_8008F080 -/* AE350C 8006C36C AFA5001C */ sw $a1, 0x1c($sp) -/* AE3510 8006C370 8FAE001C */ lw $t6, 0x1c($sp) -/* AE3514 8006C374 0002C040 */ sll $t8, $v0, 1 -/* AE3518 8006C378 8FBF0014 */ lw $ra, 0x14($sp) -/* AE351C 8006C37C 000E78C0 */ sll $t7, $t6, 3 -/* AE3520 8006C380 01EE7821 */ addu $t7, $t7, $t6 -/* AE3524 8006C384 000F7840 */ sll $t7, $t7, 1 -/* AE3528 8006C388 01F8C821 */ addu $t9, $t7, $t8 -/* AE352C 8006C38C 3C028012 */ lui $v0, %hi(D_8011F3F0) -/* AE3530 8006C390 00591021 */ addu $v0, $v0, $t9 -/* AE3534 8006C394 9442F3F0 */ lhu $v0, %lo(D_8011F3F0)($v0) -/* AE3538 8006C398 03E00008 */ jr $ra -/* AE353C 8006C39C 27BD0018 */ addiu $sp, $sp, 0x18 \ No newline at end of file diff --git a/asm/non_matchings/code/code_8007BE60/func_8007BE60.s b/asm/non_matchings/code/code_8007BE60/func_8007BE60.s deleted file mode 100644 index beeb6015b1..0000000000 --- a/asm/non_matchings/code/code_8007BE60/func_8007BE60.s +++ /dev/null @@ -1,33 +0,0 @@ -glabel func_8007BE60 -/* AF3000 8007BE60 AC800000 */ sw $zero, ($a0) -/* AF3004 8007BE64 3C0E8000 */ lui $t6, %hi(osResetType) # $t6, 0x8000 -/* AF3008 8007BE68 8DCE030C */ lw $t6, %lo(osResetType)($t6) -/* AF300C 8007BE6C 24180000 */ li $t8, 0 -/* AF3010 8007BE70 24190000 */ li $t9, 0 -/* AF3014 8007BE74 55C00006 */ bnezl $t6, .L8007BE90 -/* AF3018 8007BE78 8C8F0004 */ lw $t7, 4($a0) -/* AF301C 8007BE7C AC800004 */ sw $zero, 4($a0) -/* AF3020 8007BE80 AC980008 */ sw $t8, 8($a0) -/* AF3024 8007BE84 1000000E */ b .L8007BEC0 -/* AF3028 8007BE88 AC99000C */ sw $t9, 0xc($a0) -/* AF302C 8007BE8C 8C8F0004 */ lw $t7, 4($a0) -.L8007BE90: -/* AF3030 8007BE90 8C8B000C */ lw $t3, 0xc($a0) -/* AF3034 8007BE94 8C8D0014 */ lw $t5, 0x14($a0) -/* AF3038 8007BE98 8C8A0008 */ lw $t2, 8($a0) -/* AF303C 8007BE9C 25E80001 */ addiu $t0, $t7, 1 -/* AF3040 8007BEA0 8C8C0010 */ lw $t4, 0x10($a0) -/* AF3044 8007BEA4 016D7821 */ addu $t7, $t3, $t5 -/* AF3048 8007BEA8 01ED082B */ sltu $at, $t7, $t5 -/* AF304C 8007BEAC 002A7021 */ addu $t6, $at, $t2 -/* AF3050 8007BEB0 01CC7021 */ addu $t6, $t6, $t4 -/* AF3054 8007BEB4 AC880004 */ sw $t0, 4($a0) -/* AF3058 8007BEB8 AC8E0008 */ sw $t6, 8($a0) -/* AF305C 8007BEBC AC8F000C */ sw $t7, 0xc($a0) -.L8007BEC0: -/* AF3060 8007BEC0 24180000 */ li $t8, 0 -/* AF3064 8007BEC4 24190000 */ li $t9, 0 -/* AF3068 8007BEC8 AC990014 */ sw $t9, 0x14($a0) -/* AF306C 8007BECC 03E00008 */ jr $ra -/* AF3070 8007BED0 AC980010 */ sw $t8, 0x10($a0) - diff --git a/asm/non_matchings/code/code_8007BF10/func_8007BF10.s b/asm/non_matchings/code/code_8007BF10/func_8007BF10.s deleted file mode 100644 index 658558825d..0000000000 --- a/asm/non_matchings/code/code_8007BF10/func_8007BF10.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_8007BF10 -/* AF30B0 8007BF10 27BDFF60 */ addiu $sp, $sp, -0xa0 -/* AF30B4 8007BF14 AFBF0014 */ sw $ra, 0x14($sp) -/* AF30B8 8007BF18 27A40020 */ addiu $a0, $sp, 0x20 -/* AF30BC 8007BF1C 240E0003 */ li $t6, 3 -/* AF30C0 8007BF20 AFA00038 */ sw $zero, 0x38($sp) -/* AF30C4 8007BF24 AFAE0040 */ sw $t6, 0x40($sp) -/* AF30C8 8007BF28 AFA40088 */ sw $a0, 0x88($sp) -/* AF30CC 8007BF2C AFA0008C */ sw $zero, 0x8c($sp) -/* AF30D0 8007BF30 AFA00044 */ sw $zero, 0x44($sp) -/* AF30D4 8007BF34 AFA00048 */ sw $zero, 0x48($sp) -/* AF30D8 8007BF38 27A5001C */ addiu $a1, $sp, 0x1c -/* AF30DC 8007BF3C 0C001874 */ jal osCreateMesgQueue -/* AF30E0 8007BF40 24060001 */ li $a2, 1 -/* AF30E4 8007BF44 3C048016 */ lui $a0, %hi(gSchedContext+0x38) # $a0, 0x8016 -/* AF30E8 8007BF48 248466A0 */ addiu $a0, %lo(gSchedContext+0x38) # addiu $a0, $a0, 0x66a0 -/* AF30EC 8007BF4C 27A50038 */ addiu $a1, $sp, 0x38 -/* AF30F0 8007BF50 0C000C18 */ jal osSendMesg -/* AF30F4 8007BF54 24060001 */ li $a2, 1 -/* AF30F8 8007BF58 3C048016 */ lui $a0, %hi(gSchedContext) # $a0, 0x8016 -/* AF30FC 8007BF5C 0C03257E */ jal func_800C95F8 -/* AF3100 8007BF60 24846668 */ addiu $a0, %lo(gSchedContext) # addiu $a0, $a0, 0x6668 -/* AF3104 8007BF64 27A40020 */ addiu $a0, $sp, 0x20 -/* AF3108 8007BF68 00002825 */ move $a1, $zero -/* AF310C 8007BF6C 0C000CA0 */ jal osRecvMesg -/* AF3110 8007BF70 24060001 */ li $a2, 1 -/* AF3114 8007BF74 8FBF0014 */ lw $ra, 0x14($sp) -/* AF3118 8007BF78 27BD00A0 */ addiu $sp, $sp, 0xa0 -/* AF311C 8007BF7C 03E00008 */ jr $ra -/* AF3120 8007BF80 00000000 */ nop diff --git a/asm/non_matchings/code/z_debug/func_800636C0.s b/asm/non_matchings/code/z_debug/func_800636C0.s deleted file mode 100644 index 09f613b865..0000000000 --- a/asm/non_matchings/code/z_debug/func_800636C0.s +++ /dev/null @@ -1,48 +0,0 @@ -.rdata -glabel D_8013AD40 - .asciz "../z_debug.c" - .balign 4 - -.text -glabel func_800636C0 -/* ADA860 800636C0 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* ADA864 800636C4 AFBF0014 */ sw $ra, 0x14($sp) -/* ADA868 800636C8 3C058014 */ lui $a1, %hi(D_8013AD40) # $a1, 0x8014 -/* ADA86C 800636CC 24A5AD40 */ addiu $a1, %lo(D_8013AD40) # addiu $a1, $a1, -0x52c0 -/* ADA870 800636D0 240415D4 */ li $a0, 5588 -/* ADA874 800636D4 0C03F570 */ jal SystemArena_MallocDebug -/* ADA878 800636D8 24060104 */ li $a2, 260 -/* ADA87C 800636DC 3C048016 */ lui $a0, %hi(gGameInfo) # $a0, 0x8016 -/* ADA880 800636E0 2484FA90 */ addiu $a0, %lo(gGameInfo) # addiu $a0, $a0, -0x570 -/* ADA884 800636E4 AC820000 */ sw $v0, ($a0) -/* ADA888 800636E8 AC400000 */ sw $zero, ($v0) -/* ADA88C 800636EC 8C8F0000 */ lw $t7, ($a0) -/* ADA890 800636F0 240215C0 */ li $v0, 5568 -/* ADA894 800636F4 00001825 */ move $v1, $zero -/* ADA898 800636F8 ADE00004 */ sw $zero, 4($t7) -/* ADA89C 800636FC 8C980000 */ lw $t8, ($a0) -/* ADA8A0 80063700 AF000008 */ sw $zero, 8($t8) -/* ADA8A4 80063704 8C990000 */ lw $t9, ($a0) -/* ADA8A8 80063708 AF20000C */ sw $zero, 0xc($t9) -/* ADA8AC 8006370C 8C880000 */ lw $t0, ($a0) -/* ADA8B0 80063710 AD000010 */ sw $zero, 0x10($t0) -.L80063714: -/* ADA8B4 80063714 8C890000 */ lw $t1, ($a0) -/* ADA8B8 80063718 01235021 */ addu $t2, $t1, $v1 -/* ADA8BC 8006371C A5400014 */ sh $zero, 0x14($t2) -/* ADA8C0 80063720 8C8B0000 */ lw $t3, ($a0) -/* ADA8C4 80063724 01636021 */ addu $t4, $t3, $v1 -/* ADA8C8 80063728 A5800016 */ sh $zero, 0x16($t4) -/* ADA8CC 8006372C 8C8D0000 */ lw $t5, ($a0) -/* ADA8D0 80063730 01A37021 */ addu $t6, $t5, $v1 -/* ADA8D4 80063734 A5C00018 */ sh $zero, 0x18($t6) -/* ADA8D8 80063738 8C8F0000 */ lw $t7, ($a0) -/* ADA8DC 8006373C 01E3C021 */ addu $t8, $t7, $v1 -/* ADA8E0 80063740 24630008 */ addiu $v1, $v1, 8 -/* ADA8E4 80063744 1462FFF3 */ bne $v1, $v0, .L80063714 -/* ADA8E8 80063748 A700001A */ sh $zero, 0x1a($t8) -/* ADA8EC 8006374C 8FBF0014 */ lw $ra, 0x14($sp) -/* ADA8F0 80063750 27BD0018 */ addiu $sp, $sp, 0x18 -/* ADA8F4 80063754 03E00008 */ jr $ra -/* ADA8F8 80063758 00000000 */ nop - diff --git a/asm/non_matchings/code/z_debug/func_8006375C.s b/asm/non_matchings/code/z_debug/func_8006375C.s deleted file mode 100644 index 44630c7e23..0000000000 --- a/asm/non_matchings/code/z_debug/func_8006375C.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_8006375C -/* ADA8FC 8006375C AFA40000 */ sw $a0, ($sp) -/* ADA900 80063760 AFA50004 */ sw $a1, 4($sp) -/* ADA904 80063764 03E00008 */ jr $ra -/* ADA908 80063768 AFA60008 */ sw $a2, 8($sp) - diff --git a/asm/non_matchings/code/z_debug/func_80063828.s b/asm/non_matchings/code/z_debug/func_80063828.s deleted file mode 100644 index 735375cf21..0000000000 --- a/asm/non_matchings/code/z_debug/func_80063828.s +++ /dev/null @@ -1,67 +0,0 @@ -.rdata -glabel D_8013AD50 - .asciz "%s" - .balign 4 - -.text -glabel func_80063828 -/* ADA9C8 80063828 27BDFFC0 */ addiu $sp, $sp, -0x40 -/* ADA9CC 8006382C AFB60038 */ sw $s6, 0x38($sp) -/* ADA9D0 80063830 3C168012 */ lui $s6, %hi(D_8011E0B0) # $s6, 0x8012 -/* ADA9D4 80063834 26D6E0B0 */ addiu $s6, %lo(D_8011E0B0) # addiu $s6, $s6, -0x1f50 -/* ADA9D8 80063838 86CE0000 */ lh $t6, ($s6) -/* ADA9DC 8006383C AFB3002C */ sw $s3, 0x2c($sp) -/* ADA9E0 80063840 AFB20028 */ sw $s2, 0x28($sp) -/* ADA9E4 80063844 00809825 */ move $s3, $a0 -/* ADA9E8 80063848 AFBF003C */ sw $ra, 0x3c($sp) -/* ADA9EC 8006384C AFB50034 */ sw $s5, 0x34($sp) -/* ADA9F0 80063850 AFB40030 */ sw $s4, 0x30($sp) -/* ADA9F4 80063854 AFB10024 */ sw $s1, 0x24($sp) -/* ADA9F8 80063858 AFB00020 */ sw $s0, 0x20($sp) -/* ADA9FC 8006385C 19C00021 */ blez $t6, .L800638E4 -/* ADAA00 80063860 00009025 */ move $s2, $zero -/* ADAA04 80063864 3C108016 */ lui $s0, %hi(D_8015FA98) # $s0, 0x8016 -/* ADAA08 80063868 3C118016 */ lui $s1, %hi(D_8015FA9B) # $s1, 0x8016 -/* ADAA0C 8006386C 3C158014 */ lui $s5, %hi(D_8013AD50) # $s5, 0x8014 -/* ADAA10 80063870 3C148012 */ lui $s4, %hi(D_8011E0B4) # $s4, 0x8012 -/* ADAA14 80063874 2694E0B4 */ addiu $s4, %lo(D_8011E0B4) # addiu $s4, $s4, -0x1f4c -/* ADAA18 80063878 26B5AD50 */ addiu $s5, %lo(D_8013AD50) # addiu $s5, $s5, -0x52b0 -/* ADAA1C 8006387C 2631FA9B */ addiu $s1, %lo(D_8015FA9B) # addiu $s1, $s1, -0x565 -/* ADAA20 80063880 2610FA98 */ addiu $s0, %lo(D_8015FA98) # addiu $s0, $s0, -0x568 -.L80063884: -/* ADAA24 80063884 920F0002 */ lbu $t7, 2($s0) -/* ADAA28 80063888 02602025 */ move $a0, $s3 -/* ADAA2C 8006388C 000FC080 */ sll $t8, $t7, 2 -/* ADAA30 80063890 02981021 */ addu $v0, $s4, $t8 -/* ADAA34 80063894 90590003 */ lbu $t9, 3($v0) -/* ADAA38 80063898 90450000 */ lbu $a1, ($v0) -/* ADAA3C 8006389C 90460001 */ lbu $a2, 1($v0) -/* ADAA40 800638A0 90470002 */ lbu $a3, 2($v0) -/* ADAA44 800638A4 0C03ECEB */ jal GfxPrint_SetColor -/* ADAA48 800638A8 AFB90010 */ sw $t9, 0x10($sp) -/* ADAA4C 800638AC 02602025 */ move $a0, $s3 -/* ADAA50 800638B0 92050000 */ lbu $a1, ($s0) -/* ADAA54 800638B4 0C03ED07 */ jal GfxPrint_SetPos -/* ADAA58 800638B8 92060001 */ lbu $a2, 1($s0) -/* ADAA5C 800638BC 02602025 */ move $a0, $s3 -/* ADAA60 800638C0 02A02825 */ move $a1, $s5 -/* ADAA64 800638C4 0C03EF2D */ jal GfxPrint_Printf -/* ADAA68 800638C8 02203025 */ move $a2, $s1 -/* ADAA6C 800638CC 86C80000 */ lh $t0, ($s6) -/* ADAA70 800638D0 26520001 */ addiu $s2, $s2, 1 -/* ADAA74 800638D4 26100018 */ addiu $s0, $s0, 0x18 -/* ADAA78 800638D8 0248082A */ slt $at, $s2, $t0 -/* ADAA7C 800638DC 1420FFE9 */ bnez $at, .L80063884 -/* ADAA80 800638E0 26310018 */ addiu $s1, $s1, 0x18 -.L800638E4: -/* ADAA84 800638E4 8FBF003C */ lw $ra, 0x3c($sp) -/* ADAA88 800638E8 8FB00020 */ lw $s0, 0x20($sp) -/* ADAA8C 800638EC 8FB10024 */ lw $s1, 0x24($sp) -/* ADAA90 800638F0 8FB20028 */ lw $s2, 0x28($sp) -/* ADAA94 800638F4 8FB3002C */ lw $s3, 0x2c($sp) -/* ADAA98 800638F8 8FB40030 */ lw $s4, 0x30($sp) -/* ADAA9C 800638FC 8FB50034 */ lw $s5, 0x34($sp) -/* ADAAA0 80063900 8FB60038 */ lw $s6, 0x38($sp) -/* ADAAA4 80063904 03E00008 */ jr $ra -/* ADAAA8 80063908 27BD0040 */ addiu $sp, $sp, 0x40 - diff --git a/asm/non_matchings/code/z_debug/func_8006390C.s b/asm/non_matchings/code/z_debug/func_8006390C.s deleted file mode 100644 index 70b4986eb7..0000000000 --- a/asm/non_matchings/code/z_debug/func_8006390C.s +++ /dev/null @@ -1,228 +0,0 @@ -.late_rodata -glabel jtbl_8013AD80 - .word L80063A18 - .word L80063A18 - .word L80063A18 - .word L80063A18 - .word L80063A18 - .word L80063A18 - -.text -glabel func_8006390C -/* ADAAAC 8006390C 3C0B8016 */ lui $t3, %hi(gGameInfo) # $t3, 0x8016 -/* ADAAB0 80063910 256BFA90 */ addiu $t3, %lo(gGameInfo) # addiu $t3, $t3, -0x570 -/* ADAAB4 80063914 8D680000 */ lw $t0, ($t3) -/* ADAAB8 80063918 27BDFFE8 */ addiu $sp, $sp, -0x18 -/* ADAABC 8006391C AFBF0014 */ sw $ra, 0x14($sp) -/* ADAAC0 80063920 8D0A0004 */ lw $t2, 4($t0) -/* ADAAC4 80063924 8D090000 */ lw $t1, ($t0) -/* ADAAC8 80063928 94850000 */ lhu $a1, ($a0) -/* ADAACC 8006392C 000A7080 */ sll $t6, $t2, 2 -/* ADAAD0 80063930 01CA7023 */ subu $t6, $t6, $t2 -/* ADAAD4 80063934 000E7040 */ sll $t6, $t6, 1 -/* ADAAD8 80063938 2401FFDF */ li $at, -33 -/* ADAADC 8006393C 01C96021 */ addu $t4, $t6, $t1 -/* ADAAE0 80063940 000C6100 */ sll $t4, $t4, 4 -/* ADAAE4 80063944 00A17827 */ nor $t7, $a1, $at -/* ADAAE8 80063948 00803025 */ move $a2, $a0 -/* ADAAEC 8006394C 258CFFF0 */ addiu $t4, $t4, -0x10 -/* ADAAF0 80063950 11E00008 */ beqz $t7, .L80063974 -/* ADAAF4 80063954 30A70F00 */ andi $a3, $a1, 0xf00 -/* ADAAF8 80063958 2401FFEF */ li $at, -17 -/* ADAAFC 8006395C 00A1C027 */ nor $t8, $a1, $at -/* ADAB00 80063960 13000004 */ beqz $t8, .L80063974 -/* ADAB04 80063964 2401EFFF */ li $at, -4097 -/* ADAB08 80063968 00A1C827 */ nor $t9, $a1, $at -/* ADAB0C 8006396C 17200022 */ bnez $t9, .L800639F8 -/* ADAB10 80063970 252DFFFF */ addiu $t5, $t1, -1 -.L80063974: -/* ADAB14 80063974 3C028012 */ lui $v0, %hi(D_8011E0D4) # $v0, 0x8012 -/* ADAB18 80063978 2442E0D4 */ addiu $v0, %lo(D_8011E0D4) # addiu $v0, $v0, -0x1f2c -/* ADAB1C 8006397C 00001825 */ move $v1, $zero -/* ADAB20 80063980 2404001D */ li $a0, 29 -.L80063984: -/* ADAB24 80063984 944D0000 */ lhu $t5, ($v0) -/* ADAB28 80063988 01A07027 */ not $t6, $t5 -/* ADAB2C 8006398C 01C57827 */ nor $t7, $t6, $a1 -/* ADAB30 80063990 55E00008 */ bnezl $t7, .L800639B4 -/* ADAB34 80063994 24630001 */ addiu $v1, $v1, 1 -/* ADAB38 80063998 94580002 */ lhu $t8, 2($v0) -/* ADAB3C 8006399C 94CD000C */ lhu $t5, 0xc($a2) -/* ADAB40 800639A0 0300C827 */ not $t9, $t8 -/* ADAB44 800639A4 032D7027 */ nor $t6, $t9, $t5 -/* ADAB48 800639A8 51C00005 */ beql $t6, $zero, .L800639C0 -/* ADAB4C 800639AC 2861001D */ slti $at, $v1, 0x1d -/* ADAB50 800639B0 24630001 */ addiu $v1, $v1, 1 -.L800639B4: -/* ADAB54 800639B4 1464FFF3 */ bne $v1, $a0, .L80063984 -/* ADAB58 800639B8 24420004 */ addiu $v0, $v0, 4 -/* ADAB5C 800639BC 2861001D */ slti $at, $v1, 0x1d -.L800639C0: -/* ADAB60 800639C0 5020008D */ beql $at, $zero, .L80063BF8 -/* ADAB64 800639C4 8FBF0014 */ lw $ra, 0x14($sp) -/* ADAB68 800639C8 146A0007 */ bne $v1, $t2, .L800639E8 -/* ADAB6C 800639CC 252F0001 */ addiu $t7, $t1, 1 -/* ADAB70 800639D0 24010007 */ li $at, 7 -/* ADAB74 800639D4 01E1001A */ div $zero, $t7, $at -/* ADAB78 800639D8 0000C010 */ mfhi $t8 -/* ADAB7C 800639DC AD180000 */ sw $t8, ($t0) -/* ADAB80 800639E0 10000085 */ b .L80063BF8 -/* ADAB84 800639E4 8FBF0014 */ lw $ra, 0x14($sp) -.L800639E8: -/* ADAB88 800639E8 AD030004 */ sw $v1, 4($t0) -/* ADAB8C 800639EC 8D790000 */ lw $t9, ($t3) -/* ADAB90 800639F0 10000080 */ b .L80063BF4 -/* ADAB94 800639F4 AF200000 */ sw $zero, ($t9) -.L800639F8: -/* ADAB98 800639F8 2DA10006 */ sltiu $at, $t5, 6 -/* ADAB9C 800639FC 1020007D */ beqz $at, .L80063BF4 -/* ADABA0 80063A00 000D6880 */ sll $t5, $t5, 2 -/* ADABA4 80063A04 3C018014 */ lui $at, %hi(jtbl_8013AD80) -/* ADABA8 80063A08 002D0821 */ addu $at, $at, $t5 -/* ADABAC 80063A0C 8C2DAD80 */ lw $t5, %lo(jtbl_8013AD80)($at) -/* ADABB0 80063A10 01A00008 */ jr $t5 -/* ADABB4 80063A14 00000000 */ nop -glabel L80063A18 -/* ADABB8 80063A18 8D0E000C */ lw $t6, 0xc($t0) -/* ADABBC 80063A1C 240F0010 */ li $t7, 16 -/* ADABC0 80063A20 54EE0010 */ bnel $a3, $t6, .L80063A64 -/* ADABC4 80063A24 AD0F0010 */ sw $t7, 0x10($t0) -/* ADABC8 80063A28 8D0F0010 */ lw $t7, 0x10($t0) -/* ADABCC 80063A2C 240D0001 */ li $t5, 1 -/* ADABD0 80063A30 25F8FFFF */ addiu $t8, $t7, -1 -/* ADABD4 80063A34 AD180010 */ sw $t8, 0x10($t0) -/* ADABD8 80063A38 8D680000 */ lw $t0, ($t3) -/* ADABDC 80063A3C 8D190010 */ lw $t9, 0x10($t0) -/* ADABE0 80063A40 07230005 */ bgezl $t9, .L80063A58 -/* ADABE4 80063A44 8D0E000C */ lw $t6, 0xc($t0) -/* ADABE8 80063A48 AD0D0010 */ sw $t5, 0x10($t0) -/* ADABEC 80063A4C 10000008 */ b .L80063A70 -/* ADABF0 80063A50 8D680000 */ lw $t0, ($t3) -/* ADABF4 80063A54 8D0E000C */ lw $t6, 0xc($t0) -.L80063A58: -/* ADABF8 80063A58 10000005 */ b .L80063A70 -/* ADABFC 80063A5C 00EE3826 */ xor $a3, $a3, $t6 -/* ADAC00 80063A60 AD0F0010 */ sw $t7, 0x10($t0) -.L80063A64: -/* ADAC04 80063A64 8D780000 */ lw $t8, ($t3) -/* ADAC08 80063A68 AF07000C */ sw $a3, 0xc($t8) -/* ADAC0C 80063A6C 8D680000 */ lw $t0, ($t3) -.L80063A70: -/* ADAC10 80063A70 30F90100 */ andi $t9, $a3, 0x100 -/* ADAC14 80063A74 13200018 */ beqz $t9, .L80063AD8 -/* ADAC18 80063A78 30F80200 */ andi $t8, $a3, 0x200 -/* ADAC1C 80063A7C 94C50000 */ lhu $a1, ($a2) -/* ADAC20 80063A80 3C01FFFF */ lui $at, (0xFFFF3FFF >> 16) # lui $at, 0xffff -/* ADAC24 80063A84 34213FFF */ ori $at, (0xFFFF3FFF & 0xFFFF) # ori $at, $at, 0x3fff -/* ADAC28 80063A88 00A16827 */ nor $t5, $a1, $at -/* ADAC2C 80063A8C 15A00003 */ bnez $t5, .L80063A9C -/* ADAC30 80063A90 3C01FFFF */ lui $at, (0xFFFF7FFF >> 16) # lui $at, 0xffff -/* ADAC34 80063A94 1000002A */ b .L80063B40 -/* ADAC38 80063A98 240303E8 */ li $v1, 1000 -.L80063A9C: -/* ADAC3C 80063A9C 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* ADAC40 80063AA0 00A17027 */ nor $t6, $a1, $at -/* ADAC44 80063AA4 15C00003 */ bnez $t6, .L80063AB4 -/* ADAC48 80063AA8 2401BFFF */ li $at, -16385 -/* ADAC4C 80063AAC 10000007 */ b .L80063ACC -/* ADAC50 80063AB0 24030064 */ li $v1, 100 -.L80063AB4: -/* ADAC54 80063AB4 00A17827 */ nor $t7, $a1, $at -/* ADAC58 80063AB8 15E00003 */ bnez $t7, .L80063AC8 -/* ADAC5C 80063ABC 24020001 */ li $v0, 1 -/* ADAC60 80063AC0 10000001 */ b .L80063AC8 -/* ADAC64 80063AC4 2402000A */ li $v0, 10 -.L80063AC8: -/* ADAC68 80063AC8 00401825 */ move $v1, $v0 -.L80063ACC: -/* ADAC6C 80063ACC 00601025 */ move $v0, $v1 -/* ADAC70 80063AD0 1000001B */ b .L80063B40 -/* ADAC74 80063AD4 00401825 */ move $v1, $v0 -.L80063AD8: -/* ADAC78 80063AD8 13000018 */ beqz $t8, .L80063B3C -/* ADAC7C 80063ADC 00002025 */ move $a0, $zero -/* ADAC80 80063AE0 94C50000 */ lhu $a1, ($a2) -/* ADAC84 80063AE4 3C01FFFF */ lui $at, (0xFFFF3FFF >> 16) # lui $at, 0xffff -/* ADAC88 80063AE8 34213FFF */ ori $at, (0xFFFF3FFF & 0xFFFF) # ori $at, $at, 0x3fff -/* ADAC8C 80063AEC 00A1C827 */ nor $t9, $a1, $at -/* ADAC90 80063AF0 17200003 */ bnez $t9, .L80063B00 -/* ADAC94 80063AF4 3C01FFFF */ li $at, 0xFFFF0000 # 0.000000 -/* ADAC98 80063AF8 10000010 */ b .L80063B3C -/* ADAC9C 80063AFC 2404FC18 */ li $a0, -1000 -.L80063B00: -/* ADACA0 80063B00 34217FFF */ ori $at, (0xFFFF7FFF & 0xFFFF) # ori $at, $at, 0x7fff -/* ADACA4 80063B04 00A16827 */ nor $t5, $a1, $at -/* ADACA8 80063B08 15A00003 */ bnez $t5, .L80063B18 -/* ADACAC 80063B0C 2401BFFF */ li $at, -16385 -/* ADACB0 80063B10 10000007 */ b .L80063B30 -/* ADACB4 80063B14 2403FF9C */ li $v1, -100 -.L80063B18: -/* ADACB8 80063B18 00A17027 */ nor $t6, $a1, $at -/* ADACBC 80063B1C 15C00003 */ bnez $t6, .L80063B2C -/* ADACC0 80063B20 2402FFFF */ li $v0, -1 -/* ADACC4 80063B24 10000001 */ b .L80063B2C -/* ADACC8 80063B28 2402FFF6 */ li $v0, -10 -.L80063B2C: -/* ADACCC 80063B2C 00401825 */ move $v1, $v0 -.L80063B30: -/* ADACD0 80063B30 00601025 */ move $v0, $v1 -/* ADACD4 80063B34 10000001 */ b .L80063B3C -/* ADACD8 80063B38 00402025 */ move $a0, $v0 -.L80063B3C: -/* ADACDC 80063B3C 00801825 */ move $v1, $a0 -.L80063B40: -/* ADACE0 80063B40 8D0F0008 */ lw $t7, 8($t0) -/* ADACE4 80063B44 000C6840 */ sll $t5, $t4, 1 -/* ADACE8 80063B48 000FC040 */ sll $t8, $t7, 1 -/* ADACEC 80063B4C 0118C821 */ addu $t9, $t0, $t8 -/* ADACF0 80063B50 032D1021 */ addu $v0, $t9, $t5 -/* ADACF4 80063B54 844E0014 */ lh $t6, 0x14($v0) -/* ADACF8 80063B58 30F80800 */ andi $t8, $a3, 0x800 -/* ADACFC 80063B5C 01C37821 */ addu $t7, $t6, $v1 -/* ADAD00 80063B60 1300000C */ beqz $t8, .L80063B94 -/* ADAD04 80063B64 A44F0014 */ sh $t7, 0x14($v0) -/* ADAD08 80063B68 8D680000 */ lw $t0, ($t3) -/* ADAD0C 80063B6C 240F000F */ li $t7, 15 -/* ADAD10 80063B70 8D190008 */ lw $t9, 8($t0) -/* ADAD14 80063B74 272DFFFF */ addiu $t5, $t9, -1 -/* ADAD18 80063B78 AD0D0008 */ sw $t5, 8($t0) -/* ADAD1C 80063B7C 8D680000 */ lw $t0, ($t3) -/* ADAD20 80063B80 8D0E0008 */ lw $t6, 8($t0) -/* ADAD24 80063B84 05C30011 */ bgezl $t6, .L80063BCC -/* ADAD28 80063B88 8D680000 */ lw $t0, ($t3) -/* ADAD2C 80063B8C 1000000E */ b .L80063BC8 -/* ADAD30 80063B90 AD0F0008 */ sw $t7, 8($t0) -.L80063B94: -/* ADAD34 80063B94 30F80400 */ andi $t8, $a3, 0x400 -/* ADAD38 80063B98 5300000C */ beql $t8, $zero, .L80063BCC -/* ADAD3C 80063B9C 8D680000 */ lw $t0, ($t3) -/* ADAD40 80063BA0 8D680000 */ lw $t0, ($t3) -/* ADAD44 80063BA4 8D190008 */ lw $t9, 8($t0) -/* ADAD48 80063BA8 272D0001 */ addiu $t5, $t9, 1 -/* ADAD4C 80063BAC AD0D0008 */ sw $t5, 8($t0) -/* ADAD50 80063BB0 8D680000 */ lw $t0, ($t3) -/* ADAD54 80063BB4 8D0E0008 */ lw $t6, 8($t0) -/* ADAD58 80063BB8 29C10010 */ slti $at, $t6, 0x10 -/* ADAD5C 80063BBC 54200003 */ bnezl $at, .L80063BCC -/* ADAD60 80063BC0 8D680000 */ lw $t0, ($t3) -/* ADAD64 80063BC4 AD000008 */ sw $zero, 8($t0) -.L80063BC8: -/* ADAD68 80063BC8 8D680000 */ lw $t0, ($t3) -.L80063BCC: -/* ADAD6C 80063BCC 850F0CD4 */ lh $t7, 0xcd4($t0) -/* ADAD70 80063BD0 51E00009 */ beql $t7, $zero, .L80063BF8 -/* ADAD74 80063BD4 8FBF0014 */ lw $ra, 0x14($sp) -/* ADAD78 80063BD8 A5000CD4 */ sh $zero, 0xcd4($t0) -/* ADAD7C 80063BDC 8D680000 */ lw $t0, ($t3) -/* ADAD80 80063BE0 44806000 */ mtc1 $zero, $f12 -/* ADAD84 80063BE4 91050CD7 */ lbu $a1, 0xcd7($t0) -/* ADAD88 80063BE8 91060CD9 */ lbu $a2, 0xcd9($t0) -/* ADAD8C 80063BEC 0C02A800 */ jal func_800AA000 -/* ADAD90 80063BF0 91070CDB */ lbu $a3, 0xcdb($t0) -.L80063BF4: -/* ADAD94 80063BF4 8FBF0014 */ lw $ra, 0x14($sp) -.L80063BF8: -/* ADAD98 80063BF8 27BD0018 */ addiu $sp, $sp, 0x18 -/* ADAD9C 80063BFC 03E00008 */ jr $ra -/* ADADA0 80063C00 00000000 */ nop - diff --git a/asm/non_matchings/code/z_debug/func_80063C04.s b/asm/non_matchings/code/z_debug/func_80063C04.s deleted file mode 100644 index 321fc93946..0000000000 --- a/asm/non_matchings/code/z_debug/func_80063C04.s +++ /dev/null @@ -1,105 +0,0 @@ -.rdata -glabel D_8013AD54 - .asciz "%s%02d%6d" - .balign 4 - -.text -glabel func_80063C04 -/* ADADA4 80063C04 27BDFFA0 */ addiu $sp, $sp, -0x60 -/* ADADA8 80063C08 AFB30028 */ sw $s3, 0x28($sp) -/* ADADAC 80063C0C 3C138016 */ lui $s3, %hi(gGameInfo) # $s3, 0x8016 -/* ADADB0 80063C10 2673FA90 */ addiu $s3, %lo(gGameInfo) # addiu $s3, $s3, -0x570 -/* ADADB4 80063C14 8E620000 */ lw $v0, ($s3) -/* ADADB8 80063C18 AFBF003C */ sw $ra, 0x3c($sp) -/* ADADBC 80063C1C AFB70038 */ sw $s7, 0x38($sp) -/* ADADC0 80063C20 AFB60034 */ sw $s6, 0x34($sp) -/* ADADC4 80063C24 AFB50030 */ sw $s5, 0x30($sp) -/* ADADC8 80063C28 AFB4002C */ sw $s4, 0x2c($sp) -/* ADADCC 80063C2C AFB20024 */ sw $s2, 0x24($sp) -/* ADADD0 80063C30 AFB10020 */ sw $s1, 0x20($sp) -/* ADADD4 80063C34 AFB0001C */ sw $s0, 0x1c($sp) -/* ADADD8 80063C38 8C4E0004 */ lw $t6, 4($v0) -/* ADADDC 80063C3C 8C430000 */ lw $v1, ($v0) -/* ADADE0 80063C40 24180052 */ li $t8, 82 -/* ADADE4 80063C44 A3B8004C */ sb $t8, 0x4c($sp) -/* ADADE8 80063C48 8C590004 */ lw $t9, 4($v0) -/* ADADEC 80063C4C 000E7880 */ sll $t7, $t6, 2 -/* ADADF0 80063C50 3C088012 */ lui $t0, %hi(D_8011E148) -/* ADADF4 80063C54 01EE7823 */ subu $t7, $t7, $t6 -/* ADADF8 80063C58 000F7840 */ sll $t7, $t7, 1 -/* ADADFC 80063C5C 01194021 */ addu $t0, $t0, $t9 -/* ADAE00 80063C60 9108E148 */ lbu $t0, %lo(D_8011E148)($t0) -/* ADAE04 80063C64 01E3A821 */ addu $s5, $t7, $v1 -/* ADAE08 80063C68 0015A900 */ sll $s5, $s5, 4 -/* ADAE0C 80063C6C 24090080 */ li $t1, 128 -/* ADAE10 80063C70 0003A100 */ sll $s4, $v1, 4 -/* ADAE14 80063C74 00808825 */ move $s1, $a0 -/* ADAE18 80063C78 2694FFF0 */ addiu $s4, $s4, -0x10 -/* ADAE1C 80063C7C 26B5FFF0 */ addiu $s5, $s5, -0x10 -/* ADAE20 80063C80 A3A0004E */ sb $zero, 0x4e($sp) -/* ADAE24 80063C84 AFA90010 */ sw $t1, 0x10($sp) -/* ADAE28 80063C88 00002825 */ move $a1, $zero -/* ADAE2C 80063C8C 24060080 */ li $a2, 128 -/* ADAE30 80063C90 24070080 */ li $a3, 128 -/* ADAE34 80063C94 0C03ECEB */ jal GfxPrint_SetColor -/* ADAE38 80063C98 A3A8004D */ sb $t0, 0x4d($sp) -/* ADAE3C 80063C9C 02809025 */ move $s2, $s4 -/* ADAE40 80063CA0 3C148014 */ lui $s4, %hi(D_8013AD54) # $s4, 0x8014 -/* ADAE44 80063CA4 0015B840 */ sll $s7, $s5, 1 -/* ADAE48 80063CA8 27B5004C */ addiu $s5, $sp, 0x4c -/* ADAE4C 80063CAC 2694AD54 */ addiu $s4, %lo(D_8013AD54) # addiu $s4, $s4, -0x52ac -/* ADAE50 80063CB0 00008025 */ move $s0, $zero -/* ADAE54 80063CB4 24160010 */ li $s6, 16 -.L80063CB8: -/* ADAE58 80063CB8 8E6A0000 */ lw $t2, ($s3) -/* ADAE5C 80063CBC 02202025 */ move $a0, $s1 -/* ADAE60 80063CC0 00002825 */ move $a1, $zero -/* ADAE64 80063CC4 8D4B0008 */ lw $t3, 8($t2) -/* ADAE68 80063CC8 240600FF */ li $a2, 255 -/* ADAE6C 80063CCC 240700FF */ li $a3, 255 -/* ADAE70 80063CD0 160B0003 */ bne $s0, $t3, .L80063CE0 -/* ADAE74 80063CD4 240C00FF */ li $t4, 255 -/* ADAE78 80063CD8 0C03ECEB */ jal GfxPrint_SetColor -/* ADAE7C 80063CDC AFAC0010 */ sw $t4, 0x10($sp) -.L80063CE0: -/* ADAE80 80063CE0 02202025 */ move $a0, $s1 -/* ADAE84 80063CE4 24050003 */ li $a1, 3 -/* ADAE88 80063CE8 0C03ED07 */ jal GfxPrint_SetPos -/* ADAE8C 80063CEC 26060005 */ addiu $a2, $s0, 5 -/* ADAE90 80063CF0 8E6D0000 */ lw $t5, ($s3) -/* ADAE94 80063CF4 00107040 */ sll $t6, $s0, 1 -/* ADAE98 80063CF8 02202025 */ move $a0, $s1 -/* ADAE9C 80063CFC 01AE7821 */ addu $t7, $t5, $t6 -/* ADAEA0 80063D00 01F7C021 */ addu $t8, $t7, $s7 -/* ADAEA4 80063D04 87190014 */ lh $t9, 0x14($t8) -/* ADAEA8 80063D08 02802825 */ move $a1, $s4 -/* ADAEAC 80063D0C 02A03025 */ move $a2, $s5 -/* ADAEB0 80063D10 02403825 */ move $a3, $s2 -/* ADAEB4 80063D14 0C03EF2D */ jal GfxPrint_Printf -/* ADAEB8 80063D18 AFB90010 */ sw $t9, 0x10($sp) -/* ADAEBC 80063D1C 8E680000 */ lw $t0, ($s3) -/* ADAEC0 80063D20 02202025 */ move $a0, $s1 -/* ADAEC4 80063D24 00002825 */ move $a1, $zero -/* ADAEC8 80063D28 8D090008 */ lw $t1, 8($t0) -/* ADAECC 80063D2C 24060080 */ li $a2, 128 -/* ADAED0 80063D30 24070080 */ li $a3, 128 -/* ADAED4 80063D34 16090003 */ bne $s0, $t1, .L80063D44 -/* ADAED8 80063D38 240A0080 */ li $t2, 128 -/* ADAEDC 80063D3C 0C03ECEB */ jal GfxPrint_SetColor -/* ADAEE0 80063D40 AFAA0010 */ sw $t2, 0x10($sp) -.L80063D44: -/* ADAEE4 80063D44 26100001 */ addiu $s0, $s0, 1 -/* ADAEE8 80063D48 1616FFDB */ bne $s0, $s6, .L80063CB8 -/* ADAEEC 80063D4C 26520001 */ addiu $s2, $s2, 1 -/* ADAEF0 80063D50 8FBF003C */ lw $ra, 0x3c($sp) -/* ADAEF4 80063D54 8FB0001C */ lw $s0, 0x1c($sp) -/* ADAEF8 80063D58 8FB10020 */ lw $s1, 0x20($sp) -/* ADAEFC 80063D5C 8FB20024 */ lw $s2, 0x24($sp) -/* ADAF00 80063D60 8FB30028 */ lw $s3, 0x28($sp) -/* ADAF04 80063D64 8FB4002C */ lw $s4, 0x2c($sp) -/* ADAF08 80063D68 8FB50030 */ lw $s5, 0x30($sp) -/* ADAF0C 80063D6C 8FB60034 */ lw $s6, 0x34($sp) -/* ADAF10 80063D70 8FB70038 */ lw $s7, 0x38($sp) -/* ADAF14 80063D74 03E00008 */ jr $ra -/* ADAF18 80063D78 27BD0060 */ addiu $sp, $sp, 0x60 - diff --git a/asm/non_matchings/code/z_debug/func_80063D7C.s b/asm/non_matchings/code/z_debug/func_80063D7C.s deleted file mode 100644 index 061093264e..0000000000 --- a/asm/non_matchings/code/z_debug/func_80063D7C.s +++ /dev/null @@ -1,81 +0,0 @@ -.rdata -glabel D_8013AD60 - .asciz "../z_debug.c" - .balign 4 - -glabel D_8013AD70 - .asciz "../z_debug.c" - .balign 4 - -.text -glabel func_80063D7C -/* ADAF1C 80063D7C 27BDFF80 */ addiu $sp, $sp, -0x80 -/* ADAF20 80063D80 AFB00018 */ sw $s0, 0x18($sp) -/* ADAF24 80063D84 00808025 */ move $s0, $a0 -/* ADAF28 80063D88 AFBF001C */ sw $ra, 0x1c($sp) -/* ADAF2C 80063D8C 3C068014 */ lui $a2, %hi(D_8013AD60) # $a2, 0x8014 -/* ADAF30 80063D90 24C6AD60 */ addiu $a2, %lo(D_8013AD60) # addiu $a2, $a2, -0x52a0 -/* ADAF34 80063D94 02002825 */ move $a1, $s0 -/* ADAF38 80063D98 27A40030 */ addiu $a0, $sp, 0x30 -/* ADAF3C 80063D9C 0C031AB1 */ jal func_800C6AC4 -/* ADAF40 80063DA0 24070274 */ li $a3, 628 -/* ADAF44 80063DA4 0C03EEE3 */ jal GfxPrint_Ctor -/* ADAF48 80063DA8 27A40048 */ addiu $a0, $sp, 0x48 -/* ADAF4C 80063DAC 8E0402C0 */ lw $a0, 0x2c0($s0) -/* ADAF50 80063DB0 0C031B08 */ jal func_800C6C20 -/* ADAF54 80063DB4 AFA40078 */ sw $a0, 0x78($sp) -/* ADAF58 80063DB8 8E0402B0 */ lw $a0, 0x2b0($s0) -/* ADAF5C 80063DBC 3C0FDE00 */ lui $t7, 0xde00 -/* ADAF60 80063DC0 00402825 */ move $a1, $v0 -/* ADAF64 80063DC4 248E0008 */ addiu $t6, $a0, 8 -/* ADAF68 80063DC8 AE0E02B0 */ sw $t6, 0x2b0($s0) -/* ADAF6C 80063DCC AC820004 */ sw $v0, 4($a0) -/* ADAF70 80063DD0 AC8F0000 */ sw $t7, ($a0) -/* ADAF74 80063DD4 0C03EF07 */ jal GfxPrint_Open -/* ADAF78 80063DD8 27A40048 */ addiu $a0, $sp, 0x48 -/* ADAF7C 80063DDC 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ADAF80 80063DE0 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ADAF84 80063DE4 24010001 */ li $at, 1 -/* ADAF88 80063DE8 84430194 */ lh $v1, 0x194($v0) -/* ADAF8C 80063DEC 10610003 */ beq $v1, $at, .L80063DFC -/* ADAF90 80063DF0 24010008 */ li $at, 8 -/* ADAF94 80063DF4 54610006 */ bnel $v1, $at, .L80063E10 -/* ADAF98 80063DF8 8C580000 */ lw $t8, ($v0) -.L80063DFC: -/* ADAF9C 80063DFC 0C018E0A */ jal func_80063828 -/* ADAFA0 80063E00 27A40048 */ addiu $a0, $sp, 0x48 -/* ADAFA4 80063E04 3C028016 */ lui $v0, %hi(gGameInfo) # $v0, 0x8016 -/* ADAFA8 80063E08 8C42FA90 */ lw $v0, %lo(gGameInfo)($v0) -/* ADAFAC 80063E0C 8C580000 */ lw $t8, ($v0) -.L80063E10: -/* ADAFB0 80063E10 13000003 */ beqz $t8, .L80063E20 -/* ADAFB4 80063E14 00000000 */ nop -/* ADAFB8 80063E18 0C018F01 */ jal func_80063C04 -/* ADAFBC 80063E1C 27A40048 */ addiu $a0, $sp, 0x48 -.L80063E20: -/* ADAFC0 80063E20 3C018012 */ lui $at, %hi(D_8011E0B0) # $at, 0x8012 -/* ADAFC4 80063E24 A420E0B0 */ sh $zero, %lo(D_8011E0B0)($at) -/* ADAFC8 80063E28 0C03EF19 */ jal GfxPrint_Close -/* ADAFCC 80063E2C 27A40048 */ addiu $a0, $sp, 0x48 -/* ADAFD0 80063E30 3C19DF00 */ lui $t9, 0xdf00 -/* ADAFD4 80063E34 AC590000 */ sw $t9, ($v0) -/* ADAFD8 80063E38 24450008 */ addiu $a1, $v0, 8 -/* ADAFDC 80063E3C AC400004 */ sw $zero, 4($v0) -/* ADAFE0 80063E40 AFA5007C */ sw $a1, 0x7c($sp) -/* ADAFE4 80063E44 0C031B0A */ jal func_800C6C28 -/* ADAFE8 80063E48 8FA40078 */ lw $a0, 0x78($sp) -/* ADAFEC 80063E4C 8FA5007C */ lw $a1, 0x7c($sp) -/* ADAFF0 80063E50 3C068014 */ lui $a2, %hi(D_8013AD70) # $a2, 0x8014 -/* ADAFF4 80063E54 24C6AD70 */ addiu $a2, %lo(D_8013AD70) # addiu $a2, $a2, -0x5290 -/* ADAFF8 80063E58 AE0502C0 */ sw $a1, 0x2c0($s0) -/* ADAFFC 80063E5C 02002825 */ move $a1, $s0 -/* ADB000 80063E60 27A40030 */ addiu $a0, $sp, 0x30 -/* ADB004 80063E64 0C031AD5 */ jal func_800C6B54 -/* ADB008 80063E68 24070298 */ li $a3, 664 -/* ADB00C 80063E6C 0C03EF05 */ jal GfxPrint_Dtor -/* ADB010 80063E70 27A40048 */ addiu $a0, $sp, 0x48 -/* ADB014 80063E74 8FBF001C */ lw $ra, 0x1c($sp) -/* ADB018 80063E78 8FB00018 */ lw $s0, 0x18($sp) -/* ADB01C 80063E7C 27BD0080 */ addiu $sp, $sp, 0x80 -/* ADB020 80063E80 03E00008 */ jr $ra -/* ADB024 80063E84 00000000 */ nop diff --git a/asm/non_matchings/code/z_jpeg/func_8006DE30.s b/asm/non_matchings/code/z_jpeg/func_8006DE30.s index 8e679d77ac..84bfe49f78 100644 --- a/asm/non_matchings/code/z_jpeg/func_8006DE30.s +++ b/asm/non_matchings/code/z_jpeg/func_8006DE30.s @@ -25,10 +25,10 @@ glabel func_8006DE30 /* AE502C 8006DE8C 3C018012 */ lui $at, %hi(D_8011FA64) # $at, 0x8012 /* AE5030 8006DE90 AC20FA64 */ sw $zero, %lo(D_8011FA64)($at) /* AE5034 8006DE94 AFA40028 */ sw $a0, 0x28($sp) -/* AE5038 8006DE98 0C034B7C */ jal func_800D2DF0 +/* AE5038 8006DE98 0C034B7C */ jal SysUcode_GetUCodeBoot /* AE503C 8006DE9C AFA30024 */ sw $v1, 0x24($sp) /* AE5040 8006DEA0 3C018012 */ lui $at, %hi(D_8011FA68) # $at, 0x8012 -/* AE5044 8006DEA4 0C034B7F */ jal func_800D2DFC +/* AE5044 8006DEA4 0C034B7F */ jal SysUcode_GetUcodeBootSize /* AE5048 8006DEA8 AC22FA68 */ sw $v0, %lo(D_8011FA68)($at) /* AE504C 8006DEAC 8FA30024 */ lw $v1, 0x24($sp) /* AE5050 8006DEB0 8FA70028 */ lw $a3, 0x28($sp) diff --git a/asm/non_matchings/code/z_jpeg/func_8006E418.s b/asm/non_matchings/code/z_jpeg/func_8006E418.s index ca42877a75..09a98ffa82 100644 --- a/asm/non_matchings/code/z_jpeg/func_8006E418.s +++ b/asm/non_matchings/code/z_jpeg/func_8006E418.s @@ -96,7 +96,7 @@ glabel func_8006E418 /* AE5620 8006E480 27A502B8 */ addiu $a1, $sp, 0x2b8 /* AE5624 8006E484 0C001874 */ jal osCreateMesgQueue /* AE5628 8006E488 24060001 */ li $a2, 1 -/* AE562C 8006E48C 0C01EFC4 */ jal func_8007BF10 +/* AE562C 8006E48C 0C01EFC4 */ jal MsgEvent_SendNullTask /* AE5630 8006E490 00000000 */ nop /* AE5634 8006E494 0C001A78 */ jal osGetTime /* AE5638 8006E498 00000000 */ nop diff --git a/asm/non_matchings/code/z_lib/Lib_MemSet.s b/asm/non_matchings/code/z_lib/Lib_MemSet.s deleted file mode 100644 index 94e04c8ff1..0000000000 --- a/asm/non_matchings/code/z_lib/Lib_MemSet.s +++ /dev/null @@ -1,26 +0,0 @@ -glabel Lib_MemSet -/* AEE980 800777E0 AFA60008 */ sw $a2, 8($sp) -/* AEE984 800777E4 30C600FF */ andi $a2, $a2, 0xff -/* AEE988 800777E8 10A00010 */ beqz $a1, .L8007782C -/* AEE98C 800777EC 00001025 */ move $v0, $zero -/* AEE990 800777F0 30A70003 */ andi $a3, $a1, 3 -/* AEE994 800777F4 10E00006 */ beqz $a3, .L80077810 -/* AEE998 800777F8 00E01825 */ move $v1, $a3 -.L800777FC: -/* AEE99C 800777FC 24420001 */ addiu $v0, $v0, 1 -/* AEE9A0 80077800 A0860000 */ sb $a2, ($a0) -/* AEE9A4 80077804 1462FFFD */ bne $v1, $v0, .L800777FC -/* AEE9A8 80077808 24840001 */ addiu $a0, $a0, 1 -/* AEE9AC 8007780C 10450007 */ beq $v0, $a1, .L8007782C -.L80077810: -/* AEE9B0 80077810 24420004 */ addiu $v0, $v0, 4 -/* AEE9B4 80077814 A0860000 */ sb $a2, ($a0) -/* AEE9B8 80077818 A0860001 */ sb $a2, 1($a0) -/* AEE9BC 8007781C A0860002 */ sb $a2, 2($a0) -/* AEE9C0 80077820 A0860003 */ sb $a2, 3($a0) -/* AEE9C4 80077824 1445FFFA */ bne $v0, $a1, .L80077810 -/* AEE9C8 80077828 24840004 */ addiu $a0, $a0, 4 -.L8007782C: -/* AEE9CC 8007782C 03E00008 */ jr $ra -/* AEE9D0 80077830 00000000 */ nop - diff --git a/asm/non_matchings/code/z_lib/Math_SmoothScaleMaxMinS.s b/asm/non_matchings/code/z_lib/Math_SmoothScaleMaxMinS.s deleted file mode 100644 index d28d2a5fe2..0000000000 --- a/asm/non_matchings/code/z_lib/Math_SmoothScaleMaxMinS.s +++ /dev/null @@ -1,82 +0,0 @@ -glabel Math_SmoothScaleMaxMinS -/* AEF83C 8007869C AFA50004 */ sw $a1, 4($sp) -/* AEF840 800786A0 AFA60008 */ sw $a2, 8($sp) -/* AEF844 800786A4 AFA7000C */ sw $a3, 0xc($sp) -/* AEF848 800786A8 84880000 */ lh $t0, ($a0) -/* AEF84C 800786AC 00052C00 */ sll $a1, $a1, 0x10 -/* AEF850 800786B0 00052C03 */ sra $a1, $a1, 0x10 -/* AEF854 800786B4 00A81823 */ subu $v1, $a1, $t0 -/* AEF858 800786B8 00063400 */ sll $a2, $a2, 0x10 -/* AEF85C 800786BC 00031C00 */ sll $v1, $v1, 0x10 -/* AEF860 800786C0 00063403 */ sra $a2, $a2, 0x10 -/* AEF864 800786C4 10A8003B */ beq $a1, $t0, .L800787B4 -/* AEF868 800786C8 00031C03 */ sra $v1, $v1, 0x10 -/* AEF86C 800786CC 0066001A */ div $zero, $v1, $a2 -/* AEF870 800786D0 87A90012 */ lh $t1, 0x12($sp) -/* AEF874 800786D4 14C00002 */ bnez $a2, .L800786E0 -/* AEF878 800786D8 00000000 */ nop -/* AEF87C 800786DC 0007000D */ break 7 -.L800786E0: -/* AEF880 800786E0 2401FFFF */ li $at, -1 -/* AEF884 800786E4 14C10004 */ bne $a2, $at, .L800786F8 -/* AEF888 800786E8 3C018000 */ lui $at, 0x8000 -/* AEF88C 800786EC 14610002 */ bne $v1, $at, .L800786F8 -/* AEF890 800786F0 00000000 */ nop -/* AEF894 800786F4 0006000D */ break 6 -.L800786F8: -/* AEF898 800786F8 00003812 */ mflo $a3 -/* AEF89C 800786FC 00075400 */ sll $t2, $a3, 0x10 -/* AEF8A0 80078700 000A5403 */ sra $t2, $t2, 0x10 -/* AEF8A4 80078704 00071400 */ sll $v0, $a3, 0x10 -/* AEF8A8 80078708 012A082A */ slt $at, $t1, $t2 -/* AEF8AC 8007870C 14200005 */ bnez $at, .L80078724 -/* AEF8B0 80078710 00021403 */ sra $v0, $v0, 0x10 -/* AEF8B4 80078714 00097023 */ negu $t6, $t1 -/* AEF8B8 80078718 014E082A */ slt $at, $t2, $t6 -/* AEF8BC 8007871C 10200010 */ beqz $at, .L80078760 -/* AEF8C0 80078720 00000000 */ nop -.L80078724: -/* AEF8C4 80078724 87AF000E */ lh $t7, 0xe($sp) -/* AEF8C8 80078728 87A5000E */ lh $a1, 0xe($sp) -/* AEF8CC 8007872C 01EA082A */ slt $at, $t7, $t2 -/* AEF8D0 80078730 10200002 */ beqz $at, .L8007873C -/* AEF8D4 80078734 00052823 */ negu $a1, $a1 -/* AEF8D8 80078738 01E01025 */ move $v0, $t7 -.L8007873C: -/* AEF8DC 8007873C 0045082A */ slt $at, $v0, $a1 -/* AEF8E0 80078740 50200004 */ beql $at, $zero, .L80078754 -/* AEF8E4 80078744 0102C021 */ addu $t8, $t0, $v0 -/* AEF8E8 80078748 00051400 */ sll $v0, $a1, 0x10 -/* AEF8EC 8007874C 00021403 */ sra $v0, $v0, 0x10 -/* AEF8F0 80078750 0102C021 */ addu $t8, $t0, $v0 -.L80078754: -/* AEF8F4 80078754 A4980000 */ sh $t8, ($a0) -/* AEF8F8 80078758 03E00008 */ jr $ra -/* AEF8FC 8007875C 00601025 */ move $v0, $v1 -.L80078760: -/* AEF900 80078760 0460000C */ bltz $v1, .L80078794 -/* AEF904 80078764 01097823 */ subu $t7, $t0, $t1 -/* AEF908 80078768 0109C821 */ addu $t9, $t0, $t1 -/* AEF90C 8007876C A4990000 */ sh $t9, ($a0) -/* AEF910 80078770 848B0000 */ lh $t3, ($a0) -/* AEF914 80078774 00601025 */ move $v0, $v1 -/* AEF918 80078778 00AB6023 */ subu $t4, $a1, $t3 -/* AEF91C 8007877C 000C6C00 */ sll $t5, $t4, 0x10 -/* AEF920 80078780 000D7403 */ sra $t6, $t5, 0x10 -/* AEF924 80078784 1DC0000B */ bgtz $t6, .L800787B4 -/* AEF928 80078788 00000000 */ nop -/* AEF92C 8007878C 03E00008 */ jr $ra -/* AEF930 80078790 A4850000 */ sh $a1, ($a0) -.L80078794: -/* AEF934 80078794 A48F0000 */ sh $t7, ($a0) -/* AEF938 80078798 84980000 */ lh $t8, ($a0) -/* AEF93C 8007879C 00B8C823 */ subu $t9, $a1, $t8 -/* AEF940 800787A0 00195C00 */ sll $t3, $t9, 0x10 -/* AEF944 800787A4 000B6403 */ sra $t4, $t3, 0x10 -/* AEF948 800787A8 05800002 */ bltz $t4, .L800787B4 -/* AEF94C 800787AC 00000000 */ nop -/* AEF950 800787B0 A4850000 */ sh $a1, ($a0) -.L800787B4: -/* AEF954 800787B4 03E00008 */ jr $ra -/* AEF958 800787B8 00601025 */ move $v0, $v1 - diff --git a/asm/non_matchings/code/z_message_PAL/func_80109B3C.s b/asm/non_matchings/code/z_message_PAL/func_80109B3C.s index 0d2a8a12e7..eeb25c3c11 100644 --- a/asm/non_matchings/code/z_message_PAL/func_80109B3C.s +++ b/asm/non_matchings/code/z_message_PAL/func_80109B3C.s @@ -431,7 +431,7 @@ glabel func_80109B3C /* B81308 8010A168 1420000A */ bnez $at, .L8010A194 /* B8130C 8010A16C A7A4007C */ sh $a0, 0x7c($sp) .L8010A170: -/* B81310 8010A170 2442FC18 */ addiu $v0, %lo(D_8015FC18) # addiu $v0, $v0, -0x3e8 +/* B81310 8010A170 2442FC18 */ addiu $v0, %lo(D_8015FA98 + (0x18*0x10)) # addiu $v0, $v0, -0x3e8 /* B81314 8010A174 00021400 */ sll $v0, $v0, 0x10 /* B81318 8010A178 24840001 */ addiu $a0, $a0, 1 /* B8131C 8010A17C 00021403 */ sra $v0, $v0, 0x10 diff --git a/asm/non_matchings/code/z_play/func_800BEDD8.s b/asm/non_matchings/code/z_play/func_800BEDD8.s index 040866161b..1be2fffa21 100644 --- a/asm/non_matchings/code/z_play/func_800BEDD8.s +++ b/asm/non_matchings/code/z_play/func_800BEDD8.s @@ -370,7 +370,7 @@ glabel func_800BEDD8 /* B364E4 800BF344 84430190 */ lh $v1, 0x190($v0) /* B364E8 800BF348 5461000E */ bnel $v1, $at, .L800BF384 /* B364EC 800BF34C 28610004 */ slti $at, $v1, 4 -/* B364F0 800BF350 0C01EFC4 */ jal func_8007BF10 +/* B364F0 800BF350 0C01EFC4 */ jal MsgEvent_SendNullTask /* B364F4 800BF354 00000000 */ nop /* B364F8 800BF358 0C030DDC */ jal func_800C3770 /* B364FC 800BF35C 8FA4003C */ lw $a0, 0x3c($sp) diff --git a/asm/non_matchings/code/z_room/func_80096B6C.s b/asm/non_matchings/code/z_room/func_80096B6C.s index dd8e978216..d4ecbeac47 100644 --- a/asm/non_matchings/code/z_room/func_80096B6C.s +++ b/asm/non_matchings/code/z_room/func_80096B6C.s @@ -224,7 +224,7 @@ glabel func_80096B6C /* B0E010 80096E70 AE0A02C0 */ sw $t2, 0x2c0($s0) /* B0E014 80096E74 AF2B0000 */ sw $t3, ($t9) /* B0E018 80096E78 AFB90058 */ sw $t9, 0x58($sp) -/* B0E01C 80096E7C 0C034B88 */ jal func_800D2E20 +/* B0E01C 80096E7C 0C034B88 */ jal SysUcode_GetUcodeData /* B0E020 80096E80 AFA80048 */ sw $t0, 0x48($sp) /* B0E024 80096E84 8FA40058 */ lw $a0, 0x58($sp) /* B0E028 80096E88 3C0DDD00 */ lui $t5, (0xDD0007FF >> 16) # lui $t5, 0xdd00 @@ -234,7 +234,7 @@ glabel func_80096B6C /* B0E038 80096E98 246C0008 */ addiu $t4, $v1, 8 /* B0E03C 80096E9C AE0C02C0 */ sw $t4, 0x2c0($s0) /* B0E040 80096EA0 AC6D0000 */ sw $t5, ($v1) -/* B0E044 80096EA4 0C034B85 */ jal func_800D2E14 +/* B0E044 80096EA4 0C034B85 */ jal SysUcode_GetUcode /* B0E048 80096EA8 AFA30058 */ sw $v1, 0x58($sp) /* B0E04C 80096EAC 8FA40058 */ lw $a0, 0x58($sp) /* B0E050 80096EB0 8FA80048 */ lw $t0, 0x48($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Destroy.s deleted file mode 100644 index 09fb4e368f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Destroy.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel ObjBombiwa_Destroy -/* 00120 80B91710 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00124 80B91714 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 00128 80B91718 AFBF0014 */ sw $ra, 0x0014($sp) -/* 0012C 80B9171C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00130 80B91720 0C0170EB */ jal ActorCollider_FreeCylinder - -/* 00134 80B91724 24E5014C */ addiu $a1, $a3, 0x014C ## $a1 = 0000014C -/* 00138 80B91728 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0013C 80B9172C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00140 80B91730 03E00008 */ jr $ra -/* 00144 80B91734 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Draw.s b/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Draw.s deleted file mode 100644 index 55780313d9..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Draw.s +++ /dev/null @@ -1,17 +0,0 @@ -glabel ObjBombiwa_Draw -/* 00458 80B91A48 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0045C 80B91A4C AFA40018 */ sw $a0, 0x0018($sp) -/* 00460 80B91A50 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00464 80B91A54 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00468 80B91A58 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 0046C 80B91A5C 0C00D498 */ jal Draw_DListOpa - -/* 00470 80B91A60 24A509E0 */ addiu $a1, $a1, 0x09E0 ## $a1 = 060009E0 -/* 00474 80B91A64 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00478 80B91A68 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0047C 80B91A6C 03E00008 */ jr $ra -/* 00480 80B91A70 00000000 */ nop -/* 00484 80B91A74 00000000 */ nop -/* 00488 80B91A78 00000000 */ nop -/* 0048C 80B91A7C 00000000 */ nop - diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Init.s b/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Init.s deleted file mode 100644 index 8cffc64b81..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Init.s +++ /dev/null @@ -1,60 +0,0 @@ -glabel ObjBombiwa_Init -/* 00058 80B91648 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 0005C 80B9164C AFA50024 */ sw $a1, 0x0024($sp) -/* 00060 80B91650 AFBF001C */ sw $ra, 0x001C($sp) -/* 00064 80B91654 AFB00018 */ sw $s0, 0x0018($sp) -/* 00068 80B91658 3C0580B9 */ lui $a1, %hi(D_80B91AD4) ## $a1 = 80B90000 -/* 0006C 80B9165C 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00070 80B91660 0C01E037 */ jal Actor_ProcessInitChain - -/* 00074 80B91664 24A51AD4 */ addiu $a1, $a1, %lo(D_80B91AD4) ## $a1 = 80B91AD4 -/* 00078 80B91668 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 0007C 80B9166C 0C2E457C */ jal func_80B915F0 -/* 00080 80B91670 8FA50024 */ lw $a1, 0x0024($sp) -/* 00084 80B91674 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 00088 80B91678 8FA40024 */ lw $a0, 0x0024($sp) -/* 0008C 80B9167C 0C00B2D0 */ jal Flags_GetSwitch - -/* 00090 80B91680 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000 -/* 00094 80B91684 10400005 */ beq $v0, $zero, .L80B9169C -/* 00098 80B91688 26040098 */ addiu $a0, $s0, 0x0098 ## $a0 = 00000098 -/* 0009C 80B9168C 0C00B55C */ jal Actor_Kill - -/* 000A0 80B91690 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000A4 80B91694 1000001A */ beq $zero, $zero, .L80B91700 -/* 000A8 80B91698 8FBF001C */ lw $ra, 0x001C($sp) -.L80B9169C: -/* 000AC 80B9169C 3C0680B9 */ lui $a2, %hi(D_80B91ACC) ## $a2 = 80B90000 -/* 000B0 80B916A0 24C61ACC */ addiu $a2, $a2, %lo(D_80B91ACC) ## $a2 = 80B91ACC -/* 000B4 80B916A4 0C0187B5 */ jal func_80061ED4 -/* 000B8 80B916A8 00002825 */ or $a1, $zero, $zero ## $a1 = 00000000 -/* 000BC 80B916AC 860E00B6 */ lh $t6, 0x00B6($s0) ## 000000B6 -/* 000C0 80B916B0 3C014780 */ lui $at, 0x4780 ## $at = 47800000 -/* 000C4 80B916B4 55C0000A */ bnel $t6, $zero, .L80B916E0 -/* 000C8 80B916B8 3C01C348 */ lui $at, 0xC348 ## $at = C3480000 -/* 000CC 80B916BC 44816000 */ mtc1 $at, $f12 ## $f12 = -200.00 -/* 000D0 80B916C0 0C00CFBE */ jal Math_Rand_ZeroFloat - -/* 000D4 80B916C4 00000000 */ nop -/* 000D8 80B916C8 4600010D */ trunc.w.s $f4, $f0 -/* 000DC 80B916CC 44022000 */ mfc1 $v0, $f4 -/* 000E0 80B916D0 00000000 */ nop -/* 000E4 80B916D4 A6020032 */ sh $v0, 0x0032($s0) ## 00000032 -/* 000E8 80B916D8 A60200B6 */ sh $v0, 0x00B6($s0) ## 000000B6 -/* 000EC 80B916DC 3C01C348 */ lui $at, 0xC348 ## $at = C3480000 -.L80B916E0: -/* 000F0 80B916E0 44813000 */ mtc1 $at, $f6 ## $f6 = -200.00 -/* 000F4 80B916E4 3C0141A0 */ lui $at, 0x41A0 ## $at = 41A00000 -/* 000F8 80B916E8 44815000 */ mtc1 $at, $f10 ## $f10 = 20.00 -/* 000FC 80B916EC C608000C */ lwc1 $f8, 0x000C($s0) ## 0000000C -/* 00100 80B916F0 E60600BC */ swc1 $f6, 0x00BC($s0) ## 000000BC -/* 00104 80B916F4 460A4400 */ add.s $f16, $f8, $f10 -/* 00108 80B916F8 E6100028 */ swc1 $f16, 0x0028($s0) ## 00000028 -/* 0010C 80B916FC 8FBF001C */ lw $ra, 0x001C($sp) -.L80B91700: -/* 00110 80B91700 8FB00018 */ lw $s0, 0x0018($sp) -/* 00114 80B91704 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00118 80B91708 03E00008 */ jr $ra -/* 0011C 80B9170C 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Update.s b/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Update.s deleted file mode 100644 index a357967a45..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Update.s +++ /dev/null @@ -1,81 +0,0 @@ -glabel ObjBombiwa_Update -/* 00348 80B91938 27BDFFD0 */ addiu $sp, $sp, 0xFFD0 ## $sp = FFFFFFD0 -/* 0034C 80B9193C AFB00014 */ sw $s0, 0x0014($sp) -/* 00350 80B91940 00808025 */ or $s0, $a0, $zero ## $s0 = 00000000 -/* 00354 80B91944 AFB10018 */ sw $s1, 0x0018($sp) -/* 00358 80B91948 00A08825 */ or $s1, $a1, $zero ## $s1 = 00000000 -/* 0035C 80B9194C AFBF001C */ sw $ra, 0x001C($sp) -/* 00360 80B91950 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00364 80B91954 0C00CDA1 */ jal func_80033684 -/* 00368 80B91958 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 0036C 80B9195C 1440000C */ bne $v0, $zero, .L80B91990 -/* 00370 80B91960 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 00374 80B91964 9202015D */ lbu $v0, 0x015D($s0) ## 0000015D -/* 00378 80B91968 304E0002 */ andi $t6, $v0, 0x0002 ## $t6 = 00000000 -/* 0037C 80B9196C 51C0001F */ beql $t6, $zero, .L80B919EC -/* 00380 80B91970 3C014448 */ lui $at, 0x4448 ## $at = 44480000 -/* 00384 80B91974 8E0F0188 */ lw $t7, 0x0188($s0) ## 00000188 -/* 00388 80B91978 3C014000 */ lui $at, 0x4000 ## $at = 40000000 -/* 0038C 80B9197C 34210040 */ ori $at, $at, 0x0040 ## $at = 40000040 -/* 00390 80B91980 8DF80000 */ lw $t8, 0x0000($t7) ## 00000000 -/* 00394 80B91984 0301C824 */ and $t9, $t8, $at -/* 00398 80B91988 53200018 */ beql $t9, $zero, .L80B919EC -/* 0039C 80B9198C 3C014448 */ lui $at, 0x4448 ## $at = 44480000 -.L80B91990: -/* 003A0 80B91990 0C2E45CE */ jal func_80B91738 -/* 003A4 80B91994 02202825 */ or $a1, $s1, $zero ## $a1 = 00000000 -/* 003A8 80B91998 8605001C */ lh $a1, 0x001C($s0) ## 0000001C -/* 003AC 80B9199C 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 003B0 80B919A0 0C00B2DD */ jal Flags_SetSwitch - -/* 003B4 80B919A4 30A5003F */ andi $a1, $a1, 0x003F ## $a1 = 00000000 -/* 003B8 80B919A8 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 003BC 80B919AC 26050024 */ addiu $a1, $s0, 0x0024 ## $a1 = 00000024 -/* 003C0 80B919B0 24060050 */ addiu $a2, $zero, 0x0050 ## $a2 = 00000050 -/* 003C4 80B919B4 0C01AEB6 */ jal Audio_PlaySoundAtPosition - -/* 003C8 80B919B8 24072810 */ addiu $a3, $zero, 0x2810 ## $a3 = 00002810 -/* 003CC 80B919BC 8608001C */ lh $t0, 0x001C($s0) ## 0000001C -/* 003D0 80B919C0 00084BC3 */ sra $t1, $t0, 15 -/* 003D4 80B919C4 312A0001 */ andi $t2, $t1, 0x0001 ## $t2 = 00000000 -/* 003D8 80B919C8 11400003 */ beq $t2, $zero, .L80B919D8 -/* 003DC 80B919CC 00000000 */ nop -/* 003E0 80B919D0 0C01E221 */ jal func_80078884 -/* 003E4 80B919D4 24044802 */ addiu $a0, $zero, 0x4802 ## $a0 = 00004802 -.L80B919D8: -/* 003E8 80B919D8 0C00B55C */ jal Actor_Kill - -/* 003EC 80B919DC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 003F0 80B919E0 10000015 */ beq $zero, $zero, .L80B91A38 -/* 003F4 80B919E4 8FBF001C */ lw $ra, 0x001C($sp) -/* 003F8 80B919E8 3C014448 */ lui $at, 0x4448 ## $at = 44480000 -.L80B919EC: -/* 003FC 80B919EC 44813000 */ mtc1 $at, $f6 ## $f6 = 800.00 -/* 00400 80B919F0 C6040090 */ lwc1 $f4, 0x0090($s0) ## 00000090 -/* 00404 80B919F4 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 00408 80B919F8 304BFFFD */ andi $t3, $v0, 0xFFFD ## $t3 = 00000000 -/* 0040C 80B919FC 4606203C */ c.lt.s $f4, $f6 -/* 00410 80B91A00 34211E60 */ ori $at, $at, 0x1E60 ## $at = 00011E60 -/* 00414 80B91A04 A20B015D */ sb $t3, 0x015D($s0) ## 0000015D -/* 00418 80B91A08 02212821 */ addu $a1, $s1, $at -/* 0041C 80B91A0C 45000009 */ bc1f .L80B91A34 -/* 00420 80B91A10 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -/* 00424 80B91A14 2606014C */ addiu $a2, $s0, 0x014C ## $a2 = 0000014C -/* 00428 80B91A18 AFA60020 */ sw $a2, 0x0020($sp) -/* 0042C 80B91A1C 0C01767D */ jal Actor_CollisionCheck_SetAC - ## CollisionCheck_setAC -/* 00430 80B91A20 AFA50024 */ sw $a1, 0x0024($sp) -/* 00434 80B91A24 8FA50024 */ lw $a1, 0x0024($sp) -/* 00438 80B91A28 8FA60020 */ lw $a2, 0x0020($sp) -/* 0043C 80B91A2C 0C017713 */ jal Actor_CollisionCheck_SetOT - ## CollisionCheck_setOT -/* 00440 80B91A30 02202025 */ or $a0, $s1, $zero ## $a0 = 00000000 -.L80B91A34: -/* 00444 80B91A34 8FBF001C */ lw $ra, 0x001C($sp) -.L80B91A38: -/* 00448 80B91A38 8FB00014 */ lw $s0, 0x0014($sp) -/* 0044C 80B91A3C 8FB10018 */ lw $s1, 0x0018($sp) -/* 00450 80B91A40 03E00008 */ jr $ra -/* 00454 80B91A44 27BD0030 */ addiu $sp, $sp, 0x0030 ## $sp = 00000000 - - diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/func_80B915F0.s b/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/func_80B915F0.s deleted file mode 100644 index 4d34357b32..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/func_80B915F0.s +++ /dev/null @@ -1,28 +0,0 @@ -glabel func_80B915F0 -/* 00000 80B915F0 27BDFFE0 */ addiu $sp, $sp, 0xFFE0 ## $sp = FFFFFFE0 -/* 00004 80B915F4 00803025 */ or $a2, $a0, $zero ## $a2 = 00000000 -/* 00008 80B915F8 AFA50024 */ sw $a1, 0x0024($sp) -/* 0000C 80B915FC 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00010 80B91600 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00014 80B91604 24C5014C */ addiu $a1, $a2, 0x014C ## $a1 = 0000014C -/* 00018 80B91608 AFA50018 */ sw $a1, 0x0018($sp) -/* 0001C 80B9160C 0C0170D9 */ jal ActorCollider_AllocCylinder - -/* 00020 80B91610 AFA60020 */ sw $a2, 0x0020($sp) -/* 00024 80B91614 3C0780B9 */ lui $a3, %hi(D_80B91AA0) ## $a3 = 80B90000 -/* 00028 80B91618 8FA60020 */ lw $a2, 0x0020($sp) -/* 0002C 80B9161C 24E71AA0 */ addiu $a3, $a3, %lo(D_80B91AA0) ## $a3 = 80B91AA0 -/* 00030 80B91620 8FA40024 */ lw $a0, 0x0024($sp) -/* 00034 80B91624 0C01712B */ jal ActorCollider_InitCylinder - -/* 00038 80B91628 8FA50018 */ lw $a1, 0x0018($sp) -/* 0003C 80B9162C 8FA40020 */ lw $a0, 0x0020($sp) -/* 00040 80B91630 0C0189B7 */ jal ActorCollider_Cylinder_Update - -/* 00044 80B91634 8FA50018 */ lw $a1, 0x0018($sp) -/* 00048 80B91638 8FBF0014 */ lw $ra, 0x0014($sp) -/* 0004C 80B9163C 27BD0020 */ addiu $sp, $sp, 0x0020 ## $sp = 00000000 -/* 00050 80B91640 03E00008 */ jr $ra -/* 00054 80B91644 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/func_80B91738.s b/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/func_80B91738.s deleted file mode 100644 index f28386d437..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/func_80B91738.s +++ /dev/null @@ -1,141 +0,0 @@ -glabel func_80B91738 -/* 00148 80B91738 27BDFF40 */ addiu $sp, $sp, 0xFF40 ## $sp = FFFFFF40 -/* 0014C 80B9173C F7BE0070 */ sdc1 $f30, 0x0070($sp) -/* 00150 80B91740 3C014180 */ lui $at, 0x4180 ## $at = 41800000 -/* 00154 80B91744 4481F000 */ mtc1 $at, $f30 ## $f30 = 16.00 -/* 00158 80B91748 F7BC0068 */ sdc1 $f28, 0x0068($sp) -/* 0015C 80B9174C 3C014100 */ lui $at, 0x4100 ## $at = 41000000 -/* 00160 80B91750 4481E000 */ mtc1 $at, $f28 ## $f28 = 8.00 -/* 00164 80B91754 F7BA0060 */ sdc1 $f26, 0x0060($sp) -/* 00168 80B91758 3C014170 */ lui $at, 0x4170 ## $at = 41700000 -/* 0016C 80B9175C 4481D000 */ mtc1 $at, $f26 ## $f26 = 15.00 -/* 00170 80B91760 F7B80058 */ sdc1 $f24, 0x0058($sp) -/* 00174 80B91764 3C0140A0 */ lui $at, 0x40A0 ## $at = 40A00000 -/* 00178 80B91768 4481C000 */ mtc1 $at, $f24 ## $f24 = 5.00 -/* 0017C 80B9176C F7B60050 */ sdc1 $f22, 0x0050($sp) -/* 00180 80B91770 3C014120 */ lui $at, 0x4120 ## $at = 41200000 -/* 00184 80B91774 4481B000 */ mtc1 $at, $f22 ## $f22 = 10.00 -/* 00188 80B91778 AFB5008C */ sw $s5, 0x008C($sp) -/* 0018C 80B9177C AFB40088 */ sw $s4, 0x0088($sp) -/* 00190 80B91780 AFB00078 */ sw $s0, 0x0078($sp) -/* 00194 80B91784 F7B40048 */ sdc1 $f20, 0x0048($sp) -/* 00198 80B91788 3C013F00 */ lui $at, 0x3F00 ## $at = 3F000000 -/* 0019C 80B9178C AFB60090 */ sw $s6, 0x0090($sp) -/* 001A0 80B91790 AFB30084 */ sw $s3, 0x0084($sp) -/* 001A4 80B91794 AFB20080 */ sw $s2, 0x0080($sp) -/* 001A8 80B91798 AFB1007C */ sw $s1, 0x007C($sp) -/* 001AC 80B9179C 3C1080B9 */ lui $s0, %hi(D_80B91AE4) ## $s0 = 80B90000 -/* 001B0 80B917A0 3C140600 */ lui $s4, 0x0600 ## $s4 = 06000000 -/* 001B4 80B917A4 3C1580B9 */ lui $s5, %hi(D_80B91AF4) ## $s5 = 80B90000 -/* 001B8 80B917A8 4481A000 */ mtc1 $at, $f20 ## $f20 = 0.50 -/* 001BC 80B917AC 00808825 */ or $s1, $a0, $zero ## $s1 = 00000000 -/* 001C0 80B917B0 00A0B025 */ or $s6, $a1, $zero ## $s6 = 00000000 -/* 001C4 80B917B4 AFBF0094 */ sw $ra, 0x0094($sp) -/* 001C8 80B917B8 26B51AF4 */ addiu $s5, $s5, %lo(D_80B91AF4) ## $s5 = 80B91AF4 -/* 001CC 80B917BC 269409E0 */ addiu $s4, $s4, 0x09E0 ## $s4 = 060009E0 -/* 001D0 80B917C0 26101AE4 */ addiu $s0, $s0, %lo(D_80B91AE4) ## $s0 = 80B91AE4 -/* 001D4 80B917C4 27B200B4 */ addiu $s2, $sp, 0x00B4 ## $s2 = FFFFFFF4 -/* 001D8 80B917C8 27B300A8 */ addiu $s3, $sp, 0x00A8 ## $s3 = FFFFFFE8 -.L80B917CC: -/* 001DC 80B917CC 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 001E0 80B917D0 00000000 */ nop -/* 001E4 80B917D4 46140101 */ sub.s $f4, $f0, $f20 -/* 001E8 80B917D8 C6280008 */ lwc1 $f8, 0x0008($s1) ## 00000008 -/* 001EC 80B917DC 46162182 */ mul.s $f6, $f4, $f22 -/* 001F0 80B917E0 46083280 */ add.s $f10, $f6, $f8 -/* 001F4 80B917E4 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 001F8 80B917E8 E7AA00B4 */ swc1 $f10, 0x00B4($sp) -/* 001FC 80B917EC 46180402 */ mul.s $f16, $f0, $f24 -/* 00200 80B917F0 C632000C */ lwc1 $f18, 0x000C($s1) ## 0000000C -/* 00204 80B917F4 46128100 */ add.s $f4, $f16, $f18 -/* 00208 80B917F8 461C2180 */ add.s $f6, $f4, $f28 -/* 0020C 80B917FC 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00210 80B91800 E7A600B8 */ swc1 $f6, 0x00B8($sp) -/* 00214 80B91804 46140201 */ sub.s $f8, $f0, $f20 -/* 00218 80B91808 C6300010 */ lwc1 $f16, 0x0010($s1) ## 00000010 -/* 0021C 80B9180C 46164282 */ mul.s $f10, $f8, $f22 -/* 00220 80B91810 46105480 */ add.s $f18, $f10, $f16 -/* 00224 80B91814 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00228 80B91818 E7B200BC */ swc1 $f18, 0x00BC($sp) -/* 0022C 80B9181C 46140101 */ sub.s $f4, $f0, $f20 -/* 00230 80B91820 461A2182 */ mul.s $f6, $f4, $f26 -/* 00234 80B91824 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00238 80B91828 E7A600A8 */ swc1 $f6, 0x00A8($sp) -/* 0023C 80B9182C 461E0202 */ mul.s $f8, $f0, $f30 -/* 00240 80B91830 46184280 */ add.s $f10, $f8, $f24 -/* 00244 80B91834 0C03F66B */ jal Math_Rand_ZeroOne - ## Rand.Next() float -/* 00248 80B91838 E7AA00AC */ swc1 $f10, 0x00AC($sp) -/* 0024C 80B9183C 46140401 */ sub.s $f16, $f0, $f20 -/* 00250 80B91840 86020000 */ lh $v0, 0x0000($s0) ## 80B91AE4 -/* 00254 80B91844 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 00258 80B91848 02402825 */ or $a1, $s2, $zero ## $a1 = FFFFFFF4 -/* 0025C 80B9184C 461A8482 */ mul.s $f18, $f16, $f26 -/* 00260 80B91850 2841000B */ slti $at, $v0, 0x000B -/* 00264 80B91854 02603025 */ or $a2, $s3, $zero ## $a2 = FFFFFFE8 -/* 00268 80B91858 02403825 */ or $a3, $s2, $zero ## $a3 = FFFFFFF4 -/* 0026C 80B9185C 240EFE70 */ addiu $t6, $zero, 0xFE70 ## $t6 = FFFFFE70 -/* 00270 80B91860 240F000A */ addiu $t7, $zero, 0x000A ## $t7 = 0000000A -/* 00274 80B91864 14200003 */ bne $at, $zero, .L80B91874 -/* 00278 80B91868 E7B200B0 */ swc1 $f18, 0x00B0($sp) -/* 0027C 80B9186C 10000002 */ beq $zero, $zero, .L80B91878 -/* 00280 80B91870 24030025 */ addiu $v1, $zero, 0x0025 ## $v1 = 00000025 -.L80B91874: -/* 00284 80B91874 24030021 */ addiu $v1, $zero, 0x0021 ## $v1 = 00000021 -.L80B91878: -/* 00288 80B91878 24180002 */ addiu $t8, $zero, 0x0002 ## $t8 = 00000002 -/* 0028C 80B9187C 24190001 */ addiu $t9, $zero, 0x0001 ## $t9 = 00000001 -/* 00290 80B91880 24080050 */ addiu $t0, $zero, 0x0050 ## $t0 = 00000050 -/* 00294 80B91884 2409FFFF */ addiu $t1, $zero, 0xFFFF ## $t1 = FFFFFFFF -/* 00298 80B91888 240A0163 */ addiu $t2, $zero, 0x0163 ## $t2 = 00000163 -/* 0029C 80B9188C AFAA0038 */ sw $t2, 0x0038($sp) -/* 002A0 80B91890 AFA90034 */ sw $t1, 0x0034($sp) -/* 002A4 80B91894 AFA80030 */ sw $t0, 0x0030($sp) -/* 002A8 80B91898 AFB90028 */ sw $t9, 0x0028($sp) -/* 002AC 80B9189C AFB8001C */ sw $t8, 0x001C($sp) -/* 002B0 80B918A0 AFAE0010 */ sw $t6, 0x0010($sp) -/* 002B4 80B918A4 AFA30014 */ sw $v1, 0x0014($sp) -/* 002B8 80B918A8 AFAF0018 */ sw $t7, 0x0018($sp) -/* 002BC 80B918AC AFA00020 */ sw $zero, 0x0020($sp) -/* 002C0 80B918B0 AFA20024 */ sw $v0, 0x0024($sp) -/* 002C4 80B918B4 AFA0002C */ sw $zero, 0x002C($sp) -/* 002C8 80B918B8 0C00A7A3 */ jal Effect_SpawnFragment - -/* 002CC 80B918BC AFB4003C */ sw $s4, 0x003C($sp) -/* 002D0 80B918C0 26100002 */ addiu $s0, $s0, 0x0002 ## $s0 = 80B91AE6 -/* 002D4 80B918C4 1615FFC1 */ bne $s0, $s5, .L80B917CC -/* 002D8 80B918C8 00000000 */ nop -/* 002DC 80B918CC 240B0064 */ addiu $t3, $zero, 0x0064 ## $t3 = 00000064 -/* 002E0 80B918D0 240C00A0 */ addiu $t4, $zero, 0x00A0 ## $t4 = 000000A0 -/* 002E4 80B918D4 240D0001 */ addiu $t5, $zero, 0x0001 ## $t5 = 00000001 -/* 002E8 80B918D8 AFAD0018 */ sw $t5, 0x0018($sp) -/* 002EC 80B918DC AFAC0014 */ sw $t4, 0x0014($sp) -/* 002F0 80B918E0 AFAB0010 */ sw $t3, 0x0010($sp) -/* 002F4 80B918E4 02C02025 */ or $a0, $s6, $zero ## $a0 = 00000000 -/* 002F8 80B918E8 26250024 */ addiu $a1, $s1, 0x0024 ## $a1 = 00000024 -/* 002FC 80B918EC 3C064270 */ lui $a2, 0x4270 ## $a2 = 42700000 -/* 00300 80B918F0 0C00CD20 */ jal func_80033480 -/* 00304 80B918F4 24070008 */ addiu $a3, $zero, 0x0008 ## $a3 = 00000008 -/* 00308 80B918F8 8FBF0094 */ lw $ra, 0x0094($sp) -/* 0030C 80B918FC D7B40048 */ ldc1 $f20, 0x0048($sp) -/* 00310 80B91900 D7B60050 */ ldc1 $f22, 0x0050($sp) -/* 00314 80B91904 D7B80058 */ ldc1 $f24, 0x0058($sp) -/* 00318 80B91908 D7BA0060 */ ldc1 $f26, 0x0060($sp) -/* 0031C 80B9190C D7BC0068 */ ldc1 $f28, 0x0068($sp) -/* 00320 80B91910 D7BE0070 */ ldc1 $f30, 0x0070($sp) -/* 00324 80B91914 8FB00078 */ lw $s0, 0x0078($sp) -/* 00328 80B91918 8FB1007C */ lw $s1, 0x007C($sp) -/* 0032C 80B9191C 8FB20080 */ lw $s2, 0x0080($sp) -/* 00330 80B91920 8FB30084 */ lw $s3, 0x0084($sp) -/* 00334 80B91924 8FB40088 */ lw $s4, 0x0088($sp) -/* 00338 80B91928 8FB5008C */ lw $s5, 0x008C($sp) -/* 0033C 80B9192C 8FB60090 */ lw $s6, 0x0090($sp) -/* 00340 80B91930 03E00008 */ jr $ra -/* 00344 80B91934 27BD00C0 */ addiu $sp, $sp, 0x00C0 ## $sp = 00000000 - - diff --git a/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_8081D398.s b/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_8081D398.s index ab46640fb5..ebf2d7cdde 100644 --- a/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_8081D398.s +++ b/asm/non_matchings/overlays/actors/ovl_kaleido_scope/func_8081D398.s @@ -620,13 +620,13 @@ glabel func_8081D398 /* 0A4BC 8081DCDC 8FB101CC */ lw $s1, 0x01CC($sp) /* 0A4C0 8081DCE0 26390008 */ addiu $t9, $s1, 0x0008 ## $t9 = 0C000008 /* 0A4C4 8081DCE4 AFB901CC */ sw $t9, 0x01CC($sp) -/* 0A4C8 8081DCE8 0C034B88 */ jal func_800D2E20 +/* 0A4C8 8081DCE8 0C034B88 */ jal SysUcode_GetUcodeData /* 0A4CC 8081DCEC AE320000 */ sw $s2, 0x0000($s1) ## 0C000000 /* 0A4D0 8081DCF0 AE220004 */ sw $v0, 0x0004($s1) ## 0C000004 /* 0A4D4 8081DCF4 8FB101CC */ lw $s1, 0x01CC($sp) /* 0A4D8 8081DCF8 262E0008 */ addiu $t6, $s1, 0x0008 ## $t6 = 0C000008 /* 0A4DC 8081DCFC AFAE01CC */ sw $t6, 0x01CC($sp) -/* 0A4E0 8081DD00 0C034B85 */ jal func_800D2E14 +/* 0A4E0 8081DD00 0C034B85 */ jal SysUcode_GetUcode /* 0A4E4 8081DD04 AE330000 */ sw $s3, 0x0000($s1) ## 0C000000 /* 0A4E8 8081DD08 AE220004 */ sw $v0, 0x0004($s1) ## 0C000004 /* 0A4EC 8081DD0C 8FB801CC */ lw $t8, 0x01CC($sp) diff --git a/data/code_8006C360.data.s b/data/code_8006C360.data.s deleted file mode 100644 index 20ab1ea6b7..0000000000 --- a/data/code_8006C360.data.s +++ /dev/null @@ -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 .data - -glabel D_8011F3F0 - .incbin "baserom.z64", 0xB96590, 0x440 diff --git a/data/overlays/actors/z_obj_bombiwa.data.s b/data/overlays/actors/z_obj_bombiwa.data.s deleted file mode 100644 index 8e75de6e79..0000000000 --- a/data/overlays/actors/z_obj_bombiwa.data.s +++ /dev/null @@ -1,26 +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 Obj_Bombiwa_InitVars - .word 0x01270600, 0x00000000, 0x01630000, 0x00000198 -.word ObjBombiwa_Init -.word ObjBombiwa_Destroy -.word ObjBombiwa_Update -.word ObjBombiwa_Draw -glabel D_80B91AA0 - .word 0x0C000D39, 0x20010000, 0x00000000, 0x00000000, 0x00000000, 0x4FC1FFFE, 0x00000000, 0x00010100, 0x00370046, 0x00000000, 0x00000000 -glabel D_80B91ACC - .word 0x0000000C, 0x003CFF00 -glabel D_80B91AD4 - .word 0xC8500064, 0xB0F407D0, 0xB0F8015E, 0x30FC03E8 -glabel D_80B91AE4 - .word 0x0011000E, 0x000A0008, 0x00070005, 0x00030002 -glabel D_80B91AF4 - .word 0x00000000, 0x00000000, 0x00000000 - diff --git a/data/overlays/actors/z_obj_bombiwa.reloc.s b/data/overlays/actors/z_obj_bombiwa.reloc.s deleted file mode 100644 index 924bca2fae..0000000000 --- a/data/overlays/actors/z_obj_bombiwa.reloc.s +++ /dev/null @@ -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_80B91B00 - -.incbin "baserom/ovl_Obj_Bombiwa", 0x510, 0x00000060 diff --git a/data/z_debug.bss.s b/data/z_debug.bss.s deleted file mode 100644 index 08cab406d7..0000000000 --- a/data/z_debug.bss.s +++ /dev/null @@ -1,20 +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 .bss - -glabel gGameInfo - .space 0x8 - -glabel D_8015FA98 - .space 0x3 - -glabel D_8015FA9B - .space 0x17D - -glabel D_8015FC18 - .space 0x98 diff --git a/data/z_debug.data.s b/data/z_debug.data.s deleted file mode 100644 index aeab7d5b89..0000000000 --- a/data/z_debug.data.s +++ /dev/null @@ -1,20 +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 D_8011E0B0 - .incbin "baserom.z64", 0xB95250, 0x4 - -glabel D_8011E0B4 - .incbin "baserom.z64", 0xB95254, 0x20 - -glabel D_8011E0D4 - .incbin "baserom.z64", 0xB95274, 0x74 - -glabel D_8011E148 - .incbin "baserom.z64", 0xB952E8, 0x28 diff --git a/include/functions.h b/include/functions.h index db34b65c90..8c84fe9b62 100644 --- a/include/functions.h +++ b/include/functions.h @@ -759,7 +759,7 @@ void func_80062D60(GlobalContext*, Vec3f*); s32 func_80062ECC(f32, f32, f32, Vec3f*, Vec3f*, Vec3f*, Vec3f*, Vec3f*); void SaveContext_Init(void); // ? func_800636C0(?); -void func_8006375C(UNK_TYPE, UNK_TYPE, UNK_TYPE); +void func_8006375C(s32 arg0, s32 arg1, float* d_80855320); // ? func_8006376C(?); // ? func_80063828(?); // ? func_8006390C(?); @@ -846,7 +846,7 @@ void func_800775D8(); s32 func_800775E4(); void func_800775F0(u16); // ? func_80077600(?); -void Lib_MemSet(void* dest, size_t size, u8 val); +void Lib_MemSet(u8* dest, size_t size, u8 val); f32 Math_Coss(s16 angle); f32 Math_Sins(s16 angle); s32 Math_ApproxUpdateScaledS(s16* fp, s16 target, s16 step); @@ -921,10 +921,10 @@ u8 ZeldaArena_IsInitalized(); void MapMark_Init(GlobalContext* globalCtx); void MapMark_ClearPointers(GlobalContext* globalCtx); void MapMark_DrawConditionally(GlobalContext* globalCtx); -// ? func_8007BE60(?); -// ? func_8007BED4(?); -// ? func_8007BF08(?); -// ? func_8007BF10(?); +void PreNmiBuff_Init(PreNmiBuff* this); +void PreNmiBuff_SetReset(PreNmiBuff* this); +u32 PreNmiBuff_IsResetting(PreNmiBuff* this); +void MsgEvent_SendNullTask(); f32 func_8007BF90(Vec3f*, Vec3f*); // ? func_8007C028(?); // ? func_8007C058(?); @@ -1474,7 +1474,7 @@ void* Graph_Alloc(GraphicsContext* gfxCtx, size_t size); void func_800C6AC4(Gfx** a0, GraphicsContext* gfxCtx, char* file, s32 line); void func_800C6B54(Gfx** a0, GraphicsContext* gfxCtx, char* file, s32 line); Gfx* func_800C6C20(Gfx* a0); -// ? func_800C6C28(?); +Gfx* func_800C6C28(Gfx* a0, Gfx* dlist); //branch dlist // ? func_800C6C3C(?); ListAlloc* ListAlloc_Init(ListAlloc* this); void* ListAlloc_Alloc(ListAlloc* this, u32 size); @@ -1631,10 +1631,10 @@ void func_800D2264(MtxF* mf, Vec3s* vec, s32 flag); void func_800D23FC(f32 f, Vec3f* vec, u8 mode); MtxF* Matrix_CheckFloats(MtxF* mf, char* file, s32 line); void func_800D2CEC(Mtx* mtx, f32 arg1, f32 arg2, f32 arg3, f32 arg4, f32 arg5, f32 arg6); -// ? func_800D2DF0(?); -// ? func_800D2DFC(?); -// ? func_800D2E14(?); -// ? func_800D2E20(?); +// ? SysUcode_GetUCodeBoot(?); +// ? SysUcode_GetUcodeBootSize(?); +// ? SysUcode_GetUcode(?); +// ? SysUcode_GetUcodeData(?); // ? func_800D2E30(?); // ? func_800D3140(?); // ? func_800D3140(?); diff --git a/include/regs.h b/include/regs.h index 4c3ad34cb1..6fa8a090ee 100644 --- a/include/regs.h +++ b/include/regs.h @@ -1,7 +1,12 @@ #ifndef _REGS_H_ #define _REGS_H_ -#define BASE_REG(n, r) gGameInfo->data[n * 96 + r] +#define REG_GROUPS 29 //number of REG groups, i.e. REG, SREG, OREG, etc. +#define REG_PAGES 6 +#define REG_PER_PAGE 16 +#define REG_PER_GROUP REG_PAGES * REG_PER_PAGE + +#define BASE_REG(n, r) gGameInfo->data[n * REG_PER_GROUP + r] #define REG(r) BASE_REG(0, r) #define SREG(r) BASE_REG(1, r) diff --git a/include/sched.h b/include/sched.h index 423724d968..ff396be94b 100644 --- a/include/sched.h +++ b/include/sched.h @@ -3,6 +3,16 @@ #include +#define OS_SC_NEEDS_RDP 0x0001 +#define OS_SC_NEEDS_RSP 0x0002 +#define OS_SC_DRAM_DLIST 0x0004 +#define OS_SC_PARALLEL_TASK 0x0010 +#define OS_SC_LAST_TASK 0x0020 +#define OS_SC_SWAPBUFFER 0x0040 + +#define OS_SC_RCP_MASK 0x0003 +#define OS_SC_TYPE_MASK 0x0007 + typedef struct OSScTask { /* 0x00 */ struct OSScTask* next; @@ -10,8 +20,8 @@ typedef struct OSScTask /* 0x08 */ u32 flags; /* 0x0C */ void* framebuffer; /* 0x10 */ OSTask list; - /* 0x58 */ OSMesgQueue* msgQ; - /* 0x5C */ OSMesg msg; + /* 0x50 */ OSMesgQueue* msgQ; + /* 0x54 */ OSMesg msg; } OSScTask; typedef struct @@ -39,4 +49,6 @@ typedef struct /* 0x0220 */ char unk_254[0x04]; } SchedContext; // size = 0x258 +extern SchedContext gSchedContext; + #endif diff --git a/include/ultra64/mbi.h b/include/ultra64/mbi.h index 17213ea2bd..00b113595f 100644 --- a/include/ultra64/mbi.h +++ b/include/ultra64/mbi.h @@ -76,9 +76,11 @@ * **************************************************************************/ -#define M_GFXTASK 1 -#define M_AUDTASK 2 -#define M_VIDTASK 3 +#define M_NULTASK 0 +#define M_GFXTASK 1 +#define M_AUDTASK 2 +#define M_VIDTASK 3 +#define M_NJPEGTASK 4 #define M_HVQTASK 6 #define M_HVQMTASK 7 diff --git a/include/variables.h b/include/variables.h index 07a677dc9e..b12c078d56 100644 --- a/include/variables.h +++ b/include/variables.h @@ -259,8 +259,8 @@ extern s32 D_8011D3AC; //extern ? D_8011E096; //extern ? D_8011E098; //extern ? D_8011E09A; -//extern ? D_8011E0B0; -//extern ? D_8011E0B4; +extern s16 D_8011E0B0; +extern Color_RGBA8 D_8011E0B4[]; //extern ? D_8011E0D4; //extern ? D_8011F3A0; //extern ? D_8011F3D4; @@ -1355,11 +1355,6 @@ extern f32 D_80136D44; //extern ? D_8013AC7C; //extern ? D_8013ACA0; //extern ? D_8013ACB8; -//extern ? D_8013AD40; -//extern ? D_8013AD50; -//extern ? D_8013AD54; -//extern ? D_8013AD60; -//extern ? D_8013AD70; //extern ? D_8013B830; //extern ? D_8013B844; //extern ? D_8013B858; @@ -3578,7 +3573,7 @@ extern Color_RGBA8 D_801614B0; //extern ? D_801665E0; //extern ? D_801665F0; //extern ? D_80166648; -extern u8* gAppNmiBufferPtr; +extern PreNmiBuff* gAppNmiBufferPtr; //extern ? gSchedContext; //extern u8 gPadMgr[]; extern u8 D_80166B68; diff --git a/include/z64.h b/include/z64.h index 1c3f97cec4..025431cb46 100644 --- a/include/z64.h +++ b/include/z64.h @@ -33,8 +33,12 @@ // Data normally accessed through REG macros (see regs.h) typedef struct { - /* 0x00 */ char unk_00[0x14]; - /* 0x14 */ s16 data[0xAE0]; + /* 0x00 */ s32 regPage; //1 is first page + /* 0x04 */ s32 regGroup; //"register" group (R, RS, RO, RP etc.) + /* 0x08 */ s32 regCur; //selected register within page + /* 0x0C */ s32 dpadLast; + /* 0x10 */ s32 repeat; + /* 0x14 */ s16 data[REG_GROUPS * REG_PER_GROUP]; //0xAE0 } GameInfo; // size = 0x15D4 typedef struct @@ -1386,4 +1390,12 @@ typedef struct ListAlloc /* 0x04 */ struct ListAlloc* next; } ListAlloc; //size = 0x8 +typedef struct +{ + /* 0x00 */ u32 resetting; + /* 0x04 */ u32 resetCount; + /* 0x08 */ OSTime duration; + /* 0x10 */ OSTime resetTime; +} PreNmiBuff; //size = 0x18 (actually osAppNmiBuffer is 0x40 bytes large but the rest is unused) + #endif diff --git a/spec b/spec index c0f525fdfe..4aeaa38353 100644 --- a/spec +++ b/spec @@ -308,8 +308,6 @@ beginseg include "build/src/code/z_common_data.o" include "build/data/z_common_data.bss.o" include "build/src/code/z_debug.o" - include "build/data/z_debug.data.o" - include "build/data/z_debug.bss.o" include "build/src/code/z_debug_display.o" include "build/src/code/z_demo.o" include "build/src/code/code_80069420.o" @@ -318,7 +316,6 @@ beginseg include "build/src/code/z_elf_message.o" include "build/data/z_elf_message.data.o" include "build/src/code/code_8006C360.o" - include "build/data/code_8006C360.data.o" include "build/src/code/code_8006C3A0.o" include "build/src/code/code_8006C510.o" include "build/src/code/z_fcurve_data_skelanime.o" @@ -342,8 +339,8 @@ beginseg include "build/src/code/z_malloc.o" include "build/src/code/z_map_mark.o" include "build/src/code/z_moji.o" - include "build/src/code/code_8007BE60.o" - include "build/src/code/code_8007BF10.o" + include "build/src/code/z_prenmi_buff.o" + include "build/src/code/z_msgevent.o" include "build/src/code/code_8007BF90.o" include "build/src/code/z_onepointdemo.o" include "build/data/z_onepointdemo.data.o" @@ -4043,8 +4040,7 @@ endseg beginseg name "ovl_Obj_Bombiwa" include "build/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.o" - include "build/data/overlays/actors/z_obj_bombiwa.data.o" - include "build/data/overlays/actors/z_obj_bombiwa.reloc.o" + include "build/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa_reloc.o" endseg beginseg diff --git a/src/code/code_8006C360.c b/src/code/code_8006C360.c index 3180bab891..fa48f62edd 100644 --- a/src/code/code_8006C360.c +++ b/src/code/code_8006C360.c @@ -1,5 +1,72 @@ #include #include -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8006C360/func_8006C360.s") +u16 D_8011F3F0[60][9] = +{ + { 0x0000, 0x7124, 0x7127, 0x7126, 0x7125, 0x7127, 0x7124, 0x7125, 0x7127 }, + { 0x0000, 0x7128, 0x7129, 0x7128, 0x7128, 0x7128, 0x7128, 0x712A, 0x712B }, + { 0x0000, 0x7128, 0x712B, 0x7128, 0x7128, 0x7129, 0x7128, 0x712B, 0x7128 }, + { 0x0000, 0x7128, 0x7129, 0x7128, 0x7128, 0x7128, 0x7128, 0x712A, 0x712B }, + { 0x0000, 0x7128, 0x7129, 0x712B, 0x7128, 0x7128, 0x7128, 0x7129, 0x7128 }, + { 0x0000, 0x712D, 0x712D, 0x712D, 0x712D, 0x712D, 0x712D, 0x712D, 0x712F }, + { 0x0000, 0x712C, 0x712C, 0x712C, 0x712E, 0x712C, 0x712C, 0x712F, 0x712F }, + { 0x0000, 0x712C, 0x712C, 0x712C, 0x712F, 0x712C, 0x712C, 0x712F, 0x712F }, + { 0x0000, 0x7130, 0x7132, 0x7133, 0x7130, 0x7130, 0x7131, 0x7132, 0x7131 }, + { 0x0000, 0x7134, 0x7137, 0x7135, 0x7134, 0x7136, 0x7135, 0x7134, 0x7135 }, + { 0x0000, 0x7138, 0x713A, 0x7138, 0x7139, 0x713A, 0x7138, 0x7139, 0x713B }, + { 0x0000, 0x7144, 0x7146, 0x7144, 0x7146, 0x7147, 0x7145, 0x7145, 0x7147 }, + { 0x0000, 0x7148, 0x7149, 0x7149, 0x714A, 0x714A, 0x714B, 0x7149, 0x714B }, + { 0x0000, 0x714C, 0x714D, 0x714C, 0x714C, 0x714E, 0x714C, 0x714E, 0x714F }, + { 0x0000, 0x7150, 0x7153, 0x7152, 0x7150, 0x7151, 0x7153, 0x7153, 0x7151 }, + { 0x0000, 0x7155, 0x7156, 0x7157, 0x7154, 0x7156, 0x7156, 0x7156, 0x7156 }, + { 0x0000, 0x715A, 0x7159, 0x715B, 0x715A, 0x715A, 0x7158, 0x7158, 0x715B }, + { 0x0000, 0x715E, 0x715D, 0x715D, 0x715F, 0x715E, 0x715C, 0x715C, 0x715D }, + { 0x0000, 0x7163, 0x7162, 0x7160, 0x7163, 0x7160, 0x7161, 0x7161, 0x7160 }, + { 0x0000, 0x7164, 0x7166, 0x7164, 0x7167, 0x7164, 0x7164, 0x7164, 0x7167 }, + { 0x0000, 0x716B, 0x7169, 0x7168, 0x716B, 0x716A, 0x716B, 0x716B, 0x716A }, + { 0x0000, 0x716C, 0x716D, 0x716F, 0x716C, 0x716E, 0x716E, 0x716E, 0x716F }, + { 0x0000, 0x7171, 0x7173, 0x7170, 0x7172, 0x0000, 0x0000, 0x0000, 0x0000 }, + { 0x0000, 0x7176, 0x7177, 0x7174, 0x7174, 0x7175, 0x7174, 0x7174, 0x7177 }, + { 0x0000, 0x7178, 0x7179, 0x7179, 0x717B, 0x717A, 0x717B, 0x717A, 0x717B }, + { 0x0000, 0x717D, 0x717C, 0x717C, 0x717D, 0x717F, 0x717C, 0x717E, 0x717D }, + { 0x0000, 0x7183, 0x7181, 0x7180, 0x7183, 0x7182, 0x7183, 0x7181, 0x7183 }, + { 0x0000, 0x7184, 0x7186, 0x7185, 0x7186, 0x7184, 0x7187, 0x7186, 0x7184 }, + { 0x0000, 0x71A4, 0x71A6, 0x71A5, 0x0000, 0x71A6, 0x71A6, 0x71A6, 0x71A7 }, + { 0x0000, 0x7188, 0x7188, 0x7189, 0x7188, 0x7189, 0x718B, 0x718A, 0x7189 }, + { 0x0000, 0x718C, 0x718C, 0x718D, 0x718C, 0x718E, 0x718F, 0x718D, 0x718C }, + { 0x0000, 0x7190, 0x7190, 0x7191, 0x7192, 0x7191, 0x7193, 0x7190, 0x7191 }, + { 0x0000, 0x7196, 0x7194, 0x7195, 0x7196, 0x7197, 0x7194, 0x7196, 0x7195 }, + { 0x0000, 0x7199, 0x719A, 0x7198, 0x7198, 0x719A, 0x719A, 0x719B, 0x7198 }, + { 0x0000, 0x719D, 0x719C, 0x719E, 0x719D, 0x719D, 0x719C, 0x719F, 0x719E }, + { 0x0000, 0x71A1, 0x71A0, 0x71A1, 0x71A2, 0x71A1, 0x71A2, 0x71A3, 0x71A2 }, + { 0x0000, 0x711C, 0x711E, 0x711C, 0x711F, 0x711E, 0x711C, 0x711D, 0x711F }, + { 0x0000, 0x7104, 0x7105, 0x7107, 0x7107, 0x7105, 0x7106, 0x7107, 0x7107 }, + { 0x0000, 0x7107, 0x7105, 0x7107, 0x7107, 0x7106, 0x7107, 0x7107, 0x7105 }, + { 0x0000, 0x7113, 0x7117, 0x7113, 0x7110, 0x7112, 0x7112, 0x7116, 0x7112 }, + { 0x0000, 0x7113, 0x7113, 0x7113, 0x7113, 0x7113, 0x7113, 0x7111, 0x7113 }, + { 0x0000, 0x7113, 0x7117, 0x7113, 0x7110, 0x7112, 0x7112, 0x7116, 0x7112 }, + { 0x0000, 0x7117, 0x7117, 0x7117, 0x7117, 0x7117, 0x7117, 0x7117, 0x7113 }, + { 0x0000, 0x7101, 0x7100, 0x7102, 0x7103, 0x7101, 0x7100, 0x7102, 0x7103 }, + { 0x0000, 0x7100, 0x7102, 0x7100, 0x7100, 0x7100, 0x7100, 0x7100, 0x7102 }, + { 0x0000, 0x710A, 0x7109, 0x7109, 0x710A, 0x710B, 0x7108, 0x7109, 0x710B }, + { 0x0000, 0x7117, 0x7112, 0x7113, 0x7110, 0x710C, 0x7117, 0x710E, 0x7112 }, + { 0x0000, 0x710D, 0x710F, 0x710C, 0x7112, 0x710D, 0x710C, 0x710C, 0x710F }, + { 0x0000, 0x710A, 0x7109, 0x711A, 0x710A, 0x7109, 0x7108, 0x710B, 0x7109 }, + { 0x0000, 0x710C, 0x710F, 0x7113, 0x7110, 0x710D, 0x7112, 0x7116, 0x710D }, + { 0x0000, 0x7115, 0x7114, 0x7114, 0x7115, 0x7114, 0x7114, 0x7116, 0x7117 }, + { 0x0000, 0x7113, 0x710F, 0x7113, 0x7110, 0x710C, 0x711A, 0x710D, 0x7112 }, + { 0x0000, 0x7101, 0x7102, 0x7103, 0x7101, 0x7100, 0x7100, 0x7102, 0x7100 }, + { 0x0000, 0x7112, 0x710E, 0x7112, 0x710E, 0x710D, 0x7112, 0x710E, 0x710F }, + { 0x0000, 0x7142, 0x7141, 0x7142, 0x7143, 0x7140, 0x7140, 0x7141, 0x7143 }, + { 0x0000, 0x713C, 0x713D, 0x713D, 0x713E, 0x713E, 0x713F, 0x713D, 0x713F }, + { 0x0000, 0x7101, 0x7102, 0x7103, 0x7101, 0x7100, 0x7100, 0x7102, 0x7100 }, + { 0x0000, 0x7113, 0x7117, 0x7113, 0x7110, 0x7112, 0x7112, 0x7116, 0x7112 }, + { 0x0000, 0x7104, 0x7105, 0x7107, 0x7105, 0x7105, 0x7105, 0x7107, 0x7107 }, + { 0x0000, 0x7104, 0x7105, 0x7107, 0x7105, 0x710C, 0x7105, 0x7107, 0x7107 }, +}; +u16 func_8006C360(GlobalContext* globalCtx, u32 idx) +{ + u8 mask = func_8008F080(globalCtx); + return D_8011F3F0[idx][mask]; +} diff --git a/src/code/code_8007BE60.c b/src/code/code_8007BE60.c deleted file mode 100644 index 59ef949c56..0000000000 --- a/src/code/code_8007BE60.c +++ /dev/null @@ -1,50 +0,0 @@ -#include -#include - -extern u32 osResetType; - -/* -void func_8007BE60(u32* a0) -{ - u32 var1; - - //*a0 = 0; - - if (osResetType == 0) - { - a0[1] = 0; - a0[2] = 0; - a0[3] = 0; - } - else - { - var1 = a0[3] + a0[5]; - a0[1]++; - a0[2] = (var1 < a0[5]) + a0[2] + a0[4]; - a0[3] = var1; - } - - a0[5] = 0; - a0[4] = 0; -} -*/ - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8007BE60/func_8007BE60.s") - -typedef struct -{ - /* 0x00 */ u32 unk_00; - /* 0x04 */ char unk_04[0x0C]; - /* 0x10 */ OSTime unk_10; -} struct_8007BED4; - -void func_8007BED4(struct_8007BED4* arg0) -{ - arg0->unk_00 = 1; - arg0->unk_10 = osGetTime(); -} - -u32 func_8007BF08(struct_8007BED4* arg0) -{ - return arg0->unk_00; -} diff --git a/src/code/code_8007BF10.c b/src/code/code_8007BF10.c deleted file mode 100644 index 46771a3038..0000000000 --- a/src/code/code_8007BF10.c +++ /dev/null @@ -1,5 +0,0 @@ -#include -#include - -#pragma GLOBAL_ASM("asm/non_matchings/code/code_8007BF10/func_8007BF10.s") - diff --git a/src/code/main.c b/src/code/main.c index f69f62317d..987654a416 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -7,7 +7,7 @@ u32 gScreenWidth = SCREEN_WIDTH; u32 gScreenHeight = SCREEN_HEIGHT; u32 gSystemHeapSize = 0; -u8* gAppNmiBufferPtr; +PreNmiBuff* gAppNmiBufferPtr; SchedContext gSchedContext; PadMgr gPadMgr; IrqMgr gIrqMgr; @@ -50,8 +50,8 @@ void Main(void* arg0) osSyncPrintf("mainproc 実行開始\n"); //Start running gScreenWidth = SCREEN_WIDTH; gScreenHeight = SCREEN_HEIGHT; - gAppNmiBufferPtr = osAppNmiBuffer; - func_8007BE60(gAppNmiBufferPtr); + gAppNmiBufferPtr = (PreNmiBuff*)osAppNmiBuffer; + PreNmiBuff_Init(gAppNmiBufferPtr); Fault_Start(); SysCfb_Init(0); sysHeap = (u32)gSystemHeap; @@ -112,7 +112,7 @@ void Main(void* arg0) if (*msg == OS_SC_PRE_NMI_MSG) { osSyncPrintf("main.c: リセットされたみたいだよ\n"); //Looks like it's been reset - func_8007BED4(gAppNmiBufferPtr); + PreNmiBuff_SetReset(gAppNmiBufferPtr); } } diff --git a/src/code/sys_ucode.c b/src/code/sys_ucode.c index f92a0d61e2..0bd1690905 100644 --- a/src/code/sys_ucode.c +++ b/src/code/sys_ucode.c @@ -1,21 +1,21 @@ #include -u32 func_800D2DF0() +u32 SysUcode_GetUCodeBoot() { return &D_80009320; } -u32 func_800D2DFC() +u32 SysUcode_GetUcodeBootSize() { return (u32)&D_800093F0 - (u32)&D_80009320; } -u32 func_800D2E14() +u32 SysUcode_GetUcode() { return D_8012DBA0; } -u32 func_800D2E20() +u32 SysUcode_GetUcodeData() { return D_8012DBA4; } diff --git a/src/code/z_debug.c b/src/code/z_debug.c index b5d078985c..451443a6bc 100644 --- a/src/code/z_debug.c +++ b/src/code/z_debug.c @@ -1,20 +1,309 @@ #include #include +#include +#include +#include +#include -#pragma GLOBAL_ASM("asm/non_matchings/code/z_debug/func_800636C0.s") +typedef struct +{ + u8 x; + u8 y; + u8 colorId; + char text[0x15]; +} PrintTextBuffer; -void func_8006375C(UNK_TYPE arg0, UNK_TYPE arg1, UNK_TYPE arg2) +typedef struct +{ + u16 push; + u16 held; +} InputCombo; + +GameInfo* gGameInfo; +int D_8015FA94; //no known symbols +PrintTextBuffer D_8015FA98[0x16]; + +s16 D_8011E0B0 = 0; //PrintTextBuffer index +Color_RGBA8 printTextColors[] = { + { 0xFF, 0xFF, 0x20, 0xC0 }, + { 0xFF, 0x96, 0x80, 0xC0 }, + { 0x80, 0x60, 0x00, 0x40 }, + { 0xC0, 0x80, 0x10, 0x80 }, + { 0xFF, 0xC0, 0x20, 0x80 }, + { 0xE6, 0xE6, 0xDC, 0x40 }, + { 0x80, 0x96, 0xFF, 0x80 }, + { 0x80, 0xFF, 0x20, 0x80 }, +}; + +InputCombo inputCombos[REG_GROUPS] = { + { L_TRIG, U_CBUTTONS }, + { L_TRIG, L_CBUTTONS }, + { L_TRIG, D_CBUTTONS }, + { L_TRIG, A_BUTTON }, + { R_TRIG, D_CBUTTONS }, + { L_TRIG, R_CBUTTONS }, + { L_TRIG, R_TRIG }, + { L_TRIG, L_JPAD }, + { L_TRIG, R_JPAD }, + { L_TRIG, U_JPAD }, + { L_TRIG, B_BUTTON }, + { L_TRIG, Z_TRIG }, + { L_TRIG, D_JPAD }, + { R_TRIG, A_BUTTON }, + { R_TRIG, B_BUTTON }, + { R_TRIG, Z_TRIG }, + { R_TRIG, L_TRIG }, + { R_TRIG, U_CBUTTONS }, + { R_TRIG, R_CBUTTONS }, + { R_TRIG, L_JPAD }, + { R_TRIG, L_CBUTTONS }, + { R_TRIG, START_BUTTON }, + { L_TRIG, START_BUTTON }, + { R_TRIG, R_JPAD }, + { R_TRIG, U_JPAD }, + { START_BUTTON, R_TRIG }, + { START_BUTTON, A_BUTTON }, + { START_BUTTON, B_BUTTON }, + { START_BUTTON, R_CBUTTONS }, +}; + +char regChar[] = " SOPQMYDUIZCNKXcsiWAVHGmnBdkb"; + +//initialize GameInfo +void func_800636C0() +{ + s32 i; + + gGameInfo = (GameInfo*)SystemArena_MallocDebug(sizeof(GameInfo), "../z_debug.c", 260); + gGameInfo->regPage = 0; + gGameInfo->regGroup = 0; + gGameInfo->regCur = 0; + gGameInfo->dpadLast = 0; + gGameInfo->repeat = 0; + for (i = 0; i < ARRAY_COUNT(gGameInfo->data); i++) + { + gGameInfo->data[i] = 0; + } +} + +//Called when free movement is active. +//8011D394 to enable camera debugger +void func_8006375C(s32 arg0, s32 arg1, float* d_80855320) { } +#ifdef NON_MATCHING //regalloc +//Copy Camera Debugger Text +void func_8006376C(u8 x, u8 y, u8 colorId, const char* text) +{ + PrintTextBuffer* buf; + char* bufText; + s16 i; //v1 + + buf = &D_8015FA98[D_8011E0B0]; + if (D_8011E0B0 < 0x16) { + + buf->x = x; + buf->y = y; + buf->colorId = colorId; + + i = 0; + bufText = buf->text + 1; + + if (*buf->text = *text++) { + do if (i++ > 0x14) { + break; + } while (*bufText++ = *text++); + } + + *bufText = '\0'; + D_8011E0B0++; + } +} + +#else #pragma GLOBAL_ASM("asm/non_matchings/code/z_debug/func_8006376C.s") +#endif -#pragma GLOBAL_ASM("asm/non_matchings/code/z_debug/func_80063828.s") +//Draw Text +void func_80063828(GfxPrint* gfxPrint) +{ + s32 i; + Color_RGBA8* color; + PrintTextBuffer* buffer; + char* text; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_debug/func_8006390C.s") + i = 0; + if (D_8011E0B0 > 0) + { + do + { + buffer = &D_8015FA98[i]; + text = buffer->text; -#pragma GLOBAL_ASM("asm/non_matchings/code/z_debug/func_80063C04.s") + color = &printTextColors[buffer->colorId]; + GfxPrint_SetColor(gfxPrint, color->r, color->g, color->b, color->a); + GfxPrint_SetPos(gfxPrint, buffer->x, buffer->y); + GfxPrint_Printf(gfxPrint, "%s", text); + i += 1; + } while (i < D_8011E0B0); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/code/z_debug/func_80063D7C.s") +//Edit REG +void func_8006390C(Input* input) { + s32 dpad; + s32 regGroup; + s32 increment; + InputCombo* input_combo; + s32 i; + + regGroup = (gGameInfo->regGroup * REG_PAGES + gGameInfo->regPage) * REG_PER_PAGE - REG_PER_PAGE; + dpad = input->raw.pad & 0xF00; + if (!~(input->raw.pad | ~L_TRIG) || + !~(input->raw.pad | ~R_TRIG) || + !~(input->raw.pad | ~START_BUTTON)) { + input_combo = inputCombos; + for (i = 0; i < REG_GROUPS; i++) + { + if (~(~input_combo->push | input->raw.pad) || + ~(~input_combo->held | input->padPressed)) { + input_combo++; + } + else + break; + } + + if (i < REG_GROUPS) { + if (i == gGameInfo->regGroup) { + gGameInfo->regPage = (gGameInfo->regPage + 1) % (REG_PAGES + 1); + return; + } + gGameInfo->regGroup = i; + gGameInfo->regPage = 0; + } + } + else { + switch (gGameInfo->regPage - 1) + { + case 0: + case 1: + case 2: + case 3: + case 4: + case 5: + + if (dpad == gGameInfo->dpadLast) { + gGameInfo->repeat--; + if (gGameInfo->repeat < 0) { + gGameInfo->repeat = 1; + } + else { + dpad ^= gGameInfo->dpadLast; + } + } + else { + gGameInfo->repeat = 0x10; + gGameInfo->dpadLast = dpad; + } + + increment = + (dpad & R_JPAD) ? ( + !~(input->raw.pad | ~(A_BUTTON | B_BUTTON)) ? 1000 : + !~(input->raw.pad | ~A_BUTTON) ? 100 : + !~(input->raw.pad | ~B_BUTTON) ? 10 : 1) : + (dpad & L_JPAD) ? ( + !~(input->raw.pad | ~(A_BUTTON | B_BUTTON)) ? -1000 : + !~(input->raw.pad | ~A_BUTTON) ? -100 : + !~(input->raw.pad | ~B_BUTTON) ? -10 : -1) : + 0; + + gGameInfo->data[gGameInfo->regCur + regGroup] += increment; + if (dpad & U_JPAD) { + gGameInfo->regCur--; + if (gGameInfo->regCur < 0) { + gGameInfo->regCur = REG_PER_PAGE - 1; + } + } + else if (dpad & D_JPAD) { + gGameInfo->regCur++; + if (gGameInfo->regCur >= REG_PER_PAGE) { + gGameInfo->regCur = 0; + } + } + if (iREG(0)) { + iREG(0) = 0; + func_800AA000(0, iREG(1), iREG(2), iREG(3)); + } + } + } +} + +//Draw Memory Viewer +void func_80063C04(GfxPrint* gfxPrint) +{ + s32 i; + s32 page; + s32 regGroup; + s32 test; //removing affects stack + char name[3]; + + page = (gGameInfo->regPage * REG_PER_PAGE) - REG_PER_PAGE; + regGroup = (gGameInfo->regGroup * REG_PAGES + gGameInfo->regPage) * REG_PER_PAGE - REG_PER_PAGE; + + //set up register name string + name[0] = 'R'; + name[1] = regChar[gGameInfo->regGroup]; //r_group type char + name[2] = '\0'; + GfxPrint_SetColor(gfxPrint, 0, 0x80, 0x80, 0x80); + + for (i = 0; i != REG_PER_PAGE; i++) + { + if (i == gGameInfo->regCur) + { + GfxPrint_SetColor(gfxPrint, 0, 0xff, 0xff, 0xff); + } + GfxPrint_SetPos(gfxPrint, 3, i + 5); + GfxPrint_Printf(gfxPrint, "%s%02d%6d", &name, page + i, gGameInfo->data[i + regGroup]); + if (i == gGameInfo->regCur) + { + GfxPrint_SetColor(gfxPrint, 0, 0x80, 0x80, 0x80); + } + } +} + +void func_80063D7C(GraphicsContext* gfxCtx) { + Gfx* sp7C; + Gfx* sp78; + Gfx* tempRet; + void* unk2[6]; + GfxPrint gfxPrint; + void* unk[2]; + Gfx* dlFrame[4]; //stores state of GfxCtx next ptrs + + func_800C6AC4(&dlFrame, gfxCtx, "../z_debug.c", 628); + GfxPrint_Ctor(&gfxPrint); + sp78 = gfxCtx->polyOpa.p; + tempRet = func_800C6C20(gfxCtx->polyOpa.p); + gSPDisplayList(gfxCtx->overlay.p++, tempRet); + GfxPrint_Open(&gfxPrint, tempRet); + + if ((OREG(0) == 1) || (OREG(0) == 8)) { + func_80063828(&gfxPrint); + } + + if (gGameInfo->regPage != 0) { + func_80063C04(&gfxPrint); + } + + D_8011E0B0 = 0; + sp7C = GfxPrint_Close(&gfxPrint); + gSPEndDisplayList(sp7C++); + func_800C6C28(sp78, sp7C); + gfxCtx->polyOpa.p = sp7C; + if (0); + func_800C6B54(&dlFrame, gfxCtx, "../z_debug.c", 664); + GfxPrint_Dtor(&gfxPrint); +} diff --git a/src/code/z_lib.c b/src/code/z_lib.c index 7b8bcbc2cb..a7411c53de 100644 --- a/src/code/z_lib.c +++ b/src/code/z_lib.c @@ -1,20 +1,17 @@ #include #include -#ifdef NON_MATCHING -void Lib_MemSet(void* dest, size_t size, u8 val) +void Lib_MemSet(u8* dest, size_t size, u8 val) { - u8* destu = dest; - u32 i; + u32 i = 0; - for (i = 0; i < size; i++) - { - *destu++ = val; - } + // TODO: Convert this to while/for if possible + if (i == size) return; + do { + *dest++ = val; + i++; + } while (i != size); } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_lib/Lib_MemSet.s") -#endif f32 Math_Coss(s16 angle) { @@ -559,15 +556,12 @@ f32 func_800784D8(f32* pValue, f32 target, f32 scale, f32 maxStep, f32 minStep) return step; } -#ifdef NON_MATCHING -// regalloc differences s16 Math_SmoothScaleMaxMinS(s16* pValue, s16 target, s16 invScale, s16 maxStep, s16 minStep) { + s16 step = 0; s16 diff = (target - *pValue); - s32 baseStep; - s16 step; - baseStep = diff / invScale; + s32 baseStep = diff / invScale; if (*pValue != target) { @@ -604,9 +598,6 @@ s16 Math_SmoothScaleMaxMinS(s16* pValue, s16 target, s16 invScale, s16 maxStep, return diff; } -#else -#pragma GLOBAL_ASM("asm/non_matchings/code/z_lib/Math_SmoothScaleMaxMinS.s") -#endif void Math_SmoothScaleMaxS(s16* pValue, s16 target, s16 invScale, s16 maxStep) { diff --git a/src/code/z_msgevent.c b/src/code/z_msgevent.c new file mode 100644 index 0000000000..3282d0342f --- /dev/null +++ b/src/code/z_msgevent.c @@ -0,0 +1,23 @@ +#include +#include +#include + +void MsgEvent_SendNullTask() +{ + u32 pad[4]; + OSScTask task; + OSMesgQueue queue; + OSMesg msg; + u32 pad2[1]; + + task.next = NULL; + task.flags = OS_SC_RCP_MASK; + task.msgQ = &queue; + task.msg = NULL; + task.framebuffer = NULL; + task.list.t.type = M_NULTASK; + osCreateMesgQueue(task.msgQ, &msg, 1); + osSendMesg(&gSchedContext.cmdQ, &task, OS_MESG_BLOCK); + func_800C95F8(&gSchedContext); // osScKickEntryMsg + osRecvMesg(&queue, NULL, OS_MESG_BLOCK); +} diff --git a/src/code/z_prenmi_buff.c b/src/code/z_prenmi_buff.c new file mode 100644 index 0000000000..5616e3b798 --- /dev/null +++ b/src/code/z_prenmi_buff.c @@ -0,0 +1,35 @@ +#include +#include + +#define COLD_RESET 0 +#define NMI 1 + + +void PreNmiBuff_Init(PreNmiBuff* this) +{ + this->resetting = false; + if (osResetType == COLD_RESET) + { + this->resetCount = 0; + this->duration = 0; + } + else + { + this->resetCount++; + this->duration += this->resetTime; + } + + this->resetTime = 0; +} + + +void PreNmiBuff_SetReset(PreNmiBuff* this) +{ + this->resetting = true; + this->resetTime = osGetTime(); +} + +u32 PreNmiBuff_IsResetting(PreNmiBuff* this) +{ + return this->resetting; +} diff --git a/src/code/z_room.c b/src/code/z_room.c index bbcb3d6f49..79c0d2bf6e 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -426,8 +426,8 @@ void func_80096680(GlobalContext* globalCtx, Room* room, u32 flags) gfxCtx->polyOpa.p = spA8; } - // gSPLoadUcode(gfxCtx->polyOpa.p++, func_800D2E14(), func_800D2E20())? - gSPLoadUcodeEx(gfxCtx->polyOpa.p++, func_800D2E14(), func_800D2E20(), 0x800); + // gSPLoadUcode(gfxCtx->polyOpa.p++, SysUcode_GetUcode(), SysUcode_GetUcodeData())? + gSPLoadUcodeEx(gfxCtx->polyOpa.p++, SysUcode_GetUcode(), SysUcode_GetUcodeData(), 0x800); } } @@ -542,8 +542,8 @@ void func_80096B6C(GlobalContext* globalCtx, Room* room, u32 flags) gfxCtx->polyOpa.p = spA8; } - // gSPLoadUcode(gfxCtx->polyOpa.p++, func_800D2E14(), func_800D2E20())? - gSPLoadUcodeEx(gfxCtx->polyOpa.p++, func_800D2E14(), func_800D2E20(), 0x800); + // gSPLoadUcode(gfxCtx->polyOpa.p++, SysUcode_GetUcode(), SysUcode_GetUcodeData())? + gSPLoadUcodeEx(gfxCtx->polyOpa.p++, SysUcode_GetUcode(), SysUcode_GetUcodeData(), 0x800); } } diff --git a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c index 53641c4f19..406a70a689 100644 --- a/src/overlays/actors/ovl_Door_Ana/z_door_ana.c +++ b/src/overlays/actors/ovl_Door_Ana/z_door_ana.c @@ -45,7 +45,7 @@ static ColliderCylinderInit colliderInit = 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x0032, 0x000A, 0x0000, - 0x0000, 0x0000, 0x0000 + 0x0000, 0x0000, 0x0000, }; // array of entrance table entries to grotto destinations @@ -53,7 +53,7 @@ static s16 entrances[] = { 0x036D, 0x003F, 0x0598, 0x059C, 0x05A0, 0x05A4, 0x05A8, 0x05AC, 0x05B0, 0x05B4, 0x05B8, 0x05BC, - 0x05C0, 0x05C4, 0x05FC + 0x05C0, 0x05C4, 0x05FC, }; // display list diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c index 00b720f420..d5cc6f8feb 100644 --- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c +++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c @@ -1,14 +1,22 @@ +/* + * File: z_obj_bombiwa.c + * Overlay: ovl_Obj_Bombiwa + * Description: Round, brown, breakable boulder +*/ + #include "z_obj_bombiwa.h" #define ROOM 0x00 #define FLAGS 0x00000000 -void ObjBombiwa_Init(ObjBombiwa* this, GlobalContext* globalCtx); -void ObjBombiwa_Destroy(ObjBombiwa* this, GlobalContext* globalCtx); -void ObjBombiwa_Update(ObjBombiwa* this, GlobalContext* globalCtx); -void ObjBombiwa_Draw(ObjBombiwa* this, GlobalContext* globalCtx); +static void ObjBombiwa_Init(ObjBombiwa* this, GlobalContext* globalCtx); +static void ObjBombiwa_Destroy(ObjBombiwa* this, GlobalContext* globalCtx); +static void ObjBombiwa_Update(ObjBombiwa* this, GlobalContext* globalCtx); +static void ObjBombiwa_Draw(ObjBombiwa* this, GlobalContext* globalCtx); + +static void ObjBombiwa_InitCollision(ObjBombiwa* this, GlobalContext* globalCtx); +static void ObjBombiwa_Break(ObjBombiwa* this, GlobalContext* globalCtx); -/* const ActorInit Obj_Bombiwa_InitVars = { ACTOR_OBJ_BOMBIWA, @@ -22,18 +30,133 @@ const ActorInit Obj_Bombiwa_InitVars = (ActorFunc)ObjBombiwa_Update, (ActorFunc)ObjBombiwa_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/func_80B915F0.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Init.s") +static ColliderCylinderInit colliderInit = +{ + 0x0C, 0x00, 0x0D, 0x39, + 0x20, 0x01, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, + 0x00000000, 0x00, 0x00, + 0x00, 0x00, 0x4FC1FFFE, + 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x01, 0x00, + 0x0037, 0x0046, 0x0000, + 0x0000, 0x0000, 0x0000, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Destroy.s") +static u32 damageChart[] = +{ + 0x0000000C, 0x003CFF00, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/func_80B91738.s") +static InitChainEntry initChain[] = +{ + ICHAIN_VEC3F_DIV1000(scale, 0x64, ICHAIN_CONTINUE), + ICHAIN_F32(unk_F4, 0x7D0, ICHAIN_CONTINUE), + ICHAIN_F32(unk_F8, 0x15E, ICHAIN_CONTINUE), + ICHAIN_F32(unk_FC, 0x3E8, ICHAIN_STOP), +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Update.s") +static s16 effectScales[] = +{ + 17, 14, 10, 8, 7, 5, 3, 2, +}; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Obj_Bombiwa/ObjBombiwa_Draw.s") +extern Gfx* D_060009E0; //dlist +static void ObjBombiwa_InitCollision(ObjBombiwa* this, GlobalContext* globalCtx) +{ + ObjBombiwa* thisLocal = this; + ActorCollider_AllocCylinder(globalCtx, &thisLocal->collider); + ActorCollider_InitCylinder(globalCtx, &thisLocal->collider, &thisLocal->actor, &colliderInit); + ActorCollider_Cylinder_Update(&thisLocal->actor, &thisLocal->collider); +} +static void ObjBombiwa_Init(ObjBombiwa* this, GlobalContext* globalCtx) +{ + Actor_ProcessInitChain(&this->actor, initChain); + ObjBombiwa_InitCollision(this, globalCtx); + if ((Flags_GetSwitch(globalCtx, this->actor.params & 0x3F) != 0)) + { + Actor_Kill(&this->actor); + } + else + { + func_80061ED4(&this->actor.sub_98.damageChart, NULL, damageChart); + if (this->actor.shape.rot.y == 0) + { + s16 rand = (s16) Math_Rand_ZeroFloat(65536.0f); + this->actor.posRot.rot.y = rand; + this->actor.shape.rot.y = rand; + } + this->actor.shape.unk_08 = -200.0f; + this->actor.posRot.pos.y = this->actor.initPosRot.pos.y + 20.0f; + } + +} +static void ObjBombiwa_Destroy(ObjBombiwa* this, GlobalContext* globalCtx) +{ + ActorCollider_FreeCylinder(globalCtx, &this->collider); +} + +static void ObjBombiwa_Break(ObjBombiwa *this, GlobalContext *globalCtx) +{ + Vec3f temp_s2; + Vec3f temp_s3; + Gfx** dlist; + s16 u0; + s16 scale; + s32 i; + + dlist = &D_060009E0; + for (i = 0; i < ARRAY_COUNT(effectScales); i++) + { + temp_s2.x = ((Math_Rand_ZeroOne() - 0.5f) * 10.0f) + this->actor.initPosRot.pos.x; + temp_s2.y = ((Math_Rand_ZeroOne() * 5.0f) + this->actor.initPosRot.pos.y) + 8.0f; + temp_s2.z = ((Math_Rand_ZeroOne() - 0.5f) * 10.0f) + this->actor.initPosRot.pos.z; + temp_s3.x = (Math_Rand_ZeroOne() - 0.5f) * 15.0f; + temp_s3.y = (Math_Rand_ZeroOne() * 16.0f) + 5.0f; + temp_s3.z = (Math_Rand_ZeroOne() - 0.5f) * 15.0f; + scale = effectScales[i]; + u0 = (scale >= 11) ? 37 : 33; + Effect_SpawnFragment(globalCtx, &temp_s2, &temp_s3, &temp_s2, -400, u0, 10, 2, 0, scale, 1, 0, 80, -1, OBJECT_BOMBIWA, dlist); + } + func_80033480(globalCtx, &this->actor.posRot.pos, 60.0f, 8, 100, 160, 1); +} + +static void ObjBombiwa_Update(ObjBombiwa* this, GlobalContext* globalCtx) +{ + SubGlobalContext11E60* sub_11E60; + ColliderCylinderMain* collider; + + if (func_80033684(globalCtx, &this->actor) != NULL || + ((this->collider.base.collideFlags & 2) != 0 && + (this->collider.body.colliding->toucher.flags & 0x40000040) != 0)) + { + ObjBombiwa_Break(this, globalCtx); + Flags_SetSwitch(globalCtx, this->actor.params & 0x3F); + Audio_PlaySoundAtPosition(globalCtx, &this->actor.posRot.pos, 80, NA_SE_EV_WALL_BROKEN); + if (((this->actor.params >> 0xF) & 1) != 0) + { + func_80078884(NA_SE_SY_CORRECT_CHIME); + } + Actor_Kill(&this->actor); + } + else + { + this->collider.base.collideFlags &= ~0x2; + if (this->actor.xzDistanceFromLink < 800.0f) + { + sub_11E60 = &globalCtx->sub_11E60; + collider = &this->collider; + Actor_CollisionCheck_SetAC(globalCtx, sub_11E60, collider); + Actor_CollisionCheck_SetOT(globalCtx, sub_11E60, collider); + } + } +} + +static void ObjBombiwa_Draw(ObjBombiwa* this, GlobalContext* globalCtx) +{ + Draw_DListOpa(globalCtx, &D_060009E0); +} diff --git a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h index ccffafb599..beafae8fbe 100644 --- a/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h +++ b/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.h @@ -7,7 +7,7 @@ typedef struct { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x4C]; + /* 0x014C */ ColliderCylinderMain collider; } ObjBombiwa; // size = 0x0198 extern const ActorInit Obj_Bombiwa_InitVars; diff --git a/undefined_syms.txt b/undefined_syms.txt index 71ae2b4a2e..5f951b33d6 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -396,6 +396,5 @@ D_0600A054 = 0x0600A054; D_06008688 = 0x06008688; D_04049210 = 0x04049210; -// z_en_lightbox -D_06000B70 = 0x06000B70; -D_06001F10 = 0x06001F10; \ No newline at end of file +// z_obj_bombiwa +D_060009E0 = 0x060009E0; \ No newline at end of file