From 530b0f07c42cdc10175f5813b7cae7b89b65ba98 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Wed, 28 Jun 2023 19:09:01 +0300 Subject: [PATCH] Match daCrod_c::posMove --- Progress.md | 8 ++--- .../d_a_crod/d_a_crod/posMove__8daCrod_cFv.s | 33 ------------------- rel/d/a/d_a_crod/d_a_crod.cpp | 23 +++---------- 3 files changed, 9 insertions(+), 55 deletions(-) delete mode 100644 asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s diff --git a/Progress.md b/Progress.md index 5d4d6634d90..ea5881b52cf 100644 --- a/Progress.md +++ b/Progress.md @@ -21,8 +21,8 @@ Total | 35.593453% | 1431096 | 4020672 Section | Percentage | Decompiled (bytes) | Total (bytes) ---|---|---|--- main.dol | 35.593453% | 1431096 | 4020672 -RELs | 33.666704% | 3871780 | 11500324 -Total | 34.165823% | 5302876 | 15520996 +RELs | 33.667817% | 3871908 | 11500324 +Total | 34.166648% | 5303004 | 15520996 ## RELs @@ -66,7 +66,7 @@ d_a_canoe | 28.479263% | 4944 | 17360 d_a_coach_2D | 38.344915% | 2428 | 6332 d_a_coach_fire | 44.050104% | 1688 | 3832 d_a_cow | 22.936702% | 12784 | 55736 -d_a_crod | 98.228128% | 7096 | 7224 +d_a_crod | 100.000000% | 7224 | 7224 d_a_cstaF | 32.377740% | 3840 | 11860 d_a_cstatue | 29.155833% | 6728 | 23076 d_a_demo00 | 29.136000% | 7284 | 25000 @@ -785,4 +785,4 @@ d_a_vrbox2 | 34.977578% | 2184 | 6244 d_a_warp_bug | 54.940711% | 1112 | 2024 d_a_ykgr | 44.400631% | 2252 | 5072 f_pc_profile_lst | 100.000000% | 28156 | 28156 -Total | 33.666704% | 3871780 | 11500324 +Total | 33.667817% | 3871908 | 11500324 diff --git a/asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s b/asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s deleted file mode 100644 index 76a4a79f2c7..00000000000 --- a/asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s +++ /dev/null @@ -1,33 +0,0 @@ -lbl_804A3500: -/* 804A3500 94 21 FF F0 */ stwu r1, -0x10(r1) -/* 804A3504 7C 08 02 A6 */ mflr r0 -/* 804A3508 90 01 00 14 */ stw r0, 0x14(r1) -/* 804A350C 7C 66 1B 78 */ mr r6, r3 -/* 804A3510 3C 60 80 44 */ lis r3, sincosTable___5JMath@ha /* 0x80439A20@ha */ -/* 804A3514 38 63 9A 20 */ addi r3, r3, sincosTable___5JMath@l /* 0x80439A20@l */ -/* 804A3518 38 83 00 04 */ addi r4, r3, 4 -/* 804A351C A8 06 04 DC */ lha r0, 0x4dc(r6) -/* 804A3520 54 05 04 38 */ rlwinm r5, r0, 0, 0x10, 0x1c -/* 804A3524 7C 84 2C 2E */ lfsx f4, r4, r5 -/* 804A3528 A8 06 04 DE */ lha r0, 0x4de(r6) -/* 804A352C 54 00 04 38 */ rlwinm r0, r0, 0, 0x10, 0x1c -/* 804A3530 7C 04 04 2E */ lfsx f0, r4, r0 -/* 804A3534 C0 66 05 2C */ lfs f3, 0x52c(r6) -/* 804A3538 EC 03 00 32 */ fmuls f0, f3, f0 -/* 804A353C EC 40 01 32 */ fmuls f2, f0, f4 -/* 804A3540 7C 03 2C 2E */ lfsx f0, r3, r5 -/* 804A3544 EC 23 00 32 */ fmuls f1, f3, f0 -/* 804A3548 7C 03 04 2E */ lfsx f0, r3, r0 -/* 804A354C EC 03 00 32 */ fmuls f0, f3, f0 -/* 804A3550 EC 00 01 32 */ fmuls f0, f0, f4 -/* 804A3554 D0 06 04 F8 */ stfs f0, 0x4f8(r6) -/* 804A3558 D0 26 04 FC */ stfs f1, 0x4fc(r6) -/* 804A355C D0 46 05 00 */ stfs f2, 0x500(r6) -/* 804A3560 38 66 04 D0 */ addi r3, r6, 0x4d0 -/* 804A3564 38 86 04 F8 */ addi r4, r6, 0x4f8 -/* 804A3568 7C 65 1B 78 */ mr r5, r3 -/* 804A356C 4B EA 3B 25 */ bl PSVECAdd -/* 804A3570 80 01 00 14 */ lwz r0, 0x14(r1) -/* 804A3574 7C 08 03 A6 */ mtlr r0 -/* 804A3578 38 21 00 10 */ addi r1, r1, 0x10 -/* 804A357C 4E 80 00 20 */ blr diff --git a/rel/d/a/d_a_crod/d_a_crod.cpp b/rel/d/a/d_a_crod/d_a_crod.cpp index 80264fbb54c..e031eeb2394 100644 --- a/rel/d/a/d_a_crod/d_a_crod.cpp +++ b/rel/d/a/d_a_crod/d_a_crod.cpp @@ -8,7 +8,6 @@ #include "SSystem/SComponent/c_math.h" #include "d/a/d_a_alink.h" #include "d/d_procname.h" -#include "dol2asm.h" #include "f_op/f_op_actor_mng.h" #include "rel/d/a/d_a_cstaF/d_a_cstaF.h" #include "rel/d/a/d_a_cstatue/d_a_cstatue.h" @@ -26,15 +25,12 @@ enum daCrod_ANM { /* 18 */ ANM_WAIT_C, }; -extern "C" u8 sincosTable___5JMath[65536]; - /* ############################################################################################## */ /* 804A40EC-804A40F8 000000 000C+00 2/2 0/0 0/0 .rodata @3759 */ // not sure what this is -SECTION_RODATA static u8 const lit_3759[12] = { +static u8 const lit_3759[12] = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, }; -COMPILER_STRIP_GATE(0x804A40EC, &lit_3759); /* 804A40F8-804A4104 00000C 000C+00 1/2 0/0 0/0 .rodata l_localRodPos */ static const Vec l_localRodPos = {81.0f, -12.5f, -12.0f}; @@ -170,25 +166,16 @@ void daCrod_c::setMatrix() { } /* 804A3500-804A3580 000740 0080+00 1/1 0/0 0/0 .text posMove__8daCrod_cFv */ -// close -#ifdef NONMATCHING void daCrod_c::posMove() { f32 cosx = cM_scos(current.angle.x); f32 cosy = cM_scos(current.angle.y); + f32 speedfy = (speedF * cosy); + //probably fake match + f32 speedz; speed.set(speedF * cM_ssin(current.angle.y) * cM_scos(current.angle.x), - speedF * cM_ssin(current.angle.x), (speedF * cosy) * cosx); + speedF * cM_ssin(current.angle.x), speedz = speedfy * cosx); current.pos += speed; } -#else -#pragma push -#pragma optimization_level 0 -#pragma optimizewithasm off -asm void daCrod_c::posMove() { - nofralloc -#include "asm/rel/d/a/d_a_crod/d_a_crod/posMove__8daCrod_cFv.s" -} -#pragma pop -#endif /* 804A3580-804A35FC 0007C0 007C+00 2/2 0/0 0/0 .text setBckAnm__8daCrod_cFUs */ void daCrod_c::setBckAnm(u16 i_anmResID) {