From e972f702dc1c45cfcf5e91cb2d8d9ad1517895c1 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 17 Mar 2020 16:00:31 -0400 Subject: [PATCH 1/8] Test --- blah.txt | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 blah.txt diff --git a/blah.txt b/blah.txt new file mode 100644 index 0000000000..e69de29bb2 From 6fc191b45bd92d8495712d3f4bb3b8e0c1638e11 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Tue, 17 Mar 2020 16:33:41 -0400 Subject: [PATCH 2/8] Migrated rodata --- .../actors/ovl_Demo_Geff/DemoGeff_Draw.s | 9 ++ .../actors/ovl_Demo_Geff/DemoGeff_Init.s | 9 ++ .../actors/ovl_Demo_Geff/DemoGeff_Update.s | 8 ++ .../actors/ovl_Demo_Geff/func_80977EA8.s | 16 ++++ .../actors/ovl_Demo_Geff/func_80977F80.s | 12 +++ .../actors/ovl_Demo_Geff/func_80978030.s | 18 ++++ .../actors/ovl_Demo_Geff/func_809780E0.s | 21 +++++ .../actors/ovl_Demo_Geff/func_80978370.s | 8 ++ .../actors/ovl_Demo_Geff/func_809783D4.s | 9 ++ data/overlays/actors/z_demo_geff.rodata.s | 80 ------------------ spec | 1 - tools/ido5.3_compiler/LICENSE.md | 0 tools/ido5.3_compiler/lib/libmalloc.so | Bin tools/ido5.3_compiler/lib/libmalloc_old.so | Bin tools/ido5.3_compiler/lib/rld | Bin tools/ido5.3_compiler/usr/bin/cc | Bin tools/ido5.3_compiler/usr/lib/as0 | Bin tools/ido5.3_compiler/usr/lib/as1 | Bin tools/ido5.3_compiler/usr/lib/cfe | Bin tools/ido5.3_compiler/usr/lib/crt1.o | Bin tools/ido5.3_compiler/usr/lib/err.english.cc | 0 tools/ido5.3_compiler/usr/lib/libc.so.1 | Bin tools/ido5.3_compiler/usr/lib/libexc.so | Bin tools/ido5.3_compiler/usr/lib/libgen.so | Bin tools/ido5.3_compiler/usr/lib/libm.so | Bin tools/ido5.3_compiler/usr/lib/ugen | Bin tools/ido5.3_compiler/usr/lib/ujoin | Bin tools/ido5.3_compiler/usr/lib/uld | Bin tools/ido5.3_compiler/usr/lib/umerge | Bin tools/ido5.3_compiler/usr/lib/uopt | Bin tools/ido5.3_compiler/usr/lib/usplit | Bin 31 files changed, 110 insertions(+), 81 deletions(-) delete mode 100644 data/overlays/actors/z_demo_geff.rodata.s mode change 100644 => 100755 tools/ido5.3_compiler/LICENSE.md mode change 100644 => 100755 tools/ido5.3_compiler/lib/libmalloc.so mode change 100644 => 100755 tools/ido5.3_compiler/lib/libmalloc_old.so mode change 100644 => 100755 tools/ido5.3_compiler/lib/rld mode change 100644 => 100755 tools/ido5.3_compiler/usr/bin/cc mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/as0 mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/as1 mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/cfe mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/crt1.o mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/err.english.cc mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/libc.so.1 mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/libexc.so mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/libgen.so mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/libm.so mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/ugen mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/ujoin mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/uld mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/umerge mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/uopt mode change 100644 => 100755 tools/ido5.3_compiler/usr/lib/usplit diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s index 7be00a7160..3afafed3d0 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s @@ -1,3 +1,12 @@ +.rdata + + +glabel D_80978740 + .asciz "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" + .balign 4 + +.text + glabel DemoGeff_Draw /* 006A0 809784E0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 /* 006A4 809784E4 AFBF0014 */ sw $ra, 0x0014($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 index dfd28b9e27..426d489ca6 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Init.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Init.s @@ -1,3 +1,12 @@ +.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) 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 index 9df7106d09..c4992029af 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Update.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Update.s @@ -1,3 +1,11 @@ +.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) diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s index 70b44521f4..628433d3fd 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s @@ -1,3 +1,19 @@ +.rdata + +glabel D_8097861C + .asciz "../z_demo_geff.c" + .balign 4 + +glabel D_80978630 + .asciz "../z_demo_geff.c" + .balign 4 + +glabel D_80978644 + .asciz "../z_demo_geff.c" + .balign 4 + +.text + glabel func_80977EA8 /* 00068 80977EA8 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8 /* 0006C 80977EAC AFBF001C */ sw $ra, 0x001C($sp) diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s index 23cda1aae2..ee035d3a8f 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s @@ -1,3 +1,15 @@ +.rdata + +glabel D_80978658 + .asciz "../z_demo_geff.c" + .balign 4 + +glabel D_8097866C + .asciz "../z_demo_geff.c" + .balign 4 + +.text + glabel func_80977F80 /* 00140 80977F80 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8 /* 00144 80977F84 AFBF0014 */ sw $ra, 0x0014($sp) 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 5731a2e104..ab3a164015 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 @@ -1,3 +1,21 @@ +.late_rodata + +glabel jtbl_80978778 +.word L80978064 +.word func_809780E0 +.word L8097816C +.word L80978064 +.word func_809780E0 +.word L8097816C +.word L80978064 +.word func_809780E0 +glabel D_80978798 + .word 0x3C23D70A +glabel D_8097879C + .word 0x3E99999A + +.text + glabel func_80978030 /* 001F0 80978030 AFA50004 */ sw $a1, 0x0004($sp) /* 001F4 80978034 948E001C */ lhu $t6, 0x001C($a0) ## 0000001C 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 index c140b9e4ae..a34fe5d913 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809780E0.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809780E0.s @@ -1,3 +1,24 @@ +.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 diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s index fa79bc57a7..22f7325187 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s @@ -1,3 +1,11 @@ +.rdata + +glabel D_80978680 + .asciz " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" + .balign 4 + +.text + glabel func_80978370 /* 00530 80978370 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 /* 00534 80978374 AFBF0014 */ sw $ra, 0x0014($sp) 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 index 2a2cbdeb76..f06fb64efe 100644 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809783D4.s +++ b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809783D4.s @@ -1,3 +1,12 @@ +.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) diff --git a/data/overlays/actors/z_demo_geff.rodata.s b/data/overlays/actors/z_demo_geff.rodata.s deleted file mode 100644 index cf738192db..0000000000 --- a/data/overlays/actors/z_demo_geff.rodata.s +++ /dev/null @@ -1,80 +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_809785E0 - .asciz "Demo_Geff_Actor_ct:arg_dataがおかしい!!!!!!!!!!!!\n" - .balign 4 - -glabel D_8097861C - .asciz "../z_demo_geff.c" - .balign 4 - -glabel D_80978630 - .asciz "../z_demo_geff.c" - .balign 4 - -glabel D_80978644 - .asciz "../z_demo_geff.c" - .balign 4 - -glabel D_80978658 - .asciz "../z_demo_geff.c" - .balign 4 - -glabel D_8097866C - .asciz "../z_demo_geff.c" - .balign 4 - -glabel D_80978680 - .asciz " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" - .balign 4 - -glabel D_809786C4 - .asciz "Demo_Geff_main_bank:バンクを読めない arg_data = %d!\n" - .balign 4 - -glabel D_80978704 - .asciz "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" - .balign 4 - -glabel D_80978740 - .asciz "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" - .balign 4 - -glabel jtbl_80978778 -.word L80978064 -.word func_809780E0 -.word L8097816C -.word L80978064 -.word func_809780E0 -.word L8097816C -.word L80978064 -.word func_809780E0 -glabel D_80978798 - .word 0x3C23D70A -glabel D_8097879C - .word 0x3E99999A -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 - - diff --git a/spec b/spec index 00c5891b03..697c0bb262 100644 --- a/spec +++ b/spec @@ -1796,7 +1796,6 @@ 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.rodata.o" include "build/data/overlays/actors/z_demo_geff.reloc.o" endseg diff --git a/tools/ido5.3_compiler/LICENSE.md b/tools/ido5.3_compiler/LICENSE.md old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/lib/libmalloc.so b/tools/ido5.3_compiler/lib/libmalloc.so old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/lib/libmalloc_old.so b/tools/ido5.3_compiler/lib/libmalloc_old.so old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/lib/rld b/tools/ido5.3_compiler/lib/rld old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/bin/cc b/tools/ido5.3_compiler/usr/bin/cc old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/as0 b/tools/ido5.3_compiler/usr/lib/as0 old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/as1 b/tools/ido5.3_compiler/usr/lib/as1 old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/cfe b/tools/ido5.3_compiler/usr/lib/cfe old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/crt1.o b/tools/ido5.3_compiler/usr/lib/crt1.o old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/err.english.cc b/tools/ido5.3_compiler/usr/lib/err.english.cc old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/libc.so.1 b/tools/ido5.3_compiler/usr/lib/libc.so.1 old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/libexc.so b/tools/ido5.3_compiler/usr/lib/libexc.so old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/libgen.so b/tools/ido5.3_compiler/usr/lib/libgen.so old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/libm.so b/tools/ido5.3_compiler/usr/lib/libm.so old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/ugen b/tools/ido5.3_compiler/usr/lib/ugen old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/ujoin b/tools/ido5.3_compiler/usr/lib/ujoin old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/uld b/tools/ido5.3_compiler/usr/lib/uld old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/umerge b/tools/ido5.3_compiler/usr/lib/umerge old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/uopt b/tools/ido5.3_compiler/usr/lib/uopt old mode 100644 new mode 100755 diff --git a/tools/ido5.3_compiler/usr/lib/usplit b/tools/ido5.3_compiler/usr/lib/usplit old mode 100644 new mode 100755 From db822f7d0f00083d036c61535a5bc667fe98641c Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Thu, 19 Mar 2020 20:06:46 -0400 Subject: [PATCH 3/8] 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; From 78c14f7fad8c4caa099837167c689f4688941a03 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Fri, 20 Mar 2020 02:20:55 -0400 Subject: [PATCH 4/8] More progress --- .../actors/ovl_Demo_Geff/DemoGeff_Draw.s | 52 --------- .../actors/ovl_Demo_Geff/func_809781FC.s | 49 -------- .../actors/ovl_Demo_Geff/z_demo_geff.c | 107 +++++++++++++++--- .../actors/ovl_Demo_Geff/z_demo_geff.h | 2 +- 4 files changed, 91 insertions(+), 119 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809781FC.s diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s deleted file mode 100644 index 3afafed3d0..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/DemoGeff_Draw.s +++ /dev/null @@ -1,52 +0,0 @@ -.rdata - - -glabel D_80978740 - .asciz "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" - .balign 4 - -.text - -glabel DemoGeff_Draw -/* 006A0 809784E0 27BDFFD8 */ addiu $sp, $sp, 0xFFD8 ## $sp = FFFFFFD8 -/* 006A4 809784E4 AFBF0014 */ sw $ra, 0x0014($sp) -/* 006A8 809784E8 AFA5002C */ sw $a1, 0x002C($sp) -/* 006AC 809784EC 8C820150 */ lw $v0, 0x0150($a0) ## 00000150 -/* 006B0 809784F0 0440000B */ bltz $v0, .L80978520 -/* 006B4 809784F4 28410002 */ slti $at, $v0, 0x0002 -/* 006B8 809784F8 10200009 */ beq $at, $zero, .L80978520 -/* 006BC 809784FC 00027080 */ sll $t6, $v0, 2 -/* 006C0 80978500 3C0F8098 */ lui $t7, %hi(D_809785B0) ## $t7 = 80980000 -/* 006C4 80978504 25EF85B0 */ addiu $t7, $t7, %lo(D_809785B0) ## $t7 = 809785B0 -/* 006C8 80978508 01CF1821 */ addu $v1, $t6, $t7 -/* 006CC 8097850C 8C660000 */ lw $a2, 0x0000($v1) ## 00000000 -/* 006D0 80978510 3C188098 */ lui $t8, %hi(D_809785B0) ## $t8 = 80980000 -/* 006D4 80978514 271885B0 */ addiu $t8, $t8, %lo(D_809785B0) ## $t8 = 809785B0 -/* 006D8 80978518 14C00006 */ bne $a2, $zero, .L80978534 -/* 006DC 8097851C 00000000 */ nop -.L80978520: -/* 006E0 80978520 3C048098 */ lui $a0, %hi(D_80978740) ## $a0 = 80980000 -/* 006E4 80978524 0C00084C */ jal osSyncPrintf - -/* 006E8 80978528 24848740 */ addiu $a0, $a0, %lo(D_80978740) ## $a0 = 80978740 -/* 006EC 8097852C 1000000C */ beq $zero, $zero, .L80978560 -/* 006F0 80978530 8FBF0014 */ lw $ra, 0x0014($sp) -.L80978534: -/* 006F4 80978534 10780007 */ beq $v1, $t8, .L80978554 -/* 006F8 80978538 8FA5002C */ lw $a1, 0x002C($sp) -/* 006FC 8097853C AFA3001C */ sw $v1, 0x001C($sp) -/* 00700 80978540 0C25DFE0 */ jal func_80977F80 -/* 00704 80978544 AFA40028 */ sw $a0, 0x0028($sp) -/* 00708 80978548 8FA3001C */ lw $v1, 0x001C($sp) -/* 0070C 8097854C 8FA40028 */ lw $a0, 0x0028($sp) -/* 00710 80978550 8C660000 */ lw $a2, 0x0000($v1) ## 00000000 -.L80978554: -/* 00714 80978554 00C0F809 */ jalr $ra, $a2 -/* 00718 80978558 8FA5002C */ lw $a1, 0x002C($sp) -/* 0071C 8097855C 8FBF0014 */ lw $ra, 0x0014($sp) -.L80978560: -/* 00720 80978560 27BD0028 */ addiu $sp, $sp, 0x0028 ## $sp = 00000000 -/* 00724 80978564 03E00008 */ jr $ra -/* 00728 80978568 00000000 */ nop -/* 0072C 8097856C 00000000 */ nop - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809781FC.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809781FC.s deleted file mode 100644 index 7a38c1bb10..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809781FC.s +++ /dev/null @@ -1,49 +0,0 @@ -glabel func_809781FC -/* 003BC 809781FC 8C8E0158 */ lw $t6, 0x0158($a0) ## 00000158 -/* 003C0 80978200 15C00025 */ bne $t6, $zero, .L80978298 -/* 003C4 80978204 00000000 */ nop -/* 003C8 80978208 8482001C */ lh $v0, 0x001C($a0) ## 0000001C -/* 003CC 8097820C 8CA31C64 */ lw $v1, 0x1C64($a1) ## 00001C64 -/* 003D0 80978210 24010001 */ addiu $at, $zero, 0x0001 ## $at = 00000001 -/* 003D4 80978214 10400007 */ beq $v0, $zero, .L80978234 -/* 003D8 80978218 24050174 */ addiu $a1, $zero, 0x0174 ## $a1 = 00000174 -/* 003DC 8097821C 10410005 */ beq $v0, $at, .L80978234 -/* 003E0 80978220 24010002 */ addiu $at, $zero, 0x0002 ## $at = 00000002 -/* 003E4 80978224 50410004 */ beql $v0, $at, .L80978238 -/* 003E8 80978228 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -/* 003EC 8097822C 10000002 */ beq $zero, $zero, .L80978238 -/* 003F0 80978230 24020002 */ addiu $v0, $zero, 0x0002 ## $v0 = 00000002 -.L80978234: -/* 003F4 80978234 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -.L80978238: -/* 003F8 80978238 10600017 */ beq $v1, $zero, .L80978298 -/* 003FC 8097823C 00000000 */ nop -/* 00400 80978240 846F0000 */ lh $t7, 0x0000($v1) ## 00000000 -.L80978244: -/* 00404 80978244 54AF0012 */ bnel $a1, $t7, .L80978290 -/* 00408 80978248 8C630124 */ lw $v1, 0x0124($v1) ## 00000124 -/* 0040C 8097824C 8478001C */ lh $t8, 0x001C($v1) ## 0000001C -/* 00410 80978250 5458000F */ bnel $v0, $t8, .L80978290 -/* 00414 80978254 8C630124 */ lw $v1, 0x0124($v1) ## 00000124 -/* 00418 80978258 C4840024 */ lwc1 $f4, 0x0024($a0) ## 00000024 -/* 0041C 8097825C C4660024 */ lwc1 $f6, 0x0024($v1) ## 00000024 -/* 00420 80978260 C48A0028 */ lwc1 $f10, 0x0028($a0) ## 00000028 -/* 00424 80978264 46062201 */ sub.s $f8, $f4, $f6 -/* 00428 80978268 C484002C */ lwc1 $f4, 0x002C($a0) ## 0000002C -/* 0042C 8097826C E488015C */ swc1 $f8, 0x015C($a0) ## 0000015C -/* 00430 80978270 C4700028 */ lwc1 $f16, 0x0028($v1) ## 00000028 -/* 00434 80978274 46105481 */ sub.s $f18, $f10, $f16 -/* 00438 80978278 E4920160 */ swc1 $f18, 0x0160($a0) ## 00000160 -/* 0043C 8097827C C466002C */ lwc1 $f6, 0x002C($v1) ## 0000002C -/* 00440 80978280 AC830158 */ sw $v1, 0x0158($a0) ## 00000158 -/* 00444 80978284 46062201 */ sub.s $f8, $f4, $f6 -/* 00448 80978288 E4880164 */ swc1 $f8, 0x0164($a0) ## 00000164 -/* 0044C 8097828C 8C630124 */ lw $v1, 0x0124($v1) ## 00000124 -.L80978290: -/* 00450 80978290 5460FFEC */ bnel $v1, $zero, .L80978244 -/* 00454 80978294 846F0000 */ lh $t7, 0x0000($v1) ## 00000000 -.L80978298: -/* 00458 80978298 03E00008 */ jr $ra -/* 0045C 8097829C 00000000 */ nop - - 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 7aae5c3fbd..828bcd08ae 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c @@ -10,20 +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_80978030(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, }; +s16 objectIds[] = { OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, + OBJECT_GEFF, OBJECT_GEFF, OBJECT_UNSET_0, }; 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, }; +ActorFunc actionFuncs[] = { func_809783D4, func_80978308, }; +ActorFunc drawFuncs[] = { func_809784D4, func_80978344, }; const ActorInit Demo_Geff_InitVars = { @@ -39,7 +40,7 @@ const ActorInit Demo_Geff_InitVars = (ActorFunc)DemoGeff_Draw, }; -extern u32 D_06000EA0; +extern UNK_TYPE D_06000EA0; void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx) { @@ -52,7 +53,7 @@ void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx) { return; } this->action = 0; - this->unk_150 = 0; + this->drawConfig = 0; } #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s") @@ -71,10 +72,73 @@ void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx) { }*/ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s") +/*void func_80977F80(DemoGeff* this, GlobalContext* globalCtx) { + GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; + Gfx* gfxArr[4]; + + func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_demo_geff.c", 204); + + temp_a0 = (arg1 + (this->unk_154 * 0x44)) + 0x10000; + + gSPSegment(gfxCtx->polyOpa.p++, 0x06, temp_a0->unk17B4), + + *(void *)0x80166FC0 = (s32) (temp_a0->unk17B4 + 0x80000000); + + func_800C6B54(gfxArr, &globalCtx->state.gfxCtx, "../z_demo_geff.c", 212); +}*/ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s") +/*void func_80978030(DemoGeff* this, GlobalContext* globalCtx) { + Vec3f* thisScale = &this->actor.scale; + this->action = 1; + this->drawConfig = 1; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809781FC.s") + switch ((u16)this->actor.params) { + default: + thisScale->x = ((f32) kREG(7) * 0.01f) + 0.3f; + thisScale->y = ((f32) kREG(8) * 0.01f) + 0.3f; + thisScale->z = ((f32) kREG(9) * 0.01f) + 0.3f; + break; + case 8: + break; + case 1: + case 4: + case 7: + thisScale->x = ((f32) kREG(10) * 0.01f) + 0.15f; + thisScale->y = ((f32) kREG(11) * 0.01f) + 0.29f; + thisScale->z = ((f32) kREG(12) * 0.01f) + 0.12f; + break; + case 2: + case 5: + thisScale->x = ((f32) kREG(13) * 0.01f) + 0.1f; + thisScale->y = ((f32) kREG(14) * 0.01f) + 0.15f; + thisScale->z = ((f32) kREG(15) * 0.01f) + 0.2f; + break; + } +}*/ + +void func_809781FC(DemoGeff* this, GlobalContext* globalCtx) { + s32 targetParams = 2; + Actor* demoGt; + + if (this->unk_158 == 0) { + demoGt = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first; + if ((this->actor.params != 0) && (this->actor.params != 1) && (this->actor.params != 2)) { + targetParams = 2; + } else { + targetParams = 1; + } + while (demoGt != 0) { + if (demoGt->id == ACTOR_DEMO_GT && demoGt->params == targetParams) { + this->unk_15C = (this->actor.posRot.pos.x - demoGt->posRot.pos.x); + this->unk_160 = (this->actor.posRot.pos.y - demoGt->posRot.pos.y); + this->unk_164 = (this->actor.posRot.pos.z - demoGt->posRot.pos.z); + this->unk_158 = demoGt; + } + demoGt = demoGt->next; + } + } +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809782A0.s") /*void func_809782A0(DemoGeff* this, GlobalContext* globalCtx) { @@ -100,13 +164,11 @@ void func_80978344(DemoGeff* this, GlobalContext* globalCtx) { } #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s") -/* -void func_80978370(DemoGeff* this, GlobalContext* globalCtx) { +/*void func_80978370(DemoGeff* this, GlobalContext* globalCtx) { Actor* thisx = &this->actor; - s32 params = thisx->params; - ActorFunc actorFunc = D_80978584[params]; + ActorFunc actorFunc = D_80978584[thisx->params]; if (actorFunc == NULL) { - osSyncPrintf(VT_FGCOL(RED) " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" VT_RST, params); + osSyncPrintf(VT_FGCOL(RED) " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" VT_RST, thisx->params); Actor_Kill(thisx); return; } @@ -117,7 +179,7 @@ void func_809783D4(DemoGeff* this, GlobalContext* globalCtx) { ObjectContext* objCtx = &globalCtx->objectCtx; Actor* thisx = &this->actor; s32 params = thisx->params; - s16 objectId = D_80978570[params]; + s16 objectId = objectIds[params]; s32 objBankIndex = Object_GetIndex(objCtx, objectId); s32 pad; @@ -133,15 +195,26 @@ void func_809783D4(DemoGeff* this, GlobalContext* globalCtx) { } void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx) { - if (this->action < 0 || this->action >= 2 || D_809785A8[this->action] == NULL) { + if (this->action < 0 || this->action >= 2 || actionFuncs[this->action] == NULL) { osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); return; } - D_809785A8[this->action](this, globalCtx); + actionFuncs[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") +void DemoGeff_Draw(DemoGeff* this, GlobalContext* globalCtx) { + s32 drawConfig = this->drawConfig; + s16 pad; + if (drawConfig < 0 || drawConfig >= 2 || drawFuncs[drawConfig] == NULL) { + osSyncPrintf(VT_FGCOL(RED) "描画モードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); + return; + } + if (drawConfig != 0) { + func_80977F80(this, globalCtx); + } + drawFuncs[drawConfig](this, globalCtx); +} 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 e7e07e8a5f..cbe4527bff 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.h +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.h @@ -8,7 +8,7 @@ typedef struct { /* 0x0000 */ Actor actor; /* 0x014C */ s32 action; - /* 0x0150 */ s32 unk_150; + /* 0x0150 */ s32 drawConfig; /* 0x0154 */ s32 unk_154; /* 0x0158 */ Actor* unk_158; /* 0x015C */ f32 unk_15C; From 3e8c79c6705ba6cb7de6f17dda45207eb2e2af47 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 21 Mar 2020 03:16:18 -0400 Subject: [PATCH 5/8] More --- .../actors/ovl_Demo_Geff/func_80977EA8.s | 73 ------------------- .../actors/ovl_Demo_Geff/func_809782A0.s | 30 -------- .../actors/ovl_Demo_Geff/func_80978370.s | 40 ---------- .../actors/ovl_Demo_Geff/z_demo_geff.c | 64 ++++++++-------- 4 files changed, 32 insertions(+), 175 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809782A0.s delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s deleted file mode 100644 index 628433d3fd..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977EA8.s +++ /dev/null @@ -1,73 +0,0 @@ -.rdata - -glabel D_8097861C - .asciz "../z_demo_geff.c" - .balign 4 - -glabel D_80978630 - .asciz "../z_demo_geff.c" - .balign 4 - -glabel D_80978644 - .asciz "../z_demo_geff.c" - .balign 4 - -.text - -glabel func_80977EA8 -/* 00068 80977EA8 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8 -/* 0006C 80977EAC AFBF001C */ sw $ra, 0x001C($sp) -/* 00070 80977EB0 AFB00018 */ sw $s0, 0x0018($sp) -/* 00074 80977EB4 AFA40048 */ sw $a0, 0x0048($sp) -/* 00078 80977EB8 AFA5004C */ sw $a1, 0x004C($sp) -/* 0007C 80977EBC 8C900000 */ lw $s0, 0x0000($a0) ## 00000000 -/* 00080 80977EC0 3C068098 */ lui $a2, %hi(D_8097861C) ## $a2 = 80980000 -/* 00084 80977EC4 24C6861C */ addiu $a2, $a2, %lo(D_8097861C) ## $a2 = 8097861C -/* 00088 80977EC8 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8 -/* 0008C 80977ECC 240700B5 */ addiu $a3, $zero, 0x00B5 ## $a3 = 000000B5 -/* 00090 80977ED0 0C031AB1 */ jal func_800C6AC4 -/* 00094 80977ED4 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00098 80977ED8 0C024F46 */ jal func_80093D18 -/* 0009C 80977EDC 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000A0 80977EE0 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 000A4 80977EE4 3C18DA38 */ lui $t8, 0xDA38 ## $t8 = DA380000 -/* 000A8 80977EE8 37180002 */ ori $t8, $t8, 0x0002 ## $t8 = DA380002 -/* 000AC 80977EEC 244F0008 */ addiu $t7, $v0, 0x0008 ## $t7 = 00000008 -/* 000B0 80977EF0 AE0F02C0 */ sw $t7, 0x02C0($s0) ## 000002C0 -/* 000B4 80977EF4 3C058098 */ lui $a1, %hi(D_80978630) ## $a1 = 80980000 -/* 000B8 80977EF8 AC580000 */ sw $t8, 0x0000($v0) ## 00000000 -/* 000BC 80977EFC 24A58630 */ addiu $a1, $a1, %lo(D_80978630) ## $a1 = 80978630 -/* 000C0 80977F00 02002025 */ or $a0, $s0, $zero ## $a0 = 00000000 -/* 000C4 80977F04 240600B7 */ addiu $a2, $zero, 0x00B7 ## $a2 = 000000B7 -/* 000C8 80977F08 0C0346A2 */ jal Matrix_NewMtx -/* 000CC 80977F0C AFA2002C */ sw $v0, 0x002C($sp) -/* 000D0 80977F10 8FA3002C */ lw $v1, 0x002C($sp) -/* 000D4 80977F14 3C08DE00 */ lui $t0, 0xDE00 ## $t0 = DE000000 -/* 000D8 80977F18 3C0BD838 */ lui $t3, 0xD838 ## $t3 = D8380000 -/* 000DC 80977F1C AC620004 */ sw $v0, 0x0004($v1) ## 00000004 -/* 000E0 80977F20 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 000E4 80977F24 356B0002 */ ori $t3, $t3, 0x0002 ## $t3 = D8380002 -/* 000E8 80977F28 240C0040 */ addiu $t4, $zero, 0x0040 ## $t4 = 00000040 -/* 000EC 80977F2C 24590008 */ addiu $t9, $v0, 0x0008 ## $t9 = 00000008 -/* 000F0 80977F30 AE1902C0 */ sw $t9, 0x02C0($s0) ## 000002C0 -/* 000F4 80977F34 AC480000 */ sw $t0, 0x0000($v0) ## 00000000 -/* 000F8 80977F38 8FA9004C */ lw $t1, 0x004C($sp) -/* 000FC 80977F3C 3C068098 */ lui $a2, %hi(D_80978644) ## $a2 = 80980000 -/* 00100 80977F40 24C68644 */ addiu $a2, $a2, %lo(D_80978644) ## $a2 = 80978644 -/* 00104 80977F44 AC490004 */ sw $t1, 0x0004($v0) ## 00000004 -/* 00108 80977F48 8E0202C0 */ lw $v0, 0x02C0($s0) ## 000002C0 -/* 0010C 80977F4C 27A40030 */ addiu $a0, $sp, 0x0030 ## $a0 = FFFFFFE8 -/* 00110 80977F50 02002825 */ or $a1, $s0, $zero ## $a1 = 00000000 -/* 00114 80977F54 244A0008 */ addiu $t2, $v0, 0x0008 ## $t2 = 00000008 -/* 00118 80977F58 AE0A02C0 */ sw $t2, 0x02C0($s0) ## 000002C0 -/* 0011C 80977F5C 240700BC */ addiu $a3, $zero, 0x00BC ## $a3 = 000000BC -/* 00120 80977F60 AC4C0004 */ sw $t4, 0x0004($v0) ## 00000004 -/* 00124 80977F64 0C031AD5 */ jal func_800C6B54 -/* 00128 80977F68 AC4B0000 */ sw $t3, 0x0000($v0) ## 00000000 -/* 0012C 80977F6C 8FBF001C */ lw $ra, 0x001C($sp) -/* 00130 80977F70 8FB00018 */ lw $s0, 0x0018($sp) -/* 00134 80977F74 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000 -/* 00138 80977F78 03E00008 */ jr $ra -/* 0013C 80977F7C 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809782A0.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809782A0.s deleted file mode 100644 index f30ee56636..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_809782A0.s +++ /dev/null @@ -1,30 +0,0 @@ -glabel func_809782A0 -/* 00460 809782A0 AFA50004 */ sw $a1, 0x0004($sp) -/* 00464 809782A4 8C820158 */ lw $v0, 0x0158($a0) ## 00000158 -/* 00468 809782A8 8483001C */ lh $v1, 0x001C($a0) ## 0000001C -/* 0046C 809782AC 24010006 */ addiu $at, $zero, 0x0006 ## $at = 00000006 -/* 00470 809782B0 10400013 */ beq $v0, $zero, .L80978300 -/* 00474 809782B4 00000000 */ nop -/* 00478 809782B8 10610011 */ beq $v1, $at, .L80978300 -/* 0047C 809782BC 24010007 */ addiu $at, $zero, 0x0007 ## $at = 00000007 -/* 00480 809782C0 1061000F */ beq $v1, $at, .L80978300 -/* 00484 809782C4 24010008 */ addiu $at, $zero, 0x0008 ## $at = 00000008 -/* 00488 809782C8 1061000D */ beq $v1, $at, .L80978300 -/* 0048C 809782CC 00000000 */ nop -/* 00490 809782D0 C4440024 */ lwc1 $f4, 0x0024($v0) ## 00000024 -/* 00494 809782D4 C486015C */ lwc1 $f6, 0x015C($a0) ## 0000015C -/* 00498 809782D8 C4900160 */ lwc1 $f16, 0x0160($a0) ## 00000160 -/* 0049C 809782DC 46062200 */ add.s $f8, $f4, $f6 -/* 004A0 809782E0 C4860164 */ lwc1 $f6, 0x0164($a0) ## 00000164 -/* 004A4 809782E4 E4880024 */ swc1 $f8, 0x0024($a0) ## 00000024 -/* 004A8 809782E8 C44A0028 */ lwc1 $f10, 0x0028($v0) ## 00000028 -/* 004AC 809782EC 46105480 */ add.s $f18, $f10, $f16 -/* 004B0 809782F0 E4920028 */ swc1 $f18, 0x0028($a0) ## 00000028 -/* 004B4 809782F4 C444002C */ lwc1 $f4, 0x002C($v0) ## 0000002C -/* 004B8 809782F8 46062200 */ add.s $f8, $f4, $f6 -/* 004BC 809782FC E488002C */ swc1 $f8, 0x002C($a0) ## 0000002C -.L80978300: -/* 004C0 80978300 03E00008 */ jr $ra -/* 004C4 80978304 00000000 */ nop - - diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s deleted file mode 100644 index 22f7325187..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978370.s +++ /dev/null @@ -1,40 +0,0 @@ -.rdata - -glabel D_80978680 - .asciz " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" - .balign 4 - -.text - -glabel func_80978370 -/* 00530 80978370 27BDFFE8 */ addiu $sp, $sp, 0xFFE8 ## $sp = FFFFFFE8 -/* 00534 80978374 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00538 80978378 8486001C */ lh $a2, 0x001C($a0) ## 0000001C -/* 0053C 8097837C 3C028098 */ lui $v0, %hi(D_80978584) ## $v0 = 80980000 -/* 00540 80978380 00803825 */ or $a3, $a0, $zero ## $a3 = 00000000 -/* 00544 80978384 00067080 */ sll $t6, $a2, 2 -/* 00548 80978388 004E1021 */ addu $v0, $v0, $t6 -/* 0054C 8097838C 8C428584 */ lw $v0, %lo(D_80978584)($v0) -/* 00550 80978390 3C048098 */ lui $a0, %hi(D_80978680) ## $a0 = 80980000 -/* 00554 80978394 24848680 */ addiu $a0, $a0, %lo(D_80978680) ## $a0 = 80978680 -/* 00558 80978398 14400008 */ bne $v0, $zero, .L809783BC -/* 0055C 8097839C 00000000 */ nop -/* 00560 809783A0 00C02825 */ or $a1, $a2, $zero ## $a1 = 00000000 -/* 00564 809783A4 0C00084C */ jal osSyncPrintf - -/* 00568 809783A8 AFA70018 */ sw $a3, 0x0018($sp) -/* 0056C 809783AC 0C00B55C */ jal Actor_Kill - -/* 00570 809783B0 8FA40018 */ lw $a0, 0x0018($sp) -/* 00574 809783B4 10000004 */ beq $zero, $zero, .L809783C8 -/* 00578 809783B8 8FBF0014 */ lw $ra, 0x0014($sp) -.L809783BC: -/* 0057C 809783BC 0040F809 */ jalr $ra, $v0 -/* 00580 809783C0 00E02025 */ or $a0, $a3, $zero ## $a0 = 00000000 -/* 00584 809783C4 8FBF0014 */ lw $ra, 0x0014($sp) -.L809783C8: -/* 00588 809783C8 27BD0018 */ addiu $sp, $sp, 0x0018 ## $sp = 00000000 -/* 0058C 809783CC 03E00008 */ jr $ra -/* 00590 809783D0 00000000 */ nop - - 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 828bcd08ae..5dea81cff0 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c @@ -56,35 +56,36 @@ void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx) { this->drawConfig = 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; +void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { + GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; + s16 pad; 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), + func_800C6AC4(gfxArr, gfxCtx, "../z_demo_geff.c", 181); + func_80093D18(gfxCtx); + + gSPMatrix(gfxCtx->polyOpa.p++, Matrix_NewMtx(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); -}*/ + func_800C6B54(gfxArr, gfxCtx, "../z_demo_geff.c", 188); +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s") /*void func_80977F80(DemoGeff* this, GlobalContext* globalCtx) { + s32 unk_154 = this->unk_154; + s32 pad[2]; GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; + ObjectContext* objCtx = &globalCtx->objectCtx; Gfx* gfxArr[4]; func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_demo_geff.c", 204); + + gSPSegment(gfxCtx->polyOpa.p++, 0x06, objCtx->status[unk_154].segment); + gSegments[6] = PHYSICAL_TO_VIRTUAL(objCtx->status[unk_154].segment); - temp_a0 = (arg1 + (this->unk_154 * 0x44)) + 0x10000; - - gSPSegment(gfxCtx->polyOpa.p++, 0x06, temp_a0->unk17B4), - - *(void *)0x80166FC0 = (s32) (temp_a0->unk17B4 + 0x80000000); - - func_800C6B54(gfxArr, &globalCtx->state.gfxCtx, "../z_demo_geff.c", 212); + func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_demo_geff.c", 212); }*/ #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s") @@ -140,18 +141,18 @@ void func_809781FC(DemoGeff* this, GlobalContext* globalCtx) { } } -#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; +void func_809782A0(DemoGeff* this, GlobalContext* globalCtx) { + Actor* unk_158 = this->unk_158; + s16 params = this->actor.params; + if (unk_158 != NULL) { 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; + this->actor.posRot.pos.x = unk_158->posRot.pos.x + this->unk_15C; + this->actor.posRot.pos.y = unk_158->posRot.pos.y + this->unk_160; + this->actor.posRot.pos.z = unk_158->posRot.pos.z + this->unk_164; } - } -}*/ + } + +} void func_80978308(DemoGeff* this, GlobalContext* globalCtx) { func_809781FC(this, globalCtx); @@ -163,17 +164,16 @@ 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; - ActorFunc actorFunc = D_80978584[thisx->params]; +void func_80978370(DemoGeff* this, GlobalContext* globalCtx) { + s16 params = this->actor.params; + ActorFunc actorFunc = D_80978584[params]; if (actorFunc == NULL) { - osSyncPrintf(VT_FGCOL(RED) " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" VT_RST, thisx->params); - Actor_Kill(thisx); + osSyncPrintf(VT_FGCOL(RED) " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" VT_RST, params); + Actor_Kill(&this->actor); return; } actorFunc(this, globalCtx); -}*/ +} void func_809783D4(DemoGeff* this, GlobalContext* globalCtx) { ObjectContext* objCtx = &globalCtx->objectCtx; From 61a32a58207328678928785c54d9f0cfb69141f5 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 21 Mar 2020 14:27:58 -0400 Subject: [PATCH 6/8] 1 more down, slight documentation --- .../actors/ovl_Demo_Geff/func_80978030.s | 156 ------------------ include/variables.h | 2 +- .../actors/ovl_Demo_Geff/z_demo_geff.c | 84 +++++----- .../actors/ovl_Demo_Geff/z_demo_geff.h | 12 +- 4 files changed, 51 insertions(+), 203 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s 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 deleted file mode 100644 index 55c2987535..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s +++ /dev/null @@ -1,156 +0,0 @@ -.late_rodata - -glabel jtbl_80978778 -.word L80978064 -.word L809780E0 -.word L8097816C -.word L80978064 -.word L809780E0 -.word L8097816C -.word L80978064 -.word L809780E0 -glabel D_80978798 - .float 0.01 -glabel D_8097879C - .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 - -glabel func_80978030 -/* 001F0 80978030 AFA50004 */ sw $a1, 0x0004($sp) -/* 001F4 80978034 948E001C */ lhu $t6, 0x001C($a0) ## 0000001C -/* 001F8 80978038 24020001 */ addiu $v0, $zero, 0x0001 ## $v0 = 00000001 -/* 001FC 8097803C AC82014C */ sw $v0, 0x014C($a0) ## 0000014C -/* 00200 80978040 2DC10008 */ sltiu $at, $t6, 0x0008 -/* 00204 80978044 10200049 */ beq $at, $zero, .L8097816C -/* 00208 80978048 AC820150 */ sw $v0, 0x0150($a0) ## 00000150 -/* 0020C 8097804C 000E7080 */ sll $t6, $t6, 2 -/* 00210 80978050 3C018098 */ lui $at, %hi(jtbl_80978778) ## $at = 80980000 -/* 00214 80978054 002E0821 */ addu $at, $at, $t6 -/* 00218 80978058 8C2E8778 */ lw $t6, %lo(jtbl_80978778)($at) -/* 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 -/* 00230 80978070 3C018098 */ lui $at, %hi(D_80978798) ## $at = 80980000 -/* 00234 80978074 C4208798 */ lwc1 $f0, %lo(D_80978798)($at) -/* 00238 80978078 85F81462 */ lh $t8, 0x1462($t7) ## 00001462 -/* 0023C 8097807C 3C018098 */ lui $at, %hi(D_8097879C) ## $at = 80980000 -/* 00240 80978080 C422879C */ lwc1 $f2, %lo(D_8097879C)($at) -/* 00244 80978084 44982000 */ mtc1 $t8, $f4 ## $f4 = 0.00 -/* 00248 80978088 24820050 */ addiu $v0, $a0, 0x0050 ## $v0 = 00000050 -/* 0024C 8097808C 468021A0 */ cvt.s.w $f6, $f4 -/* 00250 80978090 46003202 */ mul.s $f8, $f6, $f0 -/* 00254 80978094 46024280 */ add.s $f10, $f8, $f2 -/* 00258 80978098 E44A0000 */ swc1 $f10, 0x0000($v0) ## 00000050 -/* 0025C 8097809C 8C790000 */ lw $t9, 0x0000($v1) ## 8015FA90 -/* 00260 809780A0 87281464 */ lh $t0, 0x1464($t9) ## 00001464 -/* 00264 809780A4 44888000 */ mtc1 $t0, $f16 ## $f16 = 0.00 -/* 00268 809780A8 00000000 */ nop -/* 0026C 809780AC 468084A0 */ cvt.s.w $f18, $f16 -/* 00270 809780B0 46009102 */ mul.s $f4, $f18, $f0 -/* 00274 809780B4 46022180 */ add.s $f6, $f4, $f2 -/* 00278 809780B8 E4460004 */ swc1 $f6, 0x0004($v0) ## 00000054 -/* 0027C 809780BC 8C690000 */ lw $t1, 0x0000($v1) ## 8015FA90 -/* 00280 809780C0 852A1466 */ lh $t2, 0x1466($t1) ## 00001466 -/* 00284 809780C4 448A4000 */ mtc1 $t2, $f8 ## $f8 = 0.00 -/* 00288 809780C8 00000000 */ nop -/* 0028C 809780CC 468042A0 */ cvt.s.w $f10, $f8 -/* 00290 809780D0 46005402 */ mul.s $f16, $f10, $f0 -/* 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/include/variables.h b/include/variables.h index b12c078d56..23a368f7f9 100644 --- a/include/variables.h +++ b/include/variables.h @@ -3473,7 +3473,7 @@ extern GlobalContext* D_80157DA0; extern SaveContext gSaveContext; // 0x8015E660 extern u32 D_8015FA88; extern u32 D_8015FA8C; -extern GameInfo* gGameInfo; +extern GameInfo* gGameInfo; // 0x8015FA90 //extern ? D_8015FA98; //extern ? D_8015FA9B; //extern ? D_8015FC18; 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 5dea81cff0..6366df2438 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c @@ -1,3 +1,9 @@ +/* + * File: z_demo_geff.c + * Overlay: Demo_Geff + * Description: +*/ + #include "z_demo_geff.h" #include @@ -10,7 +16,7 @@ void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx); void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx); void DemoGeff_Draw(DemoGeff* this, GlobalContext* globalCtx); -void func_80978030(DemoGeff* this, GlobalContext* globalCtx); +void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx); void func_809783D4(DemoGeff* this, GlobalContext* globalCtx); void func_80978308(DemoGeff* this, GlobalContext* globalCtx); @@ -21,10 +27,11 @@ void func_80978344(DemoGeff* this, GlobalContext* globalCtx); s16 objectIds[] = { OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_UNSET_0, }; -ActorFunc D_80978584[] = { func_80978030, func_80978030, func_80978030, func_80978030, func_80978030, func_80978030, - func_80978030, func_80978030, func_80978030, }; -ActorFunc actionFuncs[] = { func_809783D4, func_80978308, }; -ActorFunc drawFuncs[] = { func_809784D4, func_80978344, }; +ActorFunc scaleFuncs[] = { (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, + (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, + (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, }; +ActorFunc actionFuncs[] = { (ActorFunc)func_809783D4, (ActorFunc)func_80978308, }; +ActorFunc drawFuncs[] = { (ActorFunc)func_809784D4, (ActorFunc)func_80978344, }; const ActorInit Demo_Geff_InitVars = { @@ -74,34 +81,33 @@ void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s") /*void func_80977F80(DemoGeff* this, GlobalContext* globalCtx) { - s32 unk_154 = this->unk_154; s32 pad[2]; + s32 objBankIndex = this->objBankIndex; GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; - ObjectContext* objCtx = &globalCtx->objectCtx; + s16 pad2; Gfx* gfxArr[4]; - func_800C6AC4(gfxArr, globalCtx->state.gfxCtx, "../z_demo_geff.c", 204); + func_800C6AC4(gfxArr, gfxCtx, "../z_demo_geff.c", 204); - gSPSegment(gfxCtx->polyOpa.p++, 0x06, objCtx->status[unk_154].segment); - gSegments[6] = PHYSICAL_TO_VIRTUAL(objCtx->status[unk_154].segment); + gSPSegment(gfxCtx->polyOpa.p++, 0x06, globalCtx->objectCtx.status[objBankIndex].segment); + gSegments[6] = PHYSICAL_TO_VIRTUAL(globalCtx->objectCtx.status[objBankIndex].segment); - func_800C6B54(gfxArr, globalCtx->state.gfxCtx, "../z_demo_geff.c", 212); + func_800C6B54(gfxArr, gfxCtx, "../z_demo_geff.c", 212); }*/ -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80978030.s") -/*void func_80978030(DemoGeff* this, GlobalContext* globalCtx) { +void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx) { Vec3f* thisScale = &this->actor.scale; this->action = 1; this->drawConfig = 1; - switch ((u16)this->actor.params) { - default: + switch (this->actor.params) { + case 0: + case 3: + case 6: thisScale->x = ((f32) kREG(7) * 0.01f) + 0.3f; thisScale->y = ((f32) kREG(8) * 0.01f) + 0.3f; thisScale->z = ((f32) kREG(9) * 0.01f) + 0.3f; break; - case 8: - break; case 1: case 4: case 7: @@ -109,55 +115,51 @@ void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { thisScale->y = ((f32) kREG(11) * 0.01f) + 0.29f; thisScale->z = ((f32) kREG(12) * 0.01f) + 0.12f; break; - case 2: - case 5: + default: thisScale->x = ((f32) kREG(13) * 0.01f) + 0.1f; thisScale->y = ((f32) kREG(14) * 0.01f) + 0.15f; thisScale->z = ((f32) kREG(15) * 0.01f) + 0.2f; break; } -}*/ +} void func_809781FC(DemoGeff* this, GlobalContext* globalCtx) { s32 targetParams = 2; - Actor* demoGt; + Actor* propIt; - if (this->unk_158 == 0) { - demoGt = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first; + if (this->demoGt == NULL) { + propIt = globalCtx->actorCtx.actorList[ACTORTYPE_PROP].first; if ((this->actor.params != 0) && (this->actor.params != 1) && (this->actor.params != 2)) { targetParams = 2; } else { targetParams = 1; } - while (demoGt != 0) { - if (demoGt->id == ACTOR_DEMO_GT && demoGt->params == targetParams) { - this->unk_15C = (this->actor.posRot.pos.x - demoGt->posRot.pos.x); - this->unk_160 = (this->actor.posRot.pos.y - demoGt->posRot.pos.y); - this->unk_164 = (this->actor.posRot.pos.z - demoGt->posRot.pos.z); - this->unk_158 = demoGt; + while (propIt != NULL) { + if (propIt->id == ACTOR_DEMO_GT && propIt->params == targetParams) { + this->deltaPosX = this->actor.posRot.pos.x - propIt->posRot.pos.x; + this->deltaPosY = this->actor.posRot.pos.y - propIt->posRot.pos.y; + this->deltaPosZ = this->actor.posRot.pos.z - propIt->posRot.pos.z; + this->demoGt = propIt; } - demoGt = demoGt->next; + propIt = propIt->next; } } } void func_809782A0(DemoGeff* this, GlobalContext* globalCtx) { - Actor* unk_158 = this->unk_158; + DemoGt* demoGt = this->demoGt; s16 params = this->actor.params; - if (unk_158 != NULL) { - if ((params != 6) && (params != 7) && (params != 8)) { - this->actor.posRot.pos.x = unk_158->posRot.pos.x + this->unk_15C; - this->actor.posRot.pos.y = unk_158->posRot.pos.y + this->unk_160; - this->actor.posRot.pos.z = unk_158->posRot.pos.z + this->unk_164; - } + if (demoGt != NULL && (params != 6) && (params != 7) && (params != 8)) { + this->actor.posRot.pos.x = demoGt->actor.posRot.pos.x + this->deltaPosX; + this->actor.posRot.pos.y = demoGt->actor.posRot.pos.y + this->deltaPosY; + this->actor.posRot.pos.z = demoGt->actor.posRot.pos.z + this->deltaPosZ; } - } void func_80978308(DemoGeff* this, GlobalContext* globalCtx) { func_809781FC(this, globalCtx); func_809782A0(this, globalCtx); - func_80978030(this, globalCtx); + DemoGeff_SetScale(this, globalCtx); } void func_80978344(DemoGeff* this, GlobalContext* globalCtx) { @@ -166,7 +168,7 @@ void func_80978344(DemoGeff* this, GlobalContext* globalCtx) { void func_80978370(DemoGeff* this, GlobalContext* globalCtx) { s16 params = this->actor.params; - ActorFunc actorFunc = D_80978584[params]; + ActorFunc actorFunc = scaleFuncs[params]; if (actorFunc == NULL) { osSyncPrintf(VT_FGCOL(RED) " Demo_Geff_main_init:初期化処理がおかしいarg_data = %d!\n" VT_RST, params); Actor_Kill(&this->actor); @@ -189,7 +191,7 @@ void func_809783D4(DemoGeff* this, GlobalContext* globalCtx) { return; } if (Object_IsLoaded(objCtx, objBankIndex)) { - this->unk_154 = objBankIndex; + this->objBankIndex = objBankIndex; func_80978370(this, globalCtx); } } 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 cbe4527bff..68c10d6b53 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.h +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.h @@ -4,16 +4,18 @@ #include #include +#include "../ovl_Demo_Gt/z_demo_gt.h" + typedef struct { /* 0x0000 */ Actor actor; /* 0x014C */ s32 action; /* 0x0150 */ s32 drawConfig; - /* 0x0154 */ s32 unk_154; - /* 0x0158 */ Actor* unk_158; - /* 0x015C */ f32 unk_15C; - /* 0x0160 */ f32 unk_160; - /* 0x0164 */ f32 unk_164; + /* 0x0154 */ s32 objBankIndex; + /* 0x0158 */ DemoGt* demoGt; + /* 0x015C */ f32 deltaPosX; + /* 0x0160 */ f32 deltaPosY; + /* 0x0164 */ f32 deltaPosZ; } DemoGeff; // size = 0x0168 extern const ActorInit Demo_Geff_InitVars; From bb5ce4a656ec7476d215577328ef3fe571c0b4a8 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 21 Mar 2020 17:33:39 -0400 Subject: [PATCH 7/8] Finished --- .../actors/ovl_Demo_Geff/func_80977F80.s | 59 ------------------- data/overlays/actors/z_demo_geff.reloc.s | 11 ---- spec | 2 +- .../actors/ovl_Demo_Geff/z_demo_geff.c | 55 +++++++++-------- 4 files changed, 30 insertions(+), 97 deletions(-) delete mode 100644 asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s delete mode 100644 data/overlays/actors/z_demo_geff.reloc.s diff --git a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s b/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s deleted file mode 100644 index ee035d3a8f..0000000000 --- a/asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s +++ /dev/null @@ -1,59 +0,0 @@ -.rdata - -glabel D_80978658 - .asciz "../z_demo_geff.c" - .balign 4 - -glabel D_8097866C - .asciz "../z_demo_geff.c" - .balign 4 - -.text - -glabel func_80977F80 -/* 00140 80977F80 27BDFFB8 */ addiu $sp, $sp, 0xFFB8 ## $sp = FFFFFFB8 -/* 00144 80977F84 AFBF0014 */ sw $ra, 0x0014($sp) -/* 00148 80977F88 AFA40048 */ sw $a0, 0x0048($sp) -/* 0014C 80977F8C AFA5004C */ sw $a1, 0x004C($sp) -/* 00150 80977F90 8C8F0154 */ lw $t7, 0x0154($a0) ## 00000154 -/* 00154 80977F94 3C068098 */ lui $a2, %hi(D_80978658) ## $a2 = 80980000 -/* 00158 80977F98 24C68658 */ addiu $a2, $a2, %lo(D_80978658) ## $a2 = 80978658 -/* 0015C 80977F9C AFAF003C */ sw $t7, 0x003C($sp) -/* 00160 80977FA0 8CA50000 */ lw $a1, 0x0000($a1) ## 00000000 -/* 00164 80977FA4 27A40024 */ addiu $a0, $sp, 0x0024 ## $a0 = FFFFFFDC -/* 00168 80977FA8 240700CC */ addiu $a3, $zero, 0x00CC ## $a3 = 000000CC -/* 0016C 80977FAC 0C031AB1 */ jal func_800C6AC4 -/* 00170 80977FB0 AFA50038 */ sw $a1, 0x0038($sp) -/* 00174 80977FB4 8FA50038 */ lw $a1, 0x0038($sp) -/* 00178 80977FB8 8FA6004C */ lw $a2, 0x004C($sp) -/* 0017C 80977FBC 3C08DB06 */ lui $t0, 0xDB06 ## $t0 = DB060000 -/* 00180 80977FC0 8CA302C0 */ lw $v1, 0x02C0($a1) ## 000002C0 -/* 00184 80977FC4 35080018 */ ori $t0, $t0, 0x0018 ## $t0 = DB060018 -/* 00188 80977FC8 3C010001 */ lui $at, 0x0001 ## $at = 00010000 -/* 0018C 80977FCC 24790008 */ addiu $t9, $v1, 0x0008 ## $t9 = 00000008 -/* 00190 80977FD0 ACB902C0 */ sw $t9, 0x02C0($a1) ## 000002C0 -/* 00194 80977FD4 AC680000 */ sw $t0, 0x0000($v1) ## 00000000 -/* 00198 80977FD8 8FA9003C */ lw $t1, 0x003C($sp) -/* 0019C 80977FDC 240700D4 */ addiu $a3, $zero, 0x00D4 ## $a3 = 000000D4 -/* 001A0 80977FE0 00095100 */ sll $t2, $t1, 4 -/* 001A4 80977FE4 01495021 */ addu $t2, $t2, $t1 -/* 001A8 80977FE8 000A5080 */ sll $t2, $t2, 2 -/* 001AC 80977FEC 00CA2021 */ addu $a0, $a2, $t2 -/* 001B0 80977FF0 00812021 */ addu $a0, $a0, $at -/* 001B4 80977FF4 8C8B17B4 */ lw $t3, 0x17B4($a0) ## 000017B4 -/* 001B8 80977FF8 3C018000 */ lui $at, 0x8000 ## $at = 80000000 -/* 001BC 80977FFC 3C068098 */ lui $a2, %hi(D_8097866C) ## $a2 = 80980000 -/* 001C0 80978000 AC6B0004 */ sw $t3, 0x0004($v1) ## 00000004 -/* 001C4 80978004 8C8C17B4 */ lw $t4, 0x17B4($a0) ## 000017B4 -/* 001C8 80978008 27A40024 */ addiu $a0, $sp, 0x0024 ## $a0 = FFFFFFDC -/* 001CC 8097800C 24C6866C */ addiu $a2, $a2, %lo(D_8097866C) ## $a2 = 8097866C -/* 001D0 80978010 01816821 */ addu $t5, $t4, $at -/* 001D4 80978014 3C018016 */ lui $at, 0x8016 ## $at = 80160000 -/* 001D8 80978018 0C031AD5 */ jal func_800C6B54 -/* 001DC 8097801C AC2D6FC0 */ sw $t5, 0x6FC0($at) ## 80166FC0 -/* 001E0 80978020 8FBF0014 */ lw $ra, 0x0014($sp) -/* 001E4 80978024 27BD0048 */ addiu $sp, $sp, 0x0048 ## $sp = 00000000 -/* 001E8 80978028 03E00008 */ jr $ra -/* 001EC 8097802C 00000000 */ nop - - diff --git a/data/overlays/actors/z_demo_geff.reloc.s b/data/overlays/actors/z_demo_geff.reloc.s deleted file mode 100644 index e71f06c6e9..0000000000 --- a/data/overlays/actors/z_demo_geff.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_809787C0 - -.incbin "baserom/ovl_Demo_Geff", 0x980, 0x00000170 diff --git a/spec b/spec index 4aeaa38353..d78c28933b 100644 --- a/spec +++ b/spec @@ -1789,7 +1789,7 @@ 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.reloc.o" + include "build/src/overlays/actors/ovl_Demo_Geff/z_demo_geff_reloc.o" endseg beginseg 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 6366df2438..86eaa2f140 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c @@ -11,18 +11,18 @@ #define ROOM 0x00 #define FLAGS 0x00000030 -void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx); -void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx); -void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx); -void DemoGeff_Draw(DemoGeff* this, GlobalContext* globalCtx); +static void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx); +static void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx); +static void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx); +static void DemoGeff_Draw(DemoGeff* this, GlobalContext* globalCtx); -void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx); +static void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx); -void func_809783D4(DemoGeff* this, GlobalContext* globalCtx); -void func_80978308(DemoGeff* this, GlobalContext* globalCtx); +static void func_809783D4(DemoGeff* this, GlobalContext* globalCtx); +static void func_80978308(DemoGeff* this, GlobalContext* globalCtx); -void func_809784D4(DemoGeff* this, GlobalContext* globalCtx); -void func_80978344(DemoGeff* this, GlobalContext* globalCtx); +static void func_809784D4(DemoGeff* this, GlobalContext* globalCtx); +static void func_80978344(DemoGeff* this, GlobalContext* globalCtx); s16 objectIds[] = { OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_UNSET_0, }; @@ -49,11 +49,11 @@ const ActorInit Demo_Geff_InitVars = extern UNK_TYPE D_06000EA0; -void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx) { +static void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx) { } -void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx) { +static 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); @@ -63,7 +63,7 @@ void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx) { this->drawConfig = 0; } -void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { +static void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; s16 pad; Gfx* gfxArr[4]; @@ -79,8 +79,7 @@ void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { func_800C6B54(gfxArr, gfxCtx, "../z_demo_geff.c", 188); } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/actors/ovl_Demo_Geff/func_80977F80.s") -/*void func_80977F80(DemoGeff* this, GlobalContext* globalCtx) { +static void func_80977F80(DemoGeff* this, GlobalContext* globalCtx) { s32 pad[2]; s32 objBankIndex = this->objBankIndex; GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; @@ -92,10 +91,14 @@ void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { gSPSegment(gfxCtx->polyOpa.p++, 0x06, globalCtx->objectCtx.status[objBankIndex].segment); gSegments[6] = PHYSICAL_TO_VIRTUAL(globalCtx->objectCtx.status[objBankIndex].segment); - func_800C6B54(gfxArr, gfxCtx, "../z_demo_geff.c", 212); -}*/ + if (!globalCtx) { -void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx) { + } + + func_800C6B54(gfxArr, gfxCtx, "../z_demo_geff.c", 212); +} + +static void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx) { Vec3f* thisScale = &this->actor.scale; this->action = 1; this->drawConfig = 1; @@ -123,7 +126,7 @@ void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx) { } } -void func_809781FC(DemoGeff* this, GlobalContext* globalCtx) { +static void func_809781FC(DemoGeff* this, GlobalContext* globalCtx) { s32 targetParams = 2; Actor* propIt; @@ -146,7 +149,7 @@ void func_809781FC(DemoGeff* this, GlobalContext* globalCtx) { } } -void func_809782A0(DemoGeff* this, GlobalContext* globalCtx) { +static void func_809782A0(DemoGeff* this, GlobalContext* globalCtx) { DemoGt* demoGt = this->demoGt; s16 params = this->actor.params; if (demoGt != NULL && (params != 6) && (params != 7) && (params != 8)) { @@ -156,17 +159,17 @@ void func_809782A0(DemoGeff* this, GlobalContext* globalCtx) { } } -void func_80978308(DemoGeff* this, GlobalContext* globalCtx) { +static void func_80978308(DemoGeff* this, GlobalContext* globalCtx) { func_809781FC(this, globalCtx); func_809782A0(this, globalCtx); DemoGeff_SetScale(this, globalCtx); } -void func_80978344(DemoGeff* this, GlobalContext* globalCtx) { +static void func_80978344(DemoGeff* this, GlobalContext* globalCtx) { func_80977EA8(globalCtx, &D_06000EA0); } -void func_80978370(DemoGeff* this, GlobalContext* globalCtx) { +static void func_80978370(DemoGeff* this, GlobalContext* globalCtx) { s16 params = this->actor.params; ActorFunc actorFunc = scaleFuncs[params]; if (actorFunc == NULL) { @@ -177,7 +180,7 @@ void func_80978370(DemoGeff* this, GlobalContext* globalCtx) { actorFunc(this, globalCtx); } -void func_809783D4(DemoGeff* this, GlobalContext* globalCtx) { +static void func_809783D4(DemoGeff* this, GlobalContext* globalCtx) { ObjectContext* objCtx = &globalCtx->objectCtx; Actor* thisx = &this->actor; s32 params = thisx->params; @@ -196,7 +199,7 @@ void func_809783D4(DemoGeff* this, GlobalContext* globalCtx) { } } -void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx) { +static void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx) { if (this->action < 0 || this->action >= 2 || actionFuncs[this->action] == NULL) { osSyncPrintf(VT_FGCOL(RED) "メインモードがおかしい!!!!!!!!!!!!!!!!!!!!!!!!!\n" VT_RST); return; @@ -204,11 +207,11 @@ void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx) { actionFuncs[this->action](this, globalCtx); } -void func_809784D4(DemoGeff* this, GlobalContext* globalCtx) { +static void func_809784D4(DemoGeff* this, GlobalContext* globalCtx) { } -void DemoGeff_Draw(DemoGeff* this, GlobalContext* globalCtx) { +static void DemoGeff_Draw(DemoGeff* this, GlobalContext* globalCtx) { s32 drawConfig = this->drawConfig; s16 pad; if (drawConfig < 0 || drawConfig >= 2 || drawFuncs[drawConfig] == NULL) { From 124c93c5a935b7e576f1c9d211a0ade76f63a082 Mon Sep 17 00:00:00 2001 From: Ethan Roseman Date: Sat, 21 Mar 2020 18:09:59 -0400 Subject: [PATCH 8/8] Made suggested changes --- blah.txt | 0 .../actors/ovl_Demo_Geff/z_demo_geff.c | 43 +++++++++---------- 2 files changed, 20 insertions(+), 23 deletions(-) delete mode 100644 blah.txt diff --git a/blah.txt b/blah.txt deleted file mode 100644 index e69de29bb2..0000000000 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 86eaa2f140..e39a5fbcf0 100644 --- a/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c +++ b/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c @@ -16,7 +16,7 @@ static void DemoGeff_Destroy(DemoGeff* this, GlobalContext* globalCtx); static void DemoGeff_Update(DemoGeff* this, GlobalContext* globalCtx); static void DemoGeff_Draw(DemoGeff* this, GlobalContext* globalCtx); -static void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx); +static void func_80978030(DemoGeff* this, GlobalContext* globalCtx); static void func_809783D4(DemoGeff* this, GlobalContext* globalCtx); static void func_80978308(DemoGeff* this, GlobalContext* globalCtx); @@ -25,11 +25,11 @@ static void func_809784D4(DemoGeff* this, GlobalContext* globalCtx); static void func_80978344(DemoGeff* this, GlobalContext* globalCtx); s16 objectIds[] = { OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, OBJECT_GEFF, - OBJECT_GEFF, OBJECT_GEFF, OBJECT_UNSET_0, }; + OBJECT_GEFF, OBJECT_GEFF, }; -ActorFunc scaleFuncs[] = { (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, - (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, - (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, (ActorFunc)DemoGeff_SetScale, }; +ActorFunc scaleFuncs[] = { (ActorFunc)func_80978030, (ActorFunc)func_80978030, (ActorFunc)func_80978030, + (ActorFunc)func_80978030, (ActorFunc)func_80978030, (ActorFunc)func_80978030, + (ActorFunc)func_80978030, (ActorFunc)func_80978030, (ActorFunc)func_80978030, }; ActorFunc actionFuncs[] = { (ActorFunc)func_809783D4, (ActorFunc)func_80978308, }; ActorFunc drawFuncs[] = { (ActorFunc)func_809784D4, (ActorFunc)func_80978344, }; @@ -65,8 +65,7 @@ static void DemoGeff_Init(DemoGeff* this, GlobalContext* globalCtx) { static void func_80977EA8(GlobalContext* globalCtx, u32 dlist) { GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; - s16 pad; - Gfx* gfxArr[4]; + Gfx* gfxArr[5]; func_800C6AC4(gfxArr, gfxCtx, "../z_demo_geff.c", 181); func_80093D18(gfxCtx); @@ -83,22 +82,20 @@ static void func_80977F80(DemoGeff* this, GlobalContext* globalCtx) { s32 pad[2]; s32 objBankIndex = this->objBankIndex; GraphicsContext* gfxCtx = globalCtx->state.gfxCtx; - s16 pad2; - Gfx* gfxArr[4]; + Gfx* gfxArr[5]; func_800C6AC4(gfxArr, gfxCtx, "../z_demo_geff.c", 204); gSPSegment(gfxCtx->polyOpa.p++, 0x06, globalCtx->objectCtx.status[objBankIndex].segment); gSegments[6] = PHYSICAL_TO_VIRTUAL(globalCtx->objectCtx.status[objBankIndex].segment); - if (!globalCtx) { - - } + // Necessary to match + if (!globalCtx) {} func_800C6B54(gfxArr, gfxCtx, "../z_demo_geff.c", 212); } -static void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx) { +static void func_80978030(DemoGeff* this, GlobalContext* globalCtx) { Vec3f* thisScale = &this->actor.scale; this->action = 1; this->drawConfig = 1; @@ -107,21 +104,21 @@ static void DemoGeff_SetScale(DemoGeff* this, GlobalContext* globalCtx) { case 0: case 3: case 6: - thisScale->x = ((f32) kREG(7) * 0.01f) + 0.3f; - thisScale->y = ((f32) kREG(8) * 0.01f) + 0.3f; - thisScale->z = ((f32) kREG(9) * 0.01f) + 0.3f; + thisScale->x = (kREG(7) * 0.01f) + 0.3f; + thisScale->y = (kREG(8) * 0.01f) + 0.3f; + thisScale->z = (kREG(9) * 0.01f) + 0.3f; break; case 1: case 4: case 7: - thisScale->x = ((f32) kREG(10) * 0.01f) + 0.15f; - thisScale->y = ((f32) kREG(11) * 0.01f) + 0.29f; - thisScale->z = ((f32) kREG(12) * 0.01f) + 0.12f; + thisScale->x = (kREG(10) * 0.01f) + 0.15f; + thisScale->y = (kREG(11) * 0.01f) + 0.29f; + thisScale->z = (kREG(12) * 0.01f) + 0.12f; break; default: - thisScale->x = ((f32) kREG(13) * 0.01f) + 0.1f; - thisScale->y = ((f32) kREG(14) * 0.01f) + 0.15f; - thisScale->z = ((f32) kREG(15) * 0.01f) + 0.2f; + thisScale->x = (kREG(13) * 0.01f) + 0.1f; + thisScale->y = (kREG(14) * 0.01f) + 0.15f; + thisScale->z = (kREG(15) * 0.01f) + 0.2f; break; } } @@ -162,7 +159,7 @@ static void func_809782A0(DemoGeff* this, GlobalContext* globalCtx) { static void func_80978308(DemoGeff* this, GlobalContext* globalCtx) { func_809781FC(this, globalCtx); func_809782A0(this, globalCtx); - DemoGeff_SetScale(this, globalCtx); + func_80978030(this, globalCtx); } static void func_80978344(DemoGeff* this, GlobalContext* globalCtx) {