From 61422182e8308853bffb4d6dc5da53877b3047c7 Mon Sep 17 00:00:00 2001 From: Jcw87 Date: Sat, 7 Feb 2026 04:30:53 -0800 Subject: [PATCH] d_lib debug (#3083) --- config/RZDE01_00/splits.txt | 9 ++++--- config/RZDE01_00/symbols.txt | 2 +- config/RZDE01_02/splits.txt | 9 ++++--- config/RZDE01_02/symbols.txt | 2 +- config/RZDJ01/splits.txt | 9 ++++--- config/RZDJ01/symbols.txt | 2 +- config/RZDP01/splits.txt | 9 ++++--- config/RZDP01/symbols.txt | 2 +- config/Shield/splits.txt | 3 ++- config/Shield/symbols.txt | 2 +- config/ShieldD/splits.txt | 4 +-- config/ShieldD/symbols.txt | 10 ++++---- src/d/d_lib.cpp | 49 ++++++++++++++++++++++++++++-------- 13 files changed, 76 insertions(+), 36 deletions(-) diff --git a/config/RZDE01_00/splits.txt b/config/RZDE01_00/splits.txt index 188ccb5d1c..f12fb44ebd 100644 --- a/config/RZDE01_00/splits.txt +++ b/config/RZDE01_00/splits.txt @@ -417,14 +417,16 @@ d/d_bomb.cpp: d/d_lib.cpp: .text start:0x800368B8 end:0x80037188 - .data start:0x803FE3C8 end:0x803FE490 - .sdata start:0x80537B18 end:0x80537B38 - .sbss start:0x8053AA20 end:0x8053AA40 + .data start:0x803FE3C8 end:0x803FE420 + .sdata start:0x80537B18 end:0x80537B28 + .sbss start:0x8053AA20 end:0x8053AA38 .sdata2 start:0x8053BE18 end:0x8053BE20 d/d_save.cpp: .text start:0x80037188 end:0x8003A14C .rodata start:0x803CFD10 end:0x803D04F0 + .data start:0x803FE420 end:0x803FE490 + .sdata start:0x80537B28 end:0x80537B38 .sdata2 start:0x8053BE20 end:0x8053BE28 d/d_save_init.cpp: @@ -440,6 +442,7 @@ d/d_a_obj.cpp: .text start:0x8003AF5C end:0x8003B800 .rodata start:0x803D04F0 end:0x803D0500 .bss start:0x804B0D60 end:0x804B0DC0 + .sbss start:0x8053AA38 end:0x8053AA40 .sdata2 start:0x8053BE48 end:0x8053BE60 d/d_a_itembase_static.cpp: diff --git a/config/RZDE01_00/symbols.txt b/config/RZDE01_00/symbols.txt index ea4198e55a..2dc433a795 100644 --- a/config/RZDE01_00/symbols.txt +++ b/config/RZDE01_00/symbols.txt @@ -28223,7 +28223,7 @@ mSttsFlag__12daObjCarry_c = .sbss:0x8053AA12; // type:object size:0x5 mRoomNo__12daObjCarry_c = .sbss:0x8053AA17; // type:object size:0x5 m_diffTime__11dLib_time_c = .sbss:0x8053AA20; // type:object size:0x8 scope:global align:4 data:4byte m_stopTime__11dLib_time_c = .sbss:0x8053AA28; // type:object size:0x8 scope:global align:4 data:4byte -lbl_8053AA30 = .sbss:0x8053AA30; // type:object size:0x8 data:byte +m_timeStopped__11dLib_time_c = .sbss:0x8053AA30; // type:object size:0x1 data:byte lbl_8053AA38 = .sbss:0x8053AA38; // type:object size:0x1 data:byte lbl_8053AA39 = .sbss:0x8053AA39; // type:object size:0x1 data:byte lbl_8053AA3A = .sbss:0x8053AA3A; // type:object size:0x1 data:byte diff --git a/config/RZDE01_02/splits.txt b/config/RZDE01_02/splits.txt index 546ef54cb5..ec096087af 100644 --- a/config/RZDE01_02/splits.txt +++ b/config/RZDE01_02/splits.txt @@ -417,14 +417,16 @@ d/d_bomb.cpp: d/d_lib.cpp: .text start:0x800369D0 end:0x800372A0 - .data start:0x803E9668 end:0x803E9730 - .sdata start:0x8051DBB8 end:0x8051DBD8 - .sbss start:0x80520A28 end:0x80520A48 + .data start:0x803E9668 end:0x803E96C0 + .sdata start:0x8051DBB8 end:0x8051DBC8 + .sbss start:0x80520A28 end:0x80520A40 .sdata2 start:0x80521E18 end:0x80521E20 d/d_save.cpp: .text start:0x800372A0 end:0x8003A2FC .rodata start:0x803BA750 end:0x803BAF30 + .data start:0x803E96C0 end:0x803E9730 + .sdata start:0x8051DBC8 end:0x8051DBD8 .sdata2 start:0x80521E20 end:0x80521E28 d/d_save_init.cpp: @@ -440,6 +442,7 @@ d/d_a_obj.cpp: .text start:0x8003B10C end:0x8003B9B0 .rodata start:0x803BAF30 end:0x803BAF40 .bss start:0x80498368 end:0x804983C8 + .sbss start:0x80520A40 end:0x80520A48 .sdata2 start:0x80521E48 end:0x80521E60 d/d_a_itembase_static.cpp: diff --git a/config/RZDE01_02/symbols.txt b/config/RZDE01_02/symbols.txt index cd9acbbfb0..73075f98e5 100644 --- a/config/RZDE01_02/symbols.txt +++ b/config/RZDE01_02/symbols.txt @@ -27748,7 +27748,7 @@ mSttsFlag__12daObjCarry_c = .sbss:0x80520A1A; // type:object size:0x5 mRoomNo__12daObjCarry_c = .sbss:0x80520A1F; // type:object size:0x5 m_diffTime__11dLib_time_c = .sbss:0x80520A28; // type:object size:0x8 scope:global align:4 data:4byte m_stopTime__11dLib_time_c = .sbss:0x80520A30; // type:object size:0x8 scope:global align:4 data:4byte -lbl_80520A38 = .sbss:0x80520A38; // type:object size:0x8 data:byte +m_timeStopped__11dLib_time_c = .sbss:0x80520A38; // type:object size:0x1 data:byte lbl_80520A40 = .sbss:0x80520A40; // type:object size:0x1 data:byte lbl_80520A41 = .sbss:0x80520A41; // type:object size:0x1 data:byte lbl_80520A42 = .sbss:0x80520A42; // type:object size:0x1 data:byte diff --git a/config/RZDJ01/splits.txt b/config/RZDJ01/splits.txt index 40868be17e..b8c597e29b 100644 --- a/config/RZDJ01/splits.txt +++ b/config/RZDJ01/splits.txt @@ -417,14 +417,16 @@ d/d_bomb.cpp: d/d_lib.cpp: .text start:0x800369E0 end:0x800372B0 - .data start:0x803E75F0 end:0x803E76B8 - .sdata start:0x8051BA30 end:0x8051BA50 - .sbss start:0x8051E8A8 end:0x8051E8C8 + .data start:0x803E75F0 end:0x803E7648 + .sdata start:0x8051BA30 end:0x8051BA40 + .sbss start:0x8051E8A8 end:0x8051E8C0 .sdata2 start:0x8051FC98 end:0x8051FCA0 d/d_save.cpp: .text start:0x800372B0 end:0x8003A278 .rodata start:0x803BC210 end:0x803BC9F0 + .data start:0x803E7648 end:0x803E76B8 + .sdata start:0x8051BA40 end:0x8051BA50 .sdata2 start:0x8051FCA0 end:0x8051FCA8 d/d_save_init.cpp: @@ -440,6 +442,7 @@ d/d_a_obj.cpp: .text start:0x8003B088 end:0x8003B92C .rodata start:0x803BC9F0 end:0x803BCA00 .bss start:0x804961E8 end:0x80496248 + .sbss start:0x8051E8C0 end:0x8051E8C8 .sdata2 start:0x8051FCC8 end:0x8051FCE0 d/d_a_itembase_static.cpp: diff --git a/config/RZDJ01/symbols.txt b/config/RZDJ01/symbols.txt index b54fbd7707..c83e712b53 100644 --- a/config/RZDJ01/symbols.txt +++ b/config/RZDJ01/symbols.txt @@ -27754,7 +27754,7 @@ mSttsFlag__12daObjCarry_c = .sbss:0x8051E89A; // type:object size:0x5 mRoomNo__12daObjCarry_c = .sbss:0x8051E89F; // type:object size:0x5 m_diffTime__11dLib_time_c = .sbss:0x8051E8A8; // type:object size:0x8 scope:global align:4 data:4byte m_stopTime__11dLib_time_c = .sbss:0x8051E8B0; // type:object size:0x8 scope:global align:4 data:4byte -lbl_8051E8B8 = .sbss:0x8051E8B8; // type:object size:0x8 data:byte +m_timeStopped__11dLib_time_c = .sbss:0x8051E8B8; // type:object size:0x1 data:byte lbl_8051E8C0 = .sbss:0x8051E8C0; // type:object size:0x1 data:byte lbl_8051E8C1 = .sbss:0x8051E8C1; // type:object size:0x1 data:byte lbl_8051E8C2 = .sbss:0x8051E8C2; // type:object size:0x1 data:byte diff --git a/config/RZDP01/splits.txt b/config/RZDP01/splits.txt index 667c869a2e..7f16163fc1 100644 --- a/config/RZDP01/splits.txt +++ b/config/RZDP01/splits.txt @@ -417,14 +417,16 @@ d/d_bomb.cpp: d/d_lib.cpp: .text start:0x80036A84 end:0x80037354 - .data start:0x803EA418 end:0x803EA4E0 - .sdata start:0x8051E4B8 end:0x8051E4D8 - .sbss start:0x805211E8 end:0x80521208 + .data start:0x803EA418 end:0x803EA470 + .sdata start:0x8051E4B8 end:0x8051E4C8 + .sbss start:0x805211E8 end:0x80521200 .sdata2 start:0x805225D8 end:0x805225E0 d/d_save.cpp: .text start:0x80037354 end:0x8003A3C8 .rodata start:0x803BABD0 end:0x803BB3B0 + .data start:0x803EA470 end:0x803EA4E0 + .sdata start:0x8051E4C8 end:0x8051E4D8 .sdata2 start:0x805225E0 end:0x805225E8 d/d_save_init.cpp: @@ -440,6 +442,7 @@ d/d_a_obj.cpp: .text start:0x8003B1D8 end:0x8003BA7C .rodata start:0x803BB3B0 end:0x803BB3C0 .bss start:0x80498C60 end:0x80498CC0 + .sbss start:0x80521200 end:0x80521208 .sdata2 start:0x80522608 end:0x80522620 d/d_a_itembase_static.cpp: diff --git a/config/RZDP01/symbols.txt b/config/RZDP01/symbols.txt index 1def12239a..3d255bb059 100644 --- a/config/RZDP01/symbols.txt +++ b/config/RZDP01/symbols.txt @@ -27639,7 +27639,7 @@ mSttsFlag__12daObjCarry_c = .sbss:0x805211DA; // type:object size:0x5 mRoomNo__12daObjCarry_c = .sbss:0x805211DF; // type:object size:0x5 m_diffTime__11dLib_time_c = .sbss:0x805211E8; // type:object size:0x8 scope:global align:4 data:4byte m_stopTime__11dLib_time_c = .sbss:0x805211F0; // type:object size:0x8 scope:global align:4 data:4byte -lbl_805211F8 = .sbss:0x805211F8; // type:object size:0x8 data:byte +m_timeStopped__11dLib_time_c = .sbss:0x805211F8; // type:object size:0x1 data:byte lbl_80521200 = .sbss:0x80521200; // type:object size:0x1 data:byte lbl_80521201 = .sbss:0x80521201; // type:object size:0x1 data:byte lbl_80521202 = .sbss:0x80521202; // type:object size:0x1 data:byte diff --git a/config/Shield/splits.txt b/config/Shield/splits.txt index 1d83673188..2f53ff5207 100644 --- a/config/Shield/splits.txt +++ b/config/Shield/splits.txt @@ -416,7 +416,7 @@ d/d_lib.cpp: .text start:0x8003A8D0 end:0x8003B1D0 .data start:0x804B88A0 end:0x804B88F8 .sdata start:0x80505150 end:0x80505160 - .sbss start:0x80508C00 end:0x80508C20 + .sbss start:0x80508C00 end:0x80508C18 d/d_save.cpp: .text start:0x8003B1D0 end:0x8003FC50 @@ -438,6 +438,7 @@ d/d_a_obj.cpp: .text start:0x80040C40 end:0x80041890 .rodata start:0x804907F0 end:0x80490800 .sdata start:0x80505190 end:0x80505198 + .sbss start:0x80508C18 end:0x80508C20 .sdata2 start:0x8050A068 end:0x8050A080 .bss start:0x8056EE10 end:0x8056EE40 diff --git a/config/Shield/symbols.txt b/config/Shield/symbols.txt index 844893dc2a..85a59bc3eb 100644 --- a/config/Shield/symbols.txt +++ b/config/Shield/symbols.txt @@ -25311,7 +25311,7 @@ mSttsFlag__12daObjCarry_c = .sbss:0x80508BF0; // type:object size:0x5 scope:glob mRoomNo__12daObjCarry_c = .sbss:0x80508BF8; // type:object size:0x5 scope:global hash:0x7A66BF30 dhash:0x986864D3 m_diffTime__11dLib_time_c = .sbss:0x80508C00; // type:object size:0x8 scope:global data:4byte hash:0xFC753EFA dhash:0x51401BBA m_stopTime__11dLib_time_c = .sbss:0x80508C08; // type:object size:0x8 scope:global data:4byte hash:0x0E37B6CF dhash:0x2486A7EF -lbl_80508C10 = .sbss:0x80508C10; // type:object size:0x1 data:byte hash:0xCA892CFA dhash:0xE4F247FA +m_timeStopped__11dLib_time_c = .sbss:0x80508C10; // type:object size:0x1 data:byte hash:0xCA892CFA dhash:0xE4F247FA lbl_80508C18 = .sbss:0x80508C18; // type:object size:0x1 data:byte hash:0x8AB2D60D dhash:0xC8738770 lbl_80508C19 = .sbss:0x80508C19; // type:object size:0x1 data:byte hash:0x02D2139F dhash:0xB7877CE2 lbl_80508C1A = .sbss:0x80508C1A; // type:object size:0x1 data:byte hash:0x85052898 dhash:0x60A7E545 diff --git a/config/ShieldD/splits.txt b/config/ShieldD/splits.txt index 34a59afb88..52d683e666 100644 --- a/config/ShieldD/splits.txt +++ b/config/ShieldD/splits.txt @@ -446,7 +446,7 @@ d/d_lib.cpp: .text start:0x800665A0 end:0x80067480 .data start:0x80673FB0 end:0x80674108 .sdata start:0x80740980 end:0x80740998 - .sbss start:0x8074C620 end:0x8074C640 + .sbss start:0x8074C620 end:0x8074C638 d/d_save.cpp: .text start:0x80067480 end:0x80070A60 @@ -472,7 +472,7 @@ d/d_a_obj.cpp: .rodata start:0x80633230 end:0x80633260 .data start:0x80675380 end:0x80675818 .sdata start:0x80740A88 end:0x80740AC8 - .sbss start:0x8074C640 end:0x8074C648 + .sbss start:0x8074C638 end:0x8074C648 .sdata2 start:0x8074DBE0 end:0x8074DBF8 .bss start:0x807B28C8 end:0x807B2B78 diff --git a/config/ShieldD/symbols.txt b/config/ShieldD/symbols.txt index 9a9c234c83..a8099be5d3 100644 --- a/config/ShieldD/symbols.txt +++ b/config/ShieldD/symbols.txt @@ -64358,11 +64358,11 @@ mSttsFlag__12daObjCarry_c = .sbss:0x8074C610; // type:object size:0x5 scope:glob mRoomNo__12daObjCarry_c = .sbss:0x8074C618; // type:object size:0x5 scope:global hash:0x7A66BF30 dhash:0x986864D3 m_diffTime__11dLib_time_c = .sbss:0x8074C620; // type:object size:0x8 scope:global data:4byte hash:0xFC753EFA dhash:0x51401BBA m_stopTime__11dLib_time_c = .sbss:0x8074C628; // type:object size:0x8 scope:global data:4byte hash:0x0E37B6CF dhash:0x2486A7EF -lbl_8074C630 = .sbss:0x8074C630; // type:object size:0x8 data:byte hash:0xCA892CFA dhash:0xE4F247FA -lbl_8074C638 = .sbss:0x8074C638; // type:object size:0x1 data:byte hash:0x8AB2D60D dhash:0xC8738770 -lbl_8074C639 = .sbss:0x8074C639; // type:object size:0x1 data:byte hash:0x02D2139F dhash:0xB7877CE2 -lbl_8074C63A = .sbss:0x8074C63A; // type:object size:0x1 data:byte hash:0x85052898 dhash:0x60A7E545 -lbl_8074C63B = .sbss:0x8074C63B; // type:object size:0x1 data:byte hash:0xCF94AC1C dhash:0x8B3AD641 +m_timeStopped__11dLib_time_c = .sbss:0x8074C630; // type:object size:0x1 data:byte hash:0xCA892CFA dhash:0xE4F247FA +@GUARD@make_eff_break_kotubo__5daObjFP10fopAc_ac_c@scale = .sbss:0x8074C638; // type:object size:0x1 data:byte hash:0x8AB2D60D dhash:0xC8738770 +@GUARD@make_eff_break_kotubo2__5daObjFP10fopAc_ac_c@scale = .sbss:0x8074C639; // type:object size:0x1 data:byte hash:0x02D2139F dhash:0xB7877CE2 +@GUARD@make_eff_break_gm_kotubo__5daObjFP10fopAc_ac_c@scale = .sbss:0x8074C63A; // type:object size:0x1 data:byte hash:0x85052898 dhash:0x60A7E545 +@GUARD@make_eff_break_gm_ootubo__5daObjFP10fopAc_ac_c@scale = .sbss:0x8074C63B; // type:object size:0x1 data:byte hash:0xCF94AC1C dhash:0x8B3AD641 M_hio__Q25daObj8HioObj_c = .sbss:0x8074C640; // type:object size:0x8 scope:global hash:0x2A9967A0 dhash:0xA4E7354E m_top__12daTagHstop_c = .sbss:0x8074C648; // type:object size:0x4 scope:global data:4byte hash:0x31C73284 dhash:0xD04F1FA7 mShareHeap__6dBgp_c = .sbss:0x8074C650; // type:object size:0x4 scope:global data:4byte hash:0xEBA69062 dhash:0xA54102D4 diff --git a/src/d/d_lib.cpp b/src/d/d_lib.cpp index 7f6c0b09d4..5456c7dc9d 100644 --- a/src/d/d_lib.cpp +++ b/src/d/d_lib.cpp @@ -6,7 +6,9 @@ #include "d/dolzel.h" // IWYU pragma: keep #include "d/d_lib.h" +#include "d/d_debug_viewer.h" #include "d/d_event.h" +#include "d/d_path.h" #include "d/d_stage.h" #include "JSystem/JKernel/JKRAramArchive.h" #include "JSystem/JKernel/JKRAram.h" @@ -14,6 +16,23 @@ #include "f_op/f_op_actor.h" #include "m_Do/m_Do_controller_pad.h" +static void dummy1(mDoExt_btkAnm* btk) { + cXyz pos; + GXColor color; + OS_REPORT("d_lib.cpp"); + OS_REPORT("brk != 0"); + OS_REPORT("btk != 0"); + OS_REPORT("bck != 0"); + OS_REPORT("0 <= room_no && room_no < 64"); + OS_REPORT("scls_data != 0"); + OS_REPORT("0 <= i_sclsnum && i_sclsnum < sclsinfo->num"); + btk->init((J3DModelData*)NULL, NULL, 0, 0, 0.0f, 0, 0); + dDbVw_drawCircleOpa(pos, pos.x, color, 0, 0); + mDoMtx_stack_c::multVecZero(&pos); + mDoMtx_stack_c::multVec(&pos, &pos); + dDbVw_drawLineOpa(pos, pos, color, 0, 0); +} + Quaternion ZeroQuat = { 0.0f, 0.0f, @@ -42,8 +61,7 @@ void STControl::setWaitParm(s16 delayY, s16 delayX, s16 param_2, s16 param_3, f3 void STControl::init() { field_0x0e = 0; field_0x10 = 0; - field_0x0d = 0; - mDirectionTrig = 0; + mDirectionTrig = field_0x0d = 0; field_0x22 = 0; mXwaitTimer = mRepeatDelayY; mYwaitTimer = mRepeatDelayY; @@ -56,7 +74,7 @@ void STControl::init() { void STControl::Xinit() { field_0x0e = 0; - mDirectionTrig &= ~0x03; + mDirectionTrig &= u8(0xFC); mXwaitTimer = mRepeatDelayY; field_0x1e = field_0x1c; field_0x2a = mFirstWaitTime; @@ -97,19 +115,23 @@ u8 STControl::checkTrigger() { if (stickAngle < field_0x22 - 0x7000 + temp_r7) { var_r6 |= TRIG_UP; } else if (stickAngle < field_0x22 - 0x5000 - temp_r7) { - var_r6 |= TRIG_UP_LEFT; + var_r6 |= TRIG_UP; + var_r6 |= TRIG_LEFT; } else if (stickAngle < field_0x22 - 0x3000 + temp_r7) { var_r6 |= TRIG_LEFT; } else if (stickAngle < field_0x22 - 0x1000 - temp_r7) { - var_r6 |= TRIG_DOWN_LEFT; + var_r6 |= TRIG_LEFT; + var_r6 |= TRIG_DOWN; } else if (stickAngle < field_0x22 + 0x1000 + temp_r7) { var_r6 |= TRIG_DOWN; } else if (stickAngle < field_0x22 + 0x3000 - temp_r7) { - var_r6 |= TRIG_DOWN_RIGHT; + var_r6 |= TRIG_DOWN; + var_r6 |= TRIG_RIGHT; } else if (stickAngle < field_0x22 + 0x5000 + temp_r7) { var_r6 |= TRIG_RIGHT; } else if (stickAngle < field_0x22 + 0x7000 - temp_r7) { - var_r6 |= TRIG_UP_RIGHT; + var_r6 |= TRIG_RIGHT; + var_r6 |= TRIG_UP; } else { var_r6 |= TRIG_UP; } @@ -224,6 +246,14 @@ bool STControl::checkDownTrigger() { return false; } +static void dummy2(dPath* path, dSv_player_status_b_c* statusB) { + OS_REPORT("i_path != 0"); + OS_REPORT("i_startPoint < i_path->m_num"); + OS_REPORT("mPath != 0"); + dPath_ChkClose(path); + statusB->getDateIpl(); +} + u8 dLib_getEventSwitchNo(int param_0) { dStage_MapEvent_dt_c* mapEvent = dEvt_control_c::searchMapEventData(param_0); if (mapEvent != NULL) { @@ -259,10 +289,7 @@ u32 dLib_getExpandSizeFromAramArchive(JKRAramArchive* i_aramArchive, char const* JUT_ASSERT(1263, entry != NULL); u32 uVar1 = ALIGN_NEXT(JKRDecompExpandSize(header), 32); u32 uVar5 = ALIGN_NEXT(entry->data_size, 32); - if (uVar1 > uVar5) { - return uVar1; - } - return uVar5; + return uVar1 > uVar5 ? uVar1 : uVar5; } OSTime dLib_time_c::m_diffTime;