From db822f7d0f00083d036c61535a5bc667fe98641c Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 19 Mar 2020 20:06:46 -0400 Subject: [PATCH] More --- .../actors/ovl_Demo_Geff/DemoGeff_Destroy.s | 6 - .../actors/ovl_Demo_Geff/DemoGeff_Init.s | 40 ------ .../actors/ovl_Demo_Geff/DemoGeff_Update.s | 38 ------ .../actors/ovl_Demo_Geff/func_80978030.s | 104 ++++++++++++++-- .../actors/ovl_Demo_Geff/func_809780E0.s | 97 --------------- .../actors/ovl_Demo_Geff/func_80978308.s | 18 --- .../actors/ovl_Demo_Geff/func_80978344.s | 14 --- .../actors/ovl_Demo_Geff/func_809783D4.s | 60 --------- .../actors/ovl_Demo_Geff/func_809784D4.s | 6 - data/overlays/actors/z_demo_geff.data.s | 35 ------ diff.py | 0 spec | 1 - .../actors/ovl_Demo_Geff/z_demo_geff.c | 115 ++++++++++++++++-- .../actors/ovl_Demo_Geff/z_demo_geff.h | 8 +- undefined_syms.txt | 3 + 15 files changed, 211 insertions(+), 334 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Destroy.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Init.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Update.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809780E0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978308.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978344.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809783D4.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809784D4.s delete mode 100644 data/overlays/actors/z_demo_geff.data.s mode change 100644 => 100755 diff.py diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Destroy.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Destroy.s deleted file mode 100644 index 4792166bf4..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Destroy.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel DemoGeff_Destroy -/* 00000 80977E40 AFA40000 */ sw $a0, 0x0000($sp) -/* 00004 80977E44 03E00008 */ jr $ra -/* 00008 80977E48 AFA50004 */ sw $a1, 0x0004($sp) - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Init.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Init.s deleted file mode 100644 index 426d489ca6..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Init.s +++ /dev/null @@ -1,40 +0,0 @@ -.rdata - - -glabel D_809785E0 - .asciz "Demo_Geff_Actor_ct:arg_dataがおかしい!!!!!!!!!!!!\n" - .balign 4 - -.text - -glabel DemoGeff_Init -/* 0000C 80977E4C 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00010 80977E50 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00014 80977E54 AFA40018 */ sw $a0, 0x0018($sp) -/* 00018 80977E58 AFA5001C */ sw $a1, 0x001C($sp) -/* 0001C 80977E5C 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 00020 80977E60 00802825 */ or $a1, $a0, $zero ## $a1 = 00000000 -/* 00024 80977E64 3C048098 */ lui $a0, %hi(D_809785E0) ## $a0 = 80980000 -/* 00028 80977E68 04400002 */ bltz $v0, .L80977E74 -/* 0002C 80977E6C 28410009 */ slti $at, $v0, 0x0009 -/* 00030 80977E70 14200007 */ bne $at, $zero, .L80977E90 -.L80977E74: -/* 00034 80977E74 248485E0 */ addiu $a0, $a0, %lo(D_809785E0) ## $a0 = 809785E0 -/* 00038 80977E78 0C00084C */ jal osSyncPrintf - -/* 0003C 80977E7C AFA50018 */ sw $a1, 0x0018($sp) -/* 00040 80977E80 0C00B55C */ jal Actor_Kill - -/* 00044 80977E84 8FA40018 */ lw $a0, 0x0018($sp) -/* 00048 80977E88 10000004 */ beq $zero, $zero, .L80977E9C -/* 0004C 80977E8C 8FBF0014 */ lw $ra, 0x0014($sp) -.L80977E90: -/* 00050 80977E90 ACA0014C */ sw $zero, 0x014C($a1) ## 0000014C -/* 00054 80977E94 ACA00150 */ sw $zero, 0x0150($a1) ## 00000150 -/* 00058 80977E98 8FBF0014 */ lw $ra, 0x0014($sp) -.L80977E9C: -/* 0005C 80977E9C 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00060 80977EA0 03E00008 */ jr $ra -/* 00064 80977EA4 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Update.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Update.s deleted file mode 100644 index c4992029af..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Update.s +++ /dev/null @@ -1,38 +0,0 @@ -.rdata - -glabel D_80978704 - .asciz "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" - .balign 4 - -.text - -glabel DemoGeff_Update -/* 00638 80978478 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 0063C 8097847C AFBF0014 */ sw $ra, 0x0014($sp) -/* 00640 80978480 8C82014C */ lw $v0, 0x014C($a0) ## 0000014C -/* 00644 80978484 04400008 */ bltz $v0, .L809784A8 -/* 00648 80978488 28410002 */ slti $at, $v0, 0x0002 -/* 0064C 8097848C 10200006 */ beq $at, $zero, .L809784A8 -/* 00650 80978490 00027080 */ sll $t6, $v0, 2 -/* 00654 80978494 3C038098 */ lui $v1, %hi(D_809785A8) ## $v1 = 80980000 -/* 00658 80978498 006E1821 */ addu $v1, $v1, $t6 -/* 0065C 8097849C 8C6385A8 */ lw $v1, %lo(D_809785A8)($v1) -/* 00660 809784A0 14600006 */ bne $v1, $zero, .L809784BC -/* 00664 809784A4 00000000 */ nop -.L809784A8: -/* 00668 809784A8 3C048098 */ lui $a0, %hi(D_80978704) ## $a0 = 80980000 -/* 0066C 809784AC 0C00084C */ jal osSyncPrintf - -/* 00670 809784B0 24848704 */ addiu $a0, $a0, %lo(D_80978704) ## $a0 = 80978704 -/* 00674 809784B4 10000004 */ beq $zero, $zero, .L809784C8 -/* 00678 809784B8 8FBF0014 */ lw $ra, 0x0014($sp) -.L809784BC: -/* 0067C 809784BC 0060F809 */ jalr $ra, $v1 -/* 00680 809784C0 00000000 */ nop -/* 00684 809784C4 8FBF0014 */ lw $ra, 0x0014($sp) -.L809784C8: -/* 00688 809784C8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0068C 809784CC 03E00008 */ jr $ra -/* 00690 809784D0 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s index ab3a164015..55c2987535 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s @@ -2,17 +2,33 @@ glabel jtbl_80978778 .word L80978064 -.word func_809780E0 +.word L809780E0 .word L8097816C .word L80978064 -.word func_809780E0 +.word L809780E0 .word L8097816C .word L80978064 -.word func_809780E0 +.word L809780E0 glabel D_80978798 - .word 0x3C23D70A + .float 0.01 glabel D_8097879C - .word 0x3E99999A + .float 0.3 +glabel D_809787A0 + .float 0.01 +glabel D_809787A4 + .float 0.15 +glabel D_809787A8 + .float 0.29 +glabel D_809787AC + .float 0.12 +glabel D_809787B0 + .float 0.01 +glabel D_809787B4 + .float 0.1 +glabel D_809787B8 + .float 0.15 +glabel D_809787BC + .float 0.2 .text @@ -31,6 +47,7 @@ glabel func_80978030 /* 0021C 8097805C 01C00008 */ jr $t6 /* 00220 80978060 00000000 */ nop glabel L80978064 +.L80978064: /* 00224 80978064 3C038016 */ lui $v1, 0x8016 ## $v1 = 80160000 /* 00228 80978068 2463FA90 */ addiu $v1, $v1, 0xFA90 ## $v1 = 8015FA90 /* 0022C 8097806C 8C6F0000 */ lw $t7, 0x0000($v1) ## 8015FA90 @@ -62,5 +79,78 @@ glabel L80978064 /* 00294 809780D4 46028480 */ add.s $f18, $f16, $f2 /* 00298 809780D8 03E00008 */ jr $ra /* 0029C 809780DC E4520008 */ swc1 $f18, 0x0008($v0) ## 00000058 - - +glabel L809780E0 +.L809780E0: +/* 002A0 809780E0 3C038016 */ lui $v1, 0x8016 ## $v1 = 80160000 +/* 002A4 809780E4 2463FA90 */ addiu $v1, $v1, 0xFA90 ## $v1 = 8015FA90 +/* 002A8 809780E8 8C6B0000 */ lw $t3, 0x0000($v1) ## 8015FA90 +/* 002AC 809780EC 3C018098 */ lui $at, %hi(D_809787A0) ## $at = 80980000 +/* 002B0 809780F0 C42087A0 */ lwc1 $f0, %lo(D_809787A0)($at) +/* 002B4 809780F4 856C1468 */ lh $t4, 0x1468($t3) ## 00001468 +/* 002B8 809780F8 3C018098 */ lui $at, %hi(D_809787A4) ## $at = 80980000 +/* 002BC 809780FC C42A87A4 */ lwc1 $f10, %lo(D_809787A4)($at) +/* 002C0 80978100 448C2000 */ mtc1 $t4, $f4 ## $f4 = 0.00 +/* 002C4 80978104 24820050 */ addiu $v0, $a0, 0x0050 ## $v0 = 00000050 +/* 002C8 80978108 3C018098 */ lui $at, %hi(D_809787A8) ## $at = 80980000 +/* 002CC 8097810C 468021A0 */ cvt.s.w $f6, $f4 +/* 002D0 80978110 46003202 */ mul.s $f8, $f6, $f0 +/* 002D4 80978114 460A4400 */ add.s $f16, $f8, $f10 +/* 002D8 80978118 E4500000 */ swc1 $f16, 0x0000($v0) ## 00000050 +/* 002DC 8097811C 8C6D0000 */ lw $t5, 0x0000($v1) ## 8015FA90 +/* 002E0 80978120 C42887A8 */ lwc1 $f8, %lo(D_809787A8)($at) +/* 002E4 80978124 3C018098 */ lui $at, %hi(D_809787AC) ## $at = 80980000 +/* 002E8 80978128 85AE146A */ lh $t6, 0x146A($t5) ## 0000146A +/* 002EC 8097812C 448E9000 */ mtc1 $t6, $f18 ## $f18 = 0.00 +/* 002F0 80978130 00000000 */ nop +/* 002F4 80978134 46809120 */ cvt.s.w $f4, $f18 +/* 002F8 80978138 46002182 */ mul.s $f6, $f4, $f0 +/* 002FC 8097813C 46083280 */ add.s $f10, $f6, $f8 +/* 00300 80978140 E44A0004 */ swc1 $f10, 0x0004($v0) ## 00000054 +/* 00304 80978144 8C6F0000 */ lw $t7, 0x0000($v1) ## 8015FA90 +/* 00308 80978148 C42687AC */ lwc1 $f6, %lo(D_809787AC)($at) +/* 0030C 8097814C 85F8146C */ lh $t8, 0x146C($t7) ## 0000146C +/* 00310 80978150 44988000 */ mtc1 $t8, $f16 ## $f16 = 0.00 +/* 00314 80978154 00000000 */ nop +/* 00318 80978158 468084A0 */ cvt.s.w $f18, $f16 +/* 0031C 8097815C 46009102 */ mul.s $f4, $f18, $f0 +/* 00320 80978160 46062200 */ add.s $f8, $f4, $f6 +/* 00324 80978164 03E00008 */ jr $ra +/* 00328 80978168 E4480008 */ swc1 $f8, 0x0008($v0) ## 00000058 +glabel L8097816C +.L8097816C: +/* 0032C 8097816C 3C038016 */ lui $v1, 0x8016 ## $v1 = 80160000 +/* 00330 80978170 2463FA90 */ addiu $v1, $v1, 0xFA90 ## $v1 = 8015FA90 +/* 00334 80978174 8C790000 */ lw $t9, 0x0000($v1) ## 8015FA90 +/* 00338 80978178 3C018098 */ lui $at, %hi(D_809787B0) ## $at = 80980000 +/* 0033C 8097817C C42087B0 */ lwc1 $f0, %lo(D_809787B0)($at) +/* 00340 80978180 8728146E */ lh $t0, 0x146E($t9) ## 0000146E +/* 00344 80978184 3C018098 */ lui $at, %hi(D_809787B4) ## $at = 80980000 +/* 00348 80978188 C42487B4 */ lwc1 $f4, %lo(D_809787B4)($at) +/* 0034C 8097818C 44885000 */ mtc1 $t0, $f10 ## $f10 = 0.00 +/* 00350 80978190 24820050 */ addiu $v0, $a0, 0x0050 ## $v0 = 00000050 +/* 00354 80978194 3C018098 */ lui $at, %hi(D_809787B8) ## $at = 80980000 +/* 00358 80978198 46805420 */ cvt.s.w $f16, $f10 +/* 0035C 8097819C 46008482 */ mul.s $f18, $f16, $f0 +/* 00360 809781A0 46049180 */ add.s $f6, $f18, $f4 +/* 00364 809781A4 E4460000 */ swc1 $f6, 0x0000($v0) ## 00000050 +/* 00368 809781A8 8C690000 */ lw $t1, 0x0000($v1) ## 8015FA90 +/* 0036C 809781AC C43287B8 */ lwc1 $f18, %lo(D_809787B8)($at) +/* 00370 809781B0 3C018098 */ lui $at, %hi(D_809787BC) ## $at = 80980000 +/* 00374 809781B4 852A1470 */ lh $t2, 0x1470($t1) ## 00001470 +/* 00378 809781B8 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00 +/* 0037C 809781BC 00000000 */ nop +/* 00380 809781C0 468042A0 */ cvt.s.w $f10, $f8 +/* 00384 809781C4 46005402 */ mul.s $f16, $f10, $f0 +/* 00388 809781C8 46128100 */ add.s $f4, $f16, $f18 +/* 0038C 809781CC E4440004 */ swc1 $f4, 0x0004($v0) ## 00000054 +/* 00390 809781D0 8C6B0000 */ lw $t3, 0x0000($v1) ## 8015FA90 +/* 00394 809781D4 C43087BC */ lwc1 $f16, %lo(D_809787BC)($at) +/* 00398 809781D8 856C1472 */ lh $t4, 0x1472($t3) ## 00001472 +/* 0039C 809781DC 448C3000 */ mtc1 $t4, $f6 ## $f6 = 0.00 +/* 003A0 809781E0 00000000 */ nop +/* 003A4 809781E4 46803220 */ cvt.s.w $f8, $f6 +/* 003A8 809781E8 46004282 */ mul.s $f10, $f8, $f0 +/* 003AC 809781EC 46105480 */ add.s $f18, $f10, $f16 +/* 003B0 809781F0 E4520008 */ swc1 $f18, 0x0008($v0) ## 00000058 +/* 003B4 809781F4 03E00008 */ jr $ra +/* 003B8 809781F8 00000000 */ nop diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809780E0.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809780E0.s deleted file mode 100644 index a34fe5d913..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809780E0.s +++ /dev/null @@ -1,97 +0,0 @@ -.late_rodata - -glabel D_809787A0 - .word 0x3C23D70A -glabel D_809787A4 - .word 0x3E19999A -glabel D_809787A8 - .word 0x3E947AE1 -glabel D_809787AC - .word 0x3DF5C28F -glabel D_809787B0 - .word 0x3C23D70A -glabel D_809787B4 - .word 0x3DCCCCCD -glabel D_809787B8 - .word 0x3E19999A -glabel D_809787BC - .word 0x3E4CCCCD - -.text - -glabel func_809780E0 -/* 002A0 809780E0 3C038016 */ lui $v1, 0x8016 ## $v1 = 80160000 -/* 002A4 809780E4 2463FA90 */ addiu $v1, $v1, 0xFA90 ## $v1 = 8015FA90 -/* 002A8 809780E8 8C6B0000 */ lw $t3, 0x0000($v1) ## 8015FA90 -/* 002AC 809780EC 3C018098 */ lui $at, %hi(D_809787A0) ## $at = 80980000 -/* 002B0 809780F0 C42087A0 */ lwc1 $f0, %lo(D_809787A0)($at) -/* 002B4 809780F4 856C1468 */ lh $t4, 0x1468($t3) ## 00001468 -/* 002B8 809780F8 3C018098 */ lui $at, %hi(D_809787A4) ## $at = 80980000 -/* 002BC 809780FC C42A87A4 */ lwc1 $f10, %lo(D_809787A4)($at) -/* 002C0 80978100 448C2000 */ mtc1 $t4, $f4 ## $f4 = 0.00 -/* 002C4 80978104 24820050 */ addiu $v0, $a0, 0x0050 ## $v0 = 00000050 -/* 002C8 80978108 3C018098 */ lui $at, %hi(D_809787A8) ## $at = 80980000 -/* 002CC 8097810C 468021A0 */ cvt.s.w $f6, $f4 -/* 002D0 80978110 46003202 */ mul.s $f8, $f6, $f0 -/* 002D4 80978114 460A4400 */ add.s $f16, $f8, $f10 -/* 002D8 80978118 E4500000 */ swc1 $f16, 0x0000($v0) ## 00000050 -/* 002DC 8097811C 8C6D0000 */ lw $t5, 0x0000($v1) ## 8015FA90 -/* 002E0 80978120 C42887A8 */ lwc1 $f8, %lo(D_809787A8)($at) -/* 002E4 80978124 3C018098 */ lui $at, %hi(D_809787AC) ## $at = 80980000 -/* 002E8 80978128 85AE146A */ lh $t6, 0x146A($t5) ## 0000146A -/* 002EC 8097812C 448E9000 */ mtc1 $t6, $f18 ## $f18 = 0.00 -/* 002F0 80978130 00000000 */ nop -/* 002F4 80978134 46809120 */ cvt.s.w $f4, $f18 -/* 002F8 80978138 46002182 */ mul.s $f6, $f4, $f0 -/* 002FC 8097813C 46083280 */ add.s $f10, $f6, $f8 -/* 00300 80978140 E44A0004 */ swc1 $f10, 0x0004($v0) ## 00000054 -/* 00304 80978144 8C6F0000 */ lw $t7, 0x0000($v1) ## 8015FA90 -/* 00308 80978148 C42687AC */ lwc1 $f6, %lo(D_809787AC)($at) -/* 0030C 8097814C 85F8146C */ lh $t8, 0x146C($t7) ## 0000146C -/* 00310 80978150 44988000 */ mtc1 $t8, $f16 ## $f16 = 0.00 -/* 00314 80978154 00000000 */ nop -/* 00318 80978158 468084A0 */ cvt.s.w $f18, $f16 -/* 0031C 8097815C 46009102 */ mul.s $f4, $f18, $f0 -/* 00320 80978160 46062200 */ add.s $f8, $f4, $f6 -/* 00324 80978164 03E00008 */ jr $ra -/* 00328 80978168 E4480008 */ swc1 $f8, 0x0008($v0) ## 00000058 -glabel L8097816C -.L8097816C: -/* 0032C 8097816C 3C038016 */ lui $v1, 0x8016 ## $v1 = 80160000 -/* 00330 80978170 2463FA90 */ addiu $v1, $v1, 0xFA90 ## $v1 = 8015FA90 -/* 00334 80978174 8C790000 */ lw $t9, 0x0000($v1) ## 8015FA90 -/* 00338 80978178 3C018098 */ lui $at, %hi(D_809787B0) ## $at = 80980000 -/* 0033C 8097817C C42087B0 */ lwc1 $f0, %lo(D_809787B0)($at) -/* 00340 80978180 8728146E */ lh $t0, 0x146E($t9) ## 0000146E -/* 00344 80978184 3C018098 */ lui $at, %hi(D_809787B4) ## $at = 80980000 -/* 00348 80978188 C42487B4 */ lwc1 $f4, %lo(D_809787B4)($at) -/* 0034C 8097818C 44885000 */ mtc1 $t0, $f10 ## $f10 = 0.00 -/* 00350 80978190 24820050 */ addiu $v0, $a0, 0x0050 ## $v0 = 00000050 -/* 00354 80978194 3C018098 */ lui $at, %hi(D_809787B8) ## $at = 80980000 -/* 00358 80978198 46805420 */ cvt.s.w $f16, $f10 -/* 0035C 8097819C 46008482 */ mul.s $f18, $f16, $f0 -/* 00360 809781A0 46049180 */ add.s $f6, $f18, $f4 -/* 00364 809781A4 E4460000 */ swc1 $f6, 0x0000($v0) ## 00000050 -/* 00368 809781A8 8C690000 */ lw $t1, 0x0000($v1) ## 8015FA90 -/* 0036C 809781AC C43287B8 */ lwc1 $f18, %lo(D_809787B8)($at) -/* 00370 809781B0 3C018098 */ lui $at, %hi(D_809787BC) ## $at = 80980000 -/* 00374 809781B4 852A1470 */ lh $t2, 0x1470($t1) ## 00001470 -/* 00378 809781B8 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00 -/* 0037C 809781BC 00000000 */ nop -/* 00380 809781C0 468042A0 */ cvt.s.w $f10, $f8 -/* 00384 809781C4 46005402 */ mul.s $f16, $f10, $f0 -/* 00388 809781C8 46128100 */ add.s $f4, $f16, $f18 -/* 0038C 809781CC E4440004 */ swc1 $f4, 0x0004($v0) ## 00000054 -/* 00390 809781D0 8C6B0000 */ lw $t3, 0x0000($v1) ## 8015FA90 -/* 00394 809781D4 C43087BC */ lwc1 $f16, %lo(D_809787BC)($at) -/* 00398 809781D8 856C1472 */ lh $t4, 0x1472($t3) ## 00001472 -/* 0039C 809781DC 448C3000 */ mtc1 $t4, $f6 ## $f6 = 0.00 -/* 003A0 809781E0 00000000 */ nop -/* 003A4 809781E4 46803220 */ cvt.s.w $f8, $f6 -/* 003A8 809781E8 46004282 */ mul.s $f10, $f8, $f0 -/* 003AC 809781EC 46105480 */ add.s $f18, $f10, $f16 -/* 003B0 809781F0 E4520008 */ swc1 $f18, 0x0008($v0) ## 00000058 -/* 003B4 809781F4 03E00008 */ jr $ra -/* 003B8 809781F8 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978308.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978308.s deleted file mode 100644 index 50ebfe6a12..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978308.s +++ /dev/null @@ -1,18 +0,0 @@ -glabel func_80978308 -/* 004C8 80978308 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 004CC 8097830C AFBF0014 */ sw $ra, 0x0014($sp) -/* 004D0 80978310 AFA40018 */ sw $a0, 0x0018($sp) -/* 004D4 80978314 0C25E07F */ jal func_809781FC -/* 004D8 80978318 AFA5001C */ sw $a1, 0x001C($sp) -/* 004DC 8097831C 8FA40018 */ lw $a0, 0x0018($sp) -/* 004E0 80978320 0C25E0A8 */ jal func_809782A0 -/* 004E4 80978324 8FA5001C */ lw $a1, 0x001C($sp) -/* 004E8 80978328 8FA40018 */ lw $a0, 0x0018($sp) -/* 004EC 8097832C 0C25E00C */ jal func_80978030 -/* 004F0 80978330 8FA5001C */ lw $a1, 0x001C($sp) -/* 004F4 80978334 8FBF0014 */ lw $ra, 0x0014($sp) -/* 004F8 80978338 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 004FC 8097833C 03E00008 */ jr $ra -/* 00500 80978340 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978344.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978344.s deleted file mode 100644 index 24f6c6256e..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978344.s +++ /dev/null @@ -1,14 +0,0 @@ -glabel func_80978344 -/* 00504 80978344 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00508 80978348 AFA40018 */ sw $a0, 0x0018($sp) -/* 0050C 8097834C 00A02025 */ or $a0, $a1, $zero ## $a0 = 00000000 -/* 00510 80978350 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00514 80978354 3C050600 */ lui $a1, 0x0600 ## $a1 = 06000000 -/* 00518 80978358 0C25DFAA */ jal func_80977EA8 -/* 0051C 8097835C 24A50EA0 */ addiu $a1, $a1, 0x0EA0 ## $a1 = 06000EA0 -/* 00520 80978360 8FBF0014 */ lw $ra, 0x0014($sp) -/* 00524 80978364 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 00528 80978368 03E00008 */ jr $ra -/* 0052C 8097836C 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809783D4.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809783D4.s deleted file mode 100644 index f06fb64efe..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809783D4.s +++ /dev/null @@ -1,60 +0,0 @@ -.rdata - - -glabel D_809786C4 - .asciz "Demo_Geff_main_bank:バンクを読めない arg_data = %d!\n" - .balign 4 - -.text - -glabel func_809783D4 -/* 00594 809783D4 27BDFFC8 */ addiu $sp, $sp, 0xFFC8 ## $sp = FFFFFFC8 -/* 00598 809783D8 AFBF0014 */ sw $ra, 0x0014($sp) -/* 0059C 809783DC AFA40038 */ sw $a0, 0x0038($sp) -/* 005A0 809783E0 AFA5003C */ sw $a1, 0x003C($sp) -/* 005A4 809783E4 8486001C */ lh $a2, 0x001C($a0) ## 0000001C -/* 005A8 809783E8 8FA4003C */ lw $a0, 0x003C($sp) -/* 005AC 809783EC 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 005B0 809783F0 3C058098 */ lui $a1, %hi(D_80978570) ## $a1 = 80980000 -/* 005B4 809783F4 342117A4 */ ori $at, $at, 0x17A4 ## $at = 000117A4 -/* 005B8 809783F8 00067840 */ sll $t7, $a2, 1 -/* 005BC 809783FC 00AF2821 */ addu $a1, $a1, $t7 -/* 005C0 80978400 00812021 */ addu $a0, $a0, $at -/* 005C4 80978404 84A58570 */ lh $a1, %lo(D_80978570)($a1) -/* 005C8 80978408 AFA4001C */ sw $a0, 0x001C($sp) -/* 005CC 8097840C 0C02604B */ jal Object_GetIndex - ## ObjectIndex -/* 005D0 80978410 AFA6002C */ sw $a2, 0x002C($sp) -/* 005D4 80978414 8FA4001C */ lw $a0, 0x001C($sp) -/* 005D8 80978418 8FA6002C */ lw $a2, 0x002C($sp) -/* 005DC 8097841C 04410009 */ bgez $v0, .L80978444 -/* 005E0 80978420 00403825 */ or $a3, $v0, $zero ## $a3 = 00000000 -/* 005E4 80978424 3C048098 */ lui $a0, %hi(D_809786C4) ## $a0 = 80980000 -/* 005E8 80978428 248486C4 */ addiu $a0, $a0, %lo(D_809786C4) ## $a0 = 809786C4 -/* 005EC 8097842C 0C00084C */ jal osSyncPrintf - -/* 005F0 80978430 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000 -/* 005F4 80978434 0C00B55C */ jal Actor_Kill - -/* 005F8 80978438 8FA40038 */ lw $a0, 0x0038($sp) -/* 005FC 8097843C 1000000B */ beq $zero, $zero, .L8097846C -/* 00600 80978440 8FBF0014 */ lw $ra, 0x0014($sp) -.L80978444: -/* 00604 80978444 00E02825 */ or $a1, $a3, $zero ## $a1 = 00000000 -/* 00608 80978448 0C026062 */ jal Object_IsLoaded - -/* 0060C 8097844C AFA70024 */ sw $a3, 0x0024($sp) -/* 00610 80978450 10400005 */ beq $v0, $zero, .L80978468 -/* 00614 80978454 8FA70024 */ lw $a3, 0x0024($sp) -/* 00618 80978458 8FA40038 */ lw $a0, 0x0038($sp) -/* 0061C 8097845C AC870154 */ sw $a3, 0x0154($a0) ## 00000154 -/* 00620 80978460 0C25E0DC */ jal func_80978370 -/* 00624 80978464 8FA5003C */ lw $a1, 0x003C($sp) -.L80978468: -/* 00628 80978468 8FBF0014 */ lw $ra, 0x0014($sp) -.L8097846C: -/* 0062C 8097846C 27BD0038 */ addiu $sp, $sp, 0x0038 ## $sp = 00000000 -/* 00630 80978470 03E00008 */ jr $ra -/* 00634 80978474 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809784D4.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809784D4.s deleted file mode 100644 index 6a177148ec..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809784D4.s +++ /dev/null @@ -1,6 +0,0 @@ -glabel func_809784D4 -/* 00694 809784D4 AFA40000 */ sw $a0, 0x0000($sp) -/* 00698 809784D8 03E00008 */ jr $ra -/* 0069C 809784DC AFA50004 */ sw $a1, 0x0004($sp) - - diff --git a/data/overlays/actors/z_demo_geff.data.s b/data/overlays/actors/z_demo_geff.data.s deleted file mode 100644 index 4b1616aec8..0000000000 --- a/data/overlays/actors/z_demo_geff.data.s +++ /dev/null @@ -1,35 +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_80978570 - .word 0x01860186, 0x01860186, 0x01860186, 0x01860186, 0x01860000 -glabel D_80978584 - .word func_80978030 -.word func_80978030 -.word func_80978030 -.word func_80978030 -.word func_80978030 -.word func_80978030 -.word func_80978030 -.word func_80978030 -.word func_80978030 -glabel D_809785A8 - .word func_809783D4 -.word func_80978308 -glabel D_809785B0 - .word func_809784D4 -.word func_80978344 -glabel Demo_Geff_InitVars - .word 0x01B20900, 0x00000030, 0x01860000, 0x00000168 -.word DemoGeff_Init -.word DemoGeff_Destroy -.word DemoGeff_Update -.word DemoGeff_Draw -.word 0x00000000, 0x00000000 - diff --git a/diff.py b/diff.py old mode 100644 new mode 100755 diff --git a/spec b/spec index 697c0bb262..3ac5948834 100644 --- a/spec +++ b/spec @@ -1795,7 +1795,6 @@ endseg beginseg name "ovl_Demo_Geff" include "build/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.o" - include "build/data/overlays/actors/z_demo_geff.data.o" include "build/data/overlays/actors/z_demo_geff.reloc.o" endseg diff --git a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c index 91d539939a..7aae5c3fbd 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c @@ -1,5 +1,7 @@ #include "z_demo_geff.h" +#include + #define ROOM 0x00 #define FLAGS 0x00000030 @@ -8,7 +10,21 @@ void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx); void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx); void DemoGeff_Draw(DemoGeff* this, GlobalContext* globalCtx); -/* +void func_809783D4(DemoGeff* this, GlobalContext* globalCtx); +void func_80978308(DemoGeff* this, GlobalContext* globalCtx); + +void func_809784D4(DemoGeff* this, GlobalContext* globalCtx); +void func_80978344(DemoGeff* this, GlobalContext* globalCtx); + +void func_80978030(DemoGeff* this, GlobalContext* globalCtx); + +s16 D_80978570[] = { 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0186, 0x0000, }; + +ActorFunc D_80978584[] = { func_80978030, func_80978030, func_80978030, func_80978030, func_80978030, func_80978030, + func_80978030, func_80978030, func_80978030, }; +ActorFunc D_809785A8[] = { func_809783D4, func_80978308, }; +ActorFunc D_809785B0[] = { func_809784D4, func_80978344, }; + const ActorInit Demo_Geff_InitVars = { ACTOR_DEMO_GEFF, @@ -22,33 +38,110 @@ const ActorInit Demo_Geff_InitVars = (ActorFunc)DemoGeff_Update, (ActorFunc)DemoGeff_Draw, }; -*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Destroy.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Init.s") +extern u32 D_06000EA0; + +void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx) { + +} + +void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx) { + if (this->actor.params < 0 || this->actor.params >= 9) { + osSyncPrintf(VT_FGCOL(RED) "Demo_Geff_Actor_ct:arg_dataがおかしい!!!!!!!!!!!!\n" VT_RST); + Actor_Kill(&this->actor); + return; + } + this->action = 0; + this->unk_150 = 0; +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s") +/*void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { + GraphicsContext* gfxCtx = &globalCtx->state.gfxCtx; + Gfx* gfxArr[4]; + + func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_demo_geff.c", 181); + func_80093D18(globalCtx->state.gfxCtx); + gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(globalCtx->state.gfxCtx, "../z_demo_geff.c", 183), + G_MTX_PUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(gfxCtx->polyOpa.p++, dlist); + gSPPopMatrix(gfxCtx->polyOpa.p++, G_MTX_MODELVIEW); + + func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_demo_geff.c", 188); +}*/ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809780E0.s") - #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809781FC.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809782A0.s") +/*void func_809782A0(DemoGeff* this, GlobalContext* globalCtx) { + s16 params; + if (this->unk_158 != 0) { + params = this->actor.params; + if ((params != 6) && (params != 7) && (params != 8)) { + this->actor.posRot.pos.x = this->unk_158->posRot.pos.x + this->unk_15C; + this->actor.posRot.pos.y = this->unk_158->posRot.pos.y + this->unk_160; + this->actor.posRot.pos.z = this->unk_158->posRot.pos.z + this->unk_164; + } + } +}*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978308.s") +void func_80978308(DemoGeff* this, GlobalContext* globalCtx) { + func_809781FC(this, globalCtx); + func_809782A0(this, globalCtx); + func_80978030(this, globalCtx); +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978344.s") +void func_80978344(DemoGeff* this, GlobalContext* globalCtx) { + func_80977EA8(globalCtx, &D_06000EA0); +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s") +/* +void func_80978370(DemoGeff* this, GlobalContext* globalCtx) { + Actor* thisx = &this->actor; + s32 params = thisx->params; + ActorFunc actorFunc = D_80978584[params]; + if (actorFunc == NULL) { + osSyncPrintf(VT_FGCOL(RED) " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" VT_RST, params); + Actor_Kill(thisx); + return; + } + actorFunc(this, globalCtx); +}*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809783D4.s") +void func_809783D4(DemoGeff* this, GlobalContext* globalCtx) { + ObjectContext* objCtx = &globalCtx->objectCtx; + Actor* thisx = &this->actor; + s32 params = thisx->params; + s16 objectId = D_80978570[params]; + s32 objBankIndex = Object_GetIndex(objCtx, objectId); + s32 pad; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Update.s") + if (objBankIndex < 0) { + osSyncPrintf(VT_FGCOL(RED) "Demo_Geff_main_bank:バンクを読めない arg_data = %d!\n" VT_RST, params); + Actor_Kill(thisx); + return; + } + if (Object_IsLoaded(objCtx, objBankIndex)) { + this->unk_154 = objBankIndex; + func_80978370(this, globalCtx); + } +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809784D4.s") +void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx) { + if (this->action < 0 || this->action >= 2 || D_809785A8[this->action] == NULL) { + osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); + return; + } + D_809785A8[this->action](this, globalCtx); +} + +void func_809784D4(DemoGeff* this, GlobalContext* globalCtx) { + +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s") diff --git a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.h b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.h index 6b8bf972b0..e7e07e8a5f 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.h +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.h @@ -7,7 +7,13 @@ typedef struct { /* 0x0000 */ Actor actor; - /* 0x014C */ char unk_14C[0x1C]; + /* 0x014C */ s32 action; + /* 0x0150 */ s32 unk_150; + /* 0x0154 */ s32 unk_154; + /* 0x0158 */ Actor* unk_158; + /* 0x015C */ f32 unk_15C; + /* 0x0160 */ f32 unk_160; + /* 0x0164 */ f32 unk_164; } DemoGeff; // size = 0x0168 extern const ActorInit Demo_Geff_InitVars; diff --git a/undefined_syms.txt b/undefined_syms.txt index c2d7779fd5..e9ab48b6eb 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -282,6 +282,9 @@ D_02007020 = 0x02007020; // z_effect_ss_g_splash D_04027DF0 = 0x04027DF0; +// z_demo_geff +D_06000EA0 = 0x06000EA0; + // z_demo_go D_060029A8 = 0x060029A8; D_06004930 = 0x06004930;