From 9af9baf1b93e5130fbf5cc2534e0562f7df1a388 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Sun, 7 Dec 2025 14:26:55 -0500 Subject: [PATCH 01/13] d_a_npc_blue_ns OK (#2924) * Match daNpcBlueNS_c::_Execute * Cleanup loop * d_a_npc_blue_ns OK --- configure.py | 2 +- include/d/actor/d_a_npc_blue_ns.h | 2 +- src/d/actor/d_a_npc_blue_ns.cpp | 8 +++++--- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/configure.py b/configure.py index 11712533c1..3d0617d508 100755 --- a/configure.py +++ b/configure.py @@ -1966,7 +1966,7 @@ config.libs = [ ActorRel(Equivalent, "d_a_npc_ash"), # weak func order (sinShort) ActorRel(Equivalent, "d_a_npc_ashB"), # weak func order (sinShort) ActorRel(MatchingFor(ALL_GCN), "d_a_npc_bans"), - ActorRel(NonMatching, "d_a_npc_blue_ns"), + ActorRel(MatchingFor(ALL_GCN), "d_a_npc_blue_ns"), ActorRel(MatchingFor(ALL_GCN), "d_a_npc_bou"), ActorRel(Equivalent, "d_a_npc_bouS"), # weak func order (sinShort) ActorRel(Equivalent, "d_a_npc_cdn3"), # weak func order (~csXyz); vtable order diff --git a/include/d/actor/d_a_npc_blue_ns.h b/include/d/actor/d_a_npc_blue_ns.h index 86e52de71b..6c6185c1f6 100644 --- a/include/d/actor/d_a_npc_blue_ns.h +++ b/include/d/actor/d_a_npc_blue_ns.h @@ -24,7 +24,7 @@ public: int isDelete(); int Delete(); int Execute(); - int _Execute(); + void _Execute(); void callEvt_changeYami(); fpc_ProcID create_Yamijin(int); BOOL col_check(); diff --git a/src/d/actor/d_a_npc_blue_ns.cpp b/src/d/actor/d_a_npc_blue_ns.cpp index 31a2848ca1..c0f4d5f032 100644 --- a/src/d/actor/d_a_npc_blue_ns.cpp +++ b/src/d/actor/d_a_npc_blue_ns.cpp @@ -216,8 +216,7 @@ int daNpcBlueNS_c::Execute() { return 1; } -// NONMATCHING - small regalloc -int daNpcBlueNS_c::_Execute() { +void daNpcBlueNS_c::_Execute() { setParam(); if (main()) { @@ -255,7 +254,10 @@ int daNpcBlueNS_c::_Execute() { field_0x9f3 = 0; for (int i = 0; i < 5; i++) { - if ((mAttnChangeTimer == 0 || mAttnIdx != i) && mAttnActorTimer[i] != 0 && cLib_calcTimer(&mAttnActorTimer[i]) == 0) { + if (mAttnChangeTimer != 0 && mAttnIdx == i) { + continue; + } + if (mAttnActorTimer[i] != 0 && cLib_calcTimer(&mAttnActorTimer[i]) == 0) { mAttnActor[i].remove(); } } From 47b891667f8c270bbb161af39eef02c026503fbe Mon Sep 17 00:00:00 2001 From: Max Roncace Date: Sun, 7 Dec 2025 17:22:14 -0500 Subject: [PATCH 02/13] Fix up Wii USA v0/v2 symbols (#2927) --- .../RZDE01_00/rels/d_a_L7demo_dr/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_L7low_dr/symbols.txt | 2 +- .../rels/d_a_L7op_demo_dr/symbols.txt | 4 +- config/RZDE01_00/rels/d_a_andsw2/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_b_zant/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_balloon_2D/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_bg/splits.txt | 1 + config/RZDE01_00/rels/d_a_bg/symbols.txt | 12 +- config/RZDE01_00/rels/d_a_bullet/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_coach_2D/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_coach_fire/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_cow/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_dshutter/symbols.txt | 4 +- config/RZDE01_00/rels/d_a_e_bs/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_e_gm/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_e_gob/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_e_oct_bg/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_e_rdy/symbols.txt | 4 +- config/RZDE01_00/rels/d_a_e_sf/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_e_sw/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_e_wb/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_e_yr/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_grass/symbols.txt | 26 +- config/RZDE01_00/rels/d_a_mg_rod/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_mirror/symbols.txt | 4 +- config/RZDE01_00/rels/d_a_myna/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_ni/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_aru/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_ash/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_ashB/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_bans/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_besu/symbols.txt | 2 +- .../rels/d_a_npc_blue_ns/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_bou/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_chat/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_chin/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_clerka/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_clerkb/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_clerkt/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_coach/symbols.txt | 14 +- config/RZDE01_00/rels/d_a_npc_doc/symbols.txt | 2 +- .../rels/d_a_npc_doorboy/symbols.txt | 2 +- .../rels/d_a_npc_drainSol/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_fairy/symbols.txt | 2 +- .../rels/d_a_npc_fairy_seirei/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_gnd/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_gra/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_grc/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_grd/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_grm/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_grmc/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_gro/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_grr/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_grs/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_grz/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_gwolf/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_hanjo/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_henna/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_hoz/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_impal/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_ins/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_jagar/symbols.txt | 2 +- .../rels/d_a_npc_kakashi/symbols.txt | 2 +- .../rels/d_a_npc_kasi_hana/symbols.txt | 2 +- .../rels/d_a_npc_kasi_kyu/symbols.txt | 2 +- .../rels/d_a_npc_kasi_mich/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_kkri/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_kn/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_knj/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_kolin/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_kolinb/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_kyury/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_len/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_lud/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_maro/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_midp/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_moi/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_moir/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_myna2/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_ne/symbols.txt | 2 +- .../rels/d_a_npc_pachi_besu/symbols.txt | 2 +- .../rels/d_a_npc_pachi_maro/symbols.txt | 2 +- .../rels/d_a_npc_pachi_taro/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_post/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_pouya/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_prayer/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_raca/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_rafrel/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_saru/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_seib/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_seic/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_seid/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_seira/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_seira2/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_seirei/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_shad/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_shaman/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_shoe/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_shop0/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_sola/symbols.txt | 2 +- .../rels/d_a_npc_soldierA/symbols.txt | 2 +- .../rels/d_a_npc_soldierB/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_taro/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_the/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_theB/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_tkc/symbols.txt | 4 +- config/RZDE01_00/rels/d_a_npc_tkj/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_tks/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_toby/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_uri/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_yamid/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_yamis/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_yamit/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_yelia/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_ykm/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_ykw/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_zanb/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_zant/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_zelR/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_zelRo/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_npc_zelda/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_zra/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_zrc/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_npc_zrz/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_obj_Lv5Key/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_obj_batta/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_obj_gra2/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_obj_kag/symbols.txt | 2 +- .../rels/d_a_obj_master_sword/symbols.txt | 2 +- .../RZDE01_00/rels/d_a_obj_mato/symbols.txt | 2 +- .../rels/d_a_obj_mirror_chain/symbols.txt | 12 +- .../rels/d_a_obj_movebox/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_obj_nan/symbols.txt | 2 +- .../rels/d_a_obj_oiltubo/symbols.txt | 2 +- .../rels/d_a_obj_sekizoa/symbols.txt | 2 +- .../rels/d_a_obj_ss_drink/symbols.txt | 2 +- .../rels/d_a_obj_ss_item/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_obj_tks/symbols.txt | 2 +- config/RZDE01_00/rels/d_a_peru/symbols.txt | 2 +- .../rels/d_a_tag_bottle_item/symbols.txt | 2 +- .../rels/d_a_tag_ss_drink/symbols.txt | 2 +- config/RZDE01_00/symbols.txt | 514 +++++++++--------- .../RZDE01_02/rels/d_a_L7demo_dr/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_L7low_dr/symbols.txt | 2 +- .../rels/d_a_L7op_demo_dr/symbols.txt | 4 +- config/RZDE01_02/rels/d_a_b_zant/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_balloon_2D/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_bg/splits.txt | 1 + config/RZDE01_02/rels/d_a_bg/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_bullet/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_coach_2D/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_coach_fire/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_cow/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_dshutter/symbols.txt | 4 +- config/RZDE01_02/rels/d_a_e_gm/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_e_oct_bg/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_e_sm2/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_e_sw/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_grass/symbols.txt | 26 +- config/RZDE01_02/rels/d_a_mirror/symbols.txt | 4 +- .../rels/d_a_movie_player/symbols.txt | 4 +- config/RZDE01_02/rels/d_a_myna/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_aru/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_ash/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_ashB/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_bans/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_besu/symbols.txt | 2 +- .../rels/d_a_npc_blue_ns/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_bou/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_bouS/symbols.txt | 8 +- .../RZDE01_02/rels/d_a_npc_chat/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_chin/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_clerka/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_clerkb/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_clerkt/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_coach/symbols.txt | 12 +- config/RZDE01_02/rels/d_a_npc_doc/symbols.txt | 2 +- .../rels/d_a_npc_doorboy/symbols.txt | 2 +- .../rels/d_a_npc_drainSol/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_fairy/symbols.txt | 2 +- .../rels/d_a_npc_fairy_seirei/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_gnd/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_gra/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_grc/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_grd/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_grm/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_grmc/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_gro/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_grr/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_grs/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_grz/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_gwolf/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_hanjo/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_hoz/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_impal/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_ins/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_jagar/symbols.txt | 2 +- .../rels/d_a_npc_kakashi/symbols.txt | 2 +- .../rels/d_a_npc_kasi_hana/symbols.txt | 2 +- .../rels/d_a_npc_kasi_kyu/symbols.txt | 2 +- .../rels/d_a_npc_kasi_mich/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_kkri/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_kn/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_knj/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_kolin/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_kolinb/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_kyury/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_len/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_lud/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_maro/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_midp/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_moi/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_moir/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_myna2/symbols.txt | 2 +- .../rels/d_a_npc_pachi_besu/symbols.txt | 2 +- .../rels/d_a_npc_pachi_maro/symbols.txt | 2 +- .../rels/d_a_npc_pachi_taro/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_post/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_pouya/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_prayer/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_raca/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_rafrel/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_saru/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_seib/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_seic/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_seid/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_seira/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_seira2/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_seirei/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_shad/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_shaman/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_shoe/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_shop0/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_sola/symbols.txt | 2 +- .../rels/d_a_npc_soldierA/symbols.txt | 2 +- .../rels/d_a_npc_soldierB/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_taro/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_the/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_theB/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_tkc/symbols.txt | 4 +- config/RZDE01_02/rels/d_a_npc_tkj/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_tks/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_toby/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_uri/symbols.txt | 2 +- .../rels/d_a_npc_wrestler/symbols.txt | 8 +- .../RZDE01_02/rels/d_a_npc_yamid/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_yamis/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_yamit/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_yelia/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_ykm/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_ykw/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_zanb/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_zant/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_zelR/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_zelRo/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_npc_zelda/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_zra/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_zrc/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_npc_zrz/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_obj_Lv5Key/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_obj_batta/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_obj_gra2/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_obj_kag/symbols.txt | 2 +- .../rels/d_a_obj_master_sword/symbols.txt | 2 +- .../RZDE01_02/rels/d_a_obj_mato/symbols.txt | 2 +- .../rels/d_a_obj_mirror_chain/symbols.txt | 12 +- .../rels/d_a_obj_movebox/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_obj_nan/symbols.txt | 2 +- .../rels/d_a_obj_oiltubo/symbols.txt | 2 +- .../rels/d_a_obj_sekizoa/symbols.txt | 2 +- .../rels/d_a_obj_ss_drink/symbols.txt | 2 +- .../rels/d_a_obj_ss_item/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_obj_tks/symbols.txt | 2 +- config/RZDE01_02/rels/d_a_peru/symbols.txt | 2 +- .../rels/d_a_tag_bottle_item/symbols.txt | 2 +- .../rels/d_a_tag_ss_drink/symbols.txt | 2 +- config/RZDE01_02/symbols.txt | 447 +++++++-------- 277 files changed, 822 insertions(+), 819 deletions(-) diff --git a/config/RZDE01_00/rels/d_a_L7demo_dr/symbols.txt b/config/RZDE01_00/rels/d_a_L7demo_dr/symbols.txt index e09ee037cd..41c1236dbb 100644 --- a/config/RZDE01_00/rels/d_a_L7demo_dr/symbols.txt +++ b/config/RZDE01_00/rels/d_a_L7demo_dr/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x4 scope:global -fn_5c = .text:0x0000005C; // type:function size:0xA4 scope:global +setAction__6daDr_cFM6daDr_cFPCvPv_v = .text:0x0000005C; // type:function size:0xA4 scope:global mtx_set__6daDr_cFv = .text:0x00000100; // type:function size:0xB0 scope:global draw__6daDr_cFv = .text:0x000001B0; // type:function size:0x80 scope:global daDr_Draw__FP6daDr_c = .text:0x00000230; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_L7low_dr/symbols.txt b/config/RZDE01_00/rels/d_a_L7low_dr/symbols.txt index c89a489c9d..79d8679483 100644 --- a/config/RZDE01_00/rels/d_a_L7low_dr/symbols.txt +++ b/config/RZDE01_00/rels/d_a_L7low_dr/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x4 scope:global -fn_5c = .text:0x0000005C; // type:function size:0xA4 scope:global +setAction__11daL7lowDr_cFM11daL7lowDr_cFPCvPv_v = .text:0x0000005C; // type:function size:0xA4 scope:global action__11daL7lowDr_cFv = .text:0x00000100; // type:function size:0xA4 scope:global daL7lowDr_Delete__FP11daL7lowDr_c = .text:0x000001A4; // type:function size:0x4 scope:global mtx_set__11daL7lowDr_cFv = .text:0x000001A8; // type:function size:0x6C scope:global diff --git a/config/RZDE01_00/rels/d_a_L7op_demo_dr/symbols.txt b/config/RZDE01_00/rels/d_a_L7op_demo_dr/symbols.txt index 276f27dccf..6f112a8ee6 100644 --- a/config/RZDE01_00/rels/d_a_L7op_demo_dr/symbols.txt +++ b/config/RZDE01_00/rels/d_a_L7op_demo_dr/symbols.txt @@ -1,8 +1,8 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x4 scope:global -fn_5c = .text:0x0000005C; // type:function size:0xA4 scope:global -fn_100 = .text:0x00000100; // type:function size:0xA4 scope:global +setAction__9daL7ODR_cFM9daL7ODR_cFPCvPv_v = .text:0x0000005C; // type:function size:0xA4 scope:global +setDrAction__9daL7ODR_cFM9daL7ODR_cFPCvPv_v = .text:0x00000100; // type:function size:0xA4 scope:global mtx_set__9daL7ODR_cFv = .text:0x000001A4; // type:function size:0x90 scope:global draw__9daL7ODR_cFv = .text:0x00000234; // type:function size:0xF4 scope:global daL7ODR_Draw__FP9daL7ODR_c = .text:0x00000328; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_andsw2/symbols.txt b/config/RZDE01_00/rels/d_a_andsw2/symbols.txt index a1b63c9c4b..5d28ad6427 100644 --- a/config/RZDE01_00/rels/d_a_andsw2/symbols.txt +++ b/config/RZDE01_00/rels/d_a_andsw2/symbols.txt @@ -18,6 +18,6 @@ daAndsw2_Create__FP10fopAc_ac_c = .text:0x00000ABC; // type:function size:0x4 sc _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global @90578 = .data:0x00000000; // type:object size:0x1C scope:local -@LOCAL@daAndsw2_c::execute(void)@l_action = .data:0x0000001C; // type:object size:0x18 scope:local +l_action$localstatic3$execute__10daAndsw2_cFv = .data:0x0000001C; // type:object size:0x18 scope:local l_daAndsw2_Method = .data:0x00000034; // type:object size:0x20 scope:global g_profile_ANDSW2 = .data:0x00000054; // type:object size:0x30 scope:global diff --git a/config/RZDE01_00/rels/d_a_b_zant/symbols.txt b/config/RZDE01_00/rels/d_a_b_zant/symbols.txt index a6678532ef..a655667748 100644 --- a/config/RZDE01_00/rels/d_a_b_zant/symbols.txt +++ b/config/RZDE01_00/rels/d_a_b_zant/symbols.txt @@ -72,7 +72,7 @@ action__10daB_ZANT_cFv = .text:0x0000D570; // type:function size:0x580 scope:glo mtx_set__10daB_ZANT_cFv = .text:0x0000DAF0; // type:function size:0x1CC scope:global cc_set__10daB_ZANT_cFv = .text:0x0000DCBC; // type:function size:0x258 scope:global cc_ice_set__10daB_ZANT_cFv = .text:0x0000DF14; // type:function size:0x4AC scope:global -daB_ZANT_c::dZantSph_c$110505__as__14d_a_b_zant_cppFRCQ210daB_ZANT_c31dZantSph_c$110505d_a_b_zant_cpp = .text:0x0000E3C0; // type:function size:0x1C scope:local +__as__Q210daB_ZANT_c31dZantSph_c$110525d_a_b_zant_cppFRQ210daB_ZANT_c31dZantSph_c$110525d_a_b_zant_cpp = .text:0x0000E3C0; // type:function size:0x1C scope:local execute__10daB_ZANT_cFv = .text:0x0000E3DC; // type:function size:0x100 scope:global daB_ZANT_Execute__FP10daB_ZANT_c = .text:0x0000E4DC; // type:function size:0x4 scope:global daB_ZANT_IsDelete__FP10daB_ZANT_c = .text:0x0000E4E0; // type:function size:0x8 scope:global diff --git a/config/RZDE01_00/rels/d_a_balloon_2D/symbols.txt b/config/RZDE01_00/rels/d_a_balloon_2D/symbols.txt index 2e768a009a..2cb82c3c65 100644 --- a/config/RZDE01_00/rels/d_a_balloon_2D/symbols.txt +++ b/config/RZDE01_00/rels/d_a_balloon_2D/symbols.txt @@ -52,7 +52,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global @96253 = .rodata:0x00000038; // type:object size:0x8 scope:local m_tex_size_x$94938 = .rodata:0x00000040; // type:object size:0x4 scope:local m_tex_size_y$94940 = .rodata:0x00000044; // type:object size:0x4 scope:local -@LOCAL@daBalloon2D_HIO_c::daBalloon2D_HIO_c(void)@aParam = .data:0x00000000; // type:object size:0xC4 scope:local +aParam$localstatic3$__ct__17daBalloon2D_HIO_cFv = .data:0x00000000; // type:object size:0xC4 scope:local lbl_159_data_C4 = .data:0x000000C4; // type:object size:0xA data:string l_arcName = .data:0x000000D0; // type:object size:0x4 scope:global data:4byte lbl_159_data_D4 = .data:0x000000D4; // type:object size:0x17 data:string diff --git a/config/RZDE01_00/rels/d_a_bg/splits.txt b/config/RZDE01_00/rels/d_a_bg/splits.txt index 4f72b312a4..9ec717f2f7 100644 --- a/config/RZDE01_00/rels/d_a_bg/splits.txt +++ b/config/RZDE01_00/rels/d_a_bg/splits.txt @@ -13,3 +13,4 @@ d/actor/d_a_bg.cpp: .text start:0x0000005C end:0x00001424 .rodata start:0x00000000 end:0x00000024 .data start:0x00000108 end:0x000001F0 + .bss start:0x00000000 end:0x00000020 diff --git a/config/RZDE01_00/rels/d_a_bg/symbols.txt b/config/RZDE01_00/rels/d_a_bg/symbols.txt index 1d45102db6..d2aea02369 100644 --- a/config/RZDE01_00/rels/d_a_bg/symbols.txt +++ b/config/RZDE01_00/rels/d_a_bg/symbols.txt @@ -24,11 +24,11 @@ _dtors = .dtors:0x00000000; // type:label scope:global @98226 = .rodata:0x00000014; // type:object size:0x4 scope:local @98230 = .rodata:0x00000018; // type:object size:0x8 scope:local align:8 data:double @98253 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float -lbl_3_data_0 = .data:0x00000000; // type:object size:0x42 -lbl_3_data_42 = .data:0x00000042; // type:object size:0x42 -lbl_3_data_84 = .data:0x00000084; // type:object size:0x42 -lbl_3_data_C6 = .data:0x000000C6; // type:object size:0x42 -@LOCAL@daBg_c::draw(void)@l_tevStrType = .data:0x00000108; // type:object size:0x18 scope:local +l_modelName$localstatic3$createHeap__6daBg_cFv = .data:0x00000000; // type:object size:0x42 scope:local +l_modelName2$localstatic4$createHeap__6daBg_cFv = .data:0x00000042; // type:object size:0x42 scope:local +l_btkName$localstatic5$createHeap__6daBg_cFv = .data:0x00000084; // type:object size:0x42 scope:local +l_brkName$localstatic6$createHeap__6daBg_cFv = .data:0x000000C6; // type:object size:0x42 scope:local +l_tevStrType$localstatic3$draw__6daBg_cFv = .data:0x00000108; // type:object size:0x18 scope:local l_daBg_Method = .data:0x00000120; // type:object size:0x20 scope:global g_profile_BG = .data:0x00000140; // type:object size:0x34 scope:global lbl_3_data_174 = .data:0x00000174; // type:object size:0xA data:string @@ -48,4 +48,4 @@ lbl_3_data_1E2 = .data:0x000001E2; // type:object size:0x3 data:string lbl_3_data_1E5 = .data:0x000001E5; // type:object size:0x3 data:string lbl_3_data_1E8 = .data:0x000001E8; // type:object size:0x3 data:string lbl_3_data_1EB = .data:0x000001EB; // type:object size:0x3 data:string -lbl_3_bss_0 = .bss:0x00000000; // type:object size:0x20 +arcName$3823 = .bss:0x00000000; // type:object size:0x20 scope:local diff --git a/config/RZDE01_00/rels/d_a_bullet/symbols.txt b/config/RZDE01_00/rels/d_a_bullet/symbols.txt index 536431cdfa..d9d7507039 100644 --- a/config/RZDE01_00/rels/d_a_bullet/symbols.txt +++ b/config/RZDE01_00/rels/d_a_bullet/symbols.txt @@ -11,7 +11,7 @@ Draw__10daBullet_cFv = .text:0x000004D0; // type:function size:0x68 scope:global createHeapCallBack__10daBullet_cFP10fopAc_ac_c = .text:0x00000538; // type:function size:0x4 scope:global getTypeFromParam__10daBullet_cFv = .text:0x0000053C; // type:function size:0x20 scope:global initialize__10daBullet_cFv = .text:0x0000055C; // type:function size:0x138 scope:global -fn_694 = .text:0x00000694; // type:function size:0xA8 scope:global +setProcess__10daBullet_cFM10daBullet_cFPCvPvPv_i = .text:0x00000694; // type:function size:0xA8 scope:global wait__10daBullet_cFPv = .text:0x0000073C; // type:function size:0x94 scope:global move__10daBullet_cFPv = .text:0x000007D0; // type:function size:0x8C scope:global daBullet_Create__FPv = .text:0x0000085C; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_coach_2D/symbols.txt b/config/RZDE01_00/rels/d_a_coach_2D/symbols.txt index 446a483986..0d961f6b4e 100644 --- a/config/RZDE01_00/rels/d_a_coach_2D/symbols.txt +++ b/config/RZDE01_00/rels/d_a_coach_2D/symbols.txt @@ -34,7 +34,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global @95642 = .rodata:0x00000018; // type:object size:0x4 scope:local @95645 = .rodata:0x00000020; // type:object size:0x8 scope:local align:8 data:double @95646 = .rodata:0x00000028; // type:object size:0x8 scope:local align:8 data:double -@LOCAL@daCoach2D_HIO_c::daCoach2D_HIO_c(void)@aParam = .data:0x00000000; // type:object size:0x58 scope:local +aParam$localstatic3$__ct__15daCoach2D_HIO_cFv = .data:0x00000000; // type:object size:0x58 scope:local lbl_161_data_58 = .data:0x00000058; // type:object size:0x8 data:string l_arcName = .data:0x00000060; // type:object size:0x4 scope:global data:4byte lbl_161_data_64 = .data:0x00000064; // type:object size:0x1F data:string diff --git a/config/RZDE01_00/rels/d_a_coach_fire/symbols.txt b/config/RZDE01_00/rels/d_a_coach_fire/symbols.txt index b390996521..eb5f0aee1c 100644 --- a/config/RZDE01_00/rels/d_a_coach_fire/symbols.txt +++ b/config/RZDE01_00/rels/d_a_coach_fire/symbols.txt @@ -16,7 +16,7 @@ M_attr__13daCoachFire_c = .rodata:0x00000000; // type:object size:0x10 scope:glo @95961 = .rodata:0x00000014; // type:object size:0x4 scope:local @95962 = .rodata:0x00000018; // type:object size:0x4 scope:local @95963 = .rodata:0x0000001C; // type:object size:0x4 scope:local -@LOCAL@daCoachFire_c::initCcSphere(void)@ccSphSrc = .rodata:0x00000020; // type:object size:0x40 scope:local +ccSphSrc$localstatic3$initCcSphere__13daCoachFire_cFv = .rodata:0x00000020; // type:object size:0x40 scope:local @95992 = .rodata:0x00000060; // type:object size:0x4 scope:local @95993 = .rodata:0x00000064; // type:object size:0x4 scope:local @95994 = .rodata:0x00000068; // type:object size:0x4 scope:local data:string diff --git a/config/RZDE01_00/rels/d_a_cow/symbols.txt b/config/RZDE01_00/rels/d_a_cow/symbols.txt index 0f9fb66eb9..782a4443a4 100644 --- a/config/RZDE01_00/rels/d_a_cow/symbols.txt +++ b/config/RZDE01_00/rels/d_a_cow/symbols.txt @@ -16,7 +16,7 @@ setRushVibration__7daCow_cFi = .text:0x0000081C; // type:function size:0x80 scop checkThrow__7daCow_cFv = .text:0x0000089C; // type:function size:0xD8 scope:global setBodyAngle__7daCow_cFs = .text:0x00000974; // type:function size:0xF0 scope:global setBodyAngle2__7daCow_cFs = .text:0x00000A64; // type:function size:0x140 scope:global -fn_ba4 = .text:0x00000BA4; // type:function size:0xA8 scope:global +setProcess__7daCow_cFM7daCow_cFPCvPv_vi = .text:0x00000BA4; // type:function size:0xA8 scope:global damage_check__7daCow_cFv = .text:0x00000C4C; // type:function size:0x2C0 scope:global setEnterCow20__7daCow_cFv = .text:0x00000F0C; // type:function size:0xE0 scope:global setEnterCow10__7daCow_cFv = .text:0x00000FEC; // type:function size:0xEC scope:global diff --git a/config/RZDE01_00/rels/d_a_dshutter/symbols.txt b/config/RZDE01_00/rels/d_a_dshutter/symbols.txt index 920f64e29a..2eb3d9cd5d 100644 --- a/config/RZDE01_00/rels/d_a_dshutter/symbols.txt +++ b/config/RZDE01_00/rels/d_a_dshutter/symbols.txt @@ -21,7 +21,7 @@ daDsh_IsDelete__FP7daDsh_c = .text:0x00000708; // type:function size:0x8 scope:g daDsh_Delete__FP7daDsh_c = .text:0x00000710; // type:function size:0x48 scope:global daDsh_Create__FP10fopAc_ac_c = .text:0x00000758; // type:function size:0x170 scope:global __sinit_d_a_dshutter_cpp = .text:0x000008C8; // type:function size:0x15C scope:local -fn_a24 = .text:0x00000A24; // type:function size:0x34 scope:global +__ct__Q27daDsh_c8action_cFM7daDsh_cFPCvPv_iM7daDsh_cFPCvPv_i = .text:0x00000A24; // type:function size:0x34 scope:global _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global l_bmd = .rodata:0x00000000; // type:object size:0xC scope:global @@ -36,7 +36,7 @@ lbl_10_data_7 = .data:0x00000007; // type:object size:0xA data:string lbl_10_data_11 = .data:0x00000011; // type:object size:0xA data:string l_arcName = .data:0x0000001C; // type:object size:0xC scope:global lbl_10_data_28 = .data:0x00000028; // type:object size:0x4 -@LOCAL@daDsh_c::create(void)@l_resName = .data:0x0000002C; // type:object size:0x8 scope:local data:4byte +l_resName$localstatic3$create__7daDsh_cFv = .data:0x0000002C; // type:object size:0x8 scope:local data:4byte l_daDsh_Method = .data:0x00000034; // type:object size:0x20 scope:global g_profile_DSHUTTER = .data:0x00000054; // type:object size:0x34 scope:global __vt__7daDsh_c = .data:0x00000088; // type:object size:0x28 scope:global diff --git a/config/RZDE01_00/rels/d_a_e_bs/symbols.txt b/config/RZDE01_00/rels/d_a_e_bs/symbols.txt index 95d2c80bc6..a18057810f 100644 --- a/config/RZDE01_00/rels/d_a_e_bs/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_bs/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global setMidnaBindEffect__FP13fopEn_enemy_cP15Z2CreatureEnemyP4cXyzP4cXyz = .text:0x000000CC; // type:function size:0x32C scope:global -fn_3f8 = .text:0x000003F8; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x000003F8; // type:function size:0x34 scope:global setBaseTRMtx__8J3DModelFPA4_f = .text:0x0000042C; // type:function size:0x10 scope:global get__14mDoMtx_stack_cFv = .text:0x0000043C; // type:function size:0xC scope:global YrotM__14mDoMtx_stack_cFs = .text:0x00000448; // type:function size:0x10 scope:global diff --git a/config/RZDE01_00/rels/d_a_e_gm/symbols.txt b/config/RZDE01_00/rels/d_a_e_gm/symbols.txt index 716ec0bfcc..4aae4119f0 100644 --- a/config/RZDE01_00/rels/d_a_e_gm/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_gm/symbols.txt @@ -5,7 +5,7 @@ __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:gl __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global absXZ__4cXyzCFRC3Vec = .text:0x000000CC; // type:function size:0x74 scope:global __ct__12daE_GM_HIO_cFv = .text:0x00000140; // type:function size:0x5C scope:global -fn_19c = .text:0x0000019C; // type:function size:0xA4 scope:global +setAction__8daE_GM_cFM8daE_GM_cFPCvPv_v = .text:0x0000019C; // type:function size:0xA4 scope:global action__8daE_GM_cFv = .text:0x00000240; // type:function size:0x144 scope:global s_obj_sub2__FPvPv = .text:0x00000384; // type:function size:0xA4 scope:global egg_wait__8daE_GM_cFv = .text:0x00000428; // type:function size:0x554 scope:global diff --git a/config/RZDE01_00/rels/d_a_e_gob/symbols.txt b/config/RZDE01_00/rels/d_a_e_gob/symbols.txt index 5cbc7969ab..4148076d3d 100644 --- a/config/RZDE01_00/rels/d_a_e_gob/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_gob/symbols.txt @@ -21,7 +21,7 @@ __sinit_d_a_e_gob_cpp = .text:0x00005FDC; // type:function size:0x74 scope:local setBaseTRMtx__8J3DModelFPA4_f = .text:0x00006050; // type:function size:0x10 scope:global getModel__16mDoExt_McaMorfSOFv = .text:0x00006060; // type:function size:0x8 scope:global checkFrame__13mDoExt_morf_cFf = .text:0x00006068; // type:function size:0x8 scope:global -fn_6070 = .text:0x00006070; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x00006070; // type:function size:0x34 scope:global daPy_getPlayerActorClass__Fv = .text:0x000060A4; // type:function size:0x10 scope:global checkEquipHeavyBoots__9daPy_py_cCFv = .text:0x000060B4; // type:function size:0xC scope:global get__14mDoMtx_stack_cFv = .text:0x000060C0; // type:function size:0xC scope:global diff --git a/config/RZDE01_00/rels/d_a_e_oct_bg/symbols.txt b/config/RZDE01_00/rels/d_a_e_oct_bg/symbols.txt index 8ce14a9940..3d0981e82d 100644 --- a/config/RZDE01_00/rels/d_a_e_oct_bg/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_oct_bg/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global __ct__15daE_OctBg_HIO_cFv = .text:0x000000CC; // type:function size:0x60 scope:global -fn_12c = .text:0x0000012C; // type:function size:0xA4 scope:global +setAction__11daE_OctBg_cFM11daE_OctBg_cFPCvPv_v = .text:0x0000012C; // type:function size:0xA4 scope:global setSparkEffect__11daE_OctBg_cFv = .text:0x000001D0; // type:function size:0x104 scope:global checkExplode__11daE_OctBg_cFv = .text:0x000002D4; // type:function size:0xC4 scope:global action__11daE_OctBg_cFv = .text:0x00000398; // type:function size:0x328 scope:global diff --git a/config/RZDE01_00/rels/d_a_e_rdy/symbols.txt b/config/RZDE01_00/rels/d_a_e_rdy/symbols.txt index 0593029015..8f3d2bfaa9 100644 --- a/config/RZDE01_00/rels/d_a_e_rdy/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_rdy/symbols.txt @@ -19,8 +19,8 @@ dComIfGp_getCamera__Fi = .text:0x00000580; // type:function size:0x18 scope:glob dComIfGp_checkPlayerStatus0__FiUl = .text:0x00000598; // type:function size:0x1C scope:global dComIfG_Ccsp__Fv = .text:0x000005B4; // type:function size:0x10 scope:global dComIfGp_getStartStageName__Fv = .text:0x000005C4; // type:function size:0x10 scope:global -fn_5d4 = .text:0x000005D4; // type:function size:0x34 scope:global -fn_608 = .text:0x00000608; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x000005D4; // type:function size:0x34 scope:global +__ami__4cXyzFRC3Vec = .text:0x00000608; // type:function size:0x34 scope:global setBaseTRMtx__8J3DModelFPA4_f = .text:0x0000063C; // type:function size:0x10 scope:global get__14mDoMtx_stack_cFv = .text:0x0000064C; // type:function size:0xC scope:global XrotM__14mDoMtx_stack_cFs = .text:0x00000658; // type:function size:0x10 scope:global diff --git a/config/RZDE01_00/rels/d_a_e_sf/symbols.txt b/config/RZDE01_00/rels/d_a_e_sf/symbols.txt index e4a3661beb..da2d5c08f7 100644 --- a/config/RZDE01_00/rels/d_a_e_sf/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_sf/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global changeOriginalDemo__9daPy_py_cFv = .text:0x000000CC; // type:function size:0x14 scope:global -fn_e0 = .text:0x000000E0; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x000000E0; // type:function size:0x34 scope:global setBaseTRMtx__8J3DModelFPA4_f = .text:0x00000114; // type:function size:0x10 scope:global get__14mDoMtx_stack_cFv = .text:0x00000124; // type:function size:0xC scope:global XrotM__14mDoMtx_stack_cFs = .text:0x00000130; // type:function size:0x10 scope:global diff --git a/config/RZDE01_00/rels/d_a_e_sw/symbols.txt b/config/RZDE01_00/rels/d_a_e_sw/symbols.txt index 734f309a4d..c1aa7e18e2 100644 --- a/config/RZDE01_00/rels/d_a_e_sw/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_sw/symbols.txt @@ -51,7 +51,7 @@ CreateHeap__8daE_SW_cFv = .text:0x000042E0; // type:function size:0xF4 scope:glo useHeapInit__FP10fopAc_ac_c = .text:0x000043D4; // type:function size:0x4 scope:global create__8daE_SW_cFv = .text:0x000043D8; // type:function size:0x4EC scope:global daE_SW_Create__FP8daE_SW_c = .text:0x000048C4; // type:function size:0x4 scope:global -fn_48c8 = .text:0x000048C8; // type:function size:0xA4 scope:global +d_setAction__8daE_SW_cFM8daE_SW_cFPCvPv_v = .text:0x000048C8; // type:function size:0xA4 scope:global d_checkFall__8daE_SW_cFv = .text:0x0000496C; // type:function size:0x1F4 scope:global d_damage_check__8daE_SW_cFv = .text:0x00004B60; // type:function size:0x37C scope:global d_action__8daE_SW_cFv = .text:0x00004EDC; // type:function size:0x100 scope:global diff --git a/config/RZDE01_00/rels/d_a_e_wb/symbols.txt b/config/RZDE01_00/rels/d_a_e_wb/symbols.txt index 9426c7fc57..1ee331fbed 100644 --- a/config/RZDE01_00/rels/d_a_e_wb/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_wb/symbols.txt @@ -61,7 +61,7 @@ __sinit_d_a_e_wb_cpp = .text:0x0000F2EC; // type:function size:0x100 scope:local __arraydtor$112235 = .text:0x0000F3EC; // type:function size:0x1C scope:local __arraydtor$112979 = .text:0x0000F408; // type:function size:0x1C scope:local setBaseTRMtx__8J3DModelFPA4_f = .text:0x0000F424; // type:function size:0x10 scope:global -fn_f434 = .text:0x0000F434; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x0000F434; // type:function size:0x34 scope:global cMtx_YrotS__FPA4_fs = .text:0x0000F468; // type:function size:0x8 scope:global cM_ssin__Fs = .text:0x0000F470; // type:function size:0x14 scope:global cM_scos__Fs = .text:0x0000F484; // type:function size:0x18 scope:global diff --git a/config/RZDE01_00/rels/d_a_e_yr/symbols.txt b/config/RZDE01_00/rels/d_a_e_yr/symbols.txt index 6dcec414c4..edc6047be7 100644 --- a/config/RZDE01_00/rels/d_a_e_yr/symbols.txt +++ b/config/RZDE01_00/rels/d_a_e_yr/symbols.txt @@ -17,7 +17,7 @@ fopAcM_GetRoomNo__FPC10fopAc_ac_c = .text:0x0000055C; // type:function size:0xC fopAcM_OnStatus__FP10fopAc_ac_cUl = .text:0x00000568; // type:function size:0x10 scope:global fopAcM_OffStatus__FP10fopAc_ac_cUl = .text:0x00000578; // type:function size:0x10 scope:global fopAcM_SearchByID__FUi = .text:0x00000588; // type:function size:0x30 scope:global -fn_5b8 = .text:0x000005B8; // type:function size:0x8 scope:global +__opUl__10JAISoundIDCFv = .text:0x000005B8; // type:function size:0x8 scope:global __ct__10JAISoundIDFRC10JAISoundID = .text:0x000005C0; // type:function size:0xC scope:global nodeCallBack__FP8J3DJointi = .text:0x000005CC; // type:function size:0x328 scope:global anm_init__FP10e_yr_classifUcf = .text:0x000008F4; // type:function size:0xB8 scope:global diff --git a/config/RZDE01_00/rels/d_a_grass/symbols.txt b/config/RZDE01_00/rels/d_a_grass/symbols.txt index 50513f3a5a..1b13c66f1a 100644 --- a/config/RZDE01_00/rels/d_a_grass/symbols.txt +++ b/config/RZDE01_00/rels/d_a_grass/symbols.txt @@ -185,7 +185,7 @@ l_mat2DL = .data:0x000044A0; // type:object size:0x99 scope:global l_mat2Light4DL = .data:0x00004540; // type:object size:0x99 scope:global @101399 = .data:0x000045DC; // type:object size:0xC scope:local data:4byte @101527 = .data:0x000045E8; // type:object size:0x20 scope:local -@LOCAL@daGrass_c::create(void)@l_offsetData@5 = .data:0x00004608; // type:object size:0x40 scope:local +l_offsetData$localstatic15$create__9daGrass_cFv = .data:0x00004608; // type:object size:0x40 scope:local daGrass_METHODS = .data:0x00004648; // type:object size:0x20 scope:global g_profile_GRASS = .data:0x00004668; // type:object size:0x30 scope:global __vt__16dFlower_packet_c = .data:0x00004698; // type:object size:0x14 scope:global @@ -273,15 +273,15 @@ ang$95213 = .bss:0x00000BE8; // type:object size:0x6 scope:local @95828 = .bss:0x00000EB4; // type:object size:0xC scope:local @95829 = .bss:0x00000EC0; // type:object size:0xC scope:local @95830 = .bss:0x00000ECC; // type:object size:0xC scope:local -lbl_74_bss_ED8 = .bss:0x00000ED8; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType0 = .bss:0x00000EDA; // type:object size:0x2A scope:local -lbl_74_bss_F04 = .bss:0x00000F04; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType1@0 = .bss:0x00000F06; // type:object size:0x7E scope:local -lbl_74_bss_F84 = .bss:0x00000F84; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType2@1 = .bss:0x00000F86; // type:object size:0x12 scope:local -lbl_74_bss_F98 = .bss:0x00000F98; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType3@2 = .bss:0x00000F9A; // type:object size:0x2A scope:local -lbl_74_bss_FC4 = .bss:0x00000FC4; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType4@3 = .bss:0x00000FC6; // type:object size:0x66 scope:local -lbl_74_bss_102C = .bss:0x0000102C; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType5@4 = .bss:0x0000102E; // type:object size:0x2A scope:local +init$localstatic4$create__9daGrass_cFv = .bss:0x00000ED8; // type:object size:0x1 data:byte +l_setType0$localstatic3$create__9daGrass_cFv = .bss:0x00000EDA; // type:object size:0x2A scope:local +init$localstatic6$create__9daGrass_cFv = .bss:0x00000F04; // type:object size:0x1 data:byte +l_setType1$localstatic5$create__9daGrass_cFv = .bss:0x00000F06; // type:object size:0x7E scope:local +init$localstatic8$create__9daGrass_cFv = .bss:0x00000F84; // type:object size:0x1 data:byte +l_setType2$localstatic7$create__9daGrass_cFv = .bss:0x00000F86; // type:object size:0x12 scope:local +init$localstatic10$create__9daGrass_cFv = .bss:0x00000F98; // type:object size:0x1 data:byte +l_setType3$localstatic9$create__9daGrass_cFv = .bss:0x00000F9A; // type:object size:0x2A scope:local +init$localstatic12$create__9daGrass_cFv = .bss:0x00000FC4; // type:object size:0x1 data:byte +l_setType4$localstatic11$create__9daGrass_cFv = .bss:0x00000FC6; // type:object size:0x66 scope:local +init$localstatic14$create__9daGrass_cFv = .bss:0x0000102C; // type:object size:0x1 data:byte +l_setType5$localstatic13$create__9daGrass_cFv = .bss:0x0000102E; // type:object size:0x2A scope:local diff --git a/config/RZDE01_00/rels/d_a_mg_rod/symbols.txt b/config/RZDE01_00/rels/d_a_mg_rod/symbols.txt index 5ce7d96bcb..b66f50862f 100644 --- a/config/RZDE01_00/rels/d_a_mg_rod/symbols.txt +++ b/config/RZDE01_00/rels/d_a_mg_rod/symbols.txt @@ -80,7 +80,7 @@ fopAcM_searchPlayerDistanceXZ__FPC10fopAc_ac_c = .text:0x00011E5C; // type:funct fopAcM_SearchByName__Fs = .text:0x00011E6C; // type:function size:0x30 scope:global fopAcM_GetID__FPCv = .text:0x00011E9C; // type:function size:0x18 scope:global fopAcM_GetRoomNo__FPC10fopAc_ac_c = .text:0x00011EB4; // type:function size:0xC scope:global -fn_11ec0 = .text:0x00011EC0; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x00011EC0; // type:function size:0x34 scope:global zero__4cXyzFv = .text:0x00011EF4; // type:function size:0x14 scope:global getFishingRodAngleY__9daPy_py_cCFv = .text:0x00011F08; // type:function size:0x14 scope:global onFishingRodCastingEnd__9daPy_py_cFv = .text:0x00011F1C; // type:function size:0x10 scope:global diff --git a/config/RZDE01_00/rels/d_a_mirror/symbols.txt b/config/RZDE01_00/rels/d_a_mirror/symbols.txt index 8bed81df89..bdff279d82 100644 --- a/config/RZDE01_00/rels/d_a_mirror/symbols.txt +++ b/config/RZDE01_00/rels/d_a_mirror/symbols.txt @@ -40,8 +40,8 @@ lbl_279_rodata_8 = .rodata:0x00000008; // type:object size:0xC @94558 = .rodata:0x00000044; // type:object size:0x4 scope:local @94562 = .rodata:0x00000048; // type:object size:0x8 scope:local @92849 = .rodata:0x00000050; // type:object size:0x30 scope:local -@LOCAL@daMirror_c::create(void)@l_mirrorQuad = .rodata:0x00000080; // type:object size:0x30 scope:local -@LOCAL@daMirror_c::create(void)@l_mirrorLook@0 = .rodata:0x000000B0; // type:object size:0xC scope:local +l_mirrorQuad$localstatic3$create__10daMirror_cFv = .rodata:0x00000080; // type:object size:0x30 scope:local +l_mirrorLook$localstatic4$create__10daMirror_cFv = .rodata:0x000000B0; // type:object size:0xC scope:local @94669 = .rodata:0x000000BC; // type:object size:0x4 scope:local @94702 = .rodata:0x000000C0; // type:object size:0x4 scope:local align:4 data:float lbl_279_data_0 = .data:0x00000000; // type:object size:0x7 data:string diff --git a/config/RZDE01_00/rels/d_a_myna/symbols.txt b/config/RZDE01_00/rels/d_a_myna/symbols.txt index 235149290e..65fdf61ede 100644 --- a/config/RZDE01_00/rels/d_a_myna/symbols.txt +++ b/config/RZDE01_00/rels/d_a_myna/symbols.txt @@ -144,7 +144,7 @@ lbl_281_data_2F7 = .data:0x000002F7; // type:object size:0x10 data:string l_bckFileNameTBL = .data:0x00000308; // type:object size:0x3C scope:global data:4byte lbl_281_data_344 = .data:0x00000344; // type:object size:0x9 data:string l_btpFileNameTBL = .data:0x00000350; // type:object size:0x4 scope:global data:4byte -@LOCAL@daMyna_HIO_c::daMyna_HIO_c(void)@aParam = .data:0x00000354; // type:object size:0x30 scope:local +aParam$localstatic3$__ct__12daMyna_HIO_cFv = .data:0x00000354; // type:object size:0x30 scope:local mBaseMotionTBL__8daMyna_c = .data:0x00000384; // type:object size:0x54 scope:global lbl_281_data_3D8 = .data:0x000003D8; // type:object size:0x14 @101171 = .data:0x000003EC; // type:object size:0x40 scope:local diff --git a/config/RZDE01_00/rels/d_a_ni/symbols.txt b/config/RZDE01_00/rels/d_a_ni/symbols.txt index a26aff02e6..4f9520b2e8 100644 --- a/config/RZDE01_00/rels/d_a_ni/symbols.txt +++ b/config/RZDE01_00/rels/d_a_ni/symbols.txt @@ -53,7 +53,7 @@ fopAcM_searchPlayerDistance__FPC10fopAc_ac_c = .text:0x00004FD8; // type:functio fopAcM_searchPlayerAngleY__FPC10fopAc_ac_c = .text:0x00004FE8; // type:function size:0x10 scope:global fopAcM_OnCarryType__FP10fopAc_ac_c12fopAcM_CARRY = .text:0x00004FF8; // type:function size:0x10 scope:global fopAcM_GetRoomNo__FPC10fopAc_ac_c = .text:0x00005008; // type:function size:0xC scope:global -fn_5014 = .text:0x00005014; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x00005014; // type:function size:0x34 scope:global cLib_offBit
    __FRUlUl_v = .text:0x00005048; // type:function size:0x10 scope:global cLib_onBit
      __FRUlUl_v = .text:0x00005058; // type:function size:0x10 scope:global ChkGroundHit__9dBgS_AcchCFv = .text:0x00005068; // type:function size:0xC scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_aru/symbols.txt b/config/RZDE01_00/rels/d_a_npc_aru/symbols.txt index 16e16d2d8a..9ebf8550ec 100644 --- a/config/RZDE01_00/rels/d_a_npc_aru/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_aru/symbols.txt @@ -31,7 +31,7 @@ setAttnPos__11daNpc_Aru_cFv = .text:0x00001A24; // type:function size:0x2DC scop setCollision__11daNpc_Aru_cFv = .text:0x00001D00; // type:function size:0x160 scope:global drawDbgInfo__11daNpc_Aru_cFv = .text:0x00001E60; // type:function size:0x8 scope:global selectAction__11daNpc_Aru_cFv = .text:0x00001E68; // type:function size:0x1E0 scope:global -fn_2048 = .text:0x00002048; // type:function size:0xA8 scope:global +setAction__11daNpc_Aru_cFM11daNpc_Aru_cFPCvPvPv_i = .text:0x00002048; // type:function size:0xA8 scope:global chkBullRunningStage__11daNpc_Aru_cFv = .text:0x000020F0; // type:function size:0x78 scope:global chkSkipFenceStage__11daNpc_Aru_cFv = .text:0x00002168; // type:function size:0x78 scope:global srchActorDirection__11daNpc_Aru_cFP10fopAc_ac_c = .text:0x000021E0; // type:function size:0xD0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_ash/symbols.txt b/config/RZDE01_00/rels/d_a_npc_ash/symbols.txt index 4eebd54bba..bd17ad43d9 100644 --- a/config/RZDE01_00/rels/d_a_npc_ash/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_ash/symbols.txt @@ -14,7 +14,7 @@ ctrlJointCallBack__10daNpcAsh_cFP8J3DJointi = .text:0x00000FF4; // type:function setExpressionAnm__10daNpcAsh_cFib = .text:0x0000103C; // type:function size:0x220 scope:global setExpressionBtp__10daNpcAsh_cFi = .text:0x0000125C; // type:function size:0xD8 scope:global setMotionAnm__10daNpcAsh_cFif = .text:0x00001334; // type:function size:0x144 scope:global -fn_1478 = .text:0x00001478; // type:function size:0xA8 scope:global +setAction__10daNpcAsh_cFM10daNpcAsh_cFPCvPvPv_b = .text:0x00001478; // type:function size:0xA8 scope:global isSneaking__10daNpcAsh_cFv = .text:0x00001520; // type:function size:0x6C scope:global wait_type0__10daNpcAsh_cFPv = .text:0x0000158C; // type:function size:0x534 scope:global setExpression__10daNpcAsh_cFif = .text:0x00001AC0; // type:function size:0x2C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_ashB/symbols.txt b/config/RZDE01_00/rels/d_a_npc_ashB/symbols.txt index b54d92617a..f813c7ef7d 100644 --- a/config/RZDE01_00/rels/d_a_npc_ashB/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_ashB/symbols.txt @@ -14,7 +14,7 @@ ctrlJointCallBack__11daNpcAshB_cFP8J3DJointi = .text:0x00000C04; // type:functio setExpressionAnm__11daNpcAshB_cFib = .text:0x00000C4C; // type:function size:0x204 scope:global setExpressionBtp__11daNpcAshB_cFi = .text:0x00000E50; // type:function size:0xD8 scope:global setMotionAnm__11daNpcAshB_cFif = .text:0x00000F28; // type:function size:0x1B8 scope:global -fn_10e0 = .text:0x000010E0; // type:function size:0xA8 scope:global +setAction__11daNpcAshB_cFM11daNpcAshB_cFPCvPvPv_b = .text:0x000010E0; // type:function size:0xA8 scope:global wait__11daNpcAshB_cFPv = .text:0x00001188; // type:function size:0x4D4 scope:global setExpression__11daNpcAshB_cFif = .text:0x0000165C; // type:function size:0x68 scope:global setMotion__11daNpcAshB_cFifi = .text:0x000016C4; // type:function size:0xC0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_bans/symbols.txt b/config/RZDE01_00/rels/d_a_npc_bans/symbols.txt index a390614fcf..6cd9b020a5 100644 --- a/config/RZDE01_00/rels/d_a_npc_bans/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_bans/symbols.txt @@ -29,7 +29,7 @@ drawOtherMdl__12daNpc_Bans_cFv = .text:0x00001F68; // type:function size:0x144 s setScoopAnm__12daNpc_Bans_cFiif = .text:0x000020AC; // type:function size:0xC4 scope:global afterSetMotionAnm__12daNpc_Bans_cFiifi = .text:0x00002170; // type:function size:0x18 scope:global selectAction__12daNpc_Bans_cFv = .text:0x00002188; // type:function size:0x70 scope:global -fn_21f8 = .text:0x000021F8; // type:function size:0xA8 scope:global +setAction__12daNpc_Bans_cFM12daNpc_Bans_cFPCvPvPv_i = .text:0x000021F8; // type:function size:0xA8 scope:global checkPlayerIn2ndFloorOfBombShop__12daNpc_Bans_cFv = .text:0x000022A0; // type:function size:0xAC scope:global orderAngerEvt__12daNpc_Bans_cFv = .text:0x0000234C; // type:function size:0xEC scope:global getKMsgTagP__12daNpc_Bans_cFv = .text:0x00002438; // type:function size:0xA0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_besu/symbols.txt b/config/RZDE01_00/rels/d_a_npc_besu/symbols.txt index 7c89eac23e..4540db34ad 100644 --- a/config/RZDE01_00/rels/d_a_npc_besu/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_besu/symbols.txt @@ -35,7 +35,7 @@ changeBck__12daNpc_Besu_cFPiPi = .text:0x00002720; // type:function size:0x9C sc changeBtp__12daNpc_Besu_cFPiPi = .text:0x000027BC; // type:function size:0x8C scope:global changeBtk__12daNpc_Besu_cFPiPi = .text:0x00002848; // type:function size:0x2C scope:global selectAction__12daNpc_Besu_cFv = .text:0x00002874; // type:function size:0x14C scope:global -fn_29c0 = .text:0x000029C0; // type:function size:0xA8 scope:global +setAction__12daNpc_Besu_cFM12daNpc_Besu_cFPCvPvPv_i = .text:0x000029C0; // type:function size:0xA8 scope:global mop__12daNpc_Besu_cFii = .text:0x00002A68; // type:function size:0xFC scope:global cutConversationAboutSaru__12daNpc_Besu_cFi = .text:0x00002B64; // type:function size:0x128 scope:global cutConversationAboutPachinko__12daNpc_Besu_cFi = .text:0x00002C8C; // type:function size:0x398 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_blue_ns/symbols.txt b/config/RZDE01_00/rels/d_a_npc_blue_ns/symbols.txt index be7ecfeda0..f0156dd636 100644 --- a/config/RZDE01_00/rels/d_a_npc_blue_ns/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_blue_ns/symbols.txt @@ -31,7 +31,7 @@ setMotion__13daNpcBlueNS_cFifi = .text:0x000016F8; // type:function size:0x48 sc drawDbgInfo__13daNpcBlueNS_cFv = .text:0x00001740; // type:function size:0x8 scope:global reset__13daNpcBlueNS_cFv = .text:0x00001748; // type:function size:0x16C scope:global playMotion__13daNpcBlueNS_cFv = .text:0x000018B4; // type:function size:0x1EC scope:global -fn_1aa0 = .text:0x00001AA0; // type:function size:0xA8 scope:global +setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFPCvPvi_i = .text:0x00001AA0; // type:function size:0xA8 scope:global setLookMode__13daNpcBlueNS_cFi = .text:0x00001B48; // type:function size:0x24 scope:global lookat__13daNpcBlueNS_cFv = .text:0x00001B6C; // type:function size:0x228 scope:global step__13daNpcBlueNS_cFsi = .text:0x00001D94; // type:function size:0xD8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_bou/symbols.txt b/config/RZDE01_00/rels/d_a_npc_bou/symbols.txt index 957a0d845e..c44dfcad94 100644 --- a/config/RZDE01_00/rels/d_a_npc_bou/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_bou/symbols.txt @@ -29,7 +29,7 @@ setCollision__11daNpc_Bou_cFv = .text:0x000018C8; // type:function size:0x160 sc drawDbgInfo__11daNpc_Bou_cFv = .text:0x00001A28; // type:function size:0x8 scope:global changeAnm__11daNpc_Bou_cFPiPi = .text:0x00001A30; // type:function size:0x4C scope:global selectAction__11daNpc_Bou_cFv = .text:0x00001A7C; // type:function size:0x70 scope:global -fn_1aec = .text:0x00001AEC; // type:function size:0xA8 scope:global +setAction__11daNpc_Bou_cFM11daNpc_Bou_cFPCvPvPv_i = .text:0x00001AEC; // type:function size:0xA8 scope:global cutWildGoat__11daNpc_Bou_cFi = .text:0x00001B94; // type:function size:0x368 scope:global cutWildGoatSuccess__11daNpc_Bou_cFi = .text:0x00001EFC; // type:function size:0x1B4 scope:global cutWildGoatFailure__11daNpc_Bou_cFi = .text:0x000020B0; // type:function size:0x1D0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_chat/symbols.txt b/config/RZDE01_00/rels/d_a_npc_chat/symbols.txt index 620523453f..59887e13de 100644 --- a/config/RZDE01_00/rels/d_a_npc_chat/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_chat/symbols.txt @@ -40,7 +40,7 @@ getLookPlayerCheck__11daNpcChat_cFv = .text:0x000029DC; // type:function size:0x reset__11daNpcChat_cFv = .text:0x00002A08; // type:function size:0x1AC scope:global playMotion__11daNpcChat_cFv = .text:0x00002BB4; // type:function size:0x1230 scope:global playMotionAnmLoop__11daNpcChat_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x00003DE4; // type:function size:0x158 scope:global -fn_3f3c = .text:0x00003F3C; // type:function size:0xA8 scope:global +setAction__11daNpcChat_cFM11daNpcChat_cFPCvPvPv_b = .text:0x00003F3C; // type:function size:0xA8 scope:global step__11daNpcChat_cFsi = .text:0x00003FE4; // type:function size:0xD8 scope:global setTalkMember__11daNpcChat_cFP11daNpcChat_c = .text:0x000040BC; // type:function size:0x34 scope:global wait__11daNpcChat_cFPv = .text:0x000040F0; // type:function size:0x424 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_chin/symbols.txt b/config/RZDE01_00/rels/d_a_npc_chin/symbols.txt index 82a4bef5ca..03939426fd 100644 --- a/config/RZDE01_00/rels/d_a_npc_chin/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_chin/symbols.txt @@ -28,7 +28,7 @@ drawDbgInfo__11daNpcChin_cFv = .text:0x0000195C; // type:function size:0x8 scope reset__11daNpcChin_cFv = .text:0x00001964; // type:function size:0xFC scope:global playExpression__11daNpcChin_cFv = .text:0x00001A60; // type:function size:0x318 scope:global playMotion__11daNpcChin_cFv = .text:0x00001D78; // type:function size:0x508 scope:global -fn_2280 = .text:0x00002280; // type:function size:0xA8 scope:global +setAction__11daNpcChin_cFM11daNpcChin_cFPCvPvPv_b = .text:0x00002280; // type:function size:0xA8 scope:global setLookMode__11daNpcChin_cFi = .text:0x00002328; // type:function size:0x24 scope:global lookat__11daNpcChin_cFv = .text:0x0000234C; // type:function size:0x228 scope:global step__11daNpcChin_cFsii = .text:0x00002574; // type:function size:0x178 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_clerka/symbols.txt b/config/RZDE01_00/rels/d_a_npc_clerka/symbols.txt index cda04d9cc5..8413b15830 100644 --- a/config/RZDE01_00/rels/d_a_npc_clerka/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_clerka/symbols.txt @@ -26,7 +26,7 @@ setCollision__14daNpc_clerkA_cFv = .text:0x00001484; // type:function size:0x144 drawDbgInfo__14daNpc_clerkA_cFv = .text:0x000015C8; // type:function size:0x8 scope:global drawOtherMdl__14daNpc_clerkA_cFv = .text:0x000015D0; // type:function size:0x64 scope:global selectAction__14daNpc_clerkA_cFv = .text:0x00001634; // type:function size:0x70 scope:global -fn_16a4 = .text:0x000016A4; // type:function size:0xA8 scope:global +setAction__14daNpc_clerkA_cFM14daNpc_clerkA_cFPCvPvPv_i = .text:0x000016A4; // type:function size:0xA8 scope:global wait__14daNpc_clerkA_cFPv = .text:0x0000174C; // type:function size:0x1C4 scope:global tend__14daNpc_clerkA_cFPv = .text:0x00001910; // type:function size:0x1D4 scope:global talk__14daNpc_clerkA_cFPv = .text:0x00001AE4; // type:function size:0x188 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_clerkb/symbols.txt b/config/RZDE01_00/rels/d_a_npc_clerkb/symbols.txt index 7149980360..bbb6d9a979 100644 --- a/config/RZDE01_00/rels/d_a_npc_clerkb/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_clerkb/symbols.txt @@ -29,7 +29,7 @@ drawDbgInfo__14daNpc_clerkB_cFv = .text:0x00001AE8; // type:function size:0x8 sc drawOtherMdl__14daNpc_clerkB_cFv = .text:0x00001AF0; // type:function size:0x64 scope:global drawGhost__14daNpc_clerkB_cFv = .text:0x00001B54; // type:function size:0x88 scope:global selectAction__14daNpc_clerkB_cFv = .text:0x00001BDC; // type:function size:0x70 scope:global -fn_1c4c = .text:0x00001C4C; // type:function size:0xA8 scope:global +setAction__14daNpc_clerkB_cFM14daNpc_clerkB_cFPCvPvPv_i = .text:0x00001C4C; // type:function size:0xA8 scope:global setSe__14daNpc_clerkB_cFv = .text:0x00001CF4; // type:function size:0xAC scope:global wait__14daNpc_clerkB_cFPv = .text:0x00001DA0; // type:function size:0x1C4 scope:global tend__14daNpc_clerkB_cFPv = .text:0x00001F64; // type:function size:0x1E8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_clerkt/symbols.txt b/config/RZDE01_00/rels/d_a_npc_clerkt/symbols.txt index d945d05b7f..473de2dbf8 100644 --- a/config/RZDE01_00/rels/d_a_npc_clerkt/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_clerkt/symbols.txt @@ -18,7 +18,7 @@ action__13daNpcClerkT_cFv = .text:0x00000EA4; // type:function size:0xA4 scope:g drawDbgInfo__13daNpcClerkT_cFv = .text:0x00000F48; // type:function size:0x8 scope:global drawOtherMdl__13daNpcClerkT_cFv = .text:0x00000F50; // type:function size:0x64 scope:global selectAction__13daNpcClerkT_cFv = .text:0x00000FB4; // type:function size:0x70 scope:global -fn_1024 = .text:0x00001024; // type:function size:0xA8 scope:global +setAction__13daNpcClerkT_cFM13daNpcClerkT_cFPCvPvPv_i = .text:0x00001024; // type:function size:0xA8 scope:global wait__13daNpcClerkT_cFPv = .text:0x000010CC; // type:function size:0x1C4 scope:global tend__13daNpcClerkT_cFPv = .text:0x00001290; // type:function size:0xE4 scope:global talk__13daNpcClerkT_cFPv = .text:0x00001374; // type:function size:0x188 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_coach/symbols.txt b/config/RZDE01_00/rels/d_a_npc_coach/symbols.txt index 03af36703c..e666fbe0f8 100644 --- a/config/RZDE01_00/rels/d_a_npc_coach/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_coach/symbols.txt @@ -55,14 +55,14 @@ _dtors = .dtors:0x00000000; // type:label scope:global M_attr__12daNpcCoach_c = .rodata:0x00000000; // type:object size:0xA0 scope:global @107381 = .rodata:0x000000A0; // type:object size:0x4 scope:local align:4 data:float @107527 = .rodata:0x000000A4; // type:object size:0x4 scope:local -@LOCAL@daNpcCoach_c::initCollision(void)@ccCylSrc = .rodata:0x000000A8; // type:object size:0x44 scope:local -lbl_ec = .rodata:0x000000EC; // type:object size:0x40 scope:global -lbl_12c = .rodata:0x0000012C; // type:object size:0x4 scope:global -@LOCAL@daNpcCoach_c::calcFrontWheelRotate(void)@round = .rodata:0x00000130; // type:object size:0x4 scope:local -lbl_134 = .rodata:0x00000134; // type:object size:0x4 scope:global -@LOCAL@daNpcCoach_c::calcRearWheelRotate(void)@round = .rodata:0x00000138; // type:object size:0x4 scope:local +ccCylSrc$localstatic3$initCollision__12daNpcCoach_cFv = .rodata:0x000000A8; // type:object size:0x44 scope:local +ccSphSrc$localstatic4$initCollision__12daNpcCoach_cFv = .rodata:0x000000EC; // type:object size:0x40 scope:local +shaftRound$localstatic3$calcFrontWheelRotate__12daNpcCoach_cFv = .rodata:0x0000012C; // type:object size:0x4 scope:local +round$localstatic4$calcFrontWheelRotate__12daNpcCoach_cFv = .rodata:0x00000130; // type:object size:0x4 scope:local +shaftRound$localstatic3$calcRearWheelRotate__12daNpcCoach_cFv = .rodata:0x00000134; // type:object size:0x4 scope:local +round$localstatic4$calcRearWheelRotate__12daNpcCoach_cFv = .rodata:0x00000138; // type:object size:0x4 scope:local @107587 = .rodata:0x0000013C; // type:object size:0x4 scope:local align:4 data:float -lbl_140 = .rodata:0x00000140; // type:object size:0x14 scope:global +ParticleName$localstatic3$setCoachBlazing__12daNpcCoach_cFUc = .rodata:0x00000140; // type:object size:0x14 scope:local @107777 = .rodata:0x00000154; // type:object size:0x4 scope:local align:4 data:float lbl_296_rodata_158 = .rodata:0x00000158; // type:object size:0x4 @107817 = .rodata:0x0000015C; // type:object size:0x4 scope:local diff --git a/config/RZDE01_00/rels/d_a_npc_doc/symbols.txt b/config/RZDE01_00/rels/d_a_npc_doc/symbols.txt index 6ac0263686..ec05642b7b 100644 --- a/config/RZDE01_00/rels/d_a_npc_doc/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_doc/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__11daNpc_Doc_cFv = .text:0x00001214; // type:function size:0x2C4 scop setCollision__11daNpc_Doc_cFv = .text:0x000014D8; // type:function size:0x184 scope:global drawDbgInfo__11daNpc_Doc_cFv = .text:0x0000165C; // type:function size:0x8 scope:global selectAction__11daNpc_Doc_cFv = .text:0x00001664; // type:function size:0xF0 scope:global -fn_1754 = .text:0x00001754; // type:function size:0xA8 scope:global +setAction__11daNpc_Doc_cFM11daNpc_Doc_cFPCvPvPv_i = .text:0x00001754; // type:function size:0xA8 scope:global wait__11daNpc_Doc_cFPv = .text:0x000017FC; // type:function size:0x2A8 scope:global walk__11daNpc_Doc_cFPv = .text:0x00001AA4; // type:function size:0x180 scope:global talk__11daNpc_Doc_cFPv = .text:0x00001C24; // type:function size:0x33C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_doorboy/symbols.txt b/config/RZDE01_00/rels/d_a_npc_doorboy/symbols.txt index f3b1cb5b84..7a5c8b6edd 100644 --- a/config/RZDE01_00/rels/d_a_npc_doorboy/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_doorboy/symbols.txt @@ -12,7 +12,7 @@ ctrlJoint__14daNpcDoorBoy_cFP8J3DJointP8J3DModel = .text:0x00000A00; // type:fun createHeapCallBack__14daNpcDoorBoy_cFP10fopAc_ac_c = .text:0x00000B44; // type:function size:0x4 scope:global ctrlJointCallBack__14daNpcDoorBoy_cFP8J3DJointi = .text:0x00000B48; // type:function size:0x48 scope:global setMotion__14daNpcDoorBoy_cFifi = .text:0x00000B90; // type:function size:0x48 scope:global -fn_bd8 = .text:0x00000BD8; // type:function size:0xA8 scope:global +setAction__14daNpcDoorBoy_cFM14daNpcDoorBoy_cFPCvPvPv_b = .text:0x00000BD8; // type:function size:0xA8 scope:global wait__14daNpcDoorBoy_cFPv = .text:0x00000C80; // type:function size:0x3F0 scope:global setLookMode__14daNpcDoorBoy_cFi = .text:0x00001070; // type:function size:0x24 scope:global step__14daNpcDoorBoy_cFsi = .text:0x00001094; // type:function size:0xD8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_drainSol/symbols.txt b/config/RZDE01_00/rels/d_a_npc_drainSol/symbols.txt index 49f4cc82d5..d0751f30da 100644 --- a/config/RZDE01_00/rels/d_a_npc_drainSol/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_drainSol/symbols.txt @@ -10,7 +10,7 @@ CreateHeap__12daNpcDrSol_cFv = .text:0x0000068C; // type:function size:0x1BC sco Execute__12daNpcDrSol_cFv = .text:0x00000848; // type:function size:0xF0 scope:global drawOtherMdls__12daNpcDrSol_cFv = .text:0x00000938; // type:function size:0x94 scope:global createHeapCallBack__12daNpcDrSol_cFP10fopAc_ac_c = .text:0x000009CC; // type:function size:0x4 scope:global -fn_9d0 = .text:0x000009D0; // type:function size:0xA8 scope:global +setAction__12daNpcDrSol_cFM12daNpcDrSol_cFPCvPvPv_b = .text:0x000009D0; // type:function size:0xA8 scope:global wait__12daNpcDrSol_cFPv = .text:0x00000A78; // type:function size:0x11C scope:global setMotion__12daNpcDrSol_cFifi = .text:0x00000B94; // type:function size:0x78 scope:global talk__12daNpcDrSol_cFPv = .text:0x00000C0C; // type:function size:0x124 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_fairy/symbols.txt b/config/RZDE01_00/rels/d_a_npc_fairy/symbols.txt index 01647e4c02..53281accf3 100644 --- a/config/RZDE01_00/rels/d_a_npc_fairy/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_fairy/symbols.txt @@ -40,7 +40,7 @@ afterMoved__13daNpc_Fairy_cFv = .text:0x00001EB8; // type:function size:0xCC sco setAttnPos__13daNpc_Fairy_cFv = .text:0x00001F84; // type:function size:0x214 scope:global setCollision__13daNpc_Fairy_cFv = .text:0x00002198; // type:function size:0x148 scope:global drawDbgInfo__13daNpc_Fairy_cFv = .text:0x000022E0; // type:function size:0x8 scope:global -fn_22e8 = .text:0x000022E8; // type:function size:0xB0 scope:global +setAction__13daNpc_Fairy_cFM13daNpc_Fairy_cFPCvPvi_ii = .text:0x000022E8; // type:function size:0xB0 scope:global wait__13daNpc_Fairy_cFi = .text:0x00002398; // type:function size:0x238 scope:global talk__13daNpc_Fairy_cFi = .text:0x000025D0; // type:function size:0xF0 scope:global AppearDemoCall__13daNpc_Fairy_cFv = .text:0x000026C0; // type:function size:0x138 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_fairy_seirei/symbols.txt b/config/RZDE01_00/rels/d_a_npc_fairy_seirei/symbols.txt index 079ca3d57a..0be01347ba 100644 --- a/config/RZDE01_00/rels/d_a_npc_fairy_seirei/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_fairy_seirei/symbols.txt @@ -16,7 +16,7 @@ setCollision__19daNpc_FairySeirei_cFv = .text:0x00000A14; // type:function size: setAttnPos__19daNpc_FairySeirei_cFv = .text:0x00000B28; // type:function size:0x94 scope:global drawDbgInfo__19daNpc_FairySeirei_cFv = .text:0x00000BBC; // type:function size:0x8 scope:global selectAction__19daNpc_FairySeirei_cFv = .text:0x00000BC4; // type:function size:0x40 scope:global -fn_c04 = .text:0x00000C04; // type:function size:0xA8 scope:global +setAction__19daNpc_FairySeirei_cFM19daNpc_FairySeirei_cFPCvPvi_i = .text:0x00000C04; // type:function size:0xA8 scope:global setPrtcls__19daNpc_FairySeirei_cFv = .text:0x00000CAC; // type:function size:0x124 scope:global wait__19daNpc_FairySeirei_cFi = .text:0x00000DD0; // type:function size:0x6C scope:global talk__19daNpc_FairySeirei_cFi = .text:0x00000E3C; // type:function size:0x150 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_gnd/symbols.txt b/config/RZDE01_00/rels/d_a_npc_gnd/symbols.txt index 72994dc8db..7d54314510 100644 --- a/config/RZDE01_00/rels/d_a_npc_gnd/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_gnd/symbols.txt @@ -25,7 +25,7 @@ setCollision__11daNpc_Gnd_cFv = .text:0x0000126C; // type:function size:0x144 sc drawDbgInfo__11daNpc_Gnd_cFv = .text:0x000013B0; // type:function size:0x8 scope:global afterSetMotionAnm__11daNpc_Gnd_cFiifi = .text:0x000013B8; // type:function size:0x198 scope:global selectAction__11daNpc_Gnd_cFv = .text:0x00001550; // type:function size:0x40 scope:global -fn_1590 = .text:0x00001590; // type:function size:0xA8 scope:global +setAction__11daNpc_Gnd_cFM11daNpc_Gnd_cFPCvPvPv_i = .text:0x00001590; // type:function size:0xA8 scope:global wait__11daNpc_Gnd_cFPv = .text:0x00001638; // type:function size:0x1B8 scope:global talk__11daNpc_Gnd_cFPv = .text:0x000017F0; // type:function size:0x188 scope:global daNpc_Gnd_Create__FPv = .text:0x00001978; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_gra/symbols.txt b/config/RZDE01_00/rels/d_a_npc_gra/symbols.txt index 2690b4e777..23e71d8040 100644 --- a/config/RZDE01_00/rels/d_a_npc_gra/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_gra/symbols.txt @@ -38,7 +38,7 @@ isDelete__11daNpc_grA_cFv = .text:0x0000259C; // type:function size:0x184 scope: reset__11daNpc_grA_cFv = .text:0x00002720; // type:function size:0x550 scope:global playExpression__11daNpc_grA_cFv = .text:0x00002C70; // type:function size:0x640 scope:global playMotion__11daNpc_grA_cFv = .text:0x000032B0; // type:function size:0x77C scope:global -fn_3a2c = .text:0x00003A2C; // type:function size:0xA8 scope:global +setAction__11daNpc_grA_cFM11daNpc_grA_cFPCvPvPv_i = .text:0x00003A2C; // type:function size:0xA8 scope:global selectAction__11daNpc_grA_cFv = .text:0x00003AD4; // type:function size:0x2BC scope:global doEvent__11daNpc_grA_cFv = .text:0x00003D90; // type:function size:0x450 scope:global setLookMode__11daNpc_grA_cFi = .text:0x000041E0; // type:function size:0x24 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_grc/symbols.txt b/config/RZDE01_00/rels/d_a_npc_grc/symbols.txt index 9427373b39..66453849c4 100644 --- a/config/RZDE01_00/rels/d_a_npc_grc/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_grc/symbols.txt @@ -27,7 +27,7 @@ isDelete__11daNpc_grC_cFv = .text:0x00001850; // type:function size:0x7C scope:g reset__11daNpc_grC_cFv = .text:0x000018CC; // type:function size:0x1A4 scope:global playExpression__11daNpc_grC_cFv = .text:0x00001A70; // type:function size:0x2B8 scope:global playMotion__11daNpc_grC_cFv = .text:0x00001D28; // type:function size:0x298 scope:global -fn_1fc0 = .text:0x00001FC0; // type:function size:0xA8 scope:global +setAction__11daNpc_grC_cFM11daNpc_grC_cFPCvPvPv_i = .text:0x00001FC0; // type:function size:0xA8 scope:global selectAction__11daNpc_grC_cFv = .text:0x00002068; // type:function size:0xD4 scope:global doNormalAction__11daNpc_grC_cFi = .text:0x0000213C; // type:function size:0x108 scope:global doEvent__11daNpc_grC_cFv = .text:0x00002244; // type:function size:0x2EC scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_grd/symbols.txt b/config/RZDE01_00/rels/d_a_npc_grd/symbols.txt index 4d0cccfabf..3da4fe9c00 100644 --- a/config/RZDE01_00/rels/d_a_npc_grd/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_grd/symbols.txt @@ -27,7 +27,7 @@ isDelete__11daNpc_Grd_cFv = .text:0x000018BC; // type:function size:0x6C scope:g reset__11daNpc_Grd_cFv = .text:0x00001928; // type:function size:0x134 scope:global playExpression__11daNpc_Grd_cFv = .text:0x00001A5C; // type:function size:0x134 scope:global playMotion__11daNpc_Grd_cFv = .text:0x00001B90; // type:function size:0x214 scope:global -fn_1da4 = .text:0x00001DA4; // type:function size:0xA8 scope:global +setAction__11daNpc_Grd_cFM11daNpc_Grd_cFPCvPvPv_i = .text:0x00001DA4; // type:function size:0xA8 scope:global selectAction__11daNpc_Grd_cFv = .text:0x00001E4C; // type:function size:0x40 scope:global doNormalAction__11daNpc_Grd_cFi = .text:0x00001E8C; // type:function size:0x108 scope:global doEvent__11daNpc_Grd_cFv = .text:0x00001F94; // type:function size:0x2D4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_grm/symbols.txt b/config/RZDE01_00/rels/d_a_npc_grm/symbols.txt index 095cfb244b..48e4ec6e63 100644 --- a/config/RZDE01_00/rels/d_a_npc_grm/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_grm/symbols.txt @@ -25,7 +25,7 @@ setCollision__11daNpc_grM_cFv = .text:0x000014F8; // type:function size:0x138 sc drawDbgInfo__11daNpc_grM_cFv = .text:0x00001630; // type:function size:0x8 scope:global drawOtherMdl__11daNpc_grM_cFv = .text:0x00001638; // type:function size:0x64 scope:global selectAction__11daNpc_grM_cFv = .text:0x0000169C; // type:function size:0x40 scope:global -fn_16dc = .text:0x000016DC; // type:function size:0xA8 scope:global +setAction__11daNpc_grM_cFM11daNpc_grM_cFPCvPvPv_i = .text:0x000016DC; // type:function size:0xA8 scope:global cutTalkSpa__11daNpc_grM_cFi = .text:0x00001784; // type:function size:0x144 scope:global tend__11daNpc_grM_cFPv = .text:0x000018C8; // type:function size:0x144 scope:global talk__11daNpc_grM_cFPv = .text:0x00001A0C; // type:function size:0x15C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_grmc/symbols.txt b/config/RZDE01_00/rels/d_a_npc_grmc/symbols.txt index d0eaf6eecb..d35415f6ab 100644 --- a/config/RZDE01_00/rels/d_a_npc_grmc/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_grmc/symbols.txt @@ -23,7 +23,7 @@ setCollision__12daNpc_grMC_cFv = .text:0x000012C0; // type:function size:0x138 s drawDbgInfo__12daNpc_grMC_cFv = .text:0x000013F8; // type:function size:0x8 scope:global drawOtherMdl__12daNpc_grMC_cFv = .text:0x00001400; // type:function size:0x64 scope:global selectAction__12daNpc_grMC_cFv = .text:0x00001464; // type:function size:0x40 scope:global -fn_14a4 = .text:0x000014A4; // type:function size:0xA8 scope:global +setAction__12daNpc_grMC_cFM12daNpc_grMC_cFPCvPvPv_i = .text:0x000014A4; // type:function size:0xA8 scope:global tend__12daNpc_grMC_cFPv = .text:0x0000154C; // type:function size:0x150 scope:global talk__12daNpc_grMC_cFPv = .text:0x0000169C; // type:function size:0x15C scope:global shop__12daNpc_grMC_cFPv = .text:0x000017F8; // type:function size:0xF8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_gro/symbols.txt b/config/RZDE01_00/rels/d_a_npc_gro/symbols.txt index 6a35e01311..9a4fc532b2 100644 --- a/config/RZDE01_00/rels/d_a_npc_gro/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_gro/symbols.txt @@ -27,7 +27,7 @@ isDelete__11daNpc_grO_cFv = .text:0x00001AF0; // type:function size:0xB4 scope:g reset__11daNpc_grO_cFv = .text:0x00001BA4; // type:function size:0x13C scope:global playExpression__11daNpc_grO_cFv = .text:0x00001CE0; // type:function size:0x398 scope:global playMotion__11daNpc_grO_cFv = .text:0x00002078; // type:function size:0x2E0 scope:global -fn_2358 = .text:0x00002358; // type:function size:0xA8 scope:global +setAction__11daNpc_grO_cFM11daNpc_grO_cFPCvPvPv_i = .text:0x00002358; // type:function size:0xA8 scope:global selectAction__11daNpc_grO_cFv = .text:0x00002400; // type:function size:0xA4 scope:global doNormalAction__11daNpc_grO_cFi = .text:0x000024A4; // type:function size:0x120 scope:global doEvent__11daNpc_grO_cFv = .text:0x000025C4; // type:function size:0x37C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_grr/symbols.txt b/config/RZDE01_00/rels/d_a_npc_grr/symbols.txt index 2cdf82e357..e7b7b5ffde 100644 --- a/config/RZDE01_00/rels/d_a_npc_grr/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_grr/symbols.txt @@ -27,7 +27,7 @@ isDelete__11daNpc_grR_cFv = .text:0x0000194C; // type:function size:0xE4 scope:g reset__11daNpc_grR_cFv = .text:0x00001A30; // type:function size:0x188 scope:global playExpression__11daNpc_grR_cFv = .text:0x00001BB8; // type:function size:0x238 scope:global playMotion__11daNpc_grR_cFv = .text:0x00001DF0; // type:function size:0x37C scope:global -fn_216c = .text:0x0000216C; // type:function size:0xA8 scope:global +setAction__11daNpc_grR_cFM11daNpc_grR_cFPCvPvPv_i = .text:0x0000216C; // type:function size:0xA8 scope:global selectAction__11daNpc_grR_cFv = .text:0x00002214; // type:function size:0x70 scope:global doNormalAction__11daNpc_grR_cFi = .text:0x00002284; // type:function size:0x108 scope:global doEvent__11daNpc_grR_cFv = .text:0x0000238C; // type:function size:0x2F4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_grs/symbols.txt b/config/RZDE01_00/rels/d_a_npc_grs/symbols.txt index fa251416d4..4568b5a2a7 100644 --- a/config/RZDE01_00/rels/d_a_npc_grs/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_grs/symbols.txt @@ -27,7 +27,7 @@ isDelete__11daNpc_grS_cFv = .text:0x00001944; // type:function size:0x78 scope:g reset__11daNpc_grS_cFv = .text:0x000019BC; // type:function size:0x15C scope:global playExpression__11daNpc_grS_cFv = .text:0x00001B18; // type:function size:0x134 scope:global playMotion__11daNpc_grS_cFv = .text:0x00001C4C; // type:function size:0x164 scope:global -fn_1db0 = .text:0x00001DB0; // type:function size:0xA8 scope:global +setAction__11daNpc_grS_cFM11daNpc_grS_cFPCvPvPv_i = .text:0x00001DB0; // type:function size:0xA8 scope:global selectAction__11daNpc_grS_cFv = .text:0x00001E58; // type:function size:0x40 scope:global doNormalAction__11daNpc_grS_cFi = .text:0x00001E98; // type:function size:0x120 scope:global doEvent__11daNpc_grS_cFv = .text:0x00001FB8; // type:function size:0x2F0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_grz/symbols.txt b/config/RZDE01_00/rels/d_a_npc_grz/symbols.txt index a2f4168dfa..fff048052a 100644 --- a/config/RZDE01_00/rels/d_a_npc_grz/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_grz/symbols.txt @@ -29,7 +29,7 @@ reset__11daNpc_Grz_cFv = .text:0x0000221C; // type:function size:0x270 scope:glo resetCol__11daNpc_Grz_cFv = .text:0x0000248C; // type:function size:0xE0 scope:global playExpression__11daNpc_Grz_cFv = .text:0x0000256C; // type:function size:0x304 scope:global playMotion__11daNpc_Grz_cFv = .text:0x00002870; // type:function size:0x40C scope:global -fn_2c7c = .text:0x00002C7C; // type:function size:0xA8 scope:global +setAction__11daNpc_Grz_cFM11daNpc_Grz_cFPCvPvPv_i = .text:0x00002C7C; // type:function size:0xA8 scope:global selectAction__11daNpc_Grz_cFv = .text:0x00002D24; // type:function size:0xD0 scope:global doNormalAction__11daNpc_Grz_cFi = .text:0x00002DF4; // type:function size:0x108 scope:global doEvent__11daNpc_Grz_cFv = .text:0x00002EFC; // type:function size:0x3B4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_gwolf/symbols.txt b/config/RZDE01_00/rels/d_a_npc_gwolf/symbols.txt index f39f1fb771..ee55b1cdff 100644 --- a/config/RZDE01_00/rels/d_a_npc_gwolf/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_gwolf/symbols.txt @@ -28,7 +28,7 @@ getModeFromParam__13daNpc_GWolf_cFv = .text:0x000019B4; // type:function size:0x isDelete__13daNpc_GWolf_cFv = .text:0x00001A28; // type:function size:0xF4 scope:global reset__13daNpc_GWolf_cFv = .text:0x00001B1C; // type:function size:0x1CC scope:global playMotion__13daNpc_GWolf_cFv = .text:0x00001CE8; // type:function size:0x378 scope:global -fn_2060 = .text:0x00002060; // type:function size:0xA8 scope:global +setAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFPCvPvPv_i = .text:0x00002060; // type:function size:0xA8 scope:global selectAction__13daNpc_GWolf_cFv = .text:0x00002108; // type:function size:0xA4 scope:global doNormalAction__13daNpc_GWolf_cFi = .text:0x000021AC; // type:function size:0x108 scope:global doEvent__13daNpc_GWolf_cFv = .text:0x000022B4; // type:function size:0x2F4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_hanjo/symbols.txt b/config/RZDE01_00/rels/d_a_npc_hanjo/symbols.txt index 6fdcd428d1..0dcf9fa7c8 100644 --- a/config/RZDE01_00/rels/d_a_npc_hanjo/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_hanjo/symbols.txt @@ -27,7 +27,7 @@ setCollision__13daNpc_Hanjo_cFv = .text:0x00001CAC; // type:function size:0x30C drawDbgInfo__13daNpc_Hanjo_cFv = .text:0x00001FB8; // type:function size:0x8 scope:global drawOtherMdl__13daNpc_Hanjo_cFv = .text:0x00001FC0; // type:function size:0x278 scope:global selectAction__13daNpc_Hanjo_cFv = .text:0x00002238; // type:function size:0x13C scope:global -fn_2374 = .text:0x00002374; // type:function size:0xA8 scope:global +setAction__13daNpc_Hanjo_cFM13daNpc_Hanjo_cFPCvPvPv_i = .text:0x00002374; // type:function size:0xA8 scope:global initShoot__13daNpc_Hanjo_cFi = .text:0x0000241C; // type:function size:0xDC scope:global shoot__13daNpc_Hanjo_cFi = .text:0x000024F8; // type:function size:0x228 scope:global initDive__13daNpc_Hanjo_cFv = .text:0x00002720; // type:function size:0x7C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_henna/symbols.txt b/config/RZDE01_00/rels/d_a_npc_henna/symbols.txt index c5bb515988..ede25016fe 100644 --- a/config/RZDE01_00/rels/d_a_npc_henna/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_henna/symbols.txt @@ -40,7 +40,7 @@ setFrame__14mDoExt_baseAnmFf = .text:0x00006FB0; // type:function size:0x8 scope checkFrame__13mDoExt_morf_cFf = .text:0x00006FB8; // type:function size:0x8 scope:global getEndFrame__14mDoExt_baseAnmFv = .text:0x00006FC0; // type:function size:0x30 scope:global entryJoint__13mDoExt_bckAnmFP12J3DModelDataUs = .text:0x00006FF0; // type:function size:0x8 scope:global -fn_6ff8 = .text:0x00006FF8; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x00006FF8; // type:function size:0x34 scope:global cMtx_YrotS__FPA4_fs = .text:0x0000702C; // type:function size:0x8 scope:global fpcM_Search__FPFPvPv_PvPv = .text:0x00007034; // type:function size:0x4 scope:global fopAcM_SearchByID__FUi = .text:0x00007038; // type:function size:0x30 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_hoz/symbols.txt b/config/RZDE01_00/rels/d_a_npc_hoz/symbols.txt index eae15b50ea..94ffccf1cf 100644 --- a/config/RZDE01_00/rels/d_a_npc_hoz/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_hoz/symbols.txt @@ -27,7 +27,7 @@ setCollision__11daNpc_Hoz_cFv = .text:0x00001510; // type:function size:0x15C sc evtOrder__11daNpc_Hoz_cFv = .text:0x0000166C; // type:function size:0x150 scope:global drawDbgInfo__11daNpc_Hoz_cFv = .text:0x000017BC; // type:function size:0x8 scope:global selectAction__11daNpc_Hoz_cFv = .text:0x000017C4; // type:function size:0x140 scope:global -fn_1904 = .text:0x00001904; // type:function size:0xA8 scope:global +setAction__11daNpc_Hoz_cFM11daNpc_Hoz_cFPCvPvPv_i = .text:0x00001904; // type:function size:0xA8 scope:global wait__11daNpc_Hoz_cFPv = .text:0x000019AC; // type:function size:0x118 scope:global waitBattle__11daNpc_Hoz_cFPv = .text:0x00001AC4; // type:function size:0x1D8 scope:global waitTwilightBattle__11daNpc_Hoz_cFPv = .text:0x00001C9C; // type:function size:0x1BC scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_impal/symbols.txt b/config/RZDE01_00/rels/d_a_npc_impal/symbols.txt index 7de0f6ac5e..25600577b6 100644 --- a/config/RZDE01_00/rels/d_a_npc_impal/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_impal/symbols.txt @@ -14,7 +14,7 @@ ctrlJointCallBack__12daNpcImpal_cFP8J3DJointi = .text:0x00000CEC; // type:functi setExpressionAnm__12daNpcImpal_cFib = .text:0x00000D34; // type:function size:0x244 scope:global setExpressionBtp__12daNpcImpal_cFi = .text:0x00000F78; // type:function size:0xD8 scope:global setMotionAnm__12daNpcImpal_cFif = .text:0x00001050; // type:function size:0x168 scope:global -fn_11b8 = .text:0x000011B8; // type:function size:0xA8 scope:global +setAction__12daNpcImpal_cFM12daNpcImpal_cFPCvPvPv_b = .text:0x000011B8; // type:function size:0xA8 scope:global s_sub1__FPvPv = .text:0x00001260; // type:function size:0xA8 scope:global wait__12daNpcImpal_cFPv = .text:0x00001308; // type:function size:0x43C scope:global setExpression__12daNpcImpal_cFif = .text:0x00001744; // type:function size:0x2C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_ins/symbols.txt b/config/RZDE01_00/rels/d_a_npc_ins/symbols.txt index 91be0c56f1..cbabd3d79f 100644 --- a/config/RZDE01_00/rels/d_a_npc_ins/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_ins/symbols.txt @@ -22,7 +22,7 @@ chkFindPlayer__10daNpcIns_cFv = .text:0x0000169C; // type:function size:0xD4 sco setLookMode__10daNpcIns_cFi = .text:0x00001770; // type:function size:0x24 scope:global step__10daNpcIns_cFsi = .text:0x00001794; // type:function size:0x178 scope:global waitEventMng__10daNpcIns_cFv = .text:0x0000190C; // type:function size:0x118 scope:global -fn_1a24 = .text:0x00001A24; // type:function size:0xC0 scope:global +setAction__10daNpcIns_cFM10daNpcIns_cFPCvPvPv_b = .text:0x00001A24; // type:function size:0xC0 scope:global waitPresent__10daNpcIns_cFPv = .text:0x00001AE4; // type:function size:0x1CC scope:global waitOutSide1__10daNpcIns_cFPv = .text:0x00001CB0; // type:function size:0x278 scope:global waitOutSide2__10daNpcIns_cFPv = .text:0x00001F28; // type:function size:0x134 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_jagar/symbols.txt b/config/RZDE01_00/rels/d_a_npc_jagar/symbols.txt index 53af065eb2..b3dbf86c42 100644 --- a/config/RZDE01_00/rels/d_a_npc_jagar/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_jagar/symbols.txt @@ -26,7 +26,7 @@ setCollision__13daNpc_Jagar_cFv = .text:0x00001794; // type:function size:0x178 drawDbgInfo__13daNpc_Jagar_cFv = .text:0x0000190C; // type:function size:0x8 scope:global changeBtp__13daNpc_Jagar_cFPiPi = .text:0x00001914; // type:function size:0x40 scope:global selectAction__13daNpc_Jagar_cFv = .text:0x00001954; // type:function size:0x70 scope:global -fn_19c4 = .text:0x000019C4; // type:function size:0xA8 scope:global +setAction__13daNpc_Jagar_cFM13daNpc_Jagar_cFPCvPvPv_i = .text:0x000019C4; // type:function size:0xA8 scope:global cutClimbUp__13daNpc_Jagar_cFi = .text:0x00001A6C; // type:function size:0x170 scope:global cutNeedYourHelp__13daNpc_Jagar_cFi = .text:0x00001BDC; // type:function size:0x440 scope:global cutAnger__13daNpc_Jagar_cFi = .text:0x0000201C; // type:function size:0x1B0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kakashi/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kakashi/symbols.txt index 2cc43a80c5..935ace56bb 100644 --- a/config/RZDE01_00/rels/d_a_npc_kakashi/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kakashi/symbols.txt @@ -23,7 +23,7 @@ setAttnPos__15daNpc_Kakashi_cFv = .text:0x00001074; // type:function size:0x2A4 setCollision__15daNpc_Kakashi_cFv = .text:0x00001318; // type:function size:0x388 scope:global drawDbgInfo__15daNpc_Kakashi_cFv = .text:0x000016A0; // type:function size:0x8 scope:global selectAction__15daNpc_Kakashi_cFv = .text:0x000016A8; // type:function size:0xFC scope:global -fn_17a4 = .text:0x000017A4; // type:function size:0xA8 scope:global +setAction__15daNpc_Kakashi_cFM15daNpc_Kakashi_cFPCvPvPv_i = .text:0x000017A4; // type:function size:0xA8 scope:global hitChk__15daNpc_Kakashi_cFv = .text:0x0000184C; // type:function size:0x38C scope:global setStaggerParam__15daNpc_Kakashi_cFP10fopAc_ac_c = .text:0x00001BD8; // type:function size:0x3A0 scope:global setPrtcls__15daNpc_Kakashi_cFi = .text:0x00001F78; // type:function size:0xE0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kasi_hana/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kasi_hana/symbols.txt index 0a5df52ae6..23bb9c2da8 100644 --- a/config/RZDE01_00/rels/d_a_npc_kasi_hana/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kasi_hana/symbols.txt @@ -41,7 +41,7 @@ drawDbgInfo__15daNpcKasiHana_cFv = .text:0x00001CE0; // type:function size:0x8 s reset__15daNpcKasiHana_cFv = .text:0x00001CE8; // type:function size:0x1F8 scope:global playMotion__15daNpcKasiHana_cFv = .text:0x00001EE0; // type:function size:0x370 scope:global playMotionAnmLoop__15daNpcKasiHana_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x00002250; // type:function size:0x16C scope:global -fn_23bc = .text:0x000023BC; // type:function size:0xA8 scope:global +setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFPCvPvi_i = .text:0x000023BC; // type:function size:0xA8 scope:global setLookMode__15daNpcKasiHana_cFi = .text:0x00002464; // type:function size:0x24 scope:global lookat__15daNpcKasiHana_cFv = .text:0x00002488; // type:function size:0x228 scope:global step__15daNpcKasiHana_cFsi = .text:0x000026B0; // type:function size:0xD8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kasi_kyu/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kasi_kyu/symbols.txt index 4b97cba4a7..e29286246d 100644 --- a/config/RZDE01_00/rels/d_a_npc_kasi_kyu/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kasi_kyu/symbols.txt @@ -20,7 +20,7 @@ drawDbgInfo__14daNpcKasiKyu_cFv = .text:0x00000E00; // type:function size:0x8 sc reset__14daNpcKasiKyu_cFv = .text:0x00000E08; // type:function size:0x1E4 scope:global playMotion__14daNpcKasiKyu_cFv = .text:0x00000FEC; // type:function size:0x3C8 scope:global playMotionAnmLoop__14daNpcKasiKyu_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x000013B4; // type:function size:0x16C scope:global -fn_1520 = .text:0x00001520; // type:function size:0xA8 scope:global +setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFPCvPvi_i = .text:0x00001520; // type:function size:0xA8 scope:global setLookMode__14daNpcKasiKyu_cFi = .text:0x000015C8; // type:function size:0x24 scope:global lookat__14daNpcKasiKyu_cFv = .text:0x000015EC; // type:function size:0x228 scope:global step__14daNpcKasiKyu_cFsi = .text:0x00001814; // type:function size:0xD8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kasi_mich/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kasi_mich/symbols.txt index 9948eeb6d5..c60e8fc590 100644 --- a/config/RZDE01_00/rels/d_a_npc_kasi_mich/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kasi_mich/symbols.txt @@ -20,7 +20,7 @@ drawDbgInfo__15daNpcKasiMich_cFv = .text:0x00000E00; // type:function size:0x8 s reset__15daNpcKasiMich_cFv = .text:0x00000E08; // type:function size:0x1E4 scope:global playMotion__15daNpcKasiMich_cFv = .text:0x00000FEC; // type:function size:0x3C8 scope:global playMotionAnmLoop__15daNpcKasiMich_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x000013B4; // type:function size:0x16C scope:global -fn_1520 = .text:0x00001520; // type:function size:0xA8 scope:global +setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFPCvPvi_i = .text:0x00001520; // type:function size:0xA8 scope:global setLookMode__15daNpcKasiMich_cFi = .text:0x000015C8; // type:function size:0x24 scope:global lookat__15daNpcKasiMich_cFv = .text:0x000015EC; // type:function size:0x228 scope:global step__15daNpcKasiMich_cFsi = .text:0x00001814; // type:function size:0xD8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kkri/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kkri/symbols.txt index 1a20862563..66d442d22f 100644 --- a/config/RZDE01_00/rels/d_a_npc_kkri/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kkri/symbols.txt @@ -25,7 +25,7 @@ setAttnPos__12daNpc_Kkri_cFv = .text:0x00001180; // type:function size:0x3F8 sco setCollision__12daNpc_Kkri_cFv = .text:0x00001578; // type:function size:0x1D4 scope:global drawDbgInfo__12daNpc_Kkri_cFv = .text:0x0000174C; // type:function size:0x8 scope:global selectAction__12daNpc_Kkri_cFv = .text:0x00001754; // type:function size:0xA4 scope:global -fn_17f8 = .text:0x000017F8; // type:function size:0xA8 scope:global +setAction__12daNpc_Kkri_cFM12daNpc_Kkri_cFPCvPvPv_i = .text:0x000017F8; // type:function size:0xA8 scope:global cutConversationAboutSoup__12daNpc_Kkri_cFi = .text:0x000018A0; // type:function size:0x138 scope:global cutYmLook__12daNpc_Kkri_cFi = .text:0x000019D8; // type:function size:0x114 scope:global sleep__12daNpc_Kkri_cFv = .text:0x00001AEC; // type:function size:0x1B0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kn/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kn/symbols.txt index 2046e0867c..0cc769c5e9 100644 --- a/config/RZDE01_00/rels/d_a_npc_kn/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kn/symbols.txt @@ -106,7 +106,7 @@ teach04_selectAction__10daNpc_Kn_cFv = .text:0x00005A28; // type:function size:0 teach05_selectAction__10daNpc_Kn_cFv = .text:0x00005ADC; // type:function size:0x50 scope:global teach06_selectAction__10daNpc_Kn_cFv = .text:0x00005B2C; // type:function size:0x124 scope:global teach07_selectAction__10daNpc_Kn_cFv = .text:0x00005C50; // type:function size:0x124 scope:global -fn_5d74 = .text:0x00005D74; // type:function size:0xA8 scope:global +setAction__10daNpc_Kn_cFM10daNpc_Kn_cFPCvPvPv_i = .text:0x00005D74; // type:function size:0xA8 scope:global wait__10daNpc_Kn_cFPv = .text:0x00005E1C; // type:function size:0x14C scope:global talk__10daNpc_Kn_cFPv = .text:0x00005F68; // type:function size:0x17C scope:global test__10daNpc_Kn_cFPv = .text:0x000060E4; // type:function size:0xC4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_knj/symbols.txt b/config/RZDE01_00/rels/d_a_npc_knj/symbols.txt index 139f9a74bb..750b5a64a0 100644 --- a/config/RZDE01_00/rels/d_a_npc_knj/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_knj/symbols.txt @@ -20,7 +20,7 @@ drawDbgInfo__11daNpc_Knj_cFv = .text:0x00000C04; // type:function size:0x8 scope afterSetMotionAnm__11daNpc_Knj_cFiifi = .text:0x00000C0C; // type:function size:0x1DC scope:global drawGhost__11daNpc_Knj_cFv = .text:0x00000DE8; // type:function size:0x68 scope:global selectAction__11daNpc_Knj_cFv = .text:0x00000E50; // type:function size:0x40 scope:global -fn_e90 = .text:0x00000E90; // type:function size:0xA8 scope:global +setAction__11daNpc_Knj_cFM11daNpc_Knj_cFPCvPvPv_i = .text:0x00000E90; // type:function size:0xA8 scope:global wait__11daNpc_Knj_cFPv = .text:0x00000F38; // type:function size:0x138 scope:global talk__11daNpc_Knj_cFPv = .text:0x00001070; // type:function size:0x13C scope:global daNpc_Knj_Create__FPv = .text:0x000011AC; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kolin/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kolin/symbols.txt index 2a30d0f684..1941101468 100644 --- a/config/RZDE01_00/rels/d_a_npc_kolin/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kolin/symbols.txt @@ -28,7 +28,7 @@ drawOtherMdl__13daNpc_Kolin_cFv = .text:0x00001B5C; // type:function size:0xD8 s changeAnm__13daNpc_Kolin_cFPiPi = .text:0x00001C34; // type:function size:0x28 scope:global changeBck__13daNpc_Kolin_cFPiPi = .text:0x00001C5C; // type:function size:0x4C scope:global selectAction__13daNpc_Kolin_cFv = .text:0x00001CA8; // type:function size:0xFC scope:global -fn_1da4 = .text:0x00001DA4; // type:function size:0xA8 scope:global +setAction__13daNpc_Kolin_cFM13daNpc_Kolin_cFPCvPvPv_i = .text:0x00001DA4; // type:function size:0xA8 scope:global calcFollowSpeedAndAngle__13daNpc_Kolin_cFP10fopAc_ac_cii = .text:0x00001E4C; // type:function size:0x1BC scope:global followPlayer__13daNpc_Kolin_cFi = .text:0x00002008; // type:function size:0x340 scope:global lookup__13daNpc_Kolin_cFUc = .text:0x00002348; // type:function size:0x88 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kolinb/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kolinb/symbols.txt index 8c871638e1..f6fb9a3f41 100644 --- a/config/RZDE01_00/rels/d_a_npc_kolinb/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kolinb/symbols.txt @@ -23,7 +23,7 @@ setAttnPos__14daNpc_Kolinb_cFv = .text:0x00000FC0; // type:function size:0x14C s setCollision__14daNpc_Kolinb_cFv = .text:0x0000110C; // type:function size:0x50 scope:global drawDbgInfo__14daNpc_Kolinb_cFv = .text:0x0000115C; // type:function size:0x8 scope:global selectAction__14daNpc_Kolinb_cFv = .text:0x00001164; // type:function size:0x40 scope:global -fn_11a4 = .text:0x000011A4; // type:function size:0xA8 scope:global +setAction__14daNpc_Kolinb_cFM14daNpc_Kolinb_cFPCvPvPv_i = .text:0x000011A4; // type:function size:0xA8 scope:global cutConversationInHotel__14daNpc_Kolinb_cFi = .text:0x0000124C; // type:function size:0x88 scope:global cutConversationAboutDeathMt__14daNpc_Kolinb_cFi = .text:0x000012D4; // type:function size:0x1EC scope:global cutConversationAboutGoron__14daNpc_Kolinb_cFi = .text:0x000014C0; // type:function size:0x1EC scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_kyury/symbols.txt b/config/RZDE01_00/rels/d_a_npc_kyury/symbols.txt index 4463ffd4c6..124231f01f 100644 --- a/config/RZDE01_00/rels/d_a_npc_kyury/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_kyury/symbols.txt @@ -26,7 +26,7 @@ setCollision__13daNpc_Kyury_cFv = .text:0x000014BC; // type:function size:0x184 drawDbgInfo__13daNpc_Kyury_cFv = .text:0x00001640; // type:function size:0x8 scope:global drawOtherMdl__13daNpc_Kyury_cFv = .text:0x00001648; // type:function size:0x104 scope:global selectAction__13daNpc_Kyury_cFv = .text:0x0000174C; // type:function size:0x40 scope:global -fn_178c = .text:0x0000178C; // type:function size:0xA8 scope:global +setAction__13daNpc_Kyury_cFM13daNpc_Kyury_cFPCvPvPv_i = .text:0x0000178C; // type:function size:0xA8 scope:global cutConversation__13daNpc_Kyury_cFi = .text:0x00001834; // type:function size:0x330 scope:global wait__13daNpc_Kyury_cFPv = .text:0x00001B64; // type:function size:0x340 scope:global talk__13daNpc_Kyury_cFPv = .text:0x00001EA4; // type:function size:0x194 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_len/symbols.txt b/config/RZDE01_00/rels/d_a_npc_len/symbols.txt index 3f5aea66ef..8afe88b308 100644 --- a/config/RZDE01_00/rels/d_a_npc_len/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_len/symbols.txt @@ -25,7 +25,7 @@ setAttnPos__11daNpc_Len_cFv = .text:0x00001650; // type:function size:0x2E0 scop setCollision__11daNpc_Len_cFv = .text:0x00001930; // type:function size:0x160 scope:global drawDbgInfo__11daNpc_Len_cFv = .text:0x00001A90; // type:function size:0x8 scope:global selectAction__11daNpc_Len_cFv = .text:0x00001A98; // type:function size:0x70 scope:global -fn_1b08 = .text:0x00001B08; // type:function size:0xA8 scope:global +setAction__11daNpc_Len_cFM11daNpc_Len_cFPCvPvPv_i = .text:0x00001B08; // type:function size:0xA8 scope:global checkStartDemo13StbEvt__11daNpc_Len_cFP10fopAc_ac_cfffffff = .text:0x00001BB0; // type:function size:0xD8 scope:global cutConversationInHotel__11daNpc_Len_cFi = .text:0x00001C88; // type:function size:0x3C8 scope:global cutHurry__11daNpc_Len_cFi = .text:0x00002050; // type:function size:0x1E0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_lud/symbols.txt b/config/RZDE01_00/rels/d_a_npc_lud/symbols.txt index e545803272..7971fe838d 100644 --- a/config/RZDE01_00/rels/d_a_npc_lud/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_lud/symbols.txt @@ -28,7 +28,7 @@ drawOtherMdl__11daNpc_Lud_cFv = .text:0x00001CEC; // type:function size:0x184 sc setBowlAnm__11daNpc_Lud_cFiif = .text:0x00001E70; // type:function size:0xD0 scope:global afterSetMotionAnm__11daNpc_Lud_cFiifi = .text:0x00001F40; // type:function size:0x18 scope:global selectAction__11daNpc_Lud_cFv = .text:0x00001F58; // type:function size:0xD0 scope:global -fn_2028 = .text:0x00002028; // type:function size:0xA8 scope:global +setAction__11daNpc_Lud_cFM11daNpc_Lud_cFPCvPvPv_i = .text:0x00002028; // type:function size:0xA8 scope:global mop__11daNpc_Lud_cFii = .text:0x000020D0; // type:function size:0xFC scope:global cutHurry__11daNpc_Lud_cFi = .text:0x000021CC; // type:function size:0xF0 scope:global cutConversationInHotel__11daNpc_Lud_cFi = .text:0x000022BC; // type:function size:0x2A0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_maro/symbols.txt b/config/RZDE01_00/rels/d_a_npc_maro/symbols.txt index 315de4f4db..8640fae894 100644 --- a/config/RZDE01_00/rels/d_a_npc_maro/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_maro/symbols.txt @@ -34,7 +34,7 @@ drawOtherMdl__12daNpc_Maro_cFv = .text:0x000023DC; // type:function size:0x64 sc getFaceMotionAnm__12daNpc_Maro_cF26daNpcT_faceMotionAnmData_c = .text:0x00002440; // type:function size:0x8C scope:global getMotionAnm__12daNpc_Maro_cF22daNpcT_motionAnmData_c = .text:0x000024CC; // type:function size:0x8C scope:global selectAction__12daNpc_Maro_cFv = .text:0x00002558; // type:function size:0x128 scope:global -fn_2680 = .text:0x00002680; // type:function size:0xA8 scope:global +setAction__12daNpc_Maro_cFM12daNpc_Maro_cFPCvPvPv_i = .text:0x00002680; // type:function size:0xA8 scope:global cutConversationAboutPachinko__12daNpc_Maro_cFi = .text:0x00002728; // type:function size:0x148 scope:global cutConversationAboutWoodSwd__12daNpc_Maro_cFi = .text:0x00002870; // type:function size:0x150 scope:global cutSwdTutorial__12daNpc_Maro_cFi = .text:0x000029C0; // type:function size:0x200 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_midp/symbols.txt b/config/RZDE01_00/rels/d_a_npc_midp/symbols.txt index fb718ee87d..75f480f40a 100644 --- a/config/RZDE01_00/rels/d_a_npc_midp/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_midp/symbols.txt @@ -25,7 +25,7 @@ setCollision__12daNpc_midP_cFv = .text:0x00001264; // type:function size:0x108 s drawDbgInfo__12daNpc_midP_cFv = .text:0x0000136C; // type:function size:0x8 scope:global drawGhost__12daNpc_midP_cFv = .text:0x00001374; // type:function size:0x68 scope:global selectAction__12daNpc_midP_cFv = .text:0x000013DC; // type:function size:0x40 scope:global -fn_141c = .text:0x0000141C; // type:function size:0xA8 scope:global +setAction__12daNpc_midP_cFM12daNpc_midP_cFPCvPvPv_i = .text:0x0000141C; // type:function size:0xA8 scope:global wait__12daNpc_midP_cFPv = .text:0x000014C4; // type:function size:0x1B8 scope:global talk__12daNpc_midP_cFPv = .text:0x0000167C; // type:function size:0x1A0 scope:global daNpc_midP_Create__FPv = .text:0x0000181C; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_moi/symbols.txt b/config/RZDE01_00/rels/d_a_npc_moi/symbols.txt index 94c671540c..22681ba57b 100644 --- a/config/RZDE01_00/rels/d_a_npc_moi/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_moi/symbols.txt @@ -32,7 +32,7 @@ changeBck__11daNpc_Moi_cFPiPi = .text:0x000021B0; // type:function size:0x48 sco changeBtp__11daNpc_Moi_cFPiPi = .text:0x000021F8; // type:function size:0xB8 scope:global changeBtk__11daNpc_Moi_cFPiPi = .text:0x000022B0; // type:function size:0x74 scope:global selectAction__11daNpc_Moi_cFv = .text:0x00002324; // type:function size:0x12C scope:global -fn_2450 = .text:0x00002450; // type:function size:0xA8 scope:global +setAction__11daNpc_Moi_cFM11daNpc_Moi_cFPCvPvPv_i = .text:0x00002450; // type:function size:0xA8 scope:global setSSlash__11daNpc_Moi_cFi = .text:0x000024F8; // type:function size:0x1A4 scope:global chkPullOutSw__11daNpc_Moi_cFv = .text:0x0000269C; // type:function size:0x74 scope:global pullOutSw__11daNpc_Moi_cFv = .text:0x00002710; // type:function size:0x58 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_moir/symbols.txt b/config/RZDE01_00/rels/d_a_npc_moir/symbols.txt index 39dbd79030..65cf958cc6 100644 --- a/config/RZDE01_00/rels/d_a_npc_moir/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_moir/symbols.txt @@ -15,7 +15,7 @@ setExpressionAnm__11daNpcMoiR_cFib = .text:0x00000E50; // type:function size:0x2 setExpressionBtp__11daNpcMoiR_cFi = .text:0x000010B0; // type:function size:0xD8 scope:global setMotionAnm__11daNpcMoiR_cFif = .text:0x00001188; // type:function size:0x144 scope:global setWaitAction__11daNpcMoiR_cFv = .text:0x000012CC; // type:function size:0xC0 scope:global -fn_138c = .text:0x0000138C; // type:function size:0xA8 scope:global +setAction__11daNpcMoiR_cFM11daNpcMoiR_cFPCvPvPv_b = .text:0x0000138C; // type:function size:0xA8 scope:global wait_type0__11daNpcMoiR_cFPv = .text:0x00001434; // type:function size:0x234 scope:global setExpression__11daNpcMoiR_cFif = .text:0x00001668; // type:function size:0x2C scope:global setMotion__11daNpcMoiR_cFifi = .text:0x00001694; // type:function size:0x44 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_myna2/symbols.txt b/config/RZDE01_00/rels/d_a_npc_myna2/symbols.txt index 543eae62fb..b75e1ecec3 100644 --- a/config/RZDE01_00/rels/d_a_npc_myna2/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_myna2/symbols.txt @@ -21,7 +21,7 @@ getTypeFromParam__13daNpc_myna2_cFv = .text:0x00001044; // type:function size:0x isDelete__13daNpc_myna2_cFv = .text:0x0000109C; // type:function size:0xC0 scope:global reset__13daNpc_myna2_cFv = .text:0x0000115C; // type:function size:0x184 scope:global playMotion__13daNpc_myna2_cFv = .text:0x000012E0; // type:function size:0x244 scope:global -fn_1524 = .text:0x00001524; // type:function size:0xA8 scope:global +setAction__13daNpc_myna2_cFM13daNpc_myna2_cFPCvPvPv_i = .text:0x00001524; // type:function size:0xA8 scope:global selectAction__13daNpc_myna2_cFv = .text:0x000015CC; // type:function size:0xD0 scope:global doNormalAction__13daNpc_myna2_cFi = .text:0x0000169C; // type:function size:0xE4 scope:global doEvent__13daNpc_myna2_cFv = .text:0x00001780; // type:function size:0x32C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_ne/symbols.txt b/config/RZDE01_00/rels/d_a_npc_ne/symbols.txt index f1fec5156d..d4fcd880b2 100644 --- a/config/RZDE01_00/rels/d_a_npc_ne/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_ne/symbols.txt @@ -62,7 +62,7 @@ fopAcM_SearchByName__Fs = .text:0x00008A44; // type:function size:0x30 scope:glo fopAcM_CheckCondition__FP10fopAc_ac_cUl = .text:0x00008A74; // type:function size:0xC scope:global fopAcM_SearchByID__FUi = .text:0x00008A80; // type:function size:0x30 scope:global fopAcM_GetRoomNo__FPC10fopAc_ac_c = .text:0x00008AB0; // type:function size:0xC scope:global -fn_8abc = .text:0x00008ABC; // type:function size:0x34 scope:global +__apl__4cXyzFRC3Vec = .text:0x00008ABC; // type:function size:0x34 scope:global GetGroundH__9dBgS_AcchCFv = .text:0x00008AF0; // type:function size:0x8 scope:global ChkGroundHit__9dBgS_AcchCFv = .text:0x00008AF8; // type:function size:0xC scope:global dComIfG_Bgsp__Fv = .text:0x00008B04; // type:function size:0x10 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_pachi_besu/symbols.txt b/config/RZDE01_00/rels/d_a_npc_pachi_besu/symbols.txt index 6a37786936..e67ff66f71 100644 --- a/config/RZDE01_00/rels/d_a_npc_pachi_besu/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_pachi_besu/symbols.txt @@ -26,7 +26,7 @@ setAttnPos__18daNpc_Pachi_Besu_cFv = .text:0x000012B8; // type:function size:0x2 setCollision__18daNpc_Pachi_Besu_cFv = .text:0x000014E4; // type:function size:0x134 scope:global drawDbgInfo__18daNpc_Pachi_Besu_cFv = .text:0x00001618; // type:function size:0x8 scope:global selectAction__18daNpc_Pachi_Besu_cFv = .text:0x00001620; // type:function size:0x70 scope:global -fn_1690 = .text:0x00001690; // type:function size:0xA8 scope:global +setAction__18daNpc_Pachi_Besu_cFM18daNpc_Pachi_Besu_cFPCvPvPv_i = .text:0x00001690; // type:function size:0xA8 scope:global wait__18daNpc_Pachi_Besu_cFPv = .text:0x00001738; // type:function size:0x1DC scope:global talk__18daNpc_Pachi_Besu_cFPv = .text:0x00001914; // type:function size:0x8C scope:global _turn_to_link__18daNpc_Pachi_Besu_cFs = .text:0x000019A0; // type:function size:0x5C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_pachi_maro/symbols.txt b/config/RZDE01_00/rels/d_a_npc_pachi_maro/symbols.txt index c48e2987a3..ab41efe93b 100644 --- a/config/RZDE01_00/rels/d_a_npc_pachi_maro/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_pachi_maro/symbols.txt @@ -28,7 +28,7 @@ drawDbgInfo__18daNpc_Pachi_Maro_cFv = .text:0x00001520; // type:function size:0x getFaceMotionAnm__18daNpc_Pachi_Maro_cF26daNpcT_faceMotionAnmData_c = .text:0x00001528; // type:function size:0x8C scope:global getMotionAnm__18daNpc_Pachi_Maro_cF22daNpcT_motionAnmData_c = .text:0x000015B4; // type:function size:0x8C scope:global selectAction__18daNpc_Pachi_Maro_cFv = .text:0x00001640; // type:function size:0x70 scope:global -fn_16b0 = .text:0x000016B0; // type:function size:0xA8 scope:global +setAction__18daNpc_Pachi_Maro_cFM18daNpc_Pachi_Maro_cFPCvPvPv_i = .text:0x000016B0; // type:function size:0xA8 scope:global wait__18daNpc_Pachi_Maro_cFPv = .text:0x00001758; // type:function size:0x1CC scope:global talk__18daNpc_Pachi_Maro_cFPv = .text:0x00001924; // type:function size:0x8C scope:global _turn_to_link__18daNpc_Pachi_Maro_cFs = .text:0x000019B0; // type:function size:0x5C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_pachi_taro/symbols.txt b/config/RZDE01_00/rels/d_a_npc_pachi_taro/symbols.txt index 3abac8c338..26197f4db8 100644 --- a/config/RZDE01_00/rels/d_a_npc_pachi_taro/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_pachi_taro/symbols.txt @@ -30,7 +30,7 @@ setCollision__18daNpc_Pachi_Taro_cFv = .text:0x00001660; // type:function size:0 drawDbgInfo__18daNpc_Pachi_Taro_cFv = .text:0x00001768; // type:function size:0x8 scope:global drawOtherMdl__18daNpc_Pachi_Taro_cFv = .text:0x00001770; // type:function size:0x104 scope:global selectAction__18daNpc_Pachi_Taro_cFv = .text:0x00001874; // type:function size:0x70 scope:global -fn_18e4 = .text:0x000018E4; // type:function size:0xA8 scope:global +setAction__18daNpc_Pachi_Taro_cFM18daNpc_Pachi_Taro_cFPCvPvPv_i = .text:0x000018E4; // type:function size:0xA8 scope:global wait__18daNpc_Pachi_Taro_cFPv = .text:0x0000198C; // type:function size:0x24C scope:global setMesPat__18daNpc_Pachi_Taro_cFv = .text:0x00001BD8; // type:function size:0xD0 scope:global _turn_to_link__18daNpc_Pachi_Taro_cFs = .text:0x00001CA8; // type:function size:0x5C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_post/symbols.txt b/config/RZDE01_00/rels/d_a_npc_post/symbols.txt index 8b0fc86b1c..fa801f894e 100644 --- a/config/RZDE01_00/rels/d_a_npc_post/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_post/symbols.txt @@ -28,7 +28,7 @@ drawOtherMdl__12daNpc_Post_cFv = .text:0x000018A0; // type:function size:0x184 s setFlagAnm__12daNpc_Post_cFiif = .text:0x00001A24; // type:function size:0xC4 scope:global afterSetMotionAnm__12daNpc_Post_cFiifi = .text:0x00001AE8; // type:function size:0x18 scope:global selectAction__12daNpc_Post_cFv = .text:0x00001B00; // type:function size:0x40 scope:global -fn_1b40 = .text:0x00001B40; // type:function size:0xA8 scope:global +setAction__12daNpc_Post_cFM12daNpc_Post_cFPCvPvPv_i = .text:0x00001B40; // type:function size:0xA8 scope:global chkPullOutLetter1__12daNpc_Post_cFv = .text:0x00001BE8; // type:function size:0x74 scope:global chkPullOutLetter2__12daNpc_Post_cFv = .text:0x00001C5C; // type:function size:0x74 scope:global pullOutLetter__12daNpc_Post_cFv = .text:0x00001CD0; // type:function size:0xC0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_pouya/symbols.txt b/config/RZDE01_00/rels/d_a_npc_pouya/symbols.txt index 83e49f579e..41f851fa3f 100644 --- a/config/RZDE01_00/rels/d_a_npc_pouya/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_pouya/symbols.txt @@ -27,7 +27,7 @@ drawDbgInfo__13daNpc_Pouya_cFv = .text:0x000019AC; // type:function size:0x8 sco drawOtherMdl__13daNpc_Pouya_cFv = .text:0x000019B4; // type:function size:0xE8 scope:global afterSetMotionAnm__13daNpc_Pouya_cFiifi = .text:0x00001A9C; // type:function size:0x90 scope:global selectAction__13daNpc_Pouya_cFv = .text:0x00001B2C; // type:function size:0x40 scope:global -fn_1b6c = .text:0x00001B6C; // type:function size:0xA8 scope:global +setAction__13daNpc_Pouya_cFM13daNpc_Pouya_cFPCvPvPv_i = .text:0x00001B6C; // type:function size:0xA8 scope:global setPrtcls__13daNpc_Pouya_cFv = .text:0x00001C14; // type:function size:0x114 scope:global cutHaveFavorToAsk__13daNpc_Pouya_cFi = .text:0x00001D28; // type:function size:0x5D4 scope:global wait__13daNpc_Pouya_cFPv = .text:0x000022FC; // type:function size:0x418 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_prayer/symbols.txt b/config/RZDE01_00/rels/d_a_npc_prayer/symbols.txt index d0bf0fbcb4..804f7e3573 100644 --- a/config/RZDE01_00/rels/d_a_npc_prayer/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_prayer/symbols.txt @@ -18,7 +18,7 @@ setMotion__11daNpcPray_cFifi = .text:0x00000CCC; // type:function size:0x48 scop drawDbgInfo__11daNpcPray_cFv = .text:0x00000D14; // type:function size:0x8 scope:global reset__11daNpcPray_cFv = .text:0x00000D1C; // type:function size:0x140 scope:global playMotion__11daNpcPray_cFv = .text:0x00000E5C; // type:function size:0x170 scope:global -fn_fcc = .text:0x00000FCC; // type:function size:0xA8 scope:global +setAction__11daNpcPray_cFM11daNpcPray_cFPCvPvPv_b = .text:0x00000FCC; // type:function size:0xA8 scope:global setLookMode__11daNpcPray_cFi = .text:0x00001074; // type:function size:0x24 scope:global lookat__11daNpcPray_cFv = .text:0x00001098; // type:function size:0x228 scope:global step__11daNpcPray_cFsi = .text:0x000012C0; // type:function size:0xD8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_raca/symbols.txt b/config/RZDE01_00/rels/d_a_npc_raca/symbols.txt index 2647bed5c5..c4c6200409 100644 --- a/config/RZDE01_00/rels/d_a_npc_raca/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_raca/symbols.txt @@ -26,7 +26,7 @@ setAttnPos__12daNpc_Raca_cFv = .text:0x00001148; // type:function size:0x218 sco setCollision__12daNpc_Raca_cFv = .text:0x00001360; // type:function size:0x144 scope:global drawDbgInfo__12daNpc_Raca_cFv = .text:0x000014A4; // type:function size:0x8 scope:global selectAction__12daNpc_Raca_cFv = .text:0x000014AC; // type:function size:0xFC scope:global -fn_15a8 = .text:0x000015A8; // type:function size:0xA8 scope:global +setAction__12daNpc_Raca_cFM12daNpc_Raca_cFPCvPvPv_i = .text:0x000015A8; // type:function size:0xA8 scope:global wait__12daNpc_Raca_cFPv = .text:0x00001650; // type:function size:0x1F8 scope:global walk__12daNpc_Raca_cFPv = .text:0x00001848; // type:function size:0x1C4 scope:global talk__12daNpc_Raca_cFPv = .text:0x00001A0C; // type:function size:0x1B8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_rafrel/symbols.txt b/config/RZDE01_00/rels/d_a_npc_rafrel/symbols.txt index dacb57f339..dd6a47df78 100644 --- a/config/RZDE01_00/rels/d_a_npc_rafrel/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_rafrel/symbols.txt @@ -15,7 +15,7 @@ setExpressionAnm__13daNpcRafrel_cFib = .text:0x00001004; // type:function size:0 setExpressionBtp__13daNpcRafrel_cFi = .text:0x00001210; // type:function size:0xD8 scope:global setMotionAnm__13daNpcRafrel_cFif = .text:0x000012E8; // type:function size:0x1B0 scope:global setWaitAction__13daNpcRafrel_cFv = .text:0x00001498; // type:function size:0xC0 scope:global -fn_1558 = .text:0x00001558; // type:function size:0xA8 scope:global +setAction__13daNpcRafrel_cFM13daNpcRafrel_cFPCvPvPv_b = .text:0x00001558; // type:function size:0xA8 scope:global isSneaking__13daNpcRafrel_cFv = .text:0x00001600; // type:function size:0x58 scope:global wait_type01__13daNpcRafrel_cFPv = .text:0x00001658; // type:function size:0x564 scope:global setExpression__13daNpcRafrel_cFif = .text:0x00001BBC; // type:function size:0x2C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_saru/symbols.txt b/config/RZDE01_00/rels/d_a_npc_saru/symbols.txt index 4214d72c86..e9d5126b77 100644 --- a/config/RZDE01_00/rels/d_a_npc_saru/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_saru/symbols.txt @@ -26,7 +26,7 @@ setCollision__12daNpc_Saru_cFv = .text:0x00001428; // type:function size:0x184 s drawDbgInfo__12daNpc_Saru_cFv = .text:0x000015AC; // type:function size:0x8 scope:global drawOtherMdl__12daNpc_Saru_cFv = .text:0x000015B4; // type:function size:0x104 scope:global selectAction__12daNpc_Saru_cFv = .text:0x000016B8; // type:function size:0x40 scope:global -fn_16f8 = .text:0x000016F8; // type:function size:0xA8 scope:global +setAction__12daNpc_Saru_cFM12daNpc_Saru_cFPCvPvPv_i = .text:0x000016F8; // type:function size:0xA8 scope:global setSe__12daNpc_Saru_cFv = .text:0x000017A0; // type:function size:0x54C scope:global cutFindMonkey__12daNpc_Saru_cFi = .text:0x00001CEC; // type:function size:0x214 scope:global cutHelpMe__12daNpc_Saru_cFi = .text:0x00001F00; // type:function size:0x198 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_seib/symbols.txt b/config/RZDE01_00/rels/d_a_npc_seib/symbols.txt index 72f77b34bb..8ec4e1123d 100644 --- a/config/RZDE01_00/rels/d_a_npc_seib/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_seib/symbols.txt @@ -19,7 +19,7 @@ setAttnPos__12daNpc_seiB_cFv = .text:0x00000BC8; // type:function size:0x44 scop drawDbgInfo__12daNpc_seiB_cFv = .text:0x00000C0C; // type:function size:0x8 scope:global afterSetMotionAnm__12daNpc_seiB_cFiifi = .text:0x00000C14; // type:function size:0x198 scope:global selectAction__12daNpc_seiB_cFv = .text:0x00000DAC; // type:function size:0x40 scope:global -fn_dec = .text:0x00000DEC; // type:function size:0xA8 scope:global +setAction__12daNpc_seiB_cFM12daNpc_seiB_cFPCvPvPv_i = .text:0x00000DEC; // type:function size:0xA8 scope:global ctrlWaitAnm__12daNpc_seiB_cFv = .text:0x00000E94; // type:function size:0x1E4 scope:global wait__12daNpc_seiB_cFPv = .text:0x00001078; // type:function size:0x2C scope:global talk__12daNpc_seiB_cFPv = .text:0x000010A4; // type:function size:0xA0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_seic/symbols.txt b/config/RZDE01_00/rels/d_a_npc_seic/symbols.txt index c20bc53d1e..b5b20b367c 100644 --- a/config/RZDE01_00/rels/d_a_npc_seic/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_seic/symbols.txt @@ -19,7 +19,7 @@ setAttnPos__12daNpc_seiC_cFv = .text:0x00000BD4; // type:function size:0x44 scop drawDbgInfo__12daNpc_seiC_cFv = .text:0x00000C18; // type:function size:0x8 scope:global afterSetMotionAnm__12daNpc_seiC_cFiifi = .text:0x00000C20; // type:function size:0x198 scope:global selectAction__12daNpc_seiC_cFv = .text:0x00000DB8; // type:function size:0x40 scope:global -fn_df8 = .text:0x00000DF8; // type:function size:0xA8 scope:global +setAction__12daNpc_seiC_cFM12daNpc_seiC_cFPCvPvPv_i = .text:0x00000DF8; // type:function size:0xA8 scope:global wait__12daNpc_seiC_cFPv = .text:0x00000EA0; // type:function size:0x2C scope:global talk__12daNpc_seiC_cFPv = .text:0x00000ECC; // type:function size:0xA0 scope:global daNpc_seiC_Create__FPv = .text:0x00000F6C; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_seid/symbols.txt b/config/RZDE01_00/rels/d_a_npc_seid/symbols.txt index 2c8ef94618..9bec2c1907 100644 --- a/config/RZDE01_00/rels/d_a_npc_seid/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_seid/symbols.txt @@ -19,7 +19,7 @@ setAttnPos__12daNpc_seiD_cFv = .text:0x00000BD4; // type:function size:0x44 scop drawDbgInfo__12daNpc_seiD_cFv = .text:0x00000C18; // type:function size:0x8 scope:global afterSetMotionAnm__12daNpc_seiD_cFiifi = .text:0x00000C20; // type:function size:0x198 scope:global selectAction__12daNpc_seiD_cFv = .text:0x00000DB8; // type:function size:0x40 scope:global -fn_df8 = .text:0x00000DF8; // type:function size:0xA8 scope:global +setAction__12daNpc_seiD_cFM12daNpc_seiD_cFPCvPvPv_i = .text:0x00000DF8; // type:function size:0xA8 scope:global wait__12daNpc_seiD_cFPv = .text:0x00000EA0; // type:function size:0x2C scope:global talk__12daNpc_seiD_cFPv = .text:0x00000ECC; // type:function size:0xA0 scope:global daNpc_seiD_Create__FPv = .text:0x00000F6C; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_seira/symbols.txt b/config/RZDE01_00/rels/d_a_npc_seira/symbols.txt index b9189122e5..4298463953 100644 --- a/config/RZDE01_00/rels/d_a_npc_seira/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_seira/symbols.txt @@ -34,7 +34,7 @@ changeBck__13daNpc_Seira_cFPiPi = .text:0x00001D20; // type:function size:0xAC s changeBtp__13daNpc_Seira_cFPiPi = .text:0x00001DCC; // type:function size:0x98 scope:global changeBtk__13daNpc_Seira_cFPiPi = .text:0x00001E64; // type:function size:0x2C scope:global selectAction__13daNpc_Seira_cFv = .text:0x00001E90; // type:function size:0x1AC scope:global -fn_203c = .text:0x0000203C; // type:function size:0xA8 scope:global +setAction__13daNpc_Seira_cFM13daNpc_Seira_cFPCvPvPv_i = .text:0x0000203C; // type:function size:0xA8 scope:global cutConversationAboutSaru__13daNpc_Seira_cFi = .text:0x000020E4; // type:function size:0x238 scope:global checkStageIsSeirasShop__13daNpc_Seira_cFv = .text:0x0000231C; // type:function size:0x74 scope:global getShopItemType__13daNpc_Seira_cFv = .text:0x00002390; // type:function size:0x40 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_seira2/symbols.txt b/config/RZDE01_00/rels/d_a_npc_seira2/symbols.txt index 8efa2af9e1..046dd1d624 100644 --- a/config/RZDE01_00/rels/d_a_npc_seira2/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_seira2/symbols.txt @@ -28,7 +28,7 @@ drawOtherMdl__14daNpc_Seira2_cFv = .text:0x00001860; // type:function size:0xDC setBottleAnm__14daNpc_Seira2_cFiifb = .text:0x0000193C; // type:function size:0xE0 scope:global afterSetMotionAnm__14daNpc_Seira2_cFiifi = .text:0x00001A1C; // type:function size:0x1C scope:global selectAction__14daNpc_Seira2_cFv = .text:0x00001A38; // type:function size:0x140 scope:global -fn_1b78 = .text:0x00001B78; // type:function size:0xA8 scope:global +setAction__14daNpc_Seira2_cFM14daNpc_Seira2_cFPCvPvPv_i = .text:0x00001B78; // type:function size:0xA8 scope:global checkStageIsSeira2sShop__14daNpc_Seira2_cFv = .text:0x00001C20; // type:function size:0x74 scope:global wait__14daNpc_Seira2_cFPv = .text:0x00001C94; // type:function size:0x138 scope:global sit__14daNpc_Seira2_cFPv = .text:0x00001DCC; // type:function size:0x1A8 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_seirei/symbols.txt b/config/RZDE01_00/rels/d_a_npc_seirei/symbols.txt index b05964de94..810b20dd2b 100644 --- a/config/RZDE01_00/rels/d_a_npc_seirei/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_seirei/symbols.txt @@ -20,7 +20,7 @@ setAttnPos__14daNpc_Seirei_cFv = .text:0x00000CF4; // type:function size:0x110 s drawDbgInfo__14daNpc_Seirei_cFv = .text:0x00000E04; // type:function size:0x8 scope:global afterSetMotionAnm__14daNpc_Seirei_cFiifi = .text:0x00000E0C; // type:function size:0x198 scope:global selectAction__14daNpc_Seirei_cFv = .text:0x00000FA4; // type:function size:0x40 scope:global -fn_fe4 = .text:0x00000FE4; // type:function size:0xA8 scope:global +setAction__14daNpc_Seirei_cFM14daNpc_Seirei_cFPCvPvPv_i = .text:0x00000FE4; // type:function size:0xA8 scope:global ctrlWaitAnm__14daNpc_Seirei_cFv = .text:0x0000108C; // type:function size:0xC0 scope:global setPrtcls__14daNpc_Seirei_cFv = .text:0x0000114C; // type:function size:0x214 scope:global chkFirstMeeting__14daNpc_Seirei_cFv = .text:0x00001360; // type:function size:0x84 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_shad/symbols.txt b/config/RZDE01_00/rels/d_a_npc_shad/symbols.txt index 965107833c..e7a311c808 100644 --- a/config/RZDE01_00/rels/d_a_npc_shad/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_shad/symbols.txt @@ -15,7 +15,7 @@ setExpressionAnm__11daNpcShad_cFib = .text:0x00001178; // type:function size:0x2 setExpressionBtp__11daNpcShad_cFi = .text:0x00001410; // type:function size:0xD8 scope:global setMotionAnm__11daNpcShad_cFif = .text:0x000014E8; // type:function size:0x188 scope:global setWaitAction__11daNpcShad_cFv = .text:0x00001670; // type:function size:0xC0 scope:global -fn_1730 = .text:0x00001730; // type:function size:0xA8 scope:global +setAction__11daNpcShad_cFM11daNpcShad_cFPCvPvPv_b = .text:0x00001730; // type:function size:0xA8 scope:global getPathPoint__11daNpcShad_cFUciP3Vec = .text:0x000017D8; // type:function size:0x84 scope:global isSneaking__11daNpcShad_cFv = .text:0x0000185C; // type:function size:0x6C scope:global wait_type0__11daNpcShad_cFPv = .text:0x000018C8; // type:function size:0x324 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_shaman/symbols.txt b/config/RZDE01_00/rels/d_a_npc_shaman/symbols.txt index e95ca1533d..bb96e26271 100644 --- a/config/RZDE01_00/rels/d_a_npc_shaman/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_shaman/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__11daNpc_Sha_cFv = .text:0x00001088; // type:function size:0x2D8 scop setCollision__11daNpc_Sha_cFv = .text:0x00001360; // type:function size:0x160 scope:global drawDbgInfo__11daNpc_Sha_cFv = .text:0x000014C0; // type:function size:0x8 scope:global selectAction__11daNpc_Sha_cFv = .text:0x000014C8; // type:function size:0x40 scope:global -fn_1508 = .text:0x00001508; // type:function size:0xA8 scope:global +setAction__11daNpc_Sha_cFM11daNpc_Sha_cFPCvPvPv_i = .text:0x00001508; // type:function size:0xA8 scope:global getSceneChangeNoTableIx__11daNpc_Sha_cFv = .text:0x000015B0; // type:function size:0x32C scope:global setTempBit__11daNpc_Sha_cFi = .text:0x000018DC; // type:function size:0xA8 scope:global cutPerformAugury__11daNpc_Sha_cFi = .text:0x00001984; // type:function size:0x454 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_shoe/symbols.txt b/config/RZDE01_00/rels/d_a_npc_shoe/symbols.txt index c59653c26b..c906f94659 100644 --- a/config/RZDE01_00/rels/d_a_npc_shoe/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_shoe/symbols.txt @@ -13,7 +13,7 @@ ctrlJoint__11daNpcShoe_cFP8J3DJointP8J3DModel = .text:0x00000CA0; // type:functi createHeapCallBack__11daNpcShoe_cFP10fopAc_ac_c = .text:0x00000DE4; // type:function size:0x4 scope:global ctrlJointCallBack__11daNpcShoe_cFP8J3DJointi = .text:0x00000DE8; // type:function size:0x48 scope:global setMotion__11daNpcShoe_cFifi = .text:0x00000E30; // type:function size:0x48 scope:global -fn_e78 = .text:0x00000E78; // type:function size:0xA8 scope:global +setAction__11daNpcShoe_cFM11daNpcShoe_cFPCvPvPv_b = .text:0x00000E78; // type:function size:0xA8 scope:global wait__11daNpcShoe_cFPv = .text:0x00000F20; // type:function size:0x2EC scope:global setLookMode__11daNpcShoe_cFi = .text:0x0000120C; // type:function size:0x24 scope:global fear__11daNpcShoe_cFPv = .text:0x00001230; // type:function size:0xB0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_shop0/symbols.txt b/config/RZDE01_00/rels/d_a_npc_shop0/symbols.txt index 94f624c46b..f8f621b1c1 100644 --- a/config/RZDE01_00/rels/d_a_npc_shop0/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_shop0/symbols.txt @@ -18,7 +18,7 @@ orderEvent__13daNpc_Shop0_cFv = .text:0x00000960; // type:function size:0x28 sco setMtx__13daNpc_Shop0_cFv = .text:0x00000988; // type:function size:0x90 scope:global setRoomInf__13daNpc_Shop0_cFv = .text:0x00000A18; // type:function size:0xA0 scope:global cut_alert__13daNpc_Shop0_cFii = .text:0x00000AB8; // type:function size:0x60 scope:global -fn_b18 = .text:0x00000B18; // type:function size:0x114 scope:global +setProcess__13daNpc_Shop0_cFM13daNpc_Shop0_cFPCvPvPv_iPvi = .text:0x00000B18; // type:function size:0x114 scope:global wait__13daNpc_Shop0_cFPv = .text:0x00000C2C; // type:function size:0x80 scope:global talk__13daNpc_Shop0_cFPv = .text:0x00000CAC; // type:function size:0xD8 scope:global daNpc_Shop0_Create__FPv = .text:0x00000D84; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_sola/symbols.txt b/config/RZDE01_00/rels/d_a_npc_sola/symbols.txt index fd0ee3f1c4..7f4519fb05 100644 --- a/config/RZDE01_00/rels/d_a_npc_sola/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_sola/symbols.txt @@ -22,7 +22,7 @@ setCollision__12daNpc_solA_cFv = .text:0x00000E88; // type:function size:0xD4 sc drawDbgInfo__12daNpc_solA_cFv = .text:0x00000F5C; // type:function size:0x8 scope:global drawOtherMdl__12daNpc_solA_cFv = .text:0x00000F64; // type:function size:0x4 scope:global selectAction__12daNpc_solA_cFv = .text:0x00000F68; // type:function size:0x40 scope:global -fn_fa8 = .text:0x00000FA8; // type:function size:0xA8 scope:global +setAction__12daNpc_solA_cFM12daNpc_solA_cFPCvPvPv_i = .text:0x00000FA8; // type:function size:0xA8 scope:global wait__12daNpc_solA_cFPv = .text:0x00001050; // type:function size:0x10C scope:global talk__12daNpc_solA_cFPv = .text:0x0000115C; // type:function size:0x148 scope:global daNpc_solA_Create__FPv = .text:0x000012A4; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_soldierA/symbols.txt b/config/RZDE01_00/rels/d_a_npc_soldierA/symbols.txt index 8c1805b8a6..bce6374871 100644 --- a/config/RZDE01_00/rels/d_a_npc_soldierA/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_soldierA/symbols.txt @@ -23,7 +23,7 @@ getTypeFromParam__16daNpc_SoldierA_cFv = .text:0x000013A4; // type:function size isDelete__16daNpc_SoldierA_cFv = .text:0x000013F0; // type:function size:0x10 scope:global reset__16daNpc_SoldierA_cFv = .text:0x00001400; // type:function size:0x138 scope:global playMotion__16daNpc_SoldierA_cFv = .text:0x00001538; // type:function size:0x1E4 scope:global -fn_171c = .text:0x0000171C; // type:function size:0xA8 scope:global +setAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFPCvPvPv_i = .text:0x0000171C; // type:function size:0xA8 scope:global selectAction__16daNpc_SoldierA_cFv = .text:0x000017C4; // type:function size:0x40 scope:global doNormalAction__16daNpc_SoldierA_cFi = .text:0x00001804; // type:function size:0x108 scope:global doEvent__16daNpc_SoldierA_cFv = .text:0x0000190C; // type:function size:0x2D0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_soldierB/symbols.txt b/config/RZDE01_00/rels/d_a_npc_soldierB/symbols.txt index 240c866733..5746336eeb 100644 --- a/config/RZDE01_00/rels/d_a_npc_soldierB/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_soldierB/symbols.txt @@ -23,7 +23,7 @@ getTypeFromParam__16daNpc_SoldierB_cFv = .text:0x00001380; // type:function size isDelete__16daNpc_SoldierB_cFv = .text:0x000013A0; // type:function size:0x10 scope:global reset__16daNpc_SoldierB_cFv = .text:0x000013B0; // type:function size:0x12C scope:global playMotion__16daNpc_SoldierB_cFv = .text:0x000014DC; // type:function size:0x10C scope:global -fn_15e8 = .text:0x000015E8; // type:function size:0xA8 scope:global +setAction__16daNpc_SoldierB_cFM16daNpc_SoldierB_cFPCvPvPv_i = .text:0x000015E8; // type:function size:0xA8 scope:global selectAction__16daNpc_SoldierB_cFv = .text:0x00001690; // type:function size:0x40 scope:global doNormalAction__16daNpc_SoldierB_cFi = .text:0x000016D0; // type:function size:0x108 scope:global doEvent__16daNpc_SoldierB_cFv = .text:0x000017D8; // type:function size:0x27C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_taro/symbols.txt b/config/RZDE01_00/rels/d_a_npc_taro/symbols.txt index 13fc4f9077..bcf928977a 100644 --- a/config/RZDE01_00/rels/d_a_npc_taro/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_taro/symbols.txt @@ -31,7 +31,7 @@ drawDbgInfo__12daNpc_Taro_cFv = .text:0x000023EC; // type:function size:0x8 scop drawOtherMdl__12daNpc_Taro_cFv = .text:0x000023F4; // type:function size:0x104 scope:global getFaceMotionAnm__12daNpc_Taro_cF26daNpcT_faceMotionAnmData_c = .text:0x000024F8; // type:function size:0x98 scope:global selectAction__12daNpc_Taro_cFv = .text:0x00002590; // type:function size:0xFC scope:global -fn_268c = .text:0x0000268C; // type:function size:0xA8 scope:global +setAction__12daNpc_Taro_cFM12daNpc_Taro_cFPCvPvPv_i = .text:0x0000268C; // type:function size:0xA8 scope:global setSwingVoice__12daNpc_Taro_cFv = .text:0x00002734; // type:function size:0x130 scope:global cutConversationAboutPachinko__12daNpc_Taro_cFi = .text:0x00002864; // type:function size:0x180 scope:global cutConversationAboutWoodSwd__12daNpc_Taro_cFi = .text:0x000029E4; // type:function size:0x150 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_the/symbols.txt b/config/RZDE01_00/rels/d_a_npc_the/symbols.txt index b0f8baa177..08f59eec17 100644 --- a/config/RZDE01_00/rels/d_a_npc_the/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_the/symbols.txt @@ -28,7 +28,7 @@ ctrlBtk__10daNpcThe_cFv = .text:0x00001ACC; // type:function size:0xD8 scope:glo main__10daNpcThe_cFv = .text:0x00001BA4; // type:function size:0xDB4 scope:global talk__10daNpcThe_cFPv = .text:0x00002958; // type:function size:0x3E0 scope:global isSneaking__10daNpcThe_cFv = .text:0x00002D38; // type:function size:0x6C scope:global -fn_2da4 = .text:0x00002DA4; // type:function size:0xA8 scope:global +setAction__10daNpcThe_cFM10daNpcThe_cFPCvPvPv_i = .text:0x00002DA4; // type:function size:0xA8 scope:global setParam__10daNpcThe_cFv = .text:0x00002E4C; // type:function size:0x1F4 scope:global waitTW__10daNpcThe_cFPv = .text:0x00003040; // type:function size:0x140 scope:global wait__10daNpcThe_cFPv = .text:0x00003180; // type:function size:0x34C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_theB/symbols.txt b/config/RZDE01_00/rels/d_a_npc_theB/symbols.txt index a0e6cc19c0..19b30b0034 100644 --- a/config/RZDE01_00/rels/d_a_npc_theB/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_theB/symbols.txt @@ -22,7 +22,7 @@ setExpressionAnm__11daNpcTheB_cFib = .text:0x00001B80; // type:function size:0x1 setExpressionBtp__11daNpcTheB_cFi = .text:0x00001D70; // type:function size:0xF0 scope:global setMotionAnm__11daNpcTheB_cFif = .text:0x00001E60; // type:function size:0x1D8 scope:global drawDbgInfo__11daNpcTheB_cFv = .text:0x00002038; // type:function size:0x8 scope:global -fn_2040 = .text:0x00002040; // type:function size:0xA4 scope:global +setAction__11daNpcTheB_cFM11daNpcTheB_cFPCvPvPv_i = .text:0x00002040; // type:function size:0xA4 scope:global wait__11daNpcTheB_cFPv = .text:0x000020E4; // type:function size:0x530 scope:global setExpression__11daNpcTheB_cFif = .text:0x00002614; // type:function size:0x2C scope:global setMotion__11daNpcTheB_cFifi = .text:0x00002640; // type:function size:0x44 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_tkc/symbols.txt b/config/RZDE01_00/rels/d_a_npc_tkc/symbols.txt index dcdaf4cb57..78b7c94149 100644 --- a/config/RZDE01_00/rels/d_a_npc_tkc/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_tkc/symbols.txt @@ -18,7 +18,7 @@ setMtx__10daNpcTkc_cFv = .text:0x00000D98; // type:function size:0x94 scope:glob setExpressionAnm__10daNpcTkc_cFib = .text:0x00000E2C; // type:function size:0x148 scope:global setExpressionBtp__10daNpcTkc_cFi = .text:0x00000F74; // type:function size:0xC8 scope:global setMotionAnm__10daNpcTkc_cFif = .text:0x0000103C; // type:function size:0x130 scope:global -fn_116c = .text:0x0000116C; // type:function size:0xA0 scope:global +setAction__10daNpcTkc_cFM10daNpcTkc_cFPCvPv_v = .text:0x0000116C; // type:function size:0xA0 scope:global wait__10daNpcTkc_cFv = .text:0x0000120C; // type:function size:0x1B8 scope:global setLookMode__10daNpcTkc_cFi = .text:0x000013C4; // type:function size:0x24 scope:global searchPlayer__10daNpcTkc_cFv = .text:0x000013E8; // type:function size:0xA0 scope:global @@ -62,7 +62,7 @@ m__16daNpcTkc_Param_c = .rodata:0x00000000; // type:object size:0xA4 scope:globa @102127 = .rodata:0x000000BC; // type:object size:0x4 scope:local @102128 = .rodata:0x000000C0; // type:object size:0x4 scope:local @102129 = .rodata:0x000000C4; // type:object size:0x4 scope:local align:4 data:float -@LOCAL@daNpcTkc_c::reset(void)@m_cameraItemNum = .rodata:0x000000C8; // type:object size:0x4 scope:local +m_cameraItemNum$localstatic3$reset__10daNpcTkc_cFv = .rodata:0x000000C8; // type:object size:0x4 scope:local @98172 = .rodata:0x000000CC; // type:object size:0xC scope:local @98199 = .rodata:0x000000D8; // type:object size:0xC scope:local @102480 = .rodata:0x000000E8; // type:object size:0x8 scope:local diff --git a/config/RZDE01_00/rels/d_a_npc_tkj/symbols.txt b/config/RZDE01_00/rels/d_a_npc_tkj/symbols.txt index 4a4fb08581..2d30aeabc8 100644 --- a/config/RZDE01_00/rels/d_a_npc_tkj/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_tkj/symbols.txt @@ -17,7 +17,7 @@ setAttnPos__10daNpcTkj_cFv = .text:0x00000C94; // type:function size:0x228 scope setCollision__10daNpcTkj_cFv = .text:0x00000EBC; // type:function size:0xD4 scope:global drawDbgInfo__10daNpcTkj_cFv = .text:0x00000F90; // type:function size:0x8 scope:global selectAction__10daNpcTkj_cFv = .text:0x00000F98; // type:function size:0x40 scope:global -fn_fd8 = .text:0x00000FD8; // type:function size:0xA8 scope:global +setAction__10daNpcTkj_cFM10daNpcTkj_cFPCvPvPv_i = .text:0x00000FD8; // type:function size:0xA8 scope:global wait__10daNpcTkj_cFPv = .text:0x00001080; // type:function size:0x144 scope:global talk__10daNpcTkj_cFPv = .text:0x000011C4; // type:function size:0x1D0 scope:global cutLv7Start__10daNpcTkj_cFi = .text:0x00001394; // type:function size:0x30C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_tks/symbols.txt b/config/RZDE01_00/rels/d_a_npc_tks/symbols.txt index 4a46b8de8c..59d815a4e9 100644 --- a/config/RZDE01_00/rels/d_a_npc_tks/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_tks/symbols.txt @@ -15,7 +15,7 @@ setMtx__10daNpcTks_cFv = .text:0x000013AC; // type:function size:0xF8 scope:glob setExpressionAnm__10daNpcTks_cFib = .text:0x000014A4; // type:function size:0x148 scope:global setExpressionBtp__10daNpcTks_cFi = .text:0x000015EC; // type:function size:0xC8 scope:global setMotion__10daNpcTks_cFifi = .text:0x000016B4; // type:function size:0x44 scope:global -fn_16f8 = .text:0x000016F8; // type:function size:0xA0 scope:global +setAction__10daNpcTks_cFM10daNpcTks_cFPCvPv_v = .text:0x000016F8; // type:function size:0xA0 scope:global wait__10daNpcTks_cFv = .text:0x00001798; // type:function size:0x10C scope:global setMotionAnm__10daNpcTks_cFif = .text:0x000018A4; // type:function size:0x1D8 scope:global setTsuboMotionAnm__10daNpcTks_cFif = .text:0x00001A7C; // type:function size:0xB0 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_toby/symbols.txt b/config/RZDE01_00/rels/d_a_npc_toby/symbols.txt index e61ade712a..344d097b30 100644 --- a/config/RZDE01_00/rels/d_a_npc_toby/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_toby/symbols.txt @@ -30,7 +30,7 @@ drawOtherMdl__12daNpc_Toby_cFv = .text:0x00001C14; // type:function size:0xD8 sc afterSetFaceMotionAnm__12daNpc_Toby_cFiifi = .text:0x00001CEC; // type:function size:0x58 scope:global afterSetMotionAnm__12daNpc_Toby_cFiifi = .text:0x00001D44; // type:function size:0x8C scope:global selectAction__12daNpc_Toby_cFv = .text:0x00001DD0; // type:function size:0x128 scope:global -fn_1ef8 = .text:0x00001EF8; // type:function size:0xA8 scope:global +setAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i = .text:0x00001EF8; // type:function size:0xA8 scope:global cutTobyHouseFire__12daNpc_Toby_cFi = .text:0x00001FA0; // type:function size:0x2A8 scope:global cutTalkToOneself__12daNpc_Toby_cFi = .text:0x00002248; // type:function size:0x4BC scope:global cutRepairSCannon__12daNpc_Toby_cFi = .text:0x00002704; // type:function size:0x544 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_uri/symbols.txt b/config/RZDE01_00/rels/d_a_npc_uri/symbols.txt index 7307769629..3403e6d5af 100644 --- a/config/RZDE01_00/rels/d_a_npc_uri/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_uri/symbols.txt @@ -29,7 +29,7 @@ afterSetMotionAnm__11daNpc_Uri_cFiifi = .text:0x00001C58; // type:function size: changeBck__11daNpc_Uri_cFPiPi = .text:0x00001C90; // type:function size:0x2C scope:global changeBtp__11daNpc_Uri_cFPiPi = .text:0x00001CBC; // type:function size:0x2C scope:global selectAction__11daNpc_Uri_cFv = .text:0x00001CE8; // type:function size:0x164 scope:global -fn_1e4c = .text:0x00001E4C; // type:function size:0xA8 scope:global +setAction__11daNpc_Uri_cFM11daNpc_Uri_cFPCvPvPv_i = .text:0x00001E4C; // type:function size:0xA8 scope:global chkPlayerCarryBasket__11daNpc_Uri_cFv = .text:0x00001EF4; // type:function size:0x74 scope:global getTutorialCond__11daNpc_Uri_cF4cXyz = .text:0x00001F68; // type:function size:0x2C0 scope:global cutConversation__11daNpc_Uri_cFi = .text:0x00002228; // type:function size:0x19C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_yamid/symbols.txt b/config/RZDE01_00/rels/d_a_npc_yamid/symbols.txt index 05656d9ce7..c4abf98a09 100644 --- a/config/RZDE01_00/rels/d_a_npc_yamid/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_yamid/symbols.txt @@ -25,7 +25,7 @@ setCollision__13daNpc_yamiD_cFv = .text:0x0000126C; // type:function size:0x144 drawDbgInfo__13daNpc_yamiD_cFv = .text:0x000013B0; // type:function size:0x8 scope:global drawGhost__13daNpc_yamiD_cFv = .text:0x000013B8; // type:function size:0x68 scope:global selectAction__13daNpc_yamiD_cFv = .text:0x00001420; // type:function size:0x40 scope:global -fn_1460 = .text:0x00001460; // type:function size:0xA8 scope:global +setAction__13daNpc_yamiD_cFM13daNpc_yamiD_cFPCvPvPv_i = .text:0x00001460; // type:function size:0xA8 scope:global wait__13daNpc_yamiD_cFPv = .text:0x00001508; // type:function size:0x248 scope:global talk__13daNpc_yamiD_cFPv = .text:0x00001750; // type:function size:0x188 scope:global cutStopper__13daNpc_yamiD_cFi = .text:0x000018D8; // type:function size:0xB4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_yamis/symbols.txt b/config/RZDE01_00/rels/d_a_npc_yamis/symbols.txt index ce2c7f883d..23d43da5ed 100644 --- a/config/RZDE01_00/rels/d_a_npc_yamis/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_yamis/symbols.txt @@ -25,7 +25,7 @@ setCollision__13daNpc_yamiS_cFv = .text:0x0000126C; // type:function size:0x15C drawDbgInfo__13daNpc_yamiS_cFv = .text:0x000013C8; // type:function size:0x8 scope:global drawGhost__13daNpc_yamiS_cFv = .text:0x000013D0; // type:function size:0x68 scope:global selectAction__13daNpc_yamiS_cFv = .text:0x00001438; // type:function size:0x40 scope:global -fn_1478 = .text:0x00001478; // type:function size:0xA8 scope:global +setAction__13daNpc_yamiS_cFM13daNpc_yamiS_cFPCvPvPv_i = .text:0x00001478; // type:function size:0xA8 scope:global wait__13daNpc_yamiS_cFPv = .text:0x00001520; // type:function size:0x248 scope:global talk__13daNpc_yamiS_cFPv = .text:0x00001768; // type:function size:0x19C scope:global cutStopper__13daNpc_yamiS_cFi = .text:0x00001904; // type:function size:0xB4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_yamit/symbols.txt b/config/RZDE01_00/rels/d_a_npc_yamit/symbols.txt index aa490299dc..11cf81c2bd 100644 --- a/config/RZDE01_00/rels/d_a_npc_yamit/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_yamit/symbols.txt @@ -28,7 +28,7 @@ drawDbgInfo__13daNpc_yamiT_cFv = .text:0x00001498; // type:function size:0x8 sco evtEndProc__13daNpc_yamiT_cFv = .text:0x000014A0; // type:function size:0x60 scope:global drawGhost__13daNpc_yamiT_cFv = .text:0x00001500; // type:function size:0x68 scope:global selectAction__13daNpc_yamiT_cFv = .text:0x00001568; // type:function size:0x40 scope:global -fn_15a8 = .text:0x000015A8; // type:function size:0xA8 scope:global +setAction__13daNpc_yamiT_cFM13daNpc_yamiT_cFPCvPvPv_i = .text:0x000015A8; // type:function size:0xA8 scope:global wait__13daNpc_yamiT_cFPv = .text:0x00001650; // type:function size:0x304 scope:global talk__13daNpc_yamiT_cFPv = .text:0x00001954; // type:function size:0x19C scope:global cutStopper__13daNpc_yamiT_cFi = .text:0x00001AF0; // type:function size:0x94 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_yelia/symbols.txt b/config/RZDE01_00/rels/d_a_npc_yelia/symbols.txt index 9a896dd90f..d0f4ba6dcc 100644 --- a/config/RZDE01_00/rels/d_a_npc_yelia/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_yelia/symbols.txt @@ -25,7 +25,7 @@ setAttnPos__13daNpc_Yelia_cFv = .text:0x00001618; // type:function size:0x334 sc setCollision__13daNpc_Yelia_cFv = .text:0x0000194C; // type:function size:0x160 scope:global drawDbgInfo__13daNpc_Yelia_cFv = .text:0x00001AAC; // type:function size:0x8 scope:global selectAction__13daNpc_Yelia_cFv = .text:0x00001AB4; // type:function size:0xB0 scope:global -fn_1b64 = .text:0x00001B64; // type:function size:0xA8 scope:global +setAction__13daNpc_Yelia_cFM13daNpc_Yelia_cFPCvPvPv_i = .text:0x00001B64; // type:function size:0xA8 scope:global cutConversationAboutLoopHole__13daNpc_Yelia_cFi = .text:0x00001C0C; // type:function size:0x204 scope:global cutTWResistance__13daNpc_Yelia_cFi = .text:0x00001E10; // type:function size:0x134 scope:global cutTakeWoodStatue__13daNpc_Yelia_cFi = .text:0x00001F44; // type:function size:0x788 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_ykm/symbols.txt b/config/RZDE01_00/rels/d_a_npc_ykm/symbols.txt index 1236ed4c81..586505a087 100644 --- a/config/RZDE01_00/rels/d_a_npc_ykm/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_ykm/symbols.txt @@ -37,7 +37,7 @@ setFishAnm__11daNpc_ykM_cFiif = .text:0x00002DDC; // type:function size:0xC4 sco setLeafAnm__11daNpc_ykM_cFif = .text:0x00002EA0; // type:function size:0xCC scope:global afterSetMotionAnm__11daNpc_ykM_cFiifi = .text:0x00002F6C; // type:function size:0x3C scope:global selectAction__11daNpc_ykM_cFv = .text:0x00002FA8; // type:function size:0x15C scope:global -fn_3104 = .text:0x00003104; // type:function size:0xA8 scope:global +setAction__11daNpc_ykM_cFM11daNpc_ykM_cFPCvPvPv_i = .text:0x00003104; // type:function size:0xA8 scope:global chkContinueAttnPlayer__11daNpc_ykM_cFv = .text:0x000031AC; // type:function size:0x8C scope:global chkTouchPlayer__11daNpc_ykM_cFv = .text:0x00003238; // type:function size:0xD0 scope:global cutSlideDown__11daNpc_ykM_cFi = .text:0x00003308; // type:function size:0x65C scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_ykw/symbols.txt b/config/RZDE01_00/rels/d_a_npc_ykw/symbols.txt index 54e5fe2ea1..711c93cea1 100644 --- a/config/RZDE01_00/rels/d_a_npc_ykw/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_ykw/symbols.txt @@ -31,7 +31,7 @@ setAttnPos__11daNpc_ykW_cFv = .text:0x00001CC0; // type:function size:0x5A4 scop setCollision__11daNpc_ykW_cFv = .text:0x00002264; // type:function size:0x23C scope:global drawDbgInfo__11daNpc_ykW_cFv = .text:0x000024A0; // type:function size:0x8 scope:global selectAction__11daNpc_ykW_cFv = .text:0x000024A8; // type:function size:0x12C scope:global -fn_25d4 = .text:0x000025D4; // type:function size:0xA8 scope:global +setAction__11daNpc_ykW_cFM11daNpc_ykW_cFPCvPvPv_i = .text:0x000025D4; // type:function size:0xA8 scope:global getGoalPos__11daNpc_ykW_cFv = .text:0x0000267C; // type:function size:0xE0 scope:global orderGoIntoBossRoomEvt__11daNpc_ykW_cFv = .text:0x0000275C; // type:function size:0x9C scope:global putUtuwaHeart__11daNpc_ykW_cFP4cXyzffsP4cXyz = .text:0x000027F8; // type:function size:0x1CC scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_zanb/symbols.txt b/config/RZDE01_00/rels/d_a_npc_zanb/symbols.txt index c920eaee79..bf8ac2c61c 100644 --- a/config/RZDE01_00/rels/d_a_npc_zanb/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_zanb/symbols.txt @@ -24,7 +24,7 @@ setCollision__12daNpc_zanB_cFv = .text:0x00001188; // type:function size:0x1AC s drawDbgInfo__12daNpc_zanB_cFv = .text:0x00001334; // type:function size:0x8 scope:global drawGhost__12daNpc_zanB_cFv = .text:0x0000133C; // type:function size:0x68 scope:global selectAction__12daNpc_zanB_cFv = .text:0x000013A4; // type:function size:0x40 scope:global -fn_13e4 = .text:0x000013E4; // type:function size:0xA8 scope:global +setAction__12daNpc_zanB_cFM12daNpc_zanB_cFPCvPvPv_i = .text:0x000013E4; // type:function size:0xA8 scope:global wait__12daNpc_zanB_cFPv = .text:0x0000148C; // type:function size:0x21C scope:global talk__12daNpc_zanB_cFPv = .text:0x000016A8; // type:function size:0x184 scope:global daNpc_zanB_Create__FPv = .text:0x0000182C; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_zant/symbols.txt b/config/RZDE01_00/rels/d_a_npc_zant/symbols.txt index c6efaeaa8d..a4514a5c22 100644 --- a/config/RZDE01_00/rels/d_a_npc_zant/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_zant/symbols.txt @@ -24,7 +24,7 @@ setCollision__12daNpc_Zant_cFv = .text:0x00000EEC; // type:function size:0x144 s drawDbgInfo__12daNpc_Zant_cFv = .text:0x00001030; // type:function size:0x8 scope:global drawGhost__12daNpc_Zant_cFv = .text:0x00001038; // type:function size:0x68 scope:global selectAction__12daNpc_Zant_cFv = .text:0x000010A0; // type:function size:0x40 scope:global -fn_10e0 = .text:0x000010E0; // type:function size:0xA8 scope:global +setAction__12daNpc_Zant_cFM12daNpc_Zant_cFPCvPvPv_i = .text:0x000010E0; // type:function size:0xA8 scope:global wait__12daNpc_Zant_cFPv = .text:0x00001188; // type:function size:0x1B8 scope:global talk__12daNpc_Zant_cFPv = .text:0x00001340; // type:function size:0x188 scope:global daNpc_Zant_Create__FPv = .text:0x000014C8; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_zelR/symbols.txt b/config/RZDE01_00/rels/d_a_npc_zelR/symbols.txt index a490632a8f..3ca261f0d9 100644 --- a/config/RZDE01_00/rels/d_a_npc_zelR/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_zelR/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__12daNpc_ZelR_cFv = .text:0x000010DC; // type:function size:0x1F4 sco setCollision__12daNpc_ZelR_cFv = .text:0x000012D0; // type:function size:0x138 scope:global drawDbgInfo__12daNpc_ZelR_cFv = .text:0x00001408; // type:function size:0x8 scope:global selectAction__12daNpc_ZelR_cFv = .text:0x00001410; // type:function size:0x40 scope:global -fn_1450 = .text:0x00001450; // type:function size:0xA8 scope:global +setAction__12daNpc_ZelR_cFM12daNpc_ZelR_cFPCvPvPv_i = .text:0x00001450; // type:function size:0xA8 scope:global wait__12daNpc_ZelR_cFPv = .text:0x000014F8; // type:function size:0x138 scope:global talk__12daNpc_ZelR_cFPv = .text:0x00001630; // type:function size:0x13C scope:global daNpc_ZelR_Create__FPv = .text:0x0000176C; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_zelRo/symbols.txt b/config/RZDE01_00/rels/d_a_npc_zelRo/symbols.txt index 33f2952d95..17fd71f073 100644 --- a/config/RZDE01_00/rels/d_a_npc_zelRo/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_zelRo/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__13daNpc_ZelRo_cFv = .text:0x000010DC; // type:function size:0x1F4 sc setCollision__13daNpc_ZelRo_cFv = .text:0x000012D0; // type:function size:0x138 scope:global drawDbgInfo__13daNpc_ZelRo_cFv = .text:0x00001408; // type:function size:0x8 scope:global selectAction__13daNpc_ZelRo_cFv = .text:0x00001410; // type:function size:0x40 scope:global -fn_1450 = .text:0x00001450; // type:function size:0xA8 scope:global +setAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFPCvPvPv_i = .text:0x00001450; // type:function size:0xA8 scope:global wait__13daNpc_ZelRo_cFPv = .text:0x000014F8; // type:function size:0x138 scope:global talk__13daNpc_ZelRo_cFPv = .text:0x00001630; // type:function size:0x13C scope:global daNpc_ZelRo_Create__FPv = .text:0x0000176C; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_zelda/symbols.txt b/config/RZDE01_00/rels/d_a_npc_zelda/symbols.txt index f3e8930159..8a7a2c8964 100644 --- a/config/RZDE01_00/rels/d_a_npc_zelda/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_zelda/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__13daNpc_Zelda_cFv = .text:0x00001090; // type:function size:0x264 sc setCollision__13daNpc_Zelda_cFv = .text:0x000012F4; // type:function size:0x1AC scope:global drawDbgInfo__13daNpc_Zelda_cFv = .text:0x000014A0; // type:function size:0x8 scope:global selectAction__13daNpc_Zelda_cFv = .text:0x000014A8; // type:function size:0x40 scope:global -fn_14e8 = .text:0x000014E8; // type:function size:0xA8 scope:global +setAction__13daNpc_Zelda_cFM13daNpc_Zelda_cFPCvPvPv_i = .text:0x000014E8; // type:function size:0xA8 scope:global wait__13daNpc_Zelda_cFPv = .text:0x00001590; // type:function size:0x21C scope:global talk__13daNpc_Zelda_cFPv = .text:0x000017AC; // type:function size:0x184 scope:global daNpc_Zelda_Create__FPv = .text:0x00001930; // type:function size:0x4 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_zra/symbols.txt b/config/RZDE01_00/rels/d_a_npc_zra/symbols.txt index c59fbd7f4a..6900fcbafe 100644 --- a/config/RZDE01_00/rels/d_a_npc_zra/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_zra/symbols.txt @@ -41,7 +41,7 @@ isDelete__11daNpc_zrA_cFv = .text:0x0000341C; // type:function size:0xD4 scope:g reset__11daNpc_zrA_cFv = .text:0x000034F0; // type:function size:0x314 scope:global playExpression__11daNpc_zrA_cFv = .text:0x00003804; // type:function size:0x57C scope:global playMotion__11daNpc_zrA_cFv = .text:0x00003D80; // type:function size:0x938 scope:global -fn_46b8 = .text:0x000046B8; // type:function size:0xA8 scope:global +setAction__11daNpc_zrA_cFM11daNpc_zrA_cFPCvPvPv_i = .text:0x000046B8; // type:function size:0xA8 scope:global selectAction__11daNpc_zrA_cFv = .text:0x00004760; // type:function size:0x39C scope:global doEvent__11daNpc_zrA_cFv = .text:0x00004AFC; // type:function size:0x720 scope:global setSkipZev__11daNpc_zrA_cFii = .text:0x0000521C; // type:function size:0x84 scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_zrc/symbols.txt b/config/RZDE01_00/rels/d_a_npc_zrc/symbols.txt index a585cc7c2a..dc2b06801f 100644 --- a/config/RZDE01_00/rels/d_a_npc_zrc/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_zrc/symbols.txt @@ -28,7 +28,7 @@ reset__11daNpc_zrC_cFv = .text:0x00001D18; // type:function size:0x1B4 scope:glo playExpression__11daNpc_zrC_cFv = .text:0x00001ECC; // type:function size:0x508 scope:global playMotion__11daNpc_zrC_cFv = .text:0x000023D4; // type:function size:0x3FC scope:global playMotionAnm2__11daNpc_zrC_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x000027D0; // type:function size:0x124 scope:global -fn_28f4 = .text:0x000028F4; // type:function size:0xA8 scope:global +setAction__11daNpc_zrC_cFM11daNpc_zrC_cFPCvPvPv_i = .text:0x000028F4; // type:function size:0xA8 scope:global selectAction__11daNpc_zrC_cFv = .text:0x0000299C; // type:function size:0xD0 scope:global doNormalAction__11daNpc_zrC_cFi = .text:0x00002A6C; // type:function size:0x108 scope:global doEvent__11daNpc_zrC_cFv = .text:0x00002B74; // type:function size:0x3EC scope:global diff --git a/config/RZDE01_00/rels/d_a_npc_zrz/symbols.txt b/config/RZDE01_00/rels/d_a_npc_zrz/symbols.txt index 99ee122993..031054f9cf 100644 --- a/config/RZDE01_00/rels/d_a_npc_zrz/symbols.txt +++ b/config/RZDE01_00/rels/d_a_npc_zrz/symbols.txt @@ -32,7 +32,7 @@ isDelete__11daNpc_zrZ_cFv = .text:0x00001FE0; // type:function size:0xB8 scope:g reset__11daNpc_zrZ_cFv = .text:0x00002098; // type:function size:0x264 scope:global playExpression__11daNpc_zrZ_cFv = .text:0x000022FC; // type:function size:0xB4 scope:global playMotion__11daNpc_zrZ_cFv = .text:0x000023B0; // type:function size:0x110 scope:global -fn_24c0 = .text:0x000024C0; // type:function size:0xA8 scope:global +setAction__11daNpc_zrZ_cFM11daNpc_zrZ_cFPCvPvPv_i = .text:0x000024C0; // type:function size:0xA8 scope:global selectAction__11daNpc_zrZ_cFv = .text:0x00002568; // type:function size:0xA4 scope:global doNormalAction__11daNpc_zrZ_cFi = .text:0x0000260C; // type:function size:0x108 scope:global doEvent__11daNpc_zrZ_cFv = .text:0x00002714; // type:function size:0x440 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_Lv5Key/symbols.txt b/config/RZDE01_00/rels/d_a_obj_Lv5Key/symbols.txt index a4c3bdadc8..5623bf2c15 100644 --- a/config/RZDE01_00/rels/d_a_obj_Lv5Key/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_Lv5Key/symbols.txt @@ -8,7 +8,7 @@ initCcSph__13daObjLv5Key_cFv = .text:0x0000025C; // type:function size:0x60 scop setCcSph__13daObjLv5Key_cFv = .text:0x000002BC; // type:function size:0xEC scope:global daObjLv5Key_Create__FP10fopAc_ac_c = .text:0x000003A8; // type:function size:0x4 scope:global daObjLv5Key_Delete__FP13daObjLv5Key_c = .text:0x000003AC; // type:function size:0x30 scope:global -fn_3dc = .text:0x000003DC; // type:function size:0xA8 scope:global +setAction__13daObjLv5Key_cFM13daObjLv5Key_cFPCvPvi_vi = .text:0x000003DC; // type:function size:0xA8 scope:global Wait__13daObjLv5Key_cFi = .text:0x00000484; // type:function size:0xDC scope:global Open__13daObjLv5Key_cFi = .text:0x00000560; // type:function size:0xD0 scope:global Fall__13daObjLv5Key_cFi = .text:0x00000630; // type:function size:0x19C scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_batta/symbols.txt b/config/RZDE01_00/rels/d_a_obj_batta/symbols.txt index 30359cd503..f8b8548432 100644 --- a/config/RZDE01_00/rels/d_a_obj_batta/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_batta/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global __ct__16daObj_BattaHIO_cFv = .text:0x000000CC; // type:function size:0x30 scope:global -fn_fc = .text:0x000000FC; // type:function size:0xA4 scope:global +setAction__12daObjBATTA_cFM12daObjBATTA_cFPCvPv_v = .text:0x000000FC; // type:function size:0xA4 scope:global useHeapInit__FP10fopAc_ac_c = .text:0x000001A0; // type:function size:0x228 scope:global daObjBATTA_Create__FP10fopAc_ac_c = .text:0x000003C8; // type:function size:0x484 scope:global daObjBATTA_Delete__FP12daObjBATTA_c = .text:0x0000084C; // type:function size:0x68 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_gra2/symbols.txt b/config/RZDE01_00/rels/d_a_obj_gra2/symbols.txt index 3500a6e029..6a71bbfe63 100644 --- a/config/RZDE01_00/rels/d_a_obj_gra2/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_gra2/symbols.txt @@ -24,7 +24,7 @@ setFaceBtp__11daObj_GrA_cFi = .text:0x000015D0; // type:function size:0xF4 scope setBaseMotion__11daObj_GrA_cFif = .text:0x000016C4; // type:function size:0x20 scope:global setFaceMotion__11daObj_GrA_cFif = .text:0x000016E4; // type:function size:0x44 scope:global calcMotion__11daObj_GrA_cFv = .text:0x00001728; // type:function size:0xC8 scope:global -fn_17f0 = .text:0x000017F0; // type:function size:0xB0 scope:global +setProcess__11daObj_GrA_cFM11daObj_GrA_cFPCvPvPv_i = .text:0x000017F0; // type:function size:0xB0 scope:global setParam__11daObj_GrA_cFv = .text:0x000018A0; // type:function size:0x2A4 scope:global checkEvent__11daObj_GrA_cFv = .text:0x00001B44; // type:function size:0x158 scope:global mainProc__11daObj_GrA_cFv = .text:0x00001C9C; // type:function size:0x170 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_kag/symbols.txt b/config/RZDE01_00/rels/d_a_obj_kag/symbols.txt index 8b06f75e28..296ab88f0c 100644 --- a/config/RZDE01_00/rels/d_a_obj_kag/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_kag/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global __ct__14daObj_KagHIO_cFv = .text:0x000000CC; // type:function size:0x28 scope:global -fn_f4 = .text:0x000000F4; // type:function size:0xA4 scope:global +setAction__10daObjKAG_cFM10daObjKAG_cFPCvPv_v = .text:0x000000F4; // type:function size:0xA4 scope:global useHeapInit__FP10fopAc_ac_c = .text:0x00000198; // type:function size:0x228 scope:global daObjKAG_Create__FP10fopAc_ac_c = .text:0x000003C0; // type:function size:0x3E8 scope:global daObjKAG_Delete__FP10daObjKAG_c = .text:0x000007A8; // type:function size:0x68 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_master_sword/symbols.txt b/config/RZDE01_00/rels/d_a_obj_master_sword/symbols.txt index 8b9566c776..3f58bbe200 100644 --- a/config/RZDE01_00/rels/d_a_obj_master_sword/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_master_sword/symbols.txt @@ -24,7 +24,7 @@ ActionTable__18daObjMasterSword_c = .rodata:0x00000004; // type:object size:0x18 @95096 = .rodata:0x0000003C; // type:object size:0x4 scope:local lbl_569_data_0 = .data:0x00000000; // type:object size:0xA data:string l_arcName = .data:0x0000000C; // type:object size:0x4 scope:global data:4byte -@LOCAL@daObjMasterSword_c::initCollision(void)@ccCylSrc = .data:0x00000010; // type:object size:0x44 scope:local align:4 data:float +ccCylSrc$localstatic3$initCollision__16daObjMasterSwordFv = .data:0x00000010; // type:object size:0x44 scope:local align:4 data:float l_daObjMasterSword_Method = .data:0x00000054; // type:object size:0x20 scope:global g_profile_Obj_MasterSword = .data:0x00000074; // type:object size:0x30 scope:global lbl_569_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte diff --git a/config/RZDE01_00/rels/d_a_obj_mato/symbols.txt b/config/RZDE01_00/rels/d_a_obj_mato/symbols.txt index 564830c628..ab804d1a3a 100644 --- a/config/RZDE01_00/rels/d_a_obj_mato/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_mato/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global _epilog = .text:0x0000002C; // type:function size:0x2C scope:global _unresolved = .text:0x00000058; // type:function size:0x4 scope:global -fn_5c = .text:0x0000005C; // type:function size:0xC4 scope:global +setAction__11daObjMATO_cFM11daObjMATO_cFPCvPvi_vi = .text:0x0000005C; // type:function size:0xC4 scope:global useHeapInit__FP10fopAc_ac_c = .text:0x00000120; // type:function size:0xDC scope:global daObjMATO_Create__FP10fopAc_ac_c = .text:0x000001FC; // type:function size:0x15C scope:global daObjMATO_Delete__FP11daObjMATO_c = .text:0x00000358; // type:function size:0xB0 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_mirror_chain/symbols.txt b/config/RZDE01_00/rels/d_a_obj_mirror_chain/symbols.txt index 1a12f4bf73..e4e2f332d2 100644 --- a/config/RZDE01_00/rels/d_a_obj_mirror_chain/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_mirror_chain/symbols.txt @@ -31,14 +31,14 @@ _dtors = .dtors:0x00000000; // type:label scope:global @92044 = .rodata:0x00000028; // type:object size:0x4 scope:local align:4 data:float @92048 = .rodata:0x00000030; // type:object size:0x8 scope:local @92221 = .rodata:0x00000038; // type:object size:0x8 scope:local align:8 data:double -@LOCAL@daObjMirrorChain_c::draw(void)@SCISSOR_CENTER_X = .rodata:0x00000040; // type:object size:0x4 scope:local -@LOCAL@daObjMirrorChain_c::draw(void)@SCISSOR_CENTER_Y@0 = .rodata:0x00000044; // type:object size:0x4 scope:local -@LOCAL@daObjMirrorChain_c::draw(void)@SCISSOR_CENTER_Z@1 = .rodata:0x00000048; // type:object size:0x4 scope:local -@LOCAL@daObjMirrorChain_c::draw(void)@SCISSOR_SIZE@2 = .rodata:0x0000004C; // type:object size:0x4 scope:local +SCISSOR_CENTER_X$localstatic3$draw__18daObjMirrorChain_cFv = .rodata:0x00000040; // type:object size:0x4 scope:local +SCISSOR_CENTER_Y$localstatic4$draw__18daObjMirrorChain_cFv = .rodata:0x00000044; // type:object size:0x4 scope:local +SCISSOR_CENTER_Z$localstatic5$draw__18daObjMirrorChain_cFv = .rodata:0x00000048; // type:object size:0x4 scope:local +SCISSOR_SIZE$localstatic6$draw__18daObjMirrorChain_cFv = .rodata:0x0000004C; // type:object size:0x4 scope:local @92417 = .rodata:0x00000050; // type:object size:0x4 scope:local -lbl_574_data_0 = .data:0x00000000; // type:object size:0x9 data:string +@stringBase0 = .data:0x00000000; // type:object size:0x9 data:string_table l_arcName = .data:0x0000000C; // type:object size:0x4 scope:global data:4byte -@LOCAL@daObjMirrorChain_c::draw(void)@l_offsetScissor@3 = .data:0x00000010; // type:object size:0x30 scope:local +l_offsetScissor$localstatic7$draw__18daObjMirrorChain_cFv = .data:0x00000010; // type:object size:0x30 scope:local l_daObjMirrorChain_Method = .data:0x00000040; // type:object size:0x20 scope:global g_profile_Obj_MirrorChain = .data:0x00000060; // type:object size:0x30 scope:global __vt__20dScissorEnd_packet_c = .data:0x00000090; // type:object size:0x14 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_movebox/symbols.txt b/config/RZDE01_00/rels/d_a_obj_movebox/symbols.txt index c2880cf2db..d68d76d935 100644 --- a/config/RZDE01_00/rels/d_a_obj_movebox/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_movebox/symbols.txt @@ -74,7 +74,7 @@ M_attr__Q212daObjMovebox5Act_c = .rodata:0x00000244; // type:object size:0x500 s @96292 = .rodata:0x00000758; // type:object size:0x4 scope:local align:4 data:float @96339 = .rodata:0x0000075C; // type:object size:0x4 scope:local @96388 = .rodata:0x00000760; // type:object size:0x4 scope:local -@LOCAL@daObjMovebox::Act_c::mode_proc_call(void)@mode_proc = .rodata:0x00000764; // type:object size:0x24 scope:local +mode_proc$localstatic3$mode_proc_call__Q212daObjMovebox5Act_cFv = .rodata:0x00000764; // type:object size:0x24 scope:local @96464 = .rodata:0x00000788; // type:object size:0x4 scope:local @96465 = .rodata:0x0000078C; // type:object size:0x4 scope:local @96544 = .rodata:0x00000790; // type:object size:0x4 scope:local align:4 data:float diff --git a/config/RZDE01_00/rels/d_a_obj_nan/symbols.txt b/config/RZDE01_00/rels/d_a_obj_nan/symbols.txt index f794094eab..04640e3a4a 100644 --- a/config/RZDE01_00/rels/d_a_obj_nan/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_nan/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global __ct__14daObj_NanHIO_cFv = .text:0x000000CC; // type:function size:0x28 scope:global -fn_f4 = .text:0x000000F4; // type:function size:0xA4 scope:global +setAction__10daObjNAN_cFM10daObjNAN_cFPCvPv_v = .text:0x000000F4; // type:function size:0xA4 scope:global useHeapInit__FP10fopAc_ac_c = .text:0x00000198; // type:function size:0x270 scope:global daObjNAN_Create__FP10fopAc_ac_c = .text:0x00000408; // type:function size:0x3F0 scope:global daObjNAN_Delete__FP10daObjNAN_c = .text:0x000007F8; // type:function size:0x68 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_oiltubo/symbols.txt b/config/RZDE01_00/rels/d_a_obj_oiltubo/symbols.txt index 411acced49..2487d41ccd 100644 --- a/config/RZDE01_00/rels/d_a_obj_oiltubo/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_oiltubo/symbols.txt @@ -8,7 +8,7 @@ Draw__15daObj_Oiltubo_cFv = .text:0x000004C4; // type:function size:0xE4 scope:g createHeapCallBack__15daObj_Oiltubo_cFP10fopAc_ac_c = .text:0x000005A8; // type:function size:0x4 scope:global restart__15daObj_Oiltubo_cFv = .text:0x000005AC; // type:function size:0x60 scope:global initialize__15daObj_Oiltubo_cFv = .text:0x0000060C; // type:function size:0x138 scope:global -fn_744 = .text:0x00000744; // type:function size:0xB0 scope:global +setProcess__15daObj_Oiltubo_cFM15daObj_Oiltubo_cFPCvPvPv_i = .text:0x00000744; // type:function size:0xB0 scope:global setParam__15daObj_Oiltubo_cFv = .text:0x000007F4; // type:function size:0x5C scope:global setEnvTevColor__15daObj_Oiltubo_cFv = .text:0x00000850; // type:function size:0x58 scope:global setRoomNo__15daObj_Oiltubo_cFv = .text:0x000008A8; // type:function size:0x44 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_sekizoa/symbols.txt b/config/RZDE01_00/rels/d_a_obj_sekizoa/symbols.txt index 846aa983ab..9084bab708 100644 --- a/config/RZDE01_00/rels/d_a_obj_sekizoa/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_sekizoa/symbols.txt @@ -30,7 +30,7 @@ setYariAnm__15daObj_Sekizoa_cFiif = .text:0x00001FFC; // type:function size:0xD0 drawGhost__15daObj_Sekizoa_cFv = .text:0x000020CC; // type:function size:0xDC scope:global afterSetMotionAnm__15daObj_Sekizoa_cFiifi = .text:0x000021A8; // type:function size:0x3B4 scope:global selectAction__15daObj_Sekizoa_cFv = .text:0x0000255C; // type:function size:0x78 scope:global -fn_25d4 = .text:0x000025D4; // type:function size:0xA8 scope:global +setAction__15daObj_Sekizoa_cFM15daObj_Sekizoa_cFPCvPvPv_i = .text:0x000025D4; // type:function size:0xA8 scope:global checkMoveDirection__15daObj_Sekizoa_cFv = .text:0x0000267C; // type:function size:0x1D0 scope:global getWaitMotionNo__15daObj_Sekizoa_cFv = .text:0x0000284C; // type:function size:0x48 scope:global getGameMotionNo__15daObj_Sekizoa_cFv = .text:0x00002894; // type:function size:0x48 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_ss_drink/symbols.txt b/config/RZDE01_00/rels/d_a_obj_ss_drink/symbols.txt index bbe9828b65..2ff7743405 100644 --- a/config/RZDE01_00/rels/d_a_obj_ss_drink/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_ss_drink/symbols.txt @@ -13,7 +13,7 @@ getCapacityFromParam__15daObj_SSDrink_cFv = .text:0x00000820; // type:function s getFlowNodeNum__15daObj_SSDrink_cFv = .text:0x00000844; // type:function size:0x34 scope:global restart__15daObj_SSDrink_cFv = .text:0x00000878; // type:function size:0x60 scope:global initialize__15daObj_SSDrink_cFv = .text:0x000008D8; // type:function size:0x158 scope:global -fn_a30 = .text:0x00000A30; // type:function size:0xF4 scope:global +setProcess__15daObj_SSDrink_cFM15daObj_SSDrink_cFPCvPvPv_i = .text:0x00000A30; // type:function size:0xF4 scope:global setParam__15daObj_SSDrink_cFv = .text:0x00000B24; // type:function size:0x134 scope:global setEnvTevColor__15daObj_SSDrink_cFv = .text:0x00000C58; // type:function size:0x58 scope:global setRoomNo__15daObj_SSDrink_cFv = .text:0x00000CB0; // type:function size:0x44 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_ss_item/symbols.txt b/config/RZDE01_00/rels/d_a_obj_ss_item/symbols.txt index d85718d3f9..566f4b0ab4 100644 --- a/config/RZDE01_00/rels/d_a_obj_ss_item/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_ss_item/symbols.txt @@ -14,7 +14,7 @@ getTypeFromParam__14daObj_SSItem_cFv = .text:0x0000071C; // type:function size:0 getFlowNodeNum__14daObj_SSItem_cFv = .text:0x00000768; // type:function size:0x34 scope:global restart__14daObj_SSItem_cFv = .text:0x0000079C; // type:function size:0x60 scope:global initialize__14daObj_SSItem_cFv = .text:0x000007FC; // type:function size:0x158 scope:global -fn_954 = .text:0x00000954; // type:function size:0xB0 scope:global +setProcess__14daObj_SSItem_cFM14daObj_SSItem_cFPCvPvPv_i = .text:0x00000954; // type:function size:0xB0 scope:global setParam__14daObj_SSItem_cFv = .text:0x00000A04; // type:function size:0x70 scope:global setEnvTevColor__14daObj_SSItem_cFv = .text:0x00000A74; // type:function size:0x58 scope:global setRoomNo__14daObj_SSItem_cFv = .text:0x00000ACC; // type:function size:0x44 scope:global diff --git a/config/RZDE01_00/rels/d_a_obj_tks/symbols.txt b/config/RZDE01_00/rels/d_a_obj_tks/symbols.txt index a7162f42ad..c303539d1e 100644 --- a/config/RZDE01_00/rels/d_a_obj_tks/symbols.txt +++ b/config/RZDE01_00/rels/d_a_obj_tks/symbols.txt @@ -16,7 +16,7 @@ setMtx__10daObjTks_cFv = .text:0x00000D30; // type:function size:0x84 scope:glob setExpressionAnm__10daObjTks_cFib = .text:0x00000DB4; // type:function size:0x148 scope:global setExpressionBtp__10daObjTks_cFi = .text:0x00000EFC; // type:function size:0xC8 scope:global setMotion__10daObjTks_cFifi = .text:0x00000FC4; // type:function size:0x44 scope:global -fn_1008 = .text:0x00001008; // type:function size:0xA0 scope:global +setAction__10daObjTks_cFM10daObjTks_cFPCvPv_v = .text:0x00001008; // type:function size:0xA0 scope:global wait__10daObjTks_cFv = .text:0x000010A8; // type:function size:0xAC scope:global setExpression__10daObjTks_cFif = .text:0x00001154; // type:function size:0x2C scope:global setLookMode__10daObjTks_cFi = .text:0x00001180; // type:function size:0x24 scope:global diff --git a/config/RZDE01_00/rels/d_a_peru/symbols.txt b/config/RZDE01_00/rels/d_a_peru/symbols.txt index 5b23850be8..834a7a9b38 100644 --- a/config/RZDE01_00/rels/d_a_peru/symbols.txt +++ b/config/RZDE01_00/rels/d_a_peru/symbols.txt @@ -21,7 +21,7 @@ action__8daPeru_cFv = .text:0x00000F8C; // type:function size:0x4C scope:global setAttnPos__8daPeru_cFv = .text:0x00000FD8; // type:function size:0x224 scope:global setCollision__8daPeru_cFv = .text:0x000011FC; // type:function size:0x1B0 scope:global drawDbgInfo__8daPeru_cFv = .text:0x000013AC; // type:function size:0x8 scope:global -fn_13b4 = .text:0x000013B4; // type:function size:0xB0 scope:global +setAction__8daPeru_cFM8daPeru_cFPCvPvi_ii = .text:0x000013B4; // type:function size:0xB0 scope:global wait__8daPeru_cFi = .text:0x00001464; // type:function size:0x214 scope:global is_AppearDemo_start__8daPeru_cFv = .text:0x00001678; // type:function size:0x7C scope:global talk__8daPeru_cFi = .text:0x000016F4; // type:function size:0x288 scope:global diff --git a/config/RZDE01_00/rels/d_a_tag_bottle_item/symbols.txt b/config/RZDE01_00/rels/d_a_tag_bottle_item/symbols.txt index 4dac4567b6..d7724c670b 100644 --- a/config/RZDE01_00/rels/d_a_tag_bottle_item/symbols.txt +++ b/config/RZDE01_00/rels/d_a_tag_bottle_item/symbols.txt @@ -6,7 +6,7 @@ Execute__18daTag_BottleItem_cFv = .text:0x000000E0; // type:function size:0x6C s setTypeFromParam__18daTag_BottleItem_cFv = .text:0x0000014C; // type:function size:0xC scope:global restart__18daTag_BottleItem_cFv = .text:0x00000158; // type:function size:0x60 scope:global initialize__18daTag_BottleItem_cFv = .text:0x000001B8; // type:function size:0x78 scope:global -fn_230 = .text:0x00000230; // type:function size:0xF4 scope:global +setProcess__18daTag_BottleItem_cFM18daTag_BottleItem_cFPCvPvPv_i = .text:0x00000230; // type:function size:0xF4 scope:global setAttnPos__18daTag_BottleItem_cFv = .text:0x00000324; // type:function size:0x40 scope:global chkEvent__18daTag_BottleItem_cFv = .text:0x00000364; // type:function size:0x50 scope:global orderEvent__18daTag_BottleItem_cFv = .text:0x000003B4; // type:function size:0x94 scope:global diff --git a/config/RZDE01_00/rels/d_a_tag_ss_drink/symbols.txt b/config/RZDE01_00/rels/d_a_tag_ss_drink/symbols.txt index 6b511927b6..0c8cd7ffc3 100644 --- a/config/RZDE01_00/rels/d_a_tag_ss_drink/symbols.txt +++ b/config/RZDE01_00/rels/d_a_tag_ss_drink/symbols.txt @@ -7,7 +7,7 @@ getTypeFromParam__15daTag_SSDrink_cFv = .text:0x00000160; // type:function size: getFlowNodeNum__15daTag_SSDrink_cFv = .text:0x00000208; // type:function size:0x38 scope:global restart__15daTag_SSDrink_cFv = .text:0x00000240; // type:function size:0x60 scope:global initialize__15daTag_SSDrink_cFv = .text:0x000002A0; // type:function size:0x78 scope:global -fn_318 = .text:0x00000318; // type:function size:0xF4 scope:global +setProcess__15daTag_SSDrink_cFM15daTag_SSDrink_cFPCvPvPv_i = .text:0x00000318; // type:function size:0xF4 scope:global setAttnPos__15daTag_SSDrink_cFv = .text:0x0000040C; // type:function size:0x40 scope:global chkEvent__15daTag_SSDrink_cFv = .text:0x0000044C; // type:function size:0x170 scope:global orderEvent__15daTag_SSDrink_cFv = .text:0x000005BC; // type:function size:0x108 scope:global diff --git a/config/RZDE01_00/symbols.txt b/config/RZDE01_00/symbols.txt index c7bf4493b1..f99109c8b6 100644 --- a/config/RZDE01_00/symbols.txt +++ b/config/RZDE01_00/symbols.txt @@ -9,12 +9,12 @@ __flush_cache = .init:0x80004304; // type:function size:0x34 scope:global memcpy = .init:0x80004338; // type:function size:0x50 scope:global __fill_mem = .init:0x80004388; // type:function size:0xB4 scope:global memset = .init:0x8000443C; // type:function size:0x30 scope:global -fn_8000446C = .init:0x8000446C; // type:function size:0x30 -fn_8000449C = .init:0x8000449C; // type:function size:0x24 +TRK_memset = .init:0x8000446C; // type:function size:0x30 scope:global align:4 +TRK_memcpy = .init:0x8000449C; // type:function size:0x24 scope:global align:4 gTRKInterruptVectorTable = .init:0x800044C0; // type:label scope:global lbl_80004600 = .init:0x80004600; // type:label lbl_80005400 = .init:0x80005400; // type:label -fn_800063F4 = .init:0x800063F4; // type:function size:0x2C +__TRK_reset = .init:0x800063F4; // type:function size:0x2C scope:global align:4 gTRKInterruptVectorTableEnd = .init:0x800063F4; // type:label scope:global _rom_copy_info = .init:0x80006420; // type:object size:0x84 scope:global data:4byte _bss_init_info = .init:0x800064A4; // type:object size:0x20 scope:global data:4byte @@ -503,8 +503,8 @@ mDoExt_J3DModel__create__FP12J3DModelDataUlUl = .text:0x80019B1C; // type:functi mDoExt_setAraCacheSize__FUl = .text:0x80019C2C; // type:function size:0x8 scope:global align:4 mDoExt_GetCurrentRunningThread__Fv = .text:0x80019C34; // type:function size:0x38 scope:global align:4 __dt__25mDoExt_MtxCalcAnmBlendTblFv = .text:0x80019C6C; // type:function size:0x58 scope:global align:4 -J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24setAnmTransform__25J3DMtxCalcJ3DSysInitMaya>FP15J3DAnmTransform = .text:0x80019CC4; // type:function size:0x8 scope:global align:4 -J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>::~J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>(void) = .text:0x80019CCC; // type:function size:0x40 scope:global align:4 +setAnmTransform__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>FP15J3DAnmTransform = .text:0x80019CC4; // type:function size:0x8 scope:global align:4 +__dt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019CCC; // type:function size:0x40 scope:global align:4 getWeight__10J3DMtxCalcCFUc = .text:0x80019D0C; // type:function size:0x8 scope:global align:4 setWeight__10J3DMtxCalcFUcf = .text:0x80019D14; // type:function size:0x4 scope:global align:4 getAnmTransform__10J3DMtxCalcFUc = .text:0x80019D18; // type:function size:0x8 scope:global align:4 @@ -512,11 +512,11 @@ setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform = .text:0x80019D20; // type:f getAnmTransform__17J3DMtxCalcAnmBaseFv = .text:0x80019D24; // type:function size:0x8 scope:global align:4 getAnmTransform__10J3DMtxCalcFv = .text:0x80019D2C; // type:function size:0x8 scope:global align:4 setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform = .text:0x80019D34; // type:function size:0x4 scope:global align:4 -J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>::~J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>(void) = .text:0x80019D38; // type:function size:0x40 scope:global align:4 -J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24init__25J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf = .text:0x80019D78; // type:function size:0xC scope:global align:4 -J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24calc__25J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019D84; // type:function size:0x84 scope:global align:4 -J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24init__25J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf = .text:0x80019E08; // type:function size:0xC scope:global align:4 -J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24calc__25J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019E14; // type:function size:0xC scope:global align:4 +__dt__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019D38; // type:function size:0x40 scope:global align:4 +init__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf = .text:0x80019D78; // type:function size:0xC scope:global align:4 +calc__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019D84; // type:function size:0x84 scope:global align:4 +init__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf = .text:0x80019E08; // type:function size:0xC scope:global align:4 +calc__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019E14; // type:function size:0xC scope:global align:4 __dt__28mDoExt_MtxCalcAnmBlendTblOldFv = .text:0x80019E20; // type:function size:0x5C scope:global align:4 __dt__26mDoExt_3DlineMatSortPacketFv = .text:0x80019E7C; // type:function size:0x40 scope:global align:4 patchTexNoAndTexCoordScale__11J3DTevBlockFv = .text:0x80019EBC; // type:function size:0x4 scope:global align:4 @@ -2407,7 +2407,7 @@ executeStart__17dEvLib_callback_cFv = .text:0x8004BBD8; // type:function size:0x initRun__17dEvLib_callback_cFv = .text:0x8004BC8C; // type:function size:0x10 scope:global align:4 executeRun__17dEvLib_callback_cFv = .text:0x8004BC9C; // type:function size:0x90 scope:global align:4 __sinit_d_event_lib_cpp = .text:0x8004BD2C; // type:function size:0xC4 scope:local align:4 -fn_8004bdf0 = .text:0x8004BDF0; // type:function size:0x34 scope:global align:4 +__ct__33action_class<17dEvLib_callback_c>FM17dEvLib_callback_cFPCvPv_bM17dEvLib_callback_cFPCvPv_b = .text:0x8004BDF0; // type:function size:0x34 scope:global align:4 __ct__15dSmplMdl_draw_cFv = .text:0x8004BE24; // type:function size:0xC0 scope:global align:4 __dt__15dSmplMdl_draw_cFv = .text:0x8004BEE4; // type:function size:0x90 scope:global align:4 draw__15dSmplMdl_draw_cFv = .text:0x8004BF74; // type:function size:0xB4 scope:global align:4 @@ -10313,7 +10313,7 @@ atan2sY_XZ__4cXyzCFv = .text:0x80251AE4; // type:function size:0x58 scope:global __sinit_c_xyz_cpp = .text:0x80251B3C; // type:function size:0x158 scope:local align:4 __ct__5csXyzFsss = .text:0x80251C94; // type:function size:0x10 scope:global align:4 __pl__5csXyzFR5csXyz = .text:0x80251CA4; // type:function size:0x34 scope:global align:4 -fn_80251CD8 = .text:0x80251CD8; // type:function size:0x34 scope:global align:4 +__apl__5csXyzFR5csXyz = .text:0x80251CD8; // type:function size:0x34 scope:global align:4 __mi__5csXyzFR5csXyz = .text:0x80251D0C; // type:function size:0x38 scope:global align:4 __ml__5csXyzFf = .text:0x80251D44; // type:function size:0xAC scope:global align:4 __sinit_c_sxyz_cpp = .text:0x80251DF0; // type:function size:0x48 scope:local align:4 @@ -10518,13 +10518,13 @@ Cos__7cSAngleCFv = .text:0x80259FFC; // type:function size:0x4C scope:global ali __mi__7cSAngleCFv = .text:0x8025A048; // type:function size:0x10 scope:global align:4 __pl__7cSAngleCFRC7cSAngle = .text:0x8025A058; // type:function size:0x14 scope:global align:4 __mi__7cSAngleCFRC7cSAngle = .text:0x8025A06C; // type:function size:0x14 scope:global align:4 -fn_8025A080 = .text:0x8025A080; // type:function size:0x14 scope:global align:4 -fn_8025A094 = .text:0x8025A094; // type:function size:0x14 scope:global align:4 +__apl__7cSAngleFR13cSAngle = .text:0x8025A080; // type:function size:0x14 scope:global align:4 +__ami__7cSAngleFR13cSAngle = .text:0x8025A094; // type:function size:0x14 scope:global align:4 __pl__7cSAngleCFs = .text:0x8025A0A8; // type:function size:0x10 scope:global align:4 __mi__7cSAngleCFs = .text:0x8025A0B8; // type:function size:0x10 scope:global align:4 -fn_8025A0C8 = .text:0x8025A0C8; // type:function size:0x10 scope:global align:4 +__apl__7cSAngleFs = .text:0x8025A0C8; // type:function size:0x10 scope:global align:4 __ml__7cSAngleCFf = .text:0x8025A0D8; // type:function size:0x40 scope:global align:4 -fn_8025A118 = .text:0x8025A118; // type:function size:0x40 scope:global align:4 +__amu__7cSAngleFf = .text:0x8025A118; // type:function size:0x40 scope:global align:4 __pl__FsRC7cSAngle = .text:0x8025A158; // type:function size:0x10 scope:global align:4 __mi__FsRC7cSAngle = .text:0x8025A168; // type:function size:0x10 scope:global align:4 __ct__7cDegreeFf = .text:0x8025A178; // type:function size:0x34 scope:global align:4 @@ -10979,9 +10979,9 @@ range_getParameter_outside__Q27JStudio29TFunctionValueAttribute_rangeCFd = .text interpolateValue_plateau__Q27JStudio13functionvalueFddddd = .text:0x8026A388; // type:function size:0x18 scope:global align:4 __ct__Q27JGadget84TContainerEnumerator_const>FRCQ27JGadget44TVector_pointer = .text:0x8026A3A0; // type:function size:0x14 scope:global align:4 __dt__Q27JStudio29TFunctionValueAttribute_referFv = .text:0x8026A3B4; // type:function size:0x5C scope:global align:4 -JGadget::TVector>CFv = .text:0x8026A410; // type:function size:0x28 scope:global align:4 -fn_8026a438 = .text:0x8026A438; // type:function size:0x98 scope:global align:4 -fn_8026a4d0 = .text:0x8026A4D0; // type:function size:0xC0 scope:global align:4 +size__Q27JGadget38TVector>CFv = .text:0x8026A410; // type:function size:0x28 scope:global align:4 +findUpperBound_binary_all>__7JGadgetFQ37JStudio29TFunctionValue_list_parameter15TIterator_data_Q37JStudio29TFunctionValue_list_parameter15TIterator_data_RCdQ23std7less_Q37JStudio29TFunctionValue_list_parameter15TIterator_data_ = .text:0x8026A438; // type:function size:0x98 scope:global align:4 +findUpperBound_binary_all>__7JGadgetFQ37JStudio22TFunctionValue_hermite15TIterator_data_Q37JStudio22TFunctionValue_hermite15TIterator_data_RCdQ23std7less_Q37JStudio22TFunctionValue_hermite15TIterator_data_ = .text:0x8026A4D0; // type:function size:0xC0 scope:global align:4 __dt__Q27JStudio24TFunctionValue_compositeFv = .text:0x8026A590; // type:function size:0x5C scope:global align:4 __dt__Q27JStudio23TFunctionValue_constantFv = .text:0x8026A5EC; // type:function size:0x40 scope:global align:4 __dt__Q27JStudio25TFunctionValue_transitionFv = .text:0x8026A62C; // type:function size:0x40 scope:global align:4 @@ -11235,17 +11235,17 @@ adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15 adaptor_do_RELATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x80271074; // type:function size:0x44 scope:global align:4 adaptor_do_RELATION_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x802710B8; // type:function size:0x5C scope:global align:4 adaptor_do_RELATION_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x80271114; // type:function size:0x38 scope:global align:4 -fn_8027114c = .text:0x8027114C; // type:function size:0x3C scope:global align:4 +setJSG_ID___Q214JStudio_JStage14TAdaptor_actorFMQ26JStage6TActorFPCvPvUl_vQ37JStudio4data15TEOperationDataPCvUl = .text:0x8027114C; // type:function size:0x3C scope:global align:4 setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x80271188; // type:function size:0x184 scope:global align:4 getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x8027130C; // type:function size:0x188 scope:global align:4 __cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor = .text:0x80271494; // type:function size:0xD4 scope:global align:4 __dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv = .text:0x80271568; // type:function size:0x58 scope:global align:4 __sinit_object-actor_cpp = .text:0x802715C0; // type:function size:0x1D8 scope:local align:4 adaptor_setVariableValue_immediate__Q27JStudio8TAdaptorFUlf = .text:0x80271798; // type:function size:0x28 scope:global align:4 -fn_802717c0 = .text:0x802717C0; // type:function size:0x44 scope:global align:4 -fn_80271804 = .text:0x80271804; // type:function size:0x58 scope:global align:4 -fn_8027185c = .text:0x8027185C; // type:function size:0x4C scope:global align:4 -fn_802718a8 = .text:0x802718A8; // type:function size:0x30 scope:global align:4 +__ct__Q214JStudio_JStage81TVariableValueOutput_object_FQ37JStudio14TAdaptor_actor15TEVariableValueMQ26JStage6TActorFPCvPvf_vMQ26JStage6TActorFPCvPCv_f = .text:0x802717C0; // type:function size:0x44 scope:global align:4 +__dt__Q214JStudio_JStage81TVariableValueOutput_object_Fv = .text:0x80271804; // type:function size:0x58 scope:global align:4 +__ct__Q214JStudio_JStage81TVariableValueOutput_object_Fv = .text:0x8027185C; // type:function size:0x4C scope:global align:4 +__cl__Q214JStudio_JStage81TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x802718A8; // type:function size:0x30 scope:global align:4 __ct__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_FQ37JStudio14TAdaptor_actor15TEVariableValueMQ214JStudio_JStage14TAdaptor_actorQ37JStudio4data15TEAnimationModeMQ26JStage6TActorFPCvPvf_vMQ26JStage6TActorFPCvPCv_fMQ26JStage6TActorFPCvPCv_f = .text:0x802718D8; // type:function size:0x88 scope:global align:4 __ct__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv = .text:0x80271960; // type:function size:0x74 scope:global align:4 __ct__Q214JStudio_JStage21TAdaptor_ambientLightFPCQ26JStage7TSystemPQ26JStage13TAmbientLight = .text:0x802719D4; // type:function size:0x5C scope:global align:4 @@ -11278,10 +11278,10 @@ transformOnSet_transform_ifEnabled__Q27JStudio8TControlCFRCQ37JStudio8TControl19 transformOnGet_transform_ifEnabled__Q27JStudio8TControlCFRCQ37JStudio8TControl19TTransform_positionPQ37JStudio8TControl19TTransform_position = .text:0x8027259C; // type:function size:0x48 scope:global align:4 transform_toGlobalFromLocal__14JStudio_JStageFPQ37JStudio8TControl19TTransform_positionRCQ37JStudio8TControl19TTransform_positionPCQ26JStage7TObjectUl = .text:0x802725E4; // type:function size:0x50 scope:global align:4 transform_toLocalFromGlobal__14JStudio_JStageFPQ37JStudio8TControl19TTransform_positionRCQ37JStudio8TControl19TTransform_positionPCQ26JStage7TObjectUl = .text:0x80272634; // type:function size:0x50 scope:global align:4 -fn_80272684 = .text:0x80272684; // type:function size:0x44 scope:global align:4 -fn_802726c8 = .text:0x802726C8; // type:function size:0x58 scope:global align:4 -fn_80272720 = .text:0x80272720; // type:function size:0x4C scope:global align:4 -fn_8027276c = .text:0x8027276C; // type:function size:0x30 scope:global align:4 +__ct__Q214JStudio_JStage83TVariableValueOutput_object_FQ37JStudio15TAdaptor_camera15TEVariableValueMQ26JStage7TCameraFPCvPvf_vMQ26JStage7TCameraFPCvPCv_f = .text:0x80272684; // type:function size:0x44 scope:global align:4 +__dt__Q214JStudio_JStage83TVariableValueOutput_object_Fv = .text:0x802726C8; // type:function size:0x58 scope:global align:4 +__ct__Q214JStudio_JStage83TVariableValueOutput_object_Fv = .text:0x80272720; // type:function size:0x4C scope:global align:4 +__cl__Q214JStudio_JStage83TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x8027276C; // type:function size:0x30 scope:global align:4 getFromTransformation_T__Q27JStudio4mathFP3VecPA4_Cf = .text:0x8027279C; // type:function size:0x1C scope:global align:4 __ct__Q214JStudio_JStage12TAdaptor_fogFPCQ26JStage7TSystemPQ26JStage4TFog = .text:0x802727B8; // type:function size:0x5C scope:global align:4 __dt__Q214JStudio_JStage12TAdaptor_fogFv = .text:0x80272814; // type:function size:0x74 scope:global align:4 @@ -11291,10 +11291,10 @@ adaptor_do_end__Q214JStudio_JStage12TAdaptor_fogFv = .text:0x802729C8; // type:f adaptor_do_update__Q214JStudio_JStage12TAdaptor_fogFUl = .text:0x80272A1C; // type:function size:0x90 scope:global align:4 adaptor_do_data__Q214JStudio_JStage12TAdaptor_fogFPCvUlPCvUl = .text:0x80272AAC; // type:function size:0x8 scope:global align:4 __sinit_object-fog_cpp = .text:0x80272AB4; // type:function size:0x114 scope:local align:4 -fn_80272bc8 = .text:0x80272BC8; // type:function size:0x44 scope:global align:4 -fn_80272c0c = .text:0x80272C0C; // type:function size:0x58 scope:global align:4 -fn_80272c64 = .text:0x80272C64; // type:function size:0x4C scope:global align:4 -fn_80272cb0 = .text:0x80272CB0; // type:function size:0x30 scope:global align:4 +__ct__Q214JStudio_JStage77TVariableValueOutput_object_FQ37JStudio12TAdaptor_fog15TEVariableValueMQ26JStage4TFogFPCvPvf_vMQ26JStage4TFogFPCvPCv_f = .text:0x80272BC8; // type:function size:0x44 scope:global align:4 +__dt__Q214JStudio_JStage77TVariableValueOutput_object_Fv = .text:0x80272C0C; // type:function size:0x58 scope:global align:4 +__ct__Q214JStudio_JStage77TVariableValueOutput_object_Fv = .text:0x80272C64; // type:function size:0x4C scope:global align:4 +__cl__Q214JStudio_JStage77TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x80272CB0; // type:function size:0x30 scope:global align:4 __ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight = .text:0x80272CE0; // type:function size:0x64 scope:global align:4 __dt__Q214JStudio_JStage14TAdaptor_lightFv = .text:0x80272D44; // type:function size:0x74 scope:global align:4 adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_lightFv = .text:0x80272DB8; // type:function size:0x44 scope:global align:4 @@ -11385,9 +11385,9 @@ allocCallStack__13JASTaskThreadFPFPv_vPv = .text:0x80275378; // type:function si sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl = .text:0x802753D8; // type:function size:0x74 scope:global align:4 sendCmdMsg__13JASTaskThreadFPFPv_vPv = .text:0x8027544C; // type:function size:0x74 scope:global align:4 run__13JASTaskThreadFv = .text:0x802754C0; // type:function size:0xB0 scope:global align:4 -JASMemChunkPool<1024,free__43Q217JASThreadingModel19ObjectLevelLockable>FPv = .text:0x80275570; // type:function size:0xC0 scope:global align:4 -JASMemChunkPool<1024,alloc__43Q217JASThreadingModel19ObjectLevelLockable>FUl = .text:0x80275630; // type:function size:0x144 scope:global align:4 -JASMemChunkPool<1024,__ct__Q243Q217JASThreadingModel19ObjectLevelLockable>11MemoryChunkF20JASMemChunkPool<1024PQ243Q217JASThreadingModel19ObjectLevelLockable>11MemoryChunk = .text:0x80275774; // type:function size:0x14 scope:global align:4 +free__64JASMemChunkPool<1024,Q217JASThreadingModel19ObjectLevelLockable>FPv = .text:0x80275570; // type:function size:0xC0 scope:global align:4 +alloc__64JASMemChunkPool<1024,Q217JASThreadingModel19ObjectLevelLockable>FUl = .text:0x80275630; // type:function size:0x144 scope:global align:4 +__ct__Q264JASMemChunkPool<1024,Q217JASThreadingModel19ObjectLevelLockable>11MemoryChunkFPQ264JASMemChunkPool<1024,Q217JASThreadingModel19ObjectLevelLockable>11MemoryChunk = .text:0x80275774; // type:function size:0x14 scope:global align:4 __dt__18JASCriticalSectionFv = .text:0x80275788; // type:function size:0x58 scope:global align:4 getThreadPointer__6JASDvdFv = .text:0x802757E0; // type:function size:0x8 scope:global align:4 createThread__6JASDvdFliUl = .text:0x802757E8; // type:function size:0xA0 scope:global align:4 @@ -11511,8 +11511,8 @@ begin__Q27JGadget25TLinkList<8JASTrack,-576>Fv = .text:0x80278BB4; // type:funct begin__Q27JGadget13TNodeLinkListFv = .text:0x80278BE8; // type:function size:0x34 scope:global align:4 getNext__Q27JGadget13TLinkListNodeCFv = .text:0x80278C1C; // type:function size:0x8 scope:global align:4 __as__Q37JGadget25TLinkList<8JASTrack,-576>8iteratorFRCQ37JGadget25TLinkList<8JASTrack,-576>8iterator = .text:0x80278C24; // type:function size:0x44 scope:global align:4 -JGadget::TIteratorFQ27JGadget44TIterator = .text:0x80278C68; // type:function size:0x30 scope:global align:4 -std::iteratorFQ23std43iterator = .text:0x80278C98; // type:function size:0x4 scope:global align:4 +__as__Q27JGadget79TIteratorFRCQ27JGadget79TIterator = .text:0x80278C68; // type:function size:0x30 scope:global align:4 +__as__Q23std78iteratorFRCQ23std78iterator = .text:0x80278C98; // type:function size:0x4 scope:global align:4 __pp__Q37JGadget25TLinkList<8JASTrack,-576>8iteratorFv = .text:0x80278C9C; // type:function size:0x30 scope:global align:4 __pp__Q37JGadget13TNodeLinkList8iteratorFv = .text:0x80278CCC; // type:function size:0x38 scope:global align:4 __rf__Q37JGadget25TLinkList<8JASTrack,-576>8iteratorCFv = .text:0x80278D04; // type:function size:0x24 scope:global align:4 @@ -11546,7 +11546,7 @@ __ct__Q317JASThreadingModel56InterruptsDisable<35JASMemPool_MultiThreaded<8JASTr __dt__Q317JASThreadingModel56InterruptsDisable<35JASMemPool_MultiThreaded<8JASTrack>>4LockFv = .text:0x802792DC; // type:function size:0x58 scope:global align:4 __ct__18JASCriticalSectionFv = .text:0x80279334; // type:function size:0x34 scope:global align:4 get__21JASPtrTable<7JASBank>CFUl = .text:0x80279368; // type:function size:0x24 scope:global align:4 -JASPtrArray<7JASBank,256>::JASPtrArray<7JASBank,256>(void) = .text:0x8027938C; // type:function size:0x38 scope:global align:4 +__ct__25JASPtrArray<7JASBank,256>Fv = .text:0x8027938C; // type:function size:0x38 scope:global align:4 __ct__21JASPtrTable<7JASBank>FPP7JASBankUl = .text:0x802793C4; // type:function size:0x44 scope:global align:4 __ct__40JASGlobalInstance<19JASDefaultBankTable>Fb = .text:0x80279408; // type:function size:0x20 scope:global align:4 __dt__40JASGlobalInstance<19JASDefaultBankTable>Fv = .text:0x80279428; // type:function size:0x64 scope:global align:4 @@ -11661,7 +11661,7 @@ cmdPrintf__12JASSeqParserFP8JASTrackPUl = .text:0x8027B31C; // type:function siz execNoteOnGate__12JASSeqParserFP8JASTrackUlUlUlUl = .text:0x8027B51C; // type:function size:0xA0 scope:global align:4 execNoteOnMidi__12JASSeqParserFP8JASTrackUlUlUl = .text:0x8027B5BC; // type:function size:0x14 scope:global align:4 execNoteOff__12JASSeqParserFP8JASTrackUl = .text:0x8027B5D0; // type:function size:0x10 scope:global align:4 -fn_8027b5e0 = .text:0x8027B5E0; // type:function size:0x2C scope:global align:4 +execNoteOff__12JASSeqParserFP8JASTrackM12JASSeqParserFPCvPvP8JASTrackPUl_lUlPUl = .text:0x8027B5E0; // type:function size:0x2C scope:global align:4 parseNoteOff__12JASSeqParserFP8JASTrackUc = .text:0x8027B60C; // type:function size:0x38 scope:global align:4 parseNoteOn__12JASSeqParserFP8JASTrackUc = .text:0x8027B644; // type:function size:0xAC scope:global align:4 parseCommand__12JASSeqParserFP8JASTrackUcUs = .text:0x8027B6F0; // type:function size:0x1A0 scope:global align:4 @@ -12264,8 +12264,8 @@ init__13JAUSoundTableFPCv = .text:0x8028C2DC; // type:function size:0x48 scope:g getTypeID__13JAUSoundTableCF10JAISoundID = .text:0x8028C324; // type:function size:0xB8 scope:global align:4 getData__13JAUSoundTableCF10JAISoundID = .text:0x8028C3DC; // type:function size:0xD4 scope:global align:4 init__17JAUSoundNameTableFPCv = .text:0x8028C4B0; // type:function size:0x48 scope:global align:4 -JAUSoundTable_<17JAUSoundTableRoot,20JAUSoundTableSection,18JAUSoundTableGroup,getSection__2v>CFi = .text:0x8028C4F8; // type:function size:0x50 scope:global align:4 -JAUSoundTable_<17JAUSoundTableRoot,20JAUSoundTableSection,18JAUSoundTableGroup,getGroup__2v>CFPC20JAUSoundTableSectioni = .text:0x8028C548; // type:function size:0x64 scope:global align:4 +getSection__JAUSoundTable_<17JAUSoundTableRoot,20JAUSoundTableSection,18JAUSoundTableGroup,v>CFi = .text:0x8028C4F8; // type:function size:0x50 scope:global align:4 +getGroup__JAUSoundTable_<17JAUSoundTableRoot,20JAUSoundTableSection,18JAUSoundTableGroup,v>CFPC20JAUSoundTableSectioni = .text:0x8028C548; // type:function size:0x64 scope:global align:4 __ct__18JAUStreamFileTableFv = .text:0x8028C5AC; // type:function size:0xC scope:global align:4 init__18JAUStreamFileTableFPCv = .text:0x8028C5B8; // type:function size:0x4C scope:global align:4 getNumFiles__18JAUStreamFileTableCFv = .text:0x8028C604; // type:function size:0xC scope:global align:4 @@ -12355,14 +12355,14 @@ __ct__Q28JMessage6TParseFPQ28JMessage18TResourceContainer = .text:0x8028DE78; // __dt__Q28JMessage6TParseFv = .text:0x8028DE94; // type:function size:0x58 scope:global align:4 parseHeader_next__Q28JMessage6TParseFPPCvPUlUl = .text:0x8028DEEC; // type:function size:0x12C scope:global align:4 parseBlock_next__Q28JMessage6TParseFPPCvPUlUl = .text:0x8028E018; // type:function size:0x164 scope:global align:4 -JGadget::TLinkList_factory::~TLinkList_factory(void) = .text:0x8028E17C; // type:function size:0x5C scope:global align:4 -JGadget::TLinkList::begin__Fv = .text:0x8028E1D8; // type:function size:0x8 scope:global align:4 -JGadget::TLinkList::end__Fv = .text:0x8028E1E0; // type:function size:0x8 scope:global align:4 -__ne__7JGadgetFQ27JGadget31TLinkList8iteratorQ27JGadget31TLinkList8iterator = .text:0x8028E1E8; // type:function size:0x18 scope:global align:4 -JGadget::TLinkList_factory::Erase_destroy__FP20TResource__8JMessage = .text:0x8028E200; // type:function size:0x58 scope:global align:4 +__dt__Q27JGadget42TLinkList_factoryFv = .text:0x8028E17C; // type:function size:0x5C scope:global align:4 +begin__Q27JGadget34TLinkListFv = .text:0x8028E1D8; // type:function size:0x8 scope:global align:4 +end__Q27JGadget34TLinkListFv = .text:0x8028E1E0; // type:function size:0x8 scope:global align:4 +__ne__7JGadgetFQ37JGadget34TLinkList8iteratorQ37JGadget34TLinkList8iterator = .text:0x8028E1E8; // type:function size:0x18 scope:global align:4 +Erase_destroy__Q27JGadget42TLinkList_factoryFPQ28JMessage9TResource = .text:0x8028E200; // type:function size:0x58 scope:global align:4 __ct__Q27JGadget65TContainerEnumeratorFRQ38JMessage18TResourceContainer10TCResource = .text:0x8028E258; // type:function size:0x54 scope:global align:4 -JGadget::TEnumerator8__ml__9iterator>Fv = .text:0x8028E2AC; // type:function size:0x14 scope:global align:4 -fn_8028e2c0 = .text:0x8028E2C0; // type:function size:0x38 scope:global align:4 +__ml__Q27JGadget68TEnumerator8iterator>Fv = .text:0x8028E2AC; // type:function size:0x14 scope:global align:4 +__opb__Q27JGadget68TEnumerator8iterator>CFv = .text:0x8028E2C0; // type:function size:0x38 scope:global align:4 __ct__Q28JMessage15TResource_colorFv = .text:0x8028E2F8; // type:function size:0x10 scope:global align:4 parseCharacter_2Byte__Q28JMessage6localeFPPCc = .text:0x8028E308; // type:function size:0x28 scope:global align:4 parseCharacter_1Byte__Q28JMessage6localeFPPCc = .text:0x8028E330; // type:function size:0x18 scope:global align:4 @@ -13194,7 +13194,7 @@ CalcTextureMtx__26@unnamed@lyt_material_cpp@FPQ36nw4hbm4math5MTX34RCQ36nw4hbm3ly SetIndTexMtx__26@unnamed@lyt_material_cpp@F14_GXIndTexMtxIDPA3_Cf = .text:0x802C3150; // type:function size:0x1FC scope:global align:4 __as__Q36nw4hbm4math4VEC2FRCQ36nw4hbm4math4VEC2 = .text:0x802C334C; // type:function size:0x14 scope:global align:4 __ct__Q36nw4hbm2ut5ColorFv = .text:0x802C3360; // type:function size:0xC scope:global align:4 -nw4hbm::ut::LinkList::LinkList(void) = .text:0x802C336C; // type:function size:0x20 scope:global align:4 +__ct__Q36nw4hbm2ut40LinkListFv = .text:0x802C336C; // type:function size:0x20 scope:global align:4 __ct__Q36nw4hbm3lyt8MaterialFPCQ46nw4hbm3lyt3res8MaterialRCQ36nw4hbm3lyt11ResBlockSet = .text:0x802C338C; // type:function size:0x758 scope:global align:4 __as__Q36nw4hbm2ut5ColorFRC8_GXColor = .text:0x802C3AE4; // type:function size:0xC scope:global align:4 GetTexMapNum__Q36nw4hbm3lyt19MaterialResourceNumCFv = .text:0x802C3AF0; // type:function size:0xC scope:global align:4 @@ -13903,15 +13903,15 @@ Remove__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode = .text:0x802F08D0; extend_default__Q27JGadget6vectorFUlUlUl = .text:0x802F0964; // type:function size:0x8 scope:global align:4 __ct__Q27JGadget20TVector_pointer_voidFRCQ27JGadget14TAllocator = .text:0x802F096C; // type:function size:0x20 scope:global align:4 __dt__Q27JGadget20TVector_pointer_voidFv = .text:0x802F098C; // type:function size:0x58 scope:global align:4 -fn_802f09e4 = .text:0x802F09E4; // type:function size:0x58 scope:global align:4 +insert__Q27JGadget20TVector_pointer_voidFPPvRCPv = .text:0x802F09E4; // type:function size:0x58 scope:global align:4 erase__Q27JGadget20TVector_pointer_voidFPPvPPv = .text:0x802F0A3C; // type:function size:0x4 scope:global align:4 -JGadget::TVector>::~TVector>(void) = .text:0x802F0A40; // type:function size:0x64 scope:global align:4 -JGadget::TVector>FPPvPPv = .text:0x802F0AA4; // type:function size:0x74 scope:global align:4 -JGadget::TVector>FPPvPPv = .text:0x802F0B18; // type:function size:0x14 scope:global align:4 -fn_802f0b2c = .text:0x802F0B2C; // type:function size:0x74 scope:global align:4 -JGadget::TVector>FPPvUl = .text:0x802F0BA0; // type:function size:0x1C8 scope:global align:4 -JGadget::TVector>23TDestructed_deallocate_Fv = .text:0x802F0D68; // type:function size:0x58 scope:global align:4 -std::__uninitialized_copy_helper::uninitialized_copy__FPPvPPvPPv = .text:0x802F0DC0; // type:function size:0x34 scope:global align:4 +__dt__Q27JGadget38TVector> = .text:0x802F0A40; // type:function size:0x64 scope:global align:4 +erase__Q27JGadget38TVector>FPPvPPv = .text:0x802F0AA4; // type:function size:0x74 scope:global align:4 +DestroyElement___Q27JGadget38TVector>FPPvPPv = .text:0x802F0B18; // type:function size:0x14 scope:global align:4 +insert__Q27JGadget38TVector>PPvUlRCPv = .text:0x802F0B2C; // type:function size:0x74 scope:global align:4 +Insert_raw__Q27JGadget38TVector>FPPvUl = .text:0x802F0BA0; // type:function size:0x1C8 scope:global align:4 +__dt__Q37JGadget38TVector>23TDestructed_deallocate_Fv = .text:0x802F0D68; // type:function size:0x58 scope:global align:4 +uninitialized_copy__Q23std35__uninitialized_copy_helperFPPvPPvPPv = .text:0x802F0DC0; // type:function size:0x34 scope:global align:4 __ct__12JUTCacheFontFPC7ResFONTUlP7JKRHeap = .text:0x802F0DF4; // type:function size:0x80 scope:global align:4 __dt__12JUTCacheFontFv = .text:0x802F0E74; // type:function size:0x98 scope:global align:4 deleteMemBlocks_CacheFont__12JUTCacheFontFv = .text:0x802F0F0C; // type:function size:0x84 scope:global align:4 @@ -16118,12 +16118,12 @@ calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl = .text:0x803400D0; // load__14J3DModelLoaderFPCvUl = .text:0x803400D8; // type:function size:0x2AC scope:global align:4 setupBBoardInfo__14J3DModelLoaderFv = .text:0x80340384; // type:function size:0x130 scope:global align:4 setMtxType__8J3DJointFUc = .text:0x803404B4; // type:function size:0x14 scope:global align:4 -J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>::~J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>(void) = .text:0x803404C8; // type:function size:0x40 scope:global align:4 -J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29init__30J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf = .text:0x80340508; // type:function size:0x30 scope:global align:4 -J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29calc__30J3DMtxCalcJ3DSysInitSoftimage>Fv = .text:0x80340538; // type:function size:0xC scope:global align:4 -J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>::~J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>(void) = .text:0x80340544; // type:function size:0x40 scope:global align:4 -J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25init__26J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf = .text:0x80340584; // type:function size:0xC scope:global align:4 -J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25calc__26J3DMtxCalcJ3DSysInitBasic>Fv = .text:0x80340590; // type:function size:0xC scope:global align:4 +__dt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv = .text:0x803404C8; // type:function size:0x40 scope:global align:4 +init__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf = .text:0x80340508; // type:function size:0x30 scope:global align:4 +calc__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv = .text:0x80340538; // type:function size:0xC scope:global align:4 +__dt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv = .text:0x80340544; // type:function size:0x40 scope:global align:4 +init__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf = .text:0x80340584; // type:function size:0xC scope:global align:4 +calc__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv = .text:0x80340590; // type:function size:0xC scope:global align:4 makeHierarchy__12J3DModelDataFP8J3DJointPPC17J3DModelHierarchy = .text:0x8034059C; // type:function size:0x48 scope:global align:4 __ct__10J3DTextureFUsP7ResTIMG = .text:0x803405E4; // type:function size:0x20 scope:global align:4 __dt__10J3DTextureFv = .text:0x80340604; // type:function size:0x40 scope:global align:4 @@ -16187,9 +16187,9 @@ JMAVECScaleAdd__FPC3VecPC3VecP3Vecf = .text:0x8034359C; // type:function size:0x JMAMTXApplyScale__FPA4_CfPA4_ffff = .text:0x803435C0; // type:function size:0x4C scope:global align:4 __ct__Q25JMath13TRandom_fast_FUl = .text:0x8034360C; // type:function size:0x8 scope:global align:4 __sinit_JMATrigonometric_cpp = .text:0x80343614; // type:function size:0x40 scope:local align:4 -JMath::TSinCosTable<13,f>::TSinCosTable<13,f>(void) = .text:0x80343654; // type:function size:0x100 scope:global align:4 -JMath::TAtanTable<1024,f>::TAtanTable<1024,f>(void) = .text:0x80343754; // type:function size:0xAC scope:global align:4 -JMath::TAsinAcosTable<1024,f>::TAsinAcosTable<1024,f>(void) = .text:0x80343800; // type:function size:0xAC scope:global align:4 +__ct__Q25JMath18TSinCosTable<13,f>Fv = .text:0x80343654; // type:function size:0x100 scope:global align:4 +__ct__Q25JMath18TAtanTable<1024,f>Fv = .text:0x80343754; // type:function size:0xAC scope:global align:4 +__ct__Q25JMath22TAsinAcosTable<1024,f>Fv = .text:0x80343800; // type:function size:0xAC scope:global align:4 ARStartDMA = .text:0x803438AC; // type:function size:0xCC scope:global align:4 ARAlloc = .text:0x80343978; // type:function size:0x50 scope:global align:4 ARInit = .text:0x803439C8; // type:function size:0x88 scope:global align:4 @@ -18461,14 +18461,10 @@ TRKTargetAccessDefault = .text:0x803CBF0C; // type:function size:0xF4 scope:glob TRKTargetReadInstruction = .text:0x803CC000; // type:function size:0x4C scope:global align:4 TRKTargetAccessMemory = .text:0x803CC04C; // type:function size:0x14C scope:global align:4 TRKValidMemory32 = .text:0x803CC198; // type:function size:0x2A4 scope:global align:4 -TRKAccessFile = .text:0x803CC440; // type:label scope:global align:4 -fn_803CC440 = .text:0x803CC440; // type:function size:0x8 -TRKOpenFile = .text:0x803CC448; // type:label scope:global align:4 -fn_803CC448 = .text:0x803CC448; // type:function size:0x8 -TRKCloseFile = .text:0x803CC450; // type:label scope:global align:4 -fn_803CC450 = .text:0x803CC450; // type:function size:0x8 -TRKPositionFile = .text:0x803CC458; // type:label scope:global align:4 -fn_803CC458 = .text:0x803CC458; // type:function size:0x8 +TRKAccessFile = .text:0x803CC440; // type:function size:0x8 +TRKOpenFile = .text:0x803CC448; // type:function size:0x8 +TRKCloseFile = .text:0x803CC450; // type:function size:0x8 +TRKPositionFile = .text:0x803CC458; // type:function size:0x8 TRKSaveExtended1Block = .text:0x803CC460; // type:function size:0x1B8 scope:global align:4 TRKRestoreExtended1Block = .text:0x803CC618; // type:function size:0x1B8 scope:global align:4 __TRK_write_console = .text:0x803CC7D0; // type:function size:0xBC scope:global align:4 @@ -18551,8 +18547,10 @@ DynamicNameTable = .rodata:0x803CE450; // type:object size:0x17B0 scope:global a mtx_adj$108662 = .rodata:0x803CFC00; // type:object size:0x30 scope:local align:4 ...rodata.0 = .rodata:0x803CFC30; // type:label scope:local align:4 l_iconSize$92622 = .rodata:0x803CFC30; // type:object size:0x44 scope:local align:4 -lbl_803CFC74 = .rodata:0x803CFC74; // type:object size:0x6C -lbl_803CFCE0 = .rodata:0x803CFCE0; // type:object size:0x10 +l_dungeon_offColor$92840 = .rodata:0x803CFC74; // type:object size:0x24 scope:local align:4 +l_dungeon_onColor$92841 = .rodata:0x803CFC98; // type:object size:0x24 scope:local align:4 +l_dungeon_stayColor$92842 = .rodata:0x803CFCBC; // type:object size:0x24 scope:local align:4 +colorTable$92896 = .rodata:0x803CFCE0; // type:object size:0x10 scope:local align:4 l_stayType$92949 = .rodata:0x803CFCF0; // type:object size:0x1C scope:local align:4 saveBitLabels__16dSv_event_flag_c = .rodata:0x803CFD10; // type:object size:0x66C scope:global align:4 tempBitLabels__20dSv_event_tmp_flag_c = .rodata:0x803D037C; // type:object size:0x172 scope:global align:4 @@ -19310,30 +19308,30 @@ cResetFilterTable = .rodata:0x803EE9A0; // type:object size:0x10 scope:global al @87788 = .rodata:0x803EE9BC; // type:object size:0xC scope:local align:4 data:4byte cNullVec__6Z2Calc = .rodata:0x803EE9C8; // type:object size:0xC scope:local align:4 cNullVec__6Z2Calc = .rodata:0x803EE9D8; // type:object size:0xC scope:local align:4 -lbl_803EE9E8 = .rodata:0x803EE9E8; // type:object size:0x64 -lbl_803EEA4C = .rodata:0x803EEA4C; // type:object size:0xA -lbl_803EEA56 = .rodata:0x803EEA56; // type:object size:0x64 -lbl_803EEABA = .rodata:0x803EEABA; // type:object size:0xA -lbl_803EEAC4 = .rodata:0x803EEAC4; // type:object size:0x64 -lbl_803EEB28 = .rodata:0x803EEB28; // type:object size:0xA -lbl_803EEB32 = .rodata:0x803EEB32; // type:object size:0x64 -lbl_803EEB96 = .rodata:0x803EEB96; // type:object size:0xA -lbl_803EEBA0 = .rodata:0x803EEBA0; // type:object size:0x6C -lbl_803EEC0C = .rodata:0x803EEC0C; // type:object size:0x5E -lbl_803EEC6A = .rodata:0x803EEC6A; // type:object size:0xA -lbl_803EEC74 = .rodata:0x803EEC74; // type:object size:0x72 -lbl_803EECE6 = .rodata:0x803EECE6; // type:object size:0x6A -lbl_803EED50 = .rodata:0x803EED50; // type:object size:0x6A -lbl_803EEDBA = .rodata:0x803EEDBA; // type:object size:0x6A -lbl_803EEE24 = .rodata:0x803EEE24; // type:object size:0x68 -lbl_803EEE8C = .rodata:0x803EEE8C; // type:object size:0x6A -lbl_803EEEF6 = .rodata:0x803EEEF6; // type:object size:0x6A -lbl_803EEF60 = .rodata:0x803EEF60; // type:object size:0x54 -lbl_803EEFB4 = .rodata:0x803EEFB4; // type:object size:0x64 -lbl_803EF018 = .rodata:0x803EF018; // type:object size:0x9 data:string -lbl_803EF021 = .rodata:0x803EF021; // type:object size:0x64 -lbl_803EF085 = .rodata:0x803EF085; // type:object size:0x68 -lbl_803EF0ED = .rodata:0x803EF0ED; // type:object size:0xF +sReply__8Z2MdnPrm = .rodata:0x803EE9E8; // type:object size:0x64 +sReplyTail__8Z2MdnPrm = .rodata:0x803EEA4C; // type:object size:0xA +sJoke__8Z2MdnPrm = .rodata:0x803EEA56; // type:object size:0x64 +sJokeTail__8Z2MdnPrm = .rodata:0x803EEABA; // type:object size:0xA +sSexy__8Z2MdnPrm = .rodata:0x803EEAC4; // type:object size:0x64 +sSexyTail__8Z2MdnPrm = .rodata:0x803EEB28; // type:object size:0xA +sRidicule__8Z2MdnPrm = .rodata:0x803EEB32; // type:object size:0x64 +sRidiculeTail__8Z2MdnPrm = .rodata:0x803EEB96; // type:object size:0xA +sBoring__8Z2MdnPrm = .rodata:0x803EEBA0; // type:object size:0x6C +sIrritated__8Z2MdnPrm = .rodata:0x803EEC0C; // type:object size:0x5E +sIrritatedTail__8Z2MdnPrm = .rodata:0x803EEC6A; // type:object size:0xA +sOrder__8Z2MdnPrm = .rodata:0x803EEC74; // type:object size:0x72 +sResent__8Z2MdnPrm = .rodata:0x803EECE6; // type:object size:0x6A +sCheerful__8Z2MdnPrm = .rodata:0x803EED50; // type:object size:0x6A +sConfused__8Z2MdnPrm = .rodata:0x803EEDBA; // type:object size:0x6A +sHostility__8Z2MdnPrm = .rodata:0x803EEE24; // type:object size:0x68 +sTired__8Z2MdnPrm = .rodata:0x803EEE8C; // type:object size:0x6A +sSerious__8Z2MdnPrm = .rodata:0x803EEEF6; // type:object size:0x6A +sReplyb__8Z2MdnPrm = .rodata:0x803EEF60; // type:object size:0x54 +sApologize__8Z2MdnPrm = .rodata:0x803EEFB4; // type:object size:0x64 +sApologizeTail__8Z2MdnPrm = .rodata:0x803EF018; // type:object size:0x9 data:string +sDeside__8Z2MdnPrm = .rodata:0x803EF021; // type:object size:0x64 +sAfford__8Z2MdnPrm = .rodata:0x803EF085; // type:object size:0x68 +sAffordTail__8Z2MdnPrm = .rodata:0x803EF0ED; // type:object size:0xF sPrm__8Z2MdnPrm = .rodata:0x803EF0FC; // type:object size:0xCC scope:global align:4 scAnmTable__10homebutton = .rodata:0x803EF1C8; // type:object size:0x60 scope:global align:4 data:4byte scGroupAnmTable__10homebutton = .rodata:0x803EF228; // type:object size:0x250 scope:global align:4 data:4byte @@ -19346,8 +19344,8 @@ JUTResFONT_Ascfont_fix12 = .rodata:0x803EF800; // type:object size:0x4160 scope: lbl_803F3960 = .rodata:0x803F3960; // type:object size:0x20 data:byte j2dDefaultTexMtxInfo = .rodata:0x803F3980; // type:object size:0x24 scope:global align:4 data:byte j2dDefaultIndTexMtxInfo = .rodata:0x803F39A4; // type:object size:0x1C scope:global align:4 -lbl_803F39C0 = .rodata:0x803F39C0; // type:object size:0x14 -lbl_803F39D4 = .rodata:0x803F39D4; // type:object size:0xC data:byte +j2dDefaultTevStageInfo = .rodata:0x803F39C0; // type:object size:0x14 scope:global align:4 +j2dDefaultIndTevStageInfo = .rodata:0x803F39D4; // type:object size:0xC scope:global align:4 data:4byte @31398 = .rodata:0x803F39E0; // type:object size:0x10 scope:local align:4 data:4byte ...rodata.0 = .rodata:0x803F39F0; // type:label scope:local align:4 data:byte ...rodata.0 = .rodata:0x803F3A40; // type:label scope:local align:4 data:byte @@ -19547,7 +19545,7 @@ l_invisibleMat$92045 = .data:0x803F6280; // type:object size:0x85 scope:local al l_matDL = .data:0x803F6320; // type:object size:0x84 scope:global align:4 l_mat1DL = .data:0x803F63C0; // type:object size:0x8D scope:global align:4 lbl_803F644D = .data:0x803F644D; // type:object size:0x2F -J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>::__vt = .data:0x803F647C; // type:object size:0x2C scope:global align:4 +__vt__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya> = .data:0x803F647C; // type:object size:0x2C scope:global align:4 lbl_803F64A8 = .data:0x803F64A8; // type:object size:0x6E data:string @93036 = .data:0x803F6518; // type:object size:0x14 scope:local align:4 __vt__26mDoExt_3DlineMatSortPacket = .data:0x803F652C; // type:object size:0x14 scope:global align:4 @@ -19584,7 +19582,7 @@ lbl_803F6814 = .data:0x803F6814; // type:object size:0x1D data:string __vt__25mDoExt_MtxCalcAnmBlendTbl = .data:0x803F6858; // type:object size:0x2C scope:global align:4 lbl_803F6884 = .data:0x803F6884; // type:object size:0x1A data:string @93144 = .data:0x803F68A0; // type:object size:0x1C scope:local align:4 -J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>::__vt = .data:0x803F68BC; // type:object size:0x2C scope:global align:4 +__vt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya> = .data:0x803F68BC; // type:object size:0x2C scope:global align:4 lbl_803F68E8 = .data:0x803F68E8; // type:object size:0x47 data:string @93146 = .data:0x803F6930; // type:object size:0x14 scope:local align:4 lbl_803F6944 = .data:0x803F6944; // type:object size:0x10 data:string @@ -22781,7 +22779,7 @@ __vt__Q27JStudio14TAdaptor_actor = .data:0x8041E374; // type:object size:0x50 sc @12542 = .data:0x8041E410; // type:object size:0xC scope:local align:4 @12543 = .data:0x8041E41C; // type:object size:0xC scope:local align:4 @12544 = .data:0x8041E428; // type:object size:0xC scope:local align:4 -JStudio_JStage::TVariableValueOutput_object_::__vt = .data:0x8041E434; // type:object size:0x10 scope:global align:4 +__vt__Q214JStudio_JStage81TVariableValueOutput_object_ = .data:0x8041E434; // type:object size:0x10 scope:global align:4 __vt__Q214JStudio_JStage21TAdaptor_ambientLight = .data:0x8041E448; // type:object size:0x20 scope:global align:4 __vt__Q27JStudio21TAdaptor_ambientLight = .data:0x8041E468; // type:object size:0x20 scope:global align:4 ...data.0 = .data:0x8041E488; // type:label scope:local align:4 @@ -22795,7 +22793,7 @@ __vt__Q27JStudio15TAdaptor_camera = .data:0x8041E4C4; // type:object size:0x3C s @12308 = .data:0x8041E54C; // type:object size:0xC scope:local align:4 @12309 = .data:0x8041E558; // type:object size:0xC scope:local align:4 @12310 = .data:0x8041E564; // type:object size:0xC scope:local align:4 -JStudio_JStage::TVariableValueOutput_object_::__vt = .data:0x8041E570; // type:object size:0x10 scope:global align:4 +Q214JStudio_JStage83TVariableValueOutput_object_ = .data:0x8041E570; // type:object size:0x10 scope:global align:4 ...data.0 = .data:0x8041E580; // type:label scope:local align:4 __vt__Q214JStudio_JStage12TAdaptor_fog = .data:0x8041E580; // type:object size:0x20 scope:global align:4 __vt__Q27JStudio12TAdaptor_fog = .data:0x8041E5A0; // type:object size:0x20 scope:global align:4 @@ -22803,7 +22801,7 @@ __vt__Q27JStudio12TAdaptor_fog = .data:0x8041E5A0; // type:object size:0x20 scop @11714 = .data:0x8041E5DC; // type:object size:0xC scope:local align:4 @11715 = .data:0x8041E5E8; // type:object size:0xC scope:local align:4 @11716 = .data:0x8041E5F4; // type:object size:0xC scope:local align:4 -JStudio_JStage::TVariableValueOutput_object_::__vt = .data:0x8041E600; // type:object size:0x10 scope:global align:4 +__vt__Q214JStudio_JStage77TVariableValueOutput_object_ = .data:0x8041E600; // type:object size:0x10 scope:global align:4 __vt__Q214JStudio_JStage14TAdaptor_light = .data:0x8041E610; // type:object size:0x28 scope:global align:4 __vt__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_ = .data:0x8041E638; // type:object size:0x10 scope:global align:4 __vt__Q27JStudio14TAdaptor_light = .data:0x8041E648; // type:object size:0x28 scope:global align:4 @@ -22817,7 +22815,7 @@ __vt__Q27JStudio17TAdaptor_particle = .data:0x8041E798; // type:object size:0x4C __vt__13JASTaskThread = .data:0x8041E7E8; // type:object size:0x10 scope:global align:4 lbl_8041E7F8 = .data:0x8041E7F8; // type:object size:0x1A data:string __vt__19JASDefaultBankTable = .data:0x8041E818; // type:object size:0xC scope:global align:4 -JASBankTable<256>::__vt = .data:0x8041E824; // type:object size:0xC scope:global align:4 +__vt__17JASBankTable<256> = .data:0x8041E824; // type:object size:0xC scope:global align:4 __vt__11JASBankList = .data:0x8041E830; // type:object size:0xC scope:global align:4 @307 = .data:0x8041E840; // type:object size:0x28 scope:local align:4 @339 = .data:0x8041E868; // type:object size:0x28 scope:local align:4 @@ -23037,10 +23035,10 @@ __vt__15Z2SpeechStarter = .data:0x80425274; // type:object size:0x14 scope:globa lbl_80425288 = .data:0x80425288; // type:object size:0x10 data:string @87760 = .data:0x80425298; // type:object size:0x24 scope:local align:4 lbl_804252C0 = .data:0x804252C0; // type:object size:0x10 data:string -JAUStreamStaticAramMgr_<1>::__vt = .data:0x804252D0; // type:object size:0x14 scope:global align:4 +__vt__26JAUStreamStaticAramMgr_<1> = .data:0x804252D0; // type:object size:0x14 scope:global align:4 lbl_804252E4 = .data:0x804252E4; // type:object size:0x1B data:string @87298 = .data:0x80425300; // type:object size:0x14 scope:local align:4 -JAUStreamAramMgrBase_<1>::__vt = .data:0x80425314; // type:object size:0x14 scope:global align:4 +__vt__24JAUStreamAramMgrBase_<1> = .data:0x80425314; // type:object size:0x14 scope:global align:4 lbl_80425328 = .data:0x80425328; // type:object size:0x19 data:string @87300 = .data:0x80425344; // type:object size:0xC scope:local align:4 __vt__10Z2AudioMgr = .data:0x80425350; // type:object size:0xC scope:global align:4 @@ -23218,18 +23216,18 @@ scBatteryPaneName__Q210homebutton10HomeButton = .data:0x80425F08; // type:object __vt__Q210homebutton22HomeButtonEventHandler = .data:0x80426298; // type:object size:0x10 scope:global align:4 __vt__Q310homebutton3gui12EventHandler = .data:0x804262A8; // type:object size:0x10 scope:global align:4 __vt__Q310homebutton3gui9Interface = .data:0x804262B8; // type:object size:0x20 scope:global align:4 -lbl_804262d8 = .data:0x804262D8; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetPointerFromNode__FP26LinkListNode__Q26nw4hbm2ut = .data:0x804262FC; // type:object size:0xB scope:local align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut41LinkListFP26LinkListNode__Q26nw4hbm2ut@0 = .data:0x804262D8; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut41LinkListFP26LinkListNode__Q26nw4hbm2ut = .data:0x804262FC; // type:object size:0xB scope:local align:4 data:string __vt__Q210homebutton18GroupAnmController = .data:0x80426308; // type:object size:0x10 scope:global align:4 __vt__Q310homebutton3gui13PaneComponent = .data:0x80426318; // type:object size:0x68 scope:global align:4 __vt__Q310homebutton3gui11PaneManager = .data:0x80426380; // type:object size:0x54 scope:global align:4 __vt__Q310homebutton3gui7Manager = .data:0x804263D4; // type:object size:0x3C scope:global align:4 __vt__Q310homebutton3gui9Component = .data:0x80426410; // type:object size:0x60 scope:global align:4 -lbl_80426470 = .data:0x80426470; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetPointerFromNode__FP26LinkListNode__Q26nw4hbm2ut = .data:0x80426494; // type:object size:0xB scope:local align:4 data:string -lbl_804264a0 = .data:0x804264A0; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::__ml__8IteratorCFv = .data:0x804264C4; // type:object size:0xB scope:local align:4 data:string -lbl_804264d0 = .data:0x804264D0; // type:object size:0x27 scope:global align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut30LinkListFP26LinkListNode__Q26nw4hbm2ut@0 = .data:0x80426470; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut30LinkListFP26LinkListNode__Q26nw4hbm2ut = .data:0x80426494; // type:object size:0xB scope:local align:4 data:string +@STRING@__ml__Q46nw4hbm2ut30LinkList8IteratorCFv@0 = .data:0x804264A0; // type:object size:0x24 scope:global align:4 data:string +@STRING@__ml__Q46nw4hbm2ut30LinkList8IteratorCFv = .data:0x804264C4; // type:object size:0xB scope:local align:4 data:string +@STRING@List_GetSize__Q26nw4hbm2utFPCQ36nw4hbm2ut4List@0 = .data:0x804264D0; // type:object size:0x27 scope:global align:4 data:string @7657 = .data:0x804264F8; // type:object size:0x11 scope:local align:4 data:string @7658 = .data:0x8042650C; // type:object size:0x26 scope:local align:4 data:string @7697 = .data:0x80426538; // type:object size:0x20 scope:local align:4 data:string @@ -23286,14 +23284,14 @@ twiceBit$2330 = .data:0x804267D8; // type:object size:0x10 scope:local align:4 @9075 = .data:0x80426CCC; // type:object size:0x2D scope:local align:4 data:string __vt__Q36nw4hbm3lyt18AnimTransformBasic = .data:0x80426D00; // type:object size:0x20 scope:global align:4 __vt__Q36nw4hbm3lyt13AnimTransform = .data:0x80426D20; // type:object size:0x20 scope:global align:4 -lbl_80426d40 = .data:0x80426D40; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::__ml__8IteratorCFv = .data:0x80426D64; // type:object size:0xB scope:local align:4 data:string -lbl_80426d70 = .data:0x80426D70; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetPointerFromNode__FP26LinkListNode__Q26nw4hbm2ut = .data:0x80426D94; // type:object size:0xB scope:local align:4 data:string -lbl_80426da0 = .data:0x80426DA0; // type:object size:0x32 scope:global align:4 data:string -lbl_80426dd4 = .data:0x80426DD4; // type:object size:0x35 scope:global align:4 data:string +@STRING@__ml__Q46nw4hbm2ut40LinkList8IteratorCFv@0 = .data:0x80426D40; // type:object size:0x24 scope:global align:4 data:string +@STRING@__ml__Q46nw4hbm2ut40LinkList8IteratorCFv = .data:0x80426D64; // type:object size:0xB scope:local align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut40LinkListFPQ36nw4hbm2ut12LinkListNode@0 = .data:0x80426D70; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut40LinkListFPQ36nw4hbm2ut12LinkListNode = .data:0x80426D94; // type:object size:0xB scope:local align:4 data:string +@STRING@SetSRTElement__Q36nw4hbm3lyt4PaneFUlf@0 = .data:0x80426DA0; // type:object size:0x32 scope:global align:4 data:string +@STRING@SetTexSRTElement__Q36nw4hbm3lyt8MaterialFUlUlf@0 = .data:0x80426DD4; // type:object size:0x35 scope:global align:4 data:string @STRING@SetTexSRTElement__Q36nw4hbm3lyt8MaterialFUlUlf = .data:0x80426E0C; // type:object size:0xB scope:local align:4 data:string -lbl_80426e18 = .data:0x80426E18; // type:object size:0x35 scope:global align:4 data:string +@STRING@SetIndTexSRTElement__Q36nw4hbm3lyt8MaterialFUlUlf = .data:0x80426E18; // type:object size:0x35 scope:global align:4 data:string @STRING@SetIndTexSRTElement__Q36nw4hbm3lyt8MaterialFUlUlf = .data:0x80426E50; // type:object size:0xB scope:local align:4 data:string ...data.0 = .data:0x80426E60; // type:label scope:local align:4 @3405 = .data:0x80426E60; // type:object size:0x1C scope:local align:4 data:string @@ -23306,32 +23304,32 @@ lbl_80426e18 = .data:0x80426E18; // type:object size:0x35 scope:global align:4 d @3633 = .data:0x80426F98; // type:object size:0x28 scope:local align:4 data:string __vt__Q36nw4hbm3lyt24MultiArcResourceAccessor = .data:0x80426FC0; // type:object size:0x14 scope:global align:4 __vt__Q36nw4hbm3lyt19ArcResourceAccessor = .data:0x80426FD4; // type:object size:0x14 scope:global align:4 -lbl_80426fe8 = .data:0x80426FE8; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::__ml__8IteratorCFv = .data:0x8042700C; // type:object size:0xB scope:local align:4 data:string -lbl_80427018 = .data:0x80427018; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetPointerFromNode__FP26LinkListNode__Q26nw4hbm2ut = .data:0x8042703C; // type:object size:0xB scope:local align:4 data:string -lbl_80427048 = .data:0x80427048; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetNodeFromPointer__FP30ArcResourceLink__Q26nw4hbm3lyt = .data:0x8042706C; // type:object size:0xB scope:local align:4 data:string -lbl_80427078 = .data:0x80427078; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetNodeFromPointer__FP26FontRefLink__Q26nw4hbm3lyt = .data:0x8042709C; // type:object size:0xB scope:local align:4 data:string -lbl_804270a8 = .data:0x804270A8; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetPointerFromNode__FP26LinkListNode__Q26nw4hbm2ut = .data:0x804270CC; // type:object size:0xB scope:local align:4 data:string +@STRING@__ml__Q46nw4hbm2ut42LinkList8IteratorCFv@0 = .data:0x80426FE8; // type:object size:0x24 scope:global align:4 data:string +@STRING@__ml__Q46nw4hbm2ut42LinkList8IteratorCFv = .data:0x8042700C; // type:object size:0xB scope:local align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut42LinkListFP26LinkListNode__Q26nw4hbm2ut@0 = .data:0x80427018; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut42LinkListFP26LinkListNode__Q26nw4hbm2ut = .data:0x8042703C; // type:object size:0xB scope:local align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut42LinkListFP30ArcResourceLink__Q26nw4hbm3lyt@0 = .data:0x80427048; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut42LinkListFP30ArcResourceLink__Q26nw4hbm3lyt = .data:0x8042706C; // type:object size:0xB scope:local align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut38LinkListFP26FontRefLink__Q26nw4hbm3lyt@0 = .data:0x80427078; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut38LinkListFP26FontRefLink__Q26nw4hbm3lyt = .data:0x8042709C; // type:object size:0xB scope:local align:4 data:string +@STRING@Q36nw4hbm2ut38LinkListFP26LinkListNode__Q26nw4hbm2ut@0 = .data:0x804270A8; // type:object size:0x24 scope:global align:4 data:string +@STRING@Q36nw4hbm2ut38LinkListFP26LinkListNode__Q26nw4hbm2ut = .data:0x804270CC; // type:object size:0xB scope:local align:4 data:string __vt__Q36nw4hbm3lyt8Bounding = .data:0x804270D8; // type:object size:0x64 scope:global align:4 @7987 = .data:0x80427140; // type:object size:0xF scope:local align:4 data:string @7988 = .data:0x80427150; // type:object size:0x2D scope:local align:4 data:string @8129 = .data:0x80427180; // type:object size:0x2C scope:local align:4 data:string __vt__Q36nw4hbm3lyt8DrawInfo = .data:0x804271B0; // type:object size:0xC scope:global align:4 __vt__Q36nw4hbm3lyt5Group = .data:0x804271C0; // type:object size:0xC scope:global align:4 -lbl_804271cc = .data:0x804271CC; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetNodeFromPointer__FP20Group__Q26nw4hbm3lyt = .data:0x804271F0; // type:object size:0xB scope:local align:4 data:string -lbl_804271fc = .data:0x804271FC; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::__ml__8IteratorCFv = .data:0x80427220; // type:object size:0xB scope:local align:4 data:string -lbl_8042722c = .data:0x8042722C; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetPointerFromNode__FP26LinkListNode__Q26nw4hbm2ut = .data:0x80427250; // type:object size:0xB scope:local align:4 data:string -lbl_8042725c = .data:0x8042725C; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetNodeFromPointer__FP30PaneLink__Q36nw4hbm3lyt6detail = .data:0x80427280; // type:object size:0xB scope:local align:4 data:string -lbl_8042728c = .data:0x8042728C; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::__ml__8IteratorCFv = .data:0x804272B0; // type:object size:0xB scope:local align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut31LinkListFP20Group__Q26nw4hbm3lyt@0 = .data:0x804271CC; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut31LinkListFP20Group__Q26nw4hbm3lyt = .data:0x804271F0; // type:object size:0xB scope:local align:4 data:string +@STRING@__ml__Q46nw4hbm2ut31LinkList8IteratorCFv@0 = .data:0x804271FC; // type:object size:0x24 scope:global align:4 data:string +@STRING@__ml__Q46nw4hbm2ut31LinkList8IteratorCFv = .data:0x80427220; // type:object size:0xB scope:local align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut31LinkListFP26LinkListNode__Q26nw4hbm2ut@0 = .data:0x8042722C; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut31LinkListFP26LinkListNode__Q26nw4hbm2ut = .data:0x80427250; // type:object size:0xB scope:local align:4 data:string +@STRING@GetNodeFromPointer__nw4hbm2ut41LinkListFP30PaneLink__Q36nw4hbm3lyt6detail@0 = .data:0x8042725C; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetNodeFromPointer__nw4hbm2ut41LinkListFP30PaneLink__Q36nw4hbm3lyt6detail = .data:0x80427280; // type:object size:0xB scope:local align:4 data:string +@STRING@__ml__Q46nw4hbm2ut41LinkList8IteratorCFv@0 = .data:0x8042728C; // type:object size:0x24 scope:global align:4 data:string +@STRING@__ml__Q46nw4hbm2ut41LinkList8IteratorCFv = .data:0x804272B0; // type:object size:0xB scope:local align:4 data:string ...data.0 = .data:0x804272C0; // type:label scope:local align:4 @9749 = .data:0x804272C0; // type:object size:0xF scope:local align:4 data:string @9750 = .data:0x804272D0; // type:object size:0x2F scope:local align:4 data:string @@ -23343,12 +23341,12 @@ lbl_8042728c = .data:0x8042728C; // type:object size:0x24 scope:global align:4 d @9871 = .data:0x804273C8; // type:object size:0x21 scope:local align:4 data:string @10218 = .data:0x804273EC; // type:object size:0x12 scope:local align:4 data:string __vt__Q36nw4hbm3lyt6Layout = .data:0x80427400; // type:object size:0x34 scope:global align:4 -lbl_80427434 = .data:0x80427434; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetNodeFromPointer__FP28AnimTransform__Q26nw4hbm3lyt = .data:0x80427458; // type:object size:0xB scope:local align:4 data:string -lbl_80427464 = .data:0x80427464; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::__ml__8IteratorCFv = .data:0x80427488; // type:object size:0xB scope:local align:4 data:string -lbl_80427494 = .data:0x80427494; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetPointerFromNode__FP26LinkListNode__Q26nw4hbm2ut = .data:0x804274B8; // type:object size:0xB scope:local align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut40LinkListFP28AnimTransform__Q26nw4hbm3lyt@0 = .data:0x80427434; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut40LinkListFP28AnimTransform__Q26nw4hbm3lyt = .data:0x80427458; // type:object size:0xB scope:local align:4 data:string +@STRING@__ml__Q46nw4hbm2ut40LinkList8IteratorCFv@0 = .data:0x80427464; // type:object size:0x24 scope:global align:4 data:string +@STRING@__ml__Q46nw4hbm2ut40LinkList8IteratorCFv = .data:0x80427488; // type:object size:0xB scope:local align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut40LinkListFP26LinkListNode__Q26nw4hbm2ut@0 = .data:0x80427494; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut40LinkListFP26LinkListNode__Q26nw4hbm2ut = .data:0x804274B8; // type:object size:0xB scope:local align:4 data:string lbl_804274C3 = .data:0x804274C3; // type:object size:0x65 ...data.0 = .data:0x80427528; // type:label scope:local align:4 @9778 = .data:0x80427528; // type:object size:0x11 scope:local align:4 data:string @@ -23379,8 +23377,8 @@ kAlpSels$8308 = .data:0x804279D8; // type:object size:0x20 scope:local align:4 @11501 = .data:0x804279F8; // type:object size:0x48 scope:local align:4 data:string @11502 = .data:0x80427A40; // type:object size:0x59 scope:local align:4 data:string __vt__Q36nw4hbm3lyt8Material = .data:0x80427AA0; // type:object size:0x28 scope:global align:4 -lbl_80427ac8 = .data:0x80427AC8; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetNodeFromPointer__FP28AnimationLink__Q26nw4hbm3lyt = .data:0x80427AEC; // type:object size:0xB scope:local align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut40LinkListFP28AnimationLink__Q26nw4hbm3lyt@0 = .data:0x80427AC8; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut40LinkListFP28AnimationLink__Q26nw4hbm3lyt = .data:0x80427AEC; // type:object size:0xB scope:local align:4 data:string lbl_80427AF7 = .data:0x80427AF7; // type:object size:0x31 ...data.0 = .data:0x80427B28; // type:label scope:local align:4 @9426 = .data:0x80427B28; // type:object size:0xD scope:local align:4 data:string @@ -23395,25 +23393,25 @@ lbl_80427AF7 = .data:0x80427AF7; // type:object size:0x31 __vt__Q36nw4hbm3lyt4Pane = .data:0x80427CC4; // type:object size:0x64 scope:global align:4 __vt__Q46nw4hbm3lyt6detail8PaneBase = .data:0x80427D28; // type:object size:0xC scope:global align:4 lbl_80427D34 = .data:0x80427D34; // type:object size:0x60 -lbl_80427d94 = .data:0x80427D94; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetIteratorFromPointer__FP26LinkListNode__Q26nw4hbm2ut = .data:0x80427DB8; // type:object size:0xB scope:local align:4 data:string -lbl_80427dc4 = .data:0x80427DC4; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetNodeFromPointer__FP19Pane__Q26nw4hbm3lyt = .data:0x80427DE8; // type:object size:0xB scope:local align:4 data:string -lbl_80427df4 = .data:0x80427DF4; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetIteratorFromPointer__FP19Pane__Q26nw4hbm3lyt = .data:0x80427E18; // type:object size:0xB scope:local align:4 data:string -lbl_80427E23 = .data:0x80427E23; // type:object size:0x61 -lbl_80427e84 = .data:0x80427E84; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetIteratorFromPointer__Q36nw4hbm2ut30LinkListFP26LinkListNode__Q26nw4hbm2ut@0 = .data:0x80427D94; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetIteratorFromPointer__Q36nw4hbm2ut30LinkListFP26LinkListNode__Q26nw4hbm2ut = .data:0x80427DB8; // type:object size:0xB scope:local align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut30LinkListFP19Pane__Q26nw4hbm3lyt@0 = .data:0x80427DC4; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetNodeFromPointer__Q36nw4hbm2ut30LinkListFP19Pane__Q26nw4hbm3lyt = .data:0x80427DE8; // type:object size:0xB scope:local align:4 data:string +@STRING@GetIteratorFromPointer__Q36nw4hbm2ut30LinkListFP19Pane__Q26nw4hbm3lyt@0 = .data:0x80427DF4; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetIteratorFromPointer__Q36nw4hbm2ut30LinkListFP19Pane__Q26nw4hbm3lyt = .data:0x80427E18; // type:object size:0xB scope:local align:4 data:string +lbl_80427e23 = .data:0x80427E23; // type:object size:0x61 +@STRING@GetIteratorFromPointer__Q46nw4hbm2ut6detail12LinkListImplFPQ36nw4hbm2ut12LinkListNode@0 = .data:0x80427E84; // type:object size:0x24 scope:global align:4 data:string @STRING@GetIteratorFromPointer__Q46nw4hbm2ut6detail12LinkListImplFPQ36nw4hbm2ut12LinkListNode = .data:0x80427EA8; // type:object size:0xB scope:local align:4 data:string @8105 = .data:0x80427EB8; // type:object size:0x10 scope:local align:4 data:string @8202 = .data:0x80427EC8; // type:object size:0x3C scope:local align:4 data:string @8310 = .data:0x80427F04; // type:object size:0x6A scope:local align:4 data:string @8336 = .data:0x80427F70; // type:object size:0x2E scope:local align:4 data:string __vt__Q36nw4hbm3lyt7Picture = .data:0x80427FA0; // type:object size:0x6C scope:global align:4 -lbl_8042800c = .data:0x8042800C; // type:object size:0x39 scope:global align:4 data:string +@STRING@SetVtxColorElement__Q36nw4hbm3lyt6detailFPQ36nw4hbm2ut5ColorUlUc@0 = .data:0x8042800C; // type:object size:0x39 scope:global align:4 data:string @STRING@SetVtxColorElement__Q36nw4hbm3lyt6detailFPQ36nw4hbm2ut5ColorUlUc = .data:0x80428048; // type:object size:0x9 scope:local align:4 data:string -lbl_80428054 = .data:0x80428054; // type:object size:0x39 scope:global align:4 data:string +@STRING@GetVtxColorElement__Q36nw4hbm3lyt6detailFPCQ36nw4hbm2ut5ColorUl@0 = .data:0x80428054; // type:object size:0x39 scope:global align:4 data:string @STRING@GetVtxColorElement__Q36nw4hbm3lyt6detailFPCQ36nw4hbm2ut5ColorUl = .data:0x80428090; // type:object size:0x9 scope:local align:4 data:string -lbl_8042809c = .data:0x8042809C; // type:object size:0x34 scope:global align:4 data:string +@STRING@SetTexCoordGen__Q36nw4hbm3lyt8MaterialFUlQ36nw4hbm3lyt11TexCoordGen@0 = .data:0x8042809C; // type:object size:0x34 scope:global align:4 data:string @STRING@SetTexCoordGen__Q36nw4hbm3lyt8MaterialFUlQ36nw4hbm3lyt11TexCoordGen = .data:0x804280D0; // type:object size:0xB scope:local align:4 data:string __vt__Q36nw4hbm3lyt16ResourceAccessor = .data:0x804280E0; // type:object size:0x14 scope:global align:4 ...data.0 = .data:0x804280F8; // type:label scope:local align:4 @@ -23437,22 +23435,22 @@ __vt__Q36nw4hbm3lyt16ResourceAccessor = .data:0x804280E0; // type:object size:0x @10602 = .data:0x80428434; // type:object size:0x19 scope:local align:4 data:string @10603 = .data:0x80428450; // type:object size:0x19 scope:local align:4 data:string __vt__Q36nw4hbm3lyt7TextBox = .data:0x8042846C; // type:object size:0x74 scope:global align:4 -lbl_804284e0 = .data:0x804284E0; // type:object size:0x35 scope:global align:4 data:string -lbl_80428518 = .data:0x80428518; // type:object size:0x37 scope:global align:4 data:string -lbl_80428550 = .data:0x80428550; // type:object size:0x11 scope:global align:4 data:string -lbl_80428564 = .data:0x80428564; // type:object size:0x37 scope:global align:4 data:string -lbl_8042859c = .data:0x8042859C; // type:object size:0x11 scope:global align:4 data:string -lbl_804285b0 = .data:0x804285B0; // type:object size:0x49 scope:global align:4 data:string -lbl_804285fc = .data:0x804285FC; // type:object size:0x11 scope:global align:4 data:string -lbl_80428610 = .data:0x80428610; // type:object size:0x35 scope:global align:4 data:string +@STRING@GetCharStrmReader__Q36nw4hbm2ut4FontCFv@0 = .data:0x804284E0; // type:object size:0x35 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPC7wchar_t@6 = .data:0x80428518; // type:object size:0x37 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPC7wchar_t@5 = .data:0x80428550; // type:object size:0x11 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPC7wchar_t@4 = .data:0x80428564; // type:object size:0x37 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPC7wchar_t@3 = .data:0x8042859C; // type:object size:0x11 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPC7wchar_t@2 = .data:0x804285B0; // type:object size:0x49 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPC7wchar_t@1 = .data:0x804285FC; // type:object size:0x11 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPC7wchar_t@0 = .data:0x80428610; // type:object size:0x35 scope:global align:4 data:string @STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPC7wchar_t = .data:0x80428648; // type:object size:0x11 scope:local align:4 data:string -lbl_8042865c = .data:0x8042865C; // type:object size:0x35 scope:global align:4 data:string +@STRING@GetCurrentPos__Q36nw4hbm2ut14CharStrmReaderCFv@0 = .data:0x8042865C; // type:object size:0x35 scope:global align:4 data:string @STRING@GetCurrentPos__Q36nw4hbm2ut14CharStrmReaderCFv = .data:0x80428694; // type:object size:0x11 scope:local align:4 data:string -lbl_804286a8 = .data:0x804286A8; // type:object size:0x35 scope:global align:4 data:string +@STRING@Next__Q36nw4hbm2ut14CharStrmReaderFv@0 = .data:0x804286A8; // type:object size:0x35 scope:global align:4 data:string @STRING@Next__Q36nw4hbm2ut14CharStrmReaderFv = .data:0x804286E0; // type:object size:0x11 scope:local align:4 data:string -lbl_804286f4 = .data:0x804286F4; // type:object size:0x2D scope:global align:4 data:string +@STRING@GetTextColor__Q36nw4hbm3lyt7TextBoxCFUl@0 = .data:0x804286F4; // type:object size:0x2D scope:global align:4 data:string @STRING@GetTextColor__Q36nw4hbm3lyt7TextBoxCFUl = .data:0x80428724; // type:object size:0xA scope:local align:4 data:string -lbl_80428730 = .data:0x80428730; // type:object size:0x2D scope:global align:4 data:string +@STRING@SetTextColor__Q36nw4hbm3lyt7TextBoxFUlQ36nw4hbm2ut5Color@0 = .data:0x80428730; // type:object size:0x2D scope:global align:4 data:string @STRING@SetTextColor__Q36nw4hbm3lyt7TextBoxFUlQ36nw4hbm2ut5Color = .data:0x80428760; // type:object size:0xA scope:local align:4 data:string ...data.0 = .data:0x80428770; // type:label scope:local align:4 flipInfos$7852 = .data:0x80428770; // type:object size:0x3C scope:local align:4 @@ -23469,8 +23467,8 @@ sArcTanTbl__Q36nw4hbm4math29@unnamed@math_triangular_cpp@ = .data:0x804299E0; // @10961 = .data:0x80429B04; // type:object size:0x41 scope:local align:4 data:string @8302 = .data:0x80429B48; // type:object size:0x14 scope:local align:4 data:string @8303 = .data:0x80429B5C; // type:object size:0x27 scope:local align:4 data:string -lbl_80429b84 = .data:0x80429B84; // type:object size:0x24 scope:global align:4 data:string -@STRING@nw4hbm::ut::LinkList::GetPointerFromNode__FP26LinkListNode__Q26nw4hbm2ut = .data:0x80429BA8; // type:object size:0xB scope:local align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut46LinkListFP26LinkListNode__Q26nw4hbm2ut@0 = .data:0x80429B84; // type:object size:0x24 scope:global align:4 data:string +@STRING@GetPointerFromNode__Q36nw4hbm2ut46LinkListFP26LinkListNode__Q26nw4hbm2ut = .data:0x80429BA8; // type:object size:0xB scope:local align:4 data:string ...data.0 = .data:0x80429BB8; // type:label scope:local align:4 @827 = .data:0x80429BB8; // type:object size:0x18 scope:local align:4 data:string @828 = .data:0x80429BD0; // type:object size:0x37 scope:local align:4 data:string @@ -23579,8 +23577,8 @@ __vt__Q36nw4hbm2ut4Font = .data:0x8042AF28; // type:object size:0x58 scope:globa @4800 = .data:0x8042AF98; // type:object size:0x23 scope:local align:4 data:string @4801 = .data:0x8042AFC0; // type:object size:0x38 scope:local align:4 data:string @4917 = .data:0x8042AFF8; // type:object size:0x36 scope:local align:4 data:string -nw4hbm::ut::TagProcessorBase::__vt = .data:0x8042B030; // type:object size:0x14 scope:global align:4 -nw4hbm::ut::TagProcessorBase::__vt = .data:0x8042B044; // type:object size:0x14 scope:global align:4 +__vt__Q36nw4hbm2ut19TagProcessorBase = .data:0x8042B030; // type:object size:0x14 scope:global align:4 +__vt__Q36nw4hbm2ut19TagProcessorBase = .data:0x8042B044; // type:object size:0x14 scope:global align:4 ...data.0 = .data:0x8042B058; // type:label scope:local align:4 @2600 = .data:0x8042B058; // type:object size:0xC scope:local align:4 @2614 = .data:0x8042B064; // type:object size:0xC scope:local align:4 @@ -23598,12 +23596,12 @@ nw4hbm::ut::TagProcessorBase::__vt = .data:0x8042B044; // type:object size:0x @11547 = .data:0x8042B264; // type:object size:0x35 scope:local align:4 data:string @11548 = .data:0x8042B29C; // type:object size:0x3C scope:local align:4 data:string @12311 = .data:0x8042B2D8; // type:object size:0x3A scope:local align:4 data:string -lbl_8042B312 = .data:0x8042B312; // type:object size:0x3A -lbl_8042b34c = .data:0x8042B34C; // type:object size:0x7A scope:global align:4 data:string -lbl_8042b3c8 = .data:0x8042B3C8; // type:object size:0x11 scope:global align:4 data:string -lbl_8042b3dc = .data:0x8042B3DC; // type:object size:0x37 scope:global align:4 data:string -lbl_8042b414 = .data:0x8042B414; // type:object size:0x11 scope:global align:4 data:string -lbl_8042b428 = .data:0x8042B428; // type:object size:0x35 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPCc@5 = .data:0x8042B312; // type:object size:0x3A +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPCc@4 = .data:0x8042B34C; // type:object size:0x7A scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPCc@3 = .data:0x8042B3C8; // type:object size:0x11 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPCc@2 = .data:0x8042B3DC; // type:object size:0x37 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPCc@1 = .data:0x8042B414; // type:object size:0x11 scope:global align:4 data:string +@STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPCc@0 = .data:0x8042B428; // type:object size:0x35 scope:global align:4 data:string @STRING@Set__Q36nw4hbm2ut14CharStrmReaderFPCc = .data:0x8042B460; // type:object size:0x11 scope:local align:4 data:string lbl_8042B471 = .data:0x8042B471; // type:object size:0x1DF lbl_8042B650 = .data:0x8042B650; // type:object size:0x24 data:string @@ -23836,8 +23834,8 @@ lbl_8042F080 = .data:0x8042F080; // type:object size:0x14 data:string __vt__20J3DClusterLoader_v15 = .data:0x8042F094; // type:object size:0x10 scope:global align:4 lbl_8042F0A8 = .data:0x8042F0A8; // type:object size:0x14 data:string lbl_8042F0BC = .data:0x8042F0BC; // type:object size:0x24 data:string -J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>::__vt = .data:0x8042F0E0; // type:object size:0x2C scope:global align:4 -J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>::__vt = .data:0x8042F10C; // type:object size:0x2C scope:global align:4 +__vt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage> = .data:0x8042F0E0; // type:object size:0x2C scope:global align:4 +__vt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic> = .data:0x8042F10C; // type:object size:0x2C scope:global align:4 __vt__18J3DModelLoader_v21 = .data:0x8042F138; // type:object size:0x44 scope:global align:4 __vt__18J3DModelLoader_v26 = .data:0x8042F17C; // type:object size:0x44 scope:global align:4 __vt__14J3DModelLoader = .data:0x8042F1C0; // type:object size:0x44 scope:global align:4 @@ -25496,8 +25494,8 @@ S_old_cameye$102405 = .bss:0x804BB1D8; // type:object size:0xC scope:local align S_old_camctr$102409 = .bss:0x804BB1F0; // type:object size:0xC scope:local align:4 @90936 = .bss:0x804BB200; // type:object size:0xC scope:local align:4 @90939 = .bss:0x804BB20C; // type:object size:0xC scope:local align:4 -@LOCAL@dThunder_c::draw(void)@l_offsetPos = .bss:0x804BB218; // type:object size:0xC scope:local align:4 -@LOCAL@dThunder_c::draw(void)@l_scale@0 = .bss:0x804BB224; // type:object size:0xC scope:local align:4 +l_offsetPos$localstatic3$draw__10dThunder_cFv = .bss:0x804BB218; // type:object size:0xC scope:local align:4 +l_scale$localstatic5$draw__10dThunder_cFv = .bss:0x804BB224; // type:object size:0xC scope:local align:4 @102114 = .bss:0x804BB230; // type:object size:0xC scope:local align:4 g_fmHIO = .bss:0x804BB23C; // type:object size:0x14 scope:global align:4 @94901 = .bss:0x804BB250; // type:object size:0xC scope:local align:4 @@ -25553,7 +25551,7 @@ g_envHIO = .bss:0x804BE724; // type:object size:0x98 scope:global align:4 @89082 = .bss:0x804BE7C0; // type:object size:0xC scope:local align:4 g_save_bit_HIO = .bss:0x804BE7CC; // type:object size:0x4A0 scope:global align:4 @91846 = .bss:0x804BEC70; // type:object size:0xC scope:local align:4 -@LOCAL@dkWmark_c::create(void)@wolfFootScale = .bss:0x804BEC7C; // type:object size:0xC scope:local align:4 data:float +wolfFootScale$localstatic3$create__9dkWmark_cFv = .bss:0x804BEC7C; // type:object size:0xC scope:local align:4 data:float @49938 = .bss:0x804BEC88; // type:object size:0xC scope:local align:4 m_virtual_center__14cCcD_ShapeAttr = .bss:0x804BEC94; // type:object size:0xC scope:global align:4 @50127 = .bss:0x804BECA0; // type:object size:0xC scope:local align:4 @@ -25669,11 +25667,11 @@ sDefaultBankTable__8JASTrack = .bss:0x804BF694; // type:object size:0x40C scope: sTrackList__8JASTrack = .bss:0x804BFAAC; // type:object size:0x10 scope:global align:4 @7661 = .bss:0x804BFABC; // type:object size:0xC scope:local align:4 @7662 = .bss:0x804BFAC8; // type:object size:0xC scope:local align:4 -JASPoolAllocObject_MultiThreaded::memPool_ = .bss:0x804BFAD4; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject_MultiThreaded<8JASTrack>::memPool_ = .bss:0x804BFAE4; // type:object size:0x10 scope:global align:4 +memPool___58JASPoolAllocObject_MultiThreaded = .bss:0x804BFAD4; // type:object size:0x10 scope:global align:4 +memPool___43JASPoolAllocObject_MultiThreaded<8JASTrack> = .bss:0x804BFAE4; // type:object size:0x10 scope:global align:4 @6508 = .bss:0x804BFAF8; // type:object size:0xC scope:local align:4 @6528 = .bss:0x804BFB08; // type:object size:0xC scope:local align:4 -JASPoolAllocObject_MultiThreaded<10JASChannel>::memPool_ = .bss:0x804BFB14; // type:object size:0x10 scope:global align:4 +memPool___46JASPoolAllocObject_MultiThreaded<10JASChannel> = .bss:0x804BFB14; // type:object size:0x10 scope:global align:4 @2188 = .bss:0x804BFB28; // type:object size:0xC scope:local align:4 osc$3726 = .bss:0x804BFB38; // type:object size:0x18 scope:local align:4 data:4byte sBankDisposeMsgQ__10JASChannel = .bss:0x804BFB50; // type:object size:0x20 scope:global align:4 @@ -25692,15 +25690,15 @@ AUDIO_YIELD_BUFFER = .bss:0x804BFFA0; // type:object size:0x2000 scope:global al taskwork = .bss:0x804C1FA0; // type:object size:0x80 scope:global align:4 sync_stack = .bss:0x804C2020; // type:object size:0x14 scope:global align:4 data:4byte @12010 = .bss:0x804C2038; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<5JAISe>::memPool_ = .bss:0x804C2044; // type:object size:0x10 scope:global align:4 +memPool___26JASPoolAllocObject<5JAISe> = .bss:0x804C2044; // type:object size:0x10 scope:global align:4 @11658 = .bss:0x804C2058; // type:object size:0xC scope:local align:4 @11659 = .bss:0x804C2064; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<13JAISoundChild>::memPool_ = .bss:0x804C2070; // type:object size:0x10 scope:global align:4 +memPool___35JASPoolAllocObject<13JAISoundChild> = .bss:0x804C2070; // type:object size:0x10 scope:global align:4 @11633 = .bss:0x804C2080; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<6JAISeq>::memPool_ = .bss:0x804C208C; // type:object size:0x10 scope:global align:4 +memPool___27JASPoolAllocObject<6JAISeq> = .bss:0x804C208C; // type:object size:0x10 scope:global align:4 @13266 = .bss:0x804C20A0; // type:object size:0xC scope:local align:4 @11692 = .bss:0x804C20B0; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<9JAIStream>::memPool_ = .bss:0x804C20BC; // type:object size:0x10 scope:global align:4 +memPool___30JASPoolAllocObject<9JAIStream> = .bss:0x804C20BC; // type:object size:0x10 scope:global align:4 ...bss.0 = .bss:0x804C20D0; // type:label scope:local align:4 @14499 = .bss:0x804C20D0; // type:object size:0xC scope:local align:4 @14506 = .bss:0x804C20DC; // type:object size:0xC scope:local align:4 @@ -25708,12 +25706,12 @@ JASPoolAllocObject<9JAIStream>::memPool_ = .bss:0x804C20BC; // type:object size: @14520 = .bss:0x804C20F4; // type:object size:0xC scope:local align:4 @14527 = .bss:0x804C2100; // type:object size:0xC scope:local align:4 @14534 = .bss:0x804C210C; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<20JAUDopplerAudible<4>>::memPool_ = .bss:0x804C2118; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<20JAUDopplerAudible<2>>::memPool_ = .bss:0x804C2128; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<20JAUDopplerAudible<1>>::memPool_ = .bss:0x804C2138; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<13JAUAudible<4>>::memPool_ = .bss:0x804C2148; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<13JAUAudible<2>>::memPool_ = .bss:0x804C2158; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<13JAUAudible<1>>::memPool_ = .bss:0x804C2168; // type:object size:0x10 scope:global align:4 +memPool___42JASPoolAllocObject<20JAUDopplerAudible<4>> = .bss:0x804C2118; // type:object size:0x10 scope:global align:4 +memPool___42JASPoolAllocObject<20JAUDopplerAudible<2>> = .bss:0x804C2128; // type:object size:0x10 scope:global align:4 +memPool___42JASPoolAllocObject<20JAUDopplerAudible<1>> = .bss:0x804C2138; // type:object size:0x10 scope:global align:4 +memPool___35JASPoolAllocObject<13JAUAudible<4>> = .bss:0x804C2148; // type:object size:0x10 scope:global align:4 +memPool___35JASPoolAllocObject<13JAUAudible<2>> = .bss:0x804C2158; // type:object size:0x10 scope:global align:4 +memPool___35JASPoolAllocObject<13JAUAudible<1>> = .bss:0x804C2168; // type:object size:0x10 scope:global align:4 @22362 = .bss:0x804C2178; // type:object size:0xC scope:local align:4 ...bss.0 = .bss:0x804C2188; // type:label scope:local align:4 @16553 = .bss:0x804C2188; // type:object size:0xC scope:local align:4 @@ -25723,9 +25721,9 @@ JASPoolAllocObject<13JAUAudible<1>>::memPool_ = .bss:0x804C2168; // type:object @16557 = .bss:0x804C21B8; // type:object size:0xC scope:local align:4 @16558 = .bss:0x804C21C4; // type:object size:0xC scope:local align:4 @11364 = .bss:0x804C2230; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<17Z2SoundHandlePool>::memPool_ = .bss:0x804C223C; // type:object size:0x10 scope:global align:4 +memPool___39JASPoolAllocObject<17Z2SoundHandlePool> = .bss:0x804C223C; // type:object size:0x10 scope:global align:4 @15789 = .bss:0x804C2250; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<9Z2Audible>::memPool_ = .bss:0x804C225C; // type:object size:0x10 scope:global align:4 +memPool___30JASPoolAllocObject<9Z2Audible> = .bss:0x804C225C; // type:object size:0x10 scope:global align:4 ...bss.0 = .bss:0x804C2270; // type:label scope:local align:4 sCorrectPhrase = .bss:0x804C2270; // type:object size:0x24 scope:global align:4 sWindStoneSound = .bss:0x804C2294; // type:object size:0x24 scope:global align:4 @@ -25737,7 +25735,7 @@ sSpeakerInfo = .bss:0x804C2328; // type:object size:0xC0 scope:global align:4 @3521 = .bss:0x804C23E8; // type:object size:0xC scope:local align:4 sAdjustSoundHandle = .bss:0x804C23F4; // type:object size:0x10 scope:global align:4 @3736 = .bss:0x804C2408; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<8SpkSound>::memPool_ = .bss:0x804C2414; // type:object size:0x10 scope:global align:4 +memPool___29JASPoolAllocObject<8SpkSound> = .bss:0x804C2414; // type:object size:0x10 scope:global align:4 @3981 = .bss:0x804C2428; // type:object size:0xC scope:local align:4 sAllocator = .bss:0x804C2438; // type:object size:0x10 scope:global align:4 ...bss.0 = .bss:0x804C2448; // type:label scope:local align:4 @@ -26018,16 +26016,16 @@ lbl_805375B8 = .sdata:0x805375B8; // type:object size:0x8 __RTTI__17mDoAud_zelAudio_c = .sdata:0x805375C0; // type:object size:0x8 scope:global align:4 __RTTI__10Z2AudioMgr = .sdata:0x805375C8; // type:object size:0x8 scope:global align:4 __RTTI__13Z2SoundObjMgr = .sdata:0x805375D0; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<13Z2SoundObjMgr>::__RTTI = .sdata:0x805375D8; // type:object size:0x8 scope:global align:4 +__RTTI__34JASGlobalInstance<13Z2SoundObjMgr> = .sdata:0x805375D8; // type:object size:0x8 scope:global align:4 __RTTI__11Z2StatusMgr = .sdata:0x805375E0; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<11Z2StatusMgr>::__RTTI = .sdata:0x805375E8; // type:object size:0x8 scope:global align:4 +__RTTI__32JASGlobalInstance<11Z2StatusMgr> = .sdata:0x805375E8; // type:object size:0x8 scope:global align:4 __RTTI__10Z2SceneMgr = .sdata:0x805375F0; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<10Z2SceneMgr>::__RTTI = .sdata:0x805375F8; // type:object size:0x8 scope:global align:4 +__RTTI31JASGlobalInstance<10Z2SceneMgr> = .sdata:0x805375F8; // type:object size:0x8 scope:global align:4 __RTTI__8Z2SeqMgr = .sdata:0x80537600; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<8Z2SeqMgr>::__RTTI = .sdata:0x80537608; // type:object size:0x8 scope:global align:4 +__RTTI__28JASGlobalInstance<8Z2SeqMgr> = .sdata:0x80537608; // type:object size:0x8 scope:global align:4 lbl_80537610 = .sdata:0x80537610; // type:object size:0x8 data:string __RTTI__7Z2SeMgr = .sdata:0x80537618; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<7Z2SeMgr>::__RTTI = .sdata:0x80537620; // type:object size:0x8 scope:global align:4 +__RTTI__27JASGlobalInstance<7Z2SeMgr> = .sdata:0x80537620; // type:object size:0x8 scope:global align:4 lbl_80537628 = .sdata:0x80537628; // type:object size:0x1 data:byte m_aspect__13mDoGph_gInf_c = .sdata:0x8053762C; // type:object size:0x4 scope:global align:4 data:float m_scale__13mDoGph_gInf_c = .sdata:0x80537630; // type:object size:0x4 scope:global align:4 data:float @@ -26054,7 +26052,7 @@ lbl_80537695 = .sdata:0x80537695; // type:object size:0x7 data:string next__14mDoMtx_stack_c = .sdata:0x805376A0; // type:object size:0x4 scope:global align:4 data:4byte end__14mDoMtx_stack_c = .sdata:0x805376A4; // type:object size:0x4 scope:global align:4 data:4byte lbl_805376A8 = .sdata:0x805376A8; // type:object size:0x7 data:string -J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>::__RTTI = .sdata:0x805376B0; // type:object size:0x8 scope:global align:4 +__RTTI__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya> = .sdata:0x805376B0; // type:object size:0x8 scope:global align:4 __RTTI__26mDoExt_3DlineMatSortPacket = .sdata:0x805376B8; // type:object size:0x8 scope:global align:4 __RTTI__19mDoExt_3DlineMat1_c = .sdata:0x805376C0; // type:object size:0x8 scope:global align:4 __RTTI__19mDoExt_3DlineMat0_c = .sdata:0x805376C8; // type:object size:0x8 scope:global align:4 @@ -26067,11 +26065,11 @@ __RTTI__13mDoExt_morf_c = .sdata:0x805376F8; // type:object size:0x8 scope:globa __RTTI__15mDoExt_zelAnime = .sdata:0x80537700; // type:object size:0x8 scope:global align:4 __RTTI__28mDoExt_MtxCalcAnmBlendTblOld = .sdata:0x80537708; // type:object size:0x8 scope:global align:4 __RTTI__25mDoExt_MtxCalcAnmBlendTbl = .sdata:0x80537710; // type:object size:0x8 scope:global align:4 -J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>::__RTTI = .sdata:0x80537718; // type:object size:0x8 scope:global align:4 +__RTTI__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya> = .sdata:0x80537718; // type:object size:0x8 scope:global align:4 __RTTI__15Z2SoundObjAnime = .sdata:0x80537720; // type:object size:0x8 scope:global align:4 __RTTI__14Z2SoundObjBase = .sdata:0x80537728; // type:object size:0x8 scope:global align:4 __RTTI__14Z2SoundHandles = .sdata:0x80537730; // type:object size:0x8 scope:global align:4 -JSUList<17Z2SoundHandlePool>::__RTTI = .sdata:0x80537738; // type:object size:0x8 scope:global align:4 +__RTTI__28JSUList<17Z2SoundHandlePool> = .sdata:0x80537738; // type:object size:0x8 scope:global align:4 __RTTI__17J3DMtxCalcAnmBase = .sdata:0x80537740; // type:object size:0x8 scope:global align:4 __RTTI__19J3DMtxCalcNoAnmBase = .sdata:0x80537748; // type:object size:0x8 scope:global align:4 __RTTI__10J3DMtxCalc = .sdata:0x80537750; // type:object size:0x8 scope:global align:4 @@ -27564,11 +27562,11 @@ __RTTI__16Z2AudioArcLoader = .sdata:0x80539BB8; // type:object size:0x8 scope:gl __RTTI__17JAUAudioArcLoader = .sdata:0x80539BC0; // type:object size:0x8 scope:global align:4 __RTTI__22JAUAudioArcInterpreter = .sdata:0x80539BC8; // type:object size:0x8 scope:global align:4 __RTTI__10Z2SoundMgr = .sdata:0x80539BD0; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<10Z2SoundMgr>::__RTTI = .sdata:0x80539BD8; // type:object size:0x8 scope:global align:4 +__RTTI__31JASGlobalInstance<10Z2SoundMgr> = .sdata:0x80539BD8; // type:object size:0x8 scope:global align:4 __RTTI__14Z2SoundStarter = .sdata:0x80539BE0; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<14Z2SoundStarter>::__RTTI = .sdata:0x80539BE8; // type:object size:0x8 scope:global align:4 +__RTTI__35JASGlobalInstance<14Z2SoundStarter> = .sdata:0x80539BE8; // type:object size:0x8 scope:global align:4 __RTTI__15JAISoundStarter = .sdata:0x80539BF0; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<15JAISoundStarter>::__RTTI = .sdata:0x80539BF8; // type:object size:0x8 scope:global align:4 +__RTTI__36JASGlobalInstance<15JAISoundStarter> = .sdata:0x80539BF8; // type:object size:0x8 scope:global align:4 sDeathMtBottom = .sdata:0x80539C00; // type:object size:0x4 scope:global align:4 data:float sDeathMtTop = .sdata:0x80539C04; // type:object size:0x4 scope:global align:4 data:float sUnderWaterDepthMax = .sdata:0x80539C08; // type:object size:0x4 scope:global align:4 data:float @@ -27658,16 +27656,16 @@ lbl_80539E85 = .sdata:0x80539E85; // type:object size:0x7 data:string lbl_80539E8C = .sdata:0x80539E8C; // type:object size:0x7 data:string lbl_80539E93 = .sdata:0x80539E93; // type:object size:0x7 data:string __RTTI__11Z2SoundInfo = .sdata:0x80539EA0; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<11Z2SoundInfo>::__RTTI = .sdata:0x80539EA8; // type:object size:0x8 scope:global align:4 +__RTTI__32JASGlobalInstance<11Z2SoundInfo> = .sdata:0x80539EA8; // type:object size:0x8 scope:global align:4 __RTTI__16JAIStreamDataMgr = .sdata:0x80539EB0; // type:object size:0x8 scope:global align:4 __RTTI__12JAISoundInfo = .sdata:0x80539EB8; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<12JAISoundInfo>::__RTTI = .sdata:0x80539EC0; // type:object size:0x8 scope:global align:4 +__RTTI__33JASGlobalInstance<12JAISoundInfo> = .sdata:0x80539EC0; // type:object size:0x8 scope:global align:4 __RTTI__12JAUSoundInfo = .sdata:0x80539EC8; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<12JAUSoundInfo>::__RTTI = .sdata:0x80539ED0; // type:object size:0x8 scope:global align:4 +__RTTI__33JASGlobalInstance<12JAUSoundInfo> = .sdata:0x80539ED0; // type:object size:0x8 scope:global align:4 __RTTI__10Z2Audience = .sdata:0x80539ED8; // type:object size:0x8 scope:global align:4 -JASGlobalInstance<10Z2Audience>::__RTTI = .sdata:0x80539EE0; // type:object size:0x8 scope:global align:4 +__RTTI__31JASGlobalInstance<10Z2Audience> = .sdata:0x80539EE0; // type:object size:0x8 scope:global align:4 __RTTI__9Z2Audible = .sdata:0x80539EE8; // type:object size:0x8 scope:global align:4 -JASPoolAllocObject<9Z2Audible>::__RTTI = .sdata:0x80539EF0; // type:object size:0x8 scope:global align:4 +__RTTI__30JASPoolAllocObject<9Z2Audible> = .sdata:0x80539EF0; // type:object size:0x8 scope:global align:4 __RTTI__11JAIAudience = .sdata:0x80539EF8; // type:object size:0x8 scope:global align:4 __RTTI__10JAIAudible = .sdata:0x80539F00; // type:object size:0x8 scope:global align:4 __RTTI__15Z2SoundObjArrow = .sdata:0x80539F08; // type:object size:0x8 scope:global align:4 @@ -27691,9 +27689,9 @@ __RTTI__12Z2CreatureFM = .sdata:0x80539F90; // type:object size:0x8 scope:global __RTTI__18Z2SoundObjBeeGroup = .sdata:0x80539F98; // type:object size:0x8 scope:global align:4 __RTTI__16Z2CreatureSumomo = .sdata:0x80539FA0; // type:object size:0x8 scope:global align:4 __RTTI__17Z2CreatureCitizen = .sdata:0x80539FA8; // type:object size:0x8 scope:global align:4 -JSULink<17Z2CreatureCitizen>::__RTTI = .sdata:0x80539FB0; // type:object size:0x8 scope:global align:4 +__RTTI__28JSULink<17Z2CreatureCitizen> = .sdata:0x80539FB0; // type:object size:0x8 scope:global align:4 __RTTI__15Z2CreatureEnemy = .sdata:0x80539FB8; // type:object size:0x8 scope:global align:4 -JSULink<15Z2CreatureEnemy>::__RTTI = .sdata:0x80539FC0; // type:object size:0x8 scope:global align:4 +__RTTI__26JSULink<15Z2CreatureEnemy> = .sdata:0x80539FC0; // type:object size:0x8 scope:global align:4 __RTTI__10Z2Creature = .sdata:0x80539FC8; // type:object size:0x8 scope:global align:4 __RTTI__10JSUPtrLink = .sdata:0x80539FD0; // type:object size:0x8 scope:global align:4 __RTTI__15Z2SoundObjCoach = .sdata:0x80539FD8; // type:object size:0x8 scope:global align:4 @@ -27715,8 +27713,8 @@ sStickHigh = .sdata:0x8053A018; // type:object size:0x4 scope:global align:4 dat sStickCenter = .sdata:0x8053A01C; // type:object size:0x4 scope:global align:4 data:float lbl_8053A020 = .sdata:0x8053A020; // type:object size:0x8 __RTTI__15Z2SpeechStarter = .sdata:0x8053A028; // type:object size:0x8 scope:global align:4 -JAUStreamStaticAramMgr_<1>::__RTTI = .sdata:0x8053A030; // type:object size:0x8 scope:global align:4 -JAUStreamAramMgrBase_<1>::__RTTI = .sdata:0x8053A038; // type:object size:0x8 scope:global align:4 +__RTTI__26JAUStreamStaticAramMgr_<1> = .sdata:0x8053A030; // type:object size:0x8 scope:global align:4 +__RTTI__24JAUStreamAramMgrBase_<1> = .sdata:0x8053A038; // type:object size:0x8 scope:global align:4 __RTTI__16JAIStreamAramMgr = .sdata:0x8053A040; // type:object size:0x8 scope:global align:4 lbl_8053A048 = .sdata:0x8053A048; // type:object size:0x8 spAllocator = .sdata:0x8053A050; // type:object size:0x4 scope:global align:4 data:4byte @@ -27756,7 +27754,7 @@ sMapBufOffset__Q26nw4hbm2db = .sdata:0x8053A130; // type:object size:0x4 scope:g @3407 = .sdata:0x8053A144; // type:object size:0x3 scope:local align:4 data:string @9920 = .sdata:0x8053A148; // type:object size:0x4 scope:local align:4 data:wstring @STRING@GetCharStrmReader__Q36nw4hbm2ut4FontCFv = .sdata:0x8053A14C; // type:object size:0x7 scope:local align:4 data:string -nw4hbm::ut::TextWriterBase::mFormatBufferSize = .sdata:0x8053A158; // type:object size:0x4 scope:global align:4 data:4byte +mFormatBufferSize__Q36nw4hbm2ut17TextWriterBase = .sdata:0x8053A158; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053A160 = .sdata:0x8053A160; // type:object size:0x1 data:byte lbl_8053A161 = .sdata:0x8053A161; // type:object size:0x7 data:string ARALT_AramStartAdr = .sdata:0x8053A168; // type:object size:0x4 scope:global align:4 data:4byte @@ -28043,20 +28041,20 @@ g_mDoAud_audioHeap = .sbss:0x8053A784; // type:object size:0x4 scope:global alig l_affCommand = .sbss:0x8053A788; // type:object size:0x4 scope:global align:4 data:4byte l_arcCommand = .sbss:0x8053A78C; // type:object size:0x4 scope:global align:4 data:4byte l_CSarcCommand = .sbss:0x8053A790; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<7Z2SeMgr>::sInstance = .sbss:0x8053A794; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<8Z2SeqMgr>::sInstance = .sbss:0x8053A798; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<10Z2SceneMgr>::sInstance = .sbss:0x8053A79C; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<11Z2StatusMgr>::sInstance = .sbss:0x8053A7A0; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<14Z2SoundStarter>::sInstance = .sbss:0x8053A7A4; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<12Z2SpeechMgr2>::sInstance = .sbss:0x8053A7A8; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<8JAISeMgr>::sInstance = .sbss:0x8053A7AC; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<9JAISeqMgr>::sInstance = .sbss:0x8053A7B0; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<12JAIStreamMgr>::sInstance = .sbss:0x8053A7B4; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<10Z2SoundMgr>::sInstance = .sbss:0x8053A7B8; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<12JAUSoundInfo>::sInstance = .sbss:0x8053A7BC; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<11Z2SoundInfo>::sInstance = .sbss:0x8053A7C0; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<13Z2SoundObjMgr>::sInstance = .sbss:0x8053A7C4; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<11Z2FxLineMgr>::sInstance = .sbss:0x8053A7C8; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__27JASGlobalInstance<7Z2SeMgr> = .sbss:0x8053A794; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__28JASGlobalInstance<8Z2SeqMgr> = .sbss:0x8053A798; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__31JASGlobalInstance<10Z2SceneMgr> = .sbss:0x8053A79C; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__32JASGlobalInstance<11Z2StatusMgr> = .sbss:0x8053A7A0; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__35JASGlobalInstance<14Z2SoundStarter> = .sbss:0x8053A7A4; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__33JASGlobalInstance<12Z2SpeechMgr2> = .sbss:0x8053A7A8; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__28JASGlobalInstance<8JAISeMgr> = .sbss:0x8053A7AC; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__29JASGlobalInstance<9JAISeqMgr> = .sbss:0x8053A7B0; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__33JASGlobalInstance<12JAIStreamMgr> = .sbss:0x8053A7B4; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__31JASGlobalInstance<10Z2SoundMgr> = .sbss:0x8053A7B8; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__33JASGlobalInstance<12JAUSoundInfo> = .sbss:0x8053A7BC; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__32JASGlobalInstance<11Z2SoundInfo> = .sbss:0x8053A7C0; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__34JASGlobalInstance<13Z2SoundObjMgr> = .sbss:0x8053A7C4; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__32JASGlobalInstance<11Z2FxLineMgr> = .sbss:0x8053A7C8; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053A7D0 = .sbss:0x8053A7D0; // type:object size:0x1 data:byte m_cal_value__6mReCPd = .sbss:0x8053A7D4; // type:object size:0x4 scope:global align:4 data:4byte wpad_heap = .sbss:0x8053A7D8; // type:object size:0x4 scope:global align:4 data:4byte @@ -28324,7 +28322,7 @@ lbl_8053ABE0 = .sbss:0x8053ABE0; // type:object size:0x1 data:byte lbl_8053ABE1 = .sbss:0x8053ABE1; // type:object size:0x1 data:byte bgWaitFlg$169588 = .sbss:0x8053ABE4; // type:object size:0x4 scope:local align:4 data:4byte lbl_8053ABE8 = .sbss:0x8053ABE8; // type:object size:0x1 data:byte -JASGlobalInstance<13Z2WolfHowlMgr>::sInstance = .sbss:0x8053ABEC; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__24JASGlobalInstance<13Z2WolfHowlMgr> = .sbss:0x8053ABEC; // type:object size:0x4 scope:global align:4 data:4byte mSrchName__8daNpcT_c = .sbss:0x8053ABF0; // type:object size:0x2 scope:global align:4 data:2byte mFindCount__8daNpcT_c = .sbss:0x8053ABF4; // type:object size:0x4 scope:global align:4 data:4byte m_name__23daBaseNpc_moveBgActor_c = .sbss:0x8053ABF8; // type:object size:0x4 scope:global align:4 data:4byte @@ -28352,7 +28350,7 @@ lbl_8053AC40 = .sbss:0x8053AC40; // type:object size:0x1 data:byte LatMin$119181 = .sbss:0x8053AC42; // type:object size:0x2 scope:local align:2 data:2byte lbl_8053AC44 = .sbss:0x8053AC44; // type:object size:0x1 data:byte LatMax$119185 = .sbss:0x8053AC46; // type:object size:0x2 scope:local align:2 data:2byte -JASGlobalInstance<10Z2Audience>::sInstance = .sbss:0x8053AC48; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__31JASGlobalInstance<10Z2Audience> = .sbss:0x8053AC48; // type:object size:0x4 scope:global align:4 data:4byte l_bloCsr = .sbss:0x8053AC50; // type:object size:0x4 scope:local align:4 data:4byte l_bloObj = .sbss:0x8053AC54; // type:object size:0x4 scope:local align:4 data:4byte l_bloYnObj = .sbss:0x8053AC58; // type:object size:0x4 scope:global align:4 data:4byte @@ -28501,7 +28499,7 @@ sBuffer = .sbss:0x8053AEF8; // type:object size:0x4 scope:global align:4 data:4b sLineMax = .sbss:0x8053AEFC; // type:object size:0x4 scope:global align:4 data:4byte sLineCount = .sbss:0x8053AF00; // type:object size:0x4 scope:global align:4 data:4byte sTop = .sbss:0x8053AF04; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<19JASDefaultBankTable>::sInstance = .sbss:0x8053AF08; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .sbss:0x8053AF08; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053AF0C = .sbss:0x8053AF0C; // type:object size:0x1 data:byte lbl_8053AF0D = .sbss:0x8053AF0D; // type:object size:0x1 data:byte sDefaultParser__10JASSeqCtrl = .sbss:0x8053AF10; // type:object size:0x4 scope:global align:4 @@ -28537,7 +28535,7 @@ killCounter$4180 = .sbss:0x8053AFA0; // type:object size:0x4 scope:local align:4 sDspUpCount = .sbss:0x8053AFA4; // type:object size:0x4 scope:global align:4 data:4byte waitcount$4218 = .sbss:0x8053AFA8; // type:object size:0x4 scope:local align:4 data:4byte snIntCount__14JASAudioThread = .sbss:0x8053AFB0; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<14JASAudioThread>::sInstance = .sbss:0x8053AFB4; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__35JASGlobalInstance<14JASAudioThread> = .sbss:0x8053AFB4; // type:object size:0x4 scope:global align:4 data:4byte sDspChannels__13JASDSPChannel = .sbss:0x8053AFB8; // type:object size:0x4 scope:global align:4 data:4byte CH_BUF__6JASDsp = .sbss:0x8053AFC0; // type:object size:0x4 scope:global align:4 data:4byte FX_BUF__6JASDsp = .sbss:0x8053AFC4; // type:object size:0x4 scope:global align:4 data:4byte @@ -28549,11 +28547,11 @@ taskwritep = .sbss:0x8053AFDC; // type:object size:0x4 scope:global align:4 data lbl_8053AFE0 = .sbss:0x8053AFE0; // type:object size:0x1 data:byte lbl_8053AFE1 = .sbss:0x8053AFE1; // type:object size:0x1 data:byte DSP_prior_task = .sbss:0x8053AFE4; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<12JAISoundInfo>::sInstance = .sbss:0x8053AFE8; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__33JASGlobalInstance<12JAISoundInfo> = .sbss:0x8053AFE8; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053AFEC = .sbss:0x8053AFEC; // type:object size:0x1 data:byte lbl_8053AFF0 = .sbss:0x8053AFF0; // type:object size:0x8 data:byte lbl_8053AFF8 = .sbss:0x8053AFF8; // type:object size:0x1 data:byte -JASGlobalInstance<15JAISoundStarter>::sInstance = .sbss:0x8053B000; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__36JASGlobalInstance<15JAISoundStarter = .sbss:0x8053B000; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053B008 = .sbss:0x8053B008; // type:object size:0x8 data:byte lbl_8053B010 = .sbss:0x8053B010; // type:object size:0x1 data:byte lbl_8053B011 = .sbss:0x8053B011; // type:object size:0x1 data:byte @@ -28561,9 +28559,9 @@ lbl_8053B012 = .sbss:0x8053B012; // type:object size:0x1 data:byte lbl_8053B013 = .sbss:0x8053B013; // type:object size:0x1 data:byte lbl_8053B014 = .sbss:0x8053B014; // type:object size:0x1 data:byte lbl_8053B015 = .sbss:0x8053B015; // type:object size:0x1 data:byte -JASGlobalInstance<14JAUSectionHeap>::sInstance = .sbss:0x8053B018; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<17JAUSoundNameTable>::sInstance = .sbss:0x8053B01C; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<13JAUSoundTable>::sInstance = .sbss:0x8053B020; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__35JASGlobalInstance<14JAUSectionHeap> = .sbss:0x8053B018; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__38JASGlobalInstance<17JAUSoundNameTable> = .sbss:0x8053B01C; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__34JASGlobalInstance<13JAUSoundTable> = .sbss:0x8053B020; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053B028 = .sbss:0x8053B028; // type:object size:0x1 data:byte oRandom$5639 = .sbss:0x8053B02C; // type:object size:0x4 scope:local align:4 data:4byte MIN_DISTANCE_VOLUME__7Z2Param = .sbss:0x8053B030; // type:object size:0x4 scope:global align:4 data:float @@ -28571,7 +28569,7 @@ ENEMY_LASTHIT_MUTE_VOLUME__7Z2Param = .sbss:0x8053B034; // type:object size:0x4 DARK_SE_FILTER_ON__7Z2Param = .sbss:0x8053B038; // type:object size:0x1 data:byte DARK_SE_LOW_PASS_FILTER_SETTING__7Z2Param = .sbss:0x8053B039; // type:object size:0x1 data:byte SYSTEM_SE_USE_DARK_SE_SETTING__7Z2Param = .sbss:0x8053B03A; // type:object size:0x1 data:byte -JASGlobalInstance<10Z2EnvSeMgr>::sInstance = .sbss:0x8053B040; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__31JASGlobalInstance<10Z2EnvSeMgr> = .sbss:0x8053B040; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053B048 = .sbss:0x8053B048; // type:object size:0x1 data:byte cNearFarRatio = .sbss:0x8053B050; // type:object size:0x4 scope:global align:4 data:float lbl_8053B054 = .sbss:0x8053B054; // type:object size:0x1 data:byte @@ -28580,8 +28578,8 @@ lbl_8053B059 = .sbss:0x8053B059; // type:object size:0x1 data:byte mLinkPtr__14Z2CreatureLink = .sbss:0x8053B060; // type:object size:0x4 scope:global align:4 data:4byte mAudioMgrPtr__10Z2AudioMgr = .sbss:0x8053B068; // type:object size:0x4 scope:global align:4 data:4byte sMixingBuffer = .sbss:0x8053B070; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<9SpkSystem>::sInstance = .sbss:0x8053B078; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<14SpkSoundHolder>::sInstance = .sbss:0x8053B07C; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__29JASGlobalInstance<9SpkSystem> = .sbss:0x8053B078; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__35JASGlobalInstance<14SpkSoundHolder> = .sbss:0x8053B07C; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053B080 = .sbss:0x8053B080; // type:object size:0x8 data:byte lbl_8053B088 = .sbss:0x8053B088; // type:object size:0x1 data:byte sSpkHandles = .sbss:0x8053B08C; // type:object size:0x4 scope:global align:4 data:4byte @@ -28605,9 +28603,9 @@ typeInfo__Q36nw4hbm3lyt7TextBox = .sbss:0x8053B100; // type:object size:0x4 scop typeInfo__Q36nw4hbm3lyt6Window = .sbss:0x8053B108; // type:object size:0x4 scope:global align:4 data:4byte lbl_8053B110 = .sbss:0x8053B110; // type:object size:0x1 data:byte fog$5378 = .sbss:0x8053B114; // type:object size:0x4 scope:local align:4 data:byte -nw4hbm::ut::TextWriterBase::mFormatBuffer = .sbss:0x8053B118; // type:object size:0x4 scope:global align:4 data:4byte -nw4hbm::ut::TextWriterBase::mDefaultTagProcessor = .sbss:0x8053B11C; // type:object size:0x4 scope:global align:4 -nw4hbm::ut::TextWriterBase::mDefaultTagProcessor = .sbss:0x8053B120; // type:object size:0x4 scope:global align:4 +mFormatBuffer__Q36nw4hbm2ut17TextWriterBase = .sbss:0x8053B118; // type:object size:0x4 scope:global align:4 data:4byte +mDefaultTagProcessor__Q36nw4hbm2ut17TextWriterBase = .sbss:0x8053B11C; // type:object size:0x4 scope:global align:4 +mDefaultTagProcessor__Q36nw4hbm2ut17TextWriterBase = .sbss:0x8053B120; // type:object size:0x4 scope:global align:4 lbl_8053B124 = .sbss:0x8053B124; // type:object size:0x1 data:byte lbl_8053B125 = .sbss:0x8053B125; // type:object size:0x1 data:byte sSystemHeap__7JKRHeap = .sbss:0x8053B128; // type:object size:0x4 scope:global align:4 data:4byte @@ -32427,7 +32425,7 @@ lbl_8053F212 = .sdata2:0x8053F212; // type:object size:0x1 data:byte lbl_8053F213 = .sdata2:0x8053F213; // type:object size:0x1 data:byte @3255 = .sdata2:0x8053F218; // type:object size:0x4 scope:local align:4 data:float lbl_8053F220 = .sdata2:0x8053F220; // type:object size:0x4 data:string -@LOCAL@std::numeric_limits::signaling_NaN(void)@x = .sdata2:0x8053F228; // type:object size:0x8 scope:local align:4 data:double +x$localstatic$signaling_NaN__Q23std17numeric_limitsFv = .sdata2:0x8053F228; // type:object size:0x8 scope:local align:4 data:double @12055 = .sdata2:0x8053F230; // type:object size:0x8 scope:local align:4 data:double @12130 = .sdata2:0x8053F238; // type:object size:0x8 scope:local align:4 data:double @12131 = .sdata2:0x8053F240; // type:object size:0x8 scope:local align:4 data:double @@ -32460,7 +32458,7 @@ lbl_8053F300 = .sdata2:0x8053F300; // type:object size:0x4 data:string @12531 = .sdata2:0x8053F308; // type:object size:0x4 scope:local align:4 data:float @11890 = .sdata2:0x8053F310; // type:object size:0x4 scope:local align:4 data:float @11950 = .sdata2:0x8053F314; // type:object size:0x4 scope:local align:4 data:float -@LOCAL@std::numeric_limits::signaling_NaN(void)@x = .sdata2:0x8053F318; // type:object size:0x4 scope:local align:4 data:float +x$localstatic$signaling_NaN__Q23std17numeric_limitsFv = .sdata2:0x8053F318; // type:object size:0x4 scope:global align:4 data:float @28530 = .sdata2:0x8053F31C; // type:object size:0x4 scope:local align:4 data:float @28784 = .sdata2:0x8053F320; // type:object size:0x4 scope:local align:4 data:float @28787 = .sdata2:0x8053F328; // type:object size:0x8 scope:local align:4 data:double diff --git a/config/RZDE01_02/rels/d_a_L7demo_dr/symbols.txt b/config/RZDE01_02/rels/d_a_L7demo_dr/symbols.txt index 4c0c53ebfc..d03d6ddb4b 100644 --- a/config/RZDE01_02/rels/d_a_L7demo_dr/symbols.txt +++ b/config/RZDE01_02/rels/d_a_L7demo_dr/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 _epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 _unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 -setAction__6daDr_cFM6daDr_cFP10v = .text:0x0000005C; // type:function size:0xA4 scope:global align:4 +setAction__6daDr_cFM6daDr_cFPCvPv_v = .text:0x0000005C; // type:function size:0xA4 scope:global align:4 mtx_set__6daDr_cFv = .text:0x00000100; // type:function size:0xB0 scope:global align:4 __as__3VecFR9Vec = .text:0x000001B0; // type:label scope:global align:4 draw__6daDr_cFv = .text:0x000001B0; // type:function size:0x80 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_L7low_dr/symbols.txt b/config/RZDE01_02/rels/d_a_L7low_dr/symbols.txt index 8de737c167..7eab270ccb 100644 --- a/config/RZDE01_02/rels/d_a_L7low_dr/symbols.txt +++ b/config/RZDE01_02/rels/d_a_L7low_dr/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 _epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 _unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 -setAction__11daL7lowDr_cFM11daL7lowDr_cFP10v = .text:0x0000005C; // type:function size:0xA4 scope:global align:4 +setAction__11daL7lowDr_cFM11daL7lowDr_cFPCvPv_v = .text:0x0000005C; // type:function size:0xA4 scope:global align:4 action__11daL7lowDr_cFv = .text:0x00000100; // type:function size:0xA4 scope:global align:4 __as__3VecFR9Vec = .text:0x000001A4; // type:label scope:global align:4 daL7lowDr_Delete__FP11daL7lowDr_c = .text:0x000001A4; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_L7op_demo_dr/symbols.txt b/config/RZDE01_02/rels/d_a_L7op_demo_dr/symbols.txt index bac7b60d1b..0e846d90fc 100644 --- a/config/RZDE01_02/rels/d_a_L7op_demo_dr/symbols.txt +++ b/config/RZDE01_02/rels/d_a_L7op_demo_dr/symbols.txt @@ -1,8 +1,8 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 _epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 _unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 -setAction__9daL7ODR_cFM9daL7ODR_cFP10v = .text:0x0000005C; // type:function size:0xA4 scope:global align:4 -setDrAction__9daL7ODR_cFM9daL7ODR_cFP10v = .text:0x00000100; // type:function size:0xA4 scope:global align:4 +setAction__9daL7ODR_cFM9daL7ODR_cFPCvPv_v = .text:0x0000005C; // type:function size:0xA4 scope:global align:4 +setDrAction__9daL7ODR_cFM9daL7ODR_cFPCvPv_v = .text:0x00000100; // type:function size:0xA4 scope:global align:4 mtx_set__9daL7ODR_cFv = .text:0x000001A4; // type:function size:0x90 scope:global align:4 draw__9daL7ODR_cFv = .text:0x00000234; // type:function size:0xE4 scope:global align:4 daL7ODR_Draw__FP9daL7ODR_c = .text:0x00000318; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_b_zant/symbols.txt b/config/RZDE01_02/rels/d_a_b_zant/symbols.txt index 1bb2abc16f..bcdde3a91d 100644 --- a/config/RZDE01_02/rels/d_a_b_zant/symbols.txt +++ b/config/RZDE01_02/rels/d_a_b_zant/symbols.txt @@ -72,7 +72,7 @@ action__10daB_ZANT_cFv = .text:0x0000D154; // type:function size:0x580 scope:glo mtx_set__10daB_ZANT_cFv = .text:0x0000D6D4; // type:function size:0x1CC scope:global align:4 cc_set__10daB_ZANT_cFv = .text:0x0000D8A0; // type:function size:0x228 scope:global align:4 cc_ice_set__10daB_ZANT_cFv = .text:0x0000DAC8; // type:function size:0x47C scope:global align:4 -__as__Q210daB_ZANT_c31dZantSph_c$110525d_a_b_zant_cppFRQ210daB_ZANT_c37dZantSph_c$110525d_a_b_zant_cpp = .text:0x0000DF44; // type:function size:0x1C scope:global align:4 +__as__Q210daB_ZANT_c31dZantSph_c$110525d_a_b_zant_cppFRQ210daB_ZANT_c31dZantSph_c$110525d_a_b_zant_cpp = .text:0x0000DF44; // type:function size:0x1C scope:global align:4 execute__10daB_ZANT_cFv = .text:0x0000DF60; // type:function size:0x100 scope:global align:4 daB_ZANT_Execute__FP10daB_ZANT_c = .text:0x0000E060; // type:function size:0x4 scope:global align:4 daB_ZANT_IsDelete__FP10daB_ZANT_c = .text:0x0000E064; // type:function size:0x8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_balloon_2D/symbols.txt b/config/RZDE01_02/rels/d_a_balloon_2D/symbols.txt index 0b5c53bd88..4a5c15e5d4 100644 --- a/config/RZDE01_02/rels/d_a_balloon_2D/symbols.txt +++ b/config/RZDE01_02/rels/d_a_balloon_2D/symbols.txt @@ -52,7 +52,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global @96284 = .rodata:0x00000038; // type:object size:0x8 scope:local align:4 m_tex_size_x$94969 = .rodata:0x00000040; // type:object size:0x4 scope:global align:4 m_tex_size_y$94971 = .rodata:0x00000044; // type:object size:0x4 scope:global align:4 -@LOCAL@daBalloon2D_HIO_c::daBalloon2D_HIO_c(void)@aParam = .data:0x00000000; // type:object size:0xC4 scope:global align:4 +aParam$localstatic3$__ct__17daBalloon2D_HIO_cFv = .data:0x00000000; // type:object size:0xC4 scope:local align:4 lbl_159_data_C4 = .data:0x000000C4; // type:object size:0xA data:string l_arcName = .data:0x000000D0; // type:object size:0x4 scope:global align:4 data:4byte lbl_159_data_D4 = .data:0x000000D4; // type:object size:0x17 data:string diff --git a/config/RZDE01_02/rels/d_a_bg/splits.txt b/config/RZDE01_02/rels/d_a_bg/splits.txt index 3532653d50..68baa3f8e6 100644 --- a/config/RZDE01_02/rels/d_a_bg/splits.txt +++ b/config/RZDE01_02/rels/d_a_bg/splits.txt @@ -13,3 +13,4 @@ d/actor/d_a_bg.cpp: .text start:0x0000005C end:0x00001418 .rodata start:0x00000000 end:0x00000024 .data start:0x00000000 end:0x000001F0 + .bss start:0x00000000 end:0x00000020 diff --git a/config/RZDE01_02/rels/d_a_bg/symbols.txt b/config/RZDE01_02/rels/d_a_bg/symbols.txt index 29f0c45cf3..a4e4f8091b 100644 --- a/config/RZDE01_02/rels/d_a_bg/symbols.txt +++ b/config/RZDE01_02/rels/d_a_bg/symbols.txt @@ -28,7 +28,7 @@ lbl_3_data_0 = .data:0x00000000; // type:object size:0x42 lbl_3_data_42 = .data:0x00000042; // type:object size:0x42 lbl_3_data_84 = .data:0x00000084; // type:object size:0x42 lbl_3_data_C6 = .data:0x000000C6; // type:object size:0x42 -daBg_c::draw(void)@l_tevStrType = .data:0x00000108; // type:object size:0x18 scope:global align:4 +l_tevStrType$localstatic3$draw__6daBg_cFv = .data:0x00000108; // type:object size:0x18 scope:local align:4 l_daBg_Method = .data:0x00000120; // type:object size:0x20 scope:global align:4 g_profile_BG = .data:0x00000140; // type:object size:0x34 scope:global align:4 lbl_3_data_174 = .data:0x00000174; // type:object size:0xA data:string diff --git a/config/RZDE01_02/rels/d_a_bullet/symbols.txt b/config/RZDE01_02/rels/d_a_bullet/symbols.txt index d29c52b4aa..d15efdc54b 100644 --- a/config/RZDE01_02/rels/d_a_bullet/symbols.txt +++ b/config/RZDE01_02/rels/d_a_bullet/symbols.txt @@ -13,7 +13,7 @@ __as__11cBgS_GndChkFR17cBgS_GndChk = .text:0x000004EC; // type:label scope:globa createHeapCallBack__10daBullet_cFP10fopAc_ac_c = .text:0x00000538; // type:function size:0x4 scope:global align:4 getTypeFromParam__10daBullet_cFv = .text:0x0000053C; // type:function size:0x20 scope:global align:4 initialize__10daBullet_cFv = .text:0x0000055C; // type:function size:0x138 scope:global align:4 -setProcess__10daBullet_cFM10daBullet_cFP10v = .text:0x00000694; // type:function size:0xA8 scope:global align:4 +setProcess__10daBullet_cFM10daBullet_cFPCvPvPv_i = .text:0x00000694; // type:function size:0xA8 scope:global align:4 wait__10daBullet_cFPv = .text:0x0000073C; // type:function size:0x94 scope:global align:4 move__10daBullet_cFPv = .text:0x000007D0; // type:function size:0x8C scope:global align:4 daBullet_Create__FPv = .text:0x0000085C; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_coach_2D/symbols.txt b/config/RZDE01_02/rels/d_a_coach_2D/symbols.txt index 3cec02835a..c9ed6f6b48 100644 --- a/config/RZDE01_02/rels/d_a_coach_2D/symbols.txt +++ b/config/RZDE01_02/rels/d_a_coach_2D/symbols.txt @@ -34,7 +34,7 @@ _dtors = .dtors:0x00000000; // type:label scope:global @95673 = .rodata:0x00000018; // type:object size:0x4 scope:local align:4 @95676 = .rodata:0x00000020; // type:object size:0x8 scope:local align:4 data:double @95677 = .rodata:0x00000028; // type:object size:0x8 scope:local align:4 data:double -@LOCAL@daCoach2D_HIO_c::daCoach2D_HIO_c(void)@aParam = .data:0x00000000; // type:object size:0x58 scope:global align:4 +aParam$localstatic3$__ct__15daCoach2D_HIO_cFv = .data:0x00000000; // type:object size:0x58 scope:local align:4 lbl_161_data_58 = .data:0x00000058; // type:object size:0x8 data:string l_arcName = .data:0x00000060; // type:object size:0x4 scope:global align:4 data:4byte lbl_161_data_64 = .data:0x00000064; // type:object size:0x1F data:string diff --git a/config/RZDE01_02/rels/d_a_coach_fire/symbols.txt b/config/RZDE01_02/rels/d_a_coach_fire/symbols.txt index 3bd576d76e..773e93d49f 100644 --- a/config/RZDE01_02/rels/d_a_coach_fire/symbols.txt +++ b/config/RZDE01_02/rels/d_a_coach_fire/symbols.txt @@ -17,7 +17,7 @@ M_attr__13daCoachFire_c = .rodata:0x00000000; // type:object size:0x10 scope:glo @95961 = .rodata:0x00000014; // type:object size:0x4 scope:local align:4 @95962 = .rodata:0x00000018; // type:object size:0x4 scope:local align:4 @95963 = .rodata:0x0000001C; // type:object size:0x4 scope:local align:4 -@LOCAL@daCoachFire_c::initCcSphere(void)@ccSphSrc = .rodata:0x00000020; // type:object size:0x40 scope:global align:4 +ccSphSrc$localstatic3$initCcSphere__13daCoachFire_cFv = .rodata:0x00000020; // type:object size:0x40 scope:local align:4 @95992 = .rodata:0x00000060; // type:object size:0x4 scope:local align:4 @95993 = .rodata:0x00000064; // type:object size:0x4 scope:local align:4 @95994 = .rodata:0x00000068; // type:object size:0x4 scope:local align:4 data:string diff --git a/config/RZDE01_02/rels/d_a_cow/symbols.txt b/config/RZDE01_02/rels/d_a_cow/symbols.txt index da1e514876..436de6edcc 100644 --- a/config/RZDE01_02/rels/d_a_cow/symbols.txt +++ b/config/RZDE01_02/rels/d_a_cow/symbols.txt @@ -16,7 +16,7 @@ setRushVibration__7daCow_cFi = .text:0x0000081C; // type:function size:0x80 scop checkThrow__7daCow_cFv = .text:0x0000089C; // type:function size:0xD8 scope:global align:4 setBodyAngle__7daCow_cFs = .text:0x00000974; // type:function size:0xF0 scope:global align:4 setBodyAngle2__7daCow_cFs = .text:0x00000A64; // type:function size:0x140 scope:global align:4 -setProcess__7daCow_cFM7daCow_cFP10v = .text:0x00000BA4; // type:function size:0xA8 scope:global align:4 +setProcess__7daCow_cFM7daCow_cFPCvPv_vi = .text:0x00000BA4; // type:function size:0xA8 scope:global align:4 damage_check__7daCow_cFv = .text:0x00000C4C; // type:function size:0x2C0 scope:global align:4 setEnterCow20__7daCow_cFv = .text:0x00000F0C; // type:function size:0xE0 scope:global align:4 setEnterCow10__7daCow_cFv = .text:0x00000FEC; // type:function size:0xEC scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_dshutter/symbols.txt b/config/RZDE01_02/rels/d_a_dshutter/symbols.txt index 1b7ff3cf80..7b42b70eb8 100644 --- a/config/RZDE01_02/rels/d_a_dshutter/symbols.txt +++ b/config/RZDE01_02/rels/d_a_dshutter/symbols.txt @@ -21,7 +21,7 @@ daDsh_IsDelete__FP7daDsh_c = .text:0x000006C8; // type:function size:0x8 scope:g daDsh_Delete__FP7daDsh_c = .text:0x000006D0; // type:function size:0x48 scope:global align:4 daDsh_Create__FP10fopAc_ac_c = .text:0x00000718; // type:function size:0x170 scope:global align:4 __sinit_d_a_dshutter_cpp = .text:0x00000888; // type:function size:0x15C scope:global align:4 -__ct__Q27daDsh_c8action_cFM7daDsh_cFP10v = .text:0x000009E4; // type:function size:0x34 scope:global align:4 +__ct__Q27daDsh_c8action_cFM7daDsh_cFPCvPv_iM7daDsh_cFPCvPv_i = .text:0x000009E4; // type:function size:0x34 scope:global align:4 _ctors = .ctors:0x00000000; // type:label scope:global _dtors = .dtors:0x00000000; // type:label scope:global l_bmd = .rodata:0x00000000; // type:object size:0xC scope:global align:4 @@ -36,7 +36,7 @@ lbl_10_data_7 = .data:0x00000007; // type:object size:0xA data:string lbl_10_data_11 = .data:0x00000011; // type:object size:0xA data:string l_arcName = .data:0x0000001C; // type:object size:0xC scope:global align:4 lbl_10_data_28 = .data:0x00000028; // type:object size:0x4 -daDsh_c::create(void)@l_resName = .data:0x0000002C; // type:object size:0x8 scope:global align:4 data:4byte +l_resName$localstatic3$create__7daDsh_cFv = .data:0x0000002C; // type:object size:0x8 scope:global align:4 data:4byte l_daDsh_Method = .data:0x00000034; // type:object size:0x20 scope:global align:4 g_profile_DSHUTTER = .data:0x00000054; // type:object size:0x34 scope:global align:4 __vt__7daDsh_c = .data:0x00000088; // type:object size:0x28 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_e_gm/symbols.txt b/config/RZDE01_02/rels/d_a_e_gm/symbols.txt index ed23d8c256..a428e58789 100644 --- a/config/RZDE01_02/rels/d_a_e_gm/symbols.txt +++ b/config/RZDE01_02/rels/d_a_e_gm/symbols.txt @@ -9,7 +9,7 @@ __ct__4cXyzFfff = .text:0x0000010C; // type:label scope:global align:4 set__4cXyzFfff = .text:0x0000011C; // type:label scope:global align:4 setall__4cXyzFf = .text:0x0000012C; // type:label scope:global align:4 __ct__12daE_GM_HIO_cFv = .text:0x00000140; // type:function size:0x5C scope:global align:4 -setAction__8daE_GM_cFM8daE_GM_cFP10v = .text:0x0000019C; // type:function size:0xA4 scope:global align:4 +setAction__8daE_GM_cFM8daE_GM_cFPCvPv_v = .text:0x0000019C; // type:function size:0xA4 scope:global align:4 action__8daE_GM_cFv = .text:0x00000240; // type:function size:0x144 scope:global align:4 s_obj_sub2__FPvPv = .text:0x00000384; // type:function size:0xA4 scope:global align:4 egg_wait__8daE_GM_cFv = .text:0x00000428; // type:function size:0x52C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_e_oct_bg/symbols.txt b/config/RZDE01_02/rels/d_a_e_oct_bg/symbols.txt index 4045d13728..a01ac5a051 100644 --- a/config/RZDE01_02/rels/d_a_e_oct_bg/symbols.txt +++ b/config/RZDE01_02/rels/d_a_e_oct_bg/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 __ct__15daE_OctBg_HIO_cFv = .text:0x000000CC; // type:function size:0x60 scope:global align:4 -setAction__11daE_OctBg_cFM11daE_OctBg_cFP10v = .text:0x0000012C; // type:function size:0xA4 scope:global align:4 +setAction__11daE_OctBg_cFM11daE_OctBg_cFPCvPv_v = .text:0x0000012C; // type:function size:0xA4 scope:global align:4 setSparkEffect__11daE_OctBg_cFv = .text:0x000001D0; // type:function size:0x104 scope:global align:4 checkExplode__11daE_OctBg_cFv = .text:0x000002D4; // type:function size:0x100 scope:global align:4 action__11daE_OctBg_cFv = .text:0x000003D4; // type:function size:0x300 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_e_sm2/symbols.txt b/config/RZDE01_02/rels/d_a_e_sm2/symbols.txt index 9d0f200ef8..cbb7fdf987 100644 --- a/config/RZDE01_02/rels/d_a_e_sm2/symbols.txt +++ b/config/RZDE01_02/rels/d_a_e_sm2/symbols.txt @@ -10,7 +10,7 @@ __as__4cXyzFR10cXyz = .text:0x00000410; // type:label scope:global align:4 dComIfG_Bgsp__Fv = .text:0x00000410; // type:function size:0x10 scope:global align:4 dComIfGp_getCamera__Fi = .text:0x00000420; // type:function size:0x18 scope:global align:4 fopAcM_GetRoomNo__FPC10fopAc_ac_c = .text:0x00000438; // type:function size:0xC scope:global align:4 -fopAcM_GetParam__FP10v = .text:0x00000444; // type:function size:0x8 scope:global align:4 +fopAcM_GetParam__FPCv = .text:0x00000444; // type:function size:0x8 scope:global align:4 __ct__13daE_SM2_HIO_cFv = .text:0x0000044C; // type:function size:0x40 scope:global align:4 nodeCallBack__FP8J3DJointi = .text:0x0000048C; // type:function size:0x11C scope:global align:4 daE_SM2_Draw__FP11e_sm2_class = .text:0x000005A8; // type:function size:0x2D4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_e_sw/symbols.txt b/config/RZDE01_02/rels/d_a_e_sw/symbols.txt index f28a7cfd6c..b9dd4a5c7d 100644 --- a/config/RZDE01_02/rels/d_a_e_sw/symbols.txt +++ b/config/RZDE01_02/rels/d_a_e_sw/symbols.txt @@ -55,7 +55,7 @@ CreateHeap__8daE_SW_cFv = .text:0x000041B8; // type:function size:0xF4 scope:glo useHeapInit__FP10fopAc_ac_c = .text:0x000042AC; // type:function size:0x4 scope:global align:4 create__8daE_SW_cFv = .text:0x000042B0; // type:function size:0x4EC scope:global align:4 daE_SW_Create__FP8daE_SW_c = .text:0x0000479C; // type:function size:0x4 scope:global align:4 -d_setAction__8daE_SW_cFM8daE_SW_cFP10v = .text:0x000047A0; // type:function size:0xA4 scope:global align:4 +d_setAction__8daE_SW_cFM8daE_SW_cFPCvPv_v = .text:0x000047A0; // type:function size:0xA4 scope:global align:4 d_checkFall__8daE_SW_cFv = .text:0x00004844; // type:function size:0x1F4 scope:global align:4 d_damage_check__8daE_SW_cFv = .text:0x00004A38; // type:function size:0x37C scope:global align:4 d_action__8daE_SW_cFv = .text:0x00004DB4; // type:function size:0x100 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_grass/symbols.txt b/config/RZDE01_02/rels/d_a_grass/symbols.txt index e457ee2bab..ab0f0f16fd 100644 --- a/config/RZDE01_02/rels/d_a_grass/symbols.txt +++ b/config/RZDE01_02/rels/d_a_grass/symbols.txt @@ -187,7 +187,7 @@ l_mat2DL = .data:0x000044A0; // type:object size:0x99 scope:global align:4 l_mat2Light4DL = .data:0x00004540; // type:object size:0x99 scope:global align:4 @101412 = .data:0x000045DC; // type:object size:0xC scope:local align:4 data:4byte @101540 = .data:0x000045E8; // type:object size:0x20 scope:local align:4 -@LOCAL@daGrass_c::create(void)@l_offsetData@5 = .data:0x00004608; // type:object size:0x40 scope:global align:4 +l_offsetData$localstatic15$create__9daGrass_cFv = .data:0x00004608; // type:object size:0x40 scope:local align:4 daGrass_METHODS = .data:0x00004648; // type:object size:0x20 scope:global align:4 g_profile_GRASS = .data:0x00004668; // type:object size:0x30 scope:global align:4 __vt__16dFlower_packet_c = .data:0x00004698; // type:object size:0x14 scope:global align:4 @@ -276,15 +276,15 @@ ang$95218 = .bss:0x00000BE8; // type:object size:0x6 scope:global align:4 @95833 = .bss:0x00000EB4; // type:object size:0xC scope:local align:4 @95834 = .bss:0x00000EC0; // type:object size:0xC scope:local align:4 @95835 = .bss:0x00000ECC; // type:object size:0xC scope:local align:4 -lbl_74_bss_ED8 = .bss:0x00000ED8; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType0 = .bss:0x00000EDA; // type:object size:0x2A scope:global align:2 -lbl_74_bss_F04 = .bss:0x00000F04; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType1@0 = .bss:0x00000F06; // type:object size:0x7E scope:global align:2 -lbl_74_bss_F84 = .bss:0x00000F84; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType2@1 = .bss:0x00000F86; // type:object size:0x12 scope:global align:2 -lbl_74_bss_F98 = .bss:0x00000F98; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType3@2 = .bss:0x00000F9A; // type:object size:0x2A scope:global align:2 -lbl_74_bss_FC4 = .bss:0x00000FC4; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType4@3 = .bss:0x00000FC6; // type:object size:0x66 scope:global align:2 -lbl_74_bss_102C = .bss:0x0000102C; // type:object size:0x1 data:byte -@LOCAL@daGrass_c::create(void)@l_setType5@4 = .bss:0x0000102E; // type:object size:0x2A scope:global align:2 +init$localstatic4$create__9daGrass_cFv = .bss:0x00000ED8; // type:object size:0x1 data:byte +l_setType0$localstatic3$create__9daGrass_cFv = .bss:0x00000EDA; // type:object size:0x2A scope:local data:2byte +init$localstatic6$create__9daGrass_cFv = .bss:0x00000F04; // type:object size:0x1 data:byte +l_setType1$localstatic5$create__9daGrass_cFv = .bss:0x00000F06; // type:object size:0x7E scope:local data:2byte +init$localstatic8$create__9daGrass_cFv = .bss:0x00000F84; // type:object size:0x1 data:byte +l_setType2$localstatic7$create__9daGrass_cFv = .bss:0x00000F86; // type:object size:0x12 scope:local data:2byte +init$localstatic10$create__9daGrass_cFv = .bss:0x00000F98; // type:object size:0x1 data:byte +l_setType3$localstatic9$create__9daGrass_cFv = .bss:0x00000F9A; // type:object size:0x2A scope:local data:2byte +init$localstatic12$create__9daGrass_cFv = .bss:0x00000FC4; // type:object size:0x1 data:byte +l_setType4$localstatic11$create__9daGrass_cFv = .bss:0x00000FC6; // type:object size:0x66 scope:local data:2byte +init$localstatic14$create__9daGrass_cFv = .bss:0x0000102C; // type:object size:0x1 data:byte +l_setType5$localstatic13$create__9daGrass_cFv = .bss:0x0000102E; // type:object size:0x2A scope:local data:2byte diff --git a/config/RZDE01_02/rels/d_a_mirror/symbols.txt b/config/RZDE01_02/rels/d_a_mirror/symbols.txt index abb2c47db8..8407495927 100644 --- a/config/RZDE01_02/rels/d_a_mirror/symbols.txt +++ b/config/RZDE01_02/rels/d_a_mirror/symbols.txt @@ -41,8 +41,8 @@ lbl_279_rodata_8 = .rodata:0x00000008; // type:object size:0xC @94558 = .rodata:0x00000044; // type:object size:0x4 scope:local align:4 @94562 = .rodata:0x00000048; // type:object size:0x8 scope:local align:4 @92849 = .rodata:0x00000050; // type:object size:0x30 scope:local align:4 -@LOCAL@daMirror_c::create(void)@l_mirrorQuad = .rodata:0x00000080; // type:object size:0x30 scope:global align:4 -@LOCAL@daMirror_c::create(void)@l_mirrorLook@0 = .rodata:0x000000B0; // type:object size:0xC scope:global align:4 +l_mirrorQuad$localstatic3$create__10daMirror_cFv = .rodata:0x00000080; // type:object size:0x30 scope:global align:4 +l_mirrorLook$localstatic4$create__10daMirror_cFv = .rodata:0x000000B0; // type:object size:0xC scope:global align:4 @94669 = .rodata:0x000000BC; // type:object size:0x4 scope:local align:4 @94702 = .rodata:0x000000C0; // type:object size:0x4 scope:local align:4 data:float lbl_279_data_0 = .data:0x00000000; // type:object size:0x7 data:string diff --git a/config/RZDE01_02/rels/d_a_movie_player/symbols.txt b/config/RZDE01_02/rels/d_a_movie_player/symbols.txt index 1a7bdcbcad..b942fc5e13 100644 --- a/config/RZDE01_02/rels/d_a_movie_player/symbols.txt +++ b/config/RZDE01_02/rels/d_a_movie_player/symbols.txt @@ -127,11 +127,11 @@ JKRFree__FPv = .text:0x00006434; // type:function size:0x8 scope:global align:4 dComIfGp_event_reset__Fv = .text:0x0000643C; // type:function size:0x30 scope:global align:4 getEvent__14dComIfG_play_cFv = .text:0x0000646C; // type:function size:0x8 scope:global align:4 dComIfGd_set2DOpa__FP12dDlst_base_c = .text:0x00006474; // type:function size:0x14 scope:global align:4 -fopAcM_GetParam__FP10v = .text:0x00006488; // type:function size:0x4 scope:global align:4 +fopAcM_GetParam__FPCv = .text:0x00006488; // type:function size:0x4 scope:global align:4 fopAcM_CheckCondition__FP10fopAc_ac_cUl = .text:0x0000648C; // type:function size:0xC scope:global align:4 fopAcM_OnCondition__FP10fopAc_ac_cUl = .text:0x00006498; // type:function size:0x10 scope:global align:4 __ct__6daMP_cFv = .text:0x000064A8; // type:function size:0x30 scope:global align:4 -fpcM_GetParam__FP10v = .text:0x000064D8; // type:function size:0x8 scope:global align:4 +fpcM_GetParam__FPCv = .text:0x000064D8; // type:function size:0x8 scope:global align:4 setFrameRate__10JFWDisplayFUs = .text:0x000064E0; // type:function size:0x10 scope:global align:4 getManager__10JFWDisplayFv = .text:0x000064F0; // type:function size:0xC scope:global align:4 set2DOpa__12dDlst_list_cFP12dDlst_base_c = .text:0x000064FC; // type:function size:0x10 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_myna/symbols.txt b/config/RZDE01_02/rels/d_a_myna/symbols.txt index 6aae7fc999..710a915d0e 100644 --- a/config/RZDE01_02/rels/d_a_myna/symbols.txt +++ b/config/RZDE01_02/rels/d_a_myna/symbols.txt @@ -147,7 +147,7 @@ lbl_281_data_2F7 = .data:0x000002F7; // type:object size:0x10 data:string l_bckFileNameTBL = .data:0x00000308; // type:object size:0x3C scope:global align:4 data:4byte lbl_281_data_344 = .data:0x00000344; // type:object size:0x9 data:string l_btpFileNameTBL = .data:0x00000350; // type:object size:0x4 scope:global align:4 data:4byte -@LOCAL@daMyna_HIO_c::daMyna_HIO_c(void)@aParam = .data:0x00000354; // type:object size:0x30 scope:global align:4 +aParam$localstatic3$__ct__12daMyna_HIO_cFv = .data:0x00000354; // type:object size:0x30 scope:global align:4 mBaseMotionTBL__8daMyna_c = .data:0x00000384; // type:object size:0x54 scope:global align:4 lbl_281_data_3D8 = .data:0x000003D8; // type:object size:0x14 @101171 = .data:0x000003EC; // type:object size:0x40 scope:local align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_aru/symbols.txt b/config/RZDE01_02/rels/d_a_npc_aru/symbols.txt index 85663405bf..fe610c9476 100644 --- a/config/RZDE01_02/rels/d_a_npc_aru/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_aru/symbols.txt @@ -31,7 +31,7 @@ setAttnPos__11daNpc_Aru_cFv = .text:0x00001AE8; // type:function size:0x2D4 scop setCollision__11daNpc_Aru_cFv = .text:0x00001DBC; // type:function size:0x160 scope:global align:4 drawDbgInfo__11daNpc_Aru_cFv = .text:0x00001F1C; // type:function size:0x8 scope:global align:4 selectAction__11daNpc_Aru_cFv = .text:0x00001F24; // type:function size:0x1E0 scope:global align:4 -setAction__11daNpc_Aru_cFM11daNpc_Aru_cFP10v = .text:0x00002104; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Aru_cFM11daNpc_Aru_cFPCvPvPv_i = .text:0x00002104; // type:function size:0xA8 scope:global align:4 chkBullRunningStage__11daNpc_Aru_cFv = .text:0x000021AC; // type:function size:0x78 scope:global align:4 chkSkipFenceStage__11daNpc_Aru_cFv = .text:0x00002224; // type:function size:0x78 scope:global align:4 srchActorDirection__11daNpc_Aru_cFP10fopAc_ac_c = .text:0x0000229C; // type:function size:0xD0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_ash/symbols.txt b/config/RZDE01_02/rels/d_a_npc_ash/symbols.txt index 39aa3dbf42..d3bc20fde8 100644 --- a/config/RZDE01_02/rels/d_a_npc_ash/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_ash/symbols.txt @@ -15,7 +15,7 @@ ctrlJointCallBack__10daNpcAsh_cFP8J3DJointi = .text:0x00000FF4; // type:function setExpressionAnm__10daNpcAsh_cFib = .text:0x0000103C; // type:function size:0x220 scope:global align:4 setExpressionBtp__10daNpcAsh_cFi = .text:0x0000125C; // type:function size:0xD8 scope:global align:4 setMotionAnm__10daNpcAsh_cFif = .text:0x00001334; // type:function size:0x144 scope:global align:4 -setAction__10daNpcAsh_cFM10daNpcAsh_cFP10v = .text:0x00001478; // type:function size:0xA8 scope:global align:4 +setAction__10daNpcAsh_cFM10daNpcAsh_cFPCvPvPv_b = .text:0x00001478; // type:function size:0xA8 scope:global align:4 isSneaking__10daNpcAsh_cFv = .text:0x00001520; // type:function size:0x6C scope:global align:4 wait_type0__10daNpcAsh_cFPv = .text:0x0000158C; // type:function size:0x534 scope:global align:4 setExpression__10daNpcAsh_cFif = .text:0x00001AC0; // type:function size:0x2C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_ashB/symbols.txt b/config/RZDE01_02/rels/d_a_npc_ashB/symbols.txt index 0d2c0d423f..8e00b59854 100644 --- a/config/RZDE01_02/rels/d_a_npc_ashB/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_ashB/symbols.txt @@ -15,7 +15,7 @@ ctrlJointCallBack__11daNpcAshB_cFP8J3DJointi = .text:0x00000C04; // type:functio setExpressionAnm__11daNpcAshB_cFib = .text:0x00000C4C; // type:function size:0x204 scope:global align:4 setExpressionBtp__11daNpcAshB_cFi = .text:0x00000E50; // type:function size:0xD8 scope:global align:4 setMotionAnm__11daNpcAshB_cFif = .text:0x00000F28; // type:function size:0x1B8 scope:global align:4 -setAction__11daNpcAshB_cFM11daNpcAshB_cFP10v = .text:0x000010E0; // type:function size:0xA8 scope:global align:4 +setAction__11daNpcAshB_cFM11daNpcAshB_cFPCvPvPv_b = .text:0x000010E0; // type:function size:0xA8 scope:global align:4 wait__11daNpcAshB_cFPv = .text:0x00001188; // type:function size:0x4D4 scope:global align:4 setExpression__11daNpcAshB_cFif = .text:0x0000165C; // type:function size:0x68 scope:global align:4 setMotion__11daNpcAshB_cFifi = .text:0x000016C4; // type:function size:0xC0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_bans/symbols.txt b/config/RZDE01_02/rels/d_a_npc_bans/symbols.txt index e5d6462358..ae9140ab17 100644 --- a/config/RZDE01_02/rels/d_a_npc_bans/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_bans/symbols.txt @@ -29,7 +29,7 @@ drawOtherMdl__12daNpc_Bans_cFv = .text:0x00001F68; // type:function size:0x144 s setScoopAnm__12daNpc_Bans_cFiif = .text:0x000020AC; // type:function size:0xC4 scope:global align:4 afterSetMotionAnm__12daNpc_Bans_cFiifi = .text:0x00002170; // type:function size:0x18 scope:global align:4 selectAction__12daNpc_Bans_cFv = .text:0x00002188; // type:function size:0x70 scope:global align:4 -setAction__12daNpc_Bans_cFM12daNpc_Bans_cFP10v = .text:0x000021F8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Bans_cFM12daNpc_Bans_cFPCvPvPv_i = .text:0x000021F8; // type:function size:0xA8 scope:global align:4 checkPlayerIn2ndFloorOfBombShop__12daNpc_Bans_cFv = .text:0x000022A0; // type:function size:0xAC scope:global align:4 orderAngerEvt__12daNpc_Bans_cFv = .text:0x0000234C; // type:function size:0xEC scope:global align:4 getKMsgTagP__12daNpc_Bans_cFv = .text:0x00002438; // type:function size:0xA0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_besu/symbols.txt b/config/RZDE01_02/rels/d_a_npc_besu/symbols.txt index 0f5cb78b5d..0d3dcf5105 100644 --- a/config/RZDE01_02/rels/d_a_npc_besu/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_besu/symbols.txt @@ -35,7 +35,7 @@ changeBck__12daNpc_Besu_cFPiPi = .text:0x00002720; // type:function size:0x9C sc changeBtp__12daNpc_Besu_cFPiPi = .text:0x000027BC; // type:function size:0x8C scope:global align:4 changeBtk__12daNpc_Besu_cFPiPi = .text:0x00002848; // type:function size:0x2C scope:global align:4 selectAction__12daNpc_Besu_cFv = .text:0x00002874; // type:function size:0x14C scope:global align:4 -setAction__12daNpc_Besu_cFM12daNpc_Besu_cFP10v = .text:0x000029C0; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Besu_cFM12daNpc_Besu_cFPCvPvPv_i = .text:0x000029C0; // type:function size:0xA8 scope:global align:4 mop__12daNpc_Besu_cFii = .text:0x00002A68; // type:function size:0xFC scope:global align:4 cutConversationAboutSaru__12daNpc_Besu_cFi = .text:0x00002B64; // type:function size:0x128 scope:global align:4 cutConversationAboutPachinko__12daNpc_Besu_cFi = .text:0x00002C8C; // type:function size:0x398 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_blue_ns/symbols.txt b/config/RZDE01_02/rels/d_a_npc_blue_ns/symbols.txt index b761f55997..e8c8556c68 100644 --- a/config/RZDE01_02/rels/d_a_npc_blue_ns/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_blue_ns/symbols.txt @@ -33,7 +33,7 @@ setMotion__13daNpcBlueNS_cFifi = .text:0x000016E8; // type:function size:0x48 sc drawDbgInfo__13daNpcBlueNS_cFv = .text:0x00001730; // type:function size:0x8 scope:global align:4 reset__13daNpcBlueNS_cFv = .text:0x00001738; // type:function size:0x16C scope:global align:4 playMotion__13daNpcBlueNS_cFv = .text:0x000018A4; // type:function size:0x1EC scope:global align:4 -setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFP10v = .text:0x00001A90; // type:function size:0xA8 scope:global align:4 +setAction__13daNpcBlueNS_cFM13daNpcBlueNS_cFPCvPvi_i = .text:0x00001A90; // type:function size:0xA8 scope:global align:4 setLookMode__13daNpcBlueNS_cFi = .text:0x00001B38; // type:function size:0x24 scope:global align:4 lookat__13daNpcBlueNS_cFv = .text:0x00001B5C; // type:function size:0x228 scope:global align:4 step__13daNpcBlueNS_cFsi = .text:0x00001D84; // type:function size:0xD8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_bou/symbols.txt b/config/RZDE01_02/rels/d_a_npc_bou/symbols.txt index a7eb5a5327..49f216e794 100644 --- a/config/RZDE01_02/rels/d_a_npc_bou/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_bou/symbols.txt @@ -29,7 +29,7 @@ setCollision__11daNpc_Bou_cFv = .text:0x000018C8; // type:function size:0x160 sc drawDbgInfo__11daNpc_Bou_cFv = .text:0x00001A28; // type:function size:0x8 scope:global align:4 changeAnm__11daNpc_Bou_cFPiPi = .text:0x00001A30; // type:function size:0x4C scope:global align:4 selectAction__11daNpc_Bou_cFv = .text:0x00001A7C; // type:function size:0x70 scope:global align:4 -setAction__11daNpc_Bou_cFM11daNpc_Bou_cFP10v = .text:0x00001AEC; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Bou_cFM11daNpc_Bou_cFPCvPvPv_i = .text:0x00001AEC; // type:function size:0xA8 scope:global align:4 cutWildGoat__11daNpc_Bou_cFi = .text:0x00001B94; // type:function size:0x368 scope:global align:4 cutWildGoatSuccess__11daNpc_Bou_cFi = .text:0x00001EFC; // type:function size:0x1B4 scope:global align:4 cutWildGoatFailure__11daNpc_Bou_cFi = .text:0x000020B0; // type:function size:0x1D0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_bouS/symbols.txt b/config/RZDE01_02/rels/d_a_npc_bouS/symbols.txt index 622cc0ac21..56c2853dcd 100644 --- a/config/RZDE01_02/rels/d_a_npc_bouS/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_bouS/symbols.txt @@ -15,7 +15,7 @@ ctrlJointCallBack__11daNpcBouS_cFP8J3DJointi = .text:0x00000D10; // type:functio setExpressionAnm__11daNpcBouS_cFib = .text:0x00000D58; // type:function size:0x1F0 scope:global align:4 setExpressionBtp__11daNpcBouS_cFi = .text:0x00000F48; // type:function size:0xD8 scope:global align:4 setMotionAnm__11daNpcBouS_cFif = .text:0x00001020; // type:function size:0x130 scope:global align:4 -setAction__11daNpcBouS_cFM11daNpcBouS_cFP10v = .text:0x00001150; // type:function size:0xA8 scope:global align:4 +setAction__11daNpcBouS_cFM11daNpcBouS_cFPCvPvPv_b = .text:0x00001150; // type:function size:0xA8 scope:global align:4 s_sub__FPvPv = .text:0x000011F8; // type:function size:0x74 scope:global align:4 wait__11daNpcBouS_cFPv = .text:0x0000126C; // type:function size:0x340 scope:global align:4 setExpression__11daNpcBouS_cFif = .text:0x000015AC; // type:function size:0x2C scope:global align:4 @@ -54,7 +54,7 @@ _ctors = .ctors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global align:4 _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local align:4 -daNpcBouS_Param_c::m = .rodata:0x00000000; // type:object size:0x8C scope:global align:4 +m__17daNpcBouS_Param_c = .rodata:0x00000000; // type:object size:0x8C scope:global align:4 @103701 = .rodata:0x0000008C; // type:object size:0x4 scope:local align:4 @103702 = .rodata:0x00000090; // type:object size:0x4 scope:local align:4 @103703 = .rodata:0x00000094; // type:object size:0x4 scope:local align:4 @@ -119,7 +119,7 @@ lbl_289_data_192 = .data:0x00000192; // type:object size:0x11 data:string l_evtNames = .data:0x000001A4; // type:object size:0x10 scope:global align:4 data:4byte lbl_289_data_1B4 = .data:0x000001B4; // type:object size:0x5 data:string l_myName = .data:0x000001BC; // type:object size:0x4 scope:global align:4 -daNpcBouS_c::mEvtSeqList = .data:0x000001C0; // type:object size:0x30 scope:global align:4 data:4byte +mEvtSeqList__11daNpcBouS_c = .data:0x000001C0; // type:object size:0x30 scope:global align:4 data:4byte @103629 = .data:0x000001F0; // type:object size:0xC scope:local align:4 @103630 = .data:0x000001FC; // type:object size:0xC scope:local align:4 @103899 = .data:0x00000208; // type:object size:0x1C scope:local align:4 @@ -182,4 +182,4 @@ l_createPos = .bss:0x00000014; // type:object size:0xC scope:global align:4 l_HIO = .bss:0x0000002C; // type:object size:0x4 scope:global align:4 @99353 = .bss:0x00000030; // type:object size:0xC scope:local align:4 lbl_289_bss_3C = .bss:0x0000003C; // type:object size:0x1 data:byte -daNpcBouS_c::setAttnPos(void)@eyeOffset = .bss:0x00000040; // type:object size:0xC scope:global align:4 data:float +eyeOffset$localstatic3$setAttnPos__11daNpcBouS_cFv = .bss:0x00000040; // type:object size:0xC scope:global align:4 data:float diff --git a/config/RZDE01_02/rels/d_a_npc_chat/symbols.txt b/config/RZDE01_02/rels/d_a_npc_chat/symbols.txt index e59aaf1b16..955768561a 100644 --- a/config/RZDE01_02/rels/d_a_npc_chat/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_chat/symbols.txt @@ -41,7 +41,7 @@ getLookPlayerCheck__11daNpcChat_cFv = .text:0x000029DC; // type:function size:0x reset__11daNpcChat_cFv = .text:0x00002A08; // type:function size:0x1AC scope:global align:4 playMotion__11daNpcChat_cFv = .text:0x00002BB4; // type:function size:0x1230 scope:global align:4 playMotionAnmLoop__11daNpcChat_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x00003DE4; // type:function size:0x158 scope:global align:4 -setAction__11daNpcChat_cFM11daNpcChat_cFP10v = .text:0x00003F3C; // type:function size:0xA8 scope:global align:4 +setAction__11daNpcChat_cFM11daNpcChat_cFPCvPvPv_b = .text:0x00003F3C; // type:function size:0xA8 scope:global align:4 step__11daNpcChat_cFsi = .text:0x00003FE4; // type:function size:0xD8 scope:global align:4 setTalkMember__11daNpcChat_cFP11daNpcChat_c = .text:0x000040BC; // type:function size:0x34 scope:global align:4 wait__11daNpcChat_cFPv = .text:0x000040F0; // type:function size:0x424 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_chin/symbols.txt b/config/RZDE01_02/rels/d_a_npc_chin/symbols.txt index d106c3d946..d4e533afbc 100644 --- a/config/RZDE01_02/rels/d_a_npc_chin/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_chin/symbols.txt @@ -30,7 +30,7 @@ reset__11daNpcChin_cFv = .text:0x00001964; // type:function size:0xFC scope:glob __as__5csXyzFR11csXyz = .text:0x00001A60; // type:label scope:global align:4 playExpression__11daNpcChin_cFv = .text:0x00001A60; // type:function size:0x318 scope:global align:4 playMotion__11daNpcChin_cFv = .text:0x00001D78; // type:function size:0x508 scope:global align:4 -setAction__11daNpcChin_cFM11daNpcChin_cFP10v = .text:0x00002280; // type:function size:0xA8 scope:global align:4 +setAction__11daNpcChin_cFM11daNpcChin_cFPCvPvPv_b = .text:0x00002280; // type:function size:0xA8 scope:global align:4 setLookMode__11daNpcChin_cFi = .text:0x00002328; // type:function size:0x24 scope:global align:4 lookat__11daNpcChin_cFv = .text:0x0000234C; // type:function size:0x228 scope:global align:4 step__11daNpcChin_cFsii = .text:0x00002574; // type:function size:0x178 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_clerka/symbols.txt b/config/RZDE01_02/rels/d_a_npc_clerka/symbols.txt index f904366395..2549e51388 100644 --- a/config/RZDE01_02/rels/d_a_npc_clerka/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_clerka/symbols.txt @@ -26,7 +26,7 @@ setCollision__14daNpc_clerkA_cFv = .text:0x00001484; // type:function size:0x144 drawDbgInfo__14daNpc_clerkA_cFv = .text:0x000015C8; // type:function size:0x8 scope:global align:4 drawOtherMdl__14daNpc_clerkA_cFv = .text:0x000015D0; // type:function size:0x64 scope:global align:4 selectAction__14daNpc_clerkA_cFv = .text:0x00001634; // type:function size:0x70 scope:global align:4 -setAction__14daNpc_clerkA_cFM14daNpc_clerkA_cFP10v = .text:0x000016A4; // type:function size:0xA8 scope:global align:4 +setAction__14daNpc_clerkA_cFM14daNpc_clerkA_cFPCvPvPv_i = .text:0x000016A4; // type:function size:0xA8 scope:global align:4 wait__14daNpc_clerkA_cFPv = .text:0x0000174C; // type:function size:0x1C4 scope:global align:4 tend__14daNpc_clerkA_cFPv = .text:0x00001910; // type:function size:0x1D4 scope:global align:4 talk__14daNpc_clerkA_cFPv = .text:0x00001AE4; // type:function size:0x188 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_clerkb/symbols.txt b/config/RZDE01_02/rels/d_a_npc_clerkb/symbols.txt index 1d449d745c..aadd58505a 100644 --- a/config/RZDE01_02/rels/d_a_npc_clerkb/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_clerkb/symbols.txt @@ -29,7 +29,7 @@ drawDbgInfo__14daNpc_clerkB_cFv = .text:0x00001AE8; // type:function size:0x8 sc drawOtherMdl__14daNpc_clerkB_cFv = .text:0x00001AF0; // type:function size:0x64 scope:global align:4 drawGhost__14daNpc_clerkB_cFv = .text:0x00001B54; // type:function size:0x88 scope:global align:4 selectAction__14daNpc_clerkB_cFv = .text:0x00001BDC; // type:function size:0x70 scope:global align:4 -setAction__14daNpc_clerkB_cFM14daNpc_clerkB_cFP10v = .text:0x00001C4C; // type:function size:0xA8 scope:global align:4 +setAction__14daNpc_clerkB_cFM14daNpc_clerkB_cFPCvPvPv_i = .text:0x00001C4C; // type:function size:0xA8 scope:global align:4 setSe__14daNpc_clerkB_cFv = .text:0x00001CF4; // type:function size:0xAC scope:global align:4 wait__14daNpc_clerkB_cFPv = .text:0x00001DA0; // type:function size:0x1C4 scope:global align:4 tend__14daNpc_clerkB_cFPv = .text:0x00001F64; // type:function size:0x1E8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_clerkt/symbols.txt b/config/RZDE01_02/rels/d_a_npc_clerkt/symbols.txt index b5e9bd81e0..68eda30a58 100644 --- a/config/RZDE01_02/rels/d_a_npc_clerkt/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_clerkt/symbols.txt @@ -18,7 +18,7 @@ action__13daNpcClerkT_cFv = .text:0x00000EA4; // type:function size:0xA4 scope:g drawDbgInfo__13daNpcClerkT_cFv = .text:0x00000F48; // type:function size:0x8 scope:global align:4 drawOtherMdl__13daNpcClerkT_cFv = .text:0x00000F50; // type:function size:0x64 scope:global align:4 selectAction__13daNpcClerkT_cFv = .text:0x00000FB4; // type:function size:0x70 scope:global align:4 -setAction__13daNpcClerkT_cFM13daNpcClerkT_cFP10v = .text:0x00001024; // type:function size:0xA8 scope:global align:4 +setAction__13daNpcClerkT_cFM13daNpcClerkT_cFPCvPvPv_i = .text:0x00001024; // type:function size:0xA8 scope:global align:4 wait__13daNpcClerkT_cFPv = .text:0x000010CC; // type:function size:0x1C4 scope:global align:4 tend__13daNpcClerkT_cFPv = .text:0x00001290; // type:function size:0xE4 scope:global align:4 talk__13daNpcClerkT_cFPv = .text:0x00001374; // type:function size:0x188 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_coach/symbols.txt b/config/RZDE01_02/rels/d_a_npc_coach/symbols.txt index 219f9d341f..fdbc92f89e 100644 --- a/config/RZDE01_02/rels/d_a_npc_coach/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_coach/symbols.txt @@ -67,12 +67,12 @@ _dtors = .dtors:0x00000000; // type:label scope:global M_attr__12daNpcCoach_c = .rodata:0x00000000; // type:object size:0xA0 scope:global align:4 @107401 = .rodata:0x000000A0; // type:object size:0x4 scope:local align:4 data:float @107547 = .rodata:0x000000A4; // type:object size:0x4 scope:local align:4 -@LOCAL@daNpcCoach_c::initCollision(void)@ccCylSrc = .rodata:0x000000A8; // type:object size:0x44 scope:global align:4 -daNpcCoach_c::initCollision(void)@ccSphSrc@0 = .rodata:0x000000EC; // type:object size:0x40 scope:global align:4 -daNpcCoach_c::calcFrontWheelRotate(void)@shaftRound@0 = .rodata:0x0000012C; // type:object size:0x4 scope:global align:4 -@LOCAL@daNpcCoach_c::calcFrontWheelRotate(void)@round = .rodata:0x00000130; // type:object size:0x4 scope:global align:4 -daNpcCoach_c::calcRearWheelRotate(void)@shaftRound@0 = .rodata:0x00000134; // type:object size:0x4 scope:global align:4 -@LOCAL@daNpcCoach_c::calcRearWheelRotate(void)@round = .rodata:0x00000138; // type:object size:0x4 scope:global align:4 +ccCylSrc$localstatic3$initCollision__12daNpcCoach_cFv = .rodata:0x000000A8; // type:object size:0x44 scope:global align:4 +ccSphSrc$localstatic4$initCollision__12daNpcCoach_cFv = .rodata:0x000000EC; // type:object size:0x40 scope:global align:4 +shaftRound$localstatic3$calcFrontWheelRotate__12daNpcCoach_cFv = .rodata:0x0000012C; // type:object size:0x4 scope:local align:4 +round$localstatic4$calcFrontWheelRotate__12daNpcCoach_cFv = .rodata:0x00000130; // type:object size:0x4 scope:local align:4 +shaftRound$localstatic3$calcRearWheelRotate__12daNpcCoach_cFv = .rodata:0x00000134; // type:object size:0x4 scope:local align:4 +round$localstatic4$calcRearWheelRotate__12daNpcCoach_cFv = .rodata:0x00000138; // type:object size:0x4 scope:local align:4 @107607 = .rodata:0x0000013C; // type:object size:0x4 scope:local align:4 data:float ParticleName = .rodata:0x00000140; // type:object size:0x14 scope:global align:4 @107797 = .rodata:0x00000154; // type:object size:0x4 scope:local align:4 data:float diff --git a/config/RZDE01_02/rels/d_a_npc_doc/symbols.txt b/config/RZDE01_02/rels/d_a_npc_doc/symbols.txt index eac6ab98f5..eb52439ed9 100644 --- a/config/RZDE01_02/rels/d_a_npc_doc/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_doc/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__11daNpc_Doc_cFv = .text:0x00001214; // type:function size:0x2C4 scop setCollision__11daNpc_Doc_cFv = .text:0x000014D8; // type:function size:0x184 scope:global align:4 drawDbgInfo__11daNpc_Doc_cFv = .text:0x0000165C; // type:function size:0x8 scope:global align:4 selectAction__11daNpc_Doc_cFv = .text:0x00001664; // type:function size:0xF0 scope:global align:4 -setAction__11daNpc_Doc_cFM11daNpc_Doc_cFP10v = .text:0x00001754; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Doc_cFM11daNpc_Doc_cFPCvPvPv_i = .text:0x00001754; // type:function size:0xA8 scope:global align:4 wait__11daNpc_Doc_cFPv = .text:0x000017FC; // type:function size:0x2A8 scope:global align:4 walk__11daNpc_Doc_cFPv = .text:0x00001AA4; // type:function size:0x180 scope:global align:4 talk__11daNpc_Doc_cFPv = .text:0x00001C24; // type:function size:0x33C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_doorboy/symbols.txt b/config/RZDE01_02/rels/d_a_npc_doorboy/symbols.txt index b523ef3ab0..6264d01970 100644 --- a/config/RZDE01_02/rels/d_a_npc_doorboy/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_doorboy/symbols.txt @@ -13,7 +13,7 @@ ctrlJoint__14daNpcDoorBoy_cFP8J3DJointP8J3DModel = .text:0x00000A00; // type:fun createHeapCallBack__14daNpcDoorBoy_cFP10fopAc_ac_c = .text:0x00000B44; // type:function size:0x4 scope:global align:4 ctrlJointCallBack__14daNpcDoorBoy_cFP8J3DJointi = .text:0x00000B48; // type:function size:0x48 scope:global align:4 setMotion__14daNpcDoorBoy_cFifi = .text:0x00000B90; // type:function size:0x48 scope:global align:4 -setAction__14daNpcDoorBoy_cFM14daNpcDoorBoy_cFP10v = .text:0x00000BD8; // type:function size:0xA8 scope:global align:4 +setAction__14daNpcDoorBoy_cFM14daNpcDoorBoy_cFPCvPvPv_b = .text:0x00000BD8; // type:function size:0xA8 scope:global align:4 wait__14daNpcDoorBoy_cFPv = .text:0x00000C80; // type:function size:0x3F0 scope:global align:4 setLookMode__14daNpcDoorBoy_cFi = .text:0x00001070; // type:function size:0x24 scope:global align:4 step__14daNpcDoorBoy_cFsi = .text:0x00001094; // type:function size:0xD8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_drainSol/symbols.txt b/config/RZDE01_02/rels/d_a_npc_drainSol/symbols.txt index 40a16051d5..4256dd7505 100644 --- a/config/RZDE01_02/rels/d_a_npc_drainSol/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_drainSol/symbols.txt @@ -11,7 +11,7 @@ CreateHeap__12daNpcDrSol_cFv = .text:0x0000068C; // type:function size:0x1BC sco Execute__12daNpcDrSol_cFv = .text:0x00000848; // type:function size:0xF0 scope:global align:4 drawOtherMdls__12daNpcDrSol_cFv = .text:0x00000938; // type:function size:0x94 scope:global align:4 createHeapCallBack__12daNpcDrSol_cFP10fopAc_ac_c = .text:0x000009CC; // type:function size:0x4 scope:global align:4 -setAction__12daNpcDrSol_cFM12daNpcDrSol_cFP10v = .text:0x000009D0; // type:function size:0xA8 scope:global align:4 +setAction__12daNpcDrSol_cFM12daNpcDrSol_cFPCvPvPv_b = .text:0x000009D0; // type:function size:0xA8 scope:global align:4 wait__12daNpcDrSol_cFPv = .text:0x00000A78; // type:function size:0x11C scope:global align:4 setMotion__12daNpcDrSol_cFifi = .text:0x00000B94; // type:function size:0x78 scope:global align:4 talk__12daNpcDrSol_cFPv = .text:0x00000C0C; // type:function size:0x124 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_fairy/symbols.txt b/config/RZDE01_02/rels/d_a_npc_fairy/symbols.txt index 74035614c5..bf4c720807 100644 --- a/config/RZDE01_02/rels/d_a_npc_fairy/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_fairy/symbols.txt @@ -40,7 +40,7 @@ afterMoved__13daNpc_Fairy_cFv = .text:0x00001EB8; // type:function size:0xCC sco setAttnPos__13daNpc_Fairy_cFv = .text:0x00001F84; // type:function size:0x214 scope:global align:4 setCollision__13daNpc_Fairy_cFv = .text:0x00002198; // type:function size:0x148 scope:global align:4 drawDbgInfo__13daNpc_Fairy_cFv = .text:0x000022E0; // type:function size:0x8 scope:global align:4 -setAction__13daNpc_Fairy_cFM13daNpc_Fairy_cFP10v = .text:0x000022E8; // type:function size:0xB0 scope:global align:4 +setAction__13daNpc_Fairy_cFM13daNpc_Fairy_cFPCvPvi_ii = .text:0x000022E8; // type:function size:0xB0 scope:global align:4 wait__13daNpc_Fairy_cFi = .text:0x00002398; // type:function size:0x238 scope:global align:4 talk__13daNpc_Fairy_cFi = .text:0x000025D0; // type:function size:0xF0 scope:global align:4 AppearDemoCall__13daNpc_Fairy_cFv = .text:0x000026C0; // type:function size:0x138 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_fairy_seirei/symbols.txt b/config/RZDE01_02/rels/d_a_npc_fairy_seirei/symbols.txt index 0f5eb5aa45..412f450f64 100644 --- a/config/RZDE01_02/rels/d_a_npc_fairy_seirei/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_fairy_seirei/symbols.txt @@ -16,7 +16,7 @@ setCollision__19daNpc_FairySeirei_cFv = .text:0x00000A14; // type:function size: setAttnPos__19daNpc_FairySeirei_cFv = .text:0x00000B28; // type:function size:0x94 scope:global align:4 drawDbgInfo__19daNpc_FairySeirei_cFv = .text:0x00000BBC; // type:function size:0x8 scope:global align:4 selectAction__19daNpc_FairySeirei_cFv = .text:0x00000BC4; // type:function size:0x40 scope:global align:4 -setAction__19daNpc_FairySeirei_cFM19daNpc_FairySeirei_cFP10v = .text:0x00000C04; // type:function size:0xA8 scope:global align:4 +setAction__19daNpc_FairySeirei_cFM19daNpc_FairySeirei_cFPCvPvi_i = .text:0x00000C04; // type:function size:0xA8 scope:global align:4 setPrtcls__19daNpc_FairySeirei_cFv = .text:0x00000CAC; // type:function size:0x124 scope:global align:4 wait__19daNpc_FairySeirei_cFi = .text:0x00000DD0; // type:function size:0x6C scope:global align:4 talk__19daNpc_FairySeirei_cFi = .text:0x00000E3C; // type:function size:0x150 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_gnd/symbols.txt b/config/RZDE01_02/rels/d_a_npc_gnd/symbols.txt index 8dd8e07294..ccf1ae4946 100644 --- a/config/RZDE01_02/rels/d_a_npc_gnd/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_gnd/symbols.txt @@ -25,7 +25,7 @@ setCollision__11daNpc_Gnd_cFv = .text:0x0000126C; // type:function size:0x144 sc drawDbgInfo__11daNpc_Gnd_cFv = .text:0x000013B0; // type:function size:0x8 scope:global align:4 afterSetMotionAnm__11daNpc_Gnd_cFiifi = .text:0x000013B8; // type:function size:0x198 scope:global align:4 selectAction__11daNpc_Gnd_cFv = .text:0x00001550; // type:function size:0x40 scope:global align:4 -setAction__11daNpc_Gnd_cFM11daNpc_Gnd_cFP10v = .text:0x00001590; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Gnd_cFM11daNpc_Gnd_cFPCvPvPv_i = .text:0x00001590; // type:function size:0xA8 scope:global align:4 wait__11daNpc_Gnd_cFPv = .text:0x00001638; // type:function size:0x1B8 scope:global align:4 talk__11daNpc_Gnd_cFPv = .text:0x000017F0; // type:function size:0x188 scope:global align:4 daNpc_Gnd_Create__FPv = .text:0x00001978; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_gra/symbols.txt b/config/RZDE01_02/rels/d_a_npc_gra/symbols.txt index be5f54c48b..34764a6047 100644 --- a/config/RZDE01_02/rels/d_a_npc_gra/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_gra/symbols.txt @@ -40,7 +40,7 @@ isDelete__11daNpc_grA_cFv = .text:0x0000259C; // type:function size:0x184 scope: reset__11daNpc_grA_cFv = .text:0x00002720; // type:function size:0x550 scope:global align:4 playExpression__11daNpc_grA_cFv = .text:0x00002C70; // type:function size:0x640 scope:global align:4 playMotion__11daNpc_grA_cFv = .text:0x000032B0; // type:function size:0x77C scope:global align:4 -setAction__11daNpc_grA_cFM11daNpc_grA_cFP10v = .text:0x00003A2C; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_grA_cFM11daNpc_grA_cFPCvPvPv_i = .text:0x00003A2C; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_grA_cFv = .text:0x00003AD4; // type:function size:0x2BC scope:global align:4 doEvent__11daNpc_grA_cFv = .text:0x00003D90; // type:function size:0x450 scope:global align:4 setLookMode__11daNpc_grA_cFi = .text:0x000041E0; // type:function size:0x24 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_grc/symbols.txt b/config/RZDE01_02/rels/d_a_npc_grc/symbols.txt index e7265c5b8f..da099c93da 100644 --- a/config/RZDE01_02/rels/d_a_npc_grc/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_grc/symbols.txt @@ -29,7 +29,7 @@ reset__11daNpc_grC_cFv = .text:0x000018CC; // type:function size:0x1A4 scope:glo __as__5csXyzFR11csXyz = .text:0x00001A70; // type:label scope:global align:4 playExpression__11daNpc_grC_cFv = .text:0x00001A70; // type:function size:0x2B8 scope:global align:4 playMotion__11daNpc_grC_cFv = .text:0x00001D28; // type:function size:0x298 scope:global align:4 -setAction__11daNpc_grC_cFM11daNpc_grC_cFP10v = .text:0x00001FC0; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_grC_cFM11daNpc_grC_cFPCvPvPv_i = .text:0x00001FC0; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_grC_cFv = .text:0x00002068; // type:function size:0xD4 scope:global align:4 doNormalAction__11daNpc_grC_cFi = .text:0x0000213C; // type:function size:0x108 scope:global align:4 doEvent__11daNpc_grC_cFv = .text:0x00002244; // type:function size:0x2EC scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_grd/symbols.txt b/config/RZDE01_02/rels/d_a_npc_grd/symbols.txt index 8608b0396c..d1633e32ce 100644 --- a/config/RZDE01_02/rels/d_a_npc_grd/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_grd/symbols.txt @@ -29,7 +29,7 @@ reset__11daNpc_Grd_cFv = .text:0x00001928; // type:function size:0x134 scope:glo __as__5csXyzFR11csXyz = .text:0x00001A5C; // type:label scope:global align:4 playExpression__11daNpc_Grd_cFv = .text:0x00001A5C; // type:function size:0x134 scope:global align:4 playMotion__11daNpc_Grd_cFv = .text:0x00001B90; // type:function size:0x214 scope:global align:4 -setAction__11daNpc_Grd_cFM11daNpc_Grd_cFP10v = .text:0x00001DA4; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Grd_cFM11daNpc_Grd_cFPCvPvPv_i = .text:0x00001DA4; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_Grd_cFv = .text:0x00001E4C; // type:function size:0x40 scope:global align:4 doNormalAction__11daNpc_Grd_cFi = .text:0x00001E8C; // type:function size:0x108 scope:global align:4 doEvent__11daNpc_Grd_cFv = .text:0x00001F94; // type:function size:0x2D4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_grm/symbols.txt b/config/RZDE01_02/rels/d_a_npc_grm/symbols.txt index 8e8cc1cad0..e89ff3d418 100644 --- a/config/RZDE01_02/rels/d_a_npc_grm/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_grm/symbols.txt @@ -25,7 +25,7 @@ setCollision__11daNpc_grM_cFv = .text:0x000014F8; // type:function size:0x138 sc drawDbgInfo__11daNpc_grM_cFv = .text:0x00001630; // type:function size:0x8 scope:global align:4 drawOtherMdl__11daNpc_grM_cFv = .text:0x00001638; // type:function size:0x64 scope:global align:4 selectAction__11daNpc_grM_cFv = .text:0x0000169C; // type:function size:0x40 scope:global align:4 -setAction__11daNpc_grM_cFM11daNpc_grM_cFP10v = .text:0x000016DC; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_grM_cFM11daNpc_grM_cFPCvPvPv_i = .text:0x000016DC; // type:function size:0xA8 scope:global align:4 cutTalkSpa__11daNpc_grM_cFi = .text:0x00001784; // type:function size:0x144 scope:global align:4 tend__11daNpc_grM_cFPv = .text:0x000018C8; // type:function size:0x144 scope:global align:4 talk__11daNpc_grM_cFPv = .text:0x00001A0C; // type:function size:0x15C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_grmc/symbols.txt b/config/RZDE01_02/rels/d_a_npc_grmc/symbols.txt index 321c67aad8..90252af9f5 100644 --- a/config/RZDE01_02/rels/d_a_npc_grmc/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_grmc/symbols.txt @@ -23,7 +23,7 @@ setCollision__12daNpc_grMC_cFv = .text:0x000012C0; // type:function size:0x138 s drawDbgInfo__12daNpc_grMC_cFv = .text:0x000013F8; // type:function size:0x8 scope:global align:4 drawOtherMdl__12daNpc_grMC_cFv = .text:0x00001400; // type:function size:0x64 scope:global align:4 selectAction__12daNpc_grMC_cFv = .text:0x00001464; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_grMC_cFM12daNpc_grMC_cFP10v = .text:0x000014A4; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_grMC_cFM12daNpc_grMC_cFPCvPvPv_i = .text:0x000014A4; // type:function size:0xA8 scope:global align:4 tend__12daNpc_grMC_cFPv = .text:0x0000154C; // type:function size:0x150 scope:global align:4 talk__12daNpc_grMC_cFPv = .text:0x0000169C; // type:function size:0x15C scope:global align:4 shop__12daNpc_grMC_cFPv = .text:0x000017F8; // type:function size:0xF8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_gro/symbols.txt b/config/RZDE01_02/rels/d_a_npc_gro/symbols.txt index a6db98ac2d..c98b52da58 100644 --- a/config/RZDE01_02/rels/d_a_npc_gro/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_gro/symbols.txt @@ -29,7 +29,7 @@ reset__11daNpc_grO_cFv = .text:0x00001BA4; // type:function size:0x13C scope:glo __as__5csXyzFR11csXyz = .text:0x00001CE0; // type:label scope:global align:4 playExpression__11daNpc_grO_cFv = .text:0x00001CE0; // type:function size:0x398 scope:global align:4 playMotion__11daNpc_grO_cFv = .text:0x00002078; // type:function size:0x2E0 scope:global align:4 -setAction__11daNpc_grO_cFM11daNpc_grO_cFP10v = .text:0x00002358; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_grO_cFM11daNpc_grO_cFPCvPvPv_i = .text:0x00002358; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_grO_cFv = .text:0x00002400; // type:function size:0xA4 scope:global align:4 doNormalAction__11daNpc_grO_cFi = .text:0x000024A4; // type:function size:0x120 scope:global align:4 doEvent__11daNpc_grO_cFv = .text:0x000025C4; // type:function size:0x37C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_grr/symbols.txt b/config/RZDE01_02/rels/d_a_npc_grr/symbols.txt index 3fb4321671..cfa5a7c583 100644 --- a/config/RZDE01_02/rels/d_a_npc_grr/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_grr/symbols.txt @@ -29,7 +29,7 @@ reset__11daNpc_grR_cFv = .text:0x00001A30; // type:function size:0x188 scope:glo __as__5csXyzFR11csXyz = .text:0x00001BB8; // type:label scope:global align:4 playExpression__11daNpc_grR_cFv = .text:0x00001BB8; // type:function size:0x238 scope:global align:4 playMotion__11daNpc_grR_cFv = .text:0x00001DF0; // type:function size:0x37C scope:global align:4 -setAction__11daNpc_grR_cFM11daNpc_grR_cFP10v = .text:0x0000216C; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_grR_cFM11daNpc_grR_cFPCvPvPv_i = .text:0x0000216C; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_grR_cFv = .text:0x00002214; // type:function size:0x70 scope:global align:4 doNormalAction__11daNpc_grR_cFi = .text:0x00002284; // type:function size:0x108 scope:global align:4 doEvent__11daNpc_grR_cFv = .text:0x0000238C; // type:function size:0x2F4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_grs/symbols.txt b/config/RZDE01_02/rels/d_a_npc_grs/symbols.txt index 55934adde9..556ff3ea27 100644 --- a/config/RZDE01_02/rels/d_a_npc_grs/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_grs/symbols.txt @@ -29,7 +29,7 @@ reset__11daNpc_grS_cFv = .text:0x000019BC; // type:function size:0x15C scope:glo __as__5csXyzFR11csXyz = .text:0x00001B18; // type:label scope:global align:4 playExpression__11daNpc_grS_cFv = .text:0x00001B18; // type:function size:0x134 scope:global align:4 playMotion__11daNpc_grS_cFv = .text:0x00001C4C; // type:function size:0x164 scope:global align:4 -setAction__11daNpc_grS_cFM11daNpc_grS_cFP10v = .text:0x00001DB0; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_grS_cFM11daNpc_grS_cFPCvPvPv_i = .text:0x00001DB0; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_grS_cFv = .text:0x00001E58; // type:function size:0x40 scope:global align:4 doNormalAction__11daNpc_grS_cFi = .text:0x00001E98; // type:function size:0x120 scope:global align:4 doEvent__11daNpc_grS_cFv = .text:0x00001FB8; // type:function size:0x2F0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_grz/symbols.txt b/config/RZDE01_02/rels/d_a_npc_grz/symbols.txt index 4df2ebbf5f..2d82365816 100644 --- a/config/RZDE01_02/rels/d_a_npc_grz/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_grz/symbols.txt @@ -31,7 +31,7 @@ __as__5csXyzFR11csXyz = .text:0x0000248C; // type:label scope:global align:4 resetCol__11daNpc_Grz_cFv = .text:0x0000248C; // type:function size:0xE0 scope:global align:4 playExpression__11daNpc_Grz_cFv = .text:0x0000256C; // type:function size:0x304 scope:global align:4 playMotion__11daNpc_Grz_cFv = .text:0x00002870; // type:function size:0x40C scope:global align:4 -setAction__11daNpc_Grz_cFM11daNpc_Grz_cFP10v = .text:0x00002C7C; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Grz_cFM11daNpc_Grz_cFPCvPvPv_i = .text:0x00002C7C; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_Grz_cFv = .text:0x00002D24; // type:function size:0xD0 scope:global align:4 doNormalAction__11daNpc_Grz_cFi = .text:0x00002DF4; // type:function size:0x108 scope:global align:4 doEvent__11daNpc_Grz_cFv = .text:0x00002EFC; // type:function size:0x3B4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_gwolf/symbols.txt b/config/RZDE01_02/rels/d_a_npc_gwolf/symbols.txt index 4e0f729ea5..5d5942cdbe 100644 --- a/config/RZDE01_02/rels/d_a_npc_gwolf/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_gwolf/symbols.txt @@ -30,7 +30,7 @@ isDelete__13daNpc_GWolf_cFv = .text:0x00001A28; // type:function size:0xF4 scope reset__13daNpc_GWolf_cFv = .text:0x00001B1C; // type:function size:0x1CC scope:global align:4 __as__5csXyzFR11csXyz = .text:0x00001CE8; // type:label scope:global align:4 playMotion__13daNpc_GWolf_cFv = .text:0x00001CE8; // type:function size:0x378 scope:global align:4 -setAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFP10v = .text:0x00002060; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_GWolf_cFM13daNpc_GWolf_cFPCvPvPv_i = .text:0x00002060; // type:function size:0xA8 scope:global align:4 selectAction__13daNpc_GWolf_cFv = .text:0x00002108; // type:function size:0xA4 scope:global align:4 doNormalAction__13daNpc_GWolf_cFi = .text:0x000021AC; // type:function size:0x108 scope:global align:4 doEvent__13daNpc_GWolf_cFv = .text:0x000022B4; // type:function size:0x2F4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_hanjo/symbols.txt b/config/RZDE01_02/rels/d_a_npc_hanjo/symbols.txt index 687e7fef32..2f51b0b571 100644 --- a/config/RZDE01_02/rels/d_a_npc_hanjo/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_hanjo/symbols.txt @@ -27,7 +27,7 @@ setCollision__13daNpc_Hanjo_cFv = .text:0x00001CAC; // type:function size:0x30C drawDbgInfo__13daNpc_Hanjo_cFv = .text:0x00001FB8; // type:function size:0x8 scope:global align:4 drawOtherMdl__13daNpc_Hanjo_cFv = .text:0x00001FC0; // type:function size:0x278 scope:global align:4 selectAction__13daNpc_Hanjo_cFv = .text:0x00002238; // type:function size:0x13C scope:global align:4 -setAction__13daNpc_Hanjo_cFM13daNpc_Hanjo_cFP10v = .text:0x00002374; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_Hanjo_cFM13daNpc_Hanjo_cFPCvPvPv_i = .text:0x00002374; // type:function size:0xA8 scope:global align:4 initShoot__13daNpc_Hanjo_cFi = .text:0x0000241C; // type:function size:0xDC scope:global align:4 shoot__13daNpc_Hanjo_cFi = .text:0x000024F8; // type:function size:0x228 scope:global align:4 __as__5csXyzFR11csXyz = .text:0x00002720; // type:label scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_hoz/symbols.txt b/config/RZDE01_02/rels/d_a_npc_hoz/symbols.txt index 5b680d2c1a..f447f34987 100644 --- a/config/RZDE01_02/rels/d_a_npc_hoz/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_hoz/symbols.txt @@ -28,7 +28,7 @@ setCollision__11daNpc_Hoz_cFv = .text:0x000015C4; // type:function size:0x15C sc evtOrder__11daNpc_Hoz_cFv = .text:0x00001720; // type:function size:0x190 scope:global align:4 drawDbgInfo__11daNpc_Hoz_cFv = .text:0x000018B0; // type:function size:0x8 scope:global align:4 selectAction__11daNpc_Hoz_cFv = .text:0x000018B8; // type:function size:0x140 scope:global align:4 -setAction__11daNpc_Hoz_cFM11daNpc_Hoz_cFP10v = .text:0x000019F8; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Hoz_cFM11daNpc_Hoz_cFPCvPvPv_i = .text:0x000019F8; // type:function size:0xA8 scope:global align:4 wait__11daNpc_Hoz_cFPv = .text:0x00001AA0; // type:function size:0x118 scope:global align:4 waitBattle__11daNpc_Hoz_cFPv = .text:0x00001BB8; // type:function size:0x1D8 scope:global align:4 waitTwilightBattle__11daNpc_Hoz_cFPv = .text:0x00001D90; // type:function size:0x1BC scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_impal/symbols.txt b/config/RZDE01_02/rels/d_a_npc_impal/symbols.txt index 203d767006..a7b195be58 100644 --- a/config/RZDE01_02/rels/d_a_npc_impal/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_impal/symbols.txt @@ -15,7 +15,7 @@ ctrlJointCallBack__12daNpcImpal_cFP8J3DJointi = .text:0x00000CEC; // type:functi setExpressionAnm__12daNpcImpal_cFib = .text:0x00000D34; // type:function size:0x244 scope:global align:4 setExpressionBtp__12daNpcImpal_cFi = .text:0x00000F78; // type:function size:0xD8 scope:global align:4 setMotionAnm__12daNpcImpal_cFif = .text:0x00001050; // type:function size:0x168 scope:global align:4 -setAction__12daNpcImpal_cFM12daNpcImpal_cFP10v = .text:0x000011B8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpcImpal_cFM12daNpcImpal_cFPCvPvPv_b = .text:0x000011B8; // type:function size:0xA8 scope:global align:4 s_sub1__FPvPv = .text:0x00001260; // type:function size:0xA8 scope:global align:4 wait__12daNpcImpal_cFPv = .text:0x00001308; // type:function size:0x44C scope:global align:4 setExpression__12daNpcImpal_cFif = .text:0x00001754; // type:function size:0x2C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_ins/symbols.txt b/config/RZDE01_02/rels/d_a_npc_ins/symbols.txt index 781f7c8814..a12dcf87d7 100644 --- a/config/RZDE01_02/rels/d_a_npc_ins/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_ins/symbols.txt @@ -23,7 +23,7 @@ chkFindPlayer__10daNpcIns_cFv = .text:0x0000169C; // type:function size:0xD4 sco setLookMode__10daNpcIns_cFi = .text:0x00001770; // type:function size:0x24 scope:global align:4 step__10daNpcIns_cFsi = .text:0x00001794; // type:function size:0x178 scope:global align:4 waitEventMng__10daNpcIns_cFv = .text:0x0000190C; // type:function size:0x118 scope:global align:4 -setAction__10daNpcIns_cFM10daNpcIns_cFP10v = .text:0x00001A24; // type:function size:0xC0 scope:global align:4 +setAction__10daNpcIns_cFM10daNpcIns_cFPCvPvPv_b = .text:0x00001A24; // type:function size:0xC0 scope:global align:4 waitPresent__10daNpcIns_cFPv = .text:0x00001AE4; // type:function size:0x1CC scope:global align:4 waitOutSide1__10daNpcIns_cFPv = .text:0x00001CB0; // type:function size:0x278 scope:global align:4 waitOutSide2__10daNpcIns_cFPv = .text:0x00001F28; // type:function size:0x134 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_jagar/symbols.txt b/config/RZDE01_02/rels/d_a_npc_jagar/symbols.txt index 7c531f7089..2f63a568cb 100644 --- a/config/RZDE01_02/rels/d_a_npc_jagar/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_jagar/symbols.txt @@ -26,7 +26,7 @@ setCollision__13daNpc_Jagar_cFv = .text:0x00001794; // type:function size:0x178 drawDbgInfo__13daNpc_Jagar_cFv = .text:0x0000190C; // type:function size:0x8 scope:global align:4 changeBtp__13daNpc_Jagar_cFPiPi = .text:0x00001914; // type:function size:0x40 scope:global align:4 selectAction__13daNpc_Jagar_cFv = .text:0x00001954; // type:function size:0x70 scope:global align:4 -setAction__13daNpc_Jagar_cFM13daNpc_Jagar_cFP10v = .text:0x000019C4; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_Jagar_cFM13daNpc_Jagar_cFPCvPvPv_i = .text:0x000019C4; // type:function size:0xA8 scope:global align:4 cutClimbUp__13daNpc_Jagar_cFi = .text:0x00001A6C; // type:function size:0x170 scope:global align:4 cutNeedYourHelp__13daNpc_Jagar_cFi = .text:0x00001BDC; // type:function size:0x440 scope:global align:4 cutAnger__13daNpc_Jagar_cFi = .text:0x0000201C; // type:function size:0x1B0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kakashi/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kakashi/symbols.txt index 79ae169ad1..0932bf3f03 100644 --- a/config/RZDE01_02/rels/d_a_npc_kakashi/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kakashi/symbols.txt @@ -23,7 +23,7 @@ setAttnPos__15daNpc_Kakashi_cFv = .text:0x00001074; // type:function size:0x2A4 setCollision__15daNpc_Kakashi_cFv = .text:0x00001318; // type:function size:0x388 scope:global align:4 drawDbgInfo__15daNpc_Kakashi_cFv = .text:0x000016A0; // type:function size:0x8 scope:global align:4 selectAction__15daNpc_Kakashi_cFv = .text:0x000016A8; // type:function size:0xFC scope:global align:4 -setAction__15daNpc_Kakashi_cFM15daNpc_Kakashi_cFP10v = .text:0x000017A4; // type:function size:0xA8 scope:global align:4 +setAction__15daNpc_Kakashi_cFM15daNpc_Kakashi_cFPCvPvPv_i = .text:0x000017A4; // type:function size:0xA8 scope:global align:4 hitChk__15daNpc_Kakashi_cFv = .text:0x0000184C; // type:function size:0x38C scope:global align:4 setStaggerParam__15daNpc_Kakashi_cFP10fopAc_ac_c = .text:0x00001BD8; // type:function size:0x3A0 scope:global align:4 setPrtcls__15daNpc_Kakashi_cFi = .text:0x00001F78; // type:function size:0xE0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kasi_hana/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kasi_hana/symbols.txt index 63bfd5340c..624912de92 100644 --- a/config/RZDE01_02/rels/d_a_npc_kasi_hana/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kasi_hana/symbols.txt @@ -41,7 +41,7 @@ drawDbgInfo__15daNpcKasiHana_cFv = .text:0x00001CE0; // type:function size:0x8 s reset__15daNpcKasiHana_cFv = .text:0x00001CE8; // type:function size:0x1F8 scope:global align:4 playMotion__15daNpcKasiHana_cFv = .text:0x00001EE0; // type:function size:0x370 scope:global align:4 playMotionAnmLoop__15daNpcKasiHana_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x00002250; // type:function size:0x16C scope:global align:4 -setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFP10v = .text:0x000023BC; // type:function size:0xA8 scope:global align:4 +setAction__15daNpcKasiHana_cFM15daNpcKasiHana_cFPCvPvi_i = .text:0x000023BC; // type:function size:0xA8 scope:global align:4 setLookMode__15daNpcKasiHana_cFi = .text:0x00002464; // type:function size:0x24 scope:global align:4 lookat__15daNpcKasiHana_cFv = .text:0x00002488; // type:function size:0x228 scope:global align:4 step__15daNpcKasiHana_cFsi = .text:0x000026B0; // type:function size:0xD8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kasi_kyu/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kasi_kyu/symbols.txt index ad49d13f92..abbfd616eb 100644 --- a/config/RZDE01_02/rels/d_a_npc_kasi_kyu/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kasi_kyu/symbols.txt @@ -21,7 +21,7 @@ drawDbgInfo__14daNpcKasiKyu_cFv = .text:0x00000E00; // type:function size:0x8 sc reset__14daNpcKasiKyu_cFv = .text:0x00000E08; // type:function size:0x1E4 scope:global align:4 playMotion__14daNpcKasiKyu_cFv = .text:0x00000FEC; // type:function size:0x3C8 scope:global align:4 playMotionAnmLoop__14daNpcKasiKyu_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x000013B4; // type:function size:0x16C scope:global align:4 -setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFP10v = .text:0x00001520; // type:function size:0xA8 scope:global align:4 +setAction__14daNpcKasiKyu_cFM14daNpcKasiKyu_cFPCvPvi_i = .text:0x00001520; // type:function size:0xA8 scope:global align:4 setLookMode__14daNpcKasiKyu_cFi = .text:0x000015C8; // type:function size:0x24 scope:global align:4 lookat__14daNpcKasiKyu_cFv = .text:0x000015EC; // type:function size:0x228 scope:global align:4 step__14daNpcKasiKyu_cFsi = .text:0x00001814; // type:function size:0xD8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kasi_mich/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kasi_mich/symbols.txt index c26c5d284d..cfba0e31b3 100644 --- a/config/RZDE01_02/rels/d_a_npc_kasi_mich/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kasi_mich/symbols.txt @@ -21,7 +21,7 @@ drawDbgInfo__15daNpcKasiMich_cFv = .text:0x00000E00; // type:function size:0x8 s reset__15daNpcKasiMich_cFv = .text:0x00000E08; // type:function size:0x1E4 scope:global align:4 playMotion__15daNpcKasiMich_cFv = .text:0x00000FEC; // type:function size:0x3C8 scope:global align:4 playMotionAnmLoop__15daNpcKasiMich_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x000013B4; // type:function size:0x16C scope:global align:4 -setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFP10v = .text:0x00001520; // type:function size:0xA8 scope:global align:4 +setAction__15daNpcKasiMich_cFM15daNpcKasiMich_cFPCvPvi_i = .text:0x00001520; // type:function size:0xA8 scope:global align:4 setLookMode__15daNpcKasiMich_cFi = .text:0x000015C8; // type:function size:0x24 scope:global align:4 lookat__15daNpcKasiMich_cFv = .text:0x000015EC; // type:function size:0x228 scope:global align:4 step__15daNpcKasiMich_cFsi = .text:0x00001814; // type:function size:0xD8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kkri/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kkri/symbols.txt index f47ce6c6d4..d46a5c2dc6 100644 --- a/config/RZDE01_02/rels/d_a_npc_kkri/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kkri/symbols.txt @@ -25,7 +25,7 @@ setAttnPos__12daNpc_Kkri_cFv = .text:0x00001180; // type:function size:0x3F8 sco setCollision__12daNpc_Kkri_cFv = .text:0x00001578; // type:function size:0x1D4 scope:global align:4 drawDbgInfo__12daNpc_Kkri_cFv = .text:0x0000174C; // type:function size:0x8 scope:global align:4 selectAction__12daNpc_Kkri_cFv = .text:0x00001754; // type:function size:0xA4 scope:global align:4 -setAction__12daNpc_Kkri_cFM12daNpc_Kkri_cFP10v = .text:0x000017F8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Kkri_cFM12daNpc_Kkri_cFPCvPvPv_i = .text:0x000017F8; // type:function size:0xA8 scope:global align:4 cutConversationAboutSoup__12daNpc_Kkri_cFi = .text:0x000018A0; // type:function size:0x138 scope:global align:4 cutYmLook__12daNpc_Kkri_cFi = .text:0x000019D8; // type:function size:0x114 scope:global align:4 sleep__12daNpc_Kkri_cFv = .text:0x00001AEC; // type:function size:0x1B0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kn/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kn/symbols.txt index 9627b7ea08..9d428736aa 100644 --- a/config/RZDE01_02/rels/d_a_npc_kn/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kn/symbols.txt @@ -114,7 +114,7 @@ teach04_selectAction__10daNpc_Kn_cFv = .text:0x00005A28; // type:function size:0 teach05_selectAction__10daNpc_Kn_cFv = .text:0x00005ADC; // type:function size:0x50 scope:global align:4 teach06_selectAction__10daNpc_Kn_cFv = .text:0x00005B2C; // type:function size:0x124 scope:global align:4 teach07_selectAction__10daNpc_Kn_cFv = .text:0x00005C50; // type:function size:0x124 scope:global align:4 -setAction__10daNpc_Kn_cFM10daNpc_Kn_cFP10v = .text:0x00005D74; // type:function size:0xA8 scope:global align:4 +setAction__10daNpc_Kn_cFM10daNpc_Kn_cFPCvPvPv_i = .text:0x00005D74; // type:function size:0xA8 scope:global align:4 wait__10daNpc_Kn_cFPv = .text:0x00005E1C; // type:function size:0x14C scope:global align:4 talk__10daNpc_Kn_cFPv = .text:0x00005F68; // type:function size:0x17C scope:global align:4 test__10daNpc_Kn_cFPv = .text:0x000060E4; // type:function size:0xC4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_knj/symbols.txt b/config/RZDE01_02/rels/d_a_npc_knj/symbols.txt index d68c241d09..7539017186 100644 --- a/config/RZDE01_02/rels/d_a_npc_knj/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_knj/symbols.txt @@ -20,7 +20,7 @@ drawDbgInfo__11daNpc_Knj_cFv = .text:0x00000C04; // type:function size:0x8 scope afterSetMotionAnm__11daNpc_Knj_cFiifi = .text:0x00000C0C; // type:function size:0x1DC scope:global align:4 drawGhost__11daNpc_Knj_cFv = .text:0x00000DE8; // type:function size:0x68 scope:global align:4 selectAction__11daNpc_Knj_cFv = .text:0x00000E50; // type:function size:0x40 scope:global align:4 -setAction__11daNpc_Knj_cFM11daNpc_Knj_cFP10v = .text:0x00000E90; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Knj_cFM11daNpc_Knj_cFPCvPvPv_i = .text:0x00000E90; // type:function size:0xA8 scope:global align:4 wait__11daNpc_Knj_cFPv = .text:0x00000F38; // type:function size:0x138 scope:global align:4 talk__11daNpc_Knj_cFPv = .text:0x00001070; // type:function size:0x13C scope:global align:4 daNpc_Knj_Create__FPv = .text:0x000011AC; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kolin/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kolin/symbols.txt index 7edef2f1ae..e722736c16 100644 --- a/config/RZDE01_02/rels/d_a_npc_kolin/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kolin/symbols.txt @@ -28,7 +28,7 @@ drawOtherMdl__13daNpc_Kolin_cFv = .text:0x00001B5C; // type:function size:0xD8 s changeAnm__13daNpc_Kolin_cFPiPi = .text:0x00001C34; // type:function size:0x28 scope:global align:4 changeBck__13daNpc_Kolin_cFPiPi = .text:0x00001C5C; // type:function size:0x4C scope:global align:4 selectAction__13daNpc_Kolin_cFv = .text:0x00001CA8; // type:function size:0xFC scope:global align:4 -setAction__13daNpc_Kolin_cFM13daNpc_Kolin_cFP10v = .text:0x00001DA4; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_Kolin_cFM13daNpc_Kolin_cFPCvPvPv_i = .text:0x00001DA4; // type:function size:0xA8 scope:global align:4 calcFollowSpeedAndAngle__13daNpc_Kolin_cFP10fopAc_ac_cii = .text:0x00001E4C; // type:function size:0x1BC scope:global align:4 followPlayer__13daNpc_Kolin_cFi = .text:0x00002008; // type:function size:0x340 scope:global align:4 lookup__13daNpc_Kolin_cFUc = .text:0x00002348; // type:function size:0x88 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kolinb/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kolinb/symbols.txt index 3beb3f7e29..0a25118e20 100644 --- a/config/RZDE01_02/rels/d_a_npc_kolinb/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kolinb/symbols.txt @@ -23,7 +23,7 @@ setAttnPos__14daNpc_Kolinb_cFv = .text:0x00000FC0; // type:function size:0x14C s setCollision__14daNpc_Kolinb_cFv = .text:0x0000110C; // type:function size:0x50 scope:global align:4 drawDbgInfo__14daNpc_Kolinb_cFv = .text:0x0000115C; // type:function size:0x8 scope:global align:4 selectAction__14daNpc_Kolinb_cFv = .text:0x00001164; // type:function size:0x40 scope:global align:4 -setAction__14daNpc_Kolinb_cFM14daNpc_Kolinb_cFP10v = .text:0x000011A4; // type:function size:0xA8 scope:global align:4 +setAction__14daNpc_Kolinb_cFM14daNpc_Kolinb_cFPCvPvPv_i = .text:0x000011A4; // type:function size:0xA8 scope:global align:4 cutConversationInHotel__14daNpc_Kolinb_cFi = .text:0x0000124C; // type:function size:0x88 scope:global align:4 cutConversationAboutDeathMt__14daNpc_Kolinb_cFi = .text:0x000012D4; // type:function size:0x1EC scope:global align:4 cutConversationAboutGoron__14daNpc_Kolinb_cFi = .text:0x000014C0; // type:function size:0x1EC scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_kyury/symbols.txt b/config/RZDE01_02/rels/d_a_npc_kyury/symbols.txt index 5dc6ee188d..7842688ffc 100644 --- a/config/RZDE01_02/rels/d_a_npc_kyury/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_kyury/symbols.txt @@ -26,7 +26,7 @@ setCollision__13daNpc_Kyury_cFv = .text:0x000014BC; // type:function size:0x184 drawDbgInfo__13daNpc_Kyury_cFv = .text:0x00001640; // type:function size:0x8 scope:global align:4 drawOtherMdl__13daNpc_Kyury_cFv = .text:0x00001648; // type:function size:0x104 scope:global align:4 selectAction__13daNpc_Kyury_cFv = .text:0x0000174C; // type:function size:0x40 scope:global align:4 -setAction__13daNpc_Kyury_cFM13daNpc_Kyury_cFP10v = .text:0x0000178C; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_Kyury_cFM13daNpc_Kyury_cFPCvPvPv_i = .text:0x0000178C; // type:function size:0xA8 scope:global align:4 cutConversation__13daNpc_Kyury_cFi = .text:0x00001834; // type:function size:0x330 scope:global align:4 wait__13daNpc_Kyury_cFPv = .text:0x00001B64; // type:function size:0x340 scope:global align:4 talk__13daNpc_Kyury_cFPv = .text:0x00001EA4; // type:function size:0x194 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_len/symbols.txt b/config/RZDE01_02/rels/d_a_npc_len/symbols.txt index 9c26653848..b97ca15037 100644 --- a/config/RZDE01_02/rels/d_a_npc_len/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_len/symbols.txt @@ -25,7 +25,7 @@ setAttnPos__11daNpc_Len_cFv = .text:0x00001650; // type:function size:0x2E0 scop setCollision__11daNpc_Len_cFv = .text:0x00001930; // type:function size:0x160 scope:global align:4 drawDbgInfo__11daNpc_Len_cFv = .text:0x00001A90; // type:function size:0x8 scope:global align:4 selectAction__11daNpc_Len_cFv = .text:0x00001A98; // type:function size:0x70 scope:global align:4 -setAction__11daNpc_Len_cFM11daNpc_Len_cFP10v = .text:0x00001B08; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Len_cFM11daNpc_Len_cFPCvPvPv_i = .text:0x00001B08; // type:function size:0xA8 scope:global align:4 checkStartDemo13StbEvt__11daNpc_Len_cFP10fopAc_ac_cfffffff = .text:0x00001BB0; // type:function size:0xD8 scope:global align:4 cutConversationInHotel__11daNpc_Len_cFi = .text:0x00001C88; // type:function size:0x3D0 scope:global align:4 cutHurry__11daNpc_Len_cFi = .text:0x00002058; // type:function size:0x1E0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_lud/symbols.txt b/config/RZDE01_02/rels/d_a_npc_lud/symbols.txt index 7a3e672bc0..c2065b7b63 100644 --- a/config/RZDE01_02/rels/d_a_npc_lud/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_lud/symbols.txt @@ -28,7 +28,7 @@ drawOtherMdl__11daNpc_Lud_cFv = .text:0x00001CEC; // type:function size:0x184 sc setBowlAnm__11daNpc_Lud_cFiif = .text:0x00001E70; // type:function size:0xD0 scope:global align:4 afterSetMotionAnm__11daNpc_Lud_cFiifi = .text:0x00001F40; // type:function size:0x18 scope:global align:4 selectAction__11daNpc_Lud_cFv = .text:0x00001F58; // type:function size:0xD0 scope:global align:4 -setAction__11daNpc_Lud_cFM11daNpc_Lud_cFP10v = .text:0x00002028; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Lud_cFM11daNpc_Lud_cFPCvPvPv_i = .text:0x00002028; // type:function size:0xA8 scope:global align:4 mop__11daNpc_Lud_cFii = .text:0x000020D0; // type:function size:0xFC scope:global align:4 cutHurry__11daNpc_Lud_cFi = .text:0x000021CC; // type:function size:0xF0 scope:global align:4 cutConversationInHotel__11daNpc_Lud_cFi = .text:0x000022BC; // type:function size:0x2A0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_maro/symbols.txt b/config/RZDE01_02/rels/d_a_npc_maro/symbols.txt index 74ed847606..b07651cc13 100644 --- a/config/RZDE01_02/rels/d_a_npc_maro/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_maro/symbols.txt @@ -34,7 +34,7 @@ drawOtherMdl__12daNpc_Maro_cFv = .text:0x000023FC; // type:function size:0x64 sc getFaceMotionAnm__12daNpc_Maro_cF26daNpcT_faceMotionAnmData_c = .text:0x00002460; // type:function size:0x8C scope:global align:4 getMotionAnm__12daNpc_Maro_cF22daNpcT_motionAnmData_c = .text:0x000024EC; // type:function size:0x8C scope:global align:4 selectAction__12daNpc_Maro_cFv = .text:0x00002578; // type:function size:0x128 scope:global align:4 -setAction__12daNpc_Maro_cFM12daNpc_Maro_cFP10v = .text:0x000026A0; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Maro_cFM12daNpc_Maro_cFPCvPvPv_i = .text:0x000026A0; // type:function size:0xA8 scope:global align:4 cutConversationAboutPachinko__12daNpc_Maro_cFi = .text:0x00002748; // type:function size:0x148 scope:global align:4 cutConversationAboutWoodSwd__12daNpc_Maro_cFi = .text:0x00002890; // type:function size:0x150 scope:global align:4 cutSwdTutorial__12daNpc_Maro_cFi = .text:0x000029E0; // type:function size:0x200 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_midp/symbols.txt b/config/RZDE01_02/rels/d_a_npc_midp/symbols.txt index c4141c6fa7..9db1ef2e92 100644 --- a/config/RZDE01_02/rels/d_a_npc_midp/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_midp/symbols.txt @@ -25,7 +25,7 @@ setCollision__12daNpc_midP_cFv = .text:0x00001264; // type:function size:0x108 s drawDbgInfo__12daNpc_midP_cFv = .text:0x0000136C; // type:function size:0x8 scope:global align:4 drawGhost__12daNpc_midP_cFv = .text:0x00001374; // type:function size:0x68 scope:global align:4 selectAction__12daNpc_midP_cFv = .text:0x000013DC; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_midP_cFM12daNpc_midP_cFP10v = .text:0x0000141C; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_midP_cFM12daNpc_midP_cFPCvPvPv_i = .text:0x0000141C; // type:function size:0xA8 scope:global align:4 wait__12daNpc_midP_cFPv = .text:0x000014C4; // type:function size:0x1B8 scope:global align:4 talk__12daNpc_midP_cFPv = .text:0x0000167C; // type:function size:0x1A0 scope:global align:4 daNpc_midP_Create__FPv = .text:0x0000181C; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_moi/symbols.txt b/config/RZDE01_02/rels/d_a_npc_moi/symbols.txt index 0ab0a9c884..bfdc7d9928 100644 --- a/config/RZDE01_02/rels/d_a_npc_moi/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_moi/symbols.txt @@ -32,7 +32,7 @@ changeBck__11daNpc_Moi_cFPiPi = .text:0x000021B0; // type:function size:0x48 sco changeBtp__11daNpc_Moi_cFPiPi = .text:0x000021F8; // type:function size:0xB8 scope:global align:4 changeBtk__11daNpc_Moi_cFPiPi = .text:0x000022B0; // type:function size:0x74 scope:global align:4 selectAction__11daNpc_Moi_cFv = .text:0x00002324; // type:function size:0x12C scope:global align:4 -setAction__11daNpc_Moi_cFM11daNpc_Moi_cFP10v = .text:0x00002450; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Moi_cFM11daNpc_Moi_cFPCvPvPv_i = .text:0x00002450; // type:function size:0xA8 scope:global align:4 setSSlash__11daNpc_Moi_cFi = .text:0x000024F8; // type:function size:0x1A4 scope:global align:4 chkPullOutSw__11daNpc_Moi_cFv = .text:0x0000269C; // type:function size:0x74 scope:global align:4 pullOutSw__11daNpc_Moi_cFv = .text:0x00002710; // type:function size:0x58 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_moir/symbols.txt b/config/RZDE01_02/rels/d_a_npc_moir/symbols.txt index 7819fe27fb..d962842e7c 100644 --- a/config/RZDE01_02/rels/d_a_npc_moir/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_moir/symbols.txt @@ -16,7 +16,7 @@ setExpressionAnm__11daNpcMoiR_cFib = .text:0x00000E50; // type:function size:0x2 setExpressionBtp__11daNpcMoiR_cFi = .text:0x000010B0; // type:function size:0xD8 scope:global align:4 setMotionAnm__11daNpcMoiR_cFif = .text:0x00001188; // type:function size:0x144 scope:global align:4 setWaitAction__11daNpcMoiR_cFv = .text:0x000012CC; // type:function size:0xC0 scope:global align:4 -setAction__11daNpcMoiR_cFM11daNpcMoiR_cFP10v = .text:0x0000138C; // type:function size:0xA8 scope:global align:4 +setAction__11daNpcMoiR_cFM11daNpcMoiR_cFPCvPvPv_b = .text:0x0000138C; // type:function size:0xA8 scope:global align:4 wait_type0__11daNpcMoiR_cFPv = .text:0x00001434; // type:function size:0x234 scope:global align:4 setExpression__11daNpcMoiR_cFif = .text:0x00001668; // type:function size:0x2C scope:global align:4 setMotion__11daNpcMoiR_cFifi = .text:0x00001694; // type:function size:0x44 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_myna2/symbols.txt b/config/RZDE01_02/rels/d_a_npc_myna2/symbols.txt index ab9dc05df9..b428fed40c 100644 --- a/config/RZDE01_02/rels/d_a_npc_myna2/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_myna2/symbols.txt @@ -24,7 +24,7 @@ isDelete__13daNpc_myna2_cFv = .text:0x0000109C; // type:function size:0xC0 scope reset__13daNpc_myna2_cFv = .text:0x0000115C; // type:function size:0x1AC scope:global align:4 __as__5csXyzFR11csXyz = .text:0x00001308; // type:label scope:global align:4 playMotion__13daNpc_myna2_cFv = .text:0x00001308; // type:function size:0x244 scope:global align:4 -setAction__13daNpc_myna2_cFM13daNpc_myna2_cFP10v = .text:0x0000154C; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_myna2_cFM13daNpc_myna2_cFPCvPvPv_i = .text:0x0000154C; // type:function size:0xA8 scope:global align:4 selectAction__13daNpc_myna2_cFv = .text:0x000015F4; // type:function size:0xD0 scope:global align:4 doNormalAction__13daNpc_myna2_cFi = .text:0x000016C4; // type:function size:0xE4 scope:global align:4 doEvent__13daNpc_myna2_cFv = .text:0x000017A8; // type:function size:0x32C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_pachi_besu/symbols.txt b/config/RZDE01_02/rels/d_a_npc_pachi_besu/symbols.txt index cb4b29bcd3..1affe1c23c 100644 --- a/config/RZDE01_02/rels/d_a_npc_pachi_besu/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_pachi_besu/symbols.txt @@ -26,7 +26,7 @@ setAttnPos__18daNpc_Pachi_Besu_cFv = .text:0x000012B8; // type:function size:0x2 setCollision__18daNpc_Pachi_Besu_cFv = .text:0x000014E4; // type:function size:0x134 scope:global align:4 drawDbgInfo__18daNpc_Pachi_Besu_cFv = .text:0x00001618; // type:function size:0x8 scope:global align:4 selectAction__18daNpc_Pachi_Besu_cFv = .text:0x00001620; // type:function size:0x70 scope:global align:4 -setAction__18daNpc_Pachi_Besu_cFM18daNpc_Pachi_Besu_cFP10v = .text:0x00001690; // type:function size:0xA8 scope:global align:4 +setAction__18daNpc_Pachi_Besu_cFM18daNpc_Pachi_Besu_cFPCvPvPv_i = .text:0x00001690; // type:function size:0xA8 scope:global align:4 wait__18daNpc_Pachi_Besu_cFPv = .text:0x00001738; // type:function size:0x1DC scope:global align:4 talk__18daNpc_Pachi_Besu_cFPv = .text:0x00001914; // type:function size:0x8C scope:global align:4 _turn_to_link__18daNpc_Pachi_Besu_cFs = .text:0x000019A0; // type:function size:0x5C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_pachi_maro/symbols.txt b/config/RZDE01_02/rels/d_a_npc_pachi_maro/symbols.txt index a2eef0bcd6..e83d999c48 100644 --- a/config/RZDE01_02/rels/d_a_npc_pachi_maro/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_pachi_maro/symbols.txt @@ -28,7 +28,7 @@ drawDbgInfo__18daNpc_Pachi_Maro_cFv = .text:0x00001520; // type:function size:0x getFaceMotionAnm__18daNpc_Pachi_Maro_cF26daNpcT_faceMotionAnmData_c = .text:0x00001528; // type:function size:0x8C scope:global align:4 getMotionAnm__18daNpc_Pachi_Maro_cF22daNpcT_motionAnmData_c = .text:0x000015B4; // type:function size:0x8C scope:global align:4 selectAction__18daNpc_Pachi_Maro_cFv = .text:0x00001640; // type:function size:0x70 scope:global align:4 -setAction__18daNpc_Pachi_Maro_cFM18daNpc_Pachi_Maro_cFP10v = .text:0x000016B0; // type:function size:0xA8 scope:global align:4 +setAction__18daNpc_Pachi_Maro_cFM18daNpc_Pachi_Maro_cFPCvPvPv_i = .text:0x000016B0; // type:function size:0xA8 scope:global align:4 wait__18daNpc_Pachi_Maro_cFPv = .text:0x00001758; // type:function size:0x1CC scope:global align:4 talk__18daNpc_Pachi_Maro_cFPv = .text:0x00001924; // type:function size:0x8C scope:global align:4 _turn_to_link__18daNpc_Pachi_Maro_cFs = .text:0x000019B0; // type:function size:0x5C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_pachi_taro/symbols.txt b/config/RZDE01_02/rels/d_a_npc_pachi_taro/symbols.txt index 3c31a50903..34204591c9 100644 --- a/config/RZDE01_02/rels/d_a_npc_pachi_taro/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_pachi_taro/symbols.txt @@ -30,7 +30,7 @@ setCollision__18daNpc_Pachi_Taro_cFv = .text:0x00001660; // type:function size:0 drawDbgInfo__18daNpc_Pachi_Taro_cFv = .text:0x00001768; // type:function size:0x8 scope:global align:4 drawOtherMdl__18daNpc_Pachi_Taro_cFv = .text:0x00001770; // type:function size:0x104 scope:global align:4 selectAction__18daNpc_Pachi_Taro_cFv = .text:0x00001874; // type:function size:0x70 scope:global align:4 -setAction__18daNpc_Pachi_Taro_cFM18daNpc_Pachi_Taro_cFP10v = .text:0x000018E4; // type:function size:0xA8 scope:global align:4 +setAction__18daNpc_Pachi_Taro_cFM18daNpc_Pachi_Taro_cFPCvPvPv_i = .text:0x000018E4; // type:function size:0xA8 scope:global align:4 wait__18daNpc_Pachi_Taro_cFPv = .text:0x0000198C; // type:function size:0x24C scope:global align:4 setMesPat__18daNpc_Pachi_Taro_cFv = .text:0x00001BD8; // type:function size:0xD0 scope:global align:4 _turn_to_link__18daNpc_Pachi_Taro_cFs = .text:0x00001CA8; // type:function size:0x5C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_post/symbols.txt b/config/RZDE01_02/rels/d_a_npc_post/symbols.txt index 8b80a88add..adbe8a7cf1 100644 --- a/config/RZDE01_02/rels/d_a_npc_post/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_post/symbols.txt @@ -29,7 +29,7 @@ drawOtherMdl__12daNpc_Post_cFv = .text:0x00001960; // type:function size:0x184 s setFlagAnm__12daNpc_Post_cFiif = .text:0x00001AE4; // type:function size:0xC4 scope:global align:4 afterSetMotionAnm__12daNpc_Post_cFiifi = .text:0x00001BA8; // type:function size:0x18 scope:global align:4 selectAction__12daNpc_Post_cFv = .text:0x00001BC0; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_Post_cFM12daNpc_Post_cFP10v = .text:0x00001C00; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Post_cFM12daNpc_Post_cFPCvPvPv_i = .text:0x00001C00; // type:function size:0xA8 scope:global align:4 chkPullOutLetter1__12daNpc_Post_cFv = .text:0x00001CA8; // type:function size:0x74 scope:global align:4 chkPullOutLetter2__12daNpc_Post_cFv = .text:0x00001D1C; // type:function size:0x74 scope:global align:4 pullOutLetter__12daNpc_Post_cFv = .text:0x00001D90; // type:function size:0xC0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_pouya/symbols.txt b/config/RZDE01_02/rels/d_a_npc_pouya/symbols.txt index 031d619893..f80bd78d65 100644 --- a/config/RZDE01_02/rels/d_a_npc_pouya/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_pouya/symbols.txt @@ -27,7 +27,7 @@ drawDbgInfo__13daNpc_Pouya_cFv = .text:0x000019D8; // type:function size:0x8 sco drawOtherMdl__13daNpc_Pouya_cFv = .text:0x000019E0; // type:function size:0xE8 scope:global align:4 afterSetMotionAnm__13daNpc_Pouya_cFiifi = .text:0x00001AC8; // type:function size:0x90 scope:global align:4 selectAction__13daNpc_Pouya_cFv = .text:0x00001B58; // type:function size:0x40 scope:global align:4 -setAction__13daNpc_Pouya_cFM13daNpc_Pouya_cFP10v = .text:0x00001B98; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_Pouya_cFM13daNpc_Pouya_cFPCvPvPv_i = .text:0x00001B98; // type:function size:0xA8 scope:global align:4 setPrtcls__13daNpc_Pouya_cFv = .text:0x00001C40; // type:function size:0x114 scope:global align:4 cutHaveFavorToAsk__13daNpc_Pouya_cFi = .text:0x00001D54; // type:function size:0x5D4 scope:global align:4 wait__13daNpc_Pouya_cFPv = .text:0x00002328; // type:function size:0x418 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_prayer/symbols.txt b/config/RZDE01_02/rels/d_a_npc_prayer/symbols.txt index b4699eeda3..e5ef6e4f21 100644 --- a/config/RZDE01_02/rels/d_a_npc_prayer/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_prayer/symbols.txt @@ -19,7 +19,7 @@ setMotion__11daNpcPray_cFifi = .text:0x00000CCC; // type:function size:0x48 scop drawDbgInfo__11daNpcPray_cFv = .text:0x00000D14; // type:function size:0x8 scope:global align:4 reset__11daNpcPray_cFv = .text:0x00000D1C; // type:function size:0x140 scope:global align:4 playMotion__11daNpcPray_cFv = .text:0x00000E5C; // type:function size:0x170 scope:global align:4 -setAction__11daNpcPray_cFM11daNpcPray_cFP10v = .text:0x00000FCC; // type:function size:0xA8 scope:global align:4 +setAction__11daNpcPray_cFM11daNpcPray_cFPCvPvPv_b = .text:0x00000FCC; // type:function size:0xA8 scope:global align:4 setLookMode__11daNpcPray_cFi = .text:0x00001074; // type:function size:0x24 scope:global align:4 lookat__11daNpcPray_cFv = .text:0x00001098; // type:function size:0x228 scope:global align:4 step__11daNpcPray_cFsi = .text:0x000012C0; // type:function size:0xD8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_raca/symbols.txt b/config/RZDE01_02/rels/d_a_npc_raca/symbols.txt index 8fa9173202..bf0d38d064 100644 --- a/config/RZDE01_02/rels/d_a_npc_raca/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_raca/symbols.txt @@ -26,7 +26,7 @@ setAttnPos__12daNpc_Raca_cFv = .text:0x00001148; // type:function size:0x218 sco setCollision__12daNpc_Raca_cFv = .text:0x00001360; // type:function size:0x144 scope:global align:4 drawDbgInfo__12daNpc_Raca_cFv = .text:0x000014A4; // type:function size:0x8 scope:global align:4 selectAction__12daNpc_Raca_cFv = .text:0x000014AC; // type:function size:0xFC scope:global align:4 -setAction__12daNpc_Raca_cFM12daNpc_Raca_cFP10v = .text:0x000015A8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Raca_cFM12daNpc_Raca_cFPCvPvPv_i = .text:0x000015A8; // type:function size:0xA8 scope:global align:4 wait__12daNpc_Raca_cFPv = .text:0x00001650; // type:function size:0x1F8 scope:global align:4 walk__12daNpc_Raca_cFPv = .text:0x00001848; // type:function size:0x1AC scope:global align:4 talk__12daNpc_Raca_cFPv = .text:0x000019F4; // type:function size:0x1B8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_rafrel/symbols.txt b/config/RZDE01_02/rels/d_a_npc_rafrel/symbols.txt index 15f3254910..7e9a3e4ae2 100644 --- a/config/RZDE01_02/rels/d_a_npc_rafrel/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_rafrel/symbols.txt @@ -16,7 +16,7 @@ setExpressionAnm__13daNpcRafrel_cFib = .text:0x00001004; // type:function size:0 setExpressionBtp__13daNpcRafrel_cFi = .text:0x00001210; // type:function size:0xD8 scope:global align:4 setMotionAnm__13daNpcRafrel_cFif = .text:0x000012E8; // type:function size:0x1B0 scope:global align:4 setWaitAction__13daNpcRafrel_cFv = .text:0x00001498; // type:function size:0xC0 scope:global align:4 -setAction__13daNpcRafrel_cFM13daNpcRafrel_cFP10v = .text:0x00001558; // type:function size:0xA8 scope:global align:4 +setAction__13daNpcRafrel_cFM13daNpcRafrel_cFPCvPvPv_b = .text:0x00001558; // type:function size:0xA8 scope:global align:4 isSneaking__13daNpcRafrel_cFv = .text:0x00001600; // type:function size:0x58 scope:global align:4 wait_type01__13daNpcRafrel_cFPv = .text:0x00001658; // type:function size:0x564 scope:global align:4 setExpression__13daNpcRafrel_cFif = .text:0x00001BBC; // type:function size:0x2C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_saru/symbols.txt b/config/RZDE01_02/rels/d_a_npc_saru/symbols.txt index 8fe54bbb57..5d30aa100e 100644 --- a/config/RZDE01_02/rels/d_a_npc_saru/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_saru/symbols.txt @@ -26,7 +26,7 @@ setCollision__12daNpc_Saru_cFv = .text:0x00001428; // type:function size:0x184 s drawDbgInfo__12daNpc_Saru_cFv = .text:0x000015AC; // type:function size:0x8 scope:global align:4 drawOtherMdl__12daNpc_Saru_cFv = .text:0x000015B4; // type:function size:0x104 scope:global align:4 selectAction__12daNpc_Saru_cFv = .text:0x000016B8; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_Saru_cFM12daNpc_Saru_cFP10v = .text:0x000016F8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Saru_cFM12daNpc_Saru_cFPCvPvPv_i = .text:0x000016F8; // type:function size:0xA8 scope:global align:4 setSe__12daNpc_Saru_cFv = .text:0x000017A0; // type:function size:0x54C scope:global align:4 cutFindMonkey__12daNpc_Saru_cFi = .text:0x00001CEC; // type:function size:0x1EC scope:global align:4 cutHelpMe__12daNpc_Saru_cFi = .text:0x00001ED8; // type:function size:0x198 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_seib/symbols.txt b/config/RZDE01_02/rels/d_a_npc_seib/symbols.txt index 418599ed0d..0674085b12 100644 --- a/config/RZDE01_02/rels/d_a_npc_seib/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_seib/symbols.txt @@ -19,7 +19,7 @@ setAttnPos__12daNpc_seiB_cFv = .text:0x00000BC8; // type:function size:0x44 scop drawDbgInfo__12daNpc_seiB_cFv = .text:0x00000C0C; // type:function size:0x8 scope:global align:4 afterSetMotionAnm__12daNpc_seiB_cFiifi = .text:0x00000C14; // type:function size:0x198 scope:global align:4 selectAction__12daNpc_seiB_cFv = .text:0x00000DAC; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_seiB_cFM12daNpc_seiB_cFP10v = .text:0x00000DEC; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_seiB_cFM12daNpc_seiB_cFPCvPvPv_i = .text:0x00000DEC; // type:function size:0xA8 scope:global align:4 ctrlWaitAnm__12daNpc_seiB_cFv = .text:0x00000E94; // type:function size:0x1E4 scope:global align:4 wait__12daNpc_seiB_cFPv = .text:0x00001078; // type:function size:0x2C scope:global align:4 talk__12daNpc_seiB_cFPv = .text:0x000010A4; // type:function size:0xA0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_seic/symbols.txt b/config/RZDE01_02/rels/d_a_npc_seic/symbols.txt index 1509fd852a..c57268f160 100644 --- a/config/RZDE01_02/rels/d_a_npc_seic/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_seic/symbols.txt @@ -19,7 +19,7 @@ setAttnPos__12daNpc_seiC_cFv = .text:0x00000BD4; // type:function size:0x44 scop drawDbgInfo__12daNpc_seiC_cFv = .text:0x00000C18; // type:function size:0x8 scope:global align:4 afterSetMotionAnm__12daNpc_seiC_cFiifi = .text:0x00000C20; // type:function size:0x198 scope:global align:4 selectAction__12daNpc_seiC_cFv = .text:0x00000DB8; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_seiC_cFM12daNpc_seiC_cFP10v = .text:0x00000DF8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_seiC_cFM12daNpc_seiC_cFPCvPvPv_i = .text:0x00000DF8; // type:function size:0xA8 scope:global align:4 wait__12daNpc_seiC_cFPv = .text:0x00000EA0; // type:function size:0x2C scope:global align:4 talk__12daNpc_seiC_cFPv = .text:0x00000ECC; // type:function size:0xA0 scope:global align:4 daNpc_seiC_Create__FPv = .text:0x00000F6C; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_seid/symbols.txt b/config/RZDE01_02/rels/d_a_npc_seid/symbols.txt index c095506147..44ae41fe65 100644 --- a/config/RZDE01_02/rels/d_a_npc_seid/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_seid/symbols.txt @@ -19,7 +19,7 @@ setAttnPos__12daNpc_seiD_cFv = .text:0x00000BD4; // type:function size:0x44 scop drawDbgInfo__12daNpc_seiD_cFv = .text:0x00000C18; // type:function size:0x8 scope:global align:4 afterSetMotionAnm__12daNpc_seiD_cFiifi = .text:0x00000C20; // type:function size:0x198 scope:global align:4 selectAction__12daNpc_seiD_cFv = .text:0x00000DB8; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_seiD_cFM12daNpc_seiD_cFP10v = .text:0x00000DF8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_seiD_cFM12daNpc_seiD_cFPCvPvPv_i = .text:0x00000DF8; // type:function size:0xA8 scope:global align:4 wait__12daNpc_seiD_cFPv = .text:0x00000EA0; // type:function size:0x2C scope:global align:4 talk__12daNpc_seiD_cFPv = .text:0x00000ECC; // type:function size:0xA0 scope:global align:4 daNpc_seiD_Create__FPv = .text:0x00000F6C; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_seira/symbols.txt b/config/RZDE01_02/rels/d_a_npc_seira/symbols.txt index a477d54258..07f26033ab 100644 --- a/config/RZDE01_02/rels/d_a_npc_seira/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_seira/symbols.txt @@ -34,7 +34,7 @@ changeBck__13daNpc_Seira_cFPiPi = .text:0x00001D34; // type:function size:0xAC s changeBtp__13daNpc_Seira_cFPiPi = .text:0x00001DE0; // type:function size:0x98 scope:global align:4 changeBtk__13daNpc_Seira_cFPiPi = .text:0x00001E78; // type:function size:0x2C scope:global align:4 selectAction__13daNpc_Seira_cFv = .text:0x00001EA4; // type:function size:0x1AC scope:global align:4 -setAction__13daNpc_Seira_cFM13daNpc_Seira_cFP10v = .text:0x00002050; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_Seira_cFM13daNpc_Seira_cFPCvPvPv_i = .text:0x00002050; // type:function size:0xA8 scope:global align:4 cutConversationAboutSaru__13daNpc_Seira_cFi = .text:0x000020F8; // type:function size:0x238 scope:global align:4 checkStageIsSeirasShop__13daNpc_Seira_cFv = .text:0x00002330; // type:function size:0x74 scope:global align:4 getShopItemType__13daNpc_Seira_cFv = .text:0x000023A4; // type:function size:0x40 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_seira2/symbols.txt b/config/RZDE01_02/rels/d_a_npc_seira2/symbols.txt index 84aa90fc9b..faa6a47a80 100644 --- a/config/RZDE01_02/rels/d_a_npc_seira2/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_seira2/symbols.txt @@ -28,7 +28,7 @@ drawOtherMdl__14daNpc_Seira2_cFv = .text:0x00001860; // type:function size:0xDC setBottleAnm__14daNpc_Seira2_cFiifb = .text:0x0000193C; // type:function size:0xE0 scope:global align:4 afterSetMotionAnm__14daNpc_Seira2_cFiifi = .text:0x00001A1C; // type:function size:0x1C scope:global align:4 selectAction__14daNpc_Seira2_cFv = .text:0x00001A38; // type:function size:0x140 scope:global align:4 -setAction__14daNpc_Seira2_cFM14daNpc_Seira2_cFP10v = .text:0x00001B78; // type:function size:0xA8 scope:global align:4 +setAction__14daNpc_Seira2_cFM14daNpc_Seira2_cFPCvPvPv_i = .text:0x00001B78; // type:function size:0xA8 scope:global align:4 checkStageIsSeira2sShop__14daNpc_Seira2_cFv = .text:0x00001C20; // type:function size:0x74 scope:global align:4 wait__14daNpc_Seira2_cFPv = .text:0x00001C94; // type:function size:0x138 scope:global align:4 sit__14daNpc_Seira2_cFPv = .text:0x00001DCC; // type:function size:0x1A8 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_seirei/symbols.txt b/config/RZDE01_02/rels/d_a_npc_seirei/symbols.txt index fe6f698eab..c3f08f7969 100644 --- a/config/RZDE01_02/rels/d_a_npc_seirei/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_seirei/symbols.txt @@ -20,7 +20,7 @@ setAttnPos__14daNpc_Seirei_cFv = .text:0x00000CF4; // type:function size:0x110 s drawDbgInfo__14daNpc_Seirei_cFv = .text:0x00000E04; // type:function size:0x8 scope:global align:4 afterSetMotionAnm__14daNpc_Seirei_cFiifi = .text:0x00000E0C; // type:function size:0x198 scope:global align:4 selectAction__14daNpc_Seirei_cFv = .text:0x00000FA4; // type:function size:0x40 scope:global align:4 -setAction__14daNpc_Seirei_cFM14daNpc_Seirei_cFP10v = .text:0x00000FE4; // type:function size:0xA8 scope:global align:4 +setAction__14daNpc_Seirei_cFM14daNpc_Seirei_cFPCvPvPv_i = .text:0x00000FE4; // type:function size:0xA8 scope:global align:4 ctrlWaitAnm__14daNpc_Seirei_cFv = .text:0x0000108C; // type:function size:0xC0 scope:global align:4 setPrtcls__14daNpc_Seirei_cFv = .text:0x0000114C; // type:function size:0x214 scope:global align:4 chkFirstMeeting__14daNpc_Seirei_cFv = .text:0x00001360; // type:function size:0x84 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_shad/symbols.txt b/config/RZDE01_02/rels/d_a_npc_shad/symbols.txt index b40875d4ab..8d8264bbdc 100644 --- a/config/RZDE01_02/rels/d_a_npc_shad/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_shad/symbols.txt @@ -16,7 +16,7 @@ setExpressionAnm__11daNpcShad_cFib = .text:0x000011C4; // type:function size:0x2 setExpressionBtp__11daNpcShad_cFi = .text:0x0000145C; // type:function size:0xD8 scope:global align:4 setMotionAnm__11daNpcShad_cFif = .text:0x00001534; // type:function size:0x188 scope:global align:4 setWaitAction__11daNpcShad_cFv = .text:0x000016BC; // type:function size:0xC0 scope:global align:4 -setAction__11daNpcShad_cFM11daNpcShad_cFP10v = .text:0x0000177C; // type:function size:0xA8 scope:global align:4 +setAction__11daNpcShad_cFM11daNpcShad_cFPCvPvPv_b = .text:0x0000177C; // type:function size:0xA8 scope:global align:4 getPathPoint__11daNpcShad_cFUciP3Vec = .text:0x00001824; // type:function size:0x84 scope:global align:4 isSneaking__11daNpcShad_cFv = .text:0x000018A8; // type:function size:0x6C scope:global align:4 wait_type0__11daNpcShad_cFPv = .text:0x00001914; // type:function size:0x324 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_shaman/symbols.txt b/config/RZDE01_02/rels/d_a_npc_shaman/symbols.txt index 50660c1358..97c0ebea75 100644 --- a/config/RZDE01_02/rels/d_a_npc_shaman/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_shaman/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__11daNpc_Sha_cFv = .text:0x00001088; // type:function size:0x2D8 scop setCollision__11daNpc_Sha_cFv = .text:0x00001360; // type:function size:0x160 scope:global align:4 drawDbgInfo__11daNpc_Sha_cFv = .text:0x000014C0; // type:function size:0x8 scope:global align:4 selectAction__11daNpc_Sha_cFv = .text:0x000014C8; // type:function size:0x40 scope:global align:4 -setAction__11daNpc_Sha_cFM11daNpc_Sha_cFP10v = .text:0x00001508; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Sha_cFM11daNpc_Sha_cFPCvPvPv_i = .text:0x00001508; // type:function size:0xA8 scope:global align:4 getSceneChangeNoTableIx__11daNpc_Sha_cFv = .text:0x000015B0; // type:function size:0x32C scope:global align:4 setTempBit__11daNpc_Sha_cFi = .text:0x000018DC; // type:function size:0xA8 scope:global align:4 cutPerformAugury__11daNpc_Sha_cFi = .text:0x00001984; // type:function size:0x454 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_shoe/symbols.txt b/config/RZDE01_02/rels/d_a_npc_shoe/symbols.txt index 64cee68f35..0e22fefa8e 100644 --- a/config/RZDE01_02/rels/d_a_npc_shoe/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_shoe/symbols.txt @@ -14,7 +14,7 @@ ctrlJoint__11daNpcShoe_cFP8J3DJointP8J3DModel = .text:0x00000CA0; // type:functi createHeapCallBack__11daNpcShoe_cFP10fopAc_ac_c = .text:0x00000DE4; // type:function size:0x4 scope:global align:4 ctrlJointCallBack__11daNpcShoe_cFP8J3DJointi = .text:0x00000DE8; // type:function size:0x48 scope:global align:4 setMotion__11daNpcShoe_cFifi = .text:0x00000E30; // type:function size:0x48 scope:global align:4 -setAction__11daNpcShoe_cFM11daNpcShoe_cFP10v = .text:0x00000E78; // type:function size:0xA8 scope:global align:4 +setAction__11daNpcShoe_cFM11daNpcShoe_cFPCvPvPv_b = .text:0x00000E78; // type:function size:0xA8 scope:global align:4 wait__11daNpcShoe_cFPv = .text:0x00000F20; // type:function size:0x2EC scope:global align:4 setLookMode__11daNpcShoe_cFi = .text:0x0000120C; // type:function size:0x24 scope:global align:4 fear__11daNpcShoe_cFPv = .text:0x00001230; // type:function size:0xB0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_shop0/symbols.txt b/config/RZDE01_02/rels/d_a_npc_shop0/symbols.txt index b33df63e3b..9369771760 100644 --- a/config/RZDE01_02/rels/d_a_npc_shop0/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_shop0/symbols.txt @@ -19,7 +19,7 @@ setMtx__13daNpc_Shop0_cFv = .text:0x00000988; // type:function size:0x90 scope:g __as__4cXyzFR10cXyz = .text:0x00000A18; // type:label scope:global align:4 setRoomInf__13daNpc_Shop0_cFv = .text:0x00000A18; // type:function size:0xA0 scope:global align:4 cut_alert__13daNpc_Shop0_cFii = .text:0x00000AB8; // type:function size:0x60 scope:global align:4 -setProcess__13daNpc_Shop0_cFM13daNpc_Shop0_cFP10v = .text:0x00000B18; // type:function size:0x114 scope:global align:4 +setProcess__13daNpc_Shop0_cFM13daNpc_Shop0_cFPCvPvPv_iPvi = .text:0x00000B18; // type:function size:0x114 scope:global align:4 wait__13daNpc_Shop0_cFPv = .text:0x00000C2C; // type:function size:0x80 scope:global align:4 talk__13daNpc_Shop0_cFPv = .text:0x00000CAC; // type:function size:0xD8 scope:global align:4 daNpc_Shop0_Create__FPv = .text:0x00000D84; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_sola/symbols.txt b/config/RZDE01_02/rels/d_a_npc_sola/symbols.txt index d82576e9d7..b07262b404 100644 --- a/config/RZDE01_02/rels/d_a_npc_sola/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_sola/symbols.txt @@ -22,7 +22,7 @@ setCollision__12daNpc_solA_cFv = .text:0x00000E88; // type:function size:0xD4 sc drawDbgInfo__12daNpc_solA_cFv = .text:0x00000F5C; // type:function size:0x8 scope:global align:4 drawOtherMdl__12daNpc_solA_cFv = .text:0x00000F64; // type:function size:0x4 scope:global align:4 selectAction__12daNpc_solA_cFv = .text:0x00000F68; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_solA_cFM12daNpc_solA_cFP10v = .text:0x00000FA8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_solA_cFM12daNpc_solA_cFPCvPvPv_i = .text:0x00000FA8; // type:function size:0xA8 scope:global align:4 wait__12daNpc_solA_cFPv = .text:0x00001050; // type:function size:0x10C scope:global align:4 talk__12daNpc_solA_cFPv = .text:0x0000115C; // type:function size:0x148 scope:global align:4 daNpc_solA_Create__FPv = .text:0x000012A4; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_soldierA/symbols.txt b/config/RZDE01_02/rels/d_a_npc_soldierA/symbols.txt index 78d9ebf5fd..044e6bc440 100644 --- a/config/RZDE01_02/rels/d_a_npc_soldierA/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_soldierA/symbols.txt @@ -25,7 +25,7 @@ isDelete__16daNpc_SoldierA_cFv = .text:0x000013F0; // type:function size:0x10 sc reset__16daNpc_SoldierA_cFv = .text:0x00001400; // type:function size:0x138 scope:global align:4 __as__5csXyzFR11csXyz = .text:0x00001538; // type:label scope:global align:4 playMotion__16daNpc_SoldierA_cFv = .text:0x00001538; // type:function size:0x1E4 scope:global align:4 -setAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFP10v = .text:0x0000171C; // type:function size:0xA8 scope:global align:4 +setAction__16daNpc_SoldierA_cFM16daNpc_SoldierA_cFPCvPvPv_i = .text:0x0000171C; // type:function size:0xA8 scope:global align:4 selectAction__16daNpc_SoldierA_cFv = .text:0x000017C4; // type:function size:0x40 scope:global align:4 doNormalAction__16daNpc_SoldierA_cFi = .text:0x00001804; // type:function size:0x108 scope:global align:4 doEvent__16daNpc_SoldierA_cFv = .text:0x0000190C; // type:function size:0x2D0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_soldierB/symbols.txt b/config/RZDE01_02/rels/d_a_npc_soldierB/symbols.txt index 3653fc8ecb..66fabf66eb 100644 --- a/config/RZDE01_02/rels/d_a_npc_soldierB/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_soldierB/symbols.txt @@ -25,7 +25,7 @@ isDelete__16daNpc_SoldierB_cFv = .text:0x000013A0; // type:function size:0x10 sc reset__16daNpc_SoldierB_cFv = .text:0x000013B0; // type:function size:0x12C scope:global align:4 __as__5csXyzFR11csXyz = .text:0x000014DC; // type:label scope:global align:4 playMotion__16daNpc_SoldierB_cFv = .text:0x000014DC; // type:function size:0x10C scope:global align:4 -setAction__16daNpc_SoldierB_cFM16daNpc_SoldierB_cFP10v = .text:0x000015E8; // type:function size:0xA8 scope:global align:4 +setAction__16daNpc_SoldierB_cFM16daNpc_SoldierB_cFPCvPvPv_i = .text:0x000015E8; // type:function size:0xA8 scope:global align:4 selectAction__16daNpc_SoldierB_cFv = .text:0x00001690; // type:function size:0x40 scope:global align:4 doNormalAction__16daNpc_SoldierB_cFi = .text:0x000016D0; // type:function size:0x108 scope:global align:4 doEvent__16daNpc_SoldierB_cFv = .text:0x000017D8; // type:function size:0x27C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_taro/symbols.txt b/config/RZDE01_02/rels/d_a_npc_taro/symbols.txt index a666928cbd..c0739ea27d 100644 --- a/config/RZDE01_02/rels/d_a_npc_taro/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_taro/symbols.txt @@ -31,7 +31,7 @@ drawDbgInfo__12daNpc_Taro_cFv = .text:0x00002434; // type:function size:0x8 scop drawOtherMdl__12daNpc_Taro_cFv = .text:0x0000243C; // type:function size:0x104 scope:global align:4 getFaceMotionAnm__12daNpc_Taro_cF26daNpcT_faceMotionAnmData_c = .text:0x00002540; // type:function size:0x98 scope:global align:4 selectAction__12daNpc_Taro_cFv = .text:0x000025D8; // type:function size:0xFC scope:global align:4 -setAction__12daNpc_Taro_cFM12daNpc_Taro_cFP10v = .text:0x000026D4; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Taro_cFM12daNpc_Taro_cFPCvPvPv_i = .text:0x000026D4; // type:function size:0xA8 scope:global align:4 setSwingVoice__12daNpc_Taro_cFv = .text:0x0000277C; // type:function size:0x130 scope:global align:4 cutConversationAboutPachinko__12daNpc_Taro_cFi = .text:0x000028AC; // type:function size:0x180 scope:global align:4 cutConversationAboutWoodSwd__12daNpc_Taro_cFi = .text:0x00002A2C; // type:function size:0x150 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_the/symbols.txt b/config/RZDE01_02/rels/d_a_npc_the/symbols.txt index 15a61cfee7..d33b5f7986 100644 --- a/config/RZDE01_02/rels/d_a_npc_the/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_the/symbols.txt @@ -30,7 +30,7 @@ ctrlBtk__10daNpcThe_cFv = .text:0x00001ACC; // type:function size:0xD8 scope:glo main__10daNpcThe_cFv = .text:0x00001BA4; // type:function size:0xDB4 scope:global align:4 talk__10daNpcThe_cFPv = .text:0x00002958; // type:function size:0x3E0 scope:global align:4 isSneaking__10daNpcThe_cFv = .text:0x00002D38; // type:function size:0x6C scope:global align:4 -setAction__10daNpcThe_cFM10daNpcThe_cFP10v = .text:0x00002DA4; // type:function size:0xA8 scope:global align:4 +setAction__10daNpcThe_cFM10daNpcThe_cFPCvPvPv_i = .text:0x00002DA4; // type:function size:0xA8 scope:global align:4 setParam__10daNpcThe_cFv = .text:0x00002E4C; // type:function size:0x1F4 scope:global align:4 waitTW__10daNpcThe_cFPv = .text:0x00003040; // type:function size:0x140 scope:global align:4 wait__10daNpcThe_cFPv = .text:0x00003180; // type:function size:0x34C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_theB/symbols.txt b/config/RZDE01_02/rels/d_a_npc_theB/symbols.txt index 15bc3a86d4..fa77b33267 100644 --- a/config/RZDE01_02/rels/d_a_npc_theB/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_theB/symbols.txt @@ -24,7 +24,7 @@ setExpressionAnm__11daNpcTheB_cFib = .text:0x00001B98; // type:function size:0x1 setExpressionBtp__11daNpcTheB_cFi = .text:0x00001D88; // type:function size:0xF0 scope:global align:4 setMotionAnm__11daNpcTheB_cFif = .text:0x00001E78; // type:function size:0x1D8 scope:global align:4 drawDbgInfo__11daNpcTheB_cFv = .text:0x00002050; // type:function size:0x8 scope:global align:4 -setAction__11daNpcTheB_cFM11daNpcTheB_cFP10v = .text:0x00002058; // type:function size:0xA4 scope:global align:4 +setAction__11daNpcTheB_cFM11daNpcTheB_cFPCvPvPv_i = .text:0x00002058; // type:function size:0xA4 scope:global align:4 wait__11daNpcTheB_cFPv = .text:0x000020FC; // type:function size:0x530 scope:global align:4 setExpression__11daNpcTheB_cFif = .text:0x0000262C; // type:function size:0x2C scope:global align:4 setMotion__11daNpcTheB_cFifi = .text:0x00002658; // type:function size:0x44 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_tkc/symbols.txt b/config/RZDE01_02/rels/d_a_npc_tkc/symbols.txt index b509b3f68c..93e7584c32 100644 --- a/config/RZDE01_02/rels/d_a_npc_tkc/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_tkc/symbols.txt @@ -20,7 +20,7 @@ setMtx__10daNpcTkc_cFv = .text:0x00000D98; // type:function size:0x94 scope:glob setExpressionAnm__10daNpcTkc_cFib = .text:0x00000E2C; // type:function size:0x148 scope:global align:4 setExpressionBtp__10daNpcTkc_cFi = .text:0x00000F74; // type:function size:0xC8 scope:global align:4 setMotionAnm__10daNpcTkc_cFif = .text:0x0000103C; // type:function size:0x130 scope:global align:4 -setAction__10daNpcTkc_cFM10daNpcTkc_cFP10v = .text:0x0000116C; // type:function size:0xA0 scope:global align:4 +setAction__10daNpcTkc_cFM10daNpcTkc_cFPCvPv_v = .text:0x0000116C; // type:function size:0xA0 scope:global align:4 wait__10daNpcTkc_cFv = .text:0x0000120C; // type:function size:0x1B8 scope:global align:4 setLookMode__10daNpcTkc_cFi = .text:0x000013C4; // type:function size:0x24 scope:global align:4 searchPlayer__10daNpcTkc_cFv = .text:0x000013E8; // type:function size:0xA0 scope:global align:4 @@ -66,7 +66,7 @@ m__16daNpcTkc_Param_c = .rodata:0x00000000; // type:object size:0xA4 scope:globa @102147 = .rodata:0x000000BC; // type:object size:0x4 scope:local align:4 @102148 = .rodata:0x000000C0; // type:object size:0x4 scope:local align:4 @102149 = .rodata:0x000000C4; // type:object size:0x4 scope:local align:4 data:float -@LOCAL@daNpcTkc_c::reset(void)@m_cameraItemNum = .rodata:0x000000C8; // type:object size:0x4 scope:global align:4 +m_cameraItemNum$localstatic3$reset__10daNpcTkc_cFv = .rodata:0x000000C8; // type:object size:0x4 scope:local align:4 @98192 = .rodata:0x000000CC; // type:object size:0xC scope:local align:4 @98219 = .rodata:0x000000D8; // type:object size:0xC scope:local align:4 @102500 = .rodata:0x000000E8; // type:object size:0x8 scope:local align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_tkj/symbols.txt b/config/RZDE01_02/rels/d_a_npc_tkj/symbols.txt index 2d0c4ca2f0..dd58389883 100644 --- a/config/RZDE01_02/rels/d_a_npc_tkj/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_tkj/symbols.txt @@ -17,7 +17,7 @@ setAttnPos__10daNpcTkj_cFv = .text:0x00000C94; // type:function size:0x228 scope setCollision__10daNpcTkj_cFv = .text:0x00000EBC; // type:function size:0xD4 scope:global align:4 drawDbgInfo__10daNpcTkj_cFv = .text:0x00000F90; // type:function size:0x8 scope:global align:4 selectAction__10daNpcTkj_cFv = .text:0x00000F98; // type:function size:0x40 scope:global align:4 -setAction__10daNpcTkj_cFM10daNpcTkj_cFP10v = .text:0x00000FD8; // type:function size:0xA8 scope:global align:4 +setAction__10daNpcTkj_cFM10daNpcTkj_cFPCvPvPv_i = .text:0x00000FD8; // type:function size:0xA8 scope:global align:4 wait__10daNpcTkj_cFPv = .text:0x00001080; // type:function size:0x144 scope:global align:4 talk__10daNpcTkj_cFPv = .text:0x000011C4; // type:function size:0x1D0 scope:global align:4 cutLv7Start__10daNpcTkj_cFi = .text:0x00001394; // type:function size:0x30C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_tks/symbols.txt b/config/RZDE01_02/rels/d_a_npc_tks/symbols.txt index 1c60a4ab7b..3ca103ab7a 100644 --- a/config/RZDE01_02/rels/d_a_npc_tks/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_tks/symbols.txt @@ -16,7 +16,7 @@ setMtx__10daNpcTks_cFv = .text:0x000013AC; // type:function size:0xF8 scope:glob setExpressionAnm__10daNpcTks_cFib = .text:0x000014A4; // type:function size:0x148 scope:global align:4 setExpressionBtp__10daNpcTks_cFi = .text:0x000015EC; // type:function size:0xC8 scope:global align:4 setMotion__10daNpcTks_cFifi = .text:0x000016B4; // type:function size:0x44 scope:global align:4 -setAction__10daNpcTks_cFM10daNpcTks_cFP10v = .text:0x000016F8; // type:function size:0xA0 scope:global align:4 +setAction__10daNpcTks_cFM10daNpcTks_cFPCvPv_v = .text:0x000016F8; // type:function size:0xA0 scope:global align:4 wait__10daNpcTks_cFv = .text:0x00001798; // type:function size:0x10C scope:global align:4 setMotionAnm__10daNpcTks_cFif = .text:0x000018A4; // type:function size:0x1D8 scope:global align:4 setTsuboMotionAnm__10daNpcTks_cFif = .text:0x00001A7C; // type:function size:0xB0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_toby/symbols.txt b/config/RZDE01_02/rels/d_a_npc_toby/symbols.txt index 5e3cb0634d..8f6e05e4c5 100644 --- a/config/RZDE01_02/rels/d_a_npc_toby/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_toby/symbols.txt @@ -30,7 +30,7 @@ drawOtherMdl__12daNpc_Toby_cFv = .text:0x00001C04; // type:function size:0xD8 sc afterSetFaceMotionAnm__12daNpc_Toby_cFiifi = .text:0x00001CDC; // type:function size:0x58 scope:global align:4 afterSetMotionAnm__12daNpc_Toby_cFiifi = .text:0x00001D34; // type:function size:0x8C scope:global align:4 selectAction__12daNpc_Toby_cFv = .text:0x00001DC0; // type:function size:0x128 scope:global align:4 -setAction__12daNpc_Toby_cFM12daNpc_Toby_cFP10v = .text:0x00001EE8; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Toby_cFM12daNpc_Toby_cFPCvPvPv_i = .text:0x00001EE8; // type:function size:0xA8 scope:global align:4 cutTobyHouseFire__12daNpc_Toby_cFi = .text:0x00001F90; // type:function size:0x2A8 scope:global align:4 cutTalkToOneself__12daNpc_Toby_cFi = .text:0x00002238; // type:function size:0x4CC scope:global align:4 cutRepairSCannon__12daNpc_Toby_cFi = .text:0x00002704; // type:function size:0x544 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_uri/symbols.txt b/config/RZDE01_02/rels/d_a_npc_uri/symbols.txt index 237d14415e..77fc5ec6ae 100644 --- a/config/RZDE01_02/rels/d_a_npc_uri/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_uri/symbols.txt @@ -29,7 +29,7 @@ afterSetMotionAnm__11daNpc_Uri_cFiifi = .text:0x00001C58; // type:function size: changeBck__11daNpc_Uri_cFPiPi = .text:0x00001C90; // type:function size:0x2C scope:global align:4 changeBtp__11daNpc_Uri_cFPiPi = .text:0x00001CBC; // type:function size:0x2C scope:global align:4 selectAction__11daNpc_Uri_cFv = .text:0x00001CE8; // type:function size:0x164 scope:global align:4 -setAction__11daNpc_Uri_cFM11daNpc_Uri_cFP10v = .text:0x00001E4C; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_Uri_cFM11daNpc_Uri_cFPCvPvPv_i = .text:0x00001E4C; // type:function size:0xA8 scope:global align:4 chkPlayerCarryBasket__11daNpc_Uri_cFv = .text:0x00001EF4; // type:function size:0x74 scope:global align:4 getTutorialCond__11daNpc_Uri_cF4cXyz = .text:0x00001F68; // type:function size:0x2C0 scope:global align:4 cutConversation__11daNpc_Uri_cFi = .text:0x00002228; // type:function size:0x19C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_wrestler/symbols.txt b/config/RZDE01_02/rels/d_a_npc_wrestler/symbols.txt index 4614057fd8..e73918af42 100644 --- a/config/RZDE01_02/rels/d_a_npc_wrestler/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_wrestler/symbols.txt @@ -16,7 +16,7 @@ checkStartUp__15daNpcWrestler_cFv = .text:0x00000E34; // type:function size:0x7C setExpressionAnm__15daNpcWrestler_cFib = .text:0x00000EB0; // type:function size:0x418 scope:global align:4 setExpressionBtp__15daNpcWrestler_cFi = .text:0x000012C8; // type:function size:0xF8 scope:global align:4 setMotionAnm__15daNpcWrestler_cFif = .text:0x000013C0; // type:function size:0x164 scope:global align:4 -setAction__15daNpcWrestler_cFM15daNpcWrestler_cFP10v = .text:0x00001524; // type:function size:0xA8 scope:global align:4 +setAction__15daNpcWrestler_cFM15daNpcWrestler_cFPCvPvPv_b = .text:0x00001524; // type:function size:0xA8 scope:global align:4 s_sub1__FPvPv = .text:0x000015CC; // type:function size:0x74 scope:global align:4 checkArenaInfo__15daNpcWrestler_cFv = .text:0x00001640; // type:function size:0xB8 scope:global align:4 s_sub2__FPvPv = .text:0x000016F8; // type:function size:0x80 scope:global align:4 @@ -102,7 +102,7 @@ _ctors = .ctors:0x00000000; // type:label scope:global __destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global align:4 _dtors = .dtors:0x00000000; // type:label scope:global ...rodata.0 = .rodata:0x00000000; // type:label scope:local align:4 -daNpcWrestler_Param_c::m = .rodata:0x00000000; // type:object size:0x194 scope:global align:4 +m__21daNpcWrestler_Param_c = .rodata:0x00000000; // type:object size:0x194 scope:global align:4 @112650 = .rodata:0x00000194; // type:object size:0x4 scope:local align:4 @112651 = .rodata:0x00000198; // type:object size:0x4 scope:local align:4 @112652 = .rodata:0x0000019C; // type:object size:0x4 scope:local align:4 @@ -250,7 +250,7 @@ lbl_378_data_83B = .data:0x0000083B; // type:object size:0xA data:string l_evtNames = .data:0x00000848; // type:object size:0x1C scope:global align:4 data:4byte lbl_378_data_864 = .data:0x00000864; // type:object size:0x9 data:string l_myName = .data:0x00000870; // type:object size:0x4 scope:global align:4 -daNpcWrestler_c::mEvtSeqList = .data:0x00000874; // type:object size:0x54 scope:global align:4 data:4byte +mEvtSeqList__15daNpcWrestler_c = .data:0x00000874; // type:object size:0x54 scope:global align:4 data:4byte @112586 = .data:0x000008C8; // type:object size:0xC scope:local align:4 @112587 = .data:0x000008D4; // type:object size:0xC scope:local align:4 @112864 = .data:0x000008E0; // type:object size:0xC scope:local align:4 data:4byte @@ -410,4 +410,4 @@ __global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:globa l_HIO = .bss:0x00000014; // type:object size:0x4 scope:global align:4 @98646 = .bss:0x00000018; // type:object size:0xC scope:local align:4 lbl_378_bss_24 = .bss:0x00000024; // type:object size:0x1 data:byte -daNpcWrestler_c::setAttnPos(void)@eyeOffset = .bss:0x00000028; // type:object size:0xC scope:global align:4 data:float +eyeOffset$localstatic3$setAttnPos__15daNpcWrestler_cFv = .bss:0x00000028; // type:object size:0xC scope:local align:4 data:float diff --git a/config/RZDE01_02/rels/d_a_npc_yamid/symbols.txt b/config/RZDE01_02/rels/d_a_npc_yamid/symbols.txt index 70207279e9..39bc87f461 100644 --- a/config/RZDE01_02/rels/d_a_npc_yamid/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_yamid/symbols.txt @@ -25,7 +25,7 @@ setCollision__13daNpc_yamiD_cFv = .text:0x0000126C; // type:function size:0x144 drawDbgInfo__13daNpc_yamiD_cFv = .text:0x000013B0; // type:function size:0x8 scope:global align:4 drawGhost__13daNpc_yamiD_cFv = .text:0x000013B8; // type:function size:0x68 scope:global align:4 selectAction__13daNpc_yamiD_cFv = .text:0x00001420; // type:function size:0x40 scope:global align:4 -setAction__13daNpc_yamiD_cFM13daNpc_yamiD_cFP10v = .text:0x00001460; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_yamiD_cFM13daNpc_yamiD_cFPCvPvPv_i = .text:0x00001460; // type:function size:0xA8 scope:global align:4 wait__13daNpc_yamiD_cFPv = .text:0x00001508; // type:function size:0x248 scope:global align:4 talk__13daNpc_yamiD_cFPv = .text:0x00001750; // type:function size:0x188 scope:global align:4 cutStopper__13daNpc_yamiD_cFi = .text:0x000018D8; // type:function size:0xB4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_yamis/symbols.txt b/config/RZDE01_02/rels/d_a_npc_yamis/symbols.txt index 3317b97d95..103d934f7e 100644 --- a/config/RZDE01_02/rels/d_a_npc_yamis/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_yamis/symbols.txt @@ -25,7 +25,7 @@ setCollision__13daNpc_yamiS_cFv = .text:0x0000126C; // type:function size:0x15C drawDbgInfo__13daNpc_yamiS_cFv = .text:0x000013C8; // type:function size:0x8 scope:global align:4 drawGhost__13daNpc_yamiS_cFv = .text:0x000013D0; // type:function size:0x68 scope:global align:4 selectAction__13daNpc_yamiS_cFv = .text:0x00001438; // type:function size:0x40 scope:global align:4 -setAction__13daNpc_yamiS_cFM13daNpc_yamiS_cFP10v = .text:0x00001478; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_yamiS_cFM13daNpc_yamiS_cFPCvPvPv_i = .text:0x00001478; // type:function size:0xA8 scope:global align:4 wait__13daNpc_yamiS_cFPv = .text:0x00001520; // type:function size:0x248 scope:global align:4 talk__13daNpc_yamiS_cFPv = .text:0x00001768; // type:function size:0x19C scope:global align:4 cutStopper__13daNpc_yamiS_cFi = .text:0x00001904; // type:function size:0xB4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_yamit/symbols.txt b/config/RZDE01_02/rels/d_a_npc_yamit/symbols.txt index f763e917a1..86a2a6ad0f 100644 --- a/config/RZDE01_02/rels/d_a_npc_yamit/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_yamit/symbols.txt @@ -28,7 +28,7 @@ drawDbgInfo__13daNpc_yamiT_cFv = .text:0x00001498; // type:function size:0x8 sco evtEndProc__13daNpc_yamiT_cFv = .text:0x000014A0; // type:function size:0x60 scope:global align:4 drawGhost__13daNpc_yamiT_cFv = .text:0x00001500; // type:function size:0x68 scope:global align:4 selectAction__13daNpc_yamiT_cFv = .text:0x00001568; // type:function size:0x40 scope:global align:4 -setAction__13daNpc_yamiT_cFM13daNpc_yamiT_cFP10v = .text:0x000015A8; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_yamiT_cFM13daNpc_yamiT_cFPCvPvPv_i = .text:0x000015A8; // type:function size:0xA8 scope:global align:4 wait__13daNpc_yamiT_cFPv = .text:0x00001650; // type:function size:0x304 scope:global align:4 talk__13daNpc_yamiT_cFPv = .text:0x00001954; // type:function size:0x19C scope:global align:4 cutStopper__13daNpc_yamiT_cFi = .text:0x00001AF0; // type:function size:0x94 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_yelia/symbols.txt b/config/RZDE01_02/rels/d_a_npc_yelia/symbols.txt index 387f54cc31..7dc583d5d6 100644 --- a/config/RZDE01_02/rels/d_a_npc_yelia/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_yelia/symbols.txt @@ -25,7 +25,7 @@ setAttnPos__13daNpc_Yelia_cFv = .text:0x00001618; // type:function size:0x334 sc setCollision__13daNpc_Yelia_cFv = .text:0x0000194C; // type:function size:0x160 scope:global align:4 drawDbgInfo__13daNpc_Yelia_cFv = .text:0x00001AAC; // type:function size:0x8 scope:global align:4 selectAction__13daNpc_Yelia_cFv = .text:0x00001AB4; // type:function size:0xB0 scope:global align:4 -setAction__13daNpc_Yelia_cFM13daNpc_Yelia_cFP10v = .text:0x00001B64; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_Yelia_cFM13daNpc_Yelia_cFPCvPvPv_i = .text:0x00001B64; // type:function size:0xA8 scope:global align:4 cutConversationAboutLoopHole__13daNpc_Yelia_cFi = .text:0x00001C0C; // type:function size:0x204 scope:global align:4 cutTWResistance__13daNpc_Yelia_cFi = .text:0x00001E10; // type:function size:0x134 scope:global align:4 cutTakeWoodStatue__13daNpc_Yelia_cFi = .text:0x00001F44; // type:function size:0x788 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_ykm/symbols.txt b/config/RZDE01_02/rels/d_a_npc_ykm/symbols.txt index 01128a488d..2c35a4a5b2 100644 --- a/config/RZDE01_02/rels/d_a_npc_ykm/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_ykm/symbols.txt @@ -37,7 +37,7 @@ setFishAnm__11daNpc_ykM_cFiif = .text:0x00002DEC; // type:function size:0xC4 sco setLeafAnm__11daNpc_ykM_cFif = .text:0x00002EB0; // type:function size:0xCC scope:global align:4 afterSetMotionAnm__11daNpc_ykM_cFiifi = .text:0x00002F7C; // type:function size:0x3C scope:global align:4 selectAction__11daNpc_ykM_cFv = .text:0x00002FB8; // type:function size:0x15C scope:global align:4 -setAction__11daNpc_ykM_cFM11daNpc_ykM_cFP10v = .text:0x00003114; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_ykM_cFM11daNpc_ykM_cFPCvPvPv_i = .text:0x00003114; // type:function size:0xA8 scope:global align:4 chkContinueAttnPlayer__11daNpc_ykM_cFv = .text:0x000031BC; // type:function size:0x8C scope:global align:4 chkTouchPlayer__11daNpc_ykM_cFv = .text:0x00003248; // type:function size:0xD0 scope:global align:4 cutSlideDown__11daNpc_ykM_cFi = .text:0x00003318; // type:function size:0x65C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_ykw/symbols.txt b/config/RZDE01_02/rels/d_a_npc_ykw/symbols.txt index e931dd0327..6ebe121391 100644 --- a/config/RZDE01_02/rels/d_a_npc_ykw/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_ykw/symbols.txt @@ -31,7 +31,7 @@ setAttnPos__11daNpc_ykW_cFv = .text:0x00001CD0; // type:function size:0x5A4 scop setCollision__11daNpc_ykW_cFv = .text:0x00002274; // type:function size:0x23C scope:global align:4 drawDbgInfo__11daNpc_ykW_cFv = .text:0x000024B0; // type:function size:0x8 scope:global align:4 selectAction__11daNpc_ykW_cFv = .text:0x000024B8; // type:function size:0x12C scope:global align:4 -setAction__11daNpc_ykW_cFM11daNpc_ykW_cFP10v = .text:0x000025E4; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_ykW_cFM11daNpc_ykW_cFPCvPvPv_i = .text:0x000025E4; // type:function size:0xA8 scope:global align:4 getGoalPos__11daNpc_ykW_cFv = .text:0x0000268C; // type:function size:0xE0 scope:global align:4 orderGoIntoBossRoomEvt__11daNpc_ykW_cFv = .text:0x0000276C; // type:function size:0x9C scope:global align:4 putUtuwaHeart__11daNpc_ykW_cFP4cXyzffsP4cXyz = .text:0x00002808; // type:function size:0x1CC scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_zanb/symbols.txt b/config/RZDE01_02/rels/d_a_npc_zanb/symbols.txt index 8d7397cd62..44e521c541 100644 --- a/config/RZDE01_02/rels/d_a_npc_zanb/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_zanb/symbols.txt @@ -24,7 +24,7 @@ setCollision__12daNpc_zanB_cFv = .text:0x00001188; // type:function size:0x1AC s drawDbgInfo__12daNpc_zanB_cFv = .text:0x00001334; // type:function size:0x8 scope:global align:4 drawGhost__12daNpc_zanB_cFv = .text:0x0000133C; // type:function size:0x68 scope:global align:4 selectAction__12daNpc_zanB_cFv = .text:0x000013A4; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_zanB_cFM12daNpc_zanB_cFP10v = .text:0x000013E4; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_zanB_cFM12daNpc_zanB_cFPCvPvPv_i = .text:0x000013E4; // type:function size:0xA8 scope:global align:4 wait__12daNpc_zanB_cFPv = .text:0x0000148C; // type:function size:0x21C scope:global align:4 talk__12daNpc_zanB_cFPv = .text:0x000016A8; // type:function size:0x184 scope:global align:4 daNpc_zanB_Create__FPv = .text:0x0000182C; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_zant/symbols.txt b/config/RZDE01_02/rels/d_a_npc_zant/symbols.txt index 7ab7f74a6e..8c1e737d7d 100644 --- a/config/RZDE01_02/rels/d_a_npc_zant/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_zant/symbols.txt @@ -24,7 +24,7 @@ setCollision__12daNpc_Zant_cFv = .text:0x00000EEC; // type:function size:0x144 s drawDbgInfo__12daNpc_Zant_cFv = .text:0x00001030; // type:function size:0x8 scope:global align:4 drawGhost__12daNpc_Zant_cFv = .text:0x00001038; // type:function size:0x68 scope:global align:4 selectAction__12daNpc_Zant_cFv = .text:0x000010A0; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_Zant_cFM12daNpc_Zant_cFP10v = .text:0x000010E0; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_Zant_cFM12daNpc_Zant_cFPCvPvPv_i = .text:0x000010E0; // type:function size:0xA8 scope:global align:4 wait__12daNpc_Zant_cFPv = .text:0x00001188; // type:function size:0x1B8 scope:global align:4 talk__12daNpc_Zant_cFPv = .text:0x00001340; // type:function size:0x188 scope:global align:4 daNpc_Zant_Create__FPv = .text:0x000014C8; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_zelR/symbols.txt b/config/RZDE01_02/rels/d_a_npc_zelR/symbols.txt index ed0e1795a3..3076801c2c 100644 --- a/config/RZDE01_02/rels/d_a_npc_zelR/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_zelR/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__12daNpc_ZelR_cFv = .text:0x000010DC; // type:function size:0x1F4 sco setCollision__12daNpc_ZelR_cFv = .text:0x000012D0; // type:function size:0x138 scope:global align:4 drawDbgInfo__12daNpc_ZelR_cFv = .text:0x00001408; // type:function size:0x8 scope:global align:4 selectAction__12daNpc_ZelR_cFv = .text:0x00001410; // type:function size:0x40 scope:global align:4 -setAction__12daNpc_ZelR_cFM12daNpc_ZelR_cFP10v = .text:0x00001450; // type:function size:0xA8 scope:global align:4 +setAction__12daNpc_ZelR_cFM12daNpc_ZelR_cFPCvPvPv_i = .text:0x00001450; // type:function size:0xA8 scope:global align:4 wait__12daNpc_ZelR_cFPv = .text:0x000014F8; // type:function size:0x138 scope:global align:4 talk__12daNpc_ZelR_cFPv = .text:0x00001630; // type:function size:0x13C scope:global align:4 daNpc_ZelR_Create__FPv = .text:0x0000176C; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_zelRo/symbols.txt b/config/RZDE01_02/rels/d_a_npc_zelRo/symbols.txt index 659fa9e5e9..27c83192a8 100644 --- a/config/RZDE01_02/rels/d_a_npc_zelRo/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_zelRo/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__13daNpc_ZelRo_cFv = .text:0x000010DC; // type:function size:0x1F4 sc setCollision__13daNpc_ZelRo_cFv = .text:0x000012D0; // type:function size:0x138 scope:global align:4 drawDbgInfo__13daNpc_ZelRo_cFv = .text:0x00001408; // type:function size:0x8 scope:global align:4 selectAction__13daNpc_ZelRo_cFv = .text:0x00001410; // type:function size:0x40 scope:global align:4 -setAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFP10v = .text:0x00001450; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_ZelRo_cFM13daNpc_ZelRo_cFPCvPvPv_i = .text:0x00001450; // type:function size:0xA8 scope:global align:4 wait__13daNpc_ZelRo_cFPv = .text:0x000014F8; // type:function size:0x138 scope:global align:4 talk__13daNpc_ZelRo_cFPv = .text:0x00001630; // type:function size:0x13C scope:global align:4 daNpc_ZelRo_Create__FPv = .text:0x0000176C; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_zelda/symbols.txt b/config/RZDE01_02/rels/d_a_npc_zelda/symbols.txt index f983e26ab3..b30c1ed318 100644 --- a/config/RZDE01_02/rels/d_a_npc_zelda/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_zelda/symbols.txt @@ -24,7 +24,7 @@ setAttnPos__13daNpc_Zelda_cFv = .text:0x00001090; // type:function size:0x264 sc setCollision__13daNpc_Zelda_cFv = .text:0x000012F4; // type:function size:0x1AC scope:global align:4 drawDbgInfo__13daNpc_Zelda_cFv = .text:0x000014A0; // type:function size:0x8 scope:global align:4 selectAction__13daNpc_Zelda_cFv = .text:0x000014A8; // type:function size:0x40 scope:global align:4 -setAction__13daNpc_Zelda_cFM13daNpc_Zelda_cFP10v = .text:0x000014E8; // type:function size:0xA8 scope:global align:4 +setAction__13daNpc_Zelda_cFM13daNpc_Zelda_cFPCvPvPv_i = .text:0x000014E8; // type:function size:0xA8 scope:global align:4 wait__13daNpc_Zelda_cFPv = .text:0x00001590; // type:function size:0x21C scope:global align:4 talk__13daNpc_Zelda_cFPv = .text:0x000017AC; // type:function size:0x184 scope:global align:4 daNpc_Zelda_Create__FPv = .text:0x00001930; // type:function size:0x4 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_zra/symbols.txt b/config/RZDE01_02/rels/d_a_npc_zra/symbols.txt index 296e2b14ab..d33e61e0db 100644 --- a/config/RZDE01_02/rels/d_a_npc_zra/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_zra/symbols.txt @@ -41,7 +41,7 @@ isDelete__11daNpc_zrA_cFv = .text:0x0000341C; // type:function size:0xD4 scope:g reset__11daNpc_zrA_cFv = .text:0x000034F0; // type:function size:0x314 scope:global align:4 playExpression__11daNpc_zrA_cFv = .text:0x00003804; // type:function size:0x57C scope:global align:4 playMotion__11daNpc_zrA_cFv = .text:0x00003D80; // type:function size:0x938 scope:global align:4 -setAction__11daNpc_zrA_cFM11daNpc_zrA_cFP10v = .text:0x000046B8; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_zrA_cFM11daNpc_zrA_cFPCvPvPv_i = .text:0x000046B8; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_zrA_cFv = .text:0x00004760; // type:function size:0x39C scope:global align:4 doEvent__11daNpc_zrA_cFv = .text:0x00004AFC; // type:function size:0x720 scope:global align:4 setSkipZev__11daNpc_zrA_cFii = .text:0x0000521C; // type:function size:0x84 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_zrc/symbols.txt b/config/RZDE01_02/rels/d_a_npc_zrc/symbols.txt index 6d0156aa88..fea6bbef31 100644 --- a/config/RZDE01_02/rels/d_a_npc_zrc/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_zrc/symbols.txt @@ -30,7 +30,7 @@ __as__5csXyzFR11csXyz = .text:0x00001ECC; // type:label scope:global align:4 playExpression__11daNpc_zrC_cFv = .text:0x00001ECC; // type:function size:0x508 scope:global align:4 playMotion__11daNpc_zrC_cFv = .text:0x000023D4; // type:function size:0x3FC scope:global align:4 playMotionAnm2__11daNpc_zrC_cFPPPQ28daNpcF_c18daNpcF_anmPlayData = .text:0x000027D0; // type:function size:0x124 scope:global align:4 -setAction__11daNpc_zrC_cFM11daNpc_zrC_cFP10v = .text:0x000028F4; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_zrC_cFM11daNpc_zrC_cFPCvPvPv_i = .text:0x000028F4; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_zrC_cFv = .text:0x0000299C; // type:function size:0xD0 scope:global align:4 doNormalAction__11daNpc_zrC_cFi = .text:0x00002A6C; // type:function size:0x108 scope:global align:4 doEvent__11daNpc_zrC_cFv = .text:0x00002B74; // type:function size:0x3EC scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_npc_zrz/symbols.txt b/config/RZDE01_02/rels/d_a_npc_zrz/symbols.txt index f0f802c98f..99e00d6063 100644 --- a/config/RZDE01_02/rels/d_a_npc_zrz/symbols.txt +++ b/config/RZDE01_02/rels/d_a_npc_zrz/symbols.txt @@ -34,7 +34,7 @@ reset__11daNpc_zrZ_cFv = .text:0x00002098; // type:function size:0x264 scope:glo __as__5csXyzFR11csXyz = .text:0x000022FC; // type:label scope:global align:4 playExpression__11daNpc_zrZ_cFv = .text:0x000022FC; // type:function size:0xB4 scope:global align:4 playMotion__11daNpc_zrZ_cFv = .text:0x000023B0; // type:function size:0x110 scope:global align:4 -setAction__11daNpc_zrZ_cFM11daNpc_zrZ_cFP10v = .text:0x000024C0; // type:function size:0xA8 scope:global align:4 +setAction__11daNpc_zrZ_cFM11daNpc_zrZ_cFPCvPvPv_i = .text:0x000024C0; // type:function size:0xA8 scope:global align:4 selectAction__11daNpc_zrZ_cFv = .text:0x00002568; // type:function size:0xA4 scope:global align:4 doNormalAction__11daNpc_zrZ_cFi = .text:0x0000260C; // type:function size:0x108 scope:global align:4 doEvent__11daNpc_zrZ_cFv = .text:0x00002714; // type:function size:0x440 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_Lv5Key/symbols.txt b/config/RZDE01_02/rels/d_a_obj_Lv5Key/symbols.txt index e5450217fa..856fe6f4a5 100644 --- a/config/RZDE01_02/rels/d_a_obj_Lv5Key/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_Lv5Key/symbols.txt @@ -8,7 +8,7 @@ initCcSph__13daObjLv5Key_cFv = .text:0x0000025C; // type:function size:0x60 scop setCcSph__13daObjLv5Key_cFv = .text:0x000002BC; // type:function size:0xC0 scope:global align:4 daObjLv5Key_Create__FP10fopAc_ac_c = .text:0x0000037C; // type:function size:0x4 scope:global align:4 daObjLv5Key_Delete__FP13daObjLv5Key_c = .text:0x00000380; // type:function size:0x30 scope:global align:4 -setAction__13daObjLv5Key_cFM13daObjLv5Key_cFP10v = .text:0x000003B0; // type:function size:0xA8 scope:global align:4 +setAction__13daObjLv5Key_cFM13daObjLv5Key_cFPCvPvi_vi = .text:0x000003B0; // type:function size:0xA8 scope:global align:4 Wait__13daObjLv5Key_cFi = .text:0x00000458; // type:function size:0xDC scope:global align:4 Open__13daObjLv5Key_cFi = .text:0x00000534; // type:function size:0xD0 scope:global align:4 Fall__13daObjLv5Key_cFi = .text:0x00000604; // type:function size:0x19C scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_batta/symbols.txt b/config/RZDE01_02/rels/d_a_obj_batta/symbols.txt index e9832e95d3..8f028da7b7 100644 --- a/config/RZDE01_02/rels/d_a_obj_batta/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_batta/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 __ct__16daObj_BattaHIO_cFv = .text:0x000000CC; // type:function size:0x30 scope:global align:4 -setAction__12daObjBATTA_cFM12daObjBATTA_cFP10v = .text:0x000000FC; // type:function size:0xA4 scope:global align:4 +setAction__12daObjBATTA_cFM12daObjBATTA_cFPCvPv_v = .text:0x000000FC; // type:function size:0xA4 scope:global align:4 useHeapInit__FP10fopAc_ac_c = .text:0x000001A0; // type:function size:0x228 scope:global align:4 daObjBATTA_Create__FP10fopAc_ac_c = .text:0x000003C8; // type:function size:0x484 scope:global align:4 daObjBATTA_Delete__FP12daObjBATTA_c = .text:0x0000084C; // type:function size:0x68 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_gra2/symbols.txt b/config/RZDE01_02/rels/d_a_obj_gra2/symbols.txt index 4821832003..3302460320 100644 --- a/config/RZDE01_02/rels/d_a_obj_gra2/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_gra2/symbols.txt @@ -26,7 +26,7 @@ setFaceBtp__11daObj_GrA_cFi = .text:0x000015D0; // type:function size:0xF4 scope setBaseMotion__11daObj_GrA_cFif = .text:0x000016C4; // type:function size:0x20 scope:global align:4 setFaceMotion__11daObj_GrA_cFif = .text:0x000016E4; // type:function size:0x44 scope:global align:4 calcMotion__11daObj_GrA_cFv = .text:0x00001728; // type:function size:0xC8 scope:global align:4 -setProcess__11daObj_GrA_cFM11daObj_GrA_cFP10v = .text:0x000017F0; // type:function size:0xB0 scope:global align:4 +setProcess__11daObj_GrA_cFM11daObj_GrA_cFPCvPvPv_i = .text:0x000017F0; // type:function size:0xB0 scope:global align:4 setParam__11daObj_GrA_cFv = .text:0x000018A0; // type:function size:0x2A4 scope:global align:4 checkEvent__11daObj_GrA_cFv = .text:0x00001B44; // type:function size:0x158 scope:global align:4 mainProc__11daObj_GrA_cFv = .text:0x00001C9C; // type:function size:0x170 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_kag/symbols.txt b/config/RZDE01_02/rels/d_a_obj_kag/symbols.txt index 49ff878c7d..29511dab24 100644 --- a/config/RZDE01_02/rels/d_a_obj_kag/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_kag/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 __ct__14daObj_KagHIO_cFv = .text:0x000000CC; // type:function size:0x28 scope:global align:4 -setAction__10daObjKAG_cFM10daObjKAG_cFP10v = .text:0x000000F4; // type:function size:0xA4 scope:global align:4 +setAction__10daObjKAG_cFM10daObjKAG_cFPCvPv_v = .text:0x000000F4; // type:function size:0xA4 scope:global align:4 useHeapInit__FP10fopAc_ac_c = .text:0x00000198; // type:function size:0x228 scope:global align:4 daObjKAG_Create__FP10fopAc_ac_c = .text:0x000003C0; // type:function size:0x3E8 scope:global align:4 daObjKAG_Delete__FP10daObjKAG_c = .text:0x000007A8; // type:function size:0x68 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_master_sword/symbols.txt b/config/RZDE01_02/rels/d_a_obj_master_sword/symbols.txt index 982cb98171..eb6bdcd54a 100644 --- a/config/RZDE01_02/rels/d_a_obj_master_sword/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_master_sword/symbols.txt @@ -26,7 +26,7 @@ ActionTable__18daObjMasterSword_c = .rodata:0x00000004; // type:object size:0x18 @95141 = .rodata:0x0000003C; // type:object size:0x4 scope:local align:4 lbl_569_data_0 = .data:0x00000000; // type:object size:0xA data:string l_arcName = .data:0x0000000C; // type:object size:0x4 scope:global align:4 data:4byte -@LOCAL@daObjMasterSword_c::initCollision(void)@ccCylSrc = .data:0x00000010; // type:object size:0x44 scope:global align:4 data:float +ccCylSrc$localstatic3$initCollision__18daObjMasterSword_cFv = .data:0x00000010; // type:object size:0x44 scope:local align:4 data:float l_daObjMasterSword_Method = .data:0x00000054; // type:object size:0x20 scope:global align:4 g_profile_Obj_MasterSword = .data:0x00000074; // type:object size:0x30 scope:global align:4 lbl_569_bss_0 = .bss:0x00000000; // type:object size:0x1 data:byte diff --git a/config/RZDE01_02/rels/d_a_obj_mato/symbols.txt b/config/RZDE01_02/rels/d_a_obj_mato/symbols.txt index 4ee3748fea..e2df066d71 100644 --- a/config/RZDE01_02/rels/d_a_obj_mato/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_mato/symbols.txt @@ -1,7 +1,7 @@ _prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 _epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 _unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 -setAction__11daObjMATO_cFM11daObjMATO_cFP10v = .text:0x0000005C; // type:function size:0xC4 scope:global align:4 +setAction__11daObjMATO_cFM11daObjMATO_cFPCvPvi_vi = .text:0x0000005C; // type:function size:0xC4 scope:global align:4 useHeapInit__FP10fopAc_ac_c = .text:0x00000120; // type:function size:0xDC scope:global align:4 daObjMATO_Create__FP10fopAc_ac_c = .text:0x000001FC; // type:function size:0x15C scope:global align:4 daObjMATO_Delete__FP11daObjMATO_c = .text:0x00000358; // type:function size:0xB0 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_mirror_chain/symbols.txt b/config/RZDE01_02/rels/d_a_obj_mirror_chain/symbols.txt index 571b11f97d..4ef08badc9 100644 --- a/config/RZDE01_02/rels/d_a_obj_mirror_chain/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_mirror_chain/symbols.txt @@ -35,14 +35,14 @@ _dtors = .dtors:0x00000000; // type:label scope:global @92044 = .rodata:0x00000028; // type:object size:0x4 scope:local align:4 data:float @92048 = .rodata:0x00000030; // type:object size:0x8 scope:local align:4 @92221 = .rodata:0x00000038; // type:object size:0x8 scope:local align:4 data:double -@LOCAL@daObjMirrorChain_c::draw(void)@SCISSOR_CENTER_X = .rodata:0x00000040; // type:object size:0x4 scope:global align:4 -@LOCAL@daObjMirrorChain_c::draw(void)@SCISSOR_CENTER_Y@0 = .rodata:0x00000044; // type:object size:0x4 scope:global align:4 -@LOCAL@daObjMirrorChain_c::draw(void)@SCISSOR_CENTER_Z@1 = .rodata:0x00000048; // type:object size:0x4 scope:global align:4 -@LOCAL@daObjMirrorChain_c::draw(void)@SCISSOR_SIZE@2 = .rodata:0x0000004C; // type:object size:0x4 scope:global align:4 +SCISSOR_CENTER_X$localstatic3$draw__18daObjMirrorChain_cFv = .rodata:0x00000040; // type:object size:0x4 scope:local align:4 +SCISSOR_CENTER_Y$localstatic4$draw__18daObjMirrorChain_cFv = .rodata:0x00000044; // type:object size:0x4 scope:local align:4 +SCISSOR_CENTER_Z$localstatic5$draw__18daObjMirrorChain_cFv = .rodata:0x00000048; // type:object size:0x4 scope:local align:4 +SCISSOR_SIZE$localstatic6$draw__18daObjMirrorChain_cFv = .rodata:0x0000004C; // type:object size:0x4 scope:local align:4 @92417 = .rodata:0x00000050; // type:object size:0x4 scope:local align:4 -lbl_574_data_0 = .data:0x00000000; // type:object size:0x9 data:string +@stringBase0 = .data:0x00000000; // type:object size:0x9 data:string_table l_arcName = .data:0x0000000C; // type:object size:0x4 scope:global align:4 data:4byte -@LOCAL@daObjMirrorChain_c::draw(void)@l_offsetScissor@3 = .data:0x00000010; // type:object size:0x30 scope:global align:4 +l_offsetScissor$localstatic7$draw__18daObjMirrorChain_cFv = .data:0x00000010; // type:object size:0x30 scope:global align:4 l_daObjMirrorChain_Method = .data:0x00000040; // type:object size:0x20 scope:global align:4 g_profile_Obj_MirrorChain = .data:0x00000060; // type:object size:0x30 scope:global align:4 __vt__20dScissorEnd_packet_c = .data:0x00000090; // type:object size:0x14 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_movebox/symbols.txt b/config/RZDE01_02/rels/d_a_obj_movebox/symbols.txt index fcca5be893..888ebae566 100644 --- a/config/RZDE01_02/rels/d_a_obj_movebox/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_movebox/symbols.txt @@ -75,7 +75,7 @@ M_attr__Q212daObjMovebox5Act_c = .rodata:0x00000244; // type:object size:0x500 s @96292 = .rodata:0x00000758; // type:object size:0x4 scope:local align:4 data:float @96339 = .rodata:0x0000075C; // type:object size:0x4 scope:local align:4 @96388 = .rodata:0x00000760; // type:object size:0x4 scope:local align:4 -@LOCAL@daObjMovebox::Act_c::mode_proc_call(void)@mode_proc = .rodata:0x00000764; // type:object size:0x24 scope:global align:4 +mode_proc$localstatic3$mode_proc_call__Q212daObjMovebox5Act_cFv = .rodata:0x00000764; // type:object size:0x24 scope:global align:4 @96464 = .rodata:0x00000788; // type:object size:0x4 scope:local align:4 @96465 = .rodata:0x0000078C; // type:object size:0x4 scope:local align:4 @96544 = .rodata:0x00000790; // type:object size:0x4 scope:local align:4 data:float diff --git a/config/RZDE01_02/rels/d_a_obj_nan/symbols.txt b/config/RZDE01_02/rels/d_a_obj_nan/symbols.txt index cb33094c07..1f36c7a05e 100644 --- a/config/RZDE01_02/rels/d_a_obj_nan/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_nan/symbols.txt @@ -4,7 +4,7 @@ _unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 __register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 __destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 __ct__14daObj_NanHIO_cFv = .text:0x000000CC; // type:function size:0x28 scope:global align:4 -setAction__10daObjNAN_cFM10daObjNAN_cFP10v = .text:0x000000F4; // type:function size:0xA4 scope:global align:4 +setAction__10daObjNAN_cFM10daObjNAN_cFPCvPv_v = .text:0x000000F4; // type:function size:0xA4 scope:global align:4 useHeapInit__FP10fopAc_ac_c = .text:0x00000198; // type:function size:0x270 scope:global align:4 daObjNAN_Create__FP10fopAc_ac_c = .text:0x00000408; // type:function size:0x3F0 scope:global align:4 daObjNAN_Delete__FP10daObjNAN_c = .text:0x000007F8; // type:function size:0x68 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_oiltubo/symbols.txt b/config/RZDE01_02/rels/d_a_obj_oiltubo/symbols.txt index f4d82a1e73..885c95e231 100644 --- a/config/RZDE01_02/rels/d_a_obj_oiltubo/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_oiltubo/symbols.txt @@ -10,7 +10,7 @@ __as__4cXyzFR10cXyz = .text:0x00000538; // type:label scope:global align:4 createHeapCallBack__15daObj_Oiltubo_cFP10fopAc_ac_c = .text:0x00000580; // type:function size:0x4 scope:global align:4 restart__15daObj_Oiltubo_cFv = .text:0x00000584; // type:function size:0x60 scope:global align:4 initialize__15daObj_Oiltubo_cFv = .text:0x000005E4; // type:function size:0x138 scope:global align:4 -setProcess__15daObj_Oiltubo_cFM15daObj_Oiltubo_cFP10v = .text:0x0000071C; // type:function size:0xB0 scope:global align:4 +setProcess__15daObj_Oiltubo_cFM15daObj_Oiltubo_cFPCvPvPv_i = .text:0x0000071C; // type:function size:0xB0 scope:global align:4 setParam__15daObj_Oiltubo_cFv = .text:0x000007CC; // type:function size:0x5C scope:global align:4 setEnvTevColor__15daObj_Oiltubo_cFv = .text:0x00000828; // type:function size:0x58 scope:global align:4 setRoomNo__15daObj_Oiltubo_cFv = .text:0x00000880; // type:function size:0x44 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_sekizoa/symbols.txt b/config/RZDE01_02/rels/d_a_obj_sekizoa/symbols.txt index 2e199ea969..d0ac094f57 100644 --- a/config/RZDE01_02/rels/d_a_obj_sekizoa/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_sekizoa/symbols.txt @@ -30,7 +30,7 @@ setYariAnm__15daObj_Sekizoa_cFiif = .text:0x00001FFC; // type:function size:0xD0 drawGhost__15daObj_Sekizoa_cFv = .text:0x000020CC; // type:function size:0xDC scope:global align:4 afterSetMotionAnm__15daObj_Sekizoa_cFiifi = .text:0x000021A8; // type:function size:0x3B4 scope:global align:4 selectAction__15daObj_Sekizoa_cFv = .text:0x0000255C; // type:function size:0x78 scope:global align:4 -setAction__15daObj_Sekizoa_cFM15daObj_Sekizoa_cFP10v = .text:0x000025D4; // type:function size:0xA8 scope:global align:4 +setAction__15daObj_Sekizoa_cFM15daObj_Sekizoa_cFPCvPvPv_i = .text:0x000025D4; // type:function size:0xA8 scope:global align:4 checkMoveDirection__15daObj_Sekizoa_cFv = .text:0x0000267C; // type:function size:0x1D0 scope:global align:4 getWaitMotionNo__15daObj_Sekizoa_cFv = .text:0x0000284C; // type:function size:0x48 scope:global align:4 getGameMotionNo__15daObj_Sekizoa_cFv = .text:0x00002894; // type:function size:0x48 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_ss_drink/symbols.txt b/config/RZDE01_02/rels/d_a_obj_ss_drink/symbols.txt index 7405d2cc0e..6f3015222f 100644 --- a/config/RZDE01_02/rels/d_a_obj_ss_drink/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_ss_drink/symbols.txt @@ -15,7 +15,7 @@ getCapacityFromParam__15daObj_SSDrink_cFv = .text:0x000007F8; // type:function s getFlowNodeNum__15daObj_SSDrink_cFv = .text:0x0000081C; // type:function size:0x34 scope:global align:4 restart__15daObj_SSDrink_cFv = .text:0x00000850; // type:function size:0x60 scope:global align:4 initialize__15daObj_SSDrink_cFv = .text:0x000008B0; // type:function size:0x158 scope:global align:4 -setProcess__15daObj_SSDrink_cFM15daObj_SSDrink_cFP10v = .text:0x00000A08; // type:function size:0xF4 scope:global align:4 +setProcess__15daObj_SSDrink_cFM15daObj_SSDrink_cFPCvPvPv_i = .text:0x00000A08; // type:function size:0xF4 scope:global align:4 setParam__15daObj_SSDrink_cFv = .text:0x00000AFC; // type:function size:0x134 scope:global align:4 setEnvTevColor__15daObj_SSDrink_cFv = .text:0x00000C30; // type:function size:0x58 scope:global align:4 setRoomNo__15daObj_SSDrink_cFv = .text:0x00000C88; // type:function size:0x44 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_ss_item/symbols.txt b/config/RZDE01_02/rels/d_a_obj_ss_item/symbols.txt index 2665d618f9..198beed32c 100644 --- a/config/RZDE01_02/rels/d_a_obj_ss_item/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_ss_item/symbols.txt @@ -16,7 +16,7 @@ getTypeFromParam__14daObj_SSItem_cFv = .text:0x0000071C; // type:function size:0 getFlowNodeNum__14daObj_SSItem_cFv = .text:0x00000768; // type:function size:0x34 scope:global align:4 restart__14daObj_SSItem_cFv = .text:0x0000079C; // type:function size:0x60 scope:global align:4 initialize__14daObj_SSItem_cFv = .text:0x000007FC; // type:function size:0x158 scope:global align:4 -setProcess__14daObj_SSItem_cFM14daObj_SSItem_cFP10v = .text:0x00000954; // type:function size:0xB0 scope:global align:4 +setProcess__14daObj_SSItem_cFM14daObj_SSItem_cFPCvPvPv_i = .text:0x00000954; // type:function size:0xB0 scope:global align:4 setParam__14daObj_SSItem_cFv = .text:0x00000A04; // type:function size:0x70 scope:global align:4 setEnvTevColor__14daObj_SSItem_cFv = .text:0x00000A74; // type:function size:0x58 scope:global align:4 setRoomNo__14daObj_SSItem_cFv = .text:0x00000ACC; // type:function size:0x44 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_obj_tks/symbols.txt b/config/RZDE01_02/rels/d_a_obj_tks/symbols.txt index a77c4e7083..199ff5e7a9 100644 --- a/config/RZDE01_02/rels/d_a_obj_tks/symbols.txt +++ b/config/RZDE01_02/rels/d_a_obj_tks/symbols.txt @@ -17,7 +17,7 @@ setMtx__10daObjTks_cFv = .text:0x00000D30; // type:function size:0x84 scope:glob setExpressionAnm__10daObjTks_cFib = .text:0x00000DB4; // type:function size:0x148 scope:global align:4 setExpressionBtp__10daObjTks_cFi = .text:0x00000EFC; // type:function size:0xC8 scope:global align:4 setMotion__10daObjTks_cFifi = .text:0x00000FC4; // type:function size:0x44 scope:global align:4 -setAction__10daObjTks_cFM10daObjTks_cFP10v = .text:0x00001008; // type:function size:0xA0 scope:global align:4 +setAction__10daObjTks_cFM10daObjTks_cFPCvPv_v = .text:0x00001008; // type:function size:0xA0 scope:global align:4 wait__10daObjTks_cFv = .text:0x000010A8; // type:function size:0xAC scope:global align:4 setExpression__10daObjTks_cFif = .text:0x00001154; // type:function size:0x2C scope:global align:4 setLookMode__10daObjTks_cFi = .text:0x00001180; // type:function size:0x24 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_peru/symbols.txt b/config/RZDE01_02/rels/d_a_peru/symbols.txt index 96b53d95dd..e34134dd4c 100644 --- a/config/RZDE01_02/rels/d_a_peru/symbols.txt +++ b/config/RZDE01_02/rels/d_a_peru/symbols.txt @@ -21,7 +21,7 @@ action__8daPeru_cFv = .text:0x00000F8C; // type:function size:0x4C scope:global setAttnPos__8daPeru_cFv = .text:0x00000FD8; // type:function size:0x224 scope:global align:4 setCollision__8daPeru_cFv = .text:0x000011FC; // type:function size:0x1B0 scope:global align:4 drawDbgInfo__8daPeru_cFv = .text:0x000013AC; // type:function size:0x8 scope:global align:4 -setAction__8daPeru_cFM8daPeru_cFP10v = .text:0x000013B4; // type:function size:0xB0 scope:global align:4 +setAction__8daPeru_cFM8daPeru_cFPCvPvi_ii = .text:0x000013B4; // type:function size:0xB0 scope:global align:4 wait__8daPeru_cFi = .text:0x00001464; // type:function size:0x214 scope:global align:4 is_AppearDemo_start__8daPeru_cFv = .text:0x00001678; // type:function size:0x7C scope:global align:4 talk__8daPeru_cFi = .text:0x000016F4; // type:function size:0x288 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_tag_bottle_item/symbols.txt b/config/RZDE01_02/rels/d_a_tag_bottle_item/symbols.txt index c40cb8720a..a6710a881e 100644 --- a/config/RZDE01_02/rels/d_a_tag_bottle_item/symbols.txt +++ b/config/RZDE01_02/rels/d_a_tag_bottle_item/symbols.txt @@ -6,7 +6,7 @@ Execute__18daTag_BottleItem_cFv = .text:0x000000E0; // type:function size:0x6C s setTypeFromParam__18daTag_BottleItem_cFv = .text:0x0000014C; // type:function size:0xC scope:global align:4 restart__18daTag_BottleItem_cFv = .text:0x00000158; // type:function size:0x60 scope:global align:4 initialize__18daTag_BottleItem_cFv = .text:0x000001B8; // type:function size:0x78 scope:global align:4 -setProcess__18daTag_BottleItem_cFM18daTag_BottleItem_cFP10v = .text:0x00000230; // type:function size:0xF4 scope:global align:4 +setProcess__18daTag_BottleItem_cFM18daTag_BottleItem_cFPCvPvPv_i = .text:0x00000230; // type:function size:0xF4 scope:global align:4 setAttnPos__18daTag_BottleItem_cFv = .text:0x00000324; // type:function size:0x40 scope:global align:4 __as__4cXyzFR10cXyz = .text:0x00000364; // type:label scope:global align:4 chkEvent__18daTag_BottleItem_cFv = .text:0x00000364; // type:function size:0x50 scope:global align:4 diff --git a/config/RZDE01_02/rels/d_a_tag_ss_drink/symbols.txt b/config/RZDE01_02/rels/d_a_tag_ss_drink/symbols.txt index 7befa13b07..b0542de997 100644 --- a/config/RZDE01_02/rels/d_a_tag_ss_drink/symbols.txt +++ b/config/RZDE01_02/rels/d_a_tag_ss_drink/symbols.txt @@ -7,7 +7,7 @@ getTypeFromParam__15daTag_SSDrink_cFv = .text:0x00000160; // type:function size: getFlowNodeNum__15daTag_SSDrink_cFv = .text:0x00000208; // type:function size:0x38 scope:global align:4 restart__15daTag_SSDrink_cFv = .text:0x00000240; // type:function size:0x60 scope:global align:4 initialize__15daTag_SSDrink_cFv = .text:0x000002A0; // type:function size:0x78 scope:global align:4 -setProcess__15daTag_SSDrink_cFM15daTag_SSDrink_cFP10v = .text:0x00000318; // type:function size:0xF4 scope:global align:4 +setProcess__15daTag_SSDrink_cFM15daTag_SSDrink_cFPCvPvPv_i = .text:0x00000318; // type:function size:0xF4 scope:global align:4 setAttnPos__15daTag_SSDrink_cFv = .text:0x0000040C; // type:function size:0x40 scope:global align:4 __as__4cXyzFR10cXyz = .text:0x0000044C; // type:label scope:global align:4 chkEvent__15daTag_SSDrink_cFv = .text:0x0000044C; // type:function size:0x170 scope:global align:4 diff --git a/config/RZDE01_02/symbols.txt b/config/RZDE01_02/symbols.txt index 7d820545a6..e8838522eb 100644 --- a/config/RZDE01_02/symbols.txt +++ b/config/RZDE01_02/symbols.txt @@ -1,20 +1,21 @@ __check_pad3 = .init:0x80004000; // type:function size:0x28 scope:local __set_debug_bba = .init:0x80004028; // type:function size:0xC scope:local -__get_debug_bba = .init:0x80004034; // type:function scope:local +__get_debug_bba = .init:0x80004034; // type:function size:0x8 scope:local __start = .init:0x8000403C; // type:function size:0x16C scope:weak __init_registers = .init:0x800041A8; // type:function size:0x90 scope:local __init_data = .init:0x80004238; // type:function size:0xA8 scope:local __init_hardware = .init:0x800042E0; // type:function size:0x24 scope:global -__flush_cache = .init:0x80004304; // type:function scope:global -memcpy = .init:0x80004338; // type:function scope:global -__fill_mem = .init:0x80004388; // type:function scope:global +__flush_cache = .init:0x80004304; // type:function size:0x34 scope:global +memcpy = .init:0x80004338; // type:function size:0x50 scope:global +__fill_mem = .init:0x80004388; // type:function size:0xB4 scope:global memset = .init:0x8000443C; // type:function size:0x30 scope:global -lbl_8000446C = .init:0x8000446C; // type:label -lbl_8000449C = .init:0x8000449C; // type:label -lbl_800044C0 = .init:0x800044C0; // type:label +TRK_memset = .init:0x8000446C; // type:function size:0x30 scope:global align:4 +TRK_memcpy = .init:0x8000449C; // type:function size:0x24 scope:global align:4 +gTRKInterruptVectorTable = .init:0x800044C0; // type:label scope:global lbl_80004600 = .init:0x80004600; // type:label lbl_80005400 = .init:0x80005400; // type:label -lbl_800063F4 = .init:0x800063F4; // type:label +__TRK_reset = .init:0x800063F4; // type:function size:0x2C scope:global align:4 +gTRKInterruptVectorTableEnd = .init:0x800063F4; // type:label scope:global _rom_copy_info = .init:0x80006420; // type:object size:0x84 scope:global data:4byte _bss_init_info = .init:0x800064A4; // type:object size:0x20 scope:global data:4byte @etb_800064E0 = extab:0x800064E0; // type:object size:0x18 scope:local hidden @@ -505,8 +506,8 @@ mDoExt_J3DModel__create__FP12J3DModelDataUlUl = .text:0x80019BD4; // type:functi mDoExt_setAraCacheSize__FUl = .text:0x80019CE4; // type:function size:0x8 scope:global align:4 mDoExt_GetCurrentRunningThread__Fv = .text:0x80019CEC; // type:function size:0x38 scope:global align:4 __dt__25mDoExt_MtxCalcAnmBlendTblFv = .text:0x80019D24; // type:function size:0x58 scope:global align:4 -setAnmTransform__120J3DMtxCalcAnimation<6864J3DMtxCalcAnimationAdaptorDefault<2927J3DMtxCalcCalcTransformMaya>,2624J3DMtxCalcJ3DSysInitMaya>FP15J3DAnmTransform = .text:0x80019D7C; // type:function size:0x8 scope:global align:4 -__dt__77J3DMtxCalcNoAnm<2927J3DMtxCalcCalcTransformMaya,2624J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019D84; // type:function size:0x40 scope:global align:4 +setAnmTransform__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>FP15J3DAnmTransform = .text:0x80019D7C; // type:function size:0x8 scope:global align:4 +__dt__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019D84; // type:function size:0x40 scope:global align:4 getWeight__10J3DMtxCalcCFUc = .text:0x80019DC4; // type:function size:0x8 scope:global align:4 setWeight__10J3DMtxCalcFUcf = .text:0x80019DCC; // type:function size:0x4 scope:global align:4 getAnmTransform__10J3DMtxCalcFUc = .text:0x80019DD0; // type:function size:0x8 scope:global align:4 @@ -514,7 +515,7 @@ setAnmTransform__10J3DMtxCalcFUcP15J3DAnmTransform = .text:0x80019DD8; // type:f getAnmTransform__17J3DMtxCalcAnmBaseFv = .text:0x80019DDC; // type:function size:0x8 scope:global align:4 getAnmTransform__10J3DMtxCalcFv = .text:0x80019DE4; // type:function size:0x8 scope:global align:4 setAnmTransform__10J3DMtxCalcFP15J3DAnmTransform = .text:0x80019DEC; // type:function size:0x4 scope:global align:4 -__dt__120J3DMtxCalcAnimation<6864J3DMtxCalcAnimationAdaptorDefault<2927J3DMtxCalcCalcTransformMaya>,2624J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019DF0; // type:function size:0x40 scope:global align:4 +__dt__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019DF0; // type:function size:0x40 scope:global align:4 init__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf = .text:0x80019E30; // type:function size:0xC scope:global align:4 calc__114J3DMtxCalcAnimation<64J3DMtxCalcAnimationAdaptorDefault<27J3DMtxCalcCalcTransformMaya>,24J3DMtxCalcJ3DSysInitMaya>Fv = .text:0x80019E3C; // type:function size:0x84 scope:global align:4 init__73J3DMtxCalcNoAnm<27J3DMtxCalcCalcTransformMaya,24J3DMtxCalcJ3DSysInitMaya>FRC3VecRA3_A4_Cf = .text:0x80019EC0; // type:function size:0xC scope:global align:4 @@ -837,7 +838,7 @@ fopAcM_initManager__Fv = .text:0x80023694; // type:function size:0x4 scope:globa __sinit_f_op_actor_mng_cpp = .text:0x80023698; // type:function size:0xC0 scope:global align:4 __ct__5l_HIOFv = .text:0x80023758; // type:function size:0x4 scope:global align:4 __dt__5l_HIOFv = .text:0x8002375C; // type:function size:0x40 scope:global align:4 -fpcM_LayerID__FP10v = .text:0x8002379C; // type:function size:0x48 scope:global align:4 +fpcM_LayerID__FPCv = .text:0x8002379C; // type:function size:0x48 scope:global align:4 __ct__4cXyzFR10cXyz = .text:0x800237E4; // type:function size:0x1C scope:global align:4 abs2XZ__4cXyzCFv = .text:0x80023800; // type:function size:0x3C scope:global align:4 checkFrontRoll__9daPy_py_cCFv = .text:0x8002383C; // type:function size:0x8 scope:global align:4 @@ -2017,7 +2018,7 @@ setActor__13dDemo_actor_cFP10fopAc_ac_c = .text:0x8003BFE8; // type:function siz getPrm_Morf__13dDemo_actor_cFv = .text:0x8003C028; // type:function size:0x180 scope:global align:4 getDemoIDData__13dDemo_actor_cFPiPiPiPUsPUc = .text:0x8003C1A8; // type:function size:0x134 scope:global align:4 dDemo_setDemoData__FP10fopAc_ac_cUcP14mDoExt_McaMorfP10c = .text:0x8003C2DC; // type:function size:0x2BC scope:global align:4 -JSGSetData__13dDemo_actor_cFUlP10v = .text:0x8003C598; // type:function size:0x18C scope:global align:4 +JSGSetData__13dDemo_actor_cFUlPCvUl = .text:0x8003C598; // type:function size:0x18C scope:global align:4 JSGSetTranslation__13dDemo_actor_cFRC3Vec = .text:0x8003C724; // type:function size:0x60 scope:global align:4 JSGSetScaling__13dDemo_actor_cFRC3Vec = .text:0x8003C784; // type:function size:0x28 scope:global align:4 JSGSetRotation__13dDemo_actor_cFRC3Vec = .text:0x8003C7AC; // type:function size:0x64 scope:global align:4 @@ -2411,7 +2412,7 @@ executeStart__17dEvLib_callback_cFv = .text:0x8004BD6C; // type:function size:0x initRun__17dEvLib_callback_cFv = .text:0x8004BE20; // type:function size:0x10 scope:global align:4 executeRun__17dEvLib_callback_cFv = .text:0x8004BE30; // type:function size:0x90 scope:global align:4 __sinit_d_event_lib_cpp = .text:0x8004BEC0; // type:function size:0xC4 scope:global align:4 -__ct__35action_class<1917dEvLib_callback_c>FM17dEvLib_callback_cFP10v = .text:0x8004BF84; // type:function size:0x34 scope:global align:4 +__ct__33action_class<17dEvLib_callback_c>FM17dEvLib_callback_cFPCvPv_bM17dEvLib_callback_cFPCvPv_b = .text:0x8004BF84; // type:function size:0x34 scope:global align:4 __ct__15dSmplMdl_draw_cFv = .text:0x8004BFB8; // type:function size:0xC0 scope:global align:4 __dt__15dSmplMdl_draw_cFv = .text:0x8004C078; // type:function size:0x90 scope:global align:4 draw__15dSmplMdl_draw_cFv = .text:0x8004C108; // type:function size:0xB4 scope:global align:4 @@ -4765,7 +4766,7 @@ checkSetNpcTks__9daPy_py_cFP4cXyzii = .text:0x800CD928; // type:function size:0x setThrowDamage__9daPy_py_cFsffiii = .text:0x800CD930; // type:function size:0x8 scope:global align:4 setPlayerPosAndAngle__9daPy_py_cFPC4cXyzsi = .text:0x800CD938; // type:function size:0x4 scope:global align:4 setPlayerPosAndAngle__9daPy_py_cFPC4cXyzPC5csXyz = .text:0x800CD93C; // type:function size:0x4 scope:global align:4 -setPlayerPosAndAngle__9daPy_py_cFPA4_f = .text:0x800CD940; // type:label +setPlayerPosAndAngle__9daPy_py_cFPA4_f = .text:0x800CD940; // type:function size:0x4 scope:global align:4 setClothesChange__9daPy_py_cFi = .text:0x800CD944; // type:function size:0x4 scope:global align:4 checkPointSubWindowMode__9daPy_py_cCFv = .text:0x800CD948; // type:function size:0x8 scope:global align:4 checkSingleBoarBattleSecondBowReady__9daPy_py_cCFv = .text:0x800CD950; // type:function size:0x8 scope:global align:4 @@ -6399,7 +6400,7 @@ initialize__15daNpcF_Lookat_cFv = .text:0x8013D4DC; // type:function size:0xB0 s setParam__15daNpcF_Lookat_cFffffffffffffsP4cXyz = .text:0x8013D58C; // type:function size:0x274 scope:global align:4 calc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fPP5csXyziii = .text:0x8013D800; // type:function size:0x27C scope:global align:4 adjustMoveDisAngle__15daNpcF_Lookat_cFRssss = .text:0x8013DA7C; // type:function size:0x64 scope:global align:4 -lbl_8013DAE0 = .text:0x8013DAE0; // type:label +initCalc__15daNpcF_Lookat_cFP10fopAc_ac_cPA4_fP4cXyzP5csXyzPfR4cXyzi = .text:0x8013DAE0; // type:function size:0x1F0 scope:global align:4 update__15daNpcF_Lookat_cFP4cXyzP5csXyzPf = .text:0x8013DCD0; // type:function size:0x110 scope:global align:4 calcMoveDisAngle__15daNpcF_Lookat_cFiP4cXyzP5csXyz4cXyzii = .text:0x8013DDE0; // type:function size:0x1DC scope:global align:4 setRotAngle__15daNpcF_Lookat_cFv = .text:0x8013DFBC; // type:function size:0x8C scope:global align:4 @@ -10488,7 +10489,7 @@ cross__8cM3dGTriCFP14cM3dGCyl = .text:0x80258858; // type:function size:0x10 sco setPos__8cM3dGTriFP9Vec = .text:0x80258868; // type:function size:0x70 scope:global align:4 setBg__8cM3dGTriFP9Vec = .text:0x802588D8; // type:function size:0x54 scope:global align:4 set__8cM3dGTriFP9Vec = .text:0x8025892C; // type:function size:0x58 scope:global align:4 -cLib_memCpy__FPvP10v = .text:0x80258984; // type:function size:0x4 scope:global align:4 +cLib_memCpy__FPvPCvUl = .text:0x80258984; // type:function size:0x4 scope:global align:4 cLib_memSet__FPviUl = .text:0x80258988; // type:function size:0x4 scope:global align:4 cLib_addCalc__FPfffff = .text:0x8025898C; // type:function size:0xB8 scope:global align:4 cLib_addCalc2__FPffff = .text:0x80258A44; // type:function size:0x44 scope:global align:4 @@ -10615,7 +10616,7 @@ __ct__10JUTTextureFv = .text:0x8025C0F0; // type:function size:0x40 scope:global setCaptureFlag__10JUTTextureFb = .text:0x8025C130; // type:function size:0x14 scope:global align:4 fastSqrt__5JMathFf_f = .text:0x8025C144; // type:function size:0x18 scope:global align:4 dot__Q29JGeometry8TVec3CFRCQ29JGeometry8TVec3 = .text:0x8025C15C; // type:function size:0x20 scope:global align:4 -__ct__18JPAResourceManagerFP10v = .text:0x8025C17C; // type:function size:0x58 scope:global align:4 +__ct__18JPAResourceManagerFPCvP7JKRHeap = .text:0x8025C17C; // type:function size:0x58 scope:global align:4 getResource__18JPAResourceManagerCFUs = .text:0x8025C1D4; // type:function size:0x44 scope:global align:4 checkUserIndexDuplication__18JPAResourceManagerCFUs = .text:0x8025C218; // type:function size:0x40 scope:global align:4 swapTexture__18JPAResourceManagerFPC7ResTIMGPCc = .text:0x8025C258; // type:function size:0x98 scope:global align:4 @@ -10882,7 +10883,7 @@ JSGUpdate__Q26JStage7TObjectFv = .text:0x80267480; // type:function size:0x4 sco JSGGetFlag__Q26JStage7TObjectCFv = .text:0x80267484; // type:function size:0x8 scope:global align:4 JSGSetFlag__Q26JStage7TObjectFUl = .text:0x8026748C; // type:function size:0x4 scope:global align:4 JSGGetData__Q26JStage7TObjectCFUlPvUl = .text:0x80267490; // type:function size:0x8 scope:global align:4 -JSGSetData__Q26JStage7TObjectFUlP10v = .text:0x80267498; // type:function size:0x4 scope:global align:4 +JSGSetData__Q26JStage7TObjectFUlPCvUl = .text:0x80267498; // type:function size:0x4 scope:global align:4 JSGGetParent__Q26JStage7TObjectCFPPQ26JStage7TObjectPUl = .text:0x8026749C; // type:function size:0x4 scope:global align:4 JSGSetParent__Q26JStage7TObjectFPQ26JStage7TObjectUl = .text:0x802674A0; // type:function size:0x4 scope:global align:4 JSGSetRelation__Q26JStage7TObjectFbPQ26JStage7TObjectUl = .text:0x802674A4; // type:function size:0x4 scope:global align:4 @@ -10910,8 +10911,8 @@ create__Q37JStudio3ctb8TFactoryFRCQ47JStudio3ctb4data13TParse_TBlock = .text:0x8 destroy__Q37JStudio3ctb8TFactoryFPQ37JStudio3ctb7TObject = .text:0x8026795C; // type:function size:0x24 scope:global align:4 __ct__Q37JStudio3ctb6TParseFPQ37JStudio3ctb8TControl = .text:0x80267980; // type:function size:0x14 scope:global align:4 __dt__Q37JStudio3ctb6TParseFv = .text:0x80267994; // type:function size:0x58 scope:global align:4 -parseHeader_next__Q37JStudio3ctb6TParseFPP10v = .text:0x802679EC; // type:function size:0x90 scope:global align:4 -parseBlock_next__Q37JStudio3ctb6TParseFPP10v = .text:0x80267A7C; // type:function size:0xE0 scope:global align:4 +parseHeader_next__Q37JStudio3ctb6TParseFPPCvPUlUl = .text:0x802679EC; // type:function size:0x90 scope:global align:4 +parseBlock_next__Q37JStudio3ctb6TParseFPPCvPUlUl = .text:0x80267A7C; // type:function size:0xE0 scope:global align:4 __dt__Q37JStudio3ctb14TObject_TxyzRyFv = .text:0x80267B5C; // type:function size:0x58 scope:global align:4 get_ID__Q47JStudio3ctb4data13TParse_TBlockCFv = .text:0x80267BB4; // type:function size:0x1C scope:global align:4 end__Q27JGadget37TLinkListFv = .text:0x80267BD0; // type:function size:0x8 scope:global align:4 @@ -10992,9 +10993,9 @@ range_getParameter_outside__Q27JStudio29TFunctionValueAttribute_rangeCFd = .text interpolateValue_plateau__Q27JStudio13functionvalueFddddd = .text:0x80269AB0; // type:function size:0x18 scope:global align:4 __ct__Q27JGadget84TContainerEnumerator_const>FRCQ27JGadget44TVector_pointer = .text:0x80269AC8; // type:function size:0x14 scope:global align:4 __dt__Q27JStudio29TFunctionValueAttribute_referFv = .text:0x80269ADC; // type:function size:0x5C scope:global align:4 -size__Q27JGadget42TVector<2Pv,27Q27JGadget14TAllocator<2Pv>>CFv = .text:0x80269B38; // type:function size:0x28 scope:global align:4 -fn_80269B60 = .text:0x80269B60; // type:function size:0x98 scope:global align:4 -fn_80269BF8 = .text:0x80269BF8; // type:function size:0xC0 scope:global align:4 +size__Q27JGadget42TVector>CFv = .text:0x80269B38; // type:function size:0x28 scope:global align:4 +findUpperBound_binary_all>__7JGadgetFQ37JStudio29TFunctionValue_list_parameter15TIterator_data_Q37JStudio29TFunctionValue_list_parameter15TIterator_data_RCdQ23std7less_Q37JStudio29TFunctionValue_list_parameter15TIterator_data_ = .text:0x80269B60; // type:function size:0x98 scope:global align:4 +findUpperBound_binary_all>__7JGadgetFQ37JStudio22TFunctionValue_hermite15TIterator_data_Q37JStudio22TFunctionValue_hermite15TIterator_data_RCdQ23std7less_Q37JStudio22TFunctionValue_hermite15TIterator_data_ = .text:0x80269BF8; // type:function size:0xC0 scope:global align:4 __dt__Q27JStudio24TFunctionValue_compositeFv = .text:0x80269CB8; // type:function size:0x5C scope:global align:4 __dt__Q27JStudio23TFunctionValue_constantFv = .text:0x80269D14; // type:function size:0x40 scope:global align:4 __dt__Q27JStudio25TFunctionValue_transitionFv = .text:0x80269D54; // type:function size:0x40 scope:global align:4 @@ -11004,7 +11005,7 @@ __dt__Q27JStudio22TFunctionValue_hermiteFv = .text:0x80269E14; // type:function distance__3stdFQ37JStudio29TFunctionValue_list_parameter15TIterator_data_Q37JStudio29TFunctionValue_list_parameter15TIterator_data__l = .text:0x80269E54; // type:function size:0x1C scope:global align:4 distance__3stdFQ37JStudio22TFunctionValue_hermite15TIterator_data_Q37JStudio22TFunctionValue_hermite15TIterator_data__l = .text:0x80269E70; // type:function size:0x3C scope:global align:4 __dt__Q37JStudio3fvb7TObjectFv = .text:0x80269EAC; // type:function size:0x40 scope:global align:4 -prepare__Q37JStudio3fvb7TObjectFRQ47JStudio3fvb4data19TParse_TBlock = .text:0x80269EEC; // type:function size:0x22C scope:global align:4 +prepare__Q37JStudio3fvb7TObjectFRCQ47JStudio3fvb4data13TParse_TBlockPQ37JStudio3fvb8TControl = .text:0x80269EEC; // type:function size:0x22C scope:global align:4 getCompositeData_raw___Q37JStudio3fvb17@unnamed@fvb_cpp@FPCv = .text:0x8026A118; // type:function size:0x18 scope:global align:4 getCompositeData_index___Q37JStudio3fvb17@unnamed@fvb_cpp@FPCv = .text:0x8026A130; // type:function size:0x18 scope:global align:4 getCompositeData_parameter___Q37JStudio3fvb17@unnamed@fvb_cpp@FPCv = .text:0x8026A148; // type:function size:0x1C scope:global align:4 @@ -11037,8 +11038,8 @@ create__Q37JStudio3fvb8TFactoryFRCQ47JStudio3fvb4data13TParse_TBlock = .text:0x8 destroy__Q37JStudio3fvb8TFactoryFPQ37JStudio3fvb7TObject = .text:0x8026A858; // type:function size:0x24 scope:global align:4 __ct__Q37JStudio3fvb6TParseFPQ37JStudio3fvb8TControl = .text:0x8026A87C; // type:function size:0x14 scope:global align:4 __dt__Q37JStudio3fvb6TParseFv = .text:0x8026A890; // type:function size:0x58 scope:global align:4 -parseHeader_next__Q37JStudio3fvb6TParseFPP10v = .text:0x8026A8E8; // type:function size:0x90 scope:global align:4 -parseBlock_next__Q37JStudio3fvb6TParseFPP10v = .text:0x8026A978; // type:function size:0xF0 scope:global align:4 +parseHeader_next__Q37JStudio3fvb6TParseFPPCvPUlUl = .text:0x8026A8E8; // type:function size:0x90 scope:global align:4 +parseBlock_next__Q37JStudio3fvb6TParseFPPCvPUlUl = .text:0x8026A978; // type:function size:0xF0 scope:global align:4 __dt__Q37JStudio3fvb17TObject_compositeFv = .text:0x8026AA68; // type:function size:0x68 scope:global align:4 __dt__Q37JStudio3fvb16TObject_constantFv = .text:0x8026AAD0; // type:function size:0x68 scope:global align:4 __dt__Q37JStudio3fvb18TObject_transitionFv = .text:0x8026AB38; // type:function size:0x68 scope:global align:4 @@ -11088,7 +11089,7 @@ adaptor_do_prepare__Q27JStudio8TAdaptorFv = .text:0x8026BD38; // type:function s adaptor_do_begin__Q27JStudio8TAdaptorFv = .text:0x8026BD3C; // type:function size:0x4 scope:global align:4 adaptor_do_end__Q27JStudio8TAdaptorFv = .text:0x8026BD40; // type:function size:0x4 scope:global align:4 adaptor_do_update__Q27JStudio8TAdaptorFUl = .text:0x8026BD44; // type:function size:0x4 scope:global align:4 -adaptor_do_data__Q27JStudio8TAdaptorFP10v = .text:0x8026BD48; // type:function size:0x4 scope:global align:4 +adaptor_do_data__Q27JStudio8TAdaptorFPCvUlPCvUl = .text:0x8026BD48; // type:function size:0x4 scope:global align:4 adaptor_setVariableValue__Q27JStudio8TAdaptorFPQ27JStudio8TControlUlQ37JStudio4data15TEOperationDataPCvUl = .text:0x8026BD4C; // type:function size:0x74 scope:global align:4 adaptor_setVariableValue_n__Q27JStudio8TAdaptorFPQ27JStudio8TControlP19Uc = .text:0x8026BDC0; // type:function size:0xE4 scope:global align:4 adaptor_setVariableValue_immediate__Q27JStudio8TAdaptorFPCQ37JStudio8TAdaptor27TSetVariableValue_immediate = .text:0x8026BEA4; // type:function size:0x60 scope:global align:4 @@ -11107,7 +11108,7 @@ forward_value__Q27JStudio7TObjectFUl = .text:0x8026C368; // type:function size:0 do_begin__Q27JStudio7TObjectFv = .text:0x8026C3CC; // type:function size:0x20 scope:global align:4 do_end__Q27JStudio7TObjectFv = .text:0x8026C3EC; // type:function size:0x20 scope:global align:4 do_wait__Q27JStudio7TObjectFUl = .text:0x8026C40C; // type:function size:0x4 scope:global align:4 -do_data__Q27JStudio7TObjectFP10v = .text:0x8026C410; // type:function size:0x20 scope:global align:4 +do_data__Q27JStudio7TObjectFPCvUlPCvUl = .text:0x8026C410; // type:function size:0x20 scope:global align:4 __ct__Q27JStudio7TObjectFRQ47JStudio3stb4data26TParse_TBlock_object = .text:0x8026C430; // type:function size:0x4C scope:global align:4 __dt__Q27JStudio14TAdaptor_actorFv = .text:0x8026C47C; // type:function size:0x40 scope:global align:4 __ct__Q27JStudio13TObject_actorFRQ47JStudio3stb4data26TParse_TBlock_object = .text:0x8026C4BC; // type:function size:0x3C scope:global align:4 @@ -11162,7 +11163,7 @@ getValue_uint8__Q27JStudio14TVariableValueCFv = .text:0x8026E3CC; // type:functi setValue_functionValue__Q27JStudio14TVariableValueFPQ27JStudio14TFunctionValue = .text:0x8026E440; // type:function size:0x1C scope:global align:4 __ct__Q37JStudio14TVariableValue13TOutput_none_Fv = .text:0x8026E45C; // type:function size:0x10 scope:global align:4 isEqual__Q37JStudio6object7TIDDataFRQ37JStudio6object13TIDData = .text:0x8026E46C; // type:function size:0xE8 scope:global align:4 -__ct__Q37JStudio3stb7TObjectFUlP10v = .text:0x8026E554; // type:function size:0x80 scope:global align:4 +__ct__Q37JStudio3stb7TObjectFUlPCvUl = .text:0x8026E554; // type:function size:0x80 scope:global align:4 __ct__Q37JStudio3stb7TObjectFRCQ47JStudio3stb4data20TParse_TBlock_object = .text:0x8026E5D4; // type:function size:0x98 scope:global align:4 __dt__Q37JStudio3stb7TObjectFv = .text:0x8026E66C; // type:function size:0x40 scope:global align:4 setFlag_operation__Q37JStudio3stb7TObjectFUci = .text:0x8026E6AC; // type:function size:0x54 scope:global align:4 @@ -11172,7 +11173,7 @@ do_begin__Q37JStudio3stb7TObjectFv = .text:0x8026E944; // type:function size:0x4 do_end__Q37JStudio3stb7TObjectFv = .text:0x8026E948; // type:function size:0x4 scope:global align:4 do_paragraph__Q37JStudio3stb7TObjectFUlPCvUl = .text:0x8026E94C; // type:function size:0x4 scope:global align:4 do_wait__Q37JStudio3stb7TObjectFUl = .text:0x8026E950; // type:function size:0x4 scope:global align:4 -do_data__Q37JStudio3stb7TObjectFP10v = .text:0x8026E954; // type:function size:0x4 scope:global align:4 +do_data__Q37JStudio3stb7TObjectFPCvUlPCvUl = .text:0x8026E954; // type:function size:0x4 scope:global align:4 process_sequence___Q37JStudio3stb7TObjectFv = .text:0x8026E958; // type:function size:0x144 scope:global align:4 process_paragraph_reserved___Q37JStudio3stb7TObjectFUlPCvUl = .text:0x8026EA9C; // type:function size:0xCC scope:global align:4 __ct__Q37JStudio3stb15TObject_controlFPCvUl = .text:0x8026EB68; // type:function size:0x4C scope:global align:4 @@ -11190,8 +11191,8 @@ __dt__Q37JStudio3stb8TFactoryFv = .text:0x8026EFF4; // type:function size:0x40 s destroy__Q37JStudio3stb8TFactoryFPQ37JStudio3stb7TObject = .text:0x8026F034; // type:function size:0x24 scope:global align:4 __ct__Q37JStudio3stb6TParseFPQ37JStudio3stb8TControl = .text:0x8026F058; // type:function size:0x14 scope:global align:4 __dt__Q37JStudio3stb6TParseFv = .text:0x8026F06C; // type:function size:0x58 scope:global align:4 -parseHeader_next__Q37JStudio3stb6TParseFPP10v = .text:0x8026F0C4; // type:function size:0xC8 scope:global align:4 -parseBlock_next__Q37JStudio3stb6TParseFPP10v = .text:0x8026F18C; // type:function size:0x58 scope:global align:4 +parseHeader_next__Q37JStudio3stb6TParseFPPCvPUlUl = .text:0x8026F0C4; // type:function size:0xC8 scope:global align:4 +parseBlock_next__Q37JStudio3stb6TParseFPPCvPUlUl = .text:0x8026F18C; // type:function size:0x58 scope:global align:4 parseHeader__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data14TParse_THeaderUl = .text:0x8026F1E4; // type:function size:0x8 scope:global align:4 parseBlock_block__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data13TParse_TBlockUl = .text:0x8026F1EC; // type:function size:0x38 scope:global align:4 parseBlock_object__Q37JStudio3stb6TParseFRCQ47JStudio3stb4data20TParse_TBlock_objectUl = .text:0x8026F224; // type:function size:0x100 scope:global align:4 @@ -11235,7 +11236,7 @@ adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_actorFv = .text:0x8027035C; // adaptor_do_begin__Q214JStudio_JStage14TAdaptor_actorFv = .text:0x802703E0; // type:function size:0xE4 scope:global align:4 adaptor_do_end__Q214JStudio_JStage14TAdaptor_actorFv = .text:0x802704C4; // type:function size:0x54 scope:global align:4 adaptor_do_update__Q214JStudio_JStage14TAdaptor_actorFUl = .text:0x80270518; // type:function size:0x48 scope:global align:4 -adaptor_do_data__Q214JStudio_JStage14TAdaptor_actorFP10v = .text:0x80270560; // type:function size:0x8 scope:global align:4 +adaptor_do_data__Q214JStudio_JStage14TAdaptor_actorFPCvUlPCvUl = .text:0x80270560; // type:function size:0x8 scope:global align:4 adaptor_do_SHAPE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x80270568; // type:function size:0x50 scope:global align:4 adaptor_do_ANIMATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x802705B8; // type:function size:0x50 scope:global align:4 adaptor_do_ANIMATION_MODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x80270608; // type:function size:0x14 scope:global align:4 @@ -11248,16 +11249,16 @@ adaptor_do_PARENT_FUNCTION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15 adaptor_do_RELATION__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x8027079C; // type:function size:0x44 scope:global align:4 adaptor_do_RELATION_NODE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x802707E0; // type:function size:0x5C scope:global align:4 adaptor_do_RELATION_ENABLE__Q214JStudio_JStage14TAdaptor_actorFQ37JStudio4data15TEOperationDataPCvUl = .text:0x8027083C; // type:function size:0x38 scope:global align:4 -setJSG_ID___Q214JStudio_JStage14TAdaptor_actorFMQ26JStage6TActorFP10v = .text:0x80270874; // type:function size:0x3C scope:global align:4 +setJSG_ID___Q214JStudio_JStage14TAdaptor_actorFMQ26JStage6TActorFPCvPvUl_vQ37JStudio4data15TEOperationDataPCvUl = .text:0x80270874; // type:function size:0x3C scope:global align:4 setJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x802708B0; // type:function size:0x184 scope:global align:4 getJSG_SRT___Q214JStudio_JStage14TAdaptor_actorFPCQ27JStudio8TControl = .text:0x80270A34; // type:function size:0x188 scope:global align:4 __cl__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_CFfPQ27JStudio8TAdaptor = .text:0x80270BBC; // type:function size:0xD4 scope:global align:4 __dt__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv = .text:0x80270C90; // type:function size:0x58 scope:global align:4 -__sinit_object-actor_cpp = .text:0x80270CE8; // type:function size:0x1D8 scope:global align:4 +__sinit_object-actor_cpp = .text:0x80270CE8; // type:function size:0x1D8 scope:local align:4 adaptor_setVariableValue_immediate__Q27JStudio8TAdaptorFUlf = .text:0x80270EC0; // type:function size:0x28 scope:global align:4 -__ct__Q214JStudio_JStage85TVariableValueOutput_object_<34Q214JStudio_JStage14TAdaptor_actor,16Q26JStage6TActor>FQ37JStudio14TAdaptor_actor15TEVariableValueMQ26JStage6TActorFP10v = .text:0x80270EE8; // type:function size:0x44 scope:global align:4 -__dt__Q214JStudio_JStage85TVariableValueOutput_object_<34Q214JStudio_JStage14TAdaptor_actor,16Q26JStage6TActor>Fv = .text:0x80270F2C; // type:function size:0x58 scope:global align:4 -__ct__Q214JStudio_JStage85TVariableValueOutput_object_<34Q214JStudio_JStage14TAdaptor_actor,16Q26JStage6TActor>Fv = .text:0x80270F84; // type:function size:0x4C scope:global align:4 +__ct__Q214JStudio_JStage81TVariableValueOutput_object_FQ37JStudio14TAdaptor_actor15TEVariableValueMQ26JStage6TActorFPCvPvf_vMQ26JStage6TActorFPCvPCv_f = .text:0x80270EE8; // type:function size:0x44 scope:global align:4 +__dt__Q214JStudio_JStage81TVariableValueOutput_object_Fv = .text:0x80270F2C; // type:function size:0x58 scope:global align:4 +__ct__Q214JStudio_JStage81TVariableValueOutput_object_Fv = .text:0x80270F84; // type:function size:0x4C scope:global align:4 __cl__Q214JStudio_JStage81TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x80270FD0; // type:function size:0x30 scope:global align:4 __ct__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_FQ37JStudio14TAdaptor_actor15TEVariableValueMQ214JStudio_JStage14TAdaptor_actorQ37JStudio4data15TEAnimationModeMQ26JStage6TActorFPCvPvf_vMQ26JStage6TActorFPCvPCv_fMQ26JStage6TActorFPCvPCv_f = .text:0x80271000; // type:function size:0x88 scope:global align:4 __ct__Q314JStudio_JStage14TAdaptor_actor26TVVOutput_ANIMATION_FRAME_Fv = .text:0x80271088; // type:function size:0x74 scope:global align:4 @@ -11274,7 +11275,7 @@ adaptor_do_prepare__Q214JStudio_JStage15TAdaptor_cameraFv = .text:0x80271454; // adaptor_do_begin__Q214JStudio_JStage15TAdaptor_cameraFv = .text:0x80271498; // type:function size:0xD8 scope:global align:4 adaptor_do_end__Q214JStudio_JStage15TAdaptor_cameraFv = .text:0x80271570; // type:function size:0x54 scope:global align:4 adaptor_do_update__Q214JStudio_JStage15TAdaptor_cameraFUl = .text:0x802715C4; // type:function size:0x60 scope:global align:4 -adaptor_do_data__Q214JStudio_JStage15TAdaptor_cameraFP10v = .text:0x80271624; // type:function size:0x8 scope:global align:4 +adaptor_do_data__Q214JStudio_JStage15TAdaptor_cameraFPCvUlPCvUl = .text:0x80271624; // type:function size:0x8 scope:global align:4 adaptor_do_PARENT__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl = .text:0x8027162C; // type:function size:0x44 scope:global align:4 adaptor_do_PARENT_NODE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl = .text:0x80271670; // type:function size:0x5C scope:global align:4 adaptor_do_PARENT_ENABLE__Q214JStudio_JStage15TAdaptor_cameraFQ37JStudio4data15TEOperationDataPCvUl = .text:0x802716CC; // type:function size:0x5C scope:global align:4 @@ -11291,33 +11292,33 @@ transformOnSet_transform_ifEnabled__Q27JStudio8TControlCFRQ37JStudio8TControl25T transformOnGet_transform_ifEnabled__Q27JStudio8TControlCFRQ37JStudio8TControl25TTransform_position = .text:0x80271CC4; // type:function size:0x48 scope:global align:4 transform_toGlobalFromLocal__14JStudio_JStageFPQ37JStudio8TControl19TTransform_positionRCQ37JStudio8TControl19TTransform_positionPCQ26JStage7TObjectUl = .text:0x80271D0C; // type:function size:0x50 scope:global align:4 transform_toLocalFromGlobal__14JStudio_JStageFPQ37JStudio8TControl19TTransform_positionRCQ37JStudio8TControl19TTransform_positionPCQ26JStage7TObjectUl = .text:0x80271D5C; // type:function size:0x50 scope:global align:4 -__ct__Q214JStudio_JStage87TVariableValueOutput_object_<35Q214JStudio_JStage15TAdaptor_camera,17Q26JStage7TCamera>FQ37JStudio15TAdaptor_camera15TEVariableValueMQ26JStage7TCameraFP10v = .text:0x80271DAC; // type:function size:0x44 scope:global align:4 -__dt__Q214JStudio_JStage87TVariableValueOutput_object_<35Q214JStudio_JStage15TAdaptor_camera,17Q26JStage7TCamera>Fv = .text:0x80271DF0; // type:function size:0x58 scope:global align:4 -__ct__Q214JStudio_JStage87TVariableValueOutput_object_<35Q214JStudio_JStage15TAdaptor_camera,17Q26JStage7TCamera>Fv = .text:0x80271E48; // type:function size:0x4C scope:global align:4 -fn_80271E94 = .text:0x80271E94; // type:function size:0x30 scope:global align:4 -fn_80271EC4 = .text:0x80271EC4; // type:function size:0x1C scope:global align:4 +__ct__Q214JStudio_JStage83TVariableValueOutput_object_FQ37JStudio15TAdaptor_camera15TEVariableValueMQ26JStage7TCameraFPCvPvf_vMQ26JStage7TCameraFPCvPCv_f = .text:0x80271DAC; // type:function size:0x44 scope:global align:4 +__dt__Q214JStudio_JStage83TVariableValueOutput_object_Fv = .text:0x80271DF0; // type:function size:0x58 scope:global align:4 +__ct__Q214JStudio_JStage83TVariableValueOutput_object_Fv = .text:0x80271E48; // type:function size:0x4C scope:global align:4 +__cl__Q214JStudio_JStage83TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x80271E94; // type:function size:0x30 scope:global align:4 +getFromTransformation_T__Q27JStudio4mathFP3VecPA4_Cf = .text:0x80271EC4; // type:function size:0x1C scope:global align:4 __ct__Q214JStudio_JStage12TAdaptor_fogFPQ26JStage13TSystem = .text:0x80271EE0; // type:function size:0x5C scope:global align:4 __dt__Q214JStudio_JStage12TAdaptor_fogFv = .text:0x80271F3C; // type:function size:0x74 scope:global align:4 adaptor_do_prepare__Q214JStudio_JStage12TAdaptor_fogFv = .text:0x80271FB0; // type:function size:0x44 scope:global align:4 adaptor_do_begin__Q214JStudio_JStage12TAdaptor_fogFv = .text:0x80271FF4; // type:function size:0xFC scope:global align:4 adaptor_do_end__Q214JStudio_JStage12TAdaptor_fogFv = .text:0x802720F0; // type:function size:0x54 scope:global align:4 adaptor_do_update__Q214JStudio_JStage12TAdaptor_fogFUl = .text:0x80272144; // type:function size:0x90 scope:global align:4 -adaptor_do_data__Q214JStudio_JStage12TAdaptor_fogFP10v = .text:0x802721D4; // type:function size:0x8 scope:global align:4 +adaptor_do_data__Q214JStudio_JStage12TAdaptor_fogFPCvUlPCvUl = .text:0x802721D4; // type:function size:0x8 scope:global align:4 __sinit_object-fog_cpp = .text:0x802721DC; // type:function size:0x114 scope:global align:4 -__ct__Q214JStudio_JStage81TVariableValueOutput_object_<32Q214JStudio_JStage12TAdaptor_fog,14Q26JStage4TFog>FQ37JStudio12TAdaptor_fog15TEVariableValueMQ26JStage4TFogFP10v = .text:0x802722F0; // type:function size:0x44 scope:global align:4 -__dt__Q214JStudio_JStage81TVariableValueOutput_object_<32Q214JStudio_JStage12TAdaptor_fog,14Q26JStage4TFog>Fv = .text:0x80272334; // type:function size:0x58 scope:global align:4 -__ct__Q214JStudio_JStage81TVariableValueOutput_object_<32Q214JStudio_JStage12TAdaptor_fog,14Q26JStage4TFog>Fv = .text:0x8027238C; // type:function size:0x4C scope:global align:4 -fn_802723D8 = .text:0x802723D8; // type:function size:0x30 scope:global align:4 -__ct__Q214JStudio_JStage14TAdaptor_lightFPQ26JStage13TSystem = .text:0x80272408; // type:function size:0x64 scope:global align:4 +__ct__Q214JStudio_JStage77TVariableValueOutput_object_FQ37JStudio12TAdaptor_fog15TEVariableValueMQ26JStage4TFogFPCvPvf_vMQ26JStage4TFogFPCvPCv_f = .text:0x802722F0; // type:function size:0x44 scope:global align:4 +__dt__Q214JStudio_JStage77TVariableValueOutput_object_Fv = .text:0x80272334; // type:function size:0x58 scope:global align:4 +__ct__Q214JStudio_JStage77TVariableValueOutput_object_Fv = .text:0x8027238C; // type:function size:0x4C scope:global align:4 +__cl__Q214JStudio_JStage77TVariableValueOutput_object_CFfPQ27JStudio8TAdaptor = .text:0x802723D8; // type:function size:0x30 scope:global align:4 +__ct__Q214JStudio_JStage14TAdaptor_lightFPCQ26JStage7TSystemPQ26JStage6TLight = .text:0x80272408; // type:function size:0x64 scope:global align:4 __dt__Q214JStudio_JStage14TAdaptor_lightFv = .text:0x8027246C; // type:function size:0x74 scope:global align:4 adaptor_do_prepare__Q214JStudio_JStage14TAdaptor_lightFv = .text:0x802724E0; // type:function size:0x44 scope:global align:4 adaptor_do_begin__Q214JStudio_JStage14TAdaptor_lightFv = .text:0x80272524; // type:function size:0x1F8 scope:global align:4 adaptor_do_end__Q214JStudio_JStage14TAdaptor_lightFv = .text:0x8027271C; // type:function size:0x54 scope:global align:4 adaptor_do_update__Q214JStudio_JStage14TAdaptor_lightFUl = .text:0x80272770; // type:function size:0x1E8 scope:global align:4 -adaptor_do_data__Q214JStudio_JStage14TAdaptor_lightFP10v = .text:0x80272958; // type:function size:0x8 scope:global align:4 +adaptor_do_data__Q214JStudio_JStage14TAdaptor_lightFPCvUlPCvUl = .text:0x80272958; // type:function size:0x8 scope:global align:4 adaptor_do_FACULTY__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl = .text:0x80272960; // type:function size:0x5C scope:global align:4 adaptor_do_ENABLE__Q214JStudio_JStage14TAdaptor_lightFQ37JStudio4data15TEOperationDataPCvUl = .text:0x802729BC; // type:function size:0x8 scope:global align:4 -fn_802729C4 = .text:0x802729C4; // type:function size:0xC scope:global align:4 +__cl__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_CFfPQ27JStudio8TAdaptor = .text:0x802729C4; // type:function size:0xC scope:global align:4 __dt__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_Fv = .text:0x802729D0; // type:function size:0x58 scope:global align:4 __sinit_object-light_cpp = .text:0x80272A28; // type:function size:0xF4 scope:global align:4 __ct__Q314JStudio_JStage14TAdaptor_light20TVVOutput_direction_FQ37JStudio14TAdaptor_light15TEVariableValueQ314JStudio_JStage14TAdaptor_light12TEDirection_ = .text:0x80272B1C; // type:function size:0x18 scope:global align:4 @@ -11348,7 +11349,7 @@ adaptor_do_REPEAT__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperat adaptor_do_CONTINUOUS__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl = .text:0x802733B0; // type:function size:0x1C scope:global align:4 adaptor_do_LOCATED__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl = .text:0x802733CC; // type:function size:0x28 scope:global align:4 adaptor_do_ON_EXIT_NOT_END__Q215JStudio_JAudio214TAdaptor_soundFQ37JStudio4data15TEOperationDataPCvUl = .text:0x802733F4; // type:function size:0x1C scope:global align:4 -fn_80273410 = .text:0x80273410; // type:function size:0x20 scope:global align:4 +__cl__Q315JStudio_JAudio214TAdaptor_sound13TVVOSetValue_CFfPQ27JStudio8TAdaptor = .text:0x80273410; // type:function size:0x20 scope:global align:4 prepareSound___Q215JStudio_JAudio214TAdaptor_soundFv = .text:0x80273430; // type:function size:0xA4 scope:global align:4 beginSound_fadeIn___Q215JStudio_JAudio214TAdaptor_soundFv = .text:0x802734D4; // type:function size:0xA4 scope:global align:4 endSound_fadeOut___Q215JStudio_JAudio214TAdaptor_soundFUl = .text:0x80273578; // type:function size:0x44 scope:global align:4 @@ -11386,8 +11387,8 @@ drawAfter__Q317JStudio_JParticle17TAdaptor_particle21TJPACallback_emitter_FP14JP beginParticle_fadeIn___Q217JStudio_JParticle17TAdaptor_particleFv = .text:0x802743FC; // type:function size:0xB8 scope:global align:4 endParticle_fadeOut___Q217JStudio_JParticle17TAdaptor_particleFUl = .text:0x802744B4; // type:function size:0x124 scope:global align:4 imixcopy__7JASCalcFP11short = .text:0x802745D8; // type:function size:0x30 scope:global align:4 -bcopyfast__7JASCalcFP10v = .text:0x80274608; // type:function size:0x3C scope:global align:4 -bcopy__7JASCalcFP10v = .text:0x80274644; // type:function size:0xD4 scope:global align:4 +bcopyfast__7JASCalcFPCvPvUl = .text:0x80274608; // type:function size:0x3C scope:global align:4 +bcopy__7JASCalcFPPCvPvUl = .text:0x80274644; // type:function size:0xD4 scope:global align:4 bzerofast__7JASCalcFPvUl = .text:0x80274718; // type:function size:0x2C scope:global align:4 bzero__7JASCalcFPvUl = .text:0x80274744; // type:function size:0xCC scope:global align:4 pow2__7JASCalcFf = .text:0x80274810; // type:function size:0x124 scope:global align:4 @@ -11399,9 +11400,9 @@ sendCmdMsg__13JASTaskThreadFPFPv_vPCvUl = .text:0x80274B00; // type:function siz sendCmdMsg__13JASTaskThreadFPFPv_vPv = .text:0x80274B74; // type:function size:0x74 scope:global align:4 run__13JASTaskThreadFv = .text:0x80274BE8; // type:function size:0xB0 scope:global align:4 pause__13JASTaskThreadFb = .text:0x80274C98; // type:function size:0x74 scope:global align:4 -free__66JASMemChunkPool<1024,42Q217JASThreadingModel19ObjectLevelLockable>FPv = .text:0x80274D0C; // type:function size:0xC0 scope:global align:4 -alloc__66JASMemChunkPool<1024,42Q217JASThreadingModel19ObjectLevelLockable>FUl = .text:0x80274DCC; // type:function size:0x144 scope:global align:4 -JASMemChunkPool<1024,__ct__Q243Q217JASThreadingModel19ObjectLevelLockable>11MemoryChunkF20JASMemChunkPool<1024PQ243Q217JASThreadingModel19ObjectLevelLockable>11MemoryChunk = .text:0x80274F10; // type:function size:0x14 scope:global align:4 +free__64JASMemChunkPool<1024,Q217JASThreadingModel19ObjectLevelLockable>FPv = .text:0x80274D0C; // type:function size:0xC0 scope:global align:4 +alloc__64JASMemChunkPool<1024,Q217JASThreadingModel19ObjectLevelLockable>FUl = .text:0x80274DCC; // type:function size:0x144 scope:global align:4 +__ct__Q264JASMemChunkPool<1024,Q217JASThreadingModel19ObjectLevelLockable>11MemoryChunkFPQ264JASMemChunkPool<1024,Q217JASThreadingModel19ObjectLevelLockable>11MemoryChunk = .text:0x80274F10; // type:function size:0x14 scope:global align:4 __dt__18JASCriticalSectionFv = .text:0x80274F24; // type:function size:0x58 scope:global align:4 getThreadPointer__6JASDvdFv = .text:0x80274F7C; // type:function size:0x8 scope:global align:4 createThread__6JASDvdFliUl = .text:0x80274F84; // type:function size:0xA0 scope:global align:4 @@ -11525,12 +11526,12 @@ begin__Q27JGadget25TLinkList<8JASTrack,-576>Fv = .text:0x80278350; // type:funct begin__Q27JGadget13TNodeLinkListFv = .text:0x80278384; // type:function size:0x34 scope:global align:4 getNext__Q27JGadget13TLinkListNodeCFv = .text:0x802783B8; // type:function size:0x8 scope:global align:4 __as__Q37JGadget25TLinkList<8JASTrack,-576>8iteratorFRCQ37JGadget25TLinkList<8JASTrack,-576>8iterator = .text:0x802783C0; // type:function size:0x44 scope:global align:4 -__as__Q27JGadget87TIterator<34Q23std26bidirectional_iterator_tag,98JASTrack,1l,10P8JASTrack,10R8JASTrack>FRQ27JGadget87TIterator<34Q23std26bidirectional_iterator_tag,98JASTrack,1l,10P8JASTrack,10R8JASTrack> = .text:0x80278404; // type:function size:0x30 scope:global align:4 -__as__Q23std86iterator<34Q23std26bidirectional_iterator_tag,98JASTrack,1l,10P8JASTrack,10R8JASTrack>FRQ23std86iterator<34Q23std26bidirectional_iterator_tag,98JASTrack,1l,10P8JASTrack,10R8JASTrack> = .text:0x80278434; // type:function size:0x4 scope:global align:4 +__as__Q27JGadget85TIteratorFRQ27JGadget85TIterator = .text:0x80278404; // type:function size:0x30 scope:global align:4 +__as__Q23std84iteratorFRQ23std84iterator = .text:0x80278434; // type:function size:0x4 scope:global align:4 __pp__Q37JGadget25TLinkList<8JASTrack,-576>8iteratorFv = .text:0x80278438; // type:function size:0x30 scope:global align:4 __pp__Q37JGadget13TNodeLinkList8iteratorFv = .text:0x80278468; // type:function size:0x38 scope:global align:4 __rf__Q37JGadget25TLinkList<8JASTrack,-576>8iteratorCFv = .text:0x802784A0; // type:function size:0x24 scope:global align:4 -fn_802784C4 = .text:0x802784C4; // type:function size:0x8 scope:global align:4 +__rf__Q37JGadget13TNodeLinkList8iteratorCFv = .text:0x802784C4; // type:function size:0x8 scope:global align:4 Element_toValue__Q27JGadget25TLinkList<8JASTrack,-576>FPQ27JGadget13TLinkListNode = .text:0x802784CC; // type:function size:0x8 scope:global align:4 __ml__Q37JGadget25TLinkList<8JASTrack,-576>8iteratorCFv = .text:0x802784D4; // type:function size:0x4 scope:global align:4 Remove__Q27JGadget25TLinkList<8JASTrack,-576>FP8JASTrack = .text:0x802784D8; // type:function size:0x3C scope:global align:4 @@ -11675,7 +11676,7 @@ cmdPrintf__12JASSeqParserFP8JASTrackPUl = .text:0x8027AAB8; // type:function siz execNoteOnGate__12JASSeqParserFP8JASTrackUlUlUlUl = .text:0x8027ACB8; // type:function size:0xA0 scope:global align:4 execNoteOnMidi__12JASSeqParserFP8JASTrackUlUlUl = .text:0x8027AD58; // type:function size:0x14 scope:global align:4 execNoteOff__12JASSeqParserFP8JASTrackUl = .text:0x8027AD6C; // type:function size:0x10 scope:global align:4 -execCommand__12JASSeqParserFP8JASTrackM12JASSeqParserFP10v = .text:0x8027AD7C; // type:function size:0x2C scope:global align:4 +execNoteOff__12JASSeqParserFP8JASTrackM12JASSeqParserFPCvPvP8JASTrackPUl_lUlPUl = .text:0x8027AD7C; // type:function size:0x2C scope:global align:4 parseNoteOff__12JASSeqParserFP8JASTrackUc = .text:0x8027ADA8; // type:function size:0x38 scope:global align:4 parseNoteOn__12JASSeqParserFP8JASTrackUc = .text:0x8027ADE0; // type:function size:0xAC scope:global align:4 parseCommand__12JASSeqParserFP8JASTrackUcUs = .text:0x8027AE8C; // type:function size:0x1A0 scope:global align:4 @@ -11783,14 +11784,14 @@ getWaveInfo__Q217JASSimpleWaveBank11TWaveHandleCFv = .text:0x8027DF24; // type:f onEraseDone__10JASWaveArcFv = .text:0x8027DF2C; // type:function size:0x4 scope:global align:4 onLoadDone__10JASWaveArcFv = .text:0x8027DF30; // type:function size:0x4 scope:global align:4 getGroupCount__11JASWSParserFPCv = .text:0x8027DF34; // type:function size:0x20 scope:global align:4 -createWaveBank__11JASWSParserFP10v = .text:0x8027DF54; // type:function size:0x5C scope:global align:4 -createBasicWaveBank__11JASWSParserFP10v = .text:0x8027DFB0; // type:function size:0x274 scope:global align:4 -createSimpleWaveBank__11JASWSParserFP10v = .text:0x8027E224; // type:function size:0x278 scope:global align:4 -createBank__12JASBNKParserFP10v = .text:0x8027E49C; // type:function size:0x4 scope:global align:4 -createBasicBank__12JASBNKParserFP10v = .text:0x8027E4A0; // type:function size:0xAC scope:global align:4 -findChunk__Q212JASBNKParser4Ver1FP10v = .text:0x8027E54C; // type:function size:0x44 scope:global align:4 -createBasicBank__Q212JASBNKParser4Ver1FP10v = .text:0x8027E590; // type:function size:0x414 scope:global align:4 -createBasicBank__Q212JASBNKParser4Ver0FP10v = .text:0x8027E9A4; // type:function size:0x5C8 scope:global align:4 +createWaveBank__11JASWSParserFPPCvP7JKRHeap = .text:0x8027DF54; // type:function size:0x5C scope:global align:4 +createBasicWaveBank__11JASWSParserFPCvP7JKRHeap = .text:0x8027DFB0; // type:function size:0x274 scope:global align:4 +createSimpleWaveBank__11JASWSParserFPCvP7JKRHeap = .text:0x8027E224; // type:function size:0x278 scope:global align:4 +createBank__12JASBNKParserFPPCvP7JKRHeap = .text:0x8027E49C; // type:function size:0x4 scope:global align:4 +createBasicBank__12JASBNKParserFPPCvP7JKRHeap = .text:0x8027E4A0; // type:function size:0xAC scope:global align:4 +findChunk__Q212JASBNKParser4Ver1FPCvUl = .text:0x8027E54C; // type:function size:0x44 scope:global align:4 +createBasicBank__Q212JASBNKParser4Ver1FPCvP7JKRHeap = .text:0x8027E590; // type:function size:0x414 scope:global align:4 +createBasicBank__Q212JASBNKParser4Ver0FPCvP7JKRHeap = .text:0x8027E9A4; // type:function size:0x5C8 scope:global align:4 getOscTableEndPtr__Q212JASBNKParser4Ver0FPCQ213JASOscillator5Point = .text:0x8027EF6C; // type:function size:0x14 scope:global align:4 getRootHeap__16JASWaveArcLoaderFv = .text:0x8027EF80; // type:function size:0x18 scope:global align:4 setCurrentDir__16JASWaveArcLoaderFPCc = .text:0x8027EF98; // type:function size:0x60 scope:global align:4 @@ -12160,12 +12161,12 @@ readCommandMore__22JAUAudioArcInterpreterFUl = .text:0x80288A48; // type:functio readCommand___22JAUAudioArcInterpreterFv = .text:0x80288A50; // type:function size:0x3B8 scope:global align:4 __ct__17JAUAudioArcLoaderFP10JAUSection = .text:0x80288E08; // type:function size:0x4C scope:global align:4 load__17JAUAudioArcLoaderFPCv = .text:0x80288E54; // type:function size:0x4 scope:global align:4 -readWS__17JAUAudioArcLoaderFUlP10v = .text:0x80288E58; // type:function size:0x58 scope:global align:4 +readWS__17JAUAudioArcLoaderFUlPUlPCvUl = .text:0x80288E58; // type:function size:0x58 scope:global align:4 readBNK__17JAUAudioArcLoaderFUlPCv = .text:0x80288EB0; // type:function size:0x14 scope:global align:4 -readBSC__17JAUAudioArcLoaderFP10v = .text:0x80288EC4; // type:function size:0x8 scope:global align:4 -readBST__17JAUAudioArcLoaderFP10v = .text:0x80288ECC; // type:function size:0xC scope:global align:4 -readBSTN__17JAUAudioArcLoaderFP10v = .text:0x80288ED8; // type:function size:0xC scope:global align:4 -readBMS__17JAUAudioArcLoaderFUlP10v = .text:0x80288EE4; // type:function size:0x2C scope:global align:4 +readBSC__17JAUAudioArcLoaderFPPCvUl = .text:0x80288EC4; // type:function size:0x8 scope:global align:4 +readBST__17JAUAudioArcLoaderFPPCvUl = .text:0x80288ECC; // type:function size:0xC scope:global align:4 +readBSTN__17JAUAudioArcLoaderFPPCvUl = .text:0x80288ED8; // type:function size:0xC scope:global align:4 +readBMS__17JAUAudioArcLoaderFUlPUlPCvUl = .text:0x80288EE4; // type:function size:0x2C scope:global align:4 readBMS_fromArchive__17JAUAudioArcLoaderFUl = .text:0x80288F10; // type:function size:0x2C scope:global align:4 newVoiceBank__17JAUAudioArcLoaderFUlUl = .text:0x80288F3C; // type:function size:0x14 scope:global align:4 newDynamicSeqBlock__17JAUAudioArcLoaderFUl = .text:0x80288F50; // type:function size:0x38 scope:global align:4 @@ -12196,17 +12197,17 @@ __dt__Q210JAUSection12TSectionDataFv = .text:0x80289800; // type:function size:0 finishBuild__10JAUSectionFv = .text:0x80289880; // type:function size:0x70 scope:global align:4 __dt__Q228@unnamed@JAUSectionHeap_cpp@16TPushCurrentHeapFv = .text:0x802898F0; // type:function size:0x58 scope:global align:4 dispose__10JAUSectionFv = .text:0x80289948; // type:function size:0x88 scope:global align:4 -newSoundTable__10JAUSectionFP10v = .text:0x802899D0; // type:function size:0xC4 scope:global align:4 -newSoundNameTable__10JAUSectionFP10v = .text:0x80289A94; // type:function size:0xC4 scope:global align:4 +newSoundTable__10JAUSectionFPPCvUlb = .text:0x802899D0; // type:function size:0xC4 scope:global align:4 +newSoundNameTable__10JAUSectionFPPCvUlb = .text:0x80289A94; // type:function size:0xC4 scope:global align:4 newStreamFileTable__10JAUSectionFPCvb = .text:0x80289B58; // type:function size:0x188 scope:global align:4 -newSeSeqCollection__10JAUSectionFP10v = .text:0x80289CE0; // type:function size:0xA0 scope:global align:4 +newSeSeqCollection__10JAUSectionFPCvUl = .text:0x80289CE0; // type:function size:0xA0 scope:global align:4 newStaticSeqDataBlock___10JAUSectionF10JAISoundIDUl = .text:0x80289D80; // type:function size:0x150 scope:global align:4 newStaticSeqData__10JAUSectionF10JAISoundIDPCvUl = .text:0x80289ED0; // type:function size:0x68 scope:global align:4 newStaticSeqData__10JAUSectionF10JAISoundID = .text:0x80289F38; // type:function size:0xC8 scope:global align:4 -newCopy__10JAUSectionFP10v = .text:0x8028A000; // type:function size:0x64 scope:global align:4 +newCopy__10JAUSectionFPPCvUll = .text:0x8028A000; // type:function size:0x64 scope:global align:4 newWaveBank__10JAUSectionFUlPCv = .text:0x8028A064; // type:function size:0xD4 scope:global align:4 loadWaveArc__10JAUSectionFUlUl = .text:0x8028A138; // type:function size:0xC8 scope:global align:4 -newBank__10JAUSectionFP10v = .text:0x8028A200; // type:function size:0x108 scope:global align:4 +newBank__10JAUSectionFPPCvUl = .text:0x8028A200; // type:function size:0x108 scope:global align:4 newVoiceBank__10JAUSectionFUlUl = .text:0x8028A308; // type:function size:0xEC scope:global align:4 beginNewBankTable__10JAUSectionFUlUl = .text:0x8028A3F4; // type:function size:0xE4 scope:global align:4 endNewBankTable__10JAUSectionFv = .text:0x8028A4D8; // type:function size:0x50 scope:global align:4 @@ -12274,12 +12275,12 @@ __ct__14JAISoundHandleFv = .text:0x8028BA14; // type:function size:0xC scope:glo updateLifeTime__8JAISoundFUl = .text:0x8028BA20; // type:function size:0x14 scope:global align:4 setLifeTime__8JAISoundFUlb = .text:0x8028BA34; // type:function size:0x34 scope:global align:4 __as__Q29JGeometry8TVec3FRCQ29JGeometry8TVec3 = .text:0x8028BA68; // type:function size:0x14 scope:global align:4 -init__13JAUSoundTableFP10v = .text:0x8028BA7C; // type:function size:0x48 scope:global align:4 +init__13JAUSoundTableFPCv = .text:0x8028BA7C; // type:function size:0x48 scope:global align:4 getTypeID__13JAUSoundTableCF10JAISoundID = .text:0x8028BAC4; // type:function size:0xB8 scope:global align:4 getData__13JAUSoundTableCF10JAISoundID = .text:0x8028BB7C; // type:function size:0xD4 scope:global align:4 init__17JAUSoundNameTableFPCv = .text:0x8028BC50; // type:function size:0x48 scope:global align:4 -getSection__88JAUSoundTable_<1917JAUSoundTableRoot,2220JAUSoundTableSection,2018JAUSoundTableGroup,1v>CFi = .text:0x8028BC98; // type:function size:0x50 scope:global align:4 -getGroup__88JAUSoundTable_<1917JAUSoundTableRoot,2220JAUSoundTableSection,2018JAUSoundTableGroup,1v>CFP26JAUSoundTableSection = .text:0x8028BCE8; // type:function size:0x64 scope:global align:4 +getSection__81JAUSoundTable_<17JAUSoundTableRoot,20JAUSoundTableSection,18JAUSoundTableGroup,v>CFi = .text:0x8028BC98; // type:function size:0x50 scope:global align:4 +getGroup__81JAUSoundTable_<17JAUSoundTableRoot,20JAUSoundTableSection,18JAUSoundTableGroup,v>CFP26JAUSoundTableSection = .text:0x8028BCE8; // type:function size:0x64 scope:global align:4 __ct__18JAUStreamFileTableFv = .text:0x8028BD4C; // type:function size:0xC scope:global align:4 init__18JAUStreamFileTableFPCv = .text:0x8028BD58; // type:function size:0x4C scope:global align:4 getNumFiles__18JAUStreamFileTableCFv = .text:0x8028BDA4; // type:function size:0xC scope:global align:4 @@ -12307,7 +12308,7 @@ toMessageCode_messageID__Q28JMessage10TProcessorCFUlUlPb = .text:0x8028C4B8; // on_select_begin__Q28JMessage10TProcessorFPFPQ28JMessage10TProcessor_PCcPCvPCcUl = .text:0x8028C5CC; // type:function size:0x8C scope:global align:4 on_select_separate__Q28JMessage10TProcessorFv = .text:0x8028C658; // type:function size:0x5C scope:global align:4 do_reset__Q28JMessage10TProcessorFv = .text:0x8028C6B4; // type:function size:0x4 scope:global align:4 -do_begin__Q28JMessage10TProcessorFP10v = .text:0x8028C6B8; // type:function size:0x4 scope:global align:4 +do_begin__Q28JMessage10TProcessorFPPCvPCc = .text:0x8028C6B8; // type:function size:0x4 scope:global align:4 do_end__Q28JMessage10TProcessorFv = .text:0x8028C6BC; // type:function size:0x4 scope:global align:4 do_character__Q28JMessage10TProcessorFi = .text:0x8028C6C0; // type:function size:0x4 scope:global align:4 do_tag__Q28JMessage10TProcessorFUlPCvUl = .text:0x8028C6C4; // type:function size:0x8 scope:global align:4 @@ -12367,16 +12368,16 @@ setEncoding__Q28JMessage18TResourceContainerFUc = .text:0x8028D5BC; // type:func setEncoding___Q28JMessage18TResourceContainerFUc = .text:0x8028D5DC; // type:function size:0x3C scope:global align:4 __ct__Q28JMessage6TParseFPQ28JMessage18TResourceContainer = .text:0x8028D618; // type:function size:0x1C scope:global align:4 __dt__Q28JMessage6TParseFv = .text:0x8028D634; // type:function size:0x58 scope:global align:4 -parseHeader_next__Q28JMessage6TParseFPP10v = .text:0x8028D68C; // type:function size:0x12C scope:global align:4 -parseBlock_next__Q28JMessage6TParseFPP10v = .text:0x8028D7B8; // type:function size:0x164 scope:global align:4 -__dt__Q27JGadget44TLinkList_factory<21Q28JMessage9TResource,0>Fv = .text:0x8028D91C; // type:function size:0x5C scope:global align:4 -begin__Q27JGadget36TLinkList<21Q28JMessage9TResource,0>Fv = .text:0x8028D978; // type:function size:0x8 scope:global align:4 -end__Q27JGadget36TLinkList<21Q28JMessage9TResource,0>Fv = .text:0x8028D980; // type:function size:0x8 scope:global align:4 -__ne__7JGadgetFQ27JGadget36TLinkList<21Q28JMessage9TResource,0>Q27JGadget36TLinkList<21Q28JMessage9TResource,0> = .text:0x8028D988; // type:function size:0x18 scope:global align:4 -Erase_destroy__Q27JGadget44TLinkList_factory<21Q28JMessage9TResource,0>FPQ28JMessage9TResource = .text:0x8028D9A0; // type:function size:0x58 scope:global align:4 +parseHeader_next__Q28JMessage6TParseFPPCvPUlUl = .text:0x8028D68C; // type:function size:0x12C scope:global align:4 +parseBlock_next__Q28JMessage6TParseFPPCvPUlUl = .text:0x8028D7B8; // type:function size:0x164 scope:global align:4 +__dt__Q27JGadget42TLinkList_factoryFv = .text:0x8028D91C; // type:function size:0x5C scope:global align:4 +begin__Q27JGadget34TLinkListFv = .text:0x8028D978; // type:function size:0x8 scope:global align:4 +end__Q27JGadget34TLinkListFv = .text:0x8028D980; // type:function size:0x8 scope:global align:4 +__ne__7JGadgetFQ27JGadget34TLinkListQ27JGadget34TLinkList = .text:0x8028D988; // type:function size:0x18 scope:global align:4 +Erase_destroy__Q27JGadget42TLinkList_factoryFPQ28JMessage9TResource = .text:0x8028D9A0; // type:function size:0x58 scope:global align:4 __ct__Q27JGadget65TContainerEnumeratorFRQ38JMessage18TResourceContainer10TCResource = .text:0x8028D9F8; // type:function size:0x54 scope:global align:4 -fn_8028DA4C = .text:0x8028DA4C; // type:function size:0x14 scope:global align:4 -b__CFv = .text:0x8028DA60; // type:function size:0x38 scope:global align:4 +__ml__Q27JGadget68TEnumerator8iterator>Fv = .text:0x8028DA4C; // type:function size:0x14 scope:global align:4 +__opb__Q27JGadget68TEnumerator8iterator>CFv = .text:0x8028DA60; // type:function size:0x38 scope:global align:4 __ct__Q28JMessage15TResource_colorFv = .text:0x8028DA98; // type:function size:0x10 scope:global align:4 parseCharacter_2Byte__Q28JMessage6localeFPPCc = .text:0x8028DAA8; // type:function size:0x28 scope:global align:4 parseCharacter_1Byte__Q28JMessage6localeFPPCc = .text:0x8028DAD0; // type:function size:0x18 scope:global align:4 @@ -12392,7 +12393,7 @@ calcNoise1f__Q26Z2Calc8FNoise1fFv = .text:0x8028DF4C; // type:function size:0x80 __ct__16Z2AudioArcLoaderFP10JAUSection = .text:0x8028DFCC; // type:function size:0x3C scope:global align:4 readCommandMore__16Z2AudioArcLoaderFUl = .text:0x8028E008; // type:function size:0x58 scope:global align:4 readBFCA__16Z2AudioArcLoaderFPCv = .text:0x8028E060; // type:function size:0x8C scope:global align:4 -readBSTN__16Z2AudioArcLoaderFP10v = .text:0x8028E0EC; // type:function size:0x4 scope:global align:4 +readBSTN__16Z2AudioArcLoaderFPCvUl = .text:0x8028E0EC; // type:function size:0x4 scope:global align:4 __dt__16Z2AudioArcLoaderFv = .text:0x8028E0F0; // type:function size:0x5C scope:global align:4 seqCallback__FP8JASTrackUs = .text:0x8028E14C; // type:function size:0x274 scope:global align:4 __ct__10Z2SoundMgrFv = .text:0x8028E3C0; // type:function size:0x68 scope:global align:4 @@ -13025,7 +13026,7 @@ getPane__Q310homebutton3gui13PaneComponentFv = .text:0x802BA07C; // type:functio startBlackOut__Q210homebutton10HomeButtonFv = .text:0x802BA084; // type:function size:0x1C0 scope:global align:4 initgx__10homebuttonFv = .text:0x802BA244; // type:function size:0x178 scope:global align:4 onEvent__Q310homebutton3gui12EventHandlerFUlUlPv = .text:0x802BA3BC; // type:function size:0x4 scope:global align:4 -fn_802BA3C0 = .text:0x802BA3C0; // type:function size:0x4 scope:global align:4 +draw__Q310homebutton3gui9InterfaceFRA3_A4_f = .text:0x802BA3C0; // type:function size:0x4 scope:global align:4 draw__Q310homebutton3gui9InterfaceFv = .text:0x802BA3C4; // type:function size:0x4 scope:global align:4 calc__Q310homebutton3gui9InterfaceFv = .text:0x802BA3C8; // type:function size:0x4 scope:global align:4 init__Q310homebutton3gui9InterfaceFv = .text:0x802BA3CC; // type:function size:0x4 scope:global align:4 @@ -13164,8 +13165,8 @@ FindGroupByName__Q36nw4hbm3lyt14GroupContainerFPCc = .text:0x802BEBF8; // type:f SetTagProcessorImpl__24@unnamed@lyt_layout_cpp@FPQ36nw4hbm3lyt4PanePQ36nw4hbm2ut19TagProcessorBase = .text:0x802BEC74; // type:function size:0x19C scope:global align:4 __ct__Q36nw4hbm3lyt6LayoutFv = .text:0x802BEE10; // type:function size:0x44 scope:global align:4 __dt__Q36nw4hbm3lyt6LayoutFv = .text:0x802BEE54; // type:function size:0x11C scope:global align:4 -Build__Q36nw4hbm3lyt6LayoutFP10v = .text:0x802BEF70; // type:function size:0x300 scope:global align:4 -CreateAnimTransform__Q36nw4hbm3lyt6LayoutFP10v = .text:0x802BF270; // type:function size:0x184 scope:global align:4 +Build__Q36nw4hbm3lyt6LayoutFPCvPQ36nw4hbm3lyt16ResourceAccessor = .text:0x802BEF70; // type:function size:0x300 scope:global align:4 +CreateAnimTransform__Q36nw4hbm3lyt6LayoutFPCvPQ36nw4hbm3lyt16ResourceAccessor = .text:0x802BF270; // type:function size:0x184 scope:global align:4 BindAnimation__Q36nw4hbm3lyt6LayoutFPQ36nw4hbm3lyt13AnimTransform = .text:0x802BF3F4; // type:function size:0x24 scope:global align:4 UnbindAnimation__Q36nw4hbm3lyt6LayoutFPQ36nw4hbm3lyt13AnimTransform = .text:0x802BF418; // type:function size:0x24 scope:global align:4 UnbindAllAnimation__Q36nw4hbm3lyt6LayoutFv = .text:0x802BF43C; // type:function size:0x14 scope:global align:4 @@ -13175,7 +13176,7 @@ Draw__Q36nw4hbm3lyt6LayoutFRCQ36nw4hbm3lyt8DrawInfo = .text:0x802BF494; // type: Animate__Q36nw4hbm3lyt6LayoutFUl = .text:0x802BF4B4; // type:function size:0x20 scope:global align:4 GetLayoutRect__Q36nw4hbm3lyt6LayoutCFv = .text:0x802BF4D4; // type:function size:0x64 scope:global align:4 SetTagProcessor__Q36nw4hbm3lyt6LayoutFPQ36nw4hbm2ut19TagProcessorBase = .text:0x802BF538; // type:function size:0x1A0 scope:global align:4 -BuildPaneObj__Q36nw4hbm3lyt6LayoutFlP10v = .text:0x802BF6D8; // type:function size:0x20C scope:global align:4 +BuildPaneObj__Q36nw4hbm3lyt6LayoutFlPCvRCQ36nw4hbm3lyt11ResBlockSet = .text:0x802BF6D8; // type:function size:0x20C scope:global align:4 CalcTextureMtx__26@unnamed@lyt_material_cpp@FPQ36nw4hbm4math5MTX34RCQ36nw4hbm3lyt6TexSRT = .text:0x802BF8E4; // type:function size:0x108 scope:global align:4 SetIndTexMtx__26@unnamed@lyt_material_cpp@F14_GXIndTexMtxIDPA3_Cf = .text:0x802BF9EC; // type:function size:0x1FC scope:global align:4 __ct__Q36nw4hbm2ut5ColorFv = .text:0x802BFBE8; // type:function size:0xC scope:global align:4 @@ -13743,7 +13744,7 @@ open__10JKRDvdFileFP10c = .text:0x802D8084; // type:function size:0x70 scope:glo open__10JKRDvdFileFl = .text:0x802D80F4; // type:function size:0x70 scope:global align:4 close__10JKRDvdFileFv = .text:0x802D8164; // type:function size:0x80 scope:global align:4 readData__10JKRDvdFileFPvll = .text:0x802D81E4; // type:function size:0xB4 scope:global align:4 -writeData__10JKRDvdFileFP10v = .text:0x802D8298; // type:function size:0x8 scope:global align:4 +writeData__10JKRDvdFileFPCvll = .text:0x802D8298; // type:function size:0x8 scope:global align:4 sync__10JKRDvdFileFv = .text:0x802D82A0; // type:function size:0x54 scope:global align:4 doneProcess__10JKRDvdFileFlP11DVDFileInfo = .text:0x802D82F4; // type:function size:0x14 scope:global align:4 __sinit_JKRDvdFile_cpp = .text:0x802D8308; // type:function size:0x48 scope:global align:4 @@ -13815,7 +13816,7 @@ readData__18JSUFileInputStreamFPvl = .text:0x802DAD6C; // type:function size:0xD seekPos__18JSUFileInputStreamFl17JSUStreamSeekFrom = .text:0x802DAE44; // type:function size:0xE0 scope:global align:4 getPosition__18JSUFileInputStreamCFv = .text:0x802DAF24; // type:function size:0x8 scope:global align:4 getLength__18JSUFileInputStreamCFv = .text:0x802DAF2C; // type:function size:0x14 scope:global align:4 -parseVariableUInt_16_32_following__Q27JGadget6binaryFP10v = .text:0x802DAF40; // type:function size:0x64 scope:global align:4 +parseVariableUInt_16_32_following__Q27JGadget6binaryFPCvPUlPUlPQ37JGadget6binary5TEBit = .text:0x802DAF40; // type:function size:0x64 scope:global align:4 __dt__Q37JGadget6binary19TParse_header_blockFv = .text:0x802DAFA4; // type:function size:0x40 scope:global align:4 parse_next__Q37JGadget6binary19TParse_header_blockFPPCvUl = .text:0x802DAFE4; // type:function size:0x10C scope:global align:4 __dt__Q27JGadget13TNodeLinkListFv = .text:0x802DB0F0; // type:function size:0x40 scope:global align:4 @@ -13828,15 +13829,15 @@ Remove__Q27JGadget13TNodeLinkListFPQ27JGadget13TLinkListNode = .text:0x802DB2A0; extend_default__Q27JGadget6vectorFUlUlUl = .text:0x802DB334; // type:function size:0x8 scope:global align:4 __ct__Q27JGadget20TVector_pointer_voidFRCQ27JGadget14TAllocator = .text:0x802DB33C; // type:function size:0x20 scope:global align:4 __dt__Q27JGadget20TVector_pointer_voidFv = .text:0x802DB35C; // type:function size:0x58 scope:global align:4 -insert__Q27JGadget20TVector_pointer_voidFPPvR11v = .text:0x802DB3B4; // type:function size:0x58 scope:global align:4 +insert__Q27JGadget20TVector_pointer_voidFPPvRCPv = .text:0x802DB3B4; // type:function size:0x58 scope:global align:4 erase__Q27JGadget20TVector_pointer_voidFPPvPPv = .text:0x802DB40C; // type:function size:0x4 scope:global align:4 -__dt__Q27JGadget42TVector<2Pv,27Q27JGadget14TAllocator<2Pv>>Fv = .text:0x802DB410; // type:function size:0x64 scope:global align:4 -erase__Q27JGadget42TVector<2Pv,27Q27JGadget14TAllocator<2Pv>>FPPvPPv = .text:0x802DB474; // type:function size:0x74 scope:global align:4 -DestroyElement___Q27JGadget42TVector<2Pv,27Q27JGadget14TAllocator<2Pv>>FPPvPPv = .text:0x802DB4E8; // type:function size:0x14 scope:global align:4 -insert__Q27JGadget42TVector<2Pv,27Q27JGadget14TAllocator<2Pv>>FPPvUlR11v = .text:0x802DB4FC; // type:function size:0x74 scope:global align:4 -Insert_raw__Q27JGadget42TVector<2Pv,27Q27JGadget14TAllocator<2Pv>>FPPvUl = .text:0x802DB570; // type:function size:0x1C8 scope:global align:4 -__dt__Q37JGadget42TVector<2Pv,27Q27JGadget14TAllocator<2Pv>>23TDestructed_deallocate_Fv = .text:0x802DB738; // type:function size:0x58 scope:global align:4 -uninitialized_copy__Q23std36__uninitialized_copy_helper<2Pv,1,0>FPPvPPvPPv = .text:0x802DB790; // type:function size:0x34 scope:global align:4 +__dt__Q27JGadget42TVector>Fv = .text:0x802DB410; // type:function size:0x64 scope:global align:4 +erase__Q27JGadget42TVector>FPPvPPv = .text:0x802DB474; // type:function size:0x74 scope:global align:4 +DestroyElement___Q27JGadget38TVector>FPPvPPv = .text:0x802DB4E8; // type:function size:0x14 scope:global align:4 +insert__Q27JGadget38TVector>FPPvUlRPCv = .text:0x802DB4FC; // type:function size:0x74 scope:global align:4 +Insert_raw__Q27JGadget38TVector>FPPvUl = .text:0x802DB570; // type:function size:0x1C8 scope:global align:4 +__dt__Q37JGadget38TVector>23TDestructed_deallocate_Fv = .text:0x802DB738; // type:function size:0x58 scope:global align:4 +uninitialized_copy__Q23std36__uninitialized_copy_helperFPPvPPvPPv = .text:0x802DB790; // type:function size:0x34 scope:global align:4 __ct__12JUTCacheFontFP13ResFONT = .text:0x802DB7C4; // type:function size:0x80 scope:global align:4 __dt__12JUTCacheFontFv = .text:0x802DB844; // type:function size:0x98 scope:global align:4 deleteMemBlocks_CacheFont__12JUTCacheFontFv = .text:0x802DB8DC; // type:function size:0x84 scope:global align:4 @@ -13862,7 +13863,7 @@ getLeading__10JUTResFontCFv = .text:0x802DC664; // type:function size:0xC scope: getFontType__10JUTResFontCFv = .text:0x802DC670; // type:function size:0xC scope:global align:4 getResFont__10JUTResFontCFv = .text:0x802DC67C; // type:function size:0x8 scope:global align:4 getResource__15JUTResReferenceFP14JSUInputStreamUlP10JKRArchive = .text:0x802DC684; // type:function size:0xA0 scope:global align:4 -getResource__15JUTResReferenceFP10v = .text:0x802DC724; // type:function size:0x94 scope:global align:4 +getResource__15JUTResReferenceFPCvUlP10JKRArchive = .text:0x802DC724; // type:function size:0x94 scope:global align:4 getResource__15JUTResReferenceFUlP10JKRArchive = .text:0x802DC7B8; // type:function size:0x88 scope:global align:4 __dt__10JUTTextureFv = .text:0x802DC840; // type:function size:0x78 scope:global align:4 storeTIMG__10JUTTextureFPC7ResTIMGUc = .text:0x802DC8B8; // type:function size:0x178 scope:global align:4 @@ -14563,7 +14564,7 @@ setAnimation__9J2DScreenFP16J2DAnmTexPattern = .text:0x802F6CD4; // type:functio setAnimation__9J2DScreenFP15J2DAnmTevRegKey = .text:0x802F6D68; // type:function size:0xDC scope:global align:4 setAnimation__9J2DScreenFP14J2DAnmVtxColor = .text:0x802F6E44; // type:function size:0x4 scope:global align:4 setAnimation__9J2DScreenFP20J2DAnmVisibilityFull = .text:0x802F6E48; // type:function size:0x4 scope:global align:4 -__ct__20JSUMemoryInputStreamFP10v = .text:0x802F6E4C; // type:function size:0x44 scope:global align:4 +__ct__20JSUMemoryInputStreamFPCvl = .text:0x802F6E4C; // type:function size:0x44 scope:global align:4 createPane__9J2DScreenFRC18J2DScrnBlockHeaderP20JSURandomInputStreamP7J2DPaneUl = .text:0x802F6E90; // type:function size:0x14 scope:global align:4 setAnimationVC__9J2DScreenFP14J2DAnmVtxColor = .text:0x802F6EA4; // type:function size:0x4 scope:global align:4 setAnimationVF__9J2DScreenFP20J2DAnmVisibilityFull = .text:0x802F6EA8; // type:function size:0x4 scope:global align:4 @@ -15029,8 +15030,8 @@ load__26J3DShapeMtxMultiConcatViewCFv = .text:0x8030EDF0; // type:function size: loadNrmMtx__26J3DShapeMtxMultiConcatViewCFiUsPA4_f = .text:0x8030EFF4; // type:function size:0x120 scope:global align:4 load__27J3DShapeMtxBBoardConcatViewCFv = .text:0x8030F114; // type:function size:0x130 scope:global align:4 load__28J3DShapeMtxYBBoardConcatViewCFv = .text:0x8030F244; // type:function size:0x164 scope:global align:4 -lbl_8030F3A8 = .text:0x8030F3A8; // type:label -lbl_8030F3D4 = .text:0x8030F3D4; // type:label +J3DPSMtx33Copy__FPA3_fPA3_f = .text:0x8030F3A8; // type:function size:0x2C scope:global align:4 +J3DPSMtx33CopyFrom34__FPA4_fPA3_f = .text:0x8030F3D4; // type:function size:0x34 scope:global align:4 getDrawMtxIndex__12J3DModelDataCFUs = .text:0x8030F408; // type:function size:0x10 scope:global align:4 getUseMtxIndex__11J3DShapeMtxCFUs = .text:0x8030F418; // type:function size:0x8 scope:global align:4 loadNrmMtx__21J3DShapeMtxConcatViewCFiUs = .text:0x8030F420; // type:function size:0x4 scope:global align:4 @@ -15884,8 +15885,8 @@ deform_VtxNrmF32__11J3DDeformerFP15J3DVertexBufferP10J3DClusterP13J3DClusterKeyP deform__11J3DDeformerFP15J3DVertexBufferUsPf = .text:0x80323284; // type:function size:0x110 scope:global align:4 normalizeWeight__11J3DDeformerFiPf = .text:0x80323394; // type:function size:0x5C scope:global align:4 getWeight__13J3DAnmClusterCFUs = .text:0x803233F0; // type:function size:0x8 scope:global align:4 -lbl_803233F8 = .text:0x803233F8; // type:label -lbl_80323484 = .text:0x80323484; // type:label +init__25J3DMtxCalcJ3DSysInitBasicFRC3VecRA3_A4_Cf = .text:0x803233F8; // type:function size:0x8C align:4 +init__24J3DMtxCalcJ3DSysInitMayaFRC3VecRA3_A4_Cf = .text:0x80323484; // type:function size:0x8C align:4 calcTransform__28J3DMtxCalcCalcTransformBasicFRC16J3DTransformInfo = .text:0x80323510; // type:function size:0xEC scope:global align:4 calcTransform__32J3DMtxCalcCalcTransformSoftimageFRC16J3DTransformInfo = .text:0x803235FC; // type:function size:0x138 scope:global align:4 calcTransform__27J3DMtxCalcCalcTransformMayaFRC16J3DTransformInfo = .text:0x80323734; // type:function size:0x19C scope:global align:4 @@ -16011,7 +16012,7 @@ __dt__20J3DClusterLoader_v15Fv = .text:0x80328CEC; // type:function size:0x40 sc readCluster__20J3DClusterLoader_v15FPC15J3DClusterBlock = .text:0x80328D2C; // type:function size:0x374 scope:global align:4 load__20J3DClusterLoader_v15FPCv = .text:0x803290A0; // type:function size:0xAC scope:global align:4 __ct__14J3DModelLoaderFv = .text:0x8032914C; // type:function size:0x30 scope:global align:4 -load__22J3DModelLoaderDataBaseFP10v = .text:0x8032917C; // type:function size:0x100 scope:global align:4 +load__22J3DModelLoaderDataBaseFPCvUl = .text:0x8032917C; // type:function size:0x100 scope:global align:4 loadMaterialTable__14J3DModelLoaderFPCv = .text:0x8032927C; // type:function size:0x148 scope:global align:4 loadBinaryDisplayList__14J3DModelLoaderFPCvUl = .text:0x803293C4; // type:function size:0x298 scope:global align:4 readInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl = .text:0x8032965C; // type:function size:0x138 scope:global align:4 @@ -16040,20 +16041,20 @@ readMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl = .text:0x8032AA90; / readMaterialTable_v21__14J3DModelLoaderFPC20J3DMaterialBlock_v21Ul = .text:0x8032AA94; // type:function size:0x4 scope:global align:4 calcSizeMaterialTable__14J3DModelLoaderFPC16J3DMaterialBlockUl = .text:0x8032AA98; // type:function size:0x8 scope:global align:4 calcSizeMaterial__14J3DModelLoaderFPC16J3DMaterialBlockUl = .text:0x8032AAA0; // type:function size:0x8 scope:global align:4 -load__14J3DModelLoaderFP10v = .text:0x8032AAA8; // type:function size:0x2AC scope:global align:4 +load__14J3DModelLoaderFPCvUl = .text:0x8032AAA8; // type:function size:0x2AC scope:global align:4 setupBBoardInfo__14J3DModelLoaderFv = .text:0x8032AD54; // type:function size:0x130 scope:global align:4 setMtxType__8J3DJointFUc = .text:0x8032AE84; // type:function size:0x14 scope:global align:4 -__dt__87J3DMtxCalcNoAnm<3432J3DMtxCalcCalcTransformSoftimage,3129J3DMtxCalcJ3DSysInitSoftimage>Fv = .text:0x8032AE98; // type:function size:0x40 scope:global align:4 -J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29init__30J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf = .text:0x8032AED8; // type:function size:0x30 scope:global align:4 -calc__87J3DMtxCalcNoAnm<3432J3DMtxCalcCalcTransformSoftimage,3129J3DMtxCalcJ3DSysInitSoftimage>Fv = .text:0x8032AF08; // type:function size:0xC scope:global align:4 -__dt__79J3DMtxCalcNoAnm<3028J3DMtxCalcCalcTransformBasic,2725J3DMtxCalcJ3DSysInitBasic>Fv = .text:0x8032AF14; // type:function size:0x40 scope:global align:4 -J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25init__26J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf = .text:0x8032AF54; // type:function size:0xC scope:global align:4 -calc__79J3DMtxCalcNoAnm<3028J3DMtxCalcCalcTransformBasic,2725J3DMtxCalcJ3DSysInitBasic>Fv = .text:0x8032AF60; // type:function size:0xC scope:global align:4 +__dt__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv = .text:0x8032AE98; // type:function size:0x40 scope:global align:4 +init__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,30J3DMtxCalcJ3DSysInitSoftimage>FRC3VecRA3_A4_Cf = .text:0x8032AED8; // type:function size:0x30 scope:global align:4 +calc__83J3DMtxCalcNoAnm<32J3DMtxCalcCalcTransformSoftimage,29J3DMtxCalcJ3DSysInitSoftimage>Fv = .text:0x8032AF08; // type:function size:0xC scope:global align:4 +__dt__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv = .text:0x8032AF14; // type:function size:0x40 scope:global align:4 +init__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,26J3DMtxCalcJ3DSysInitBasic>FRC3VecRA3_A4_Cf = .text:0x8032AF54; // type:function size:0xC scope:global align:4 +calc__75J3DMtxCalcNoAnm<28J3DMtxCalcCalcTransformBasic,25J3DMtxCalcJ3DSysInitBasic>Fv = .text:0x8032AF60; // type:function size:0xC scope:global align:4 makeHierarchy__12J3DModelDataFP8J3DJointPPC17J3DModelHierarchy = .text:0x8032AF6C; // type:function size:0x48 scope:global align:4 __ct__10J3DTextureFUsP7ResTIMG = .text:0x8032AFB4; // type:function size:0x20 scope:global align:4 __dt__10J3DTextureFv = .text:0x8032AFD4; // type:function size:0x40 scope:global align:4 countMaterialNum__14J3DModelLoaderFPCv = .text:0x8032B014; // type:function size:0x40 scope:global align:4 -calcLoadSize__14J3DModelLoaderFP10v = .text:0x8032B054; // type:function size:0x1C4 scope:global align:4 +calcLoadSize__14J3DModelLoaderFPCvUl = .text:0x8032B054; // type:function size:0x1C4 scope:global align:4 calcLoadMaterialTableSize__14J3DModelLoaderFPCv = .text:0x8032B218; // type:function size:0xF8 scope:global align:4 calcLoadBinaryDisplayListSize__14J3DModelLoaderFPCvUl = .text:0x8032B310; // type:function size:0x22C scope:global align:4 calcSizeInformation__14J3DModelLoaderFPC17J3DModelInfoBlockUl = .text:0x8032B53C; // type:function size:0x6C scope:global align:4 @@ -16077,7 +16078,7 @@ calcSizeVcdVatCmdBuffer__15J3DShapeFactoryFUl = .text:0x8032C118; // type:functi calcSizeShapeMtx__15J3DShapeFactoryCFUlii = .text:0x8032C128; // type:function size:0xF8 scope:global align:4 getMtxGroupNum__15J3DShapeFactoryCFi = .text:0x8032C220; // type:function size:0x20 scope:global align:4 __ct__21J3DShapeMtxConcatViewFUs = .text:0x8032C240; // type:function size:0x14 scope:global align:4 -load__20J3DAnmLoaderDataBaseFP10v = .text:0x8032C254; // type:function size:0x46C scope:global align:4 +load__20J3DAnmLoaderDataBaseFPCv24J3DAnmLoaderDataBaseFlag = .text:0x8032C254; // type:function size:0x46C scope:global align:4 setResource__20J3DAnmLoaderDataBaseFP10J3DAnmBasePCv = .text:0x8032C6C0; // type:function size:0x2A8 scope:global align:4 __ct__20J3DAnmFullLoader_v15Fv = .text:0x8032C968; // type:function size:0x10 scope:global align:4 __dt__20J3DAnmFullLoader_v15Fv = .text:0x8032C978; // type:function size:0x40 scope:global align:4 @@ -16112,9 +16113,9 @@ JMAVECScaleAdd__FP9Vec = .text:0x8032DF6C; // type:function size:0x24 scope:glob JMAMTXApplyScale__FPA4_CfPA4_ffff = .text:0x8032DF90; // type:function size:0x4C scope:global align:4 __ct__Q25JMath13TRandom_fast_FUl = .text:0x8032DFDC; // type:function size:0x8 scope:global align:4 __sinit_JMATrigonometric_cpp = .text:0x8032DFE4; // type:function size:0x40 scope:global align:4 -__ct__Q25JMath19TSinCosTable<13,1f>Fv = .text:0x8032E024; // type:function size:0x100 scope:global align:4 -__ct__Q25JMath19TAtanTable<1024,1f>Fv = .text:0x8032E124; // type:function size:0xAC scope:global align:4 -__ct__Q25JMath23TAsinAcosTable<1024,1f>Fv = .text:0x8032E1D0; // type:function size:0xAC scope:global align:4 +__ct__Q25JMath19TSinCosTable<13,f>Fv = .text:0x8032E024; // type:function size:0x100 scope:global align:4 +__ct__Q25JMath19TAtanTable<1024,f>Fv = .text:0x8032E124; // type:function size:0xAC scope:global align:4 +__ct__Q25JMath23TAsinAcosTable<1024,f>Fv = .text:0x8032E1D0; // type:function size:0xAC scope:global align:4 ARStartDMA = .text:0x8032E27C; // type:function size:0xCC scope:global align:4 ARAlloc = .text:0x8032E348; // type:function size:0x50 scope:global align:4 ARInit = .text:0x8032E398; // type:function size:0x88 scope:global align:4 @@ -18359,10 +18360,10 @@ TRKTargetAccessDefault = .text:0x803B6944; // type:function size:0xF4 scope:glob TRKTargetReadInstruction = .text:0x803B6A38; // type:function size:0x4C scope:global align:4 TRKTargetAccessMemory = .text:0x803B6A84; // type:function size:0x14C scope:global align:4 TRKValidMemory32 = .text:0x803B6BD0; // type:function size:0x2A4 scope:global align:4 -TRKAccessFile = .text:0x803B6E80; // type:label scope:global align:4 -TRKOpenFile = .text:0x803B6E88; // type:label scope:global align:4 -TRKCloseFile = .text:0x803B6E90; // type:label scope:global align:4 -TRKPositionFile = .text:0x803B6E98; // type:label scope:global align:4 +TRKAccessFile = .text:0x803B6E80; // type:function size:0x8 scope:global align:4 +TRKOpenFile = .text:0x803B6E88; // type:function size:0x8 scope:global align:4 +TRKCloseFile = .text:0x803B6E90; // type:function size:0x8 scope:global align:4 +TRKPositionFile = .text:0x803B6E98; // type:function size:0x8 scope:global align:4 TRKSaveExtended1Block = .text:0x803B6EA0; // type:function size:0x1B8 scope:global align:4 TRKRestoreExtended1Block = .text:0x803B7058; // type:function size:0x1B8 scope:global align:4 __TRK_write_console = .text:0x803B7210; // type:function size:0xBC scope:global align:4 @@ -18442,24 +18443,26 @@ lbl_803B8E50 = .rodata:0x803B8E50; // type:object size:0x12 data:string lbl_803B8E62 = .rodata:0x803B8E62; // type:object size:0x14 data:string lbl_803B8E76 = .rodata:0x803B8E76; // type:object size:0x14 data:string DynamicNameTable = .rodata:0x803B8E90; // type:object size:0x17B0 scope:global align:4 data:2byte -mtx_adj$108688 = .rodata:0x803BA640; // type:object size:0x30 scope:global align:4 +mtx_adj$108688 = .rodata:0x803BA640; // type:object size:0x30 scope:local align:4 ...rodata.0 = .rodata:0x803BA670; // type:label scope:local align:4 -l_iconSize$92622 = .rodata:0x803BA670; // type:object size:0x44 scope:global align:4 -lbl_803BA6B4 = .rodata:0x803BA6B4; // type:object size:0x6C -lbl_803BA720 = .rodata:0x803BA720; // type:object size:0x10 -l_stayType$92949 = .rodata:0x803BA730; // type:object size:0x1C scope:global align:4 +l_iconSize$92622 = .rodata:0x803BA670; // type:object size:0x44 scope:local align:4 +l_dungeon_offColor$92840 = .rodata:0x803BA6B4; // type:object size:0x24 scope:local align:4 +l_dungeon_onColor$92841 = .rodata:0x803BA6D8; // type:object size:0x24 scope:local align:4 +l_dungeon_stayColor$92842 = .rodata:0x803BA6FC; // type:object size:0x24 scope:local align:4 +colorTable$92896 = .rodata:0x803BA720; // type:object size:0x10 scope:local align:4 +l_stayType$92949 = .rodata:0x803BA730; // type:object size:0x1C scope:local align:4 saveBitLabels__16dSv_event_flag_c = .rodata:0x803BA750; // type:object size:0x66C scope:global align:4 tempBitLabels__20dSv_event_tmp_flag_c = .rodata:0x803BADBC; // type:object size:0x172 scope:global align:4 -zero_quat$92356 = .rodata:0x803BAF30; // type:object size:0x10 scope:global align:4 +zero_quat$92356 = .rodata:0x803BAF30; // type:object size:0x10 scope:local align:4 m_data__12daItemBase_c = .rodata:0x803BAF40; // type:object size:0x38 scope:global align:4 data:float mData__12daShopItem_c = .rodata:0x803BAF78; // type:object size:0x450 scope:global align:4 l_texMtxInfo = .rodata:0x803BB3C8; // type:object size:0x64 scope:global align:4 -data$89224 = .rodata:0x803BB430; // type:object size:0x1C scope:global align:4 +data$89224 = .rodata:0x803BB430; // type:object size:0x1C scope:local align:4 l_100x100BoxVertexList = .rodata:0x803BB450; // type:object size:0x30 scope:global align:4 -l_treasureDispList$93922 = .rodata:0x803BB480; // type:object size:0x30 scope:global align:4 -l_treasureDispList$93997 = .rodata:0x803BB4B0; // type:object size:0x84 scope:global align:4 -l_iconPosData$94074 = .rodata:0x803BB534; // type:object size:0x20 scope:global align:4 -l_offset$94089 = .rodata:0x803BB554; // type:object size:0x24 scope:global align:4 +l_treasureDispList$93922 = .rodata:0x803BB480; // type:object size:0x30 scope:local align:4 +l_treasureDispList$93997 = .rodata:0x803BB4B0; // type:object size:0x84 scope:local align:4 +l_iconPosData$94074 = .rodata:0x803BB534; // type:object size:0x20 scope:local align:4 +l_offset$94089 = .rodata:0x803BB554; // type:object size:0x24 scope:local align:4 lbl_803BB578 = .rodata:0x803BB578; // type:object size:0xF data:string @92445 = .rodata:0x803BB588; // type:object size:0xC scope:local align:4 data:4byte @93994 = .rodata:0x803BB594; // type:object size:0xC scope:local align:4 data:4byte @@ -18467,7 +18470,7 @@ lbl_803BB578 = .rodata:0x803BB578; // type:object size:0xF data:string m_emitterTwoData__8dPaPoT_c = .rodata:0x803BB5B0; // type:object size:0x24 scope:global align:4 m_typeFourData__8dPaPoF_c = .rodata:0x803BB5D4; // type:object size:0x3C scope:global align:4 m_emitterFourData__8dPaPoF_c = .rodata:0x803BB610; // type:object size:0x3C scope:global align:4 -l_drawlistSize$96351 = .rodata:0x803BB650; // type:object size:0x2C scope:global align:4 data:2byte +l_drawlistSize$96351 = .rodata:0x803BB650; // type:object size:0x2C scope:local align:4 data:2byte lbl_803BB67C = .rodata:0x803BB67C; // type:object size:0xC data:byte sun_chkpnt$99627 = .rodata:0x803BB688; // type:object size:0x28 scope:global align:4 @100676 = .rodata:0x803BB6B0; // type:object size:0x20 scope:local align:4 data:4byte @@ -19226,30 +19229,30 @@ cResetFilterTable = .rodata:0x803D9FA0; // type:object size:0x10 scope:global al @87788 = .rodata:0x803D9FBC; // type:object size:0xC scope:local align:4 data:4byte cNullVec__6Z2Calc = .rodata:0x803D9FC8; // type:object size:0xC scope:local align:4 cNullVec__6Z2Calc = .rodata:0x803D9FD8; // type:object size:0xC scope:local align:4 -lbl_803D9FE8 = .rodata:0x803D9FE8; // type:object size:0x64 -lbl_803DA04C = .rodata:0x803DA04C; // type:object size:0xA -lbl_803DA056 = .rodata:0x803DA056; // type:object size:0x64 -lbl_803DA0BA = .rodata:0x803DA0BA; // type:object size:0xA -lbl_803DA0C4 = .rodata:0x803DA0C4; // type:object size:0x64 -lbl_803DA128 = .rodata:0x803DA128; // type:object size:0xA -lbl_803DA132 = .rodata:0x803DA132; // type:object size:0x64 -lbl_803DA196 = .rodata:0x803DA196; // type:object size:0xA -lbl_803DA1A0 = .rodata:0x803DA1A0; // type:object size:0x6C -lbl_803DA20C = .rodata:0x803DA20C; // type:object size:0x5E -lbl_803DA26A = .rodata:0x803DA26A; // type:object size:0xA -lbl_803DA274 = .rodata:0x803DA274; // type:object size:0x72 -lbl_803DA2E6 = .rodata:0x803DA2E6; // type:object size:0x6A -lbl_803DA350 = .rodata:0x803DA350; // type:object size:0x6A -lbl_803DA3BA = .rodata:0x803DA3BA; // type:object size:0x6A -lbl_803DA424 = .rodata:0x803DA424; // type:object size:0x68 -lbl_803DA48C = .rodata:0x803DA48C; // type:object size:0x6A -lbl_803DA4F6 = .rodata:0x803DA4F6; // type:object size:0x6A -lbl_803DA560 = .rodata:0x803DA560; // type:object size:0x54 -lbl_803DA5B4 = .rodata:0x803DA5B4; // type:object size:0x64 -lbl_803DA618 = .rodata:0x803DA618; // type:object size:0x9 data:string -lbl_803DA621 = .rodata:0x803DA621; // type:object size:0x64 -lbl_803DA685 = .rodata:0x803DA685; // type:object size:0x68 -lbl_803DA6ED = .rodata:0x803DA6ED; // type:object size:0xF +sReply__8Z2MdnPrm = .rodata:0x803D9FE8; // type:object size:0x64 +sReplyTail__8Z2MdnPrm = .rodata:0x803DA04C; // type:object size:0xA +sJoke__8Z2MdnPrm = .rodata:0x803DA056; // type:object size:0x64 +sJokeTail__8Z2MdnPrm = .rodata:0x803DA0BA; // type:object size:0xA +sSexy__8Z2MdnPrm = .rodata:0x803DA0C4; // type:object size:0x64 +sSexyTail__8Z2MdnPrm = .rodata:0x803DA128; // type:object size:0xA +sRidicule__8Z2MdnPrm = .rodata:0x803DA132; // type:object size:0x64 +sRidiculeTail__8Z2MdnPrm = .rodata:0x803DA196; // type:object size:0xA +sBoring__8Z2MdnPrm = .rodata:0x803DA1A0; // type:object size:0x6C +sIrritated__8Z2MdnPrm = .rodata:0x803DA20C; // type:object size:0x5E +sIrritatedTail__8Z2MdnPrm = .rodata:0x803DA26A; // type:object size:0xA +sOrder__8Z2MdnPrm = .rodata:0x803DA274; // type:object size:0x72 +sResent__8Z2MdnPrm = .rodata:0x803DA2E6; // type:object size:0x6A +sCheerful__8Z2MdnPrm = .rodata:0x803DA350; // type:object size:0x6A +sConfused__8Z2MdnPrm = .rodata:0x803DA3BA; // type:object size:0x6A +sHostility__8Z2MdnPrm = .rodata:0x803DA424; // type:object size:0x68 +sTired__8Z2MdnPrm = .rodata:0x803DA48C; // type:object size:0x6A +sSerious__8Z2MdnPrm = .rodata:0x803DA4F6; // type:object size:0x6A +sReplyb__8Z2MdnPrm = .rodata:0x803DA560; // type:object size:0x54 +sApologize__8Z2MdnPrm = .rodata:0x803DA5B4; // type:object size:0x64 +sApologizeTail__8Z2MdnPrm = .rodata:0x803DA618; // type:object size:0x9 data:string +sDeside__8Z2MdnPrm = .rodata:0x803DA621; // type:object size:0x64 +sAfford__8Z2MdnPrm = .rodata:0x803DA685; // type:object size:0x68 +sAffordTail__8Z2MdnPrm = .rodata:0x803DA6ED; // type:object size:0xF sPrm__8Z2MdnPrm = .rodata:0x803DA6FC; // type:object size:0xCC scope:global align:4 scAnmTable__10homebutton = .rodata:0x803DA7C8; // type:object size:0x60 scope:global align:4 data:4byte scGroupAnmTable__10homebutton = .rodata:0x803DA828; // type:object size:0x250 scope:global align:4 data:4byte @@ -19259,8 +19262,8 @@ JUTResFONT_Ascfont_fix12 = .rodata:0x803DAB60; // type:object size:0x4160 scope: lbl_803DECC0 = .rodata:0x803DECC0; // type:object size:0x20 data:byte j2dDefaultTexMtxInfo = .rodata:0x803DECE0; // type:object size:0x24 scope:global align:4 data:byte j2dDefaultIndTexMtxInfo = .rodata:0x803DED04; // type:object size:0x1C scope:global align:4 -lbl_803DED20 = .rodata:0x803DED20; // type:object size:0x14 -lbl_803DED34 = .rodata:0x803DED34; // type:object size:0xC data:byte +j2dDefaultTevStageInfo = .rodata:0x803DED20; // type:object size:0x14 scope:global align:4 +j2dDefaultIndTevStageInfo = .rodata:0x803DED34; // type:object size:0xC scope:global align:4 data:4byte @31398 = .rodata:0x803DED40; // type:object size:0x10 scope:local align:4 data:4byte ...rodata.0 = .rodata:0x803DED50; // type:label scope:local align:4 data:byte ...rodata.0 = .rodata:0x803DEDA0; // type:label scope:local align:4 data:byte @@ -19284,8 +19287,8 @@ j3dDefaultNBTScaleInfo = .rodata:0x803DF010; // type:object size:0x10 scope:glob lbl_803DF020 = .rodata:0x803DF020; // type:object size:0x10 data:byte @19312 = .rodata:0x803DF030; // type:object size:0x10 scope:local align:4 data:4byte @19405 = .rodata:0x803DF040; // type:object size:0x10 scope:local align:4 data:4byte -@17842 = .rodata:0x803DF050; // type:object size:0xC scope:local align:4 -@17849 = .rodata:0x803DF05C; // type:object size:0xC scope:local align:4 +@17842 = .rodata:0x803DF050; // type:object size:0xC scope:local align:4 data:4byte +@17849 = .rodata:0x803DF05C; // type:object size:0xC scope:local align:4 data:4byte __DVDErrorMessage = .rodata:0x803DF068; // type:object size:0x1C scope:global align:4 @2852 = .rodata:0x803DF088; // type:object size:0x138 scope:local align:4 data:4byte ConfDirName = .rodata:0x803DF1C0; // type:object size:0xD scope:global align:4 data:string @@ -25042,8 +25045,8 @@ S_old_cameye$102431 = .bss:0x804A27E0; // type:object size:0xC scope:global alig S_old_camctr$102435 = .bss:0x804A27F8; // type:object size:0xC scope:global align:4 @90936 = .bss:0x804A2808; // type:object size:0xC scope:local align:4 @90939 = .bss:0x804A2814; // type:object size:0xC scope:local align:4 -@LOCAL@dThunder_c::draw(void)@l_offsetPos = .bss:0x804A2820; // type:object size:0xC scope:global align:4 -@LOCAL@dThunder_c::draw(void)@l_scale@0 = .bss:0x804A282C; // type:object size:0xC scope:local align:4 +l_offsetPos$localstatic3$draw__10dThunder_cFv = .bss:0x804A2820; // type:object size:0xC scope:global align:4 +l_scale$localstatic5$draw__10dThunder_cFv = .bss:0x804A282C; // type:object size:0xC scope:local align:4 @102149 = .bss:0x804A2838; // type:object size:0xC scope:local align:4 g_fmHIO = .bss:0x804A2844; // type:object size:0x14 scope:global align:4 @94927 = .bss:0x804A2858; // type:object size:0xC scope:local align:4 @@ -25098,7 +25101,7 @@ g_envHIO = .bss:0x804A4EA4; // type:object size:0x44 scope:global align:4 @89082 = .bss:0x804A4EE8; // type:object size:0xC scope:local align:4 g_save_bit_HIO = .bss:0x804A4EF4; // type:object size:0x4A0 scope:global align:4 @91846 = .bss:0x804A5398; // type:object size:0xC scope:local align:4 -@LOCAL@dkWmark_c::create(void)@wolfFootScale = .bss:0x804A53A4; // type:object size:0xC scope:global align:4 data:float +wolfFootScale$localstatic$create__9dkWmark_cFv = .bss:0x804A53A4; // type:object size:0xC scope:global align:4 data:float @49938 = .bss:0x804A53B0; // type:object size:0xC scope:local align:4 m_virtual_center__14cCcD_ShapeAttr = .bss:0x804A53BC; // type:object size:0xC scope:global align:4 @50127 = .bss:0x804A53C8; // type:object size:0xC scope:local align:4 @@ -25214,11 +25217,11 @@ sDefaultBankTable__8JASTrack = .bss:0x804A5DBC; // type:object size:0x40C scope: sTrackList__8JASTrack = .bss:0x804A61D4; // type:object size:0x10 scope:global align:4 @7661 = .bss:0x804A61E4; // type:object size:0xC scope:local align:4 @7662 = .bss:0x804A61F0; // type:object size:0xC scope:local align:4 -JASPoolAllocObject_MultiThreaded::memPool_ = .bss:0x804A61FC; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject_MultiThreaded<8JASTrack>::memPool_ = .bss:0x804A620C; // type:object size:0x10 scope:global align:4 +memPool___58JASPoolAllocObject_MultiThreaded = .bss:0x804A61FC; // type:object size:0x10 scope:global align:4 +memPool___43JASPoolAllocObject_MultiThreaded<8JASTrack> = .bss:0x804A620C; // type:object size:0x10 scope:global align:4 @6508 = .bss:0x804A6220; // type:object size:0xC scope:local align:4 @6528 = .bss:0x804A6230; // type:object size:0xC scope:local align:4 -JASPoolAllocObject_MultiThreaded<10JASChannel>::memPool_ = .bss:0x804A623C; // type:object size:0x10 scope:global align:4 +memPool___46JASPoolAllocObject_MultiThreaded<10JASChannel> = .bss:0x804A623C; // type:object size:0x10 scope:global align:4 @2188 = .bss:0x804A6250; // type:object size:0xC scope:local align:4 osc$3726 = .bss:0x804A6260; // type:object size:0x18 scope:global align:4 data:4byte sBankDisposeMsgQ__10JASChannel = .bss:0x804A6278; // type:object size:0x20 scope:global align:4 @@ -25237,15 +25240,15 @@ AUDIO_YIELD_BUFFER = .bss:0x804A66C0; // type:object size:0x2000 scope:global al taskwork = .bss:0x804A86C0; // type:object size:0x80 scope:global align:4 sync_stack = .bss:0x804A8740; // type:object size:0x14 scope:global align:4 data:4byte @12010 = .bss:0x804A8758; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<5JAISe>::memPool_ = .bss:0x804A8764; // type:object size:0x10 scope:global align:4 +memPool___26JASPoolAllocObject<5JAISe> = .bss:0x804A8764; // type:object size:0x10 scope:global align:4 @11658 = .bss:0x804A8778; // type:object size:0xC scope:local align:4 @11659 = .bss:0x804A8784; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<13JAISoundChild>::memPool_ = .bss:0x804A8790; // type:object size:0x10 scope:global align:4 +memPool___35JASPoolAllocObject<13JAISoundChild> = .bss:0x804A8790; // type:object size:0x10 scope:global align:4 @11633 = .bss:0x804A87A0; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<6JAISeq>::memPool_ = .bss:0x804A87AC; // type:object size:0x10 scope:global align:4 +memPool___27JASPoolAllocObject<6JAISeq> = .bss:0x804A87AC; // type:object size:0x10 scope:global align:4 @13266 = .bss:0x804A87C0; // type:object size:0xC scope:local align:4 @11692 = .bss:0x804A87D0; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<9JAIStream>::memPool_ = .bss:0x804A87DC; // type:object size:0x10 scope:global align:4 +memPool___30JASPoolAllocObject<9JAIStream> = .bss:0x804A87DC; // type:object size:0x10 scope:global align:4 ...bss.0 = .bss:0x804A87F0; // type:label scope:local align:4 @14499 = .bss:0x804A87F0; // type:object size:0xC scope:local align:4 @14506 = .bss:0x804A87FC; // type:object size:0xC scope:local align:4 @@ -25253,12 +25256,12 @@ JASPoolAllocObject<9JAIStream>::memPool_ = .bss:0x804A87DC; // type:object size: @14520 = .bss:0x804A8814; // type:object size:0xC scope:local align:4 @14527 = .bss:0x804A8820; // type:object size:0xC scope:local align:4 @14534 = .bss:0x804A882C; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<20JAUDopplerAudible<4>>::memPool_ = .bss:0x804A8838; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<20JAUDopplerAudible<2>>::memPool_ = .bss:0x804A8848; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<20JAUDopplerAudible<1>>::memPool_ = .bss:0x804A8858; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<13JAUAudible<4>>::memPool_ = .bss:0x804A8868; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<13JAUAudible<2>>::memPool_ = .bss:0x804A8878; // type:object size:0x10 scope:global align:4 -JASPoolAllocObject<13JAUAudible<1>>::memPool_ = .bss:0x804A8888; // type:object size:0x10 scope:global align:4 +memPool___42JASPoolAllocObject<20JAUDopplerAudible<4>> = .bss:0x804A8838; // type:object size:0x10 scope:global align:4 +memPool___42JASPoolAllocObject<20JAUDopplerAudible<2>> = .bss:0x804A8848; // type:object size:0x10 scope:global align:4 +memPool___42JASPoolAllocObject<20JAUDopplerAudible<1>> = .bss:0x804A8858; // type:object size:0x10 scope:global align:4 +memPool___35JASPoolAllocObject<13JAUAudible<4>> = .bss:0x804A8868; // type:object size:0x10 scope:global align:4 +memPool___35JASPoolAllocObject<13JAUAudible<2>> = .bss:0x804A8878; // type:object size:0x10 scope:global align:4 +memPool___35JASPoolAllocObject<13JAUAudible<1>> = .bss:0x804A8888; // type:object size:0x10 scope:global align:4 @22362 = .bss:0x804A8898; // type:object size:0xC scope:local align:4 ...bss.0 = .bss:0x804A88A8; // type:label scope:local align:4 @16553 = .bss:0x804A88A8; // type:object size:0xC scope:local align:4 @@ -25268,9 +25271,9 @@ JASPoolAllocObject<13JAUAudible<1>>::memPool_ = .bss:0x804A8888; // type:object @16557 = .bss:0x804A88D8; // type:object size:0xC scope:local align:4 @16558 = .bss:0x804A88E4; // type:object size:0xC scope:local align:4 @11364 = .bss:0x804A8950; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<17Z2SoundHandlePool>::memPool_ = .bss:0x804A895C; // type:object size:0x10 scope:global align:4 +memPool___39JASPoolAllocObject<17Z2SoundHandlePool> = .bss:0x804A895C; // type:object size:0x10 scope:global align:4 @15789 = .bss:0x804A8970; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<9Z2Audible>::memPool_ = .bss:0x804A897C; // type:object size:0x10 scope:global align:4 +memPool___30JASPoolAllocObject<9Z2Audible> = .bss:0x804A897C; // type:object size:0x10 scope:global align:4 ...bss.0 = .bss:0x804A8990; // type:label scope:local align:4 sCorrectPhrase = .bss:0x804A8990; // type:object size:0x24 scope:global align:4 sWindStoneSound = .bss:0x804A89B4; // type:object size:0x24 scope:global align:4 @@ -25282,7 +25285,7 @@ sSpeakerInfo = .bss:0x804A8A48; // type:object size:0xD0 scope:global align:4 @3524 = .bss:0x804A8B18; // type:object size:0xC scope:local align:4 sAdjustSoundHandle = .bss:0x804A8B24; // type:object size:0x10 scope:global align:4 @3738 = .bss:0x804A8B38; // type:object size:0xC scope:local align:4 -JASPoolAllocObject<8SpkSound>::memPool_ = .bss:0x804A8B44; // type:object size:0x10 scope:global align:4 +memPool___29JASPoolAllocObject<8SpkSound> = .bss:0x804A8B44; // type:object size:0x10 scope:global align:4 @3983 = .bss:0x804A8B58; // type:object size:0xC scope:local align:4 sAllocator = .bss:0x804A8B68; // type:object size:0x10 scope:global align:4 ...bss.0 = .bss:0x804A8B78; // type:label scope:local align:4 @@ -27559,20 +27562,20 @@ g_mDoAud_audioHeap = .sbss:0x80520784; // type:object size:0x4 scope:global alig l_affCommand = .sbss:0x80520788; // type:object size:0x4 scope:global align:4 data:4byte l_arcCommand = .sbss:0x8052078C; // type:object size:0x4 scope:global align:4 data:4byte l_CSarcCommand = .sbss:0x80520790; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<7Z2SeMgr>::sInstance = .sbss:0x80520794; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<8Z2SeqMgr>::sInstance = .sbss:0x80520798; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<10Z2SceneMgr>::sInstance = .sbss:0x8052079C; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<11Z2StatusMgr>::sInstance = .sbss:0x805207A0; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<14Z2SoundStarter>::sInstance = .sbss:0x805207A4; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<12Z2SpeechMgr2>::sInstance = .sbss:0x805207A8; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<8JAISeMgr>::sInstance = .sbss:0x805207AC; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<9JAISeqMgr>::sInstance = .sbss:0x805207B0; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<12JAIStreamMgr>::sInstance = .sbss:0x805207B4; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<10Z2SoundMgr>::sInstance = .sbss:0x805207B8; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<12JAUSoundInfo>::sInstance = .sbss:0x805207BC; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<11Z2SoundInfo>::sInstance = .sbss:0x805207C0; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<13Z2SoundObjMgr>::sInstance = .sbss:0x805207C4; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<11Z2FxLineMgr>::sInstance = .sbss:0x805207C8; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__27JASGlobalInstance<7Z2SeMgr> = .sbss:0x80520794; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__28JASGlobalInstance<8Z2SeqMgr> = .sbss:0x80520798; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__31JASGlobalInstance<10Z2SceneMgr> = .sbss:0x8052079C; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__32JASGlobalInstance<11Z2StatusMgr> = .sbss:0x805207A0; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__35JASGlobalInstance<14Z2SoundStarter> = .sbss:0x805207A4; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__33JASGlobalInstance<12Z2SpeechMgr2> = .sbss:0x805207A8; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__28JASGlobalInstance<8JAISeMgr> = .sbss:0x805207AC; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__29JASGlobalInstance<9JAISeqMgr> = .sbss:0x805207B0; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__33JASGlobalInstance<12JAIStreamMgr> = .sbss:0x805207B4; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__31JASGlobalInstance<10Z2SoundMgr> = .sbss:0x805207B8; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__33JASGlobalInstance<12JAUSoundInfo> = .sbss:0x805207BC; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__32JASGlobalInstance<11Z2SoundInfo> = .sbss:0x805207C0; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__34JASGlobalInstance<13Z2SoundObjMgr> = .sbss:0x805207C4; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__32JASGlobalInstance<11Z2FxLineMgr> = .sbss:0x805207C8; // type:object size:0x4 scope:global align:4 data:4byte lbl_805207D0 = .sbss:0x805207D0; // type:object size:0x1 data:byte m_cal_value__6mReCPd = .sbss:0x805207D4; // type:object size:0x4 scope:global align:4 data:4byte wpad_heap = .sbss:0x805207D8; // type:object size:0x4 scope:global align:4 data:4byte @@ -27842,7 +27845,7 @@ lbl_80520BF0 = .sbss:0x80520BF0; // type:object size:0x1 data:byte lbl_80520BF1 = .sbss:0x80520BF1; // type:object size:0x1 data:byte bgWaitFlg$169690 = .sbss:0x80520BF4; // type:object size:0x4 scope:global align:4 data:4byte lbl_80520BF8 = .sbss:0x80520BF8; // type:object size:0x1 data:byte -JASGlobalInstance<13Z2WolfHowlMgr>::sInstance = .sbss:0x80520BFC; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__34JASGlobalInstance<13Z2WolfHowlMgr> = .sbss:0x80520BFC; // type:object size:0x4 scope:global align:4 data:4byte mSrchName__8daNpcT_c = .sbss:0x80520C00; // type:object size:0x2 scope:global align:4 data:2byte mFindCount__8daNpcT_c = .sbss:0x80520C04; // type:object size:0x4 scope:global align:4 data:4byte m_name__23daBaseNpc_moveBgActor_c = .sbss:0x80520C08; // type:object size:0x4 scope:global align:4 data:4byte @@ -27870,7 +27873,7 @@ lbl_80520C50 = .sbss:0x80520C50; // type:object size:0x1 data:byte LatMin$119206 = .sbss:0x80520C52; // type:object size:0x2 scope:global align:2 data:2byte lbl_80520C54 = .sbss:0x80520C54; // type:object size:0x1 data:byte LatMax$119210 = .sbss:0x80520C56; // type:object size:0x2 scope:global align:2 data:2byte -JASGlobalInstance<10Z2Audience>::sInstance = .sbss:0x80520C58; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__31JASGlobalInstance<10Z2Audience> = .sbss:0x80520C58; // type:object size:0x4 scope:global align:4 data:4byte l_bloCsr = .sbss:0x80520C60; // type:object size:0x4 scope:local align:4 data:4byte l_bloObj = .sbss:0x80520C64; // type:object size:0x4 scope:local align:4 data:4byte l_bloYnObj = .sbss:0x80520C68; // type:object size:0x4 scope:global align:4 data:4byte @@ -28021,7 +28024,7 @@ sBuffer = .sbss:0x80520F18; // type:object size:0x4 scope:global align:4 data:4b sLineMax = .sbss:0x80520F1C; // type:object size:0x4 scope:global align:4 data:4byte sLineCount = .sbss:0x80520F20; // type:object size:0x4 scope:global align:4 data:4byte sTop = .sbss:0x80520F24; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<19JASDefaultBankTable>::sInstance = .sbss:0x80520F28; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__40JASGlobalInstance<19JASDefaultBankTable> = .sbss:0x80520F28; // type:object size:0x4 scope:global align:4 data:4byte lbl_80520F2C = .sbss:0x80520F2C; // type:object size:0x1 data:byte lbl_80520F2D = .sbss:0x80520F2D; // type:object size:0x1 data:byte sDefaultParser__10JASSeqCtrl = .sbss:0x80520F30; // type:object size:0x4 scope:global align:4 @@ -28057,7 +28060,7 @@ killCounter$4180 = .sbss:0x80520FC0; // type:object size:0x4 scope:global align: sDspUpCount = .sbss:0x80520FC4; // type:object size:0x4 scope:global align:4 data:4byte waitcount$4218 = .sbss:0x80520FC8; // type:object size:0x4 scope:global align:4 data:4byte snIntCount__14JASAudioThread = .sbss:0x80520FD0; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<14JASAudioThread>::sInstance = .sbss:0x80520FD4; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__35JASGlobalInstance<14JASAudioThread> = .sbss:0x80520FD4; // type:object size:0x4 scope:global align:4 data:4byte sDspChannels__13JASDSPChannel = .sbss:0x80520FD8; // type:object size:0x4 scope:global align:4 data:4byte CH_BUF__6JASDsp = .sbss:0x80520FE0; // type:object size:0x4 scope:global align:4 data:4byte FX_BUF__6JASDsp = .sbss:0x80520FE4; // type:object size:0x4 scope:global align:4 data:4byte @@ -28069,11 +28072,11 @@ taskwritep = .sbss:0x80520FFC; // type:object size:0x4 scope:global align:4 data lbl_80521000 = .sbss:0x80521000; // type:object size:0x1 data:byte lbl_80521001 = .sbss:0x80521001; // type:object size:0x1 data:byte DSP_prior_task = .sbss:0x80521004; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<12JAISoundInfo>::sInstance = .sbss:0x80521008; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__33JASGlobalInstance<12JAISoundInfo> = .sbss:0x80521008; // type:object size:0x4 scope:global align:4 data:4byte lbl_8052100C = .sbss:0x8052100C; // type:object size:0x1 data:byte lbl_80521010 = .sbss:0x80521010; // type:object size:0x8 data:byte lbl_80521018 = .sbss:0x80521018; // type:object size:0x1 data:byte -JASGlobalInstance<15JAISoundStarter>::sInstance = .sbss:0x80521020; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__36JASGlobalInstance<15JAISoundStarter> = .sbss:0x80521020; // type:object size:0x4 scope:global align:4 data:4byte lbl_80521028 = .sbss:0x80521028; // type:object size:0x8 data:byte lbl_80521030 = .sbss:0x80521030; // type:object size:0x1 data:byte lbl_80521031 = .sbss:0x80521031; // type:object size:0x1 data:byte @@ -28081,9 +28084,9 @@ lbl_80521032 = .sbss:0x80521032; // type:object size:0x1 data:byte lbl_80521033 = .sbss:0x80521033; // type:object size:0x1 data:byte lbl_80521034 = .sbss:0x80521034; // type:object size:0x1 data:byte lbl_80521035 = .sbss:0x80521035; // type:object size:0x1 data:byte -JASGlobalInstance<14JAUSectionHeap>::sInstance = .sbss:0x80521038; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<17JAUSoundNameTable>::sInstance = .sbss:0x8052103C; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<13JAUSoundTable>::sInstance = .sbss:0x80521040; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__35JASGlobalInstance<14JAUSectionHeap> = .sbss:0x80521038; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__38JASGlobalInstance<17JAUSoundNameTable> = .sbss:0x8052103C; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__34JASGlobalInstance<13JAUSoundTable> = .sbss:0x80521040; // type:object size:0x4 scope:global align:4 data:4byte lbl_80521048 = .sbss:0x80521048; // type:object size:0x1 data:byte oRandom$5639 = .sbss:0x8052104C; // type:object size:0x4 scope:global align:4 data:4byte MIN_DISTANCE_VOLUME__7Z2Param = .sbss:0x80521050; // type:object size:0x4 scope:global align:4 data:float @@ -28091,7 +28094,7 @@ ENEMY_LASTHIT_MUTE_VOLUME__7Z2Param = .sbss:0x80521054; // type:object size:0x4 DARK_SE_FILTER_ON__7Z2Param = .sbss:0x80521058; // type:object size:0x1 data:byte DARK_SE_LOW_PASS_FILTER_SETTING__7Z2Param = .sbss:0x80521059; // type:object size:0x1 data:byte SYSTEM_SE_USE_DARK_SE_SETTING__7Z2Param = .sbss:0x8052105A; // type:object size:0x1 data:byte -JASGlobalInstance<10Z2EnvSeMgr>::sInstance = .sbss:0x80521060; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__31JASGlobalInstance<10Z2EnvSeMgr> = .sbss:0x80521060; // type:object size:0x4 scope:global align:4 data:4byte lbl_80521068 = .sbss:0x80521068; // type:object size:0x1 data:byte cNearFarRatio = .sbss:0x80521070; // type:object size:0x4 scope:global align:4 data:float lbl_80521074 = .sbss:0x80521074; // type:object size:0x1 data:byte @@ -28100,8 +28103,8 @@ lbl_80521079 = .sbss:0x80521079; // type:object size:0x1 data:byte mLinkPtr__14Z2CreatureLink = .sbss:0x80521080; // type:object size:0x4 scope:global align:4 data:4byte mAudioMgrPtr__10Z2AudioMgr = .sbss:0x80521088; // type:object size:0x4 scope:global align:4 data:4byte sMixingBuffer = .sbss:0x80521090; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<9SpkSystem>::sInstance = .sbss:0x80521098; // type:object size:0x4 scope:global align:4 data:4byte -JASGlobalInstance<14SpkSoundHolder>::sInstance = .sbss:0x8052109C; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__29JASGlobalInstance<9SpkSystem> = .sbss:0x80521098; // type:object size:0x4 scope:global align:4 data:4byte +sInstance__35JASGlobalInstance<14SpkSoundHolder> = .sbss:0x8052109C; // type:object size:0x4 scope:global align:4 data:4byte lbl_805210A0 = .sbss:0x805210A0; // type:object size:0x8 data:byte lbl_805210A8 = .sbss:0x805210A8; // type:object size:0x1 data:byte sSpkHandles = .sbss:0x805210AC; // type:object size:0x4 scope:global align:4 data:4byte @@ -28118,8 +28121,8 @@ typeInfo__Q36nw4hbm3lyt7TextBox = .sbss:0x805210F8; // type:object size:0x4 scop typeInfo__Q36nw4hbm3lyt6Window = .sbss:0x80521100; // type:object size:0x4 scope:global align:4 data:4byte lbl_80521108 = .sbss:0x80521108; // type:object size:0x1 data:byte fog$5336 = .sbss:0x8052110C; // type:object size:0x4 scope:global align:4 data:byte -nw4hbm::ut::TextWriterBase::mDefaultTagProcessor = .sbss:0x80521110; // type:object size:0x4 scope:global align:4 -nw4hbm::ut::TextWriterBase::mDefaultTagProcessor = .sbss:0x80521114; // type:object size:0x4 scope:global align:4 +mDefaultTagProcessor__Q36nw4hbm2ut17TextWriterBase = .sbss:0x80521110; // type:object size:0x4 scope:global align:4 +mDefaultTagProcessor__Q36nw4hbm2ut17TextWriterBase = .sbss:0x80521114; // type:object size:0x4 scope:global align:4 lbl_80521118 = .sbss:0x80521118; // type:object size:0x1 data:byte lbl_80521119 = .sbss:0x80521119; // type:object size:0x1 data:byte sSystemHeap__7JKRHeap = .sbss:0x80521120; // type:object size:0x4 scope:global align:4 data:4byte @@ -30186,7 +30189,7 @@ id$103441 = .sdata2:0x805233D0; // type:object size:0x4 scope:global align:4 @120757 = .sdata2:0x805233E0; // type:object size:0x4 scope:local align:4 data:float @120758 = .sdata2:0x805233E4; // type:object size:0x4 scope:local align:4 data:float @121600 = .sdata2:0x805233E8; // type:object size:0x4 scope:local align:4 data:float -@121714 = .sdata2:0x805233EC; // type:object size:0x4 scope:local align:4 +@121714 = .sdata2:0x805233EC; // type:object size:0x4 scope:local align:4 data:float @122004 = .sdata2:0x805233F0; // type:object size:0x4 scope:local align:4 data:float @122252 = .sdata2:0x805233F4; // type:object size:0x4 scope:local align:4 data:float @122253 = .sdata2:0x805233F8; // type:object size:0x4 scope:local align:4 data:float @@ -31918,7 +31921,7 @@ lbl_80525232 = .sdata2:0x80525232; // type:object size:0x1 data:byte lbl_80525233 = .sdata2:0x80525233; // type:object size:0x1 data:byte @3255 = .sdata2:0x80525238; // type:object size:0x4 scope:local align:4 data:float lbl_80525240 = .sdata2:0x80525240; // type:object size:0x4 data:string -@LOCAL@std::numeric_limits::signaling_NaN(void)@x = .sdata2:0x80525248; // type:object size:0x8 scope:global align:4 data:double +x$localstatic$signaling_NaN__Q23std17numeric_limitsFv = .sdata2:0x80525248; // type:object size:0x8 scope:global align:4 data:double @12055 = .sdata2:0x80525250; // type:object size:0x8 scope:local align:4 data:double @12130 = .sdata2:0x80525258; // type:object size:0x8 scope:local align:4 data:double @12131 = .sdata2:0x80525260; // type:object size:0x8 scope:local align:4 data:double @@ -31951,7 +31954,7 @@ lbl_80525320 = .sdata2:0x80525320; // type:object size:0x4 data:string @12531 = .sdata2:0x80525328; // type:object size:0x4 scope:local align:4 data:float @11890 = .sdata2:0x80525330; // type:object size:0x4 scope:local align:4 data:float @11950 = .sdata2:0x80525334; // type:object size:0x4 scope:local align:4 data:float -@LOCAL@std::numeric_limits::signaling_NaN(void)@x = .sdata2:0x80525338; // type:object size:0x4 scope:global align:4 data:float +x$localstatic$signaling_NaN__Q23std17numeric_limitsFv = .sdata2:0x80525338; // type:object size:0x4 scope:global align:4 data:float @28530 = .sdata2:0x8052533C; // type:object size:0x4 scope:local align:4 data:float @28784 = .sdata2:0x80525340; // type:object size:0x4 scope:local align:4 data:float @28787 = .sdata2:0x80525348; // type:object size:0x8 scope:local align:4 data:double From 407db518d44e00707644f4d757aa5580f7ce933e Mon Sep 17 00:00:00 2001 From: Max Roncace Date: Sun, 7 Dec 2025 17:22:33 -0500 Subject: [PATCH 03/13] Add Wii USA v2 to GH Actions (#2928) --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3ed714829c..c66cd06eab 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -12,7 +12,7 @@ jobs: strategy: fail-fast: false matrix: - version: [GZ2E01, GZ2P01, GZ2J01, RZDE01_00, Shield, ShieldD] + version: [GZ2E01, GZ2P01, GZ2J01, RZDE01_00, RZDE01_02, Shield, ShieldD] steps: # Checkout the repository From 05c8009191be63710499e1e59b9531efaa20eb56 Mon Sep 17 00:00:00 2001 From: roeming Date: Sun, 7 Dec 2025 20:09:47 -0500 Subject: [PATCH 04/13] match debug for D_menu_fmap2_d (#2925) * menu_fmap2d debug progress * match debug for d_menu_fmap2D * fix broken function * fix weird shield mismatch * fix other shield mismatch * fix suggestions * fix func for wii version * match func for all versions * remove cast from saveBitLabels --- include/d/actor/d_a_npc_cdn3.h | 4 +- include/d/d_menu_fmap2D.h | 10 +- include/d/d_meter2_info.h | 2 +- include/d/d_pane_class.h | 6 +- include/d/d_save.h | 7 +- src/Z2AudioLib/Z2LinkMgr.cpp | 2 +- src/d/actor/d_a_demo00.cpp | 2 +- src/d/actor/d_a_e_hp.cpp | 2 +- src/d/actor/d_a_e_rdy.cpp | 2 +- src/d/actor/d_a_kago.cpp | 2 +- src/d/actor/d_a_kytag14.cpp | 4 +- src/d/actor/d_a_mg_rod.cpp | 14 +- src/d/actor/d_a_npc.cpp | 6 +- src/d/actor/d_a_npc4.cpp | 4 +- src/d/actor/d_a_npc_chat.cpp | 4 +- src/d/actor/d_a_npc_henna.cpp | 16 +- src/d/actor/d_a_npc_ks.cpp | 8 +- src/d/actor/d_a_obj_ihasi.cpp | 4 +- src/d/actor/d_a_obj_kamakiri.cpp | 8 +- src/d/actor/d_a_obj_katatsumuri.cpp | 8 +- src/d/actor/d_a_obj_volcbom.cpp | 2 +- src/d/actor/d_a_scene_exit.cpp | 4 +- src/d/d_kankyo.cpp | 4 +- src/d/d_menu_fmap2D.cpp | 827 +++++++++++++++++----------- src/d/d_meter2_info.cpp | 4 +- src/d/d_msg_flow.cpp | 10 +- src/d/d_s_menu.cpp | 8 +- src/d/d_save.cpp | 21 +- 28 files changed, 607 insertions(+), 388 deletions(-) diff --git a/include/d/actor/d_a_npc_cdn3.h b/include/d/actor/d_a_npc_cdn3.h index c5ef9f9283..c1436a8e3d 100644 --- a/include/d/actor/d_a_npc_cdn3.h +++ b/include/d/actor/d_a_npc_cdn3.h @@ -223,7 +223,7 @@ public: break; } /* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */ - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 9) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 9) { uVar3 = 0xb; } } else { @@ -257,7 +257,7 @@ public: break; } /* dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town */ - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 10) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && uVar3 == 10) { uVar3 = 12; } } diff --git a/include/d/d_menu_fmap2D.h b/include/d/d_menu_fmap2D.h index 75752c8ccc..cda275f36f 100644 --- a/include/d/d_menu_fmap2D.h +++ b/include/d/d_menu_fmap2D.h @@ -14,7 +14,9 @@ class dMsgScrnExplain_c; class dMenu_Fmap2DBack_c : public dDlst_base_c, public dMenuMapCommon_c { public: dMenu_Fmap2DBack_c(); + void setRegionTexData(u8, ResTIMG*, f32, f32, f32, f32, f32, f32, f32, f32, f32); + void setRegionTexData(u8, f32, f32, f32, f32, f32, f32, f32, f32, f32); void calcAllMapPos(); f32 calcAllMapScaleRate(); void calcAllMapPos2DFirst(f32, f32, f32*, f32*); @@ -142,8 +144,8 @@ public: u8 getSpotCursor() { return mSpotCursor; } u8 getSelectRegion() { return mSelectRegion; } bool getAllPathShowFlag() { return mAllPathShowFlag; } - f32 getRegionOriginX(u8 i_region) { return mRegionOriginX[i_region]; } - f32 getRegionOriginZ(u8 i_region) { return mRegionOriginZ[i_region]; } + f32 getRegionOriginX(int i_region) { return mRegionOriginX[i_region]; } + f32 getRegionOriginZ(int i_region) { return mRegionOriginZ[i_region]; } void setArrowAlpha(f32 i_alpha) { mArrowAlpha = i_alpha; } void setSpotTextureFadeAlpha(f32 i_alpha) { mSpotTextureFadeAlpha = i_alpha; } @@ -155,8 +157,8 @@ public: void onArrowDrawFlag() { mArrowDrawFlag = true; } bool isArrowDrawFlag() { return mArrowDrawFlag; } - void onShowRegionFlag(int region_bit) { mRegionFlag |= ((1 << region_bit) & 0xFF); } - bool isShowRegionFlag(int region_bit) { return mRegionFlag & ((1 << region_bit) & 0xFF); } + void onShowRegionFlag(int region_bit) { mRegionFlag |= (u8)(1 << region_bit); } + BOOL isShowRegionFlag(int region_bit) { return mRegionFlag & (u8)(1 << region_bit) ? TRUE : FALSE; } void mapBlink() {} diff --git a/include/d/d_meter2_info.h b/include/d/d_meter2_info.h index b538a2112d..c6bbcda163 100644 --- a/include/d/d_meter2_info.h +++ b/include/d/d_meter2_info.h @@ -302,7 +302,7 @@ void dMeter2Info_set2DVibrationM(); void dMeter2Info_offUseButton(int pButton); bool dMeter2Info_is2DActiveTouchArea(); u8 dMeter2Info_getRecieveLetterNum(); -bool dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX, +u8 dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX, f32 i_sizeY, struct ResTIMG const* i_resTimg); const char* dMeter2Info_getPlusTextureName(); const char* dMeter2Info_getNumberTextureName(int i_num); diff --git a/include/d/d_pane_class.h b/include/d/d_pane_class.h index 7b71458443..345cae1274 100644 --- a/include/d/d_pane_class.h +++ b/include/d/d_pane_class.h @@ -34,7 +34,7 @@ public: JGeometry::TBox2* getBounds(J2DPane*); Vec getGlobalVtx(Mtx* param_0, u8 param_1, bool param_2, s16 param_3) { - return getGlobalVtx(getPanePtr(), param_0, param_1, param_2, param_3); + return getGlobalVtx(mPane, param_0, param_1, param_2, param_3); } Vec getGlobalVtxCenter(bool param_0, s16 param_1) { @@ -60,8 +60,8 @@ public: f32 getPosX() { return getPanePtr()->getBounds().i.x; } f32 getPosY() { return getPanePtr()->getBounds().i.y; } - f32 getSizeX() { return getPanePtr()->getWidth(); } - f32 getSizeY() { return getPanePtr()->getHeight(); } + f32 getSizeX() { return mPane->getWidth(); } + f32 getSizeY() { return mPane->getHeight(); } f32 getRotateZ() { return getPanePtr()->getRotateZ(); } diff --git a/include/d/d_save.h b/include/d/d_save.h index a30d2d62c4..ba358fb04f 100644 --- a/include/d/d_save.h +++ b/include/d/d_save.h @@ -1027,7 +1027,12 @@ public: #if VERSION > VERSION_GCN_JPN const #endif - static u16 saveBitLabels[822]; +#if PLATFORM_SHIELD + s16 +#else + u16 +#endif + static saveBitLabels[822]; }; class dSv_event_tmp_flag_c { diff --git a/src/Z2AudioLib/Z2LinkMgr.cpp b/src/Z2AudioLib/Z2LinkMgr.cpp index f3d7e82d0d..ddfd2d59ef 100644 --- a/src/Z2AudioLib/Z2LinkMgr.cpp +++ b/src/Z2AudioLib/Z2LinkMgr.cpp @@ -317,7 +317,7 @@ JAISoundHandle* Z2CreatureLink::startLinkSoundLevel(JAISoundID soundID, u32 mapi case Z2SE_AL_SNOBO_RIDE: case Z2SE_AL_SNOBO_BREAK: /* dSv_event_flag_c::F_0266 - Snowpeak Ruins - Snowpeak Ruins clear */ - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[266]) + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[266]) && Z2GetSeqMgr()->getSubBgmID() != Z2BGM_SNOW_BOARD) { volume = 0.0f; volumeMoveSteps = 0; diff --git a/src/d/actor/d_a_demo00.cpp b/src/d/actor/d_a_demo00.cpp index 3b611f5bba..6459c6e67f 100644 --- a/src/d/actor/d_a_demo00.cpp +++ b/src/d/actor/d_a_demo00.cpp @@ -1089,7 +1089,7 @@ inline int daDemo00_c::execute() { break; } case 1: - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[sp0E]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[sp0E]); break; case 2: { diff --git a/src/d/actor/d_a_e_hp.cpp b/src/d/actor/d_a_e_hp.cpp index 4aad8f2684..1b052ddb2a 100644 --- a/src/d/actor/d_a_e_hp.cpp +++ b/src/d/actor/d_a_e_hp.cpp @@ -730,7 +730,7 @@ void daE_HP_c::executeDead() { field_0x784 = -1; if (dComIfGs_getPohSpiritNum() == 20) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1c9]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x1c9]); } movemode++; diff --git a/src/d/actor/d_a_e_rdy.cpp b/src/d/actor/d_a_e_rdy.cpp index 1033f09a25..1889fd1ce8 100644 --- a/src/d/actor/d_a_e_rdy.cpp +++ b/src/d/actor/d_a_e_rdy.cpp @@ -4277,7 +4277,7 @@ static int daE_RDY_Execute(e_rdy_class* i_this) { } } - if (i_this->field_0x5b8 == 12 && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[239] & 0xffff)) { + if (i_this->field_0x5b8 == 12 && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[239])) { fopAcM_OffStatus(a_this, 0); a_this->attention_info.flags = 0; return 1; diff --git a/src/d/actor/d_a_kago.cpp b/src/d/actor/d_a_kago.cpp index ad726a2ef5..20fe97ac76 100644 --- a/src/d/actor/d_a_kago.cpp +++ b/src/d/actor/d_a_kago.cpp @@ -522,7 +522,7 @@ void daKago_c::demo_skip(int param_0) { setPlayerRideOn(); field_0x718 = field_0x71a = 0; /* dSv_event_flag_c::M_051 - Main Event - Shadow Kargorok (?) (Large) event complete (Horse grass appears in various places) */ - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[84]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[84]); field_0x748 = 7; field_0x74c = NULL; break; diff --git a/src/d/actor/d_a_kytag14.cpp b/src/d/actor/d_a_kytag14.cpp index a4d63f187f..faee63a4e4 100644 --- a/src/d/actor/d_a_kytag14.cpp +++ b/src/d/actor/d_a_kytag14.cpp @@ -27,7 +27,7 @@ static int daKytag14_Execute(kytag14_class* i_this) { } if (i_this->mEventID1 != 0xFFFF) { - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_this->mEventID1])) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID1])) { event1_set = true; } else { event1_set = false; @@ -35,7 +35,7 @@ static int daKytag14_Execute(kytag14_class* i_this) { } if (i_this->mEventID2 != 0xFFFF) { - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_this->mEventID2])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_this->mEventID2])) { event2_unset = true; } else { event2_unset = false; diff --git a/src/d/actor/d_a_mg_rod.cpp b/src/d/actor/d_a_mg_rod.cpp index c628420e3b..5e450980ce 100644 --- a/src/d/actor/d_a_mg_rod.cpp +++ b/src/d/actor/d_a_mg_rod.cpp @@ -2570,7 +2570,7 @@ static void lure_catch(dmg_rod_class* i_this) { } if (i_this->play_cam_timer == 40) { - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[467])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[467])) { Z2GetAudioMgr()->subBgmStart(Z2BGM_FISHING_GET1); } else if (fish_kind == 3) { Z2GetAudioMgr()->subBgmStart(Z2BGM_FISHING_GET3); @@ -2582,7 +2582,7 @@ static void lure_catch(dmg_rod_class* i_this) { } else if (i_this->play_cam_timer == 80) { u8 sp8 = 1; if (i_this->field_0x14c0 != 0) { - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[467])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[467])) { sp8 = 2; } else if (fish_kind != 3) { sp8 = 2; @@ -2609,7 +2609,7 @@ static void lure_catch(dmg_rod_class* i_this) { data_80450C9A = 200; } - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[467]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[467]); static u16 catch_msgn_20[] = {0x02CE, 0x02D1, 0x02CF, 0x02D0}; static u16 catch_msgn_21[] = {0x02D2, 0x02D5, 0x02D3, 0x02D4}; @@ -4921,7 +4921,7 @@ static void play_camera(dmg_rod_class* i_this) { i_this->msgflow.init(actor, 0x2C9, 0, NULL); henna->field_0x6ba = 50; henna->field_0x7b8 = 0; - } else if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[467])) { + } else if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[467])) { if (i_this->field_0x1470 == 0) { sp174.x = -2800.0f; sp174.z = 4608.0f; @@ -4998,11 +4998,11 @@ static void play_camera(dmg_rod_class* i_this) { ) { int sp20 = 0; int sp1C = 1; - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[466])) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[466])) { sp20 = 1; } - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[469])) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[469])) { sp1C = 0; } @@ -5195,7 +5195,7 @@ static void play_camera(dmg_rod_class* i_this) { camera->mCamera.SetTrimSize(0); i_this->play_cam_mode = 0; i_this->field_0x146c = 30; - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[466]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[466]); i_this->field_0xf81 = 1; } } diff --git a/src/d/actor/d_a_npc.cpp b/src/d/actor/d_a_npc.cpp index e3fa84cd84..727d7259be 100644 --- a/src/d/actor/d_a_npc.cpp +++ b/src/d/actor/d_a_npc.cpp @@ -2897,15 +2897,15 @@ u8 daNpcT_getDistTableIdx(int param_0, int param_1) { } void daNpcT_onEvtBit(u32 i_no) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } void daNpcT_offEvtBit(u32 i_no) { - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } BOOL daNpcT_chkEvtBit(u32 i_no) { - return dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + return dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } void daNpcT_onTmpBit(u32 i_no) { diff --git a/src/d/actor/d_a_npc4.cpp b/src/d/actor/d_a_npc4.cpp index 6fea49bde1..7514363202 100644 --- a/src/d/actor/d_a_npc4.cpp +++ b/src/d/actor/d_a_npc4.cpp @@ -1848,11 +1848,11 @@ s16 daNpcF_getGroundAngle(cBgS_PolyInfo* param_0, s16 param_1) { } BOOL daNpcF_chkEvtBit(u32 i_no) { - return dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + return dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } void daNpcF_onEvtBit(u32 i_no) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[i_no]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[i_no]); } BOOL daNpcF_chkTmpBit(u32 i_no) { diff --git a/src/d/actor/d_a_npc_chat.cpp b/src/d/actor/d_a_npc_chat.cpp index 0fd2cc3734..e5514c21e9 100644 --- a/src/d/actor/d_a_npc_chat.cpp +++ b/src/d/actor/d_a_npc_chat.cpp @@ -2383,7 +2383,7 @@ int daNpcChat_c::getObjNum() { } // dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && objNum == OBJ_CELEB_BAG_M) { objNum = OBJ_MARO_BAG_M; } @@ -2427,7 +2427,7 @@ int daNpcChat_c::getObjNum() { } // dSv_event_flag_c::F_0281 - Shop - Malo Mart opens in Castle Town - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[281]) && + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[281]) && objNum == OBJ_CELEB_BAG_W) { objNum = OBJ_MARO_BAG_W; } diff --git a/src/d/actor/d_a_npc_henna.cpp b/src/d/actor/d_a_npc_henna.cpp index deb5410878..d13434bb3c 100644 --- a/src/d/actor/d_a_npc_henna.cpp +++ b/src/d/actor/d_a_npc_henna.cpp @@ -379,7 +379,7 @@ static void henna_shop(npc_henna_class* i_this) { } cLib_addCalcAngleS2(&i_this->actor.current.angle.y, i_this->field_0x618, 2, unkInt1); /* dSv_event_flag_c::F_0461 - Fishing Pond - First time entered fishing house */ - if ((!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[461]) || data_80450C9C != 0) && + if ((!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[461]) || data_80450C9C != 0) && i_this->field_0x7d7 == 0 && i_this->field_0x6a0 == 56 + TREG_S(7)) { dComIfGp_event_reset(); @@ -388,7 +388,7 @@ static void henna_shop(npc_henna_class* i_this) { i_this->cam_mode = 60; } else { /* dSv_event_flag_c::F_0461 - Fishing Pond - First time entered fishing house */ - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[461]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[461]); i_this->cam_mode = 1; } i_this->field_0x7d7 = 1; @@ -890,9 +890,9 @@ static void demo_camera(npc_henna_class* i_this) { i_this->cam_mode = 0; } /* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[0x1cf]); /* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d0]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[0x1d0]); } } @@ -994,7 +994,7 @@ static void demo_camera_shop(npc_henna_class* i_this) { if (!dComIfGp_event_runCheck() /* dSv_event_flag_c::F_0465 - Fishing Pond - Reserved for fishing */ - && !dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d1])) + && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1d1])) { i_this->field_0x756++; if (i_this->field_0x756 < 200) { @@ -2728,9 +2728,9 @@ static int daNpc_Henna_Create(fopAc_ac_c* i_this) { } } /* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[0x1cf]); /* dSv_event_flag_c::F_0464 - Fishing Pond - Reserved for fishing */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1d0]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[0x1d0]); a_this->field_0x618 = i_this->shape_angle.y = i_this->current.angle.y = newAngle; lbl_82_bss_91 = dComIfGs_getEventReg(0xf63f); daNpc_Henna_Execute(a_this); @@ -2775,7 +2775,7 @@ static int daNpc_Henna_Create(fopAc_ac_c* i_this) { NULL, -1); data_80450C99 = 0; /* dSv_event_flag_c::F_0463 - Fishing Pond - Reserved for fishing */ - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x1cf])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x1cf])) { a_this->field_0x70a = 4; a_this->field_0x734 = 1; } else { diff --git a/src/d/actor/d_a_npc_ks.cpp b/src/d/actor/d_a_npc_ks.cpp index ffe173521f..f495a1cb3d 100644 --- a/src/d/actor/d_a_npc_ks.cpp +++ b/src/d/actor/d_a_npc_ks.cpp @@ -5818,7 +5818,7 @@ static int npc_ks_fsdemo(npc_ks_class* i_this) { switch (i_this->mMode) { case 0: - if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x220] & 0xFFFF)) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x220])) { i_this->mMode = 40; } else { fpcM_Search(s_fs_sub, i_this); @@ -6628,7 +6628,7 @@ static void kantera_sub(npc_ks_class* i_this) { fopAcM_cancelCarryNow(a_this); cLib_offBit(a_this->attention_info.flags, fopAc_AttnFlag_CARRY_e); i_this->field_0xc17 = 0; - dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xE2] & 0xFFFF); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0xE2]); } else { i_this->field_0xc04.x = -30715.0f + AREG_F(8); i_this->field_0xc04.z = -17200.0f + AREG_F(9); @@ -7260,7 +7260,7 @@ static BOOL start_check(npc_ks_class* i_this) { break; case 21: - if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x20A] & 0xFFFF)) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x20A])) { rv = FALSE; } else { i_this->mActionID = 301; @@ -7268,7 +7268,7 @@ static BOOL start_check(npc_ks_class* i_this) { break; case 22: - if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x241] & 0xFFFF)) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x241])) { rv = FALSE; } else { i_this->mActionID = 302; diff --git a/src/d/actor/d_a_obj_ihasi.cpp b/src/d/actor/d_a_obj_ihasi.cpp index ff853ce782..a3f6eb0b3f 100644 --- a/src/d/actor/d_a_obj_ihasi.cpp +++ b/src/d/actor/d_a_obj_ihasi.cpp @@ -83,7 +83,7 @@ static int daObj_Ihasi_Execute(obj_ihasi_class* i_this) { dComIfG_Bgsp().Release(i_this->mpBgW); i_this->mpBgW = NULL; /* dSv_event_flag_c::M_050 - Main Event - Eldin Bridge disappears */ - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[0x53]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[0x53]); } action(i_this); @@ -162,7 +162,7 @@ static int daObj_Ihasi_Create(fopAc_ac_c* i_actor) { csXyz angle; /* dSv_event_flag_c::M_050 - Main Event - Eldin Bridge disappears */ - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[0x53])) { + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[0x53])) { angle.set(0x0, -0x8000, 0x0); pos.set(34750.0f, -300.0f, -44000.0f); diff --git a/src/d/actor/d_a_obj_kamakiri.cpp b/src/d/actor/d_a_obj_kamakiri.cpp index 386514e0e5..1005914025 100644 --- a/src/d/actor/d_a_obj_kamakiri.cpp +++ b/src/d/actor/d_a_obj_kamakiri.cpp @@ -734,9 +734,9 @@ u8 daObjKAM_c::CreateChk() { if (field_0x9c0 != 2) { if (unkInt1 != 0) { if (!dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) || + dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) || !dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]])) + dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]])) { return 0; } @@ -750,10 +750,10 @@ u8 daObjKAM_c::CreateChk() { if (mSex == SEX_MALE && !dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) || + dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) || mSex == SEX_FEMALE && !dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]])) + dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]])) { return 0; } diff --git a/src/d/actor/d_a_obj_katatsumuri.cpp b/src/d/actor/d_a_obj_katatsumuri.cpp index 54d03d073c..09b05d6be5 100644 --- a/src/d/actor/d_a_obj_katatsumuri.cpp +++ b/src/d/actor/d_a_obj_katatsumuri.cpp @@ -665,10 +665,10 @@ bool daObjKAT_c::CreateChk() { } if (field_0x808 != 2) { if (uVar4) { - if (dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) == + if (dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_MALE]]) == 0 || dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]]) == 0) + dSv_event_flag_c::saveBitLabels[l_musiya_num[SEX_FEMALE]]) == 0) { return false; } @@ -681,10 +681,10 @@ bool daObjKAT_c::CreateChk() { } if ((mSex == SEX_MALE && dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) == 0) || + dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) == 0) || (mSex == SEX_FEMALE && dComIfGs_isEventBit( - (u16)dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) == 0)) + dSv_event_flag_c::saveBitLabels[l_musiya_num[mSex]]) == 0)) { return false; } diff --git a/src/d/actor/d_a_obj_volcbom.cpp b/src/d/actor/d_a_obj_volcbom.cpp index 78bdcb22d7..6280b5a703 100644 --- a/src/d/actor/d_a_obj_volcbom.cpp +++ b/src/d/actor/d_a_obj_volcbom.cpp @@ -592,7 +592,7 @@ void daObjVolcBom_c::actionWait() { if (checkTalkDistance() /* dSv_event_flag_c::M_051 - Main Event - Shadow Kargorok (?) (Large) event complete (Horse grass appears in various places) */ - && dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[84])) { + && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[84])) { setAction(ACTION_ORDER_EVENT); actionOrderEvent(); } diff --git a/src/d/actor/d_a_scene_exit.cpp b/src/d/actor/d_a_scene_exit.cpp index 9ed25bd34c..d220a3a512 100644 --- a/src/d/actor/d_a_scene_exit.cpp +++ b/src/d/actor/d_a_scene_exit.cpp @@ -22,12 +22,12 @@ int daScex_c::checkWork() { } u16 eventBit = getOffEventBit(); - if (eventBit != 0x0FFF && dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[eventBit])) { + if (eventBit != 0x0FFF && dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[eventBit])) { return 0; } eventBit = getOnEventBit(); - if (eventBit != 0x0FFF && !dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[eventBit])) { + if (eventBit != 0x0FFF && !dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[eventBit])) { return 0; } diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp index c2e8e80534..ac96a6f3df 100644 --- a/src/d/d_kankyo.cpp +++ b/src/d/d_kankyo.cpp @@ -8669,8 +8669,8 @@ static int dKy_Create(void* i_this) { #if DEBUG if (strcmp(dComIfGp_getStartStageName(), "T_SASA0") == 0) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[142]); - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[167]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[142]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[167]); } #endif diff --git a/src/d/d_menu_fmap2D.cpp b/src/d/d_menu_fmap2D.cpp index 89bf756ad5..dc5fd5d4f5 100644 --- a/src/d/d_menu_fmap2D.cpp +++ b/src/d/d_menu_fmap2D.cpp @@ -118,15 +118,10 @@ dMenu_Fmap2DBack_c::dMenu_Fmap2DBack_c() { field_0xfb0 = 0.0; field_0xfb4 = 0.0; field_0xfb8 = 1.0; - mArrowAlpha = 0.0; - mArrowPos3DZ = 0.0; - mArrowPos3DX = 0.0; - field_0x11a8 = 0.0; - field_0x11a4 = 0.0; - field_0x11b0 = 0.0; - field_0x11ac = 0.0; - mArrowPos2DY = 0.0; - mArrowPos2DX = 0.0; + mArrowPos3DX = mArrowPos3DZ = mArrowAlpha = 0.0; + field_0x11a4 = field_0x11a8 = 0.0; + field_0x11ac = field_0x11b0 = 0.0; + mArrowPos2DX = mArrowPos2DY = 0.0; mSpotTextureFadeAlpha = 0.0; field_0x11dc = 0.0; field_0x11e0 = 360.0; @@ -146,7 +141,12 @@ dMenu_Fmap2DBack_c::dMenu_Fmap2DBack_c() { field_0x1210 = 1.0; field_0x1214 = 1.0; mArrowDrawFlag = true; + +#if DEBUG + mAllPathShowFlag = g_fmapHIO.mDisplayAllPaths; +#else mAllPathShowFlag = false; +#endif initiate(dComIfGp_getFmapResArchive()); @@ -168,8 +168,8 @@ dMenu_Fmap2DBack_c::dMenu_Fmap2DBack_c() { dPaneClass_showNullPane(mpBaseScreen); - mpBaseAnm = static_cast(J2DAnmLoaderDataBase::load( - JKRGetNameResource("zelda_map_screen_base.btk", dComIfGp_getFmapResArchive()))); + void* r = JKRGetNameResource("zelda_map_screen_base.btk", dComIfGp_getFmapResArchive()); + mpBaseAnm = (J2DAnmTextureSRTKey*)J2DAnmLoaderDataBase::load(r); mpBaseAnm->searchUpdateMaterialID(mpBaseScreen); mAnmFrame = 0.0; @@ -197,9 +197,9 @@ dMenu_Fmap2DBack_c::dMenu_Fmap2DBack_c() { mpPointScreen = new J2DScreen(); JUT_ASSERT(293, mpPointScreen != NULL); - fg = mpPointScreen->setPriority("zelda_field_map_point_cursor.blo", 0x20000, + mpPointScreen->setPriority("zelda_field_map_point_cursor.blo", 0x20000, dComIfGp_getFmapResArchive()); - JUT_ASSERT(252, fg != false); + JUT_ASSERT(297, fg != false); dPaneClass_showNullPane(mpPointScreen); @@ -425,7 +425,7 @@ void dMenu_Fmap2DBack_c::draw() { mDoGph_gInf_c::getHeightF(), false, false, false); } -void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_regionNo, ResTIMG* i_timg, f32 i_originX, +void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_areaType, ResTIMG* i_timg, f32 i_originX, f32 i_originZ, f32 i_posX, f32 i_posZ, f32 i_scale, f32 i_scrollMinX, f32 i_scrollMinZ, f32 i_scrollMaxX, f32 i_scrollMaxZ) { @@ -433,34 +433,34 @@ void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_regionNo, ResTIMG* i_timg, f32 i_ i_scale = 100.0f; } - mpAreaTex[i_regionNo] = new J2DPicture(i_timg); - JUT_ASSERT(763, mpAreaTex[i_regionNo] != NULL); + mpAreaTex[i_areaType] = new J2DPicture(i_timg); + JUT_ASSERT(763, mpAreaTex[i_areaType] != NULL); - mRegionOriginX[i_regionNo] = i_originX; - mRegionOriginZ[i_regionNo] = i_originZ; - mRegionTexData[i_regionNo].mScale = i_scale * 100.0f; + mRegionOriginX[i_areaType] = i_originX; + mRegionOriginZ[i_areaType] = i_originZ; + mRegionTexData[i_areaType].mScale = i_scale * 100.0f; f32 width = i_timg->width; f32 height = i_timg->height; - f32 min_x = (mRegionOriginX[i_regionNo] + i_posX) - - ((width * 0.5f) * mRegionTexData[i_regionNo].mScale); - f32 min_z = (mRegionOriginZ[i_regionNo] + i_posZ) - - ((height * 0.5f) * mRegionTexData[i_regionNo].mScale); - f32 max_x = (mRegionOriginX[i_regionNo] + i_posX) + - ((width * 0.5f) * mRegionTexData[i_regionNo].mScale); - f32 max_z = (mRegionOriginZ[i_regionNo] + i_posZ) + - ((height * 0.5f) * mRegionTexData[i_regionNo].mScale); + f32 min_x = (mRegionOriginX[i_areaType] + i_posX) - + ((width * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 min_z = (mRegionOriginZ[i_areaType] + i_posZ) - + ((height * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 max_x = (mRegionOriginX[i_areaType] + i_posX) + + ((width * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 max_z = (mRegionOriginZ[i_areaType] + i_posZ) + + ((height * 0.5f) * mRegionTexData[i_areaType].mScale); - mRegionTexData[i_regionNo].mMinX = min_x; - mRegionTexData[i_regionNo].mMinZ = min_z; - mRegionTexData[i_regionNo].mMaxX = max_x; - mRegionTexData[i_regionNo].mMaxZ = max_z; + mRegionTexData[i_areaType].mMinX = min_x; + mRegionTexData[i_areaType].mMinZ = min_z; + mRegionTexData[i_areaType].mMaxX = max_x; + mRegionTexData[i_areaType].mMaxZ = max_z; - mRegionScrollMinX[i_regionNo] = i_scrollMinX; - mRegionScrollMinZ[i_regionNo] = i_scrollMinZ; - mRegionScrollMaxX[i_regionNo] = i_scrollMaxX; - mRegionScrollMaxZ[i_regionNo] = i_scrollMaxZ; + mRegionScrollMinX[i_areaType] = i_scrollMinX; + mRegionScrollMinZ[i_areaType] = i_scrollMinZ; + mRegionScrollMaxX[i_areaType] = i_scrollMaxX; + mRegionScrollMaxZ[i_areaType] = i_scrollMaxZ; bool first = false; @@ -494,12 +494,78 @@ void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_regionNo, ResTIMG* i_timg, f32 i_ } } if ((!bVar14) && (field_0x1230[i] == 0xff)) { - field_0x1230[i] = i_regionNo; + field_0x1230[i] = i_areaType; bVar14 = true; } } } +void dMenu_Fmap2DBack_c::setRegionTexData(u8 i_areaType, f32 i_originX, f32 i_originZ, f32 i_posX, + f32 i_posZ, f32 i_scale, f32 i_scrollMinX, + f32 i_scrollMinZ, f32 i_scrollMaxX, f32 i_scrollMaxZ) { + if (i_scale == 0.0f) { + i_scale = 100.0f; + } + + mRegionOriginX[i_areaType] = i_originX; + mRegionOriginZ[i_areaType] = i_originZ; + mRegionTexData[i_areaType].mScale = i_scale * 100.0f; + + f32 width = mpAreaTex[i_areaType]->getTexture(0)->getTexInfo()->width; + f32 height = mpAreaTex[i_areaType]->getTexture(0)->getTexInfo()->height; + + f32 min_x = (mRegionOriginX[i_areaType] + i_posX) - + ((width * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 min_z = (mRegionOriginZ[i_areaType] + i_posZ) - + ((height * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 max_x = (mRegionOriginX[i_areaType] + i_posX) + + ((width * 0.5f) * mRegionTexData[i_areaType].mScale); + f32 max_z = (mRegionOriginZ[i_areaType] + i_posZ) + + ((height * 0.5f) * mRegionTexData[i_areaType].mScale); + + mRegionTexData[i_areaType].mMinX = min_x; + mRegionTexData[i_areaType].mMinZ = min_z; + mRegionTexData[i_areaType].mMaxX = max_x; + mRegionTexData[i_areaType].mMaxZ = max_z; + + mRegionScrollMinX[i_areaType] = i_scrollMinX; + mRegionScrollMinZ[i_areaType] = i_scrollMinZ; + mRegionScrollMaxX[i_areaType] = i_scrollMaxX; + mRegionScrollMaxZ[i_areaType] = i_scrollMaxZ; + + bool first = false; + + mTexMinX = 0.0f; + mTexMinZ = 0.0f; + mTexMaxX = 0.0f; + mTexMaxZ = 0.0f; + + for (int i = 0; i < 8; i++) { + if (mpAreaTex[i] != NULL) { + if (!first) { + mTexMinX = mRegionTexData[i].mMinX; + mTexMinZ = mRegionTexData[i].mMinZ; + mTexMaxX = mRegionTexData[i].mMaxX; + mTexMaxZ = mRegionTexData[i].mMaxZ; + first = true; + } else { + if (mTexMinX > mRegionTexData[i].mMinX) { + mTexMinX = mRegionTexData[i].mMinX; + } + if (mTexMinZ > mRegionTexData[i].mMinZ) { + mTexMinZ = mRegionTexData[i].mMinZ; + } + if (mTexMaxX < mRegionTexData[i].mMaxX) { + mTexMaxX = mRegionTexData[i].mMaxX; + } + if (mTexMaxZ < mRegionTexData[i].mMaxZ) { + mTexMaxZ = mRegionTexData[i].mMaxZ; + } + } + } + } +} + void dMenu_Fmap2DBack_c::calcAllMapPos() { bool set = false; calcAllMapScaleRate(); @@ -533,21 +599,24 @@ void dMenu_Fmap2DBack_c::calcAllMapPos() { f32 dMenu_Fmap2DBack_c::calcAllMapScaleRate() { f32 width = mTexMaxX - mTexMinX; f32 height = mTexMaxZ - mTexMinZ; - f32 size = width; - if (width < height) { + if (size < height) { size = height; } - - mAllMapScaleRate = getMapAreaSizeX() / size; + f32 v = getMapAreaSizeX(); + mAllMapScaleRate = v / size; return mAllMapScaleRate; } void dMenu_Fmap2DBack_c::calcAllMapPos2DFirst(f32 i_texPosX, f32 i_texPosZ, f32* o_posX, f32* o_posY) { - f32 pos_x = (mAllMapScaleRate * (i_texPosX - (mTexMaxX + mTexMinX) * 0.5f)); - f32 pos_y = (mAllMapScaleRate * (i_texPosZ - (mTexMaxZ + mTexMinZ) * 0.5f)); + f32 midTexX = (mTexMaxX + mTexMinX) * 0.5f; + f32 midTexZ = (mTexMaxZ + mTexMinZ) * 0.5f; + f32 relativePosX = i_texPosX - midTexX; + f32 relativePosZ = i_texPosZ - midTexZ; + f32 pos_x = (mAllMapScaleRate * relativePosX); + f32 pos_y = (mAllMapScaleRate * relativePosZ); *o_posX = pos_x + getMapAreaGlobalCenterPosX(); *o_posY = pos_y + getMapAreaGlobalCenterPosY(); @@ -566,36 +635,39 @@ void dMenu_Fmap2DBack_c::calcAllMapPos2D(char const* param_0, f32 param_1, f32 p field_0xf2c[mRegionCursor], mZoom); } -void dMenu_Fmap2DBack_c::calcAllMapPos2D(f32 param_0, f32 param_1, f32* param_2, f32* param_3, +void dMenu_Fmap2DBack_c::calcAllMapPos2D(f32 param_0, f32 param_1, f32* outX, f32* outZ, f32 param_4, f32 param_5, f32 i_zoom) { - getMapAreaSizeX(); - getMapAreaSizeY(); + f32 unusedX = (mTexMaxX - mTexMinX) / getMapAreaSizeX(); + f32 unusedY = (mTexMaxZ - mTexMinZ) / getMapAreaSizeY(); + f32 unusedMax = unusedX; + if (unusedX < unusedY) { + unusedMax = unusedY; + } + f32 regionMidX = (mRegionTexData[mRegionCursor].mMinX + mRegionTexData[mRegionCursor].mMaxX) * 0.5f; + f32 regionMidY = (mRegionTexData[mRegionCursor].mMinZ + mRegionTexData[mRegionCursor].mMaxZ) * 0.5f; + f32 f25 = mRegionMinMapX[mRegionCursor] + param_4 + (mRegionMapSizeX[mRegionCursor] * i_zoom) * 0.5f; + f32 f24 = mRegionMinMapY[mRegionCursor] + param_5 + (mRegionMapSizeY[mRegionCursor] * i_zoom) * 0.5f; - f32 tmp1 = (mRegionTexData[mRegionCursor].mMinX + mRegionTexData[mRegionCursor].mMaxX) * 0.5f; - f32 tmp2 = (mRegionTexData[mRegionCursor].mMinZ + mRegionTexData[mRegionCursor].mMaxZ) * 0.5f; - f32 tmp3 = mRegionMinMapX[mRegionCursor] + param_4 + (mRegionMapSizeX[mRegionCursor] * i_zoom) * 0.5f; - f32 tmp4 = mRegionMinMapY[mRegionCursor] + param_5 + (mRegionMapSizeY[mRegionCursor] * i_zoom) * 0.5f; - - f32 scaleRatio = (getPathScale(i_zoom) / getMapScissorAreaSizeRealY()); - - f32 tmp5 = (param_0 - tmp1) / scaleRatio; - *param_2 = tmp5 + tmp3; - tmp5 = (param_1 - tmp2) / scaleRatio; - *param_3 = tmp5 + tmp4; + f32 scale = getPathScale(i_zoom) / getMapScissorAreaSizeRealY(); + f32 offsX = (param_0 - regionMidX) / scale; + f32 offsY = (param_1 - regionMidY) / scale; + *outX = offsX + f25; + *outZ = offsY + f24; } -void dMenu_Fmap2DBack_c::calcAllMapPosWorld(f32 param_0, f32 param_1, f32* param_2, f32* param_3) { - f32 tmp1 = (mRegionTexData[mRegionCursor].mMinX + mRegionTexData[mRegionCursor].mMaxX) * 0.5f; - f32 tmp2 = (mRegionTexData[mRegionCursor].mMinZ + mRegionTexData[mRegionCursor].mMaxZ) * 0.5f; - f32 tmp3 = (param_0 - ((mRegionMinMapX[mRegionCursor] + field_0xf0c[mRegionCursor]) + - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f)); - f32 tmp4 = (param_1 - ((mRegionMinMapY[mRegionCursor] + field_0xf2c[mRegionCursor]) + - mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f)); - +void dMenu_Fmap2DBack_c::calcAllMapPosWorld(f32 param_0, f32 param_1, f32* outX, f32* outZ) { + f32 midX = (mRegionTexData[mRegionCursor].mMinX + mRegionTexData[mRegionCursor].mMaxX) * 0.5f; + f32 midY = (mRegionTexData[mRegionCursor].mMinZ + mRegionTexData[mRegionCursor].mMaxZ) * 0.5f; + f32 tmp3 = (mRegionMinMapX[mRegionCursor] + field_0xf0c[mRegionCursor]) + + mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f; + f32 tmp4 = (mRegionMinMapY[mRegionCursor] + field_0xf2c[mRegionCursor]) + + mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f; + f32 tmp3_ = param_0 - tmp3; + f32 tmp4_ = param_1 - tmp4; f32 tmp5 = field_0xf98 / getMapScissorAreaSizeRealY(); - *param_2 = tmp1 + (tmp3 * tmp5); - *param_3 = tmp2 + (tmp4 * tmp5); + *outX = midX + (tmp3_ * tmp5); + *outZ = midY + (tmp4_ * tmp5); } void dMenu_Fmap2DBack_c::setSpotPane(ResTIMG* i_timg) { @@ -624,27 +696,28 @@ void dMenu_Fmap2DBack_c::zoomMapCalc(f32 i_zoom) { if (g_fmapHIO.field_0x308 == false) { f32 region_centerX = mRegionMinMapX[mRegionCursor] + (mRegionMapSizeX[mRegionCursor] * 0.5f); f32 region_centerY = mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f); - field_0xf0c[mRegionCursor] = region_centerX + (i_zoom * (centerX - region_centerX)) - - (mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - - mRegionMinMapX[mRegionCursor]; - field_0xf2c[mRegionCursor] = region_centerY + (i_zoom * (centerY - region_centerY)) - - (mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f) - - mRegionMinMapY[mRegionCursor]; + f32 v = region_centerX + (i_zoom * (centerX - region_centerX)); + f32 v2 = region_centerY + (i_zoom * (centerY - region_centerY)); + field_0xf0c[mRegionCursor] = + v - (mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - mRegionMinMapX[mRegionCursor]; + field_0xf2c[mRegionCursor] = + v2 - (mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f) - mRegionMinMapY[mRegionCursor]; } else { f32 dVar12 = (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f; f32 dVar11 = (mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f; - f32 tmp = (mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f)) - dVar11; + f32 tmp3 = (mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - dVar12; + f32 tmp = (mRegionMinMapY[mRegionCursor] + mRegionMapSizeY[mRegionCursor] * 0.5f) - dVar11; f32 tmp2 = (dVar12 + (i_zoom * (centerX - dVar12))); - f32 tmp3 = (((mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - dVar12)); + f32 tmp2_ = (dVar11 + (i_zoom * (centerY - dVar11))); + field_0xf0c[mRegionCursor] = - (((tmp2 + (tmp3 * mZoom))) - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - + ((tmp2 + (tmp3 * mZoom)) - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - mRegionMinMapX[mRegionCursor]; field_0xf2c[mRegionCursor] = - (((dVar11 + (i_zoom * (centerY - dVar11))) + tmp * mZoom) - - mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f) - + ((tmp2_ + tmp * mZoom) - mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f) - mRegionMinMapY[mRegionCursor]; } @@ -718,11 +791,11 @@ void dMenu_Fmap2DBack_c::zoomMapCalc2(f32 param_0) { field_0xf2c[mRegionCursor] = (centerY - (mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f)) - mRegionMinMapY[mRegionCursor]; } else { - f32 tmp1 = (mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f)) - - ((mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f); + f32 x = (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f; + f32 y = (mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f; - f32 tmp2 = ((mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - - (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f); + f32 tmp2 = (mRegionMinMapX[mRegionCursor] + (mRegionMapSizeX[mRegionCursor] * 0.5f)) - x; + f32 tmp1 = (mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f)) - y; field_0xf0c[mRegionCursor] = ((centerX + (tmp2 * mZoom)) - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - @@ -770,11 +843,15 @@ void dMenu_Fmap2DBack_c::zoomMapCalcHIO() { (centerY - (mRegionMapSizeY[mRegionCursor] * mZoom * 0.5f)) - mRegionMinMapY[mRegionCursor]; } else { - f32 tmp1 = (mRegionMinMapY[mRegionCursor] + (mRegionMapSizeY[mRegionCursor] * 0.5f)) - - ((mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f); + f32 x = + (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f; + f32 y = + (mRegionScrollMapMinY[mRegionCursor] + mRegionScrollMapMaxY[mRegionCursor]) * 0.5f; - f32 tmp2 = ((mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - - (mRegionScrollMapMinX[mRegionCursor] + mRegionScrollMapMaxX[mRegionCursor]) * 0.5f); + f32 tmp2 = + ((mRegionMinMapX[mRegionCursor] + mRegionMapSizeX[mRegionCursor] * 0.5f) - x); + f32 tmp1 = + ((mRegionMinMapY[mRegionCursor] + mRegionMapSizeY[mRegionCursor] * 0.5f) - y); field_0xf0c[mRegionCursor] = ((centerX + (tmp2 * mZoom)) - mRegionMapSizeX[mRegionCursor] * mZoom * 0.5f) - @@ -800,20 +877,21 @@ void dMenu_Fmap2DBack_c::zoomMapCalcHIO() { } void dMenu_Fmap2DBack_c::scrollCalc(f32 param_0) { - f32 tmp1, tmp2; - calcAllMapPos2D(mArrowPos3DX + control_xpos, mArrowPos3DZ + control_ypos, &tmp1, &tmp2, + f32 sp40, sp3C; + calcAllMapPos2D(mArrowPos3DX + control_xpos, mArrowPos3DZ + control_ypos, &sp40, &sp3C, field_0xf4c[mRegionCursor], field_0xf6c[mRegionCursor], getRegionMapZoomRate(mRegionCursor)); - f32 centerX = getMapAreaGlobalCenterPosX(); - f32 centerY = getMapAreaGlobalCenterPosY(); + f32 sp38 = getMapAreaGlobalCenterPosX(); + f32 sp34 = getMapAreaGlobalCenterPosY(); - f32 tmp3, tmp4; - calcAllMapPosWorld(tmp1 + (param_0 * (centerX - tmp1)), tmp2 + (param_0 * (centerY - tmp2)), - &tmp3, &tmp4); + f32 sp30 = sp40 + (param_0 * (sp38 - sp40)); + f32 sp2C = sp3C + (param_0 * (sp34 - sp3C)); + f32 sp28, sp24; + calcAllMapPosWorld(sp30, sp2C, &sp28, &sp24); - mStageTransX = (mArrowPos3DX + control_xpos) - tmp3; - mStageTransZ = (mArrowPos3DZ + control_ypos) - tmp4; + mStageTransX = (mArrowPos3DX + control_xpos) - sp28; + mStageTransZ = (mArrowPos3DZ + control_ypos) - sp24; field_0x11ac = mStageTransX; field_0x11b0 = mStageTransZ; @@ -835,23 +913,22 @@ void dMenu_Fmap2DBack_c::scrollCalc(f32 param_0) { } calcAllMapPos2D(mArrowPos3DX + control_xpos + local_44, - mArrowPos3DZ + control_ypos + local_48, &tmp1, &tmp2, + mArrowPos3DZ + control_ypos + local_48, &sp40, &sp3C, field_0xf4c[mRegionCursor], field_0xf6c[mRegionCursor], getRegionMapZoomRate(mRegionCursor)); - f32 local_54, local_58; - calcAllMapPosWorld(tmp1 + (param_0 * (centerX - tmp1)), tmp2 + (param_0 * (centerY - tmp2)), - &local_54, &local_58); + f32 sp14 = sp40 + (param_0 * (sp38 - sp40)); + f32 sp10 = sp3C + (param_0 * (sp34 - sp3C)); + f32 spC, sp8; + calcAllMapPosWorld(sp14, sp10, &spC, &sp8); - field_0x11ac = (mArrowPos3DX + control_xpos + local_44) - local_54; - field_0x11b0 = (mArrowPos3DZ + control_ypos + local_48) - local_58; + field_0x11ac = (mArrowPos3DX + control_xpos + local_44) - spC; + field_0x11b0 = (mArrowPos3DZ + control_ypos + local_48) - sp8; } if (param_0 == 0.0f) { - field_0xfd4 = 0.0f; - field_0xfd0 = 0.0f; - field_0xfdc = 0.0f; - field_0xfd8 = 0.0f; + field_0xfd0 = field_0xfd4 = 0.0f; + field_0xfd8 = field_0xfdc = 0.0f; } else if (param_0 == 1.0f) { field_0xfd0 = mStageTransX; field_0xfd4 = mStageTransZ; @@ -861,9 +938,9 @@ void dMenu_Fmap2DBack_c::scrollCalc(f32 param_0) { } void dMenu_Fmap2DBack_c::mapBlink(s16* param_0) { - *param_0 += 1; + *param_0 += (s16)1; if (*param_0 >= 30) { - *param_0 -= 30; + *param_0 -= (s16)30; } } @@ -876,70 +953,73 @@ void dMenu_Fmap2DBack_c::setSpotCursor(u8 param_0) { } void dMenu_Fmap2DBack_c::allmap_move2(STControl* param_0) { - f32 tmp1, tmp2; - calcAllMapPosWorld(getMapScissorAreaLX(), getMapScissorAreaLY(), &tmp1, &tmp2); + f32 sp48, sp44; + calcAllMapPosWorld(getMapScissorAreaLX(), getMapScissorAreaLY(), &sp48, &sp44); - f32 local_50, local_54; + f32 sp40, sp3C; calcAllMapPosWorld(getMapScissorAreaLX() + getMapScissorAreaSizeRealX(), - getMapScissorAreaLY() + getMapScissorAreaSizeRealY(), &local_50, &local_54); + getMapScissorAreaLY() + getMapScissorAreaSizeRealY(), &sp40, &sp3C); + int r26 = 0; + if (r26 == 0) { + f32 spC = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : + g_fmapHIO.mScrollSpeedFastBound; + f32 sp8 = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : + g_fmapHIO.mScrollSpeedFastBound; - f32 scrollSpeed1 = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : - g_fmapHIO.mScrollSpeedFastBound; - f32 scrollSpeed2 = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : - g_fmapHIO.mScrollSpeedFastBound; + f32 stickValue = param_0->getValueStick(); + if (stickValue >= spC) { + s16 angle = param_0->getAngleStick(); + f32 local_68 = (mTexMaxX - mTexMinX); + f32 zoomRate = local_68 / getAllMapZoomRate(); + f32 sp24; + if (stickValue < sp8) { + sp24 = g_fmapHIO.mScrollSpeedWorldSlow; + } else { + sp24 = g_fmapHIO.mScrollSpeedWorldFast; + } - f32 stickValue = param_0->getValueStick(); - if (stickValue >= scrollSpeed1) { - s16 angle = param_0->getAngleStick(); - f32 local_68 = (mTexMaxX - mTexMinX); - f32 zoomRate = local_68 / getAllMapZoomRate(); + f32 speed = (sp24 / 100.0f) * zoomRate; + f32 delta_y = speed * cM_ssin(angle); + f32 delta_x = speed * cM_scos(angle); - f32 speed = ((stickValue < scrollSpeed2 ? g_fmapHIO.mScrollSpeedWorldSlow : - g_fmapHIO.mScrollSpeedWorldFast) / - 100.0f); - - f32 delta_y = (speed * zoomRate) * cM_ssin(angle); - f32 delta_x = (speed * zoomRate) * cM_scos(angle); - - control_xpos = control_xpos + delta_y; - control_ypos = control_ypos + delta_x; + control_xpos = control_xpos + delta_y; + control_ypos = control_ypos + delta_x; + } + } + if (mArrowPos3DX + control_xpos < sp48) { + control_xpos = sp48 - mArrowPos3DX; } - if (mArrowPos3DX + control_xpos < tmp1) { - control_xpos = tmp1 - mArrowPos3DX; + if (mArrowPos3DX + control_xpos > sp40) { + control_xpos = sp40 - mArrowPos3DX; } - if (mArrowPos3DX + control_xpos > local_50) { - control_xpos = local_50 - mArrowPos3DX; + if (mArrowPos3DZ + control_ypos < sp44) { + control_ypos = sp44 - mArrowPos3DZ; } - if (mArrowPos3DZ + control_ypos < tmp2) { - control_ypos = tmp2 - mArrowPos3DZ; - } - - if (mArrowPos3DZ + control_ypos > local_54) { - control_ypos = local_54 - mArrowPos3DZ; + if (mArrowPos3DZ + control_ypos > sp3C) { + control_ypos = sp3C - mArrowPos3DZ; } calcRenderingScale(); calcRenderingPos(); calcAllMapPos(); - f32 local_7c, local_80; + f32 sp14, sp10; calcAllMapPos2D((mArrowPos3DX + control_xpos) - mStageTransX, - (mArrowPos3DZ + control_ypos) - mStageTransZ, &local_7c, &local_80); + (mArrowPos3DZ + control_ypos) - mStageTransZ, &sp14, &sp10); mSelectRegion = 0xff; for (int i = 7; i >= 0; i--) { int val = field_0x1230[i]; if (val != 0xff && val != 7) { - const ResTIMG* timg = mpAreaTex[val]->getTexture(0)->getTexInfo(); - bool pixel = dMeter2Info_getPixel( - local_7c, local_80, (mRegionMinMapX[val] + field_0xf0c[val] + mTransX), - (mRegionMinMapY[val] + field_0xf2c[val] + mTransZ), - (mRegionMapSizeX[val] * mZoom), (mRegionMapSizeY[val] * mZoom), timg); + u8 pixel = dMeter2Info_getPixel( + sp14, sp10, (mRegionMinMapX[val] + field_0xf0c[val] + mTransX), + (mRegionMinMapY[val] + field_0xf2c[val] + mTransZ), (mRegionMapSizeX[val] * mZoom), + (mRegionMapSizeY[val] * mZoom), mpAreaTex[val]->getTexture(0)->getTexInfo()); if (pixel) { mSelectRegion = val; } @@ -953,39 +1033,41 @@ void dMenu_Fmap2DBack_c::setIcon2DPos(u8 param_0, f32 param_1, f32 param_2, f32 bool param_5) { f32 local_68, local_6c; - f32 local_70 = mMapZoomRate; + f32 sp30 = mMapZoomRate; u8 uVar9 = 1; if (param_0 == 17) { uVar9 = 2; - f32 local_74, local_78; - calcAllMapPosWorld(getMapScissorAreaCenterPosX(), getMapScissorAreaCenterPosY(), &local_74, - &local_78); + f32 dVar11 = 0.0f; + f32 dVar10 = 0.0f; + f32 sp2C, sp28; + calcAllMapPosWorld(getMapScissorAreaCenterPosX(), getMapScissorAreaCenterPosY(), &sp2C, + &sp28); - f32 local_7c, local_80; - calcAllMapPos2D(local_74 + mStageTransX, local_78 + mStageTransZ, &local_7c, &local_80); + f32 sp24, sp20; + calcAllMapPos2D(sp2C + mStageTransX, sp28 + mStageTransZ, &sp24, &sp20); - f32 dVar11 = getMapScissorAreaCenterPosX() - local_7c; - f32 dVar10 = getMapScissorAreaCenterPosY() - local_80; + dVar11 = getMapScissorAreaCenterPosX() - sp24; + dVar10 = getMapScissorAreaCenterPosY() - sp20; if (mRegionCursor + 1 == dComIfGp_getNowLevel()) { calcAllMapPos2D(param_1 - mStageTransX, param_2 - mStageTransZ, &local_68, &local_6c); - f32 tmp1 = (dVar10 + (mRegionMinMapY[mRegionCursor] + field_0xf2c[mRegionCursor])) + - ((mRegionMapSizeY[mRegionCursor] * mZoom) / 2.0f); f32 tmp2 = (dVar11 + (mRegionMinMapX[mRegionCursor] + field_0xf0c[mRegionCursor])) + ((mRegionMapSizeX[mRegionCursor] * mZoom) / 2.0f); + f32 tmp1 = (dVar10 + (mRegionMinMapY[mRegionCursor] + field_0xf2c[mRegionCursor])) + + ((mRegionMapSizeY[mRegionCursor] * mZoom) / 2.0f); field_0x11e8 = local_68 - tmp2; field_0x11ec = local_6c - tmp1; } else { - f32 tmp1 = (dVar11 + (mRegionScrollMapMaxY[dComIfGp_getNowLevel() + 7] + - mRegionMapSizeY[dComIfGp_getNowLevel() + 7])) + - ((mRegionMinMapY[dComIfGp_getNowLevel() + 7] * mZoom) / 2.0f); - f32 tmp2 = (dVar10 + (mRegionMinMapX[dComIfGp_getNowLevel() + 7] + - field_0xf0c[dComIfGp_getNowLevel() + 7])) + - ((mRegionMapSizeX[dComIfGp_getNowLevel() + 7] * mZoom) / 2.0f); - local_68 = tmp1 + (field_0x11e8 * mZoom); - local_6c = tmp2 + (field_0x11ec * mZoom); + f32 tmp2 = (dVar11 + (mRegionMinMapX[dComIfGp_getNowLevel() - 1] + + field_0xf0c[dComIfGp_getNowLevel() - 1])) + + ((mRegionMapSizeX[dComIfGp_getNowLevel() - 1] * mZoom) / 2.0f); + f32 tmp1 = (dVar10 + (mRegionMinMapY[dComIfGp_getNowLevel() - 1] + + field_0xf2c[dComIfGp_getNowLevel() - 1])) + + ((mRegionMapSizeY[dComIfGp_getNowLevel() - 1] * mZoom) / 2.0f); + local_68 = tmp2 + (field_0x11e8 * mZoom); + local_6c = tmp1 + (field_0x11ec * mZoom); } } else { calcAllMapPos2D(param_1 - mStageTransX, param_2 - mStageTransZ, &local_68, &local_6c); @@ -993,14 +1075,14 @@ void dMenu_Fmap2DBack_c::setIcon2DPos(u8 param_0, f32 param_1, f32 param_2, f32 if (!param_5) { if (param_0 == 1) { - local_70 = (mMapZoomRate * 0.5f) + 0.5f; + sp30 = (mMapZoomRate * 0.5f) + 0.5f; uVar9 = 2; } if (param_4 != 0) { uVar9 = 3; } - setIconInfo(param_0, local_68, local_6c, 1.0f, param_3, local_70, uVar9); + setIconInfo(param_0, local_68, local_6c, 1.0f, param_3, sp30, uVar9); } } @@ -1088,8 +1170,8 @@ f32 dMenu_Fmap2DBack_c::getMapScissorAreaLY() { f32 dMenu_Fmap2DBack_c::getMapScissorAreaSizeX() { f32 scale = mpMapArea->getScaleX(); - - for (J2DPane* pane = mpMapArea->getPanePtr()->getParentPane(); pane != NULL; + J2DPane* pane; + for (pane = mpMapArea->getPanePtr()->getParentPane(); pane != NULL; pane = pane->getParentPane()) { scale *= pane->getScaleX(); @@ -1099,7 +1181,11 @@ f32 dMenu_Fmap2DBack_c::getMapScissorAreaSizeX() { } f32 dMenu_Fmap2DBack_c::getMapScissorAreaSizeRealX() { +#if PLATFORM_GCN return getMapScissorAreaSizeX(); +#else + return getMapScissorAreaSizeX() * mDoGph_gInf_c::getScale(); +#endif } f32 dMenu_Fmap2DBack_c::getMapScissorAreaCenterPosX() { @@ -1112,8 +1198,8 @@ f32 dMenu_Fmap2DBack_c::getMapScissorAreaCenterPosY() { f32 dMenu_Fmap2DBack_c::getMapScissorAreaSizeY() { f32 scale = mpMapArea->getScaleY(); - - for (J2DPane* pane = mpMapArea->getPanePtr()->getParentPane(); pane != NULL; + J2DPane* pane; + for (pane = mpMapArea->getPanePtr()->getParentPane(); pane != NULL; pane = pane->getParentPane()) { scale *= pane->getScaleY(); @@ -1180,24 +1266,24 @@ f32 dMenu_Fmap2DBack_c::getRegionMapZoomRate(int i_regionNo) { if (tmp1 < tmp2) { field_0x122e = false; - tmp2 = tmp1; + return tmp1; } else { field_0x122e = true; + return tmp2; } - - return tmp2; } f32 dMenu_Fmap2DBack_c::getSpotMapZoomRate() { + f32 tmp4; f32 tmp1 = mTexMaxX - mTexMinX; f32 tmp2 = mTexMaxZ - mTexMinZ; - + f32 tmp3 = tmp1; - if (tmp1 < tmp2) { + if (tmp3 < tmp2) { tmp3 = tmp2; } - - return tmp3 / g_fmapHIO.mRegionZoomRange; + tmp4 = tmp3 / g_fmapHIO.mRegionZoomRange; + return tmp4; } void dMenu_Fmap2DBack_c::getStageOriginPath(u8 param_0, f32* param_1, f32* param_2) { @@ -1214,11 +1300,15 @@ void dMenu_Fmap2DBack_c::calcOffset(u8 i_regionNo, char const* i_stageName, f32* o_offsetX, f32* o_offsetZ) { if (mpStages != NULL) { Stage_c::data* data = mpStages->mData; - for (int i = 0; i < mStageDataNum; i++) { - if (i_regionNo + 1 == data[i].mRegionNo && strcmp(i_stageName, data[i].mName) == 0) { - *o_offsetX = mRegionOriginX[i_regionNo] + data[i].mOffsetX; - *o_offsetZ = mRegionOriginZ[i_regionNo] + data[i].mOffsetZ; - return; + for (int j = 0, i = 0; i < mStageDataNum; i++) { + if (i_regionNo + 1 == data[i].mRegionNo) { + if (strcmp(i_stageName, data[i].mName) == 0) { + *o_offsetX = mRegionOriginX[i_regionNo] + data[i].mOffsetX; + *o_offsetZ = mRegionOriginZ[i_regionNo] + data[i].mOffsetZ; + return; + } else { + j++; + } } } } @@ -1229,14 +1319,16 @@ void dMenu_Fmap2DBack_c::calcOffset(u8 i_regionNo, char const* i_stageName, void dMenu_Fmap2DBack_c::regionTextureDraw() { f32 local_84, local_88; + f32 dVar14 = 0.0f; + f32 dVar13 = 0.0f; calcAllMapPosWorld(getMapScissorAreaCenterPosX(), getMapScissorAreaCenterPosY(), &local_84, &local_88); f32 local_8c, local_90; calcAllMapPos2D(local_84 + mStageTransX, local_88 + mStageTransZ, &local_8c, &local_90); - f32 dVar14 = getMapScissorAreaCenterPosX() - local_8c; - f32 dVar13 = getMapScissorAreaCenterPosY() - local_90; + dVar14 = getMapScissorAreaCenterPosX() - local_8c; + dVar13 = getMapScissorAreaCenterPosY() - local_90; s32 uVar9 = mRegionCursor; @@ -1272,17 +1364,19 @@ void dMenu_Fmap2DBack_c::regionTextureDraw() { mpAreaTex[uVar10]->setAlpha(mAlphaRate * 255.0f * fVar3 * field_0xfa4); if (uVar10 != uVar9) { + bool b = 0; + f32 v = mTransX + (dVar14 + (mRegionMinMapX[uVar10] + field_0xf0c[uVar10])); mpAreaTex[uVar10]->draw( - mTransX + (dVar14 + (mRegionMinMapX[uVar10] + field_0xf0c[uVar10])), - mTransZ + (dVar13 + (mRegionMinMapY[uVar10] + field_0xf2c[uVar10])), - mRegionMapSizeX[uVar10] * mZoom, mRegionMapSizeY[uVar10] * mZoom, false, - false, false); + v, mTransZ + (dVar13 + (mRegionMinMapY[uVar10] + field_0xf2c[uVar10])), + mRegionMapSizeX[uVar10] * mZoom, mRegionMapSizeY[uVar10] * mZoom, b, false, + false); } else { + bool b = 0; + f32 v = mTransX + (dVar14 + (mRegionMinMapX[uVar9] + field_0xf0c[uVar9])); mpAreaTex[uVar9]->draw( - mTransX + (dVar14 + (mRegionMinMapX[uVar9] + field_0xf0c[uVar9])), - mTransZ + (dVar13 + (mRegionMinMapY[uVar9] + field_0xf2c[uVar9])), - mRegionMapSizeX[uVar9] * mZoom, mRegionMapSizeY[uVar9] * mZoom, false, - false, false); + v, mTransZ + (dVar13 + (mRegionMinMapY[uVar9] + field_0xf2c[uVar9])), + mRegionMapSizeX[uVar9] * mZoom, mRegionMapSizeY[uVar9] * mZoom, b, false, + false); } } } @@ -1292,8 +1386,7 @@ void dMenu_Fmap2DBack_c::stageTextureDraw() { if (mAllPathShowFlag) { mpSpotTexture->setAlpha(mAlphaRate * 255.0f * mSpotTextureFadeAlpha); } else { - f32 tmp = mAlphaRate * 255.0f * field_0xfa8; - mpSpotTexture->setAlpha(mSpotTextureFadeAlpha * tmp); + mpSpotTexture->setAlpha(mAlphaRate * 255.0f * field_0xfa8 * mSpotTextureFadeAlpha); } mpSpotTexture->draw(mTransX + getMapScissorAreaLX(), mTransZ + getMapScissorAreaLY(), @@ -1516,11 +1609,9 @@ void dMenu_Fmap2DBack_c::stageOriginDraw() { for (int i = 0; i < mStageDataNum; i++) { if (mRegionCursor + 1 == stage_data[i].mRegionNo) { f32 center_x, center_y; - calcAllMapPos2D( - mRegionOriginX[mRegionCursor] + stage_data[i].mOffsetX - mStageTransX, - mRegionOriginZ[mRegionCursor] + stage_data[i].mOffsetZ - mStageTransZ, - ¢er_x, ¢er_y - ); + f32 v1 = mRegionOriginX[mRegionCursor] + stage_data[i].mOffsetX - mStageTransX; + f32 v2 = mRegionOriginZ[mRegionCursor] + stage_data[i].mOffsetZ - mStageTransZ; + calcAllMapPos2D(v1, v2, ¢er_x, ¢er_y); J2DFillBox(center_x - 3.0f, center_y - 3.0f, 6.0f, 6.0f, JUtility::TColor(0, 0, 255, 255)); } @@ -1640,21 +1731,25 @@ void dMenu_Fmap2DBack_c::calcBlink() { f32 tmp_selected_max = g_fmapHIO.mMapBlink[i].mSelectedRegion.mMax / 255.0f; f32 tmp_unselected_min = g_fmapHIO.mMapBlink[i].mUnselectedRegion.mMin / 255.0f; f32 tmp_unselected_max = g_fmapHIO.mMapBlink[i].mUnselectedRegion.mMax / 255.0f; + + f32 sp20 = g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mMin / 255.0f; + f32 sp1C = g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mMax / 255.0f; + f32 sp18 = g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mMin / 255.0f; + f32 sp14 = g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mMax / 255.0f; - selected_max = tmp_selected_max - + t * (g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mMax / 255.0f - tmp_selected_max); - selected_min = tmp_selected_min - + t * (g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mMin / 255.0f - tmp_selected_min); - s16 selected_blink_speed = g_fmapHIO.mMapBlink[i].mSelectedRegion.mBlinkSpeed - + t * (g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mBlinkSpeed - - g_fmapHIO.mMapBlink[i].mSelectedRegion.mBlinkSpeed); - unselected_max = tmp_unselected_max - + t * (g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mMax / 255.0f - tmp_unselected_max); - unselected_min = tmp_unselected_min - + t * (g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mMin / 255.0f - tmp_unselected_min); - s16 unselected_blink_speed = g_fmapHIO.mMapBlink[i].mUnselectedRegion.mBlinkSpeed - + t * (g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mBlinkSpeed - - g_fmapHIO.mMapBlink[i].mUnselectedRegion.mBlinkSpeed); + selected_max = tmp_selected_max + t * (sp1C - tmp_selected_max); + selected_min = tmp_selected_min + t * (sp20 - tmp_selected_min); + + s16 selected_blink_speed = g_fmapHIO.mMapBlink[i].mSelectedRegion.mBlinkSpeed + + t * (g_fmapHIO.mMapBlink[i + 1].mSelectedRegion.mBlinkSpeed - + g_fmapHIO.mMapBlink[i].mSelectedRegion.mBlinkSpeed); + + unselected_max = tmp_unselected_max + t * (sp14 - tmp_unselected_max); + unselected_min = tmp_unselected_min + t * (sp18 - tmp_unselected_min); + + s16 unselected_blink_speed = g_fmapHIO.mMapBlink[i].mUnselectedRegion.mBlinkSpeed + + t * (g_fmapHIO.mMapBlink[i + 1].mUnselectedRegion.mBlinkSpeed - + g_fmapHIO.mMapBlink[i].mUnselectedRegion.mBlinkSpeed); field_0x1218++; if (field_0x1218 >= selected_blink_speed) { @@ -1693,14 +1788,14 @@ void dMenu_Fmap2DBack_c::calcBackAlpha(bool param_0) { if (param_0) { if (mBackAlpha != 1.0f) { cLib_addCalc2(&mBackAlpha, 1.0f, 0.4f, 0.5f); - if (fabsf(mBackAlpha - 1.0f) < 0.1f) { + if (std::fabs(mBackAlpha - 1.0f) < 0.1f) { mBackAlpha = 1.0f; } } } else { if (mBackAlpha != 0.0f) { cLib_addCalc2(&mBackAlpha, 0.0f, 0.4f, 0.5f); - if (fabsf(mBackAlpha) < 0.1f) { + if (std::fabs(mBackAlpha) < 0.1f) { mBackAlpha = 0.0f; } } @@ -1732,27 +1827,35 @@ void dMenu_Fmap2DBack_c::regionMapMove(STControl* i_stick) { calcAllMapPosWorld(getMapScissorAreaLX(), getMapScissorAreaLY(), &min_x, &min_y); calcAllMapPosWorld(getMapScissorAreaLX() + getMapScissorAreaSizeRealX(), getMapScissorAreaLY() + getMapScissorAreaSizeRealY(), &max_x, &max_y); - - f32 slow_bound = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; - f32 fast_bound = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; - - f32 stick_value = i_stick->getValueStick(); - if (stick_value >= slow_bound) { - s16 angle = i_stick->getAngleStick(); - f32 local_68 = mTexMaxX - mTexMinX; - f32 spot_zoom = getSpotMapZoomRate(); - f32 region_zoom = getRegionMapZoomRate(mRegionCursor); - f32 zoom = region_zoom + (mMapZoomRate - 1.0f) * (spot_zoom - region_zoom); - f32 local_78 = local_68 / zoom; - f32 base_speed = stick_value < fast_bound ? - g_fmapHIO.mScrollSpeedRegionSlow : g_fmapHIO.mScrollSpeedRegionFast; - f32 speed = base_speed / 100.0f * local_78; - f32 speed_y = speed * cM_ssin(angle); - f32 speed_x = speed * cM_scos(angle); - control_xpos += speed_y; - control_ypos += speed_x; + int r27 = 0; + if (r27 == 0) { + f32 slow_bound = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : + g_fmapHIO.mScrollSpeedFastBound; + f32 fast_bound = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : + g_fmapHIO.mScrollSpeedFastBound; + + f32 stick_value = i_stick->getValueStick(); + if (stick_value >= slow_bound) { + s16 angle = i_stick->getAngleStick(); + f32 local_68 = mTexMaxX - mTexMinX; + f32 spot_zoom = getSpotMapZoomRate(); + f32 region_zoom = getRegionMapZoomRate(mRegionCursor); + f32 zoom = region_zoom + (mMapZoomRate - 1.0f) * (spot_zoom - region_zoom); + f32 local_78 = local_68 / zoom; + f32 base_speed; + if (stick_value < fast_bound) { + base_speed = g_fmapHIO.mScrollSpeedRegionSlow; + } else { + base_speed = g_fmapHIO.mScrollSpeedRegionFast; + } + f32 speed = base_speed / 100.0f * local_78; + f32 speed_y = speed * cM_ssin(angle); + f32 speed_x = speed * cM_scos(angle); + control_xpos += speed_y; + control_ypos += speed_x; + } } if (mArrowPos3DX + control_xpos < min_x) { @@ -1778,25 +1881,25 @@ void dMenu_Fmap2DBack_c::regionMapMove(STControl* i_stick) { mSelectRegion = 0xff; int region = mRegionCursor; if (region != 0xff && region != 7) { - if (dMeter2Info_getPixel(pos_x, pos_y, - mRegionMinMapX[region] + field_0xf0c[region] + mTransX, - mRegionMinMapY[region] + field_0xf2c[region] + mTransZ, - mRegionMapSizeX[region] * mZoom, - mRegionMapSizeY[region] * mZoom, - mpAreaTex[region]->getTexture(0)->getTexInfo())) { + u8 pix = dMeter2Info_getPixel( + pos_x, pos_y, mRegionMinMapX[region] + field_0xf0c[region] + mTransX, + mRegionMinMapY[region] + field_0xf2c[region] + mTransZ, mRegionMapSizeX[region] * mZoom, + mRegionMapSizeY[region] * mZoom, mpAreaTex[region]->getTexture(0)->getTexInfo()); + if (pix) { mSelectRegion = region; } } } void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param_2) { - f32 min_x, min_y, max_x, max_y, center_x, center_y; - - f32 slow_bound = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; - f32 fast_bound = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? - g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; + (void)param_1; + f32 slow_bound = g_fmapHIO.mScrollSpeedSlowBound < g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; + f32 fast_bound = g_fmapHIO.mScrollSpeedSlowBound > g_fmapHIO.mScrollSpeedFastBound ? + g_fmapHIO.mScrollSpeedSlowBound : g_fmapHIO.mScrollSpeedFastBound; + + f32 min_x, min_y, max_x, max_y; f32 stick_value = i_stick->getValueStick(); bool bVar6 = false; f32 trans_x = mStageTransX; @@ -1810,8 +1913,12 @@ void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param f32 region_zoom = getRegionMapZoomRate(mRegionCursor); f32 zoom = region_zoom + (mMapZoomRate - 1.0f) * (spot_zoom - region_zoom); f32 local_78 = local_68 / zoom; - f32 base_speed = stick_value < fast_bound ? - g_fmapHIO.mScrollSpeedRegionZoomSlow : g_fmapHIO.mScrollSpeedRegionZoomFast; + f32 base_speed; + if (stick_value < fast_bound) { + base_speed = g_fmapHIO.mScrollSpeedRegionZoomSlow; + } else { + base_speed = g_fmapHIO.mScrollSpeedRegionZoomFast; + } f32 speed = base_speed / 100.0f * local_78; f32 speed_x = speed * cM_ssin(angle); f32 speed_z = speed * cM_scos(angle); @@ -1820,7 +1927,7 @@ void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param } else if (!param_2) { return; } - + f32 center_x, center_y; calcAllMapPosWorld(getMapAreaGlobalCenterPosX(), getMapAreaGlobalCenterPosY(), ¢er_x, ¢er_y); calcAllMapPosWorld(getMapScissorAreaLX(), getMapScissorAreaLY(), &min_x, &min_y); @@ -1864,16 +1971,16 @@ void dMenu_Fmap2DBack_c::stageMapMove(STControl* i_stick, u8 param_1, bool param field_0x122d = 0; if (mStageTransX > -(center_x - min_x)) { - field_0x122d |= 1; + field_0x122d |= (u8)1; } if (mStageTransX < -(center_x - max_x)) { - field_0x122d |= 4; + field_0x122d |= (u8)4; } if (mStageTransZ > -(center_y - min_y)) { - field_0x122d |= 8; + field_0x122d |= (u8)8; } if (mStageTransZ < -(center_y - max_y)) { - field_0x122d |= 2; + field_0x122d |= (u8)2; } mpMeterHaihai->_execute(0); @@ -1907,8 +2014,9 @@ void dMenu_Fmap2DBack_c::drawDebugStageArea() { j - mDoGph_gInf_c::getHeightF() / 2.0f, field_0x1244, &stage_no, NULL); if (stage_no >= 0) { - J2DFillBox(i + mDoGph_gInf_c::getMinXF() - 3.0f, j - 3.0f, 6.0f, 6.0f, - colors[stage_no % 6]); + f32 v = i + mDoGph_gInf_c::getMinXF(); + f32 v2 = j; + J2DFillBox(v - 3.0f, v2 - 3.0f, 6.0f, 6.0f, colors[stage_no % 6]); } } } @@ -1916,7 +2024,8 @@ void dMenu_Fmap2DBack_c::drawDebugStageArea() { } void dMenu_Fmap2DBack_c::drawDebugRegionArea() { - getAllMapZoomRate(); + if (mZoom != getAllMapZoomRate()) { + } JUtility::TColor colors[7] = { JUtility::TColor(255, 255, 0, 50), @@ -1930,18 +2039,18 @@ void dMenu_Fmap2DBack_c::drawDebugRegionArea() { for (int i = 0; i < getMapScissorAreaSizeRealX(); i += g_fmapHIO.mRangeCheckInterval + 1) { for (int j = 0; j < getMapScissorAreaSizeRealY(); j += g_fmapHIO.mRangeCheckInterval + 1) { + u8 u = 0; for (int k = 7; k >= 0; k--) { int region = field_0x1230[k]; if (region == 0xff || region == 7) continue; f32 pos_x = i + getMapScissorAreaLX(); f32 pos_y = j + getMapScissorAreaLY(); - if (dMeter2Info_getPixel(pos_x, pos_y, - mRegionMinMapX[region] + field_0xf0c[region] + mTransX, - mRegionMinMapY[region] + field_0xf2c[region] + mTransZ, - mRegionMapSizeX[region] * mZoom, - mRegionMapSizeY[region] * mZoom, - mpAreaTex[region]->getTexture(0)->getTexInfo())) - { + u = dMeter2Info_getPixel( + pos_x, pos_y, mRegionMinMapX[region] + field_0xf0c[region] + mTransX, + mRegionMinMapY[region] + field_0xf2c[region] + mTransZ, + mRegionMapSizeX[region] * mZoom, mRegionMapSizeY[region] * mZoom, + mpAreaTex[region]->getTexture(0)->getTexInfo()); + if (u) { J2DFillBox(pos_x - 3.0f, pos_y - 3.0f, 6.0f, 6.0f, colors[region]); break; } @@ -1974,9 +2083,9 @@ void dMenu_Fmap2DBack_c::setArrowPos3DOffset(u8 i_regionNo, char const* i_stageN if (param_4 != 0.0f) { calcOffset(i_regionNo, i_stageName, &offset_x, &offset_z); - calcAllMapPos2D(i_posX + offset_x - getRegionOriginX(i_regionNo), - i_posZ + offset_z - getRegionOriginZ(i_regionNo), - &pos2d_x, &pos2d_y); + f32 v = i_posX + offset_x - getRegionOriginX(i_regionNo); + f32 v2 = i_posZ + offset_z - getRegionOriginZ(i_regionNo); + calcAllMapPos2D(v, v2, &pos2d_x, &pos2d_y); pos2d_y -= param_4; calcAllMapPosWorld(pos2d_x, pos2d_y, &i_posX, &i_posZ); i_posX += getRegionOriginX(i_regionNo); @@ -1995,27 +2104,29 @@ void dMenu_Fmap2DBack_c::calcDrawPriority() { u8 dVar3 = 6; for (int i = 7; i >= 0; i--) { - region = field_0x1230[i]; if (field_0x1230[i] != 0xff) { if (field_0x1230[i] == mRegionCursor) { field_0x1230[i] = dVar2; break; + } else { + u8 tmp = field_0x1230[i]; + field_0x1230[i] = dVar2; + dVar2 = tmp; } - field_0x1230[i] = dVar2; - dVar2 = region; } } if (mRegionCursor != 6) { for (int i = 7; i >= 0; i--) { - region = field_0x1230[i]; if (field_0x1230[i] != 0xff) { if (field_0x1230[i] == 6) { field_0x1230[i] = dVar3; break; + } else { + u8 tmp = field_0x1230[i]; + field_0x1230[i] = dVar3; + dVar3 = tmp; } - field_0x1230[i] = dVar3; - dVar3 = region; } } } @@ -2024,14 +2135,15 @@ void dMenu_Fmap2DBack_c::calcDrawPriority() { u8 dVar4 = field_0x1230[0]; field_0x1230[0] = 7; for (int i = 1; i < 8; i++) { - region = field_0x1230[i]; if (field_0x1230[i] != 0xff) { if (field_0x1230[i] == 7) { field_0x1230[i] = dVar4; break; + } else { + u8 tmp = field_0x1230[i]; + field_0x1230[i] = dVar4; + dVar4 = tmp; } - field_0x1230[i] = dVar4; - dVar4 = region; } } } @@ -2052,11 +2164,31 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mpScrnExplain = NULL; mpTitleScreen = new J2DScreen(); - mpTitleScreen->setPriority("zelda_map_screen_title.blo", 0x1020000, - dComIfGp_getFmapResArchive()); + JUT_ASSERT(3872, mpTitleScreen != NULL); +#if PLATFORM_GCN + bool fg = mpTitleScreen->setPriority("zelda_map_screen_title.blo", 0x1020000, + dComIfGp_getFmapResArchive()); +#else + bool fg = mpTitleScreen->setPriority("zelda_map_screen_title_revo.blo", 0x1020000, + dComIfGp_getFmapResArchive()); +#endif + JUT_ASSERT(3877, fg != false); + dPaneClass_showNullPane(mpTitleScreen); mpTitleRoot = new CPaneMgrAlphaMorf(mpTitleScreen, 'ROOT', 2, NULL); - + JUT_ASSERT(3881, mpTitleRoot != NULL); +#if PLATFORM_SHIELD + for (int i = 0; i < 2; i++) { + mpArrowLAlpha[i] = NULL; + mpArrowRAlpha[i] = NULL; + } + mpDpadAlpha = NULL; + mpAnalogStickAlpha = NULL; + mpAnalogStick = NULL; + mpDpad = NULL; + mpTitleScreen->search('tri_Null')->hide(); +#endif +#if PLATFORM_GCN mpArrowLAlpha[0] = new CPaneMgrAlpha(mpTitleScreen, 'yaji_04', 0, NULL); mpArrowLAlpha[1] = new CPaneMgrAlpha(mpTitleScreen, 'yaji_05', 0, NULL); mpArrowRAlpha[0] = new CPaneMgrAlpha(mpTitleScreen, 'yaji_06', 0, NULL); @@ -2068,13 +2200,34 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mpAnalogStickAlpha->setAlphaRate(0.0f); mpAnalogStick = new CPaneMgr(mpTitleScreen, 'as_n', 0, NULL); mpDpad = new CPaneMgr(mpTitleScreen, 'juji_c_n', 0, NULL); - - mpButtonA = new CPaneMgr(mpTitleScreen, 'abtn_n1', 2, NULL); - mpButtonB = new CPaneMgr(mpTitleScreen, 'bbtn_n1', 2, NULL); - mpButtonZ = new CPaneMgr(mpTitleScreen, 'zbtn_n1', 2, NULL); +#endif +#if PLATFORM_SHIELD + mpButtonA = new CPaneMgr(mpTitleScreen, 'abtn_n', 2, NULL); + JUT_ASSERT(3935, mpButtonA != NULL); + mpButtonB = new CPaneMgr(mpTitleScreen, 'bbtn_n', 2, NULL); + JUT_ASSERT(3938, mpButtonB != NULL); + mpButtonZ = new CPaneMgr(mpTitleScreen, 'j_scal_n', 2, NULL); + JUT_ASSERT(3941, mpButtonZ != NULL); mpButtonTextA = new CPaneMgr(mpTitleScreen, 'a_text_n', 2, NULL); + JUT_ASSERT(3953, mpButtonTextA != NULL); mpButtonTextB = new CPaneMgr(mpTitleScreen, 'b_text_n', 2, NULL); + JUT_ASSERT(3956, mpButtonTextB != NULL); mpButtonTextZ = new CPaneMgr(mpTitleScreen, 'z_text_n', 2, NULL); + JUT_ASSERT(3959, mpButtonTextZ != NULL); +#else + mpButtonA = new CPaneMgr(mpTitleScreen, 'abtn_n1', 2, NULL); + JUT_ASSERT(3935, mpButtonA != NULL); + mpButtonB = new CPaneMgr(mpTitleScreen, 'bbtn_n1', 2, NULL); + JUT_ASSERT(3938, mpButtonB != NULL); + mpButtonZ = new CPaneMgr(mpTitleScreen, 'zbtn_n1', 2, NULL); + JUT_ASSERT(3941, mpButtonZ != NULL); + mpButtonTextA = new CPaneMgr(mpTitleScreen, 'a_text_n', 2, NULL); + JUT_ASSERT(3953, mpButtonTextA != NULL); + mpButtonTextB = new CPaneMgr(mpTitleScreen, 'b_text_n', 2, NULL); + JUT_ASSERT(3956, mpButtonTextB != NULL); + mpButtonTextZ = new CPaneMgr(mpTitleScreen, 'z_text_n', 2, NULL); + JUT_ASSERT(3959, mpButtonTextZ != NULL); +#endif mpButtonA->setAlphaRate(0.0f); mpButtonB->setAlphaRate(0.0f); mpButtonZ->setAlphaRate(0.0f); @@ -2083,12 +2236,16 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mpButtonTextZ->setAlphaRate(0.0f); mpNamePane = new CPaneMgr(mpTitleScreen, 'name_n', 0, NULL); + JUT_ASSERT(3970, mpNamePane != NULL); mpSubPane = new CPaneMgr(mpTitleScreen, 'sub_n_n', 0, NULL); + JUT_ASSERT(3974, mpSubPane != NULL); + if (dMeter2Info_getMapStatus() == 9) { mpNamePane->hide(); mpSubPane->hide(); } mpContPane = new CPaneMgr(mpTitleScreen, 'cont_n', 0, NULL); + JUT_ASSERT(3984, mpContPane != NULL); mTitlePosX = mTitlePosY = 0.0f; mTitleScale = 1.0f; @@ -2102,9 +2259,13 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mDoIconScale = 1.0f; OSInitFastCast(); - +#if PLATFORM_GCN mpAnm = static_cast(J2DAnmLoaderDataBase::load( JKRFileLoader::getGlbResource("zelda_map_screen_title.btk", dComIfGp_getFmapResArchive()))); +#else + void* v = JKRGetNameResource("zelda_map_screen_title_revo.btk", dComIfGp_getFmapResArchive()); + mpAnm = static_cast(J2DAnmLoaderDataBase::load(v)); +#endif mpAnm->searchUpdateMaterialID(mpTitleScreen); mAnmFrame = 0.0f; @@ -2124,13 +2285,21 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { mpTitleScreen->search(area_name[i])->hide(); #endif } - +#if PLATFORM_GCN static const u64 sfont_name[7] = { 'sfont00', 'sfontl0', 'sfontl1', 'sfontl2', 'sfontb0', 'sfontb1', 'sfontb2' }; static const u64 ffont_name[7] = { 'ffont00', 'ffontl0', 'ffontl1', 'ffontl2', 'ffontb0', 'ffontb3', 'ffontb4' }; +#else + static const u64 sfont_name[7] = { + 'sfont00', 'sfontl0', 'sfontl1', 'sfontl2', 'sfontb0', 'sfontb1', 'sfontb2' + }; + static const u64 ffont_name[7] = { + 'ffont01', 'ffontl3', 'ffontl4', 'ffontl5', 'ffontb3', 'ffontb4', 'ffontb5' + }; +#endif for (int i = 0; i < 7; i++) { #if VERSION == VERSION_GCN_JPN static_cast(mpTitleScreen->search(sfont_name[i])) @@ -2162,9 +2331,13 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { #endif } setZButtonString(0x529, 0xff); - +#if PLATFORM_GCN static const u64 cont_bt[5] = {'cont_bt1', 'cont_bt2', 'cont_bt3', 'cont_bt4', 'cont_bt'}; static const u64 font_bt[5] = {'font_bt1', 'font_bt2', 'font_bt3', 'font_bt4', 'font_bt5'}; +#else + static const u64 cont_bt[5] = {'cont_bt1', 'cont_bt2', 'cont_bt3', 'cont_bt4', 'cont_bt8'}; + static const u64 font_bt[5] = {'font_bt1', 'font_bt2', 'font_bt3', 'font_bt4', 'font_bt5'}; +#endif for (int i = 0; i < 5; i++) { #if VERSION == VERSION_GCN_JPN static_cast(mpTitleScreen->search(cont_bt[i])) @@ -2197,6 +2370,7 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { } setAButtonString(0x527, 0xff); +#if PLATFORM_GCN static const u64 juji_c[5] = {'juji_c00', 'juji_c01', 'juji_c02', 'juji_c03', 'juji_c04'}; static const u64 fuji_c[5] = {'fuji_c00', 'fuji_c01', 'fuji_c02', 'fuji_c03', 'fuji_c04'}; for (int i = 0; i < 5; i++) { @@ -2230,6 +2404,7 @@ dMenu_Fmap2DTop_c::dMenu_Fmap2DTop_c(JKRExpHeap* i_heap, STControl* i_stick) { #endif } set3DStickString(0x524); +#endif setHIO(true); } @@ -2239,6 +2414,8 @@ dMenu_Fmap2DTop_c::~dMenu_Fmap2DTop_c() { delete mpTitleScreen; mpTitleScreen = NULL; delete mpTitleRoot; + if (mpTitleRoot != NULL) { + } delete mpButtonA; mpButtonA = NULL; delete mpButtonB; @@ -2276,9 +2453,13 @@ dMenu_Fmap2DTop_c::~dMenu_Fmap2DTop_c() { for (int i = 0; i < 2; i++) { if (mpArrowLAlpha[i] != NULL) { delete mpArrowLAlpha[i]; + if (mpArrowLAlpha[i] != NULL) { + } } if (mpArrowRAlpha[i] != NULL) { delete mpArrowRAlpha[i]; + if (mpArrowRAlpha[i] != NULL) { + } } } delete mpAnm; @@ -2407,19 +2588,28 @@ void dMenu_Fmap2DTop_c::setTitleNameString(u32 param_0) { 'sfont00', 'sfontl0', 'sfontl1', 'sfontl2', 'sfontb0', 'sfontb1', 'sfontb2' }; #define setTitleNameString_font_name sfont_name -#else +#elif PLATFORM_GCN static const u64 ffont_name[7] = { 'ffont00', 'ffontl0', 'ffontl1', 'ffontl2', 'ffontb0', 'ffontb3', 'ffontb4' }; #define setTitleNameString_font_name ffont_name +#else + static const u64 ffont_name[7] = { + 'ffont01', 'ffontl3', 'ffontl4', 'ffontl5', 'ffontb3', 'ffontb4', 'ffontb5' + }; +#define setTitleNameString_font_name ffont_name #endif for (int i = 0; i < 7; i++) { if (param_0 == 0) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setTitleNameString_font_name[i])); - strcpy(text_box->getStringPtr(), ""); + strcpy(((J2DTextBox*)(mpTitleScreen->search(setTitleNameString_font_name[i]))) + ->getStringPtr(), + ""); } else { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setTitleNameString_font_name[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setTitleNameString_font_name[i]))) + ->getStringPtr(), + NULL); } } } @@ -2434,11 +2624,15 @@ void dMenu_Fmap2DTop_c::setAreaNameString(u32 param_0) { #endif for (int i = 0; i < 3; i++) { if (param_0 == 0) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setAreaNameString_area_name[i])); - strcpy(text_box->getStringPtr(), ""); + strcpy(((J2DTextBox*)(mpTitleScreen->search(setAreaNameString_area_name[i]))) + ->getStringPtr(), + ""); } else { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setAreaNameString_area_name[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setAreaNameString_area_name[i]))) + ->getStringPtr(), + NULL); } } } @@ -2456,11 +2650,17 @@ void dMenu_Fmap2DTop_c::setZButtonString(u32 param_0, u8 i_alpha) { #define setZButtonString_font_zt font_zt #endif if (param_0 == 0 || !isWarpAccept()) { +#if PLATFORM_GCN mAlphaButtonZ = ALPHA_MID; +#else + mAlphaButtonZ = ALPHA_MIN; +#endif } else { for (int i = 0; i < 5; i++) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setZButtonString_font_zt[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setZButtonString_font_zt[i])))->getStringPtr(), + NULL); } if (i_alpha == ALPHA_DEFAULT) { @@ -2487,8 +2687,10 @@ void dMenu_Fmap2DTop_c::setBButtonString(u32 param_0, u8 i_alpha) { mAlphaButtonB = ALPHA_MIN; } else { for (int i = 0; i < 5; i++) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setBButtonString_font_bt[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setBButtonString_font_bt[i])))->getStringPtr(), + NULL); } if (i_alpha == ALPHA_DEFAULT) { @@ -2511,8 +2713,10 @@ void dMenu_Fmap2DTop_c::setAButtonString(u32 param_0, u8 i_alpha) { mAlphaButtonA = ALPHA_MIN; } else { for (int i = 0; i < 5; i++) { - J2DTextBox* text_box = static_cast(mpTitleScreen->search(setAButtonString_font_at[i])); - dMeter2Info_getStringKanji(param_0, text_box->getStringPtr(), NULL); + dMeter2Info_getStringKanji( + param_0, + ((J2DTextBox*)(mpTitleScreen->search(setAButtonString_font_at[i])))->getStringPtr(), + NULL); } if (i_alpha == ALPHA_DEFAULT) { @@ -2524,6 +2728,7 @@ void dMenu_Fmap2DTop_c::setAButtonString(u32 param_0, u8 i_alpha) { } void dMenu_Fmap2DTop_c::setCrossLRString(u32 param_0) { +#if PLATFORM_GCN || (VERSION == VERSION_SHIELD) #if VERSION == VERSION_GCN_JPN static const u64 juji_c[5] = {'juji_c00', 'juji_c01', 'juji_c02', 'juji_c03', 'juji_c04'}; #else @@ -2544,9 +2749,11 @@ void dMenu_Fmap2DTop_c::setCrossLRString(u32 param_0) { mpTitleScreen->search('juy_sha0')->show(); mAlphaDpad = 2; } +#endif } void dMenu_Fmap2DTop_c::set3DStickString(u32 param_0) { +#if PLATFORM_GCN || (VERSION == VERSION_SHIELD) #if VERSION == VERSION_GCN_JPN static const u64 ast_c[5] = {'ast_00', 'ast_01', 'ast_02', 'ast_03', 'ast_04'}; #else @@ -2567,12 +2774,14 @@ void dMenu_Fmap2DTop_c::set3DStickString(u32 param_0) { mpTitleScreen->search('as_sha0')->show(); mAlphaAnalogStick = 2; } +#endif } void dMenu_Fmap2DTop_c::createExplain(JKRExpHeap* i_heap, STControl* i_stick) { if (!mpScrnExplain) { JKRHeap* heap = mDoExt_setCurrentHeap(i_heap); mpScrnExplain = new dMsgScrnExplain_c(i_stick, 0, false, 1); + JUT_ASSERT(4743, mpScrnExplain != NULL); mDoExt_setCurrentHeap(heap); } } @@ -2640,15 +2849,13 @@ void dMenu_Fmap2DTop_c::setAlphaAnimeMax(CPaneMgrAlpha* i_pane) { } bool dMenu_Fmap2DTop_c::checkPlayerWarpAccept() { - bool ret; - if (!checkWarpAcceptCannon()) { - ret = false; - } else if (!checkWarpAcceptRegion4()) { - ret = false; + if (checkWarpAcceptCannon() == FALSE) { + return FALSE; + } else if (checkWarpAcceptRegion4() == FALSE) { + return FALSE; } else { - ret = daPy_getLinkPlayerActorClass()->checkAcceptDungeonWarpAlink(0); + return daPy_getLinkPlayerActorClass()->checkAcceptDungeonWarpAlink(0); } - return ret; } bool dMenu_Fmap2DTop_c::checkWarpAcceptRegion(int i_region) { diff --git a/src/d/d_meter2_info.cpp b/src/d/d_meter2_info.cpp index f62455b877..94ddceb726 100644 --- a/src/d/d_meter2_info.cpp +++ b/src/d/d_meter2_info.cpp @@ -1414,7 +1414,7 @@ const char* dMeter2Info_getPlusTextureName() { return tex_name; } -bool dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX, +u8 dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 i_sizeX, f32 i_sizeY, ResTIMG const* i_resTimg) { f32 temp_f31 = i_posX - param_2; f32 temp_f30 = i_posY - param_3; @@ -1442,7 +1442,7 @@ bool dMeter2Info_getPixel(f32 i_posX, f32 i_posY, f32 param_2, f32 param_3, f32 return 1; } - return var_r24 & 0x7000; + return (var_r24 & 0x7000) != 0; } void dMeter2Info_setCloth(u8 i_clothId, bool i_offItemBit) { diff --git a/src/d/d_msg_flow.cpp b/src/d/d_msg_flow.cpp index 3201873387..29075fe597 100644 --- a/src/d/d_msg_flow.cpp +++ b/src/d/d_msg_flow.cpp @@ -767,7 +767,7 @@ void dMsgFlow_c::dbgPrint() {} u16 dMsgFlow_c::query001(mesg_flow_node_branch* i_flowNode_p, fopAc_ac_c* i_speaker_p, int param_2) { const u16 prm0 = i_flowNode_p->param; - u16 ret = dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]) == false; + u16 ret = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[prm0]) == false; if (param_2 != 0) { // "Flag Check" @@ -1753,11 +1753,11 @@ int dMsgFlow_c::event000(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speak OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1); if (prm0 != 0) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm0]); } if (prm1 != 0) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[prm1]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[prm1]); } return 1; @@ -1772,11 +1772,11 @@ int dMsgFlow_c::event001(mesg_flow_node_event* i_flowNode_p, fopAc_ac_c* i_speak OS_REPORT("flow:%d, prm0:%d, prm1:%d\n", mFlow, prm0, prm1); if (prm0 != 0) { - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[prm0]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm0]); } if (prm1 != 0) { - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[prm1]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[prm1]); } return 1; diff --git a/src/d/d_s_menu.cpp b/src/d/d_s_menu.cpp index 7b7934f473..0955876024 100644 --- a/src/d/d_s_menu.cpp +++ b/src/d/d_s_menu.cpp @@ -766,7 +766,7 @@ int toGameScene(dScnMenu_c* i_this) { /* Main Event - Get shadow crystal (can now transform) */ dComIfGs_offEventBit(dSv_event_flag_c::M_077); /* dSv_event_flag_c::F_0550 - Main Event - Gain ability to use sense */ - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[550]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[550]); /* Secret techniques - Obtained 1 secret techinques - Shield attack */ dComIfGs_offEventBit(dSv_event_flag_c::F_0338); rt = fopScnM_ChangeReq(i_this, PROC_PLAY_SCENE, 0, 5); @@ -909,7 +909,7 @@ void setEnvData(menu_data_class* i_data) { label_no = atoi(string); if (label_no >= 0 && label_no <= 999) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[label_no]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[label_no]); } if (i_data->env_data[i] != '+') { @@ -944,7 +944,7 @@ void setEnvData(menu_data_class* i_data) { label_no = atoi(string); if (label_no >= 0 && label_no <= 999) { - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[label_no]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[label_no]); } if (i_data->env_data[i] != '+') { @@ -1636,7 +1636,7 @@ int phase_2(dScnMenu_c* i_this) { /* Main Event - when OFF, wolf carries sword and shield on back */ dComIfGs_onEventBit(dSv_event_flag_c::M_068); /* dSv_event_flag_c::F_0550 - Main Event - Gain ability to use sense */ - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[550]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[550]); return cPhs_COMPLEATE_e; } diff --git a/src/d/d_save.cpp b/src/d/d_save.cpp index 2e92baef02..f2fa9866ce 100644 --- a/src/d/d_save.cpp +++ b/src/d/d_save.cpp @@ -1708,14 +1708,14 @@ int dSv_info_c::memory_to_card(char* card_ptr, int dataNum) { #endif // If haven't gotten then lantern back from the monkey - if (!dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[226])) { + if (!dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[226])) { // Store whether or not it's stolen and dropped - lantern_dropped = dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[224]); - lantern_stolen = dComIfGs_isEventBit((u16)dSv_event_flag_c::saveBitLabels[225]); + lantern_dropped = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[224]); + lantern_stolen = dComIfGs_isEventBit(dSv_event_flag_c::saveBitLabels[225]); // Then turn those events off - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[224]); - dComIfGs_offEventBit((u16)dSv_event_flag_c::saveBitLabels[225]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[224]); + dComIfGs_offEventBit(dSv_event_flag_c::saveBitLabels[225]); // Used to turn events back on later lantern_not_recovered = true; @@ -1765,10 +1765,10 @@ int dSv_info_c::memory_to_card(char* card_ptr, int dataNum) { // Now that we've saved, reset events if needed if (lantern_not_recovered == true) { if (lantern_dropped) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[224]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[224]); } if (lantern_stolen) { - dComIfGs_onEventBit((u16)dSv_event_flag_c::saveBitLabels[225]); + dComIfGs_onEventBit(dSv_event_flag_c::saveBitLabels[225]); } } @@ -2014,7 +2014,12 @@ BOOL flagFile_c::check_flag(u16 i_flag) { #if VERSION > VERSION_GCN_JPN const #endif -u16 dSv_event_flag_c::saveBitLabels[822] = { +#if PLATFORM_SHIELD +s16 +#else +u16 +#endif +dSv_event_flag_c::saveBitLabels[822] = { UNUSED, TEST_001, TEST_002, TEST_003, TEST_004, F_0001, F_0002, F_0003, F_0004, F_0005, F_0006, F_0007, F_0008, F_0009, F_0010, F_0011, F_0012, F_0013, F_0014, F_0015, F_0016, F_0017, F_0018, F_0019, F_0020, D_0001, F_0021, F_0022, F_0023, F_0024, F_0025, F_0026, F_0027, F_0028, F_0029, From 644b4fb96fe6804ff6228c61daf47d6c3e7059dd Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Mon, 8 Dec 2025 00:49:42 -0500 Subject: [PATCH 05/13] JASBNKParser OK, Z2Audience OK (#2929) --- config/GZ2E01/symbols.txt | 2 +- configure.py | 4 +- include/JSystem/JAudio2/JASHeapCtrl.h | 76 ++++++++++++++++++------ include/JSystem/JMath/JMATrigonometric.h | 8 +-- include/Z2AudioLib/Z2Audience.h | 2 + src/JSystem/JAudio2/JASAramStream.cpp | 2 +- src/JSystem/JAudio2/JASBNKParser.cpp | 4 ++ src/JSystem/JAudio2/JASHeapCtrl.cpp | 16 +++-- src/Z2AudioLib/Z2Audience.cpp | 6 +- 9 files changed, 90 insertions(+), 30 deletions(-) diff --git a/config/GZ2E01/symbols.txt b/config/GZ2E01/symbols.txt index 23431e5ed7..8032ae73c2 100644 --- a/config/GZ2E01/symbols.txt +++ b/config/GZ2E01/symbols.txt @@ -22058,7 +22058,7 @@ data_80451274 = .sbss:0x80451274; // type:object size:0x1 scope:local align:4 da mNoLoad__16JASBasicWaveBank = .sbss:0x80451278; // type:object size:0x4 scope:global align:4 sUsedHeapSize__11JASWSParser = .sbss:0x80451280; // type:object size:0x4 scope:global align:4 data:4byte sUsedHeapSize__12JASBNKParser = .sbss:0x80451288; // type:object size:0x4 scope:global align:4 data:4byte -data_8045128C = .sbss:0x8045128C; // type:object size:0x1 scope:local align:4 data:byte +__init__memPool___46JASPoolAllocObject_MultiThreaded<10JASChannel> = .sbss:0x8045128C; // type:object size:0x1 scope:local align:4 data:byte sAramHeap__16JASWaveArcLoader = .sbss:0x80451290; // type:object size:0x4 scope:global align:4 data:4byte sBankDisposeListSize__10JASChannel = .sbss:0x80451298; // type:object size:0x4 scope:global align:4 data:4byte sDspDacBuffer__9JASDriver = .sbss:0x804512A0; // type:object size:0x4 scope:global align:4 data:4byte diff --git a/configure.py b/configure.py index 3d0617d508..554798a8d7 100755 --- a/configure.py +++ b/configure.py @@ -1031,7 +1031,7 @@ config.libs = [ Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASBasicWaveBank.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASSimpleWaveBank.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASWSParser.cpp"), - Object(NonMatching, "JSystem/JAudio2/JASBNKParser.cpp"), # missing bss var + Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASBNKParser.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASWaveArcLoader.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASChannel.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASLfo.cpp"), @@ -1106,7 +1106,7 @@ config.libs = [ Object(Equivalent, "Z2AudioLib/Z2SceneMgr.cpp"), # weak func order Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2FxLineMgr.cpp"), Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2SoundInfo.cpp"), - Object(Equivalent, "Z2AudioLib/Z2Audience.cpp"), # weak func order + Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2Audience.cpp"), Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2SoundObject.cpp"), Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2SoundObjMgr.cpp"), Object(MatchingFor(ALL_GCN), "Z2AudioLib/Z2Creature.cpp"), diff --git a/include/JSystem/JAudio2/JASHeapCtrl.h b/include/JSystem/JAudio2/JASHeapCtrl.h index f7eda37587..5a7b2550f8 100644 --- a/include/JSystem/JAudio2/JASHeapCtrl.h +++ b/include/JSystem/JAudio2/JASHeapCtrl.h @@ -50,11 +50,18 @@ struct JASGenericMemPool { void* alloc(u32); void free(void*, u32); + u32 getFreeMemCount() const { + return freeMemCount; + } + + u32 getTotalMemCount() const { + return totalMemCount; + } + /* 0x00 */ void* field_0x0; /* 0x04 */ u32 freeMemCount; /* 0x08 */ u32 totalMemCount; /* 0x0C */ u32 usedMemCount; - }; namespace JASThreadingModel { @@ -87,6 +94,13 @@ namespace JASThreadingModel { A0* mMutex; }; }; + + template + struct SingleThreaded { + struct Lock { + Lock(const A0& param_0) {} + }; + }; }; // namespace JASThreadingModel /** @@ -96,17 +110,32 @@ namespace JASThreadingModel { template class JASMemPool : public JASGenericMemPool { public: - void newMemPool(int param_0) { JASGenericMemPool::newMemPool(sizeof(T), param_0); } + void newMemPool(int param_0) { + typename JASThreadingModel::SingleThreaded >::Lock lock(*this); + JASGenericMemPool::newMemPool(sizeof(T), param_0); + } void* alloc(u32 n) { JUT_ASSERT(182, n == sizeof(T)); + typename JASThreadingModel::SingleThreaded >::Lock lock(*this); return JASGenericMemPool::alloc(n); } void free(void* ptr, u32 n) { JUT_ASSERT(187, n == sizeof(T)); + typename JASThreadingModel::SingleThreaded >::Lock lock(*this); JASGenericMemPool::free(ptr, n); } + + u32 getFreeMemCount() const { + typename JASThreadingModel::SingleThreaded >::Lock lock(*this); + return JASGenericMemPool::getFreeMemCount(); + } + + u32 getTotalMemCount() const { + typename JASThreadingModel::SingleThreaded >::Lock lock(*this); + return JASGenericMemPool::getTotalMemCount(); + } }; namespace JASKernel { JKRHeap* getSystemHeap(); }; @@ -255,25 +284,35 @@ template class JASPoolAllocObject { public: static void* operator new(size_t n) { - JASMemPool* memPool = getMemPool_(); - return memPool->alloc(sizeof(T)); + JASMemPool& memPool_ = getMemPool_(); + return memPool_.alloc(n); } static void* operator new(size_t n, void* ptr) { return ptr; } static void operator delete(void* ptr, size_t n) { - JASMemPool* memPool_ = getMemPool_(); - memPool_->free(ptr, sizeof(T)); + JASMemPool& memPool_ = getMemPool_(); + memPool_.free(ptr, n); } static void newMemPool(int param_0) { - JASMemPool* memPool_ = getMemPool_(); - memPool_->newMemPool(param_0); + JASMemPool& memPool_ = getMemPool_(); + memPool_.newMemPool(param_0); + } + static u32 getFreeMemCount() { + JASMemPool& memPool_ = getMemPool_(); + return memPool_.getFreeMemCount(); + } + static u32 getTotalMemCount() { + JASMemPool& memPool_ = getMemPool_(); + return memPool_.getTotalMemCount(); } private: - static JASMemPool* getMemPool_() { + // Fakematch? Is memPool_ both an in-function static and an out-of-function static? + static JASMemPool memPool_; + static JASMemPool& getMemPool_() { static JASMemPool memPool_; - return &memPool_; + return memPool_; } }; @@ -308,25 +347,28 @@ template class JASPoolAllocObject_MultiThreaded { public: static void* operator new(size_t n) { - JASMemPool_MultiThreaded* memPool_ = getMemPool(); - return memPool_->alloc(sizeof(T)); + JASMemPool_MultiThreaded& memPool_ = getMemPool(); + return memPool_.alloc(sizeof(T)); } static void* operator new(size_t n, void* ptr) { return ptr; } static void operator delete(void* ptr, size_t n) { - JASMemPool_MultiThreaded* memPool_ = getMemPool(); - memPool_->free(ptr, sizeof(T)); + JASMemPool_MultiThreaded& memPool_ = getMemPool(); + memPool_.free(ptr, sizeof(T)); } static void newMemPool(int n) { - getMemPool()->newMemPool(n); + JASMemPool_MultiThreaded& memPool_ = getMemPool(); + memPool_.newMemPool(n); } private: - static JASMemPool_MultiThreaded* getMemPool() { + // Fakematch? Is memPool_ both an in-function static and an out-of-function static? + static JASMemPool_MultiThreaded memPool_; + static JASMemPool_MultiThreaded& getMemPool() { static JASMemPool_MultiThreaded memPool_; - return &memPool_; + return memPool_; } }; diff --git a/include/JSystem/JMath/JMATrigonometric.h b/include/JSystem/JMath/JMATrigonometric.h index 25b79a72dc..276ea2399e 100644 --- a/include/JSystem/JMath/JMATrigonometric.h +++ b/include/JSystem/JMath/JMATrigonometric.h @@ -31,28 +31,28 @@ struct TSinCosTable { T sinShort(s16 v) const { return table[(u16)v >> (16U - N)].first; } T cosShort(s16 v) const { return table[(u16)v >> (16U - N)].second; } - inline T sinLap(T v) { + inline T sinLap(T v) const { if (v < (T)0.0) { return -table[(u16)(-(T)(1 << N) * v) & ((1 << N) - 1)].first; } return table[(u16)((T)(1 << N) * v) & ((1 << N) - 1)].first; } - inline T sinDegree(T degree) { + inline T sinDegree(T degree) const { if (degree < (T)0.0) { return -table[(u16)(-((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].first; } return table[(u16)(((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].first; } - inline T cosDegree(T degree) { + inline T cosDegree(T degree) const { if (degree < (T)0.0) { degree = -degree; } return table[(u16)(((T)(1 << N) / (T)360.0) * degree) & ((1 << N) - 1)].second; } - inline T sinRadian(T radian) { + inline T sinRadian(T radian) const { if (radian < (T)0.0) { return -table[(u16)(-(T)(1 << N) / TAngleConstant_::RADIAN_DEG360() * radian) & ((1 << N) - 1)].first; } diff --git a/include/Z2AudioLib/Z2Audience.h b/include/Z2AudioLib/Z2Audience.h index 8b8dc99805..dd30b87948 100644 --- a/include/Z2AudioLib/Z2Audience.h +++ b/include/Z2AudioLib/Z2Audience.h @@ -221,6 +221,8 @@ struct Z2Audience : public JAIAudience, public JASGlobalInstance { virtual u32 calcPriority(JAIAudible* audible); virtual void mixChannelOut(const JASSoundParams& outParams, JAIAudible* audible, int channelNum); + bool isActive() const; + Z2SpotMic* getLinkMic() { return mLinkMic; } JGeometry::TVec3 getAudioCamPos(int camID) { return *mAudioCamera[camID].getPos(); diff --git a/src/JSystem/JAudio2/JASAramStream.cpp b/src/JSystem/JAudio2/JASAramStream.cpp index ba010aeb9b..32cbf21603 100644 --- a/src/JSystem/JAudio2/JASAramStream.cpp +++ b/src/JSystem/JAudio2/JASAramStream.cpp @@ -498,7 +498,7 @@ void JASAramStream::updateChannel(u32 i_callbackType, JASChannel* i_channel, field_0x0b4 = i_dspChannel->field_0x074 + i_dspChannel->field_0x064; if (field_0x118 >= field_0x160 - 2) { JUT_WARN_DEVICE(810, 1, "%s", "buffer under error"); - field_0x0ae |= 4; + field_0x0ae |= (u8)4; } } else { if (field_0x12c & 1) { diff --git a/src/JSystem/JAudio2/JASBNKParser.cpp b/src/JSystem/JAudio2/JASBNKParser.cpp index f789774cde..dbaad63bee 100644 --- a/src/JSystem/JAudio2/JASBNKParser.cpp +++ b/src/JSystem/JAudio2/JASBNKParser.cpp @@ -305,3 +305,7 @@ JASOscillator::Point const* JASBNKParser::Ver0::getOscTableEndPtr(JASOscillator: } while (tmp <= 10); return points; } + +// Fakematch? Why is this here? +template<> +JASMemPool_MultiThreaded JASPoolAllocObject_MultiThreaded::memPool_; diff --git a/src/JSystem/JAudio2/JASHeapCtrl.cpp b/src/JSystem/JAudio2/JASHeapCtrl.cpp index d244adb0c2..af2c9b953a 100644 --- a/src/JSystem/JAudio2/JASHeapCtrl.cpp +++ b/src/JSystem/JAudio2/JASHeapCtrl.cpp @@ -195,11 +195,19 @@ JASGenericMemPool::~JASGenericMemPool() { JKRSolidHeap* JASDram; -void JASGenericMemPool::newMemPool(u32 size, int param_1) { +// TODO: What is this and Where does it go? +struct TNextOnFreeList { + u8 pad[4]; +}; // Size: 0x4 + +void JASGenericMemPool::newMemPool(u32 n, int param_1) { + JUT_ASSERT(734, n >= sizeof(TNextOnFreeList)); + void* runner; for (int i = 0; i < param_1; i++) { - void* chunk = new (JASDram, 0) u8[size]; - *(void**)chunk = field_0x0; - field_0x0 = chunk; + runner = new (JASDram, 0) u8[n]; + JUT_ASSERT(739, runner); + *(void**)runner = field_0x0; + field_0x0 = runner; } freeMemCount += param_1; totalMemCount += param_1; diff --git a/src/Z2AudioLib/Z2Audience.cpp b/src/Z2AudioLib/Z2Audience.cpp index dd7baa72ca..fa466f962b 100644 --- a/src/Z2AudioLib/Z2Audience.cpp +++ b/src/Z2AudioLib/Z2Audience.cpp @@ -500,7 +500,11 @@ Z2Audience::Z2Audience() : JASGlobalInstance(true), field_0x4(1.0f), } Z2Audience::~Z2Audience() { - // JUT_ASSERT(751, !isActive()); // TODO: need to setup rest of JASMemPool stuff + JUT_ASSERT(751, !isActive()); +} + +bool Z2Audience::isActive() const { + return Z2Audible::getTotalMemCount() != Z2Audible::getFreeMemCount(); } void Z2Audience::setAudioCamera(f32 (*param_0)[4], Vec& pos, Vec& param_2, f32 param_3, From 61148aa7069dda7e9c8198f498ba2e34a8d1606d Mon Sep 17 00:00:00 2001 From: TakaRikka <38417346+TakaRikka@users.noreply.github.com> Date: Mon, 8 Dec 2025 02:44:29 -0800 Subject: [PATCH 06/13] shieldD revolution dvd/nand mostly done (#2922) * shieldD revo dvd mostly done * shieldD revo nand mostly done * shieldD revo fs mostly done * shieldD revo ipc mostly done * shieldD revo sdk pad done --- config/ShieldD/splits.txt | 8 +- configure.py | 47 + include/revolution/dvd.h | 111 +- include/revolution/fs.h | 100 + include/revolution/ipc.h | 24 + include/revolution/ipc/ipcProfile.h | 19 + include/revolution/ipc/ipcclt.h | 37 + include/revolution/ipc/memory.h | 18 + include/revolution/nand.h | 89 +- include/revolution/os.h | 20 +- include/revolution/os/OSNet.h | 29 + include/revolution/os/OSPlayRecord.h | 8 + include/revolution/os/OSReset.h | 4 +- include/revolution/private/iosresclt.h | 9 - include/revolution/private/iosrestypes.h | 14 +- src/revolution/dvd/__dvd.h | 34 +- src/revolution/dvd/dvd.c | 2553 ++++++++++++++++++++++ src/revolution/dvd/dvdDeviceError.c | 200 ++ src/revolution/dvd/dvdFatal.c | 211 ++ src/revolution/dvd/dvd_broadway.c | 978 +++++++++ src/revolution/dvd/dvderror.c | 202 ++ src/revolution/dvd/dvdfs.c | 557 +++++ src/revolution/dvd/dvdidutils.c | 98 + src/revolution/dvd/dvdqueue.c | 192 ++ src/revolution/fs/fs.c | 973 +++++++++ src/revolution/ipc/ipcMain.c | 51 + src/revolution/ipc/ipcProfile.c | 53 + src/revolution/ipc/ipcclt.c | 835 +++++++ src/revolution/ipc/memory.c | 240 ++ src/revolution/nand/NANDCheck.c | 94 + src/revolution/nand/NANDCore.c | 514 +++++ src/revolution/nand/NANDErrorMessage.c | 235 ++ src/revolution/nand/NANDLogging.c | 181 ++ src/revolution/nand/NANDOpenClose.c | 683 ++++++ src/revolution/nand/nand.c | 565 +++++ src/revolution/os/OS.c | 7 +- src/revolution/os/OSAlarm.c | 4 +- src/revolution/os/OSAudioSystem.c | 2 + src/revolution/os/OSExec.c | 3 +- src/revolution/os/OSInterrupt.c | 1 + src/revolution/os/OSLaunch.c | 1 + src/revolution/os/OSLink.c | 1 + src/revolution/os/OSNet.c | 19 +- src/revolution/os/OSPlayTime.c | 4 + src/revolution/os/OSReset.c | 2 + src/revolution/os/OSStateFlags.c | 2 +- src/revolution/os/OSStateTM.c | 2 + src/revolution/os/OSSync.c | 1 + src/revolution/os/OSThread.c | 6 +- src/revolution/os/__os.h | 47 +- src/revolution/pad/Pad.c | 894 ++++++++ src/revolution/pad/Padclamp.c | 153 ++ src/revolution/si/__si.h | 21 + 53 files changed, 11021 insertions(+), 135 deletions(-) create mode 100644 include/revolution/fs.h create mode 100644 include/revolution/ipc.h create mode 100644 include/revolution/ipc/ipcProfile.h create mode 100644 include/revolution/ipc/ipcclt.h create mode 100644 include/revolution/ipc/memory.h create mode 100644 include/revolution/os/OSNet.h delete mode 100644 include/revolution/private/iosresclt.h create mode 100644 src/revolution/dvd/dvd.c create mode 100644 src/revolution/dvd/dvdDeviceError.c create mode 100644 src/revolution/dvd/dvdFatal.c create mode 100644 src/revolution/dvd/dvd_broadway.c create mode 100644 src/revolution/dvd/dvderror.c create mode 100644 src/revolution/dvd/dvdfs.c create mode 100644 src/revolution/dvd/dvdidutils.c create mode 100644 src/revolution/dvd/dvdqueue.c create mode 100644 src/revolution/fs/fs.c create mode 100644 src/revolution/ipc/ipcMain.c create mode 100644 src/revolution/ipc/ipcProfile.c create mode 100644 src/revolution/ipc/ipcclt.c create mode 100644 src/revolution/ipc/memory.c create mode 100644 src/revolution/nand/NANDCheck.c create mode 100644 src/revolution/nand/NANDCore.c create mode 100644 src/revolution/nand/NANDErrorMessage.c create mode 100644 src/revolution/nand/NANDLogging.c create mode 100644 src/revolution/nand/NANDOpenClose.c create mode 100644 src/revolution/nand/nand.c create mode 100644 src/revolution/pad/Pad.c create mode 100644 src/revolution/pad/Padclamp.c create mode 100644 src/revolution/si/__si.h diff --git a/config/ShieldD/splits.txt b/config/ShieldD/splits.txt index e2980dc623..2139785b55 100644 --- a/config/ShieldD/splits.txt +++ b/config/ShieldD/splits.txt @@ -4330,7 +4330,7 @@ revolution/dvd/dvdDeviceError.c: .rodata start:0x8065EA50 end:0x8065EA70 .data start:0x8073A040 end:0x8073A1D8 .sdata start:0x8074BFE0 end:0x8074BFE8 - .sbss start:0x8074D530 end:0x8074D53C + .sbss start:0x8074D530 end:0x8074D538 .sdata2 start:0x80752E30 end:0x80752E38 .bss start:0x80801880 end:0x808018A0 @@ -4338,7 +4338,7 @@ revolution/dvd/dvd_broadway.c: .text start:0x80607A70 end:0x80609A20 .data start:0x8073A1D8 end:0x8073B118 .sdata start:0x8074BFE8 end:0x8074BFF8 - .sbss start:0x8074D53C end:0x8074D560 + .sbss start:0x8074D538 end:0x8074D560 .bss start:0x808018A0 end:0x80801A20 revolution/ai/ai.c: @@ -4412,7 +4412,7 @@ revolution/sc/scsystem.c: .rodata start:0x8065EE18 end:0x8065EE70 .data start:0x8073DB08 end:0x8073DDB0 .sdata start:0x8074C078 end:0x8074C1C0 - .sbss start:0x8074D5EC end:0x8074D604 + .sbss start:0x8074D5EC end:0x8074D600 .bss start:0x80801DC0 end:0x80809F60 revolution/sc/scapi.c: @@ -4435,7 +4435,7 @@ revolution/esp/esp.c: revolution/ipc/ipcMain.c: .text start:0x80612240 end:0x806123B0 .data start:0x8073DE10 end:0x8073DE48 - .sbss start:0x8074D604 end:0x8074D618 + .sbss start:0x8074D600 end:0x8074D618 revolution/ipc/ipcclt.c: .text start:0x806123B0 end:0x80613CC0 diff --git a/configure.py b/configure.py index 554798a8d7..d00d071b28 100755 --- a/configure.py +++ b/configure.py @@ -397,6 +397,7 @@ cflags_revolution_retail = [ cflags_revolution_debug = [ *cflags_revolution_base, "-opt off", + "-inline off", "-DDEBUG=1", ] @@ -1497,6 +1498,52 @@ config.libs = [ Object(MatchingFor("ShieldD"), "revolution/os/__ppc_eabi_init.cpp"), ], ), + RevolutionLib( + "dvd", + [ + Object(NonMatching, "revolution/dvd/dvdfs.c", extra_cflags=["-char signed"]), + Object(NonMatching, "revolution/dvd/dvd.c", extra_cflags=["-char signed"]), + Object(NonMatching, "revolution/dvd/dvdqueue.c", extra_cflags=["-char signed"]), + Object(NonMatching, "revolution/dvd/dvderror.c", extra_cflags=["-char signed"]), + Object(NonMatching, "revolution/dvd/dvdidutils.c", extra_cflags=["-char signed"]), + Object(NonMatching, "revolution/dvd/dvdFatal.c", extra_cflags=["-char signed"]), + Object(NonMatching, "revolution/dvd/dvdDeviceError.c", extra_cflags=["-char signed"]), + Object(NonMatching, "revolution/dvd/dvd_broadway.c", extra_cflags=["-char signed"]), + ], + ), + RevolutionLib( + "nand", + [ + Object(NonMatching, "revolution/nand/nand.c"), + Object(NonMatching, "revolution/nand/NANDOpenClose.c"), + Object(NonMatching, "revolution/nand/NANDCore.c"), + Object(NonMatching, "revolution/nand/NANDCheck.c"), + Object(NonMatching, "revolution/nand/NANDLogging.c"), + Object(NonMatching, "revolution/nand/NANDErrorMessage.c"), + ], + ), + RevolutionLib( + "fs", + [ + Object(NonMatching, "revolution/fs/fs.c"), + ], + ), + RevolutionLib( + "ipc", + [ + Object(NonMatching, "revolution/ipc/ipcMain.c"), + Object(NonMatching, "revolution/ipc/ipcclt.c"), + Object(NonMatching, "revolution/ipc/memory.c"), + Object(NonMatching, "revolution/ipc/ipcProfile.c"), + ], + ), + RevolutionLib( + "pad", + [ + Object(NonMatching, "revolution/pad/Padclamp.c"), + Object(NonMatching, "revolution/pad/Pad.c"), + ], + ), { "lib": "Runtime.PPCEABI.H", "mw_version": MWVersion(config.version), diff --git a/include/revolution/dvd.h b/include/revolution/dvd.h index 3ab240ec37..5dc9067cd8 100644 --- a/include/revolution/dvd.h +++ b/include/revolution/dvd.h @@ -66,6 +66,8 @@ extern "C" { #define DVD_COMMAND_BS_CHANGE_DISK 15 #define DVD_COMMAND_UNK_16 16 +#define DVD_RESETCOVER_TIMELAG_TICKS2 OSMillisecondsToTicks(100) + typedef struct DVDDiskID { char gameName[4]; char company[2]; @@ -137,6 +139,29 @@ typedef struct DVDDriveInfo { /* 0x08 */ u8 padding[24]; } DVDDriveInfo; +typedef struct DVDCommandInfo DVDCommandInfo; +struct DVDCommandInfo { + u32 command; + u32 offset; + u32 length; + u32 intType; + u32 tick; +}; + +typedef struct DVDErrorInfo DVDErrorInfo; +struct DVDErrorInfo { + char gameName[4]; + u8 diskNumber; + u8 gameVersion; + u8 reserved0[2]; + u32 error; + u32 dateTime; + u32 status; + u32 unk_0x14; + u32 nextOffset; + DVDCommandInfo lastCommand[5]; +}; + typedef struct DVDGamePartition { ESTicket ticket; u32 tmdSize; @@ -157,25 +182,50 @@ typedef struct DVDGameTOC { DVDPartitionInfo* partitionInfos; } DVDGameTOC; +#define ROUND(n, a) (((u32)(n) + (a)-1) & ~((a)-1)) + +typedef struct DVDPartitionParams DVDPartitionParams; + +struct DVDPartitionParams { + ESTicket ticket; + u8 padding0[ROUND(sizeof(ESTicket), 32) - sizeof(ESTicket)]; + ESTicketView ticketView; + u8 padding1[ROUND(sizeof(ESTicketView), 32) - sizeof(ESTicketView)]; + u32 numTmdBytes; + u8 padding2[28]; + ESTitleMeta tmd; + u8 padding3[ROUND(sizeof(ESTitleMeta), 32) - sizeof(ESTitleMeta)]; + u32 numCertBytes; + u8 padding4[28]; + u8 certificates[4096]; + u32 dataWordOffset; + u8 padding5[28]; + u8 h3Hash[98304]; +}; + +typedef struct diRegVals { + u32 ImmRegVal; + u32 CoverRegVal; + u32 pad[6]; +} diRegVals_t; + +typedef struct diCommand { + u8 theCommand; + u8 pad1[3]; + u32 arg[5]; + u32 pad2[2]; +} diCommand_t; + +typedef struct DVDVideoReportKey { + u8 data[32]; +} DVDVideoReportKey; + // DVD void DVDInit(void); int DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset, DVDCBCallback callback, s32 prio); int DVDSeekAbsAsyncPrio(DVDCommandBlock* block, s32 offset, DVDCBCallback callback, s32 prio); int DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset, DVDCBCallback callback); int DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback); -int DVDPrepareStreamAbsAsync(DVDCommandBlock* block, u32 length, u32 offset, DVDCBCallback callback); -int DVDCancelStreamAsync(DVDCommandBlock* block, DVDCBCallback callback); -s32 DVDCancelStream(DVDCommandBlock* block); -int DVDStopStreamAtEndAsync(DVDCommandBlock* block, DVDCBCallback callback); -s32 DVDStopStreamAtEnd(DVDCommandBlock* block); -int DVDGetStreamErrorStatusAsync(DVDCommandBlock* block, DVDCBCallback callback); -s32 DVDGetStreamErrorStatus(DVDCommandBlock* block); -int DVDGetStreamPlayAddrAsync(DVDCommandBlock* block, DVDCBCallback callback); -s32 DVDGetStreamPlayAddr(DVDCommandBlock* block); -int DVDGetStreamStartAddrAsync(DVDCommandBlock* block, DVDCBCallback callback); -s32 DVDGetStreamStartAddr(DVDCommandBlock* block); -int DVDGetStreamLengthAsync(DVDCommandBlock* block, DVDCBCallback callback); -s32 DVDGetStreamLength(DVDCommandBlock* block); int DVDChangeDiskAsyncForBS(DVDCommandBlock* block, DVDCBCallback callback); int DVDChangeDiskAsync(DVDCommandBlock* block, DVDDiskID* id, DVDCBCallback callback); s32 DVDChangeDisk(DVDCommandBlock* block, DVDDiskID* id); @@ -191,7 +241,7 @@ BOOL DVDSetAutoInvalidation(BOOL autoInval); void DVDPause(void); void DVDResume(void); int DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback); -s32 DVDCancel(volatile DVDCommandBlock* block); +s32 DVDCancel(DVDCommandBlock* block); int DVDCancelAllAsync(DVDCBCallback callback); s32 DVDCancelAll(void); DVDDiskID* DVDGetCurrentDiskID(void); @@ -199,6 +249,7 @@ BOOL DVDCheckDisk(void); // DVD FATAL int DVDSetAutoFatalMessaging(BOOL enable); +BOOL __DVDGetAutoFatalMessaging(void); // DVD FS s32 DVDConvertPathToEntrynum(const char* pathPtr); @@ -218,9 +269,6 @@ int DVDOpenDir(const char* dirName, DVDDir* dir); int DVDReadDir(DVDDir* dir, DVDDirEntry* dirent); int DVDCloseDir(DVDDir* dir); void DVDRewindDir(DVDDir* dir); -void* DVDGetFSTLocation(void); -BOOL DVDPrepareStreamAsync(DVDFileInfo* fileInfo, u32 length, u32 offset, DVDCallback callback); -s32 DVDPrepareStream(DVDFileInfo* fileInfo, u32 length, u32 offset); s32 DVDGetTransferredSize(DVDFileInfo* fileinfo); #define DVDReadAsync(fileInfo, addr, length, offset, callback) \ @@ -233,16 +281,11 @@ DVDDiskID* DVDGenerateDiskID(DVDDiskID* id, const char* game, const char* compan // DVD LOW BOOL DVDLowRead(void* addr, u32 length, u32 offset, DVDLowCallback callback); BOOL DVDLowSeek(u32 offset, DVDLowCallback callback); -BOOL DVDLowWaitCoverClose(DVDLowCallback callback); BOOL DVDLowReadDiskID(DVDDiskID* diskID, DVDLowCallback callback); -BOOL DVDLowStopMotor(DVDLowCallback callback); BOOL DVDLowRequestError(DVDLowCallback callback); BOOL DVDLowInquiry(DVDDriveInfo* info, DVDLowCallback callback); -BOOL DVDLowAudioStream(u32 subcmd, u32 length, u32 offset, DVDLowCallback callback); -BOOL DVDLowRequestAudioStatus(u32 subcmd, DVDLowCallback callback); -BOOL DVDLowAudioBufferConfig(BOOL enable, u32 size, DVDLowCallback callback); -void DVDLowReset(void); -DVDLowCallback DVDLowSetResetCoverCallback(DVDLowCallback callback); +BOOL DVDLowAudioBufferConfig(u8 enable, u32 size, DVDLowCallback callback); +BOOL DVDLowReset(DVDLowCallback callback); BOOL DVDLowBreak(void); DVDLowCallback DVDLowClearCallback(void); u32 DVDLowGetCoverStatus(void); @@ -250,8 +293,24 @@ u32 DVDLowGetCoverStatus(void); // DVD QUEUE void DVDDumpWaitingQueue(void); - -// unsorted revo +// DVD BROADWAY +BOOL DVDLowFinalize(void); +BOOL DVDLowInit(void); +BOOL DVDLowUnmaskStatusInterrupts(void); +BOOL DVDLowMaskCoverInterrupt(void); +BOOL DVDLowClearCoverInterrupt(DVDLowCallback callback); +BOOL DVDLowSetSpinupFlag(u32 spinUp); +u32 DVDLowGetImmBufferReg(void); +BOOL DVDLowSetMaximumRotation(u32 subcmd, DVDLowCallback callback); +u32 DVDLowGetCoverRegister(void); +BOOL DVDLowPrepareCoverRegister(DVDLowCallback callback); +BOOL DVDLowGetNoDiscBufferSizes(const u32 partitionWordOffset, u32* numTmdBytes, u32* numCertBytes, DVDLowCallback callback); +BOOL DVDLowGetNoDiscOpenPartitionParams(const u32 partitionWordOffset, ESTicket* eTicket, u32* numTmdBytes, ESTitleMeta* tmd, u32* numCertBytes, u8* certificates, u32* dataWordOffset, u8* h3HashPtr, DVDLowCallback callback); +BOOL DVDLowReportKey(DVDVideoReportKey* reportKey, u32 format, u32 lsn, DVDLowCallback callback); +u32 DVDLowGetControlRegister(void); +u32 DVDLowGetStatusRegister(void); +BOOL DVDLowPrepareControlRegister(DVDLowCallback callback); +BOOL DVDLowPrepareStatusRegister(DVDLowCallback callback); BOOL DVDLowUnencryptedRead(void*, u32, u32, DVDLowCallback); BOOL DVDLowClosePartition(DVDLowCallback); BOOL DVDLowOpenPartitionWithTmdAndTicketView(const u32, const ESTicketView* const, const u32, const ESTitleMeta* const, const u32, const u8* const, DVDLowCallback); diff --git a/include/revolution/fs.h b/include/revolution/fs.h new file mode 100644 index 0000000000..b6019c9743 --- /dev/null +++ b/include/revolution/fs.h @@ -0,0 +1,100 @@ +#ifndef _REVOLUTION_FS_H_ +#define _REVOLUTION_FS_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +#define ISFS_ERROR_OK 0 +#define ISFS_ERROR_INVALID -101 +#define ISFS_ERROR_ACCESS -102 +#define ISFS_ERROR_CORRUPT -103 +#define ISFS_ERROR_NOTREADY -104 +#define ISFS_ERROR_EXISTS -105 +#define ISFS_ERROR_NOEXISTS -106 +#define ISFS_ERROR_MAXFILES -107 +#define ISFS_ERROR_MAXBLOCKS -108 +#define ISFS_ERROR_MAXFD -109 +#define ISFS_ERROR_MAXDEPTH -110 +#define ISFS_ERROR_OPENFD -111 +#define ISFS_ERROR_BADBLOCK -112 +#define ISFS_ERROR_ECC -113 +#define ISFS_ERROR_ECC_CRIT -114 +#define ISFS_ERROR_NOTEMPTY -115 +#define ISFS_ERROR_HMAC -116 +#define ISFS_ERROR_UNKNOWN -117 +#define ISFS_ERROR_BUSY -118 +#define ISFS_ERROR_SHUTDOWN -119 + +#define ISFS_INODE_NAMELEN 12 + +typedef s32 ISFSError; +typedef void (*ISFSCallback) (ISFSError, void *ctxt); + +typedef struct { + u32 blockSize; + u32 freeBlocks; + u32 occupiedBlcocks; + u32 badBlocks; + u32 reservedBlocks; + u32 freeInodes; + u32 occupedInodes; +} ISFSStats; + +typedef struct { + u32 size; + u32 offset; +} ISFSFileStats; + +typedef struct { + IOSUid ownerId; + IOSGid groupId; + u8 path[64]; + u8 ownerAccess; + u8 groupAccess; + u8 othersAccess; + u8 attr; +} ISFSPathAttrArgs; + +typedef struct { + u8 path1[64]; + u8 path2[64]; +} ISFSPathsArgs; + +ISFSError ISFS_OpenLib(void); +s32 ISFS_CreateDir(const u8* dname, u32 dirAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc); +s32 ISFS_CreateDirAsync(const u8* dname, u32 dirAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc, ISFSCallback cb, void* fsCtxt); +s32 ISFS_ReadDir(const u8* dname, u8* nameList, u32* num); +s32 ISFS_ReadDirAsync(const u8* dname, u8* nameList, u32* num, ISFSCallback cb, void* fsCtxt); +s32 ISFS_GetAttr(const u8* name, IOSUid* ownerId, IOSGid* groupId, u32* attr, u32* ownerAcc, u32* groupAcc, u32* othersAcc); +s32 ISFS_GetAttrAsync(const u8* name, IOSUid* ownerId, IOSGid* groupId, u32* attr, u32* ownerAcc, u32* groupAcc, u32* othersAcc, ISFSCallback cb, void* fsCtxt); +s32 ISFS_Delete(const u8* name); +s32 ISFS_DeleteAsync(const u8* name, ISFSCallback cb, void* fsCtxt); +s32 ISFS_Rename(const u8* oldName, const u8* newName); +s32 ISFS_RenameAsync(const u8* oldName, const u8* newName, ISFSCallback cb, void* fsCtxt); +s32 ISFS_GetUsage(const u8* dname, u32* nblocks, u32* ninodes); +s32 ISFS_CreateFile(const u8* fname, u32 fileAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc); +s32 ISFS_CreateFileAsync(const u8* fname, u32 fileAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc, ISFSCallback cb, void* fsCtxt); +IOSFd ISFS_Open(const u8* fname, u32 access); +IOSFd ISFS_OpenAsync(const u8* fname, u32 access, ISFSCallback cb, void* fsCtxt); +s32 ISFS_GetFileStats(IOSFd fd, ISFSFileStats* stats); +s32 ISFS_GetFileStatsAsync(IOSFd fd, ISFSFileStats* stats, ISFSCallback cb, void* fsCtxt); +s32 ISFS_Seek(IOSFd fd, s32 offset, u32 whence); +s32 ISFS_SeekAsync(IOSFd fd, s32 offset, u32 whence, ISFSCallback cb, void* fsCtxt); +s32 ISFS_Read(s32 fd, u8* pBuffer, u32 bufSize); +s32 ISFS_ReadAsync(IOSFd fd, u8* buf, u32 size, ISFSCallback cb, void* fsCtxt); +s32 ISFS_Write(IOSFd fd, const u8* buf, u32 size); +s32 ISFS_WriteAsync(IOSFd fd, const u8* buf, u32 size, ISFSCallback cb, void* fsCtxt); +s32 ISFS_Close(IOSFd fd); +s32 ISFS_CloseAsync(IOSFd fd, ISFSCallback cb, void* fsCtxt); +s32 ISFS_ShutdownAsync(ISFSCallback cb, void* fsCtxt); + +#ifdef __cplusplus +} +#endif + +#endif // _REVOLUTION_FS_H_ diff --git a/include/revolution/ipc.h b/include/revolution/ipc.h new file mode 100644 index 0000000000..6c2ddf798d --- /dev/null +++ b/include/revolution/ipc.h @@ -0,0 +1,24 @@ +#ifndef _REVOLUTION_IPC_H_ +#define _REVOLUTION_IPC_H_ + +#include +#include +#include + +#ifdef __cplusplus +extern "C" { +#endif + +void IPCInit(void); +void IPCReInit(void); +u32 IPCReadReg(u32 regIdx); +void IPCWriteReg(u32 regIdx, u32 data); +void* IPCGetBufferHi(void); +void* IPCGetBufferLo(void); +void IPCSetBufferLo(void* newLo); + +#ifdef __cplusplus +} +#endif + +#endif // _REVOLUTION_IPC_H_ diff --git a/include/revolution/ipc/ipcProfile.h b/include/revolution/ipc/ipcProfile.h new file mode 100644 index 0000000000..75e851bc41 --- /dev/null +++ b/include/revolution/ipc/ipcProfile.h @@ -0,0 +1,19 @@ +#ifndef _REVOLUTION_IPCPROFILE_H_ +#define _REVOLUTION_IPCPROFILE_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +void IPCiProfInit(void); +void IPCiProfQueueReq(void* req, s32 handle); +void IPCiProfReply(void* req, s32 handle); +void IPCiProfAck(void); + +#ifdef __cplusplus +} +#endif + +#endif // _REVOLUTION_IPCPROFILE_H_ diff --git a/include/revolution/ipc/ipcclt.h b/include/revolution/ipc/ipcclt.h new file mode 100644 index 0000000000..673cfcd688 --- /dev/null +++ b/include/revolution/ipc/ipcclt.h @@ -0,0 +1,37 @@ +#ifndef _REVOLUTION_IPCCLT_H_ +#define _REVOLUTION_IPCCLT_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include + +typedef IOSError (*IOSIpcCb)(IOSError, void*); + +IOSError IPCCltInit(void); +IOSError IPCCltReInit(void); + +IOSError IOS_OpenAsync(const char* pPath, u32 flags, IOSIpcCb cb, void* callback_arg); +IOSError IOS_Open(const char* path, u32 flags); +IOSError IOS_CloseAsync(IOSFd fd, IOSIpcCb cb, void* cbArg); +IOSError IOS_Close(IOSFd fd); +IOSError IOS_ReadAsync(IOSFd fd, void* buf, u32 len, IOSIpcCb cb, void* cbArg); +IOSError IOS_Read(IOSFd fd, void* buf, u32 len); +IOSError IOS_WriteAsync(IOSFd fd, void* buf, u32 len, IOSIpcCb cb, void* cbArg); +IOSError IOS_Write(IOSFd fd, void* buf, u32 len); +IOSError IOS_SeekAsync(IOSFd fd, s32 offset, u32 whence, IOSIpcCb cb, void* cbArg); +IOSError IOS_Seek(IOSFd fd, s32 offset, u32 whence); +IOSError IOS_IoctlAsync(IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen, IOSIpcCb cb, void* cbArg); +IOSError IOS_Ioctl(IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen); +IOSError IOS_IoctlvAsync(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect, IOSIpcCb cb, void* cbArg); +IOSError IOS_Ioctlv(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect); +IOSError IOS_IoctlvReboot(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect); + +#ifdef __cplusplus +} +#endif + +#endif // _REVOLUTION_IPCCLT_H_ diff --git a/include/revolution/ipc/memory.h b/include/revolution/ipc/memory.h new file mode 100644 index 0000000000..8bf1e35505 --- /dev/null +++ b/include/revolution/ipc/memory.h @@ -0,0 +1,18 @@ +#ifndef _REVOLUTION_IPCMEMORY_H_ +#define _REVOLUTION_IPCMEMORY_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +IOSError iosFree(IOSHeapId id, void* ptr); +void* iosAllocAligned(IOSHeapId id, u32 size, u32 alignment); +IOSHeapId iosCreateHeap(void* ptr, u32 size); + +#ifdef __cplusplus +} +#endif + +#endif // _REVOLUTION_IPCMEMORY_H_ diff --git a/include/revolution/nand.h b/include/revolution/nand.h index 0f095e14ab..cafe72b054 100644 --- a/include/revolution/nand.h +++ b/include/revolution/nand.h @@ -2,6 +2,7 @@ #define _REVOLUTION_NAND_H_ #include +#include #ifdef __cplusplus extern "C" { @@ -122,11 +123,56 @@ typedef struct { typedef void (*NANDCallback)(s32, NANDCommandBlock*); typedef void (*NANDAsyncCallback)(s32 result, struct NANDCommandBlock* block); +typedef void (*NANDLoggingCallback)(BOOL, s32); + +// NAND +s32 NANDCreate(const char* path, const u8 perm, const u8 attr); +s32 NANDPrivateCreate(const char* path, u8 perm, u8 attr); +s32 NANDPrivateCreateAsync(const char *path, u8 perm, u8 attr, NANDCallback cb, NANDCommandBlock* block); + +s32 NANDDelete(const char* path); +s32 NANDPrivateDelete(const char* path); +s32 NANDPrivateDeleteAsync(const char* path, NANDCallback cb, NANDCommandBlock* block); + +s32 NANDRead(NANDFileInfo* info, void* buf, const u32 length); +s32 NANDReadAsync(NANDFileInfo* info, void* buf, const u32 length, + NANDCallback cb, NANDCommandBlock* block); + +s32 NANDWrite(NANDFileInfo* info, const void* buf, const u32 length); +s32 NANDWriteAsync(NANDFileInfo* info, const void* buf, const u32 length, + NANDCallback cb, NANDCommandBlock* block); + +s32 NANDSeek(NANDFileInfo* info, const s32 offset, const s32 whence); +s32 NANDSeekAsync(NANDFileInfo* info, const s32 offset, const s32 whence, + NANDCallback cb, NANDCommandBlock* block); + +s32 NANDPrivateCreateDir(const char* path, u8 perm, u8 attr); +s32 NANDPrivateCreateDirAsync(const char *path, u8 perm, u8 attr, NANDCallback cb, NANDCommandBlock *block); + +s32 NANDMove(const char* path, const char* destDir); + +s32 NANDGetLength(NANDFileInfo* info, u32* length); +s32 NANDGetLengthAsync(NANDFileInfo* info, u32* length, NANDCallback cb, + NANDCommandBlock* block); + +s32 NANDGetStatus(const char* path, NANDStatus* stat); +s32 NANDPrivateGetStatus(const char* path, NANDStatus* stat); +s32 NANDPrivateGetStatusAsync(const char* path, NANDStatus* stat, + NANDCallback cb, NANDCommandBlock* block); + +void NANDSetUserData(NANDCommandBlock* block, void* data); +void* NANDGetUserData(const NANDCommandBlock* block); + +// NANDCore s32 NANDInit(void); +s32 NANDGetHomeDir(char[NAND_MAX_PATH]); +s32 NANDPrivateGetTypeAsync(const char* path, u8* type, NANDCallback cb, NANDCommandBlock* block); +void NANDInitBanner(NANDBanner* bnr, u32 const flag, const u16* title, const u16* comment); -s32 NANDCreate(const char*, u8, u8); -s32 NANDPrivateCreate(const char*, u8, u8); +// NANDCheck +s32 NANDCheck(const u32 fsBlock, const u32 inode, u32* answer); +// NANDOpenClose s32 NANDOpen(const char*, NANDFileInfo*, u8); s32 NANDPrivateOpen(const char*, NANDFileInfo*, u8); s32 NANDOpenAsync(const char*, NANDFileInfo*, u8, NANDCallback, NANDCommandBlock*); @@ -134,31 +180,30 @@ s32 NANDPrivateOpenAsync(const char*, NANDFileInfo*, const u8, NANDCallback, NAN s32 NANDClose(NANDFileInfo*); s32 NANDCloseAsync(NANDFileInfo*, NANDCallback, NANDCommandBlock*); -s32 NANDRead(NANDFileInfo*, void*, u32); -s32 NANDReadAsync(NANDFileInfo*, void*, u32, NANDCallback, NANDCommandBlock*); -s32 NANDGetLength(NANDFileInfo*, u32*); +s32 NANDSimpleSafeOpen(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length); +s32 NANDSimpleSafeClose(NANDFileInfo* info); +s32 NANDPrivateSafeOpenAsync(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length, NANDCallback cb, NANDCommandBlock* block); +s32 NANDSafeCloseAsync(NANDFileInfo* info, NANDCallback cb, NANDCommandBlock* block); -s32 NANDDelete(const char*); +// NANDLogging +BOOL NANDLoggingAddMessageAsync(NANDLoggingCallback cb, s32 errorCode, const char* fmt, ...); -s32 NANDMove(const char*, const char*); +// NANDErrorMessage +BOOL NANDSetAutoErrorMessaging(BOOL show); +void __NANDPrintErrorMessage(s32 errorCode); -s32 NANDCheck(u32, u32, u32*); -s32 NANDWrite(NANDFileInfo*, const void*, u32); -s32 NANDWriteAsync(NANDFileInfo*, const void*, u32, NANDCallback, NANDCommandBlock*); - -s32 NANDSeekAsync(NANDFileInfo*, s32, s32, NANDCallback, NANDCommandBlock*); - -s32 NANDPrivateGetStatus(const char*, NANDStatus*); -s32 NANDPrivateDelete(const char*); -s32 NANDPrivateCreate(const char*, u8, u8); - -s32 NANDGetHomeDir(char[NAND_MAX_PATH]); - -s32 NANDGetStatus(const char*, NANDStatus*); - -s32 NANDSecretGetUsage(const char*, u32*, u32*); +const char* nandGetHomeDir(); +void nandGenerateAbsPath(char* absPath, const char* path); +BOOL nandIsPrivatePath(const char* path); +BOOL nandIsInitialized(void); +s32 nandConvertErrorCode(const ISFSError err); +void nandGetRelativeName(char* name, const char* path); +BOOL nandIsUnderPrivatePath(const char* path); +BOOL nandIsRelativePath(const char* path); +void nandGetParentDirectory(char* parentDir, const char* absPath); +BOOL nandIsAbsolutePath(const char* path); #ifdef __cplusplus } diff --git a/include/revolution/os.h b/include/revolution/os.h index 2ae31d5c5c..62603a97aa 100644 --- a/include/revolution/os.h +++ b/include/revolution/os.h @@ -46,6 +46,7 @@ typedef u32 OSTick; #include #include #include +#include // private macro, maybe shouldn't be defined here? #define OFFSET(addr, align) (((u32)(addr) & ((align)-1))) @@ -68,16 +69,29 @@ OSThread* __OSCurrentThread AT_ADDRESS(OS_BASE_CACHED | 0x00E4); u32 __OSSimulatedMemSize AT_ADDRESS(OS_BASE_CACHED | 0x00F0); u32 __OSBusClock AT_ADDRESS(OS_BASE_CACHED | 0x00F8); u32 __OSCoreClock AT_ADDRESS(OS_BASE_CACHED | 0x00FC); -volatile u16 __OSDeviceCode AT_ADDRESS(OS_BASE_CACHED | 0x30E6); +vu16 __OSDeviceCode AT_ADDRESS(OS_BASE_CACHED | 0x30E6); +vu8 __OSLockedFlag AT_ADDRESS(OS_BASE_CACHED | 0x3187); u16 __OSWirelessPadFixMode AT_ADDRESS(OS_BASE_CACHED | 0x30E0); +vu32 __OSLaunchPartitionType AT_ADDRESS(OS_BASE_CACHED | 0x3194); +vu8 __OSDeviceCheckCode AT_ADDRESS(OS_BASE_CACHED | 0x319C); // unknowns OSThread* __gUnkThread1 AT_ADDRESS(OS_BASE_CACHED | 0x00D8); int __gUnknown800030C0[2] AT_ADDRESS(OS_BASE_CACHED | 0x30C0); u8 __gUnknown800030E3 AT_ADDRESS(OS_BASE_CACHED | 0x30E3); #else -#define __OSBusClock (*(u32 *)(OS_BASE_CACHED | 0x00F8)) -#define __OSCoreClock (*(u32 *)(OS_BASE_CACHED | 0x00FC)) +#define __OSPhysicalMemSize (*(u32*)(OS_BASE_CACHED | 0x0028)) +#define __OSTVMode (*(volatile int*)(OS_BASE_CACHED | 0x00CC)) +#define __OSActiveThreadQueue (*(OSThreadQueue*)(OS_BASE_CACHED | 0x00DC)) +#define __OSCurrentThread ((OSThread*)(OS_BASE_CACHED | 0x00E4)) +#define __OSSimulatedMemSize (*(u32*)(OS_BASE_CACHED | 0x00F0)) +#define __OSBusClock (*(u32*)(OS_BASE_CACHED | 0x00F8)) +#define __OSCoreClock (*(u32*)(OS_BASE_CACHED | 0x00FC)) +#define __OSDeviceCode (*(vu16*)(OS_BASE_CACHED | 0x30E6)) +#define __OSLockedFlag (*(vu8*)(OS_BASE_CACHED | 0x3187)) +#define __OSWirelessPadFixMode (*(u16*)(OS_BASE_CACHED | 0x30E0)) +#define __OSLaunchPartitionType (*(vu32*)(OS_BASE_CACHED | 0x3194)) +#define __OSDeviceCheckCode (*(vu8*)(OS_BASE_CACHED | 0x319C)) #endif #define OS_BUS_CLOCK __OSBusClock diff --git a/include/revolution/os/OSNet.h b/include/revolution/os/OSNet.h new file mode 100644 index 0000000000..685d82696b --- /dev/null +++ b/include/revolution/os/OSNet.h @@ -0,0 +1,29 @@ +#ifndef _REVOLUTION_OSNET_H_ +#define _REVOLUTION_OSNET_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum NWC24Err { + NWC24_OK = 0, +} NWC24Err; + +NWC24Err NWC24iPrepareShutdown(void); +NWC24Err NWC24iSynchronizeRtcCounter(BOOL); +NWC24Err NWC24iOpenResourceManager_(const char* callerName, const char* path, IOSFd* fd, u32 flags); +NWC24Err NWC24SuspendScheduler(void); +NWC24Err NWC24iSetRtcCounter_(int rtc, BOOL); +NWC24Err NWC24iIoctlResourceManager_(const char* callerName, IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen); +NWC24Err NWC24iCloseResourceManager_(const char* callerName, IOSFd); +NWC24Err NWC24iRequestShutdown(u32 event, s32* result); +NWC24Err NWC24iIoctlResourceManagerAsync_(const char* callerName, IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen, void* cbArg); +BOOL NWC24iIsAsyncRequestPending_(void); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/include/revolution/os/OSPlayRecord.h b/include/revolution/os/OSPlayRecord.h index 1cbfb15ee5..90ffde13df 100644 --- a/include/revolution/os/OSPlayRecord.h +++ b/include/revolution/os/OSPlayRecord.h @@ -3,6 +3,10 @@ #include +#ifdef __cplusplus +extern "C" { +#endif + typedef struct { u32 checkSum; u16 titleName[2][21]; @@ -16,4 +20,8 @@ typedef struct { void __OSStartPlayRecord(void); void __OSStopPlayRecord(void); +#ifdef __cplusplus +} +#endif + #endif // OSPLAYRECORD_H diff --git a/include/revolution/os/OSReset.h b/include/revolution/os/OSReset.h index 2964bb8638..5ac53552bb 100644 --- a/include/revolution/os/OSReset.h +++ b/include/revolution/os/OSReset.h @@ -17,10 +17,10 @@ typedef struct OSShutdownFunctionQueue { OSShutdownFunctionInfo* tail; } OSShutdownFunctionQueue; -typedef BOOL (*OSResetFunction)(BOOL, u32); +typedef BOOL (*OSShutdownFunction)(BOOL, u32); struct OSShutdownFunctionInfo { - OSResetFunction func; + OSShutdownFunction func; u32 priority; OSShutdownFunctionInfo* next; OSShutdownFunctionInfo* prev; diff --git a/include/revolution/private/iosresclt.h b/include/revolution/private/iosresclt.h deleted file mode 100644 index d9fbb621c1..0000000000 --- a/include/revolution/private/iosresclt.h +++ /dev/null @@ -1,9 +0,0 @@ -#pragma once - -#include -#include -#include - -typedef IOSError (*IOSIpcCb) (IOSError, void *); - -s32 IOS_Read(s32, void*, u32); diff --git a/include/revolution/private/iosrestypes.h b/include/revolution/private/iosrestypes.h index 679ed63cf7..9f7502bd1b 100644 --- a/include/revolution/private/iosrestypes.h +++ b/include/revolution/private/iosrestypes.h @@ -33,19 +33,19 @@ typedef u32 IOSResourceHandle; #define IOS_ERROR_INVALID_SIZE -23 typedef struct { - u8 *path; + u8* path; u32 flags; IOSUid uid; IOSGid gid; } IOSResourceOpen; typedef struct { - u8 *outPtr; + u8* outPtr; u32 outLen; } IOSResourceRead; typedef struct { - u8 *inPtr; + u8* inPtr; u32 inLen; } IOSResourceWrite; @@ -56,14 +56,14 @@ typedef struct { typedef struct { u32 cmd; - u8 *inPtr; + u8* inPtr; u32 inLen; - u8 *outPtr; + u8* outPtr; u32 outLen; } IOSResourceIoctl; typedef struct { - u8 *base; + u8* base; u32 length; } IOSIoVector; @@ -71,7 +71,7 @@ typedef struct { u32 cmd; u32 readCount; u32 writeCount; - IOSIoVector *vector; + IOSIoVector* vector; } IOSResourceIoctlv; typedef struct { diff --git a/src/revolution/dvd/__dvd.h b/src/revolution/dvd/__dvd.h index 6443d85b68..c0c6cb8452 100644 --- a/src/revolution/dvd/__dvd.h +++ b/src/revolution/dvd/__dvd.h @@ -1,8 +1,8 @@ -#ifndef _DOLPHIN_DVD_INTERNAL_H_ -#define _DOLPHIN_DVD_INTERNAL_H_ +#ifndef _REVOLUTION_DVD_INTERNAL_H_ +#define _REVOLUTION_DVD_INTERNAL_H_ -#include -#include +#include +#include #ifdef __cplusplus extern "C" { @@ -11,17 +11,21 @@ extern "C" { // DVD DVDCommandChecker __DVDSetOptionalCommandChecker(DVDCommandChecker func); void __DVDSetImmCommand(u32 command); -void __DVDSetDmaCommand(u32 command); -void* __DVDGetIssueCommandAddr(void); void __DVDAudioBufferConfig(DVDCommandBlock* block, u32 enable, u32 size, DVDCBCallback callback); -void __DVDPrepareResetAsync(DVDCBCallback callback); int __DVDTestAlarm(const OSAlarm* alarm); +BOOL __DVDLowBreak(void); +u32 __DVDGetCoverStatus(void); +void __DVDPrepareReset(void); + +extern vu32 __DVDLayoutFormat; // DVD ERROR -void __DVDStoreErrorCode(u32 error); +void __DVDStoreErrorCode(u32 error, DVDCBCallback callback); +BOOL __DVDCheckDevice(void); // DVD FATAL void __DVDPrintFatalMessage(void); +void __DVDShowFatalMessage(void); // DVD FS extern OSThreadQueue __DVDThreadQueue; @@ -29,10 +33,7 @@ extern u32 __DVDLongFileNameFlag; void __DVDFSInit(void); -// DVD LOW -void __DVDInitWA(void); -void __DVDInterruptHandler(__OSInterrupt interrupt, OSContext* context); -void __DVDLowSetWAType(u32 type, s32 seekLoc); +// DVD BROADWAY int __DVDLowTestAlarm(const OSAlarm* alarm); // DVD QUEUE @@ -42,15 +43,10 @@ DVDCommandBlock* __DVDPopWaitingQueue(void); int __DVDCheckWaitingQueue(void); int __DVDDequeueWaitingQueue(DVDCommandBlock* block); int __DVDIsBlockInWaitingQueue(DVDCommandBlock* block); - -// FST LOAD -void __fstLoad(void); - -// unsorted -u32 __DVDGetCoverStatus(void); +DVDCommandBlock* __DVDGetNextWaitingQueue(void); #ifdef __cplusplus } #endif -#endif // _DOLPHIN_DVD_INTERNAL_H_ +#endif // _REVOLUTION_DVD_INTERNAL_H_ diff --git a/src/revolution/dvd/dvd.c b/src/revolution/dvd/dvd.c new file mode 100644 index 0000000000..d000b71429 --- /dev/null +++ b/src/revolution/dvd/dvd.c @@ -0,0 +1,2553 @@ +#include +#include +#include +#include + +#include "os/__os.h" +#include "__dvd.h" + +// externs +extern DVDErrorInfo __ErrorInfo; + +#ifdef SDK_AUG2010 +#define BUILD_DATE "Aug 23 2010" +#if DEBUG +#define BUILD_TIME "17:24:50" +#else +#define BUILD_TIME "17:33:06" +#endif +#elif SDK_SEP2006 +#define BUILD_DATE "Sep 21 2006" +#define BUILD_TIME "14:32:13" +#endif + +#ifdef SDK_AUG2010 +#if DEBUG +const char* __DVDVersion = "<< RVL_SDK - DVD \tdebug build: "BUILD_DATE" "BUILD_TIME" (0x4302_145) >>"; +#else +const char* __DVDVersion = "<< RVL_SDK - DVD \trelease build: "BUILD_DATE" "BUILD_TIME" (0x4302_145) >>"; +#endif +#elif SDK_SEP2006 +const char* __DVDVersion = "<< RVL_SDK - DVD \trelease build: "BUILD_DATE" "BUILD_TIME" (0x4200_60422) >>"; +#endif + +typedef void (*stateFunc)(DVDCommandBlock* block); +stateFunc LastState; + +static DVDCommandBlock* executing; +static DVDDiskID* IDShouldBe; +static OSBootInfo* bootInfo; +static vu32 CurrCommand; +static void (*CancelCallback)(s32, DVDCommandBlock*); +static vu32 CancelLastError; +static u32 LastError; +static BOOL ResetRequired; +static u32 MotorState; +static volatile OSTime LastResetEnd; +static u32 __DVDNumTmdBytes ATTRIBUTE_ALIGN(32); +static DVDGameTOC* GameToc; +static DVDPartitionInfo* PartInfo; +static DVDPartitionInfo* BootGameInfo; +static volatile BOOL Prepared; +static vu32 __BS2DVDLowIntType; +static int DVDInitialized; +vu32 __DVDLayoutFormat; +static volatile BOOL PreparingCover; +static vu32 ChangedDisc; +static vu32 MotorStopped; +static vu32 WaitingForCoverClose; +static vu32 WaitingForCoverOpen; +static vu32 Breaking; +static BOOL FirstTimeInBootrom; +static vs32 NumInternalRetry; +static vu32 ResumeFromHere; +static vu32 Canceling; +static BOOL FatalErrorFlag; +static volatile BOOL PausingFlag; +static volatile BOOL PauseFlag; + +static BOOL autoInvalidation = TRUE; +static int CancelAllSyncComplete; +volatile u32 CommandInfoCounter = 0; + +static void defaultOptionalCommandChecker(DVDCommandBlock*, DVDCommandCheckerCallback); +static DVDCommandChecker checkOptionalCommand = defaultOptionalCommandChecker; + + +static DVDBB2 BB2; +static DVDDiskID CurrDiskID; +static DVDCommandBlock DummyCommandBlock; +static OSAlarm ResetAlarm; +static OSAlarm CoverAlarm; + +static u8 __DVDGameTocBuffer[OSRoundUp32B(sizeof(DVDGameTOC) * 4)] ATTRIBUTE_ALIGN(32); +static u8 __DVDPartInfoBuffer[OSRoundUp32B(sizeof(DVDPartitionInfo) * 4)] ATTRIBUTE_ALIGN(32); +static u8 __DVDTmdBuffer[OSRoundUp32B(sizeof(ESTitleMeta))] ATTRIBUTE_ALIGN(32); +static u8 __DVDTicketViewBuffer[OSRoundUp32B(sizeof(ESTicketView))] ATTRIBUTE_ALIGN(32); + +static OSAlarm FatalAlarm; +DVDCommandBlock __DVDStopMotorCommandBlock; + +// prototypes +static void stateDownRotation(DVDCommandBlock*); +static void stateReadingTOC(DVDCommandBlock*); +static void stateReadingPartitionInfo(DVDCommandBlock* block); +static void stateOpenPartition(DVDCommandBlock* block); +static void stateOpenPartition2(DVDCommandBlock* block); +static void stateReadingFST(); +static void cbForStateReadingFST(u32 intType); +static void cbForStateError(u32 intType); +static void stateError(u32 error); +static void stateTimeout(); +static void stateSecurityError(void); +static void stateGettingError(); +static u32 CategorizeError(u32 error); +static BOOL CheckCancel(u32 resume); +static void cbForStateGettingError(u32 intType); +static void cbForUnrecoveredError(u32 intType); +static void cbForUnrecoveredErrorRetry(u32 intType); +static void stateGoToRetry(); +static void cbForStateGoToRetry(u32 intType); +static void stateCheckID(); +static void stateCheckID3(); +static void stateCheckID2a(); +static void stateCheckID2(DVDCommandBlock* block); +static void cbForStateCheckID1(u32 intType); +static void cbForStateCheckID2(u32 intType); +static void cbForStateCheckID3(u32 intType); +static void cbForStateCheckID2a(u32 intType); +static void AlarmHandler(OSAlarm* alarm, OSContext* context); +static void stateCoverClosed(); +static void stateCoverClosed_CMD(DVDCommandBlock* command); +static void cbForStateCoverClosed(u32 intType); +static void stateMotorStopped(); +static void cbForStateMotorStopped(u32 intType); +static void stateReady(); +static void stateBusy(DVDCommandBlock* block); +static BOOL IsImmCommandWithResult(u32 command); +static int IsDmaCommand(u32 command); +static void cbForStateBusy(u32 intType); +static int issueCommand(s32 prio, DVDCommandBlock* block); +static void cbForChangeDiskSync(s32 result, DVDCommandBlock* block); +static void cbForStopMotorSync(s32 result, DVDCommandBlock* block); +static void cbForInquirySync(s32 result, DVDCommandBlock* block); +static void cbForCancelSync(s32 result, DVDCommandBlock* block); +static void cbForCancelAllSync(s32 result, DVDCommandBlock* block); +static void cbForStateOpenPartition(u32 intType); +static void cbForStateReset(u32 intType); +static void cbForStateDownRotation(u32 intType); + +DECL_WEAK void StampCommand(u32 command, u32 offset, u32 length) { + BOOL enabled = OSDisableInterrupts(); + + if (CommandInfoCounter >= 5) { + CommandInfoCounter = 0; + } + + __ErrorInfo.lastCommand[CommandInfoCounter].command = command; + __ErrorInfo.lastCommand[CommandInfoCounter].offset = offset; + __ErrorInfo.lastCommand[CommandInfoCounter].length = length; + __ErrorInfo.lastCommand[CommandInfoCounter].tick = OSGetTick(); + CommandInfoCounter++; + OSRestoreInterrupts(enabled); +} + +void StampIntType(u32 intType) { + BOOL enabled = OSDisableInterrupts(); + + if (CommandInfoCounter == 0) { + __ErrorInfo.lastCommand[4].intType = intType; + } else { + __ErrorInfo.lastCommand[CommandInfoCounter - 1].intType = intType; + } + + OSRestoreInterrupts(enabled); +} + +static void defaultOptionalCommandChecker(DVDCommandBlock*, DVDCommandCheckerCallback) {} + +DVDCommandChecker __DVDSetOptionalCommandChecker(DVDCommandChecker func) { + DVDCommandChecker old = checkOptionalCommand; + checkOptionalCommand = func; + return checkOptionalCommand; +} + +void DVDInit(void) { + DVDDiskID* id; + s32 rv; + + if (!DVDInitialized) { + OSRegisterVersion(__DVDVersion); + DVDInitialized = TRUE; + DVDLowInit(); + + if (!__OSInIPL && __OSLockedFlag == 0x80) { + rv = ESP_InitLib(); + + if (rv == 0) { + rv = ESP_DiGetTicketView(NULL, (ESTicketView*)__DVDTicketViewBuffer); + } + + if (rv == 0) { + rv = ESP_DiGetTmd(NULL, &__DVDNumTmdBytes); + } + + if (rv == 0) { + rv = ESP_DiGetTmd((ESTitleMeta*)__DVDTmdBuffer, &__DVDNumTmdBytes); + } + + ESP_CloseLib(); + } + + __DVDFSInit(); + __DVDClearWaitingQueue(); + + MotorState = 0; + bootInfo = (void*)OSPhysicalToCached(0); + IDShouldBe = &bootInfo->DVDDiskID; + + OSInitThreadQueue(&__DVDThreadQueue); + + DVDLowUnmaskStatusInterrupts(); + DVDLowMaskCoverInterrupt(); + + if (bootInfo->magic == 0xE5207C22) { + + } else if (bootInfo->magic == 0x0D15EA5E) { + + } else { + FirstTimeInBootrom = TRUE; + } + + memset(&__ErrorInfo, 0, sizeof(DVDErrorInfo)); + id = (DVDDiskID*)OSPhysicalToCached(0); + memcpy(__ErrorInfo.gameName, id->gameName, 4); + __ErrorInfo.diskNumber = id->diskNumber; + __ErrorInfo.gameVersion = id->gameVersion; + __DVDLayoutFormat = 0; + DVDSetAutoFatalMessaging(TRUE); + } +} + +static void stateReadingFST() { + LastState = (stateFunc)stateReadingFST; + ASSERTLINE(1084, ((u32)(bootInfo->FSTLocation) & (32 - 1)) == 0); + DVD_ASSERTMSGLINE(1093, bootInfo->FSTMaxLength >= BB2.FSTLength, "DVDChangeDisk(): FST in the new disc is too big. "); + DVDLowClearCoverInterrupt(NULL); + StampCommand(1, BB2.FSTPosition >> __DVDLayoutFormat, OSRoundUp32B(BB2.FSTLength << (~__DVDLayoutFormat & 2))); + DVDLowRead(bootInfo->FSTLocation, OSRoundUp32B(BB2.FSTLength << (~__DVDLayoutFormat & 2)), BB2.FSTPosition >> __DVDLayoutFormat, cbForStateReadingFST); +} + +static u32 DmaCommand[1] = {0xFFFFFFFF}; + +static void cbForStateReadingFST(u32 intType) { + DVDCommandBlock* finished; + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(1125, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & DVD_INTTYPE_TC) { + ASSERTLINE(1130, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + + __DVDFSInit(); + finished = executing; + executing = &DummyCommandBlock; + finished->state = DVD_STATE_END; + + if (finished->callback) { + finished->callback(0, finished); + } + + stateReady(); + return; + } + + ASSERTLINE(1157, intType == DVD_INTTYPE_DE); + stateGettingError(); +} + +static void FatalAlarmHandler(OSAlarm* alarm, OSContext* context) { + __DVDPrintFatalMessage(); +} + +static void cbForStateError(u32 intType) { + DVDCommandBlock* finished; + + if (__DVDGetAutoFatalMessaging()) { + OSCreateAlarm(&FatalAlarm); + OSSetAlarm(&FatalAlarm, 1, FatalAlarmHandler); + } else { + executing->state = -1; + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + FatalErrorFlag = TRUE; + finished = executing; + executing = &DummyCommandBlock; + + if (finished->callback) { + (finished->callback)(-1, finished); + } + + if (Canceling) { + Canceling = FALSE; + if (CancelCallback) + (CancelCallback)(0, finished); + } + + stateReady(); + } +} + +static void cbForStoreErrorCode1(s32 result, DVDCommandBlock* block) { + DVDLowStopMotor(FALSE, FALSE, cbForStateError); +} + +static void stateError(u32 error) { + __DVDStoreErrorCode(error, cbForStoreErrorCode1); +} + +static void cbForStoreErrorCode2(s32 result, DVDCommandBlock* block) { + DVDLowSetSpinupFlag(0); + DVDLowReset(cbForStateError); + ResetRequired = FALSE; + ResumeFromHere = 0; +} + +static void stateTimeout() { + __DVDStoreErrorCode(0x01234568, cbForStoreErrorCode2); +} + +static void stateSecurityError(void) { + __DVDStoreErrorCode(0x1234569, cbForStoreErrorCode2); +} + +static void stateGettingError() { + StampCommand(39, 0, 0); + DVDLowRequestError(cbForStateGettingError); +} + +static u32 CategorizeError(u32 error) { + if (error == 0x20400) { + LastError = error; + return 1; + } + + error &= 0x00FFFFFF; + if (error == 0x62800 || error == 0x23A00 || error == 0x53000 || error == 0xB5A01) { + return 0; + } + + if (error == 0x52000 && (executing->command == 37 || LastState == stateDownRotation)) { + return 0; + } + + NumInternalRetry++; + if (NumInternalRetry == 2) { + if (error == LastError) { + LastError = error; + return 1; + } + LastError = error; + return 2; + } + + LastError = error; + + if (error == 0x31100 || executing->command == DVD_COMMAND_READID) { + return 2; + } + + return 3; +} + +static BOOL CheckCancel(u32 resume) { + DVDCommandBlock* finished; + + if (Canceling) { + ResumeFromHere = resume; + Canceling = FALSE; + + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 10; + + if (finished->callback) + (*finished->callback)(-3, finished); + + if (CancelCallback) + (CancelCallback)(0, finished); + + stateReady(); + return TRUE; + } + + return FALSE; +} + +static void cbForStoreErrorCode3(s32 result, DVDCommandBlock* block) { + stateGoToRetry(); +} + +static void cbForStateGettingError(u32 intType) { + u32 error; + u32 status; + u32 errorCategory; + u32 resume; + + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + if (intType & 2) { + stateError(0x1234567); + return; + } + + ASSERTLINE(1474, intType == DVD_INTTYPE_TC); + + error = DVDLowGetImmBufferReg(); + status = error & 0xff000000; + + errorCategory = CategorizeError(error); + + if (errorCategory == 1) { + stateError(error); + return; + } + + if (errorCategory == 2 || errorCategory == 3) { + resume = 0; + } else { + if (status == 0x1000000) { + resume = 4; + } else if (status == 0x2000000) { + resume = 6; + } else if (status == 0x3000000) { + resume = 3; + } else if (status == 0) { + if (error == 0x53000) { + resume = 1; + } + else { + resume = 5; + } + } else { + resume = 5; + } + } + + if (CheckCancel(resume)) + return; + + if (errorCategory == 2) { + __DVDStoreErrorCode(error, cbForStoreErrorCode3); + return; + } + + if (errorCategory == 3) { + if ((error & 0x00ffffff) == 0x00031100) { + StampCommand(2, executing->offset, 0); + DVDLowSeek(executing->offset, cbForUnrecoveredError); + } else { + LastState(executing); + } + return; + } + + if (status == 0x01000000) { + executing->state = 5; + stateMotorStopped(); + return; + } else if (status == 0x02000000) { + executing->state = 3; + stateCoverClosed(); + return; + } else if (status == 0x03000000) { + executing->state = 4; + stateMotorStopped(); + return; + } else if (status == 0) { + if (error == 0x53000) { + StampCommand(16, 0, 0); + DVDLowStopMotor(FALSE, FALSE, cbForStateCheckID1); + return; + } else { + stateError(0x1234567); + return; + } + } else { + stateError(0x1234567); + return; + } +} + +static void cbForUnrecoveredError(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + if (intType & 1) { + stateGoToRetry(); + return; + } + + ASSERTLINE(1606, intType == DVD_INTTYPE_DE); + StampCommand(39, 0, 0); + DVDLowRequestError(cbForUnrecoveredErrorRetry); +} + +static void cbForUnrecoveredErrorRetry(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + if (intType & 2) { + stateError(0x1234567); + } else { + stateError(DVDLowGetImmBufferReg()); + } +} + +static void stateGoToRetry() { + StampCommand(16, 0, 0); + DVDLowStopMotor(FALSE, FALSE, cbForStateGoToRetry); +} + +static void cbForStateGoToRetry(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + if (intType & 2) { + stateError(0x1234567); + return; + } + + ASSERTLINE(1673, intType == DVD_INTTYPE_TC); + NumInternalRetry = 0; + + if (CurrCommand == 4 || CurrCommand == 5 || CurrCommand == 13 || CurrCommand == 33 || CurrCommand == 34 || CurrCommand == 41 || CurrCommand == 42 || CurrCommand == 15 || CurrCommand == 37) { + ResetRequired = TRUE; + } + + if (!CheckCancel(2)) { + executing->state = 11; + stateMotorStopped(); + } +} + +static void stateCheckID() { + switch(CurrCommand) { + case DVD_COMMAND_CHANGE_DISK: + ChangedDisc = FALSE; + + if (DVDCompareDiskID(&CurrDiskID, executing->id)) { + memcpy(IDShouldBe, &CurrDiskID, sizeof(DVDDiskID)); + executing->state = DVD_STATE_BUSY; + DCInvalidateRange(&BB2.bootFilePosition, 0x20); + NumInternalRetry = 0; + stateReadingTOC(executing); + } else { + StampCommand(16, 0, 0); + DVDLowStopMotor(FALSE, FALSE, cbForStateCheckID1); + } + break; + default: + if (memcmp(&CurrDiskID, IDShouldBe, sizeof(DVDDiskID)) != 0) { + StampCommand(16, 0, 0); + DVDLowStopMotor(FALSE, FALSE, cbForStateCheckID1); + } else { + NumInternalRetry = 0; + stateReadingTOC(executing); + } + break; + } +} + + +static ESTitleMeta* Tmd; + +static void cbForStateReadingTOC(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(1870, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & 1) { + ASSERTLINE(1875, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + GameToc = (DVDGameTOC*)__DVDGameTocBuffer; + stateReadingPartitionInfo(executing); + } else { + ASSERTLINE(1887, intType == DVD_INTTYPE_DE); + stateGettingError(); + } +} + +static void stateReadingTOC(DVDCommandBlock* block) { + DVDLowClearCoverInterrupt(NULL); + StampCommand(33, 0x40000 >> 2, OSRoundUp32B(sizeof(DVDGameTOC))); + DVDLowUnencryptedRead(__DVDGameTocBuffer, OSRoundUp32B(sizeof(DVDGameTOC)), 0x10000, cbForStateReadingTOC); +} + +static void cbForStateReadingPartitionInfo(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(1922, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & 1) { + s16 i; + ASSERTLINE(1929, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + PartInfo = (DVDPartitionInfo*)__DVDPartInfoBuffer; + BootGameInfo = NULL; + + if (*((u32*)OSPhysicalToCached(0x3198))) { + BootGameInfo = PartInfo; + BootGameInfo->type = *((u32*)OSPhysicalToCached(0x3194)); + BootGameInfo->gamePartition = (DVDGamePartition*)*((u32*)OSPhysicalToCached(0x3198)); + } else { + for (i = 0; i < GameToc->numGamePartitions; i++) { + if (PartInfo->type == __OSLaunchPartitionType) { + BootGameInfo = PartInfo; + } + + PartInfo++; + } + } + + if (BootGameInfo) { + switch (CurrCommand) { + case 3: + NumInternalRetry = 0; + stateOpenPartition(executing); + break; + + default: + NumInternalRetry = 0; + stateOpenPartition2(executing); + break; + } + } else { + if (!CheckCancel(1)) { + executing->state = 6; + stateMotorStopped(); + } + } + } else { + ASSERTLINE(1991, intType == DVD_INTTYPE_DE); + stateGettingError(); + } +} + +static void stateReadingPartitionInfo(DVDCommandBlock* block) { + DVDLowClearCoverInterrupt(0); + StampCommand(33, (0x40000 + OSRoundUp32B(sizeof(DVDGameTOC))) >> 2, OSRoundUp32B(sizeof(DVDPartitionInfo))); + DVDLowUnencryptedRead(__DVDPartInfoBuffer, OSRoundUp32B(sizeof(DVDPartitionInfo)), (0x40000 + OSRoundUp32B(sizeof(DVDGameTOC))) >> 2, cbForStateReadingPartitionInfo); +} + +static void cbForStateOpenPartition(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(2028, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & 1) { + ASSERTLINE(2033, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + stateCheckID2(executing); + } else { + ASSERTLINE(2043, intType == DVD_INTTYPE_DE); + stateGettingError(); + } +} + +static void stateOpenPartition(DVDCommandBlock* block) { + DVDLowClearCoverInterrupt(0); + StampCommand(34, (u32)BootGameInfo->gamePartition, 0); + + if (__OSLockedFlag == 0x80) { + DVDLowOpenPartitionWithTmdAndTicketView((u32)BootGameInfo->gamePartition, (ESTicketView*)__DVDTicketViewBuffer, __DVDNumTmdBytes, (ESTitleMeta*)__DVDTmdBuffer, 0, NULL, cbForStateOpenPartition); + } else { + DVDLowOpenPartition((u32)BootGameInfo->gamePartition, NULL, 0, 0, (ESTitleMeta*)__DVDTmdBuffer, cbForStateOpenPartition); + } +} + +static void cbForStateOpenPartition2(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(2090, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & 1) { + ASSERTLINE(2095, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + + if (!CheckCancel(0)) { + executing->state = 1; + stateBusy(executing); + } + } else { + ASSERTLINE(2109, intType == DVD_INTTYPE_DE); + stateGettingError(); + } +} + +static void stateOpenPartition2(DVDCommandBlock* block) { + DVDLowClearCoverInterrupt(0); + StampCommand(34, (u32)BootGameInfo->gamePartition, 0); + + if (__OSLockedFlag == 0x80) { + DVDLowOpenPartitionWithTmdAndTicketView((u32)BootGameInfo->gamePartition, (ESTicketView*)__DVDTicketViewBuffer, __DVDNumTmdBytes, (ESTitleMeta*)__DVDTmdBuffer, 0, NULL, cbForStateOpenPartition2); + } else { + DVDLowOpenPartition((u32)BootGameInfo->gamePartition, NULL, 0, 0, (ESTitleMeta*)__DVDTmdBuffer, cbForStateOpenPartition2); + } +} + +static void stateCheckID2(DVDCommandBlock* block) { + DVDLowClearCoverInterrupt(0); + StampCommand(1, (u32)(0x420 >> 2), OSRoundUp32B(sizeof(DVDBB2))); + DVDLowRead(&BB2, OSRoundDown32B(sizeof(DVDBB2)), (u32)(0x420 >> 2), cbForStateCheckID2); +} + +static void stateCheckID3() { + DVDLowAudioBufferConfig(IDShouldBe->streaming, 0xA, cbForStateCheckID3); +} + +static void stateCheckID2a() { + DVDLowAudioBufferConfig(IDShouldBe->streaming, 0xA, cbForStateCheckID2a); +} + +static void cbForStateCheckID2a(u32 intType) { + if (intType == 16) { + stateTimeout(); + return; + } + + ASSERTLINE(1227, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & DVD_INTTYPE_TC) { + ASSERTLINE(1232, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + stateCheckID2(executing); + return; + } + + ASSERTLINE(1243, intType == DVD_INTTYPE_DE); + stateGettingError(); +} + +static void cbForStateCheckID1(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + if (intType & DVD_INTTYPE_DE) { + stateError(0x01234567); + return; + } + + ASSERTLINE(2184, intType == DVD_INTTYPE_TC); + NumInternalRetry = 0; + + if (CheckCancel(1) == FALSE) { + executing->state = DVD_STATE_WRONG_DISK; + stateMotorStopped(); + } +} + +static void cbForStateCheckID2(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(2213, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & DVD_INTTYPE_TC) { + ASSERTLINE(2218, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + stateReadingFST(); + return; + } + + ASSERTLINE(2234, intType == DVD_INTTYPE_DE); + stateGettingError(); +} + +static void cbForStateCheckID3(u32 intType) { + if (intType == 16) { + stateTimeout(); + return; + } + + ASSERTLINE(1336, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & DVD_INTTYPE_TC) { + ASSERTLINE(1341, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + if (CheckCancel(0) == FALSE) { + executing->state = DVD_STATE_BUSY; + stateBusy(executing); + } + return; + } + + ASSERTLINE(1355, intType == DVD_INTTYPE_DE); + stateGettingError(); +} + +static void AlarmHandler(OSAlarm* alarm, OSContext* context) { + DVDReset(); + DCInvalidateRange(&CurrDiskID, sizeof(DVDDiskID)); + LastState = &stateCoverClosed_CMD; + stateCoverClosed_CMD(executing); +} + +static void stateCoverClosed() { + DVDCommandBlock* finished; + MotorState = 1; + + switch(CurrCommand) { + case DVD_COMMAND_BSREAD: + case DVD_COMMAND_READID: + case DVD_COMMAND_AUDIO_BUFFER_CONFIG: + case DVD_COMMAND_BS_CHANGE_DISK: + case 33: + case 34: + case 37: + case 41: + case 42: + __DVDClearWaitingQueue(); + finished = executing; + executing = &DummyCommandBlock; + if (finished->callback) { + finished->callback(-4, finished); + } + stateReady(); + break; + case 32: + MotorState = 0; + case 35: + case 38: + case 36: + executing->state = 1; + stateBusy(executing); + break; + case 1: + case 2: + if (__OSInIPL) { + break; + } + default: + MotorState = 0; + DVDLowSetSpinupFlag(1); + DVDLowReset(cbForStateReset); + break; + } +} + +static void ResetAlarmHandler(OSAlarm* alarm, OSContext* context) { + if (__OSDeviceCode == (u16)(0x8000 | 0x003)) { + LastState = stateDownRotation; + stateDownRotation(executing); + } else { + DCInvalidateRange(&CurrDiskID, sizeof(DVDDiskID)); + LastState = stateCoverClosed_CMD; + stateCoverClosed_CMD(executing); + } +} + +static void cbForStateReset(u32 intType) { + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(2428, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & 1) { + ASSERTLINE(2433, (intType & DVD_INTTYPE_DE) == 0); + LastResetEnd = __OSGetSystemTime(); + ResetRequired = FALSE; + ResumeFromHere = 0; + OSCreateAlarm(&ResetAlarm); + OSSetAlarm(&ResetAlarm, DVD_RESETCOVER_TIMELAG_TICKS2, ResetAlarmHandler); + } else { + ASSERTLINE(2447, intType == DVD_INTTYPE_DE); + stateGettingError(); + } +} + +static void stateDownRotation(DVDCommandBlock* block) { + DVDLowClearCoverInterrupt(0); + StampCommand(37, 0, 0); + DVDLowSetMaximumRotation(0x20000, cbForStateDownRotation); +} + +static void cbForStateDownRotation(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(2480, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & 1) { + ASSERTLINE(2485, (intType & DVD_INTTYPE_DE) == 0); + DCInvalidateRange(&CurrDiskID, sizeof(DVDDiskID)); + LastState = stateCoverClosed_CMD; + stateCoverClosed_CMD(executing); + } else { + ASSERTLINE(2494, intType == DVD_INTTYPE_DE); + stateGettingError(); + } +} + +static void stateCoverClosed_CMD(DVDCommandBlock* command) { + if (CurrCommand == 40) { + NumInternalRetry = 0; + + if (!CheckCancel(0)) { + executing->state = 1; + stateBusy(executing); + } + } else { + DVDLowClearCoverInterrupt(0); + StampCommand(5, 0, sizeof(DVDDiskID)); + DVDLowReadDiskID(&CurrDiskID, cbForStateCoverClosed); + } +} + +static void cbForStateCoverClosed(u32 intType) { + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + ASSERTLINE(2542, (intType & DVD_INTTYPE_CVR) == 0); + + if (intType & DVD_INTTYPE_TC) { + ASSERTLINE(2547, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + stateCheckID(); + return; + } + + ASSERTLINE(2559, intType == DVD_INTTYPE_DE); + stateGettingError(); +} + +static void cbForPrepareCoverRegister(u32 intType) { + PreparingCover = FALSE; + + if (WaitingForCoverClose) { + if (!(DVDLowGetCoverRegister() & 1)) { + OSCancelAlarm(&CoverAlarm); + WaitingForCoverClose = FALSE; + cbForStateMotorStopped(4); + } + return; + } + + if (DVDLowGetCoverRegister() & 1) { + WaitingForCoverOpen = FALSE; + WaitingForCoverClose = TRUE; + + if (MotorState == 2) { + executing->state = 12; + } + else { + executing->state = 5; + } + } else if (DVDLowGetCoverRegister() & 4) { + OSCancelAlarm(&CoverAlarm); + WaitingForCoverOpen = FALSE; + DVDLowClearCoverInterrupt(0); + cbForStateMotorStopped(4); + } +} + +static void CoverAlarmHandler(OSAlarm* alarm, OSContext* context) { + if (!PreparingCover) { + PreparingCover = TRUE; + DVDLowPrepareCoverRegister(cbForPrepareCoverRegister); + } +} + +static void stateMotorStopped() { + MotorState = 1; + + if (WaitingForCoverOpen || WaitingForCoverClose) { + return; + } + + WaitingForCoverOpen = TRUE; + OSCreateAlarm(&CoverAlarm); + OSSetPeriodicAlarm(&CoverAlarm, OSGetTick(), OSMillisecondsToTicks(100), CoverAlarmHandler); +} + +static void cbForStateMotorStopped(u32 intType) { + ASSERTLINE(2685, intType == DVD_INTTYPE_CVR); + WaitingForCoverClose = FALSE; + + if (CurrCommand == 3) { + ChangedDisc = TRUE; + } + + if (MotorState == 2) { + if (executing) { + executing->state = 12; + } + + return; + } + + DVDLowMaskCoverInterrupt(); + + if (executing) { + executing->state = 3; + stateCoverClosed(); + } else { + ResumeFromHere = 7; + } +} + +static void stateReady() { + DVDCommandBlock* finished; + + if (PauseFlag != 0) { + PausingFlag = 1; + executing = NULL; + return; + } + + if (__DVDCheckWaitingQueue() == 0) { + executing = NULL; + return; + } + + executing = __DVDPopWaitingQueue(); + + if (FatalErrorFlag) { + executing->state = DVD_STATE_FATAL_ERROR; + finished = executing; + executing = &DummyCommandBlock; + if (finished->callback) { + (*finished->callback)(-1, finished); + } + + stateReady(); + return; + } + + CurrCommand = executing->command; + if (CurrCommand == 32 || CurrCommand == 14 || CurrCommand == 35) { + ResumeFromHere = 0; + } + + if (ResumeFromHere != 0) { + switch (ResumeFromHere) { + case 2: + executing->state = DVD_STATE_RETRY; + stateMotorStopped(); + break; + case 3: + executing->state = DVD_STATE_NO_DISK; + stateMotorStopped(); + break; + case 4: + executing->state = DVD_STATE_COVER_OPEN; + stateMotorStopped(); + break; + case 1: + case 6: + case 7: + executing->state = DVD_STATE_COVER_CLOSED; + stateCoverClosed(); + break; + case 5: + stateError(CancelLastError); + break; + } + + ResumeFromHere = 0; + return; + } + + switch (MotorState) { + case 2: + if (MotorStopped) { + executing->state = 12; + } + else { + executing->state = 3; + stateCoverClosed(); + } + break; + case 0: + executing->state = 1; + stateBusy(executing); + break; + case 1: + default: + stateCoverClosed(); + break; + } +} + +static void stateBusy(DVDCommandBlock* block) { + DVDCommandBlock* finished; + LastState = stateBusy; + + switch (block->command) { + case 5: + case 2: + case 3: + case 15: + case 14: + case 7: + case 8: + case 9: + case 10: + case 11: + case 12: + case 13: + case 16: + case 34: + case 37: + case 41: + case 42: + StampCommand(block->command, block->offset, block->length); + break; + default: + break; + } + + switch (block->command) { + case 5: + DVDLowClearCoverInterrupt(0); + block->currTransferSize = sizeof(DVDDiskID); + DVDLowReadDiskID(block->addr, cbForStateBusy); + break; + case 1: + case 4: + if (block->length == 0) { + finished = executing; + executing = &DummyCommandBlock; + finished->state = 0; + + if (finished->callback) { + (finished->callback)(0, finished); + } + + stateReady(); + } else { + DVDLowClearCoverInterrupt(0); + block->currTransferSize = (block->length - block->transferredSize > 0x80000) ? 0x80000 : (block->length - block->transferredSize); + StampCommand(block->command, ((block->offset) + (block->transferredSize >> 2)), block->currTransferSize); + DVDLowRead((void*)((u8*)block->addr + block->transferredSize), block->currTransferSize, ((block->offset) + (block->transferredSize >> 2)), cbForStateBusy); + } + break; + case 2: + DVDLowClearCoverInterrupt(0); + DVDLowSeek(block->offset, cbForStateBusy); + break; + case 3: + DVDLowStopMotor(FALSE, FALSE, cbForStateBusy); + break; + case 15: + DVDLowStopMotor(FALSE, FALSE, cbForStateBusy); + break; + case 13: + DVDLowClearCoverInterrupt(0); + DVDLowAudioBufferConfig(block->offset, block->length, cbForStateBusy); + break; + case 14: + DVDLowClearCoverInterrupt(0); + block->currTransferSize = sizeof(DVDDriveInfo); + DVDLowInquiry(block->addr, cbForStateBusy); + break; + case 16: + DVDLowClearCoverInterrupt(0); + DVDLowStopMotor(FALSE, FALSE, cbForStateBusy); + break; + case 32: + DVDLowSetSpinupFlag(1); + DVDLowReset(cbForStateBusy); + break; + case 33: + if (block->length == 0) { + finished = executing; + executing = &DummyCommandBlock; + finished->state = 0; + + if (finished->callback) { + (finished->callback)(0, finished); + } + + stateReady(); + } else { + DVDLowClearCoverInterrupt(0); + block->currTransferSize = (block->length - block->transferredSize > 0x80000) ? 0x80000 : (block->length - block->transferredSize); + StampCommand(block->command, ((block->offset) + (block->transferredSize >> 2)), block->currTransferSize); + DVDLowUnencryptedRead((void*)((u8*)block->addr + block->transferredSize), block->currTransferSize, ((block->offset) + (block->transferredSize >> 2)), cbForStateBusy); + } + break; + case 34: + DVDLowClearCoverInterrupt(0); + DVDLowOpenPartition(block->offset, NULL, 0, 0, (ESTitleMeta*)block->addr, cbForStateBusy); + break; + case 35: + DVDLowClearCoverInterrupt(0); + DVDLowClosePartition(cbForStateBusy); + break; + case 38: + DVDLowPrepareCoverRegister(cbForStateBusy); + break; + case 36: + DVDLowPrepareCoverRegister(cbForStateBusy); + break; + case 37: + DVDLowClearCoverInterrupt(0); + DVDLowSetMaximumRotation(0x20000, cbForStateBusy); + break; + case 40: + DVDLowClearCoverInterrupt(0); + block->addr = &CurrDiskID; + block->currTransferSize = sizeof(DVDDiskID); + DVDLowReadDiskID(block->addr, cbForStateBusy); + break; + case 41: + { + DVDPartitionParams* params; + DVDLowClearCoverInterrupt(0); + params = block->addr; + + if (!params->numTmdBytes && !params->numCertBytes) { + DVDLowGetNoDiscBufferSizes(block->offset, ¶ms->numTmdBytes, ¶ms->numCertBytes, cbForStateBusy); + } else { + DVDLowGetNoDiscOpenPartitionParams(block->offset, ¶ms->ticket, ¶ms->numTmdBytes, + ¶ms->tmd, ¶ms->numCertBytes, params->certificates, + ¶ms->dataWordOffset, params->h3Hash, cbForStateBusy); + } + break; + } + case 42: + { + DVDPartitionParams* params; + DVDLowClearCoverInterrupt(0); + params = block->addr; + DVDLowOpenPartitionWithTmdAndTicketView(block->offset, ¶ms->ticketView, params->numTmdBytes, ¶ms->tmd, + params->numCertBytes, params->certificates, cbForStateBusy); + break; + } + default: + checkOptionalCommand(block, cbForStateBusy); + break; + } +} + +static u32 ImmCommand[3] = {0xFFFFFFFF, 0xFFFFFFFF, 0xFFFFFFFF}; + +void __DVDSetImmCommand(u32 command) { + static u32 immCount; + ASSERTLINE(1790, immCount < sizeof(ImmCommand)/sizeof(ImmCommand[0])); + ImmCommand[immCount++] = command; +} + +void __DVDSetDmaCommand(u32 command) { + static u32 dmaCount; + ASSERTLINE(1798, dmaCount < sizeof(DmaCommand)/sizeof(DmaCommand[0])); + DmaCommand[dmaCount++] = command; +} + +static BOOL IsImmCommandWithResult(u32 command) { + u32 i; + + if (command == 9 || command == 10 || command == 11 || command == 12) { + return 1; + } + + for (i = 0; i < 3; i++) { + if (command == ImmCommand[i]) { + return TRUE; + } + } + + return FALSE; +} + +static int IsDmaCommand(u32 command) { + u32 i; + + if (command == 1 || command == 4 || command == 5 || command == 33 || command == 14) { + return 1; + } + + for (i = 0; i < 1; i++) { + if (command == DmaCommand[i]) { + return TRUE; + } + } + + return FALSE; +} + +static void cbForStateBusy(u32 intType) { + DVDCommandBlock* finished; + + StampIntType(intType); + + if (intType == 16) { + stateTimeout(); + return; + } + + if (intType == 32) { + stateSecurityError(); + return; + } + + if ((CurrCommand == DVD_COMMAND_CHANGE_DISK) || (CurrCommand == DVD_COMMAND_BS_CHANGE_DISK)) { + if (intType & DVD_INTTYPE_DE) { + stateError(0x01234567); + return; + } + + ASSERTLINE(3278, intType == DVD_INTTYPE_TC); + NumInternalRetry = 0; + + if (CurrCommand == DVD_COMMAND_BS_CHANGE_DISK) { + ResetRequired = 1; + } + + if (CheckCancel(7)) { + return; + } + + if (MotorState != 2) { + executing->state = 7; + stateMotorStopped(); + } + return; + } + + ASSERTLINE(3301, (intType & DVD_INTTYPE_CVR) == 0); + + if (IsDmaCommand(CurrCommand)) { + executing->transferredSize += (intType & (8 | 1)) ? executing->currTransferSize : 0; + } + + if (Breaking) { + Breaking = FALSE; + Canceling = 0; + finished = executing; + executing = &DummyCommandBlock; + finished->state = DVD_STATE_CANCELED; + + if (finished->callback) { + finished->callback(-3, finished); + } + + if (CancelCallback) { + CancelCallback(0, finished); + } + + stateReady(); + return; + } + + if (intType & 1) { + ASSERTLINE(3345, (intType & DVD_INTTYPE_DE) == 0); + NumInternalRetry = 0; + + if (CurrCommand == 0x10) { + if (executing->offset) { + MotorState = 2; + } else { + MotorState = 1; + } + + finished = executing; + executing = &DummyCommandBlock; + finished->state = 0; + + if (finished->callback != 0) { + (*finished->callback)(0, finished); + } + + stateReady(); + return; + } + + if (CurrCommand == 32) { + LastResetEnd = __OSGetSystemTime(); + + ResetRequired = FALSE; + ResumeFromHere = 0; + + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)(0, finished); + } + + stateReady(); + return; + } + + if (CheckCancel(0) != FALSE) { + return; + } + + if (CurrCommand == 38) { + s32 retVal; + u32 coverReg; + + coverReg = DVDLowGetCoverRegister(); + + if (__OSGetSystemTime() - LastResetEnd < DVD_RESETCOVER_TIMELAG_TICKS2) { + retVal = 0; + } else if (coverReg & 1) { + retVal = 1; + } else { + retVal = 2; + } + + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + finished->offset = (u32)retVal; + if (finished->callback) { + (finished->callback)(retVal, finished); + } + + stateReady(); + return; + } + + if (CurrCommand == 36) { + s32 retVal; + u32 coverReg; + + coverReg = DVDLowGetCoverRegister(); + if ((((u32)(coverReg) & 0x00000004) >> 2) || (coverReg & 1)) { + retVal = FALSE; + } else { + if (ResumeFromHere != 0) { + retVal = FALSE; + } + else { + retVal = TRUE; + } + } + + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + finished->offset = (u32)retVal; + + if (finished->callback) { + (finished->callback)(retVal, finished); + } + + stateReady(); + return; + } + + if (CurrCommand == 40) { + if (DVDCompareDiskID(&CurrDiskID, executing->id)) { + memcpy(IDShouldBe, &CurrDiskID, sizeof(DVDDiskID)); + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + finished->offset = (u32)TRUE; + if (finished->callback) { + (finished->callback)(TRUE, finished); + } + + NumInternalRetry = 0; + + stateReady(); + return; + } else { + StampCommand(16, 0, 0); + DVDLowStopMotor(FALSE, FALSE, cbForStateCheckID1); + return; + } + } + + if (CurrCommand == 41) { + DVDPartitionParams* params; + + params = (DVDPartitionParams*)(executing->addr); + if (!params->dataWordOffset) { + stateBusy(executing); + return; + } + + finished = executing; + executing = &DummyCommandBlock; + + finished->state = 0; + if (finished->callback) { + (finished->callback)(0, finished); + } + + stateReady(); + return; + } + + if (IsDmaCommand(CurrCommand)) { + if (executing->transferredSize != executing->length) { + stateBusy(executing); + return; + } + + finished = executing; + executing = &DummyCommandBlock; + finished->state = DVD_STATE_END; + if (finished->callback) { + finished->callback(finished->transferredSize, finished); + } + + stateReady(); + return; + } else if (IsImmCommandWithResult(CurrCommand)) { + s32 result; + if (CurrCommand == DVD_COMMAND_REQUEST_START_ADDR || CurrCommand == DVD_COMMAND_REQUEST_PLAY_ADDR) { + result = (s32)(DVDLowGetImmBufferReg() << 2); + } else { + result = (s32)DVDLowGetImmBufferReg(); + } + + finished = executing; + executing = &DummyCommandBlock; + finished->state = DVD_STATE_END; + if (finished->callback) { + finished->callback(result, finished); + } + + stateReady(); + return; + } else { + finished = executing; + executing = &DummyCommandBlock; + finished->state = DVD_STATE_END; + if (finished->callback) { + finished->callback(0, finished); + } + + stateReady(); + return; + } + } else { + ASSERTLINE(3676, intType == DVD_INTTYPE_DE); + + if (CurrCommand == 14) { + stateError(0x01234567); + return; + } + + if ((CurrCommand == 1 || CurrCommand == 4 || CurrCommand == 5 || CurrCommand == 33 || CurrCommand == 14) + && (executing->transferredSize == executing->length)) { + + if (CheckCancel(0)) { + return; + } + finished = executing; + executing = &DummyCommandBlock; + + finished->state = DVD_STATE_END; + if (finished->callback) { + (finished->callback)((s32)finished->transferredSize, finished); + } + stateReady(); + return; + } + + stateGettingError(); + } +} + +void* __DVDGetIssueCommandAddr(void) { + return issueCommand; +} + +static int issueCommand(s32 prio, DVDCommandBlock* block) { + BOOL level; + int result; + + if (autoInvalidation != 0 && (block->command == DVD_COMMAND_READ || block->command == DVD_COMMAND_BSREAD + || block->command == DVD_COMMAND_READID || block->command == 33 || block->command == DVD_COMMAND_INQUIRY)) { + DCInvalidateRange(block->addr, block->length); + } + + level = OSDisableInterrupts(); +#if DEBUG + if (executing == block || (block->state == DVD_STATE_WAITING && __DVDIsBlockInWaitingQueue(block))) { + OSPanic(__FILE__, 3764, "DVD library: Specified command block (or file info) is already in use\n"); + } +#endif + + block->state = DVD_STATE_WAITING; + result = __DVDPushWaitingQueue(prio, block); + if (executing == NULL && PauseFlag == 0) { + stateReady(); + } + + OSRestoreInterrupts(level); + return result; +} + +int DVDReadAbsAsyncPrio(DVDCommandBlock* block, void* addr, s32 length, s32 offset, DVDCBCallback callback, s32 prio) { + int idle; + + ASSERTMSGLINE(3804, block, "DVDReadAbsAsync(): null pointer is specified to command block address."); + ASSERTMSGLINE(3805, addr, "DVDReadAbsAsync(): null pointer is specified to addr."); + ASSERTMSGLINE(3807, !OFFSET(addr, 32), "DVDReadAbsAsync(): address must be aligned with 32 byte boundary."); + ASSERTMSGLINE(3809, !(length & (32-1)), "DVDReadAbsAsync(): length must be a multiple of 32."); + + block->command = DVD_COMMAND_READ; + block->addr = addr; + block->length = length; + block->offset = offset; + block->transferredSize = 0; + block->callback = callback; + + idle = issueCommand(prio, block); + ASSERTMSGLINE(3819, idle, "DVDReadAbsAsync(): command block is used for processing previous request."); + return idle; +} + +int DVDSeekAbsAsyncPrio(DVDCommandBlock* block, s32 offset, DVDCBCallback callback, s32 prio) { + int idle; + + ASSERTMSGLINE(2233, block, "DVDSeekAbs(): null pointer is specified to command block address."); + + block->command = DVD_COMMAND_SEEK; + block->offset = offset; + block->callback = callback; + + idle = issueCommand(prio, block); + ASSERTMSGLINE(2242, idle, "DVDSeekAbs(): command block is used for processing previous request."); + return idle; +} + +int DVDReadAbsAsyncForBS(DVDCommandBlock* block, void* addr, s32 length, s32 offset, DVDCBCallback callback) { + int idle; + + ASSERTMSGLINE(2272, block, "DVDReadAbsAsyncForBS(): null pointer is specified to command block address."); + ASSERTMSGLINE(2273, addr, "DVDReadAbsAsyncForBS(): null pointer is specified to addr."); + ASSERTMSGLINE(2275, !OFFSET(addr, 32), "DVDReadAbsAsyncForBS(): address must be aligned with 32 byte boundary."); + ASSERTMSGLINE(2277, !(length & (32-1)), "DVDReadAbsAsyncForBS(): length must be a multiple of 32."); + + block->command = DVD_COMMAND_BSREAD; + block->addr = addr; + block->length = length; + block->offset = offset; + block->transferredSize = 0; + block->callback = callback; + + idle = issueCommand(2, block); + ASSERTMSGLINE(2289, idle, "DVDReadAbsAsyncForBS(): command block is used for processing previous request."); + return idle; +} + +int DVDReadDiskID(DVDCommandBlock* block, DVDDiskID* diskID, DVDCBCallback callback) { + int idle; + + ASSERTMSGLINE(2312, block, "DVDReadDiskID(): null pointer is specified to command block address."); + ASSERTMSGLINE(2313, diskID, "DVDReadDiskID(): null pointer is specified to id address."); + ASSERTMSGLINE(2315, !OFFSET(diskID, 32), "DVDReadDiskID(): id must be aligned with 32 byte boundary."); + + block->command = DVD_COMMAND_READID; + block->addr = diskID; + block->length = 0x20; + block->offset = 0; + block->transferredSize = 0; + block->callback = callback; + + idle = issueCommand(2, block); + ASSERTMSGLINE(2325, idle, "DVDReadDiskID(): command block is used for processing previous request."); + return idle; +} + +void __DVDAudioBufferConfig(DVDCommandBlock* block, u32 enable, u32 size, DVDCBCallback callback) { + int idle; + + block->command = DVD_COMMAND_AUDIO_BUFFER_CONFIG; + block->offset = enable; + block->length = size; + block->callback = callback; + idle = issueCommand(2, block); +} + +int DVDChangeDiskAsyncForBS(DVDCommandBlock* block, DVDCBCallback callback) { + int idle; + + ASSERTMSGLINE(2869, block, "DVDChangeDiskAsyncForBS(): null pointer is specified to command block address."); + + block->command = DVD_COMMAND_BS_CHANGE_DISK; + block->callback = callback; + idle = issueCommand(2, block); + ASSERTMSGLINE(2875, idle, "DVDChangeDiskAsyncForBS(): command block is used for processing previous request."); + return idle; +} + +int DVDChangeDiskAsync(DVDCommandBlock* block, DVDDiskID* id, DVDCBCallback callback) { + int idle; + + ASSERTMSGLINE(2896, block, "DVDChangeDisk(): null pointer is specified to command block address."); + ASSERTMSGLINE(2897, id, "DVDChangeDisk(): null pointer is specified to id address."); + + if (id->company[0] == 0) { + OSReport("DVDChangeDiskAsync(): You can't specify NULL to company name. \n"); + DVD_ASSERTMSGLINE(2902, 0, ""); + } + + block->command = DVD_COMMAND_CHANGE_DISK; + block->id = id; + block->callback = callback; + DCInvalidateRange(bootInfo->FSTLocation, bootInfo->FSTMaxLength); + + idle = issueCommand(2, block); + ASSERTMSGLINE(2913, idle, "DVDChangeDisk(): command block is used for processing previous request."); + return idle; +} + +s32 DVDChangeDisk(DVDCommandBlock* block, DVDDiskID* id) { + int result; + s32 state; + BOOL enabled; + s32 retVal; + + result = DVDChangeDiskAsync(block, id, cbForChangeDiskSync); + if (result == 0) { + return -1; + } + + enabled = OSDisableInterrupts(); + while (1) { + state = block->state; + if (state == DVD_STATE_END) { + retVal = 0; + break; + } else if (state == DVD_STATE_FATAL_ERROR) { + retVal = -1; + break; + } else if (state == DVD_STATE_CANCELED) { + retVal = -3; + break; + } + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return retVal; +} + +static void cbForChangeDiskSync(s32 result, DVDCommandBlock* block) { + OSWakeupThread(&__DVDThreadQueue); +} + +int DVDStopMotorAsync(DVDCommandBlock* block, DVDCBCallback callback) { + int idle; + ASSERTMSGLINE(2996, block, "DVDStopMotor(): Null address was specified for block"); + + block->command = DVD_COMMAND_UNK_16; + block->callback = callback; + + idle = issueCommand(2, block); + ASSERTMSGLINE(3002, idle, "DVDStopMotor(): command block is used for processing previous request."); + return idle; +} + +s32 DVDStopMotor(DVDCommandBlock* block) { + int result; + s32 state; + BOOL enabled; + s32 retVal; + + result = DVDStopMotorAsync(block, cbForStopMotorSync); + if (result == 0) { + return -1; + } + + enabled = OSDisableInterrupts(); + while (1) { + state = block->state; + if (state == DVD_STATE_END) { + retVal = 0; + break; + } else if (state == DVD_STATE_FATAL_ERROR) { + retVal = -1; + break; + } else if (state == DVD_STATE_CANCELED) { + retVal = -3; + break; + } + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return retVal; +} + +static void cbForStopMotorSync(s32 result, DVDCommandBlock* block) { + OSWakeupThread(&__DVDThreadQueue); +} + +int DVDInquiryAsync(DVDCommandBlock* block, DVDDriveInfo* info, DVDCBCallback callback) { + int idle; + + ASSERTMSGLINE(4706, block, "DVDInquiry(): Null address was specified for block"); + ASSERTMSGLINE(4707, info, "DVDInquiry(): Null address was specified for info"); + ASSERTMSGLINE(4709, !OFFSET(info, 32), "DVDInquiry(): Address for info is not 32 bytes aligned"); + + block->command = DVD_COMMAND_INQUIRY; + block->addr = info; + block->length = 0x20; + block->transferredSize = 0; + block->callback = callback; + idle = issueCommand(2, block); + return idle; +} + +s32 DVDInquiry(DVDCommandBlock* block, DVDDriveInfo* info) { + int result; + s32 state; + BOOL enabled; + s32 retVal; + + result = DVDInquiryAsync(block, info, cbForInquirySync); + if (result == 0) { + return -1; + } + + enabled = OSDisableInterrupts(); + while (1) { + state = block->state; + if (state == DVD_STATE_END) { + retVal = (u32)block->transferredSize; + break; + } else if (state == DVD_STATE_FATAL_ERROR) { + retVal = -1; + break; + } else if (state == DVD_STATE_CANCELED) { + retVal = -3; + break; + } + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return retVal; +} + +static void cbForInquirySync(s32 result, DVDCommandBlock* block) { + OSWakeupThread(&__DVDThreadQueue); +} + +void DVDReset(void) { + //DVDLowReset(); + __DIRegs[0] = 0x2A; + __DIRegs[1] = __DIRegs[1]; + ResetRequired = 0; + ResumeFromHere = 0; +} + +int DVDResetRequired(void) { + return ResetRequired; +} + +s32 DVDGetCommandBlockStatus(const DVDCommandBlock* block) { + BOOL enabled; + s32 retVal; + DVDCommandBlock* next; + + ASSERTMSGLINE(4907, block, "DVDGetCommandBlockStatus(): null pointer is specified to command block address."); + enabled = OSDisableInterrupts(); + + if (((volatile DVDCommandBlock*)block)->state == 3) { + retVal = 1; + } else if (((volatile DVDCommandBlock*)block)->state == 5) { + retVal = 4; + } else if (executing == &__DVDStopMotorCommandBlock) { + next = __DVDGetNextWaitingQueue(); + if (next) { + if(block == next) { + retVal = 1; + } else { + retVal = ((volatile DVDCommandBlock*)block)->state; + } + } else { + if (block == &__DVDStopMotorCommandBlock) { + retVal = 0; + } else { + retVal = ((volatile DVDCommandBlock*)block)->state; + } + } + } else { + retVal = ((volatile DVDCommandBlock*)block)->state; + } + + OSRestoreInterrupts(enabled); + return retVal; +} + +s32 DVDGetDriveStatus(void) { + BOOL enabled = OSDisableInterrupts(); + s32 retVal; + + if (FatalErrorFlag != FALSE) { + retVal = DVD_STATE_FATAL_ERROR; + } else { + if (PausingFlag != FALSE) { + retVal = DVD_STATE_PAUSING; + } else { + if (executing == NULL) { + retVal = DVD_STATE_END; + } else if (executing == &DummyCommandBlock) { + retVal = DVD_STATE_END; + } else { + retVal = DVDGetCommandBlockStatus((DVDCommandBlock*)executing); + } + } + } + OSRestoreInterrupts(enabled); + return retVal; +} + +BOOL DVDSetAutoInvalidation(BOOL autoInval) { + BOOL prev; + + prev = autoInvalidation; + autoInvalidation = autoInval; + return prev; +} + +void DVDPause(void) { + BOOL level; + + level = OSDisableInterrupts(); + PauseFlag = 1; + if (executing == NULL) { + PausingFlag = 1; + } + OSRestoreInterrupts(level); +} + +void DVDResume(void) { + BOOL level; + + level = OSDisableInterrupts(); + PauseFlag = 0; + if (PausingFlag != 0) { + PausingFlag = 0; + stateReady(); + } + OSRestoreInterrupts(level); +} + +int DVDCancelAsync(DVDCommandBlock* block, DVDCBCallback callback) { + BOOL enabled; + DVDCommandBlock* finished; + + enabled = OSDisableInterrupts(); + + switch (block->state) { + case DVD_STATE_FATAL_ERROR: + case DVD_STATE_END: + case DVD_STATE_CANCELED: + if (callback) + (*callback)(0, block); + break; + case DVD_STATE_BUSY: + if (Canceling) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + Canceling = TRUE; + CancelCallback = callback; + if (block->command == 4 || block->command == 33 || block->command == 34 || block->command == 41 || block->command == 42 || block->command == 1) { + __DVDLowBreak(); + } + break; + case DVD_STATE_WAITING: + __DVDDequeueWaitingQueue(block); + block->state = DVD_STATE_CANCELED; + + if (block->callback) + (block->callback)(-3, block); + + if (callback) + (*callback)(0, block); + break; + case DVD_STATE_COVER_CLOSED: + switch (block->command) { + case 5: + case 4: + case 13: + case 15: + case 33: + case 34: + case 37: + case 41: + case 42: + if (callback) + (*callback)(0, block); + break; + case 1: + case 2: + if (__OSInIPL) { + finished = executing; + executing = &DummyCommandBlock; + block->state = 10; + + if (block->callback) { + (block->callback)(-3, block); + } + + if (callback) { + (*callback)(0, block); + } + + stateReady(); + break; + } + default: + if (Canceling) { + OSRestoreInterrupts(enabled); + return FALSE; + } + Canceling = TRUE; + CancelCallback = callback; + break; + } + break; + case DVD_STATE_NO_DISK: + case DVD_STATE_COVER_OPEN: + case DVD_STATE_WRONG_DISK: + case DVD_STATE_MOTOR_STOPPED: + case DVD_STATE_RETRY: + if (!(WaitingForCoverClose || WaitingForCoverOpen)) { + OSRestoreInterrupts(enabled); + return FALSE; + } + + if (WaitingForCoverOpen) { + OSCancelAlarm(&CoverAlarm); + WaitingForCoverOpen = FALSE; + } + + if (block->state == DVD_STATE_NO_DISK) + ResumeFromHere = 3; + if (block->state == DVD_STATE_COVER_OPEN) + ResumeFromHere = 4; + if (block->state == DVD_STATE_WRONG_DISK) + ResumeFromHere = 1; + if (block->state == DVD_STATE_RETRY) + ResumeFromHere = 2; + if (block->state == DVD_STATE_MOTOR_STOPPED) + ResumeFromHere = 7; + + finished = executing; + executing = &DummyCommandBlock; + + block->state = DVD_STATE_CANCELED; + if (block->callback) { + (block->callback)(-3, block); + } + + if (callback) { + (callback)(0, block); + } + stateReady(); + break; + case 12: + finished = executing; + executing = &DummyCommandBlock; + block->state = 10; + + if (block->callback) { + (block->callback)(-3, block); + } + + if (callback) { + (callback)(0, block); + } + + stateReady(); + break; + } + + OSRestoreInterrupts(enabled); + return TRUE; +} + +s32 DVDCancel(DVDCommandBlock* block) { + int result; + s32 state; + u32 command; + BOOL enabled; + + result = DVDCancelAsync((void*)block, cbForCancelSync); + if (result == 0) { + return -1; + } + + enabled = OSDisableInterrupts(); + while (1) { + state = ((volatile DVDCommandBlock*)block)->state; + if (state == DVD_STATE_END || state == DVD_STATE_FATAL_ERROR || state == DVD_STATE_CANCELED) { + break; + } + + if (state == DVD_STATE_COVER_CLOSED) { + command = ((volatile DVDCommandBlock*)block)->command; + if ((command == 4) || (command == 5) || (command == 13) || (command == 33) || (command == 34) || (command == 41) || + (command == 42) || (command == 15) || (command == 37)) { + break; + } + } + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return 0; +} + +static void cbForCancelSync(s32 result, DVDCommandBlock* block) { + OSWakeupThread(&__DVDThreadQueue); +} + +int DVDCancelAllAsync(DVDCBCallback callback) { + BOOL enabled; + DVDCommandBlock* p; + int retVal; + + enabled = OSDisableInterrupts(); + DVDPause(); + while ((p = __DVDPopWaitingQueue())) { + DVDCancelAsync(p, NULL); + } + + if (executing) { + retVal = DVDCancelAsync(executing, callback); + } else { + retVal = 1; + if (callback) { + callback(0, NULL); + } + } + + DVDResume(); + OSRestoreInterrupts(enabled); + return retVal; +} + +s32 DVDCancelAll(void) { + int result; + BOOL enabled; + + enabled = OSDisableInterrupts(); + CancelAllSyncComplete = 0; + result = DVDCancelAllAsync(cbForCancelAllSync); + if (result == 0) { + OSRestoreInterrupts(enabled); + return -1; + } + + while (1) { + if (CancelAllSyncComplete == 0) { + OSSleepThread(&__DVDThreadQueue); + } else { + break; + } + } + + OSRestoreInterrupts(enabled); + return 0; +} + +static void cbForCancelAllSync(s32 result, DVDCommandBlock* block) { + CancelAllSyncComplete = 1; + OSWakeupThread(&__DVDThreadQueue); +} + +DVDDiskID* DVDGetCurrentDiskID(void) { + return (void*)OSPhysicalToCached(0); +} + +static void __BS2DVDLowCallback(u32 type) { + __BS2DVDLowIntType = type; +} + +u32 __DVDGetCoverStatus(void) { + u32 reg; + __BS2DVDLowIntType = 0; + DVDLowPrepareCoverRegister(__BS2DVDLowCallback); + + while (!__BS2DVDLowIntType) { + + } + + if (!(__BS2DVDLowIntType & 1)) { + return 0; + } + + reg = DVDLowGetCoverRegister(); + + if (__OSGetSystemTime() - LastResetEnd < DVD_RESETCOVER_TIMELAG_TICKS2) { + return 0; + } else if (reg & 1) { + return 1; + } else { + return 2; + } +} + +BOOL DVDCheckDiskAsync(DVDCommandBlock* block, DVDCBCallback callback) { + BOOL enabled; + s32 retVal, state; + + enabled = OSDisableInterrupts(); + + if (FatalErrorFlag) { + state = -1; + } else if (PausingFlag) { + state = 8; + } else { + if (WaitingForCoverOpen) { + state = 7; + } + + if (WaitingForCoverClose) { + state = 5; + } else if (executing == NULL) { + switch (ResumeFromHere) { + case 3: { + state = 4; + break; + } + case 4: { + state = 5; + break; + } + case 1: { + state = 6; + break; + } + case 2: { + state = 11; + break; + } + case 7: { + state = 7; + break; + } + default: { + state = 0; + break; + } + } + } else if (executing == &DummyCommandBlock) { + state = 0; + } else { + state = executing->state; + } + } + + retVal = TRUE; + switch (state) { + case 1: + case 9: + case 10: + case 2: + block->state = 0; + if (callback) { + (*callback)(TRUE, block); + } + OSRestoreInterrupts(enabled); + break; + case -1: + case 11: + case 7: + case 3: + case 4: + case 5: + case 6: + case 12: + block->state = 0; + if (callback) { + (*callback)(FALSE, block); + } + OSRestoreInterrupts(enabled); + break; + case 0: + case 8: + OSRestoreInterrupts(enabled); + + block->command = 36; + block->callback = callback; + + retVal = issueCommand(2, block); + break; + } + + return retVal; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +void DVDPrepareDisk() { + OSReport("DVDPrepareDisk(): null pointer is specified to command block address."); + OSReport("DVDPrepareDisk(): null pointer is specified to id address."); +} + +// NOTE: function doesn't exist in TP debug, needed for string data +void DVDPrepareDiskAsync() { + OSReport("DVDPrepareDiskAsync(): You can't call this API from DVD application. \n"); + OSReport("DVDPrepareDiskAsync(): You can't specify NULL to company name. \n"); + OSReport("DVDPrepareDisk(): command block is used for processing previous request."); +} + +BOOL DVDCheckDisk(void) { + BOOL enabled; + s32 retVal; + s32 state; + u32 coverReg; + + enabled = OSDisableInterrupts(); + + if (FatalErrorFlag) { + state = -1; + } else if (PausingFlag) { + state = 8; + } else { + if (executing == NULL) { + state = 0; + } else if (executing == &DummyCommandBlock) { + state = 0; + } else { + state = executing->state; + } + } + + switch (state) { + case DVD_STATE_BUSY: + case DVD_STATE_IGNORED: + case DVD_STATE_CANCELED: + case DVD_STATE_WAITING: + retVal = TRUE; + break; + case DVD_STATE_FATAL_ERROR: + case DVD_STATE_RETRY: + case DVD_STATE_MOTOR_STOPPED: + case DVD_STATE_COVER_CLOSED: + case DVD_STATE_NO_DISK: + case DVD_STATE_COVER_OPEN: + case DVD_STATE_WRONG_DISK: + retVal = FALSE; + break; + case DVD_STATE_END: + case DVD_STATE_PAUSING: + coverReg = __DIRegs[1]; + if (((coverReg >> 2) & 1) || (coverReg & 1)) { + retVal = FALSE; + } else if (ResumeFromHere != 0) { + retVal = FALSE; + } else { + retVal = TRUE; + } + } + + OSRestoreInterrupts(enabled); + return retVal; +} + +void __DVDPrepareResetAsync(DVDCBCallback callback) { + BOOL enabled; + + enabled = OSDisableInterrupts(); + + __DVDClearWaitingQueue(); + + if (Canceling) { + CancelCallback = callback; + } else { + if (executing) { + executing->callback = NULL; + } + + DVDCancelAllAsync(callback); + } + + OSRestoreInterrupts(enabled); +} + +static void Callback(s32 result, DVDCommandBlock* block ){ + Prepared = TRUE; +} + +void __DVDPrepareReset(void) { + OSDisableInterrupts(); + + Prepared = FALSE; + + __DVDPrepareResetAsync(Callback); + OSEnableInterrupts(); + + while (!(Prepared == TRUE)) { + + } +} + +int __DVDTestAlarm(const OSAlarm* alarm) { + if (alarm == &ResetAlarm) { + return 1; + } + return __DVDLowTestAlarm(alarm); +} + +BOOL __DVDLowBreak(void) { + Breaking = TRUE; + return TRUE; +} + +BOOL __DVDStopMotorAsync(void) { + return TRUE; +} + +void __DVDRestartMotor(void) {} diff --git a/src/revolution/dvd/dvdDeviceError.c b/src/revolution/dvd/dvdDeviceError.c new file mode 100644 index 0000000000..316346461f --- /dev/null +++ b/src/revolution/dvd/dvdDeviceError.c @@ -0,0 +1,200 @@ +#include +#include +#include + +#include "__os.h" +#include "__dvd.h" + +static u8 CheckBuffer[32] ATTRIBUTE_ALIGN(32); + +static volatile BOOL lowDone = TRUE; +static volatile u32 lowIntType = 0; + +static void lowCallback(u32 intType) { + lowIntType = intType; + lowDone = TRUE; +} + +void __DVDShowDeviceErrorMessage(void); + +BOOL __DVDCheckDevice(void) { + u32 checkCode = 0x460A0000; + u32 outOfRangeError = 0xFFFFFFFF; + u32 reportKeyError = 0xFFFFFFFF; + OSIOSRev iosRev; + + if (OSGetPhysicalMem2Size() == 0x08000000) { + return TRUE; + } + + __OSGetIOSRev(&iosRev); + + if (iosRev.major < 30 || iosRev.major >= 254) { + return TRUE; + } + + if (__OSDeviceCheckCode == 129) { + checkCode = 0x7ED40000; + } + + lowDone = FALSE; + DVDLowUnencryptedRead((void*)CheckBuffer, 32, checkCode, lowCallback);\ + + while (!lowDone) { + + } + + switch (lowIntType) { + case 2: + break; + case 1: + goto invalid; + break; + default: + goto fatal; + break; + } + + lowDone = FALSE; + DVDLowRequestError(lowCallback); + + while (!lowDone) { + + } + + outOfRangeError = DVDLowGetImmBufferReg(); + + switch (lowIntType) { + case 1: { + if ((DVDLowGetImmBufferReg() & 0xFF000000) != 0) { + goto recover; + break; + } + + switch (DVDLowGetImmBufferReg() & 0xFFFFFF) { + case 0x52100: + break; + default: + goto invalid; + break; + } + + break; + } + + default: + goto fatal; + break; + } + + lowDone = FALSE; + DVDLowReportKey((DVDVideoReportKey*)CheckBuffer, 0x40000, 0, lowCallback); + + while (!lowDone) { + + } + + switch (lowIntType) { + case 2: + break; + case 1: + goto invalid; + break; + default: + goto fatal; + break; + } + + lowDone = FALSE; + DVDLowRequestError(lowCallback); + + while (!lowDone) { + + } + + reportKeyError = DVDLowGetImmBufferReg(); + switch (lowIntType) { + case 1: + if ((DVDLowGetImmBufferReg() & 0xFF000000) != 0) { + goto recover; + break; + } + + switch (DVDLowGetImmBufferReg() & 0xFFFFFF) { + case 0x53100: + case 0x52000: + break; + default: + goto invalid; + break; + } + + break; + + default: + goto fatal; + break; + } + +valid: + return TRUE; + +invalid: + __DVDShowDeviceErrorMessage(); + return FALSE; + +recover: + return FALSE; + +fatal: + __DVDShowFatalMessage(); + return FALSE; +} + +const char* const __DVDDeviceErrorMessage[] = { + "\n\n\nエラーコード001。\n" + "不明なデバイスが見つかりました。", + + "\n\n\nError #001,\n" + "unauthorized device has been detected.", + + "\n\n\nFehler #001:\n" + "Es wurde eine unzul舖sige Komponente\n" + "entdeckt.", + + "\n\n\nErreur 001:\n" + "un dispositif non autoris\xE9\x20""a \xE9\x74\xE9\x20""d\xE9\x74""ect\xE9\x2E", + + "\n\n\nError 001:\n" + "Se ha detectado un dispositivo no\n" + "autorizado.", + + "\n\n\nErrore #001:\n" + "rilevato un dispositivo non autorizzato.", + + "\n\n\nFout #001:\n" + "ongeoorloofd onderdeel gevonden." +}; + +void __DVDShowDeviceErrorMessage(void) { + const char* message; + const char* const* messageList; + GXColor bg = { 0, 0, 0, 0 }; + GXColor fg = { 255, 255, 255, 0 }; + + if (SCGetLanguage() == 0) { + OSSetFontEncode(1); + } else { + OSSetFontEncode(0); + } + + messageList = __DVDDeviceErrorMessage; + + if (SCGetLanguage() > 6) { + message = messageList[1]; + } else { + message = messageList[SCGetLanguage()]; + } + + OSFatal(fg, bg, message); +} diff --git a/src/revolution/dvd/dvdFatal.c b/src/revolution/dvd/dvdFatal.c new file mode 100644 index 0000000000..4172ac10ac --- /dev/null +++ b/src/revolution/dvd/dvdFatal.c @@ -0,0 +1,211 @@ +#include +#include +#include + +#include "__dvd.h" + +static void (*FatalFunc)(); + +const char* const __DVDErrorMessageDefault[] = { + "\n" + "\n" + "\n" + "エラーが発生しました。\n" + "\n" + "イジェクトボタンを押してディスクを取り出してか\n" + "ら、本体の電源をOFFにして、本体の取扱説明書の\n" + "指示に従ってください。", + + "\n" + "\n" + "\n" + "An error has occurred.\n" + "Press the Eject Button, remove the\n" + "Game Disc, and turn off the power to the\n" + "console. Please read the Wii Operations\n" + "Manual for further instructions.", + + "\n" + "\n" + "\n" + "Ein Fehler ist aufgetreten.\n" + "Dr""\xFC""cke den Ausgabeknopf, entnimm die\n" + "Disc und schalte die Wii-Konsole aus.\n" + "Bitte lies die Wii-Bedienungsanleitung,\n" + "um weitere Informationen zu erhalten.", + + "\n" + "\n" + "\n" + "Une erreur est survenue.\n" + "Appuyez sur le bouton EJECT, retirez\n" + "le disque et ""\xE9""teignez la console.\n" + "Veuillez vous r""\xE9""f""\xE9""rer au Mode d'emploi\n" + "de la Wii pour plus de d""\xE9""tails.", + + "\n" + "\n" + "\n" + "Ocurri\xF3 un Error.\n" + "Oprime el Bot\xF3n EJECT, saca el disco\n" + "y apaga la consola. Consulta el manual\n" + "de operaciones de la consola Wii para\n" + "obtener m\xE1s informaci\xF3n.", + + "\n" + "\n" + "\n" + "Si \xE8 verificato un errore.\n" + "Premi il pulsante EJECT, estrai il disco\n" + "e spegni la console. Per maggiori\n" + "informazioni, consulta il manuale di\n" + "istruzioni della console Wii.", + + "\n" + "\n" + "\n" + "Er is een fout opgetreden.\n" + "Druk op de EJECT-knop, verwijder de\n" + "disk en zet het Wii-systeem uit. Lees\n" + "de Wii-handleiding voor meer informatie." +}; + +const char* const __DVDErrorMessageEurope[] = { + "\n" + "\n" + "\n" + "エラーが発生しました。\n" + "\n" + "イジェクトボタンを押してディスクを取り出してか\n" + "ら、本体の電源をOFFにして、本体の取扱説明書の\n" + "指示に従ってください。", + + "\n" + "\n" + "\n" + "An error has occurred.\n" + "Press the EJECT Button, remove the Disc,\n" + "and turn off the power to the console.\n" + "Please refer to the Wii Operations Manual\n" + "for details.", + + "\n" + "\n" + "\n" + "Ein Fehler ist aufgetreten.\n" + "Dr""\xFC""cke den Ausgabeknopf, entnimm die\n" + "Disc und schalte die Wii-Konsole aus.\n" + "Bitte lies die Wii-Bedienungsanleitung,\n" + "um weitere Informationen zu erhalten.", + + "\n" + "\n" + "\n" + "Une erreur est survenue.\n" + "Appuyez sur le bouton EJECT, retirez\n" + "le disque et ""\xE9""teignez la console.\n" + "Veuillez vous r""\xE9""f""\xE9""rer au mode d'emploi\n" + "Wii pour plus de d""\xE9""tails.", + + "\n" + "\n" + "\n" + "Se ha producido un error.\n" + "Pulsa el Bot\xF3n EJECT, extrae el disco y\n" + "apaga la consola. Consulta el manual de\n" + "instrucciones de la consola Wii para\n" + "obtener m\xE1s informaci\xF3n.", + + "\n" + "\n" + "\n" + "Si \xE8 verificato un errore.\n" + "Premi il pulsante EJECT, estrai il disco\n" + "e spegni la console. Per maggiori\n" + "informazioni, consulta il manuale di\n" + "istruzioni della console Wii.", + + "\n" + "\n" + "\n" + "Er is een fout opgetreden.\n" + "Druk op de EJECT-knop, verwijder de\n" + "disk en zet het Wii-systeem uit. Lees\n" + "de Wii-handleiding voor meer informatie." +}; + +const char* __DVDErrorMessageChinaKorea [] = { + "\n" + "\n" + "エラーコード104。\n" + "エラーが発生しました。\n" + "\n" + "イジェクトボタンを押してディスクを取り出してか\n" + "ら、本体の電源をOFFにして、本体の取扱説明書の\n" + "指示に従ってください。", + + "\n" + "\n" + "Error #104,\n" + "An error has occurred.\n" + "Press the EJECT Button, remove the\n" + "Game Disc, and turn the power off.\n" + "Please read the Wii Operations Manual\n" + "for more information." +}; + +void __DVDShowFatalMessage(void) { + const char* message; + const char* const* messageList; + GXColor bg = { 0, 0, 0, 0 }; + GXColor fg = { 255, 255, 255, 0 }; + + if (SCGetLanguage() == SC_LANG_JAPANESE) { + OSSetFontEncode(OS_FONT_ENCODE_SJIS); + } else { + OSSetFontEncode(OS_FONT_ENCODE_ANSI); + } + + switch (SCGetProductGameRegion()) { + case 0: + case 1: + case 3: + default: + messageList = __DVDErrorMessageDefault; + break; + case 2: + messageList = __DVDErrorMessageEurope; + break; + case 4: + case 5: + messageList = __DVDErrorMessageChinaKorea; + break; + } + + if (SCGetLanguage() > SC_LANG_DUTCH) { + message = messageList[1]; + } else { + message = messageList[SCGetLanguage()]; + } + + OSFatal(fg, bg, message); +} + +BOOL DVDSetAutoFatalMessaging(BOOL enable) { + BOOL enabled, prev; + enabled = OSDisableInterrupts(); + prev = FatalFunc ? TRUE : FALSE; + FatalFunc = enable ? __DVDShowFatalMessage : NULL; + OSRestoreInterrupts(enabled); + return prev; +} + +BOOL __DVDGetAutoFatalMessaging(void) { + return FatalFunc ? TRUE : FALSE; +} + +void __DVDPrintFatalMessage(void) { + if (FatalFunc) { + FatalFunc(); + } +} diff --git a/src/revolution/dvd/dvd_broadway.c b/src/revolution/dvd/dvd_broadway.c new file mode 100644 index 0000000000..ab4840791f --- /dev/null +++ b/src/revolution/dvd/dvd_broadway.c @@ -0,0 +1,978 @@ +#include +#include +#include + +IOSFd DiFD = -1; + +static volatile u8 requestInProgress = FALSE; +static u8 breakRequested; +static u8 callbackInProgress; + +static u32 registerBuf[8] ATTRIBUTE_ALIGN(32); +static u32 statusRegister[8] ATTRIBUTE_ALIGN(32); +static u32 controlRegister[8] ATTRIBUTE_ALIGN(32); +static s32 lastTicketError[8] ATTRIBUTE_ALIGN(32); + +static u32 readLength; +static u32 spinUpValue; + +static diRegVals_t diRegValCache ATTRIBUTE_ALIGN(32); + +static u8 DVDLowInitCalled = FALSE; + +typedef enum callbackType { + BOGUS_TYPE = 0, + TRANSACTION_CB, + COVER_CB, + COVER_REG_CB +} callbackType_t; + +static int freeCommandBuf = 0; +static diCommand_t* diCommand; +static char* pathBuf; + +typedef struct dvdContext { + DVDLowCallback callback; + callbackType_t callbackType; + u8 inUse; + u32 contextMagic; + u32 contextNum; + u32 pad[3]; +} dvdContext_t; + +static int freeDvdContext = 0; +static u8 dvdContextsInited = FALSE; +static dvdContext_t dvdContexts[4] ATTRIBUTE_ALIGN(32); +static IOSIoVector ioVec[10] ATTRIBUTE_ALIGN(32); + +static void* ddrAllocAligned32(const int size) { + void* low, *high; + + if ((size & 0x1F) != 0) { + OSReport("(ddrAllocAligned32) size is not a multiple of 32 !!! \n"); + return 0; + } + + low = IPCGetBufferLo(); + high = IPCGetBufferHi(); + + if (((u32)low & 0x1F) != 0) { + low = (void*)(((u32)low + 31) & 0x1F); + } + + if ((u32)low + size > (u32)high) { + OSReport("(ddrAllocAligned32) Not enough space to allocate %d bytes\n", size); + } + + IPCSetBufferLo((void*)((u32)low + size)); + return low; +} + +static BOOL allocateStructures(void) { + if ((diCommand = ddrAllocAligned32(sizeof(diCommand_t) * 4)) == 0) { + OSReport("Allocation of diCommand blocks failed\n"); + return FALSE; + } + + if ((pathBuf = ddrAllocAligned32(32)) == 0) { + OSReport("Allocation of pathBuf failed\n"); + return FALSE; + } + + return TRUE; +} + +static void initDvdContexts(void) { + { + u32 i; + + for (i = 0; i < 4; i++) { + dvdContexts[i].callback = 0; + dvdContexts[i].callbackType = 0; + dvdContexts[i].inUse = FALSE; + dvdContexts[i].contextMagic = 0xFEEBDAED; + dvdContexts[i].contextNum = i; + } + } + + freeDvdContext = 0; +} + +IOSError doTransactionCallback(IOSError ret, void* context) { + dvdContext_t* dvdContext = context; + + if (dvdContext->contextMagic != 0xFEEBDAED) { + OSReport("(doTransactionCallback) Error - context mangled!\n"); + dvdContext->contextMagic = 0xFEEBDAED; + goto out; + } + + requestInProgress = FALSE; + + if (dvdContext->callback != NULL) { + int callbackArg; + callbackInProgress = TRUE; + callbackArg = ret; + + if (breakRequested == TRUE) { + breakRequested = FALSE; + callbackArg |= 8; + } + + if (callbackArg & 1) { + readLength = 0; + } + + dvdContext->callback((u32)callbackArg); + callbackInProgress = FALSE; + } + +out: + dvdContext->inUse = FALSE; + return 0; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +IOSError doCoverCallback(IOSError err, void* context) { + OSReport("(doCoverCallback) Error - context mangled!\n"); + return 0; +} + +IOSError doPrepareCoverRegisterCallback(IOSError err, void* context) { + dvdContext_t* dvdContext; + requestInProgress = FALSE; + + diRegValCache.CoverRegVal = registerBuf[0]; + dvdContext = (dvdContext_t*)context; + + if (dvdContext->contextMagic != 0xFEEBDAED) { + OSReport("(doTransactionCallback) Error - context mangled!\n"); + dvdContext->contextMagic = 0xFEEBDAED; + } else { + IOSError ret; + if (dvdContext->callback != 0) { + callbackInProgress = TRUE; + ret = err; + + if (breakRequested == TRUE) { + breakRequested = FALSE; + ret |= 8; + } + + dvdContext->callback(ret); + callbackInProgress = FALSE; + } + } + + dvdContext->inUse = FALSE; + return 0; +} + +static inline void nextCommandBuf(int* bufNum) { + (*bufNum)++; + + if (*bufNum >= 4) { + *bufNum = 0; + } +} + +static inline dvdContext_t* newContext(const DVDLowCallback callback, const callbackType_t type) { + int returnIndex; + + if ((dvdContexts[freeDvdContext].inUse != 0) == (u32)1) { + OSReport("(newContext) ERROR: freeDvdContext.inUse (#%d) is true\n", freeDvdContext); + OSReport("(newContext) Now spinning in infinite loop\n"); + + while (1) { + + } + } + + if (dvdContexts[freeDvdContext].contextMagic != 0xFEEBDAED) { + OSReport("(newContext) Something overwrote the context magic - spinning \n"); + + while (1) { + + } + } + + dvdContexts[freeDvdContext].callback = callback; + dvdContexts[freeDvdContext].callbackType = type; + dvdContexts[freeDvdContext].inUse = TRUE; + returnIndex = freeDvdContext; + freeDvdContext++; + + if (freeDvdContext >= 4) { + freeDvdContext = 0; + } + + return(dvdContexts + returnIndex); +} + +BOOL DVDLowFinalize(void) { + IOSError ret = IOS_Close(DiFD); + + if (ret != IOS_ERROR_OK) { + OSReport("(DVDLowFinish) Error: IOS_Close failed\n"); + return FALSE; + } + + DVDLowInitCalled = FALSE; + return TRUE; +} + +BOOL DVDLowInit(void) { + IOSError retVal; + + if (DVDLowInitCalled == FALSE) { + DVDLowInitCalled = TRUE; + retVal = IPCCltInit(); + + if (retVal != IOS_ERROR_OK) { + OSReport("IPCCltInit returned error: %d\n", retVal); + return FALSE; + } + + if (allocateStructures() == FALSE) { + return FALSE; + } + + if (dvdContextsInited == FALSE) { + initDvdContexts(); + dvdContextsInited = TRUE; + } + } + + strncpy(pathBuf, "/dev/di", 32); + DiFD = IOS_Open(pathBuf, 0); + + if (DiFD >= 0) { + return TRUE; + } else { + switch (DiFD) { + case IOS_ERROR_NOEXISTS: + OSReport("(DVDLowInit) Error: IOS_Open failed - pathname '/dev/di' does not exist\n"); + return FALSE; + break; + case IOS_ERROR_ACCESS: + OSReport("(DVDLowInit) Error: IOS_Open failed - calling thread lacks permission\n"); + return FALSE; + break; + case IOS_ERROR_MAX: + OSReport("(DVDLowInit) Error: IOS_Open failed - connection limit has been reached\n"); + return FALSE; + break; + default: + OSReport("(DVDLowInit) IOS_Open failed, errorcode = %d\n", DiFD); + return FALSE; + break; + } + } +} + +BOOL DVDLowReadDiskID(DVDDiskID* diskID, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + + if (diskID == 0) { + OSReport("@@@@@@ WARNING - Calling DVDLowReadDiskId with NULL ptr\n"); + } + + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x70; + + rv = IOS_IoctlAsync(DiFD, 0x70, &diCommand[freeCommandBuf], sizeof(diCommand_t), diskID, sizeof(DVDDiskID), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowReadDiskID) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowOpenPartition(const u32 partitionWordOffset, const ESTicket* const eTicket, const u32 numCertBytes, const u8* const certificates, ESTitleMeta* tmd, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + if (eTicket != 0 && ((u32)eTicket & 0x1F)) { + OSReport("(DVDLowOpenPartition) eTicket memory is unaligned\n"); + return FALSE; + } + + if (certificates != 0 && ((u32)certificates & 0x1F)) { + OSReport("(DVDLowOpenPartition) certificates memory is unaligned\n"); + return FALSE; + } + + if (tmd != 0 && ((u32)tmd & 0x1F)) { + OSReport("(DVDLowOpenPartition) certificates memory is unaligned\n"); + return FALSE; + } + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x8B; + diCommand[freeCommandBuf].arg[0] = partitionWordOffset; + ioVec[0].base = (u8*)&diCommand[freeCommandBuf]; + ioVec[0].length = sizeof(diCommand_t); + + ioVec[1].base = (u8*)eTicket; + if (eTicket == 0) { + ioVec[1].length = 0; + } else { + ioVec[1].length = sizeof(ESTicket); + } + + ioVec[2].base = (u8*)certificates; + if (certificates == 0) { + ioVec[2].length = 0; + } else { + ioVec[2].length = numCertBytes; + } + + ioVec[3].base = (u8*)tmd; + ioVec[3].length = sizeof(ESTitleMeta); + + ioVec[4].base = (u8*)&lastTicketError[0]; + ioVec[4].length = sizeof(lastTicketError); + + rv = IOS_IoctlvAsync(DiFD, 0x8B, 3, 2, ioVec, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowOpenPartition) IOS_IoctlvAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowOpenPartitionWithTmdAndTicket() { + OSReport("(%s) eTicket memory is unaligned\n", __FUNCTION__); + OSReport("(%s) tmd parameter cannot be NULL\n", __FUNCTION__); + OSReport("(%s) tmd memory is unaligned\n", __FUNCTION__); + OSReport("(%s) eTicket parameter cannot be NULL\n", __FUNCTION__); + return TRUE; +} + +BOOL DVDLowOpenPartitionWithTmdAndTicketView(const u32 partitionWordOffset, const ESTicketView* const eTicketView, const u32 numTmdBytes, const ESTitleMeta* const tmd, const u32 numCertBytes, const u8* const certificates, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + if (certificates != 0 && ((u32)certificates & 0x1F)) { + return FALSE; + } + + if (tmd == 0) { + OSReport("(%s) tmd parameter cannot be NULL\n", __FUNCTION__); + return FALSE; + } else if (((u32)tmd & 0x1F)) { + OSReport("(%s) tmd memory is unaligned\n", __FUNCTION__); + return FALSE; + } + + if (eTicketView == 0) { + OSReport("(%s) eTicketView parameter cannot be NULL\n", __FUNCTION__); + return FALSE; + } else if (((u32)eTicketView & 0x1F)) { + OSReport("(%s) eTicketView memory is unaligned\n", __FUNCTION__); + return FALSE; + } + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x94; + diCommand[freeCommandBuf].arg[0] = partitionWordOffset; + ioVec[0].base = (u8*)&diCommand[freeCommandBuf]; + ioVec[0].length = sizeof(diCommand_t); + + ioVec[1].base = (u8*)eTicketView; + ioVec[1].length = sizeof(ESTicketView); + + ioVec[2].base = (u8*)tmd; + ioVec[2].length = numTmdBytes; + + ioVec[3].base = (u8*)certificates; + if (certificates == 0) { + ioVec[3].length = 0; + } else { + ioVec[3].length = numCertBytes; + } + + ioVec[4].base = (u8*)&lastTicketError[0]; + ioVec[4].length = sizeof(lastTicketError); + + rv = IOS_IoctlvAsync(DiFD, 0x94, 4, 1, ioVec, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowOpenPartition) IOS_IoctlvAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowGetNoDiscBufferSizes(const u32 partitionWordOffset, u32* numTmdBytes, u32* numCertBytes, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + if (numTmdBytes == 0 || numCertBytes == 0) { + OSReport("(%s) Error: NULL pointer argument\n", __FUNCTION__); + return FALSE; + } + + if (((u32)numTmdBytes & 0x1F)) { + OSReport("(%s) numTmdBytes memory is unaligned\n", __FUNCTION__); + return FALSE; + } + + if (((u32)numCertBytes & 0x1F)) { + OSReport("(%s) certificates memory is unaligned\n", __FUNCTION__); + return FALSE; + } + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x92; + diCommand[freeCommandBuf].arg[0] = partitionWordOffset; + + ioVec[0].base = (u8*)&diCommand[freeCommandBuf]; + ioVec[0].length = sizeof(diCommand_t); + + ioVec[1].base = (u8*)numTmdBytes; + ioVec[1].length = 4; + + ioVec[2].base = (u8*)numCertBytes; + ioVec[2].length = 4; + + rv = IOS_IoctlvAsync(DiFD, 0x92, 1, 2, ioVec, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (%s) IOS_IoctlvAsync returned error: %d\n", __FUNCTION__, rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +#define is_aligned(addr) (((u32)(addr) & 0x1F) == 0) + +BOOL DVDLowGetNoDiscOpenPartitionParams(const u32 partitionWordOffset, ESTicket* eTicket, u32* numTmdBytes, ESTitleMeta* tmd, u32* numCertBytes, u8* certificates, u32* dataWordOffset, u8* h3HashPtr, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + if (eTicket == 0 || numTmdBytes == 0 || tmd == 0 || numCertBytes == 0 || certificates == 0 || dataWordOffset == 0 || h3HashPtr == 0) { + OSReport("(%s) Error: NULL pointer argument\n", __FUNCTION__); + return FALSE; + } + + if (!is_aligned(eTicket) || !is_aligned(numTmdBytes) || !is_aligned(tmd) || !is_aligned(numCertBytes) || !is_aligned(certificates) || !is_aligned(dataWordOffset) || !is_aligned(h3HashPtr)) { + OSReport("(%s) pointer argument is unaligned\n", __FUNCTION__); + return FALSE; + } + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x90; + diCommand[freeCommandBuf].arg[0] = partitionWordOffset; + + ioVec[0].base = (u8*)&diCommand[freeCommandBuf]; + ioVec[0].length = sizeof(diCommand_t); + + ioVec[1].base = (u8*)numTmdBytes; + ioVec[1].length = 4; + + ioVec[2].base = (u8*)numCertBytes; + ioVec[2].length = 4; + + ioVec[3].base = (u8*)eTicket; + ioVec[3].length = sizeof(ESTicket); + + ioVec[4].base = (u8 *) numTmdBytes; + ioVec[4].length = 4; + + ioVec[5].base = (u8*)tmd; + ioVec[5].length = *numTmdBytes; + + ioVec[6].base = (u8*)numCertBytes; + ioVec[6].length = 4; + + ioVec[7].base = certificates; + ioVec[7].length = *numCertBytes; + + ioVec[8].base = (u8*)dataWordOffset; + ioVec[8].length = 4; + + ioVec[9].base = h3HashPtr; + ioVec[9].length = 98304; + + rv = IOS_IoctlvAsync(DiFD, 0x90, 3, 7, ioVec, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (%s) IOS_IoctlvAsync returned error: %d\n", __FUNCTION__, rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowNoDiscOpenPartition() { + OSReport("DVDLowNoDiscOpenPartition"); + return TRUE; +} + +BOOL DVDLowClosePartition(DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x8C; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + rv = IOS_IoctlAsync(DiFD, 0x8C, &diCommand[freeCommandBuf], sizeof(diCommand_t), 0, 0, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowClosePartition) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowUnencryptedRead(void* destAddr, u32 length, u32 wordOffset, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + readLength = length; + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x8D; + diCommand[freeCommandBuf].arg[0] = length; + diCommand[freeCommandBuf].arg[1] = wordOffset; + + rv = IOS_IoctlAsync(DiFD, 0x8D, &diCommand[freeCommandBuf], sizeof(diCommand_t), destAddr, length, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowUnencryptedRead) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowStopMotor(u8 eject, u8 saving, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0xE3; + diCommand[freeCommandBuf].arg[0] = eject; + diCommand[freeCommandBuf].arg[1] = saving; + + rv = IOS_IoctlAsync(DiFD, 0xE3, &diCommand[freeCommandBuf], sizeof(diCommand_t), &diRegValCache, sizeof(diRegVals_t), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowStopMotor) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowWaitForCoverClose() { + OSReport("@@@ (DVDLowWaitForCoverClose) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +BOOL DVDLowInquiry(DVDDriveInfo* info, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + if (breakRequested == 0) {} + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x12; + rv = IOS_IoctlAsync(DiFD, 0x12, &diCommand[freeCommandBuf], sizeof(diCommand_t), info, sizeof(DVDDriveInfo), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowInquiry) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowRequestError(DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0xE0; + rv = IOS_IoctlAsync(DiFD, 0xE0, &diCommand[freeCommandBuf], sizeof(diCommand_t), &diRegValCache, sizeof(diRegVals_t), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowRequestError) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowSetSpinupFlag(u32 spinUp) { + "(DVDLowSetSpinupFlag): Synch functions can't be called in callbacks\n"; // dead string + + spinUpValue = spinUp; + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowNotifyReset() { + OSReport("@@@ (DVDLowNotifyReset) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +BOOL DVDLowReset(DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x8A; + diCommand[freeCommandBuf].arg[0] = spinUpValue; + rv = IOS_IoctlAsync(DiFD, 0x8A, &diCommand[freeCommandBuf], sizeof(diCommand_t), 0, 0, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowReset) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowAudioBufferConfig(u8 enable, u32 size, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0xE4; + diCommand[freeCommandBuf].arg[0] = enable; + diCommand[freeCommandBuf].arg[1] = size; + rv = IOS_IoctlAsync(DiFD, 0xE4, &diCommand[freeCommandBuf], sizeof(diCommand_t), &diRegValCache, sizeof(diRegVals_t), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowAudioBufferConfig) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +u32 DVDLowGetCoverStatus() { + OSReport("(DVDLowGetCoverStatus): Synch functions can't be called in callbacks\n"); + OSReport("@@@ (DVDLowGetCoverStatus) IOS_Ioctl returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +u32 DVDLowReadDVD() { + OSReport("@@@ (DVDLowReadDVD) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowReadDVDConfig() { + OSReport("@@@ (DVDLowReadDVDConfig) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowReadDvdCopyright() { + OSReport("@@@ (DVDLowReadDvdCopyright) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowReadDvdPhysical() { + OSReport("@@@ (DVDLowReadDvdPhysical) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowReadDvdDiscKey() { + OSReport("@@@ (DVDLowReadDvdDiscKey) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +BOOL DVDLowReportKey(DVDVideoReportKey* reportKey, u32 format, u32 lsn, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0xA4; + diCommand[freeCommandBuf].arg[0] = format >> 16; + diCommand[freeCommandBuf].arg[1] = lsn; + + rv = IOS_IoctlAsync(DiFD, 0xA4, &diCommand[freeCommandBuf], sizeof(diCommand_t), reportKey, sizeof(DVDVideoReportKey), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowReportKey) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowOffset() { + OSReport("@@@ (DVDLowOffset) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowStopLaser() { + OSReport("@@@ (DVDLowStopLaser) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowReadDiskBca() { + OSReport("@@@ (DVDLowReadDiskBca) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowSerMeasControl() { + OSReport("@@@ (DVDLowSerMeasControl) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowRequestDiscStatus() { + OSReport("@@@ (DVDLowRequestDiscStatus) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowRequestRetryNumber() { + OSReport("@@@ (DVDLowRequestRetryNumber) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} + +BOOL DVDLowSetMaximumRotation(u32 subcmd, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0xDD; + diCommand[freeCommandBuf].arg[0] = (subcmd >> 16) & 3; + rv = IOS_IoctlAsync(DiFD, 0xDD, &diCommand[freeCommandBuf], sizeof(diCommand_t), 0, 0, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowSetMaxRotation) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowRead(void* destAddr, u32 length, u32 wordOffset, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + if (((u32)destAddr & 0x1F) != 0) { + OSReport("(DVDLowRead): ERROR - destAddr buffer is not 32 byte aligned\n"); + return FALSE; + } + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + readLength = length; + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x71; + diCommand[freeCommandBuf].arg[0] = length; + diCommand[freeCommandBuf].arg[1] = wordOffset; + rv = IOS_IoctlAsync(DiFD, 0x71, &diCommand[freeCommandBuf], sizeof(diCommand_t), destAddr, length, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowRead) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowSeek(u32 wordOffset, DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0xAB; + diCommand[freeCommandBuf].arg[0] = wordOffset; + rv = IOS_IoctlAsync(DiFD, 0xAB, &diCommand[freeCommandBuf], sizeof(diCommand_t), 0, 0, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowSeek) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowGetCoverReg() { + OSReport("(DVDLowGetCoverReg): Synch functions can't be called in callbacks\n"); + OSReport("@@@ (DVDLowGetCoverReg) IOS_Ioctl returned error: %d\n"); + return TRUE; +} + +u32 DVDLowGetCoverRegister(void) { + return diRegValCache.CoverRegVal; +} + +u32 DVDLowGetStatusRegister(void) { + return statusRegister[0]; +} + +u32 DVDLowGetControlRegister(void) { + return controlRegister[0]; +} + +BOOL DVDLowPrepareCoverRegister(DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x7A; + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + rv = IOS_IoctlAsync(DiFD, 0x7A, &diCommand[freeCommandBuf], sizeof(diCommand_t), registerBuf, sizeof(registerBuf), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowPrepareCoverRegsiter) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowPrepareStatusRegister(DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x95; + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + rv = IOS_IoctlAsync(DiFD, 0x95, &diCommand[freeCommandBuf], sizeof(diCommand_t), statusRegister, sizeof(statusRegister), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowPrepareStatusRegsiter) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL DVDLowPrepareControlRegister(DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x96; + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + rv = IOS_IoctlAsync(DiFD, 0x96, &diCommand[freeCommandBuf], sizeof(diCommand_t), controlRegister, sizeof(controlRegister), doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowPrepareControlRegister) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +u32 DVDLowGetImmBufferReg(void) { + return diRegValCache.ImmRegVal; +} + +BOOL DVDLowUnmaskStatusInterrupts(void) { + return TRUE; +} + +BOOL DVDLowMaskCoverInterrupt(void) { + return TRUE; +} + +BOOL DVDLowClearCoverInterrupt(DVDLowCallback callback) { + dvdContext_t* dvdContext; + IOSError rv; + + nextCommandBuf(&freeCommandBuf); + diCommand[freeCommandBuf].theCommand = 0x86; + requestInProgress = TRUE; + dvdContext = newContext(callback, 1); + rv = IOS_IoctlAsync(DiFD, 0x86, &diCommand[freeCommandBuf], sizeof(diCommand_t), 0, 0, doTransactionCallback, dvdContext); + + if (rv != IOS_ERROR_OK) { + OSReport("@@@ (DVDLowClearCoverInterrupt) IOS_IoctlAsync returned error: %d\n", rv); + dvdContext->inUse = FALSE; + return FALSE; + } + + return TRUE; +} + +BOOL __DVDLowTestAlarm(const OSAlarm *) { + return FALSE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +BOOL DVDLowEnableDvdVideo() { + OSReport("@@@ (DVDLowEnableDvdVideo) IOS_IoctlAsync returned error: %d\n"); + return TRUE; +} diff --git a/src/revolution/dvd/dvderror.c b/src/revolution/dvd/dvderror.c new file mode 100644 index 0000000000..7f1e8e52ad --- /dev/null +++ b/src/revolution/dvd/dvderror.c @@ -0,0 +1,202 @@ +#include +#include +#include +#include + +#include "os/__os.h" +#include "__dvd.h" + +static BOOL ExistFlag = FALSE; +static NANDCommandBlock NandCb; +static NANDFileInfo NandInfo; +static DVDCBCallback Callback; +static u32 NextOffset; +DVDErrorInfo __ErrorInfo ATTRIBUTE_ALIGN(32); +DVDErrorInfo __FirstErrorInfo ATTRIBUTE_ALIGN(32); + +void cbForNandClose(s32 result, NANDCommandBlock* block) { + if (Callback) { + Callback((result == 0) ? 1 : 2, NULL); + } +} + +void cbForNandWrite(s32 result, NANDCommandBlock* block) { + if (NANDCloseAsync(&NandInfo, cbForNandClose, &NandCb) != 0) { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForNandSeek(s32 result, NANDCommandBlock* block) { + if (result == sizeof(DVDErrorInfo) * (1 + NextOffset)) { + if (NextOffset == 0) { + __ErrorInfo.nextOffset = (1 + NextOffset) % 7; + } + + DCFlushRange((void*)&__ErrorInfo, sizeof(__ErrorInfo)); + + if (NANDWriteAsync(&NandInfo, (void*)&__ErrorInfo, sizeof(__ErrorInfo), cbForNandWrite, &NandCb) != 0) { + cbForNandWrite(-1, NULL); + } + } else { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForNandWrite0(s32 result, NANDCommandBlock* block) { + if (result == sizeof(__FirstErrorInfo)) { + if (NANDSeekAsync(&NandInfo, (s32)(sizeof(DVDErrorInfo) * (1 + NextOffset)), 0, cbForNandSeek, &NandCb) != 0) { + cbForNandSeek(-1, NULL); + } + } else { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForNandSeek2(s32 result, NANDCommandBlock* block) { + if (result == sizeof(DVDErrorInfo)) { + __FirstErrorInfo.nextOffset = (__FirstErrorInfo.nextOffset + 1) % 7; + + if (NANDWriteAsync(&NandInfo, (void*)&__FirstErrorInfo, sizeof(__FirstErrorInfo), cbForNandWrite0, &NandCb) != 0) { + cbForNandWrite0(-1, NULL); + } + } else { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForNandRead(s32 result, NANDCommandBlock* block) { + if (result == sizeof(DVDErrorInfo)) { + NextOffset = __FirstErrorInfo.nextOffset; + + if (NANDSeekAsync(&NandInfo, sizeof(DVDErrorInfo), 0, cbForNandSeek2, &NandCb) != 0) { + cbForNandSeek2(-1, NULL); + } + } else { + __ErrorInfo.nextOffset = 1; + if (NANDWriteAsync(&NandInfo, (void*)&__ErrorInfo, sizeof(__ErrorInfo), cbForNandWrite, &NandCb) != 0) { + cbForNandWrite(-1, NULL); + } + } +} + +void cbForNandSeek0(s32 result, NANDCommandBlock* block) { + if (result == 0) { + NextOffset = 0; + __ErrorInfo.nextOffset = 1; + + if (NANDWriteAsync(&NandInfo, (void*)&__FirstErrorInfo, sizeof(__FirstErrorInfo), cbForNandWrite0, &NandCb) != 0) { + cbForNandWrite0(-1, NULL); + } + } else { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForNandSeek1(s32 result, NANDCommandBlock* block) { + if (result == sizeof(DVDErrorInfo)) { + if (NANDReadAsync(&NandInfo, (void*)&__FirstErrorInfo, sizeof(__FirstErrorInfo), cbForNandRead, &NandCb) != 0) { + cbForNandRead(-1, NULL); + } + } else { + if (NANDSeekAsync(&NandInfo, 0, 0, cbForNandSeek0, &NandCb) != 0) { + cbForNandSeek0(-1, NULL); + } + } +} + +void cbForNandOpen(s32 result, NANDCommandBlock* block) { + if (result == 0) { + if (ExistFlag) { + if (NANDSeekAsync(&NandInfo, sizeof(DVDErrorInfo), 0, cbForNandSeek1, &NandCb) != 0) { + cbForNandSeek1(-1, NULL); + } + } else { + NextOffset = 0; + __ErrorInfo.nextOffset = 1; + if (NANDWriteAsync(&NandInfo, (void*)&__FirstErrorInfo, sizeof(__FirstErrorInfo), cbForNandWrite0, &NandCb) != 0) { + cbForNandWrite0(-1, NULL); + } + } + } else { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForNandCreate(s32 result, NANDCommandBlock* block) { + if (result == 0 || result == -6) { + if (result == -6) { + ExistFlag = TRUE; + } + + if (NANDPrivateOpenAsync("/shared2/test2/dvderror.dat", &NandInfo, 3, cbForNandOpen, &NandCb) != 0) { + if (Callback) { + Callback(2, NULL); + } + } + } else { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForNandCreateDir(s32 result, NANDCommandBlock* block) { + if (result == 0 || result == -6) { + if (NANDPrivateCreateAsync("/shared2/test2/dvderror.dat", 0x3F, 0, cbForNandCreate, &NandCb) != 0) { + if (Callback) { + Callback(2, NULL); + } + } + } else { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForPrepareControlRegister(u32 intType) { + if (intType == 1) { + __ErrorInfo.unk_0x14 = DVDLowGetControlRegister(); + } else { + __ErrorInfo.unk_0x14 = 0xFFFFFFFF; + } + + if (NANDPrivateCreateDirAsync("/shared2/test2", 0x3F, 0, cbForNandCreateDir, &NandCb) != 0) { + if (Callback) { + Callback(2, NULL); + } + } +} + +void cbForPrepareStatusRegister(u32 intType) { + if (intType == 1) { + __ErrorInfo.status = DVDLowGetStatusRegister(); + } else { + __ErrorInfo.status = 0xFFFFFFFF; + } + + if (DVDLowPrepareControlRegister(cbForPrepareControlRegister) == 0) { + if (Callback) { + Callback(2, NULL); + } + } +} + +void __DVDStoreErrorCode(u32 error, DVDCBCallback callback) { + __ErrorInfo.error = error; + __ErrorInfo.dateTime = (u32)OSTicksToSeconds(OSGetTime()); + Callback = callback; + DVDLowPrepareStatusRegister(cbForPrepareStatusRegister); +} diff --git a/src/revolution/dvd/dvdfs.c b/src/revolution/dvd/dvdfs.c new file mode 100644 index 0000000000..5be8b8297c --- /dev/null +++ b/src/revolution/dvd/dvdfs.c @@ -0,0 +1,557 @@ +#include +#include + +#include "__dvd.h" + +typedef struct FSTEntry { + /* 0x00 */ unsigned int isDirAndStringOff; + /* 0x04 */ unsigned int parentOrPosition; + /* 0x08 */ unsigned int nextEntryOrLength; +} FSTEntry; + +static OSBootInfo* BootInfo; +static FSTEntry* FstStart; +static char* FstStringStart; +static u32 MaxEntryNum; +static u32 currentDirectory; + +OSThreadQueue __DVDThreadQueue; +u32 __DVDLongFileNameFlag = 1; + +// prototypes +static BOOL isSame(const char* path, const char* string); +static u32 myStrncpy(char* dest, char* src, u32 maxlen); +static u32 entryToPath(u32 entry, char* path, u32 maxlen); +static BOOL DVDConvertEntrynumToPath(s32 entrynum, char* path, u32 maxlen); +static void cbForReadAsync(s32 result, DVDCommandBlock* block); +static void cbForReadSync(s32 result, DVDCommandBlock* block); +static void cbForSeekAsync(s32 result, DVDCommandBlock* block); +static void cbForSeekSync(s32 result, DVDCommandBlock* block); +static void cbForPrepareStreamAsync(s32 result, DVDCommandBlock* block); +static void cbForPrepareStreamSync(s32 result, DVDCommandBlock* block); + +void __DVDFSInit(void) { + BootInfo = (void*)OSPhysicalToCached(0); + FstStart = BootInfo->FSTLocation; + if (FstStart) { + MaxEntryNum = FstStart->nextEntryOrLength; + FstStringStart = (char*)FstStart + (MaxEntryNum* sizeof(FSTEntry)); + } +} + +/* For convenience */ +#define entryIsDir(i) (((FstStart[i].isDirAndStringOff & 0xff000000) == 0) ? FALSE : TRUE) +#define stringOff(i) (FstStart[i].isDirAndStringOff & ~0xff000000) +#define parentDir(i) (FstStart[i].parentOrPosition) +#define nextDir(i) (FstStart[i].nextEntryOrLength) +#define filePosition(i) (FstStart[i].parentOrPosition) +#define fileLength(i) (FstStart[i].nextEntryOrLength) + +static BOOL isSame(const char* path, const char* string) { + while (*string != '\0') { + if (tolower(*path++) != tolower(*string++)) { + return FALSE; + } + } + + if (*path == '/' || *path == '\0') { + return TRUE; + } + + return FALSE; +} + +s32 DVDConvertPathToEntrynum(const char* pathPtr) { + const char* ptr; + char* stringPtr; + BOOL isDir; + u32 length; + u32 dirLookAt; + u32 i; + const char* origPathPtr = pathPtr; + const char* extentionStart; + BOOL illegal; + BOOL extention; + + ASSERTMSGLINE(383, pathPtr, "DVDConvertPathToEntrynum(): null pointer is specified "); + + dirLookAt = currentDirectory; + + while (1) { + if (*pathPtr == '\0') { + return (s32)dirLookAt; + } else if (*pathPtr == '/') { + dirLookAt = 0; + pathPtr++; + continue; + } else if (*pathPtr == '.') { + if (*(pathPtr + 1) == '.') { + if (*(pathPtr + 2) == '/') { + dirLookAt = parentDir(dirLookAt); + pathPtr += 3; + continue; + } else if (*(pathPtr + 2) == '\0') { + return (s32)parentDir(dirLookAt); + } + } else if (*(pathPtr + 1) == '/') { + pathPtr += 2; + continue; + } else if (*(pathPtr + 1) == '\0') { + return (s32)dirLookAt; + } + } + + if (__DVDLongFileNameFlag == 0) { + extention = FALSE; + illegal = FALSE; + + for (ptr = pathPtr; (*ptr != '\0') && (*ptr != '/'); ptr++) { + if (*ptr == '.') { + if ((ptr - pathPtr > 8) || (extention == TRUE)) { + illegal = TRUE; + break; + } + extention = TRUE; + extentionStart = ptr + 1; + + } else if (*ptr == ' ') + illegal = TRUE; + } + + if ((extention == TRUE) && (ptr - extentionStart > 3)) + illegal = TRUE; + + if (illegal) + OSPanic(__FILE__, 452, + "DVDConvertEntrynumToPath(possibly DVDOpen or DVDChangeDir or DVDOpenDir): " + "specified directory or file (%s) doesn't match standard 8.3 format. This is a " + "temporary restriction and will be removed soon\n", + origPathPtr); + } else { + for (ptr = pathPtr; (*ptr != '\0') && (*ptr != '/'); ptr++) + ; + } + + isDir = (*ptr == '\0') ? FALSE : TRUE; + length = (u32)(ptr - pathPtr); + + ptr = pathPtr; + + for (i = dirLookAt + 1; i < nextDir(dirLookAt); i = entryIsDir(i) ? nextDir(i) : (i + 1)) { + if ((entryIsDir(i) == FALSE) && (isDir == TRUE)) { + continue; + } + + stringPtr = FstStringStart + stringOff(i); + + if (isSame(ptr, stringPtr) == TRUE) { + goto next_hier; + } + } + + return -1; + +next_hier: + if (!isDir) { + return (s32)i; + } + + dirLookAt = i; + pathPtr += length + 1; + } +} + +BOOL DVDFastOpen(s32 entrynum, DVDFileInfo* fileInfo) { + ASSERTMSGLINE(536, fileInfo, "DVDFastOpen(): null pointer is specified to file info address "); + ASSERTMSG1LINE(539, (entrynum >= 0) && ((u32) entrynum < (u32) MaxEntryNum), "DVDFastOpen(): specified entry number '%d' is out of range ", entrynum); + ASSERTMSG1LINE(542, !entryIsDir(entrynum), "DVDFastOpen(): entry number '%d' is assigned to a directory ", entrynum); + + if (entrynum < 0 || entrynum >= MaxEntryNum || entryIsDir(entrynum)) { + return FALSE; + } + + fileInfo->startAddr = filePosition(entrynum) >> __DVDLayoutFormat; + fileInfo->length = fileLength(entrynum); + fileInfo->callback = (DVDCallback)NULL; + fileInfo->cb.state = DVD_STATE_END; + + return TRUE; +} + +BOOL DVDOpen(const char* fileName, DVDFileInfo* fileInfo) { + s32 entry; + char currentDir[128]; + + ASSERTMSGLINE(572, fileName, "DVDOpen(): null pointer is specified to file name "); + ASSERTMSGLINE(573, fileInfo, "DVDOpen(): null pointer is specified to file info address "); + + entry = DVDConvertPathToEntrynum(fileName); + + if (0 > entry) { + DVDGetCurrentDir(currentDir, 128); + OSReport("Warning: DVDOpen(): file '%s' was not found under %s.\n", fileName, currentDir); + return FALSE; + } + + if (entryIsDir(entry)) { + ASSERTMSG1LINE(587, !entryIsDir(entry), "DVDOpen(): directory '%s' is specified as a filename ", fileName); + return FALSE; + } + + fileInfo->startAddr = filePosition(entry) >> __DVDLayoutFormat; + fileInfo->length = fileLength(entry); + fileInfo->callback = (DVDCallback)NULL; + fileInfo->cb.state = DVD_STATE_END; + + return TRUE; +} + +BOOL DVDClose(DVDFileInfo* fileInfo) { + ASSERTMSGLINE(611, fileInfo, "DVDClose(): null pointer is specified to file info address "); + DVDCancel(&(fileInfo->cb)); + return TRUE; +} + +static u32 myStrncpy(char* dest, char* src, u32 maxlen) { + u32 i = maxlen; + + while ((i > 0) && (*src != 0)) { + *dest++ = *src++; + i--; + } + + return (maxlen - i); +} + +static u32 entryToPath(u32 entry, char* path, u32 maxlen) { + u32 i; + char* name; + u32 loc; + + if (entry == 0) { + return 0; + } + + name = FstStringStart + stringOff(entry); + if (entryIsDir(entry)) { + i = parentDir(entry); + } else { + i = entry; + while (i != 0) { + if (entryIsDir(i) && nextDir(i) > entry) { + break; + } + + i--; + } + } + + loc = entryToPath(i, path, maxlen); + if (loc == maxlen) { + return loc; + } + + *(path + loc++) = '/'; + + loc += myStrncpy(path + loc, name, maxlen - loc); + return loc; +} + +static BOOL DVDConvertEntrynumToPath(s32 entrynum, char* path, u32 maxlen) { + u32 loc; + + ASSERTMSG1LINE(721, (entrynum >= 0) && (entrynum < MaxEntryNum), "DVDConvertEntrynumToPath: specified entrynum(%d) is out of range ", entrynum); + ASSERTMSG1LINE(723, maxlen > 1, "DVDConvertEntrynumToPath: maxlen should be more than 1 (%d is specified)", maxlen); + + loc = entryToPath((u32)entrynum, path, maxlen); + + if (loc == maxlen) { + path[maxlen - 1] = '\0'; + return FALSE; + } + + if (entryIsDir(entrynum)) { + if (loc == maxlen - 1) { + path[loc] = '\0'; + return FALSE; + } + + path[loc++] = '/'; + } + + path[loc] = '\0'; + return TRUE; +} + +BOOL DVDGetCurrentDir(char* path, u32 maxlen) { + ASSERTMSG1LINE(765, (maxlen > 1), "DVDGetCurrentDir: maxlen should be more than 1 (%d is specified)", maxlen); + return DVDConvertEntrynumToPath((s32)currentDirectory, path, maxlen); +} + +BOOL DVDChangeDir(const char* dirName) { + s32 entry; + char currentDir[128]; + + ASSERTMSGLINE(787, dirName, "DVDChangeDir(): null pointer is specified to directory name "); + entry = DVDConvertPathToEntrynum(dirName); + ASSERTMSG2LINE(795, entry >= 0, "DVDChangeDir(): directory '%s' is not found under %s ", dirName, (DVDGetCurrentDir(currentDir, 128), currentDir)); + ASSERTMSG1LINE(799, entryIsDir(entry), "DVDChangeDir(): file '%s' is specified as a directory name ", dirName); + + if (entry < 0 || entryIsDir(entry) == FALSE) { + return FALSE; + } + + currentDirectory = (u32)entry; + return TRUE; +} + +BOOL DVDReadAsyncPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, DVDCallback callback, s32 prio) { + ASSERTMSGLINE(831, fileInfo, "DVDReadAsync(): null pointer is specified to file info address "); + ASSERTMSGLINE(832, addr, "DVDReadAsync(): null pointer is specified to addr "); + ASSERTMSGLINE(836, !OFFSET(addr, 32), "DVDReadAsync(): address must be aligned with 32 byte boundaries "); + ASSERTMSGLINE(838, !(length & 0x1F), "DVDReadAsync(): length must be multiple of 32 byte "); + ASSERTMSGLINE(840, !(offset & 3), "DVDReadAsync(): offset must be multiple of 4 byte "); + + DVD_ASSERTMSGLINE(845, (0 <= offset) && (offset <= fileInfo->length), "DVDReadAsync(): specified area is out of the file "); + + DVD_ASSERTMSGLINE(851, (0 <= offset + length) && (offset + length < fileInfo->length + DVD_MIN_TRANSFER_SIZE), "DVDReadAsync(): specified area is out of the file "); + + fileInfo->callback = callback; + DVDReadAbsAsyncPrio(&(fileInfo->cb), addr, length, (s32)(fileInfo->startAddr + (offset >> 2)), + cbForReadAsync, prio); + return TRUE; +} + +#ifndef offsetof +#define offsetof(type, memb) ((u32) & ((type*)0)->memb) +#endif + +static void cbForReadAsync(s32 result, DVDCommandBlock* block) { + DVDFileInfo* fileInfo; + + fileInfo = (DVDFileInfo*)((char*)block - offsetof(DVDFileInfo, cb)); + ASSERTLINE(869, (void*) &fileInfo->cb == (void*) block); + if (fileInfo->callback) { + (fileInfo->callback)(result, fileInfo); + } +} + +s32 DVDReadPrio(DVDFileInfo* fileInfo, void* addr, s32 length, s32 offset, s32 prio) { + int result; + DVDCommandBlock* block; + s32 state; + BOOL enabled; + s32 retVal; + + ASSERTMSGLINE(901, fileInfo, "DVDRead(): null pointer is specified to file info address "); + ASSERTMSGLINE(902, addr, "DVDRead(): null pointer is specified to addr "); + ASSERTMSGLINE(906, !OFFSET(addr, 32), "DVDRead(): address must be aligned with 32 byte boundaries "); + ASSERTMSGLINE(908, !(length & 0x1F), "DVDRead(): length must be multiple of 32 byte "); + ASSERTMSGLINE(910, !(offset & 3), "DVDRead(): offset must be multiple of 4 byte "); + + DVD_ASSERTMSGLINE(915, (0 <= offset) && (offset <= fileInfo->length), "DVDRead(): specified area is out of the file "); + DVD_ASSERTMSGLINE(921, (0 <= offset + length) && (offset + length < fileInfo->length + DVD_MIN_TRANSFER_SIZE), "DVDRead(): specified area is out of the file "); + + block = &fileInfo->cb; + result = DVDReadAbsAsyncPrio(block, addr, length, fileInfo->startAddr + (offset >> 2), cbForReadSync, prio); + if (result == 0) { + return -1; + } + enabled = OSDisableInterrupts(); + + while (1) { + state = ((volatile DVDCommandBlock*)block)->state; + if (state == 0) { + retVal = (s32)block->transferredSize; + break; + } else if (state == -1) { + retVal = -1; + break; + } else if (state == 10) { + retVal = -3; + break; + } + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return retVal; +} + +static void cbForReadSync(s32 result, DVDCommandBlock* block) { + OSWakeupThread(&__DVDThreadQueue); +} + +int DVDSeekAsyncPrio(DVDFileInfo* fileInfo, s32 offset, DVDCallback callback, s32 prio) { + ASSERTMSGLINE(898, fileInfo, "DVDSeek(): null pointer is specified to file info address "); + ASSERTMSGLINE(902, !(offset & 3), "DVDSeek(): offset must be multiple of 4 byte "); + + DVD_ASSERTMSGLINE(907, (0 <= offset) && (offset <= fileInfo->length), "DVDSeek(): offset is out of the file "); + + fileInfo->callback = callback; + DVDSeekAbsAsyncPrio(&fileInfo->cb, (u32)(char*)fileInfo->startAddr + offset, cbForSeekAsync, prio); + return 1; +} + +static void cbForSeekAsync(s32 result, DVDCommandBlock* block) { + DVDFileInfo* fileInfo; + + fileInfo = (DVDFileInfo *)&block->next; + ASSERTLINE(925, (void*) &fileInfo->cb == (void*) block); + if (fileInfo->callback) { + (fileInfo->callback)(result, fileInfo); + } +} + +s32 DVDSeekPrio(DVDFileInfo* fileInfo, s32 offset, s32 prio) { + int result; + DVDCommandBlock* block; + s32 state; + BOOL enabled; + s32 retVal; + + ASSERTMSGLINE(955, fileInfo, "DVDSeek(): null pointer is specified to file info address "); + ASSERTMSGLINE(959, !(offset & 3), "DVDSeek(): offset must be multiple of 4 byte "); + ASSERTMSGLINE(963, (offset >= 0) && ((u32) offset <= (u32) fileInfo->length), "DVDSeek(): offset is out of the file "); + + block = &fileInfo->cb; + result = DVDSeekAbsAsyncPrio(block, (u32)(char*)fileInfo->startAddr + offset, cbForSeekSync, prio); + if (!result) { + return -1; + } + enabled = OSDisableInterrupts(); + + while (1) { + state = ((volatile DVDCommandBlock*)block)->state; + if (state == 0) { + retVal = 0; + break; + } else if (state == -1) { + retVal = -1; + break; + } else if (state == 10) { + retVal = -3; + break; + } + OSSleepThread(&__DVDThreadQueue); + } + + OSRestoreInterrupts(enabled); + return retVal; +} + +static void cbForSeekSync(s32 result, DVDCommandBlock* block) { + OSWakeupThread(&__DVDThreadQueue); +} + +s32 DVDGetFileInfoStatus(const DVDFileInfo* fileInfo) { + return DVDGetCommandBlockStatus(&fileInfo->cb); +} + +BOOL DVDFastOpenDir(s32 entrynum, DVDDir* dir) { + ASSERTMSGLINE(1048, dir, "DVDFastOpenDir(): null pointer is specified to dir structure address "); + ASSERTMSG1LINE(1051, entrynum >= 0 && entrynum < MaxEntryNum, "DVDFastOpenDir(): specified entry number \'%d\' is out of range ", entrynum); + ASSERTMSG1LINE(1054, entryIsDir(entrynum), "DVDFastOpenDir(): entry number \'%d\' is assigned to a file ", entrynum); + + if (entrynum < 0 || entrynum >= MaxEntryNum || !entryIsDir(entrynum)) { + return FALSE; + } + + dir->entryNum = entrynum; + dir->location = entrynum + 1; + dir->next = FstStart[entrynum].nextEntryOrLength; + return TRUE; +} + +BOOL DVDOpenDir(const char* dirName, DVDDir* dir) { + s32 entry; + char currentDir[128]; + + ASSERTMSGLINE(1178, dirName, "DVDOpendir(): null pointer is specified to directory name "); + ASSERTMSGLINE(1179, dir, "DVDOpenDir(): null pointer is specified to dir structure address "); + + entry = DVDConvertPathToEntrynum(dirName); + if (entry < 0) { + DVDGetCurrentDir(currentDir, sizeof(currentDir)); + OSReport("Warning: DVDOpenDir(): file \'%s\' was not found under %s.\n", dirName, currentDir); + return FALSE; + } + + if (!entryIsDir(entry)) { + ASSERTMSG1LINE(1193, entryIsDir(entry), "DVDOpendir(): file \'%s\' is specified as a directory name ", dirName); + return FALSE; + } + + dir->entryNum = entry; + dir->location = entry + 1; + dir->next = nextDir(entry); + return TRUE; +} + +int DVDReadDir(DVDDir* dir, DVDDirEntry* dirent) { + u32 loc; + + loc = dir->location; + if ((loc <= (u32) dir->entryNum) || ((u32) dir->next <= loc)) { + return 0; + } + dirent->entryNum = loc; + dirent->isDir = entryIsDir(loc); + dirent->name = FstStringStart + stringOff(loc); + dir->location = entryIsDir(loc) ? nextDir(loc) : loc + 1; + return 1; +} + +int DVDCloseDir(DVDDir* dir) { + return 1; +} + +void DVDRewindDir(DVDDir* dir) { + dir->location = dir->entryNum + 1; +} + +void* DVDGetFSTLocation(void) { + return BootInfo->FSTLocation; +} + +s32 DVDGetTransferredSize(DVDFileInfo* fileinfo) { + s32 bytes; + DVDCommandBlock* cb; + + cb = &(fileinfo->cb); + + switch (cb->state) { + case DVD_STATE_COVER_CLOSED: + case DVD_STATE_NO_DISK: + case DVD_STATE_COVER_OPEN: + case DVD_STATE_WRONG_DISK: + case DVD_STATE_FATAL_ERROR: + case DVD_STATE_MOTOR_STOPPED: + case DVD_STATE_CANCELED: + case DVD_STATE_RETRY: + case DVD_STATE_END: + bytes = (s32)cb->transferredSize; + break; + case DVD_STATE_WAITING: + bytes = 0; + break; + case DVD_STATE_BUSY: + bytes = (s32)(cb->transferredSize + (cb->currTransferSize - __DIRegs[6])); + break; + default: + ASSERTMSG1LINE(1391, FALSE, "DVDGetTransferredSize(): Illegal state (%d)", cb->state); + break; + } + + return bytes; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +void DVDGetEntrynum() { + OSReport("DVDGetEntrynum(): null pointer is specified to file info address "); +} + +// NOTE: function doesn't exist in TP debug, needed for string data +void DVDGetEntryName() { + OSReport("DVDGetEntryName: specified entrynum(%d) is out of range "); +} diff --git a/src/revolution/dvd/dvdidutils.c b/src/revolution/dvd/dvdidutils.c new file mode 100644 index 0000000000..2742086b58 --- /dev/null +++ b/src/revolution/dvd/dvdidutils.c @@ -0,0 +1,98 @@ +#include +#include +#include + +#include "__dvd.h" + +static u32 strnlen(const char* str, u32 maxlen) { + u32 i; + + for (i = 0; i < maxlen; i++) { + if (*str++ == 0) { + return i; + } + } + + return maxlen; +} + +int DVDCompareDiskID(const DVDDiskID* id1, const DVDDiskID* id2) { +#ifdef DEBUG + const char* game1; + const char* game2; + const char* company1; + const char* company2; + u8 diskNum1; + u8 diskNum2; + u8 version1; + u8 version2; + u32 length; + + ASSERTMSGLINE(70, id1, "DVDCompareDiskID(): Specified id1 is NULL\n"); + ASSERTMSGLINE(71, id2, "DVDCompareDiskID(): Specified id2 is NULL\n"); + + game1 = id1->gameName; + game2 = id2->gameName; + company1 = id1->company; + company2 = id2->company; + diskNum1 = id1->diskNumber; + diskNum2 = id2->diskNumber; + version1 = id1->gameVersion; + version2 = id2->gameVersion; + + length = strnlen(game1, sizeof(game1)); + ASSERTMSGLINE(84, length == 0 || length == 4, "DVDCompareDiskID(): Specified game name for id1 is neither NULL nor 4 character long\n"); + ASSERTMSGLINE(85, company1, "DVDCompareDiskID(): Specified company name for id1 is NULL\n"); + ASSERTMSGLINE(86, company1[1] != 0, "DVDCompareDiskID(): Specified company name for id1 is not 2 character long\n"); + ASSERTMSGLINE(87, diskNum1 == 0xFF || ((diskNum1 / 16) < 10 && diskNum1 % 16 < 10), "DVDCompareDiskID(): Specified disk number for id1 is neither 0xff nor a BCD number"); + ASSERTMSGLINE(88, version1 == 0xFF || ((version1 / 16) < 10 && version1 % 16 < 10), "DVDCompareDiskID(): Specified version number for id1 is neither 0xff nor a BCD number"); + + length = strnlen(game2, sizeof(game2)); + ASSERTMSGLINE(91, length == 0 || length == 4, "DVDCompareDiskID(): Specified game name for id2 is neither NULL nor 4 character long\n"); + ASSERTMSGLINE(92, company2, "DVDCompareDiskID(): Specified company name for id2 is NULL\n"); + ASSERTMSGLINE(93, company2[1] != 0, "DVDCompareDiskID(): Specified company name for id2 is not 2 character long\n"); + ASSERTMSGLINE(94, diskNum2 == 0xFF || ((diskNum2 / 16) < 10 && diskNum2 % 16 < 10), "DVDCompareDiskID(): Specified disk number for id2 is neither 0xff nor a BCD number"); + ASSERTMSGLINE(95, version2 == 0xFF || ((version2 / 16) < 10 && version2 % 16 < 10), "DVDCompareDiskID(): Specified version number for id2 is neither 0xff nor a BCD number"); +#endif + + if (id1->gameName[0] != 0 && id2->gameName[0] != 0 && strncmp(id1->gameName, id2->gameName, 4) != 0) { + return 0; + } + + if (id1->company[0] == 0 || id2->company[0] == 0 || strncmp(id1->company, id2->company, 2) != 0) { + return 0; + } + + if (id1->diskNumber != 0xFF && id2->diskNumber != 0xFF && id1->diskNumber != id2->diskNumber) { + return 0; + } + + if (id1->gameVersion != 0xFF && id2->gameVersion != 0xFF && id1->gameVersion != id2->gameVersion) { + return 0; + } + + return 1; +} + +DVDDiskID* DVDGenerateDiskID(DVDDiskID* id, const char* game, const char* company, u8 diskNum, u8 version) { + ASSERTMSGLINE(123, id, "DVDGenerateDiskID(): Specified id is NULL\n"); + ASSERTMSGLINE(124, game == NULL || strlen(game) == 4, "DVDGenerateDiskID(): Specified game name is neither NULL nor 4 character long\n"); + ASSERTMSGLINE(125, company, "DVDGenerateDiskID(): Specified company name is NULL\n"); + ASSERTMSGLINE(126, strlen(company) == 2, "DVDGenerateDiskID(): Specified company name is not 2 character long\n"); + ASSERTMSGLINE(127, diskNum == 0xFF || ((diskNum / 16) < 10 && diskNum % 16 < 10), "DVDGenerateDiskID(): Specified disk number is neither 0xff nor a BCD number"); + ASSERTMSGLINE(128, version == 0xFF || ((version / 16) < 10 && version % 16 < 10), "DVDGenerateDiskID(): Specified version number is neither 0xff nor a BCD number"); + + memset(id, 0, sizeof(DVDDiskID)); + + if (game != NULL) { + strncpy(id->gameName, game, 4); + } + + if (company != NULL) { + strncpy(id->company, company, 2); + } + + id->diskNumber = diskNum; + id->gameVersion = version; + return id; +} diff --git a/src/revolution/dvd/dvdqueue.c b/src/revolution/dvd/dvdqueue.c new file mode 100644 index 0000000000..aa60da0d7a --- /dev/null +++ b/src/revolution/dvd/dvdqueue.c @@ -0,0 +1,192 @@ +#include +#include + +#include "__dvd.h" + +static struct { + /* 0x00 */ DVDCommandBlock* next; + /* 0x04 */ DVDCommandBlock* prev; +} WaitingQueue[4]; + +// prototypes +static DVDCommandBlock* PopWaitingQueuePrio(s32 prio); + +void __DVDClearWaitingQueue(void) { + u32 i; + + for(i = 0; i < 4; i++) { + DVDCommandBlock* q = (DVDCommandBlock*)&WaitingQueue[i].next; + q->next = q; + q->prev = q; + } +} + +int __DVDPushWaitingQueue(s32 prio, DVDCommandBlock* block) { + BOOL enabled = OSDisableInterrupts(); + DVDCommandBlock* q = (DVDCommandBlock*)&WaitingQueue[prio]; + + q->prev->next = block; + block->prev = q->prev; + block->next = q; + q->prev = block; + OSRestoreInterrupts(enabled); + return 1; +} + +static DVDCommandBlock* PopWaitingQueuePrio(s32 prio) { + DVDCommandBlock* tmp; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + q = (DVDCommandBlock*)&WaitingQueue[prio]; + ASSERTLINE(99, q->next != q); + + tmp = q->next; + q->next = tmp->next; + tmp->next->prev = q; + OSRestoreInterrupts(enabled); + tmp->next = 0; + tmp->prev = 0; + return tmp; +} + +DVDCommandBlock* __DVDPopWaitingQueue(void) { + u32 i; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + for (i = 0; i < 4; i++) { + q = (DVDCommandBlock*)&WaitingQueue[i]; + if (q->next != q) { + OSRestoreInterrupts(enabled); + return PopWaitingQueuePrio(i); + } + } + + OSRestoreInterrupts(enabled); + return NULL; +} + +int __DVDCheckWaitingQueue(void) { + u32 i; + BOOL enabled; + DVDCommandBlock* q; + + enabled = OSDisableInterrupts(); + for (i = 0; i < 4; i++) { + q = (DVDCommandBlock*)&WaitingQueue[i]; + if (q->next != q) { + OSRestoreInterrupts(enabled); + return 1; + } + } + + OSRestoreInterrupts(enabled); + return 0; +} + +DVDCommandBlock* __DVDGetNextWaitingQueue(void) { + u32 i; + BOOL enabled; + DVDCommandBlock* q, *tmp; + + enabled = OSDisableInterrupts(); + + for (i = 0; i < 4; i++) { + q = (DVDCommandBlock*)&(WaitingQueue[i]); + + if (q->next != q) { + tmp = q->next; + OSRestoreInterrupts(enabled); + return tmp; + } + } + + OSRestoreInterrupts(enabled); + return NULL; +} + +int __DVDDequeueWaitingQueue(DVDCommandBlock* block) { + BOOL enabled; + DVDCommandBlock* prev; + DVDCommandBlock* next; + + enabled = OSDisableInterrupts(); + prev = block->prev; + next = block->next; + if (prev == NULL || next == NULL) { + OSRestoreInterrupts(enabled); + return 0; + } + prev->next = next; + next->prev = prev; + OSRestoreInterrupts(enabled); + return 1; +} + +int __DVDIsBlockInWaitingQueue(DVDCommandBlock* block) { + u32 i; + DVDCommandBlock* start; + DVDCommandBlock* q; + + for (i = 0; i < 4; i++) { + start = (DVDCommandBlock*)&WaitingQueue[i]; + if (start->next == start) { + continue; + } + + for (q = start->next; q != start; q = q->next) { + if (q == block) { + return 1; + } + } + } + + return 0; +} + +static char* CommandNames[16] = { + "", + "READ", + "SEEK", + "CHANGE_DISK", + "BSREAD", + "READID", + "INITSTREAM", + "CANCELSTREAM", + "STOP_STREAM_AT_END", + "REQUEST_AUDIO_ERROR", + "REQUEST_PLAY_ADDR", + "REQUEST_START_ADDR", + "REQUEST_LENGTH", + "AUDIO_BUFFER_CONFIG", + "INQUIRY", + "BS_CHANGE_DISK", +}; + +void DVDDumpWaitingQueue(void) { + u32 i; + DVDCommandBlock* start; + DVDCommandBlock* q; + + OSReport("==== DVD Waiting Queue Status ====\n"); + for (i = 0; i < 4; i++) { + OSReport("< Queue #%d > ", i); + start = (DVDCommandBlock*)&WaitingQueue[i]; + if (start->next == start) { + OSReport("None\n"); + } else { + OSReport("\n"); + for (q = start->next; q != start; q = q->next) { + OSReport("0x%08x: Command: %s ", q, CommandNames[q->command]); + if (q->command == 1) { + OSReport("Disk offset: %d, Length: %d, Addr: 0x%08x\n", q->offset, q->length, q->addr); + } else { + OSReport("\n"); + } + } + } + } +} diff --git a/src/revolution/fs/fs.c b/src/revolution/fs/fs.c new file mode 100644 index 0000000000..5ea6eecd54 --- /dev/null +++ b/src/revolution/fs/fs.c @@ -0,0 +1,973 @@ +#include +#include +#include + +static IOSFd __fsFd = -1; +static u32 __fsInitialized = FALSE; +static char* __devfs = 0; +static IOSHeapId hId; +static s32 _asynCnt = 0; + +#define ROUNDUP(sz) (((u32)(sz) + 31) & ~(u32)(31)) + +typedef struct isfs_GetAttr { + IOSUid* ownerId; + IOSGid* groupId; + u32* attr; + u32* ownerAcc; + u32* groupAcc; + u32* othersAcc; +} isfs_GetAttr; + +typedef struct isfs_GetUsage { + u32* nblocks; + u32* ninodes; +} isfs_GetUsage; + +typedef struct __isfsCtxt { + u8 ioBuf[ROUNDUP(256)] ATTRIBUTE_ALIGN(32); + ISFSCallback cb; + void* ctxt; + u32 func; + + union { + ISFSStats* stats; + ISFSFileStats* fstats; + u32* num; + isfs_GetAttr ga; + isfs_GetUsage gu; + } args; +} __isfsCtxt; + +static IOSError _FSGetStatsCb(IOSError ret, void* ctxt); +static IOSError _FSReadDirCb(IOSError ret, void* ctxt); +static IOSError _FSGetAttrCb(IOSError ret, void* ctxt); +static IOSError _FSGetUsageCb(IOSError ret, void* ctxt); +static IOSError _FSGetFileStatsCb(IOSError ret, void* ctxt); + +ISFSError ISFS_OpenLib(void) { + ISFSError rc = 0; + static void* lo = 0, *hi = 0; + __isfsCtxt* __fsCtxt = 0; + + if (!__fsInitialized) { + lo = IPCGetBufferLo(); + hi = IPCGetBufferHi(); + } + + __devfs = (char*)ROUNDUP(lo); + if (!__fsInitialized && ((u32)__devfs + ROUNDUP(64)) > (u32)hi) { + OSReport("APP ERROR: Not enough IPC arena\n"); + rc = -22; + goto out; + } + + strcpy(__devfs, "/dev/fs"); + __fsFd = IOS_Open(__devfs, 0); + + if (__fsFd < 0) { + rc = __fsFd; + goto out; + } + + __fsCtxt = (__isfsCtxt*)((u32)__devfs); + + if (!__fsInitialized && ((u32)__fsCtxt + (16 + 1) * ROUNDUP(sizeof(__isfsCtxt))) > (u32)hi) { + OSReport("APP ERROR: Not enough IPC arena\n"); + rc = -22; + goto out; + } + + if (!__fsInitialized) { + IPCSetBufferLo((void*)((u32)__fsCtxt + (17) * ROUNDUP(sizeof(__isfsCtxt)))); + __fsInitialized = TRUE; + } + + hId = iosCreateHeap(__fsCtxt, 17 * ROUNDUP(sizeof(__isfsCtxt))); + + if (hId < 0) { + rc = -22; + goto out; + } + +out: + return rc; +} + +IOSError _isfsFuncCb(IOSError ret, void* ctxt) { + ISFSError rc = 0; + __isfsCtxt* _ctxt = (__isfsCtxt*)ctxt; + rc = ret; + + if (rc >= 0) { + switch (_ctxt->func) { + case 1: + _FSGetStatsCb(ret, ctxt); + break; + case 2: + _FSReadDirCb(ret, ctxt); + break; + case 3: + _FSGetAttrCb(ret, ctxt); + break; + case 4: + _FSGetUsageCb(ret, ctxt); + break; + case 5: + _FSGetFileStatsCb(ret, ctxt); + break; + default: + break; + } + } + + _asynCnt = 0; + + if (_ctxt->cb) { + _ctxt->cb(rc, _ctxt->ctxt); + } + + if (ctxt) { + iosFree(hId, ctxt); + } + + return rc; +} + +static IOSError _FSGetStatsCb(IOSError ret, void* ctxt) { + __isfsCtxt* _ctxt = (__isfsCtxt*)ctxt; + ISFSError rc = ISFS_ERROR_OK; + + if (ret == 0) { + memcpy(_ctxt->args.stats, _ctxt->ioBuf, sizeof(*_ctxt->args.stats)); + } + + return rc; +} + +s32 ISFS_CreateDir(const u8* dname, u32 dirAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc) { + ISFSError rc = ISFS_ERROR_OK; + ISFSPathAttrArgs* pathAttrArgs; + __isfsCtxt* blCtxt = 0; + u32 len; + + if (dname == NULL || __fsFd < 0 || (len = strnlen(dname, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + pathAttrArgs = (ISFSPathAttrArgs*)blCtxt->ioBuf; + memcpy(pathAttrArgs->path, dname, len + 1); + + pathAttrArgs->attr = (u8)dirAttr; + pathAttrArgs->ownerAccess = (u8)ownerAcc; + pathAttrArgs->groupAccess = (u8)groupAcc; + pathAttrArgs->othersAccess = (u8)othersAcc; + rc = IOS_Ioctl(__fsFd, 3, pathAttrArgs, sizeof(*pathAttrArgs), NULL, 0); + +out: + /* they seem to have had a macro for this, and the programmer forgot it did a NULL check */ + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + + } + + return rc; +} + +s32 ISFS_CreateDirAsync(const u8* dname, u32 dirAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + u32 len; + ISFSPathAttrArgs* pathAttrArgs; + __isfsCtxt* ctxt; + + if (dname == NULL || __fsFd < 0 || (len = strnlen(dname, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + pathAttrArgs = (ISFSPathAttrArgs*)ctxt->ioBuf; + memcpy(pathAttrArgs->path, (void*)dname, len + 1); + pathAttrArgs->attr = dirAttr; + pathAttrArgs->ownerAccess = ownerAcc; + pathAttrArgs->groupAccess = groupAcc; + pathAttrArgs->othersAccess = othersAcc; + rc = IOS_IoctlAsync(__fsFd, 3, pathAttrArgs, sizeof(*pathAttrArgs), NULL, 0, _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_ReadDir(const u8* dname, u8* nameList, u32* num) { + ISFSError rc = ISFS_ERROR_OK; + IOSIoVector* v = 0; + u32 len, numInputs, numOutputs, *numPtr; + char* dnPtr; + __isfsCtxt* blCtxt = 0; + + if (dname == NULL || num == NULL || __fsFd < 0 || (u32)nameList & 31 || (len = strnlen(dname, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + v = (IOSIoVector*)blCtxt->ioBuf; + dnPtr = (char*)ROUNDUP((u8*)&v[4]); + memcpy(dnPtr, dname, len + 1); + v[0].base = (u8*)dnPtr; + v[0].length = 64; + numPtr = (u32*)ROUNDUP((u32)dnPtr + 64); + v[1].base = (u8*)numPtr; + v[1].length = 4; + + if (nameList != 0) { + numInputs = 2; + numOutputs = 2; + *numPtr = *num; + v[2].base = nameList; + v[2].length = *num * 13; + v[3].base = (u8*)numPtr; + v[3].length = 4; + } else { + numInputs = 1; + numOutputs = 1; + } + + rc = IOS_Ioctlv(__fsFd, 4, numInputs, numOutputs, v); + + if (rc != ISFS_ERROR_OK) { + goto out; + } + + *num = *numPtr; + +out: + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + } + + return rc; +} + +static IOSError _FSReadDirCb(IOSError ret, void* ctxt) { + ISFSError rc = ISFS_ERROR_OK; + __isfsCtxt* _ctxt = (__isfsCtxt*)ctxt; + + if (ret == 0) { + u8* ptr; + IOSIoVector* v = (IOSIoVector*)_ctxt->ioBuf; + ptr = (u8*)ROUNDUP((u8*)&v[4]); + ptr = (u8*)ROUNDUP(ptr + 64); + *_ctxt->args.num = *(u32 *) ptr; + } + + return rc; +} + +s32 ISFS_ReadDirAsync(const u8* dname, u8* nameList, u32* num, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + u32 len, numOutputs, numInputs, *numPtr; + IOSIoVector* v; + __isfsCtxt* ctxt; + char* dnPtr; + + if (dname == NULL || num == NULL || __fsFd < 0 || (u32)nameList & 31 || (len = strnlen(dname, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 2; + ctxt->args.num = num; + v = (IOSIoVector*)ctxt->ioBuf; + dnPtr = (char*)ROUNDUP((u8*)&v[4]); + memcpy(dnPtr, dname, len + 1); + v[0].base = (u8*)dnPtr; + v[0].length = 64; + numPtr = (u32*)ROUNDUP((u32)dnPtr + 64); + v[1].base = (u8*)numPtr; + v[1].length = 4; + + if (nameList != 0) { + numInputs = 2; + numOutputs = 2; + *numPtr = *num; + v[2].base = nameList; + v[2].length = *num * 13; + v[3].base = (u8*)numPtr; + v[3].length = 4; + } else { + numInputs = 1; + numOutputs = 1; + } + + rc = IOS_IoctlvAsync(__fsFd, 4, numInputs, numOutputs, v, _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_GetAttr(const u8* name, IOSUid* ownerId, IOSGid* groupId, u32* attr, u32* ownerAcc, u32* groupAcc, u32* othersAcc) { + ISFSError rc = ISFS_ERROR_OK; + ISFSPathAttrArgs* pathAttrArgs; + u8* ptr; + u32 len; + __isfsCtxt* blCtxt = 0; + + if (name == NULL || __fsFd < 0 || + (len = strnlen(name, 64)) == 64 || + ownerId == NULL || groupId == NULL || attr == NULL || + ownerAcc == NULL || groupAcc == NULL || othersAcc == NULL) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + ptr = (u8*)blCtxt->ioBuf; + memcpy(ptr, name, len + 1); + pathAttrArgs = (ISFSPathAttrArgs*)ROUNDUP(ptr + 64); + rc = IOS_Ioctl(__fsFd, 6, ptr, 64, pathAttrArgs, sizeof(*pathAttrArgs)); + + if (rc != IOS_ERROR_OK) { + goto out; + } + + *ownerId = pathAttrArgs->ownerId; + *groupId = pathAttrArgs->groupId; + *attr = pathAttrArgs->attr; + *ownerAcc = pathAttrArgs->ownerAccess; + *groupAcc = pathAttrArgs->groupAccess; + *othersAcc = pathAttrArgs->othersAccess; + +out: + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + } + + return rc; +} + +static IOSError _FSGetAttrCb(IOSError ret, void* ctxt) { + ISFSError rc = ret; + + if (ret == 0) { + __isfsCtxt* _ctxt = (__isfsCtxt*)ctxt; + ISFSPathAttrArgs* pathAttrArgs = (ISFSPathAttrArgs*)ROUNDUP(_ctxt->ioBuf + 64); + + *_ctxt->args.ga.ownerId = pathAttrArgs->ownerId; + *_ctxt->args.ga.groupId = pathAttrArgs->groupId; + *_ctxt->args.ga.attr = pathAttrArgs->attr; + *_ctxt->args.ga.ownerAcc = pathAttrArgs->ownerAccess; + *_ctxt->args.ga.groupAcc = pathAttrArgs->groupAccess; + *_ctxt->args.ga.othersAcc = pathAttrArgs->othersAccess; + } + + return rc; +} + +s32 ISFS_GetAttrAsync(const u8* name, IOSUid* ownerId, IOSGid* groupId, u32* attr, u32* ownerAcc, u32* groupAcc, u32* othersAcc, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + __isfsCtxt *ctxt; + ISFSPathAttrArgs *pathAttrArgs; + u8 *ptr; + u32 len; + + if (name == NULL || __fsFd < 0 || + (len = strnlen(name, 64)) == 64 || + ownerId == NULL || groupId == NULL || attr == NULL || + ownerAcc == NULL || groupAcc == NULL || othersAcc == NULL) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->args.ga.ownerId = ownerId; + ctxt->args.ga.groupId = groupId; + ctxt->args.ga.attr = attr; + ctxt->args.ga.ownerAcc = ownerAcc; + ctxt->args.ga.groupAcc = groupAcc; + ctxt->args.ga.othersAcc = othersAcc; + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 3; + + ptr = (u8*)ctxt->ioBuf; + memcpy(ptr, name, len + 1); + pathAttrArgs = (ISFSPathAttrArgs*)ROUNDUP(ptr + 64); + + rc = IOS_IoctlAsync(__fsFd, 6, ptr, 64, pathAttrArgs, sizeof(*pathAttrArgs), _isfsFuncCb, ctxt); +out: + return rc; +} + +s32 ISFS_Delete(const u8* name) { + ISFSError rc = ISFS_ERROR_OK; + u32 len; + __isfsCtxt* blCtxt = 0; + + if (name == NULL || __fsFd < 0 || (len = strnlen(name, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + memcpy(blCtxt->ioBuf, name, len + 1); + rc = IOS_Ioctl(__fsFd, 7, blCtxt->ioBuf, 64, NULL, 0); + +out: + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + } + + return rc; +} + +s32 ISFS_DeleteAsync(const u8* name, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + u32 len; + __isfsCtxt* ctxt; + + if (name == NULL || __fsFd < 0 || (len = strnlen(name, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + memcpy(ctxt->ioBuf, name, len + 1); + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + rc = IOS_IoctlAsync(__fsFd, 7, ctxt->ioBuf, 64, NULL, 0, _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_Rename(const u8* oldName, const u8* newName) { + ISFSError rc = ISFS_ERROR_OK; + ISFSPathsArgs* pathsArgs; + u32 oldLen, newLen; + __isfsCtxt* blCtxt = 0; + + if (oldName == NULL || newName == NULL || __fsFd < 0 || + (oldLen = strnlen(oldName, 64)) == 64 || + (newLen = strnlen(newName, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + pathsArgs = (ISFSPathsArgs*)blCtxt->ioBuf; + memcpy(pathsArgs->path1, oldName, oldLen + 1); + memcpy(pathsArgs->path2, newName, newLen + 1); + rc = IOS_Ioctl(__fsFd, 8, pathsArgs, sizeof(*pathsArgs), NULL, 0); + +out: + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + } + + return rc; +} + +s32 ISFS_RenameAsync(const u8* oldName, const u8* newName, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + ISFSPathsArgs* pathsArgs; + u32 oldLen, newLen; + __isfsCtxt* ctxt; + + if ((oldName == NULL) || newName == NULL || __fsFd < 0 || + (oldLen = strnlen(oldName, 64)) == 64 || + (newLen = strnlen(newName, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == NULL) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + + pathsArgs = (ISFSPathsArgs*)ctxt->ioBuf; + memcpy(pathsArgs->path1, oldName, oldLen + 1); + memcpy(pathsArgs->path2, newName, newLen + 1); + rc = IOS_IoctlAsync(__fsFd, 8, pathsArgs, sizeof(*pathsArgs), NULL, 0, _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_GetUsage(const u8* dname, u32* nblocks, u32* ninodes) { + ISFSError rc = ISFS_ERROR_OK; + IOSIoVector* v = 0; + u32 len, *blkPtr, *inodePtr; + char* dnPtr; + __isfsCtxt* blCtxt = 0; + + if (dname == NULL || __fsFd < 0 || + nblocks == NULL || ninodes == NULL || + (len = strnlen(dname, 64)) == 64) { + + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + v = (IOSIoVector*)blCtxt->ioBuf; + dnPtr = (char*)ROUNDUP((u8*)&v[3]); + memcpy(dnPtr, dname, len + 1); + v[0].base = (u8*)dnPtr; + v[0].length = 64; + + blkPtr = (u32*) ROUNDUP(((u32)dnPtr) + 64); + inodePtr = (u32*) ROUNDUP(((u32)blkPtr) + 4); + v[1].base = (u8*) blkPtr; + v[1].length = 4; + v[2].base = (u8*)inodePtr; + v[2].length = 4; + + rc = IOS_Ioctlv(__fsFd, 12, 1, 2, v); + if (rc != ISFS_ERROR_OK) { + goto out; + } + + *nblocks = *blkPtr; + *ninodes = *inodePtr; + +out: + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + } + + return rc; +} + +static IOSError _FSGetUsageCb(IOSError ret, void* ctxt) { + ISFSError rc = ISFS_ERROR_OK; + __isfsCtxt* _ctxt = (__isfsCtxt*)ctxt; + + if (ret == 0) { + u8* ptr; + IOSIoVector* v = (IOSIoVector*)_ctxt->ioBuf; + ptr = (u8*)ROUNDUP((u8*)&v[4]); + ptr = (u8*)ROUNDUP(ptr + 64); + *_ctxt->args.gu.nblocks = *(u32*)ptr; + ptr = (u8*)ROUNDUP(ptr + 4); + *_ctxt->args.gu.ninodes = *(u32*)ptr; + } + + return rc; +} + +s32 ISFS_CreateFile(const u8* fname, u32 fileAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc) { + ISFSError rc = ISFS_ERROR_OK; + ISFSPathAttrArgs* pathAttrArgs; + u32 len; + __isfsCtxt* blCtxt = NULL; + + if (fname == NULL || __fsFd < 0 || (len = strnlen(fname, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + pathAttrArgs = (ISFSPathAttrArgs*)blCtxt->ioBuf; + memcpy(pathAttrArgs->path, fname, len + 1); + pathAttrArgs->attr = fileAttr; + pathAttrArgs->ownerAccess = ownerAcc; + pathAttrArgs->groupAccess = groupAcc; + pathAttrArgs->othersAccess = othersAcc; + rc = IOS_Ioctl(__fsFd, 9, pathAttrArgs, sizeof(*pathAttrArgs), NULL, 0); + +out: + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + } + + return rc; +} + +s32 ISFS_CreateFileAsync(const u8* fname, u32 fileAttr, u32 ownerAcc, u32 groupAcc, u32 othersAcc, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + ISFSPathAttrArgs* pathAttrArgs; + u32 len; + __isfsCtxt* ctxt; + + if (fname == NULL || __fsFd < 0 || (len = strnlen(fname, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + + pathAttrArgs = (ISFSPathAttrArgs*)ctxt->ioBuf; + memcpy(pathAttrArgs->path, fname, len + 1); + pathAttrArgs->attr = fileAttr; + pathAttrArgs->ownerAccess = ownerAcc; + pathAttrArgs->groupAccess = groupAcc; + pathAttrArgs->othersAccess = othersAcc; + rc = IOS_IoctlAsync(__fsFd, 9, pathAttrArgs, sizeof(*pathAttrArgs), NULL, 0, _isfsFuncCb, ctxt); + +out: + return rc; +} + +IOSFd ISFS_Open(const u8* fname, u32 access) { + ISFSError rc = ISFS_ERROR_OK; + u32 len; + __isfsCtxt* blCtxt = 0; + + if (fname == NULL || (len = strnlen(fname, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + memcpy(blCtxt->ioBuf, fname, len + 1); + rc = IOS_Open((const char*)blCtxt->ioBuf, access); + +out: + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + } + + return rc; +} + +IOSFd ISFS_OpenAsync(const u8* fname, u32 access, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + u32 len; + __isfsCtxt* ctxt; + + if (fname == NULL || (len = strnlen(fname, 64)) == 64) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + memcpy(ctxt->ioBuf, fname, len + 1); + rc = IOS_OpenAsync((const char*)ctxt->ioBuf, access, _isfsFuncCb, ctxt); + +out: + return rc; +} + +static IOSError _FSGetFileStatsCb(IOSError ret, void* ctxt) { + __isfsCtxt* _ctxt = (__isfsCtxt*)ctxt; + ISFSError rc = ISFS_ERROR_OK; + + if (ret == 0) { + memcpy(_ctxt->args.fstats, _ctxt->ioBuf, sizeof(*_ctxt->args.fstats)); + } + + return rc; +} + +s32 ISFS_GetFileStats(IOSFd fd, ISFSFileStats* stats) { + ISFSError rc = ISFS_ERROR_OK; + __isfsCtxt* blCtxt = 0; + + if (stats == NULL || ((u32)stats & 31)) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + blCtxt = iosAllocAligned(hId, sizeof(*blCtxt), 32); + if (blCtxt == 0) { + rc = IOS_ERROR_FAIL_ALLOC; + goto out; + } + + rc = IOS_Ioctl(fd, 11, NULL, 0, blCtxt->ioBuf, sizeof(*stats)); + + if (rc != IOS_ERROR_OK) { + goto out; + } + + memcpy(stats, blCtxt->ioBuf, sizeof(*stats)); + +out: + if (blCtxt != 0) { + if (blCtxt != 0) { + iosFree(hId, blCtxt); + } + } + + return rc; +} + +s32 ISFS_GetFileStatsAsync(IOSFd fd, ISFSFileStats* stats, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + __isfsCtxt* ctxt; + + if (stats == NULL || ((u32)stats & 31)) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 5; + ctxt->args.fstats = stats; + rc = IOS_IoctlAsync(fd, 11, NULL, 0, ctxt->ioBuf, sizeof(*stats), _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_Seek(IOSFd fd, s32 offset, u32 whence) { + ISFSError rc = ISFS_ERROR_OK; + rc = IOS_Seek(fd, offset, whence); + return rc; +} + +s32 ISFS_SeekAsync(IOSFd fd, s32 offset, u32 whence, ISFSCallback cb, void* fsCtxt) { + ISFSError rc; + __isfsCtxt* ctxt; + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + rc = IOS_SeekAsync(fd, offset, whence, _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_Read(s32 fd, u8* pBuffer, u32 bufSize) { + ISFSError rc = ISFS_ERROR_OK; + + /* nullptr check and alignment to 0x20 */ + if (pBuffer == NULL || (u32)pBuffer & 31) { + rc = ISFS_ERROR_INVALID; + } else { + rc = IOS_Read(fd, pBuffer, bufSize);; + } + + return rc; +} + +s32 ISFS_ReadAsync(IOSFd fd, u8* buf, u32 size, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + __isfsCtxt* ctxt; + + if (buf == NULL || ((u32)buf & 31)) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + rc = IOS_ReadAsync(fd, buf, size, _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_Write(IOSFd fd, const u8* buf, u32 size) { + ISFSError rc = ISFS_ERROR_OK; + + if (buf == NULL || ((u32)buf & 31)) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + rc = IOS_Write(fd, (u8*)buf, size); +out: + return rc; +} + +s32 ISFS_WriteAsync(IOSFd fd, const u8* buf, u32 size, ISFSCallback cb, void* fsCtxt) { + ISFSError rc = ISFS_ERROR_OK; + __isfsCtxt* ctxt; + + if (buf == NULL || ((u32)buf & (u32)(31))) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + rc = IOS_WriteAsync(fd, (void*)buf, size, _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_Close(IOSFd fd) { + ISFSError rc = ISFS_ERROR_OK; + rc = IOS_Close(fd); + return rc; +} + +s32 ISFS_CloseAsync(IOSFd fd, ISFSCallback cb, void* fsCtxt) { + ISFSError rc; + __isfsCtxt* ctxt; + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + + if (ctxt == 0) { + rc = ISFS_ERROR_BUSY; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + rc = IOS_CloseAsync(fd, _isfsFuncCb, ctxt); + +out: + return rc; +} + +s32 ISFS_ShutdownAsync(ISFSCallback cb, void* fsCtxt) { + __isfsCtxt* ctxt; + s32 rc = ISFS_ERROR_OK; + + ctxt = iosAllocAligned(hId, sizeof(*ctxt), 32); + + if (__fsFd < 0) { + rc = ISFS_ERROR_INVALID; + goto out; + } + + ctxt->cb = cb; + ctxt->ctxt = fsCtxt; + ctxt->func = 0; + rc = IOS_IoctlAsync(__fsFd, 13, NULL, 0, NULL, 0, _isfsFuncCb, ctxt); + +out: + return rc; +} diff --git a/src/revolution/ipc/ipcMain.c b/src/revolution/ipc/ipcMain.c new file mode 100644 index 0000000000..f126cb5b1f --- /dev/null +++ b/src/revolution/ipc/ipcMain.c @@ -0,0 +1,51 @@ +#include +#include +#include + +static void* IPCBufferHi; +static void* IPCBufferLo; + +static void* IPCCurrentBufferHi; +static void* IPCCurrentBufferLo; + +static u8 Initialized; + +void IPCInit(void) { + if (Initialized) { + return; + } + + IPCBufferHi = __OSGetIPCBufferHi(); + IPCBufferLo = __OSGetIPCBufferLo(); + IPCCurrentBufferHi = IPCBufferHi; + IPCCurrentBufferLo = IPCBufferLo; + + Initialized = TRUE; +} + +void IPCReInit(void) { + Initialized = FALSE; + IPCInit(); +} + +u32 IPCReadReg(u32 regIdx) { + u32 reg = __IPCRegs[regIdx]; + return reg; +} + +void IPCWriteReg(u32 regIdx, u32 data) { + __IPCRegs[regIdx] = data; +} + +void* IPCGetBufferHi(void) { + return IPCCurrentBufferHi; +} + +void* IPCGetBufferLo(void) { + return IPCCurrentBufferLo; +} + +void IPCSetBufferLo(void* newLo) { + ASSERTLINE(296, IPCBufferLo <= newLo); + IPCCurrentBufferLo = newLo; +} diff --git a/src/revolution/ipc/ipcProfile.c b/src/revolution/ipc/ipcProfile.c new file mode 100644 index 0000000000..60bf758a75 --- /dev/null +++ b/src/revolution/ipc/ipcProfile.c @@ -0,0 +1,53 @@ +#include +#include + +static u32 IpcReqPtrArray[96] = {0}; +static u32 IpcReqArray[0x300] = {0}; +static OSTime IpcStartTimeArray[96]; +static u8 IpcHandlePathBuf[0x1800]; +static u8 IpcOpenPathBuf[0x1200]; + +static u32 IpcNumPendingReqs = 0; +static u32 IpcNumUnIssuedReqs = 0; + +static void AddReqInfo(void* req); +static void DelReqInfo(void* req); + +void IPCiProfInit(void) { + u32 i; + + IpcNumPendingReqs = 0; + IpcNumUnIssuedReqs = 0; + + for (i = 0; i < 96; ++i) { + IpcReqPtrArray[i] = 0; + IpcStartTimeArray[i] = 0; + } + + memset(IpcHandlePathBuf, 0, sizeof(IpcHandlePathBuf)); + memset(IpcOpenPathBuf, 0, sizeof(IpcOpenPathBuf)); + memset(IpcReqArray, 0, sizeof(IpcReqArray)); +} + +void IPCiProfQueueReq(void* req, s32 handle) { + ++IpcNumPendingReqs; + ++IpcNumUnIssuedReqs; + AddReqInfo(req); +} + +void IPCiProfAck(void) { + --IpcNumUnIssuedReqs; +} + +void IPCiProfReply(void* req, s32 handle) { + --IpcNumPendingReqs; + DelReqInfo(req); +} + +static void AddReqInfo(void* ptr) { + // NONMATCHING +} + +static void DelReqInfo(void* ptr) { + // NONMATCHING +} diff --git a/src/revolution/ipc/ipcclt.c b/src/revolution/ipc/ipcclt.c new file mode 100644 index 0000000000..39bc8b2f69 --- /dev/null +++ b/src/revolution/ipc/ipcclt.c @@ -0,0 +1,835 @@ +#include +#include +#include +#include +#include + +/* macro for matching __ipcQueueRequest */ +#define diff(a, b) \ + ((a) < (b)) ? ((u32)0xffffffff - (b) + (a) + 1) : ((a) - (b)) + +static s32 __mailboxAck = 1; +static u32 __relnchFl = 0; + +#define OSVirtualToPhysical(addr) OSCachedToPhysical(addr) +#define OSPhysicalToVirtual(addr) OSPhysicalToCached(addr) + +typedef struct IOSRpcRequest { + IOSResourceRequest request; + IOSIpcCb cb ATTRIBUTE_ALIGN(32); // I am assuming this is aligned due to where cbArg is stored, and I see nothing between cb and callback_arg? + void* callback_arg; + u32 relaunch_flag; + OSThreadQueue thread_queue; +} IOSRpcRequest; + +static IOSRpcRequest* __relnchRpc = 0; +static IOSRpcRequest* __relnchRpcSave = 0; + +#define ROUNDUP(sz) (((u32)(sz) + 31) & ~(u32)(31)) + +static u8 __rpcBuf[ROUNDUP(sizeof(IOSRpcRequest))] ATTRIBUTE_ALIGN(32); + +static struct { + u32 rcount; + u32 wcount; + u32 rptr; + u32 wptr; + IOSResourceRequest* buf[48]; +} __responses; + +static OSAlarm __timeout_alarm; + +static IOSHeapId hid = -1; + +extern void ACRWriteReg(u32 param_0, u32 param_1); +extern void IPCiProfQueueReq(void*, s32); + +/* the MSL_C version of strnlen doesn't match when inlined, cool */ +u32 strnlen(const u8 *str, u32 n) { + const u8 *s = str; + while (*s && n-- > 0) + ++s; + return (s - str); +} + +static IOSRpcRequest* ipcAllocReq(void) { + IOSRpcRequest* req = NULL; + req = iosAllocAligned(hid, 0x40, 0x20); + return req; +} + +static IOSError ipcFree(IOSRpcRequest *rpc) { + IOSError ret = 0; + iosFree(hid, rpc); + return ret; +} + +static IOSError __ipcQueueRequest(IOSResourceRequest *req) { + IOSError ret = 0; + + if (diff(__responses.wcount, __responses.rcount) >= sizeof(__responses.buf) / sizeof(__responses.buf[0])) { + ret = -8; + } else { + __responses.buf[__responses.wptr] = req; + __responses.wptr = (__responses.wptr + 1) % (sizeof(__responses.buf) / sizeof(__responses.buf[0])); + __responses.wcount++; + IPCiProfQueueReq(req, (s32)req->handle); + } + + return ret; +} + +static void __ipcSendRequest(void) { + IOSRpcRequest *rpc; + + if (diff(__responses.wcount, __responses.rcount) <= 0) { + return; + } + + rpc = (IOSRpcRequest*)__responses.buf[__responses.rptr]; + + if (rpc == 0) { + return; + } + + if (rpc->relaunch_flag) { + __mailboxAck--; + } + + IPCWriteReg(0, OSVirtualToPhysical(rpc)); + __responses.rptr = (__responses.rptr + 1) % (sizeof(__responses.buf) / sizeof(__responses.buf[0])); + __responses.rcount++; + __mailboxAck--; + + IPCWriteReg(1, (IPCReadReg(1) & (1 << 5 | 1 << 4)) | 1 << 0); +} + +void IpcReplyHandler(__OSInterrupt interrupt, OSContext* context) { + OSContext exceptionContext; + IOSResourceRequest* req; + IOSRpcRequest* rep; + u32 addr; + + addr = IPCReadReg(2); + + if (!addr) { + goto err; + } + + rep = (IOSRpcRequest*)OSPhysicalToVirtual(addr); + IPCWriteReg(1, (IPCReadReg(1) & (1 << 5 | 1 << 4) | 1 << 2)); + ACRWriteReg(0x30, 0x40000000); + req = &rep->request; + + DCInvalidateRange(req, sizeof(*req)); + + switch (req->handle) { + case 3: + req->args.read.outPtr = (req->args.read.outPtr) ? OSPhysicalToVirtual((u32)req->args.read.outPtr) : 0; + + if (req->status > 0) { + DCInvalidateRange(req->args.read.outPtr, (u32)req->status); + } + + break; + case 6: + req->args.ioctl.outPtr = (req->args.ioctl.outPtr) ? OSPhysicalToVirtual((u32)req->args.ioctl.outPtr) : 0; + DCInvalidateRange(req->args.ioctl.inPtr, req->args.ioctl.inLen); + DCInvalidateRange(req->args.ioctl.outPtr, req->args.ioctl.outLen); + break; + case 7: + { + int i; + IOSResourceIoctlv* v = &req->args.ioctlv; + req->args.ioctlv.vector = (req->args.ioctlv.vector) ? (IOSIoVector*)OSPhysicalToVirtual((u32)req->args.ioctlv.vector) : 0; + DCInvalidateRange(&v->vector[0], (req->args.ioctlv.readCount + req->args.ioctlv.writeCount) * sizeof(IOSIoVector)); + + for (i = 0; i < (req->args.ioctlv.readCount + req->args.ioctlv.writeCount); ++i) { + v->vector[i].base = (v->vector[i].base) ? (u8*)OSPhysicalToVirtual((u32)v->vector[i].base) : 0; + DCInvalidateRange(v->vector[i].base, v->vector[i].length); + } + + if (__relnchFl && __relnchRpcSave == rep) { + __relnchFl = 0; + + if (__mailboxAck < 1) { + __mailboxAck++; + } + } + + break; + } + default: + break; + } + + if (rep->cb) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + rep->cb(req->status, (void*)rep->callback_arg); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + ipcFree(rep); + } else { + OSWakeupThread(&rep->thread_queue); + } + + IPCWriteReg(1, (IPCReadReg(1) & (1 << 5 | 1 << 4)) | 1 << 3); + IPCiProfReply(req, (s32)req->handle); + +err: + return; +} + +static void IpcAckHandler(__OSInterrupt interrupt, OSContext* context) { + IPCWriteReg(1, (IPCReadReg(1) & (1 << 5 | 1 << 4)) | 1 << 1); + ACRWriteReg(0x30, 0x40000000); + + if (__mailboxAck < 1) { + __mailboxAck++; + IPCiProfAck(); + } + + if (__mailboxAck > 0) { + if (__relnchFl) { + IOSResourceRequest* req = &__relnchRpc->request; + req->status = 0; + __relnchFl = 0; + + OSWakeupThread(&__relnchRpc->thread_queue); + IPCWriteReg(1, (IPCReadReg(1) & (1 << 5 | 1 << 4)) | 1 << 3); + } + + __ipcSendRequest(); + } +} + + +void IPCInterruptHandler(__OSInterrupt interrupt, OSContext* context) { + if ((IPCReadReg(1) & (1 << 4 | 1 << 2)) == (1 << 4 | 1 << 2)) { + IpcReplyHandler(interrupt, context); + } + + if ((IPCReadReg(1) & (1 << 5 | 1 << 1)) == (1 << 5 | 1 << 1)) { + IpcAckHandler(interrupt, context); + } +} + +IOSError IPCCltInit(void) { + static u32 initialized = 0; + u32 i; + IOSError ret = 0; + void* bufferLo; + + if (initialized) { + goto out; + } + + initialized = 1; + + IPCInit(); + + i = ROUNDUP(64 * (ROUNDUP(sizeof(IOSRpcRequest)) + 64)); + bufferLo = IPCGetBufferLo(); + + if ((void*)((u8*)bufferLo + i) > IPCGetBufferHi()) { + ret = -22; + goto out; + } + + hid = iosCreateHeap(bufferLo, i); + IPCSetBufferLo((void*)((u8*)bufferLo + i)); + + __OSSetInterruptHandler(27, IPCInterruptHandler); + __OSUnmaskInterrupts(16); + + IPCWriteReg(1, (1 << 5 | 1<< 4 | 1 << 3)); + IPCiProfInit(); + OSCreateAlarm(&__timeout_alarm); + +out: + return ret; +} + +IOSError IPCCltReInit(void) { + u32 i; + IOSError ret = 0; + void* bufferLo; + + i = ROUNDUP(64 * ROUNDUP(sizeof(IOSRpcRequest))); + bufferLo = IPCGetBufferLo(); + + if ((void*)((u8*)bufferLo + i) > IPCGetBufferHi()) { + ret = -22; + goto out; + } + + hid = iosCreateHeap(bufferLo, i); + IPCSetBufferLo((void*)((u8*)bufferLo + i)); + +out: + return ret; +} + +static IOSError __ios_Ipc1(IOSFd fd, u32 cmd, IOSIpcCb cb, void* cbArg, IOSRpcRequest** rpc) { + IOSError ret = 0; + IOSResourceRequest *req; + + if (rpc == 0) { + ret = -4; + goto error; + } + + *rpc = (IOSRpcRequest*)ipcAllocReq(); + + if (*rpc == 0) { + ret = -22; + goto error; + } + + req = &(*rpc)->request; + (*rpc)->cb = cb; + (*rpc)->callback_arg = cbArg; + (*rpc)->relaunch_flag = 0; + req->cmd = cmd; + req->handle = (u32)fd; + +error: + return ret; +} + +static IOSError __ios_Ipc2(IOSRpcRequest* rpc, IOSIpcCb cb) { + IOSError ret = 0; + u32 inten; + IOSResourceRequest* req; + + if (rpc == 0) { + ret = -4; + } else { + req = &rpc->request; + + if (!cb) { + OSInitThreadQueue(&rpc->thread_queue); + } + + DCFlushRange(req, sizeof(*req)); + inten = OSDisableInterrupts(); + ret = __ipcQueueRequest(req); + + if (ret != 0) { + OSRestoreInterrupts(inten); + + if (cb) { + ipcFree(rpc); + } + } else { + if (__mailboxAck > 0) { + __ipcSendRequest(); + } + + if (!cb) { + OSSleepThread(&rpc->thread_queue); + } + + OSRestoreInterrupts(inten); + + if (!cb) { + ret = req->status; + } + } + } + + if (rpc && !cb) { + ipcFree(rpc); + } + + return ret; +} + +static IOSError __ios_Open(IOSRpcRequest* rpc, const char* path, u32 flags) { + IOSError ret = 0; + IOSResourceRequest* req; + + if (!rpc) { + ret = -4; + goto error; + } + + req = &rpc->request; + DCFlushRange((void*)path, strnlen((const u8*)path, 64) + 1); + req->args.open.path = (u8*)OSVirtualToPhysical((void*)path); + req->args.open.flags = flags; + +error: + return ret; +} + +IOSError IOS_OpenAsync(const char* pPath, u32 flags, IOSIpcCb cb, void* callback_arg) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(0, 1, cb, callback_arg, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Open(rpc, pPath, flags); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, cb); +error: + return ret; +} + +IOSError IOS_Open(const char* path, u32 flags) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(0, 1, 0, 0, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Open(rpc, path, flags); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, 0); + +error: + return ret; +} + +IOSError IOS_CloseAsync(IOSFd fd, IOSIpcCb cb, void* cbArg) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 2, cb, cbArg, &rpc); + + if (ret == 0) { + ret = __ios_Ipc2(rpc, cb); + } + + return ret; +} + +IOSError IOS_Close(IOSFd fd) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 2, 0, 0, &rpc); + + if (ret == 0) { + ret = __ios_Ipc2(rpc, 0); + } + + return ret; +} + +static IOSError __ios_Read(IOSRpcRequest* rpc, void* buf, u32 len) { + IOSError ret = 0; + IOSResourceRequest* req; + + if (!rpc) { + ret = -4; + goto error; + } + + req = &rpc->request; + + DCInvalidateRange(buf, len); + req->args.read.outPtr = (buf) ? (u8*)OSVirtualToPhysical(buf) : 0; + req->args.read.outLen = len; + +error: + return ret; +} + +IOSError IOS_ReadAsync(IOSFd fd, void* buf, u32 len, IOSIpcCb cb, void* cbArg) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 3, cb, cbArg, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Read(rpc, buf, len); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, cb); + +error: + return ret; +} + +IOSError IOS_Read(IOSFd fd, void* buf, u32 len) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 3, 0, 0, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Read(rpc, buf, len); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, 0); + +error: + return ret; +} + +static IOSError __ios_Write(IOSRpcRequest* rpc, void* buf, u32 len) { + IOSError ret = 0; + IOSResourceRequest* req; + + if (!rpc) { + ret = -4; + goto error; + } + + req = &rpc->request; + req->args.write.inPtr = (buf) ? (u8*)OSVirtualToPhysical(buf) : 0; + req->args.write.inLen = len; + DCFlushRange(buf, len); + +error: + return ret; +} + +IOSError IOS_WriteAsync(IOSFd fd, void* buf, u32 len, IOSIpcCb cb, void* cbArg) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 4, cb, cbArg, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Write(rpc, buf, len); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, cb); + +error: + return ret; +} + +IOSError IOS_Write(IOSFd fd, void* buf, u32 len) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 4, 0, 0, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Write(rpc, buf, len); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, 0); + +error: + return ret; +} + +static IOSError __ios_Seek(IOSRpcRequest* rpc, s32 offset, u32 whence) { + IOSError ret = 0; + IOSResourceRequest* req; + + if (!rpc) { + ret = -4; + goto error; + } + + req = &rpc->request; + req->args.seek.offset = offset; + req->args.seek.whence = whence; + +error: + return ret; +} + +IOSError IOS_SeekAsync(IOSFd fd, s32 offset, u32 whence, IOSIpcCb cb, void* cbArg) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 5, cb, cbArg, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Seek(rpc, offset, whence); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, cb); + +error: + return ret; +} + +IOSError IOS_Seek(IOSFd fd, s32 offset, u32 whence) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 5, 0, 0, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Seek(rpc, offset, whence); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, 0); + +error: + return ret; +} + +static IOSError __ios_Ioctl(IOSRpcRequest* rpc, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen) { + IOSError ret = 0; + IOSResourceRequest* req; + + if (!rpc) { + ret = -4; + goto error; + } + + req = &rpc->request; + + req->args.ioctl.cmd = (u32)cmd; + req->args.ioctl.outPtr = (output) ? (u8*)OSVirtualToPhysical(output) : 0; + req->args.ioctl.outLen = outputLen; + req->args.ioctl.inPtr = (input) ? (u8*)OSVirtualToPhysical(input) : 0; + req->args.ioctl.inLen = inputLen; + + DCFlushRange(input, inputLen); + DCFlushRange(output, outputLen); + +error: + return ret; +} + +IOSError IOS_IoctlAsync(IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen, IOSIpcCb cb, void* cbArg) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 6, cb, cbArg, &rpc); + + if (ret != 0) { + goto err; + } + + ret = __ios_Ioctl(rpc, cmd, input, inputLen, output, outputLen); + + if (ret != 0) { + goto err; + } + + ret = __ios_Ipc2(rpc, cb); + +err: + return ret; +} + +IOSError IOS_Ioctl(IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 6, 0, 0, &rpc); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ioctl(rpc, cmd, input, inputLen, output, outputLen); + + if (ret != 0) { + goto error; + } + + ret = __ios_Ipc2(rpc, 0); + +error: + return ret; +} + +static IOSError __ios_Ioctlv(IOSRpcRequest* rpc, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect) { + IOSError ret = 0; + IOSResourceRequest* req; + IOSResourceIoctlv* v; + u32 i, j; + + if (!rpc) { + ret = -4; + goto err; + } + + req = &rpc->request; + req->args.ioctlv.cmd = (u32)cmd; + req->args.ioctlv.readCount = readCount; + req->args.ioctlv.writeCount = writeCount; + req->args.ioctlv.vector = vect; + + v = &req->args.ioctlv; + + for (i = 0, j = v->readCount; i < req->args.ioctlv.writeCount; ++i) { + DCFlushRange(v->vector[j + i].base, v->vector[j + i].length); + v->vector[j + i].base = (v->vector[j + i].base) ? (u8*)OSVirtualToPhysical(v->vector[j + i].base) : 0; + } + + for (i = 0; i < req->args.ioctlv.readCount; ++i) { + DCFlushRange(v->vector[i].base, v->vector[i].length); + v->vector[i].base = (v->vector[i].base) ? (u8*)OSVirtualToPhysical(v->vector[i].base) : 0; + } + + DCFlushRange(&v->vector[0], (v->readCount + v->writeCount) * sizeof(IOSIoVector)); + req->args.ioctlv.vector = (vect) ? (IOSIoVector*)OSVirtualToPhysical(vect) : 0; + +err: + return ret; +} + +IOSError IOS_IoctlvAsync(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect, IOSIpcCb cb, void* cbArg) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 7, cb, cbArg, &rpc); + + if (ret != 0) { + goto err; + } + + ret = __ios_Ioctlv(rpc, cmd, readCount, writeCount, vect); + + if (ret != 0) { + goto err; + } + + ret = __ios_Ipc2(rpc, cb); + +err: + return ret; +} + +IOSError IOS_Ioctlv(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect) { + IOSRpcRequest* rpc; + IOSError ret = 0; + + ret = __ios_Ipc1(fd, 7, 0, 0, &rpc); + + if (ret != 0) { + goto err; + } + + ret = __ios_Ioctlv(rpc, cmd, readCount, writeCount, vect); + + if (ret != 0) { + goto err; + } + + ret = __ios_Ipc2(rpc, 0); + +err: + return ret; +} + +IOSError IOS_IoctlvReboot(IOSFd fd, s32 cmd, u32 readCount, u32 writeCount, IOSIoVector* vect) { + IOSRpcRequest* rpc; + IOSError ret = 0; + u32 inten; + IOSResourceRequest* req; + + inten = OSDisableInterrupts(); + + if (__relnchFl) { + OSRestoreInterrupts(inten); + ret = -10; + goto finish; + } + + __relnchFl = 1; + OSRestoreInterrupts(inten); + + ret = __ios_Ipc1(fd, 7, 0, 0, &rpc); + + if (ret != 0) { + goto err; + } + + __relnchRpcSave = rpc; + rpc->relaunch_flag = 1; + + ret = __ios_Ioctlv(rpc, cmd, readCount, writeCount, vect); + + if (ret != 0) { + goto err; + } + + memcpy(&__rpcBuf, rpc, sizeof(IOSRpcRequest)); + __relnchRpc = (IOSRpcRequest*)&__rpcBuf; + req = &rpc->request; + + OSInitThreadQueue(&__relnchRpc->thread_queue); + DCFlushRange(req, sizeof(*req)); + + inten = OSDisableInterrupts(); + ret = __ipcQueueRequest(req); + + if (ret != 0) { + OSRestoreInterrupts(inten); + goto err; + } + + if (__mailboxAck > 0) { + __ipcSendRequest(); + } + + OSSleepThread(&__relnchRpc->thread_queue); + OSRestoreInterrupts(inten); + ret = (&__relnchRpc->request)->status; + +err: + __relnchFl = 0; + __relnchRpcSave = NULL; + + if (rpc && (ret != 0)) { + ipcFree(rpc); + } + +finish: + return ret; +} diff --git a/src/revolution/ipc/memory.c b/src/revolution/ipc/memory.c new file mode 100644 index 0000000000..29625a117e --- /dev/null +++ b/src/revolution/ipc/memory.c @@ -0,0 +1,240 @@ +#include +#include + +typedef struct IOSChunk { + u32 status; + u32 size; + struct IOSChunk* prevFree; + struct IOSChunk* nextFree; +} IOSChunk; + +typedef struct { + void* base; + u32 owner; + u32 size; + IOSChunk *freeList; +} IOSHeap; + +static IOSHeap __heaps[8]; + +static void __iosCoalesceChunk(IOSChunk* p) { + if (p && ((u32)p->nextFree == ((u32)p + p->size + sizeof(IOSChunk)))) { + IOSChunk* next = p->nextFree; + p->nextFree = next->nextFree; + + if (p->nextFree != 0) { + p->nextFree->prevFree = p; + } + + p->size += next->size + sizeof(IOSChunk); + } +} + +IOSHeapId iosCreateHeap(void* ptr, u32 size) { + IOSError rv = -4; + u32 mask; + s32 i; + IOSHeap* h; + + mask = OSDisableInterrupts(); + + if ((u32)ptr & 31) { + goto finish; + } + + for (i = 0; i < sizeof(__heaps) / sizeof(__heaps[0]); ++i) { + if (__heaps[i].base == 0) { + break; + } + } + + if (i == 8) { + rv = -5; + goto finish; + } + + h = __heaps + i; + h->base = ptr; + h->size = size; + h->freeList = ptr; + h->freeList->status = 0xBABE0000; + h->freeList->size = size - sizeof(IOSChunk); + h->freeList->prevFree = NULL; + h->freeList->nextFree = NULL; + rv = i; + +finish: + OSRestoreInterrupts(mask); + return rv; +} + +#define CHECK_HEAP_ID(id, err) \ + if (((id) < 0) || ((id) >= 8) || (!__heaps[id].base)) { \ + rv = err; \ + goto finish; \ + } + +#define GET_HEAP(h, id, err) \ + do { \ + CHECK_HEAP_ID(id, err); \ + h = __heaps + id; \ + } while (0) + +void* __iosAlloc(IOSHeapId id, u32 size, u32 alignment) { + u32 mask; + IOSChunk* p, *best; + IOSHeap* h; + void* rv = NULL; + + mask = OSDisableInterrupts(); + + if (!size) { + goto finish; + } + + if (!alignment || (alignment & (alignment - 1))) { + goto finish; + } + + if (alignment < 32) { + alignment = 32; + } + + size = (size + 31) & ~31; + + GET_HEAP(h, id, NULL); + + p = h->freeList; + best = NULL; + + while (p != 0) { + u32 ptr = (u32)p + sizeof(IOSChunk); + u32 extra = (alignment - (ptr & (alignment - 1))) & (alignment - 1); + + if ((p->size == size) && !extra) { + best = p; + break; + } else if ((p->size >= (size + extra)) && (!best || (p->size < best->size))) { + best = p; + } + + p = p->nextFree; + } + + p = best; + + if (p != 0) { + u32 ptr = (u32)p + sizeof(IOSChunk); + u32 extra = (alignment - (ptr & (alignment - 1))) & (alignment - 1); + + if (p->size > (size + extra + sizeof(IOSChunk))) { + IOSChunk *n = (IOSChunk *)((u8 *)p + size + extra + sizeof(IOSChunk)); + n->status = 0xBABE0000; + n->size = p->size - size - extra - sizeof(IOSChunk); + n->nextFree = p->nextFree; + + if (n->nextFree) { + n->nextFree->prevFree = n; + } + + p->nextFree = n; + p->size = size + extra; + } + + p->status = 0xBABE0001; + + if (p->prevFree) { + p->prevFree->nextFree = p->nextFree; + } else { + h->freeList = p->nextFree; + } + + if (p->nextFree) { + p->nextFree->prevFree = p->prevFree; + } + + p->prevFree = p->nextFree = NULL; + rv = (u8*)p + extra + sizeof(IOSChunk); + + if (extra) { + IOSChunk* n = (IOSChunk*)rv - 1; + n->status = 0xBABE0002; + n->prevFree = p; + } + } + +finish: + OSRestoreInterrupts(mask); + return rv; +} + +void* iosAllocAligned(IOSHeapId id, u32 size, u32 alignment) { + return __iosAlloc(id, size, alignment); +} + +IOSError iosFree(IOSHeapId id, void* ptr) { + u32 mask; + IOSChunk* p; + IOSHeap* h; + IOSError rv = -4; + IOSChunk* prev; + + mask = OSDisableInterrupts(); + + if (!ptr) { + goto finish; + } + + GET_HEAP(h, id, -4); + + if (((u32)ptr) < (((u32)h->base) + sizeof(IOSChunk)) || ((u32)ptr) > ((u32)h->base + h->size)) { + goto finish; + } + + p = (IOSChunk*)ptr - 1; + + if (p->status == 0xBABE0002) { + p = p->prevFree; + } + + if (p->status != 0xBABE0001) { + goto finish; + } + + p->status = 0xBABE0000; + prev = h->freeList; + + while (prev != 0) { + if (!prev->nextFree || prev->nextFree > p) { + break; + } + + prev = prev->nextFree; + } + + if (prev && p > prev) { + p->prevFree = prev; + p->nextFree = prev->nextFree; + prev->nextFree = p; + + if (p->nextFree) { + p->nextFree->prevFree = p; + } + } else { + p->nextFree = h->freeList; + h->freeList = p; + p->prevFree = NULL; + + if (p->nextFree) { + p->nextFree->prevFree = p; + } + } + + __iosCoalesceChunk(p); + __iosCoalesceChunk(p->prevFree); + rv = 0; + +finish: + OSRestoreInterrupts(mask); + return rv; +} diff --git a/src/revolution/nand/NANDCheck.c b/src/revolution/nand/NANDCheck.c new file mode 100644 index 0000000000..3f7630af12 --- /dev/null +++ b/src/revolution/nand/NANDCheck.c @@ -0,0 +1,94 @@ +#include +#include + +static const char* USER_DIR_LIST[] = { + "/meta", + "/ticket", + "/title/00010000", + "/title/00010001", + "/title/00010003", + "/title/00010004", + "/title/00010005", + "/title/00010006", + "/title/00010007", + "/shared2/title", + NULL, +}; + +s32 nandCalcUsage(u32* fsBlock, u32* inode, const char* dir_list[]) { + ISFSError ret = ISFS_ERROR_UNKNOWN; + *fsBlock = 0; + *inode = 0; + + while (*dir_list) { + u32 blk = 0; + u32 node = 0; + ret = ISFS_GetUsage((const u8*)*dir_list, &blk, &node); + + if (ret == ISFS_ERROR_OK) { + *fsBlock += blk; + *inode += node; + } else if (ret == ISFS_ERROR_NOEXISTS) { + ret = ISFS_ERROR_OK; + } else { + break; + } + + ++dir_list; + } + + return ret; +} + +ISFSError nandCalcUserUsage(u32* fsBlock, u32* inode) { + return nandCalcUsage(fsBlock, inode, USER_DIR_LIST); +} + +static u32 nandCheck(const u32 reqBlock, const u32 reqInode, const u32 homeBlock, const u32 homeInode, const u32 userBlock, const u32 userInode) { + u32 answer = 0; + + if (homeBlock + reqBlock > 0x400) { + answer |= 1; + } + + if (homeInode + reqInode > 0x21) { + answer |= 2; + } + + if (userBlock + reqBlock > 0x4400) { + answer |= 4; + } + + if (userInode + reqInode > 0xFA0) { + answer |= 8; + } + + return answer; +} + +s32 NANDCheck(const u32 fsBlock, const u32 inode, u32* answer) { + ISFSError ret = ISFS_ERROR_UNKNOWN; + u32 homeBlocks = 0xFFFFFFFF; + u32 homeInodes = 0xFFFFFFFF; + u32 userBlocks = 0xFFFFFFFF; + u32 userInodes = 0xFFFFFFFF; + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + ret = ISFS_GetUsage((const u8*)nandGetHomeDir(), &homeBlocks, &homeInodes); + + if (ret != ISFS_ERROR_OK) { + return nandConvertErrorCode(ret); + } + + ret = nandCalcUserUsage(&userBlocks, &userInodes); + + if (ret != ISFS_ERROR_OK) { + return nandConvertErrorCode(ret); + } + + *answer = nandCheck(fsBlock, inode, homeBlocks, homeInodes, userBlocks, userInodes); + return NAND_RESULT_OK; +} diff --git a/src/revolution/nand/NANDCore.c b/src/revolution/nand/NANDCore.c new file mode 100644 index 0000000000..575ebecb40 --- /dev/null +++ b/src/revolution/nand/NANDCore.c @@ -0,0 +1,514 @@ +#include +#include +#include +#include +#include + +#ifdef SDK_AUG2010 +#define BUILD_DATE "Aug 23 2010" +#if DEBUG +#define BUILD_TIME "17:28:24" +#else +#define BUILD_TIME "17:33:06" +#endif +#elif SDK_SEP2006 +#define BUILD_DATE "Sep 21 2006" +#define BUILD_TIME "14:32:13" +#endif + +#ifdef SDK_AUG2010 +#if DEBUG +const char* __NANDVersion = "<< RVL_SDK - NAND \tdebug build: "BUILD_DATE" "BUILD_TIME" (0x4302_145) >>"; +#else +const char* __NANDVersion = "<< RVL_SDK - NAND \trelease build: "BUILD_DATE" "BUILD_TIME" (0x4302_145) >>"; +#endif +#elif SDK_SEP2006 +const char* __NANDVersion = "<< RVL_SDK - NAND \trelease build: "BUILD_DATE" "BUILD_TIME" (0x4200_60422) >>"; +#endif + +enum LibState { + STATE_NOT_INITIALIZED, + STATE_WORKING, + STATE_INITIALIZED +}; + +static enum LibState s_libState = STATE_NOT_INITIALIZED; +static char s_currentDir[64] ATTRIBUTE_ALIGN(32) = "/"; +static char s_homeDir[64] ATTRIBUTE_ALIGN(32) = ""; + +static BOOL nandOnShutdown(BOOL final, u32 event); +void nandConvertPath(char* abspath, const char* wd, const char* relpath); +static void nandShutdownCallback(ISFSError result, void* ctxt); + +static OSShutdownFunctionInfo s_shutdownFuncInfo = { + nandOnShutdown, + 255 +}; + +void nandRemoveTailToken(char* newpath, const char* oldpath) { + ASSERTMSGLINE(189, newpath, "null pointer is detected in argument of newpath\n"); + ASSERTMSGLINE(190, oldpath, "null pointer is detected in argument of oldpath\n"); + ASSERTMSGLINE(191, oldpath[0] == '/', "Head of path must be \'/\' .\n"); + + if (oldpath[0] == '/' && oldpath[1] == '\0') { + newpath[0] = '/'; + newpath[1] = '\0'; + } else { + int i = 0; + + for (i = (int)(strlen(oldpath)) - 1; i >= 0; --i) { + if (oldpath[i] == '/') { + if (i != 0) { + strncpy(newpath, oldpath, (u32)i); + newpath[i] = '\0'; + break; + } else { + newpath[0] = '/'; + newpath[1] = '\0'; + break; + } + } + } + } +} + +void nandGetHeadToken(char* token, char* newpath, const char* oldpath) { + unsigned int i = 0; + + ASSERTMSGLINE(224, token && newpath && oldpath, "Null pointer detected!\n"); + ASSERTMSGLINE(225, strlen(oldpath) != 0, "Null string was detected!\n"); + ASSERTMSGLINE(226, oldpath[0] != '/', "Head of relative path must not be \'/\' .\n"); + + for (i = 0; i <= strlen(oldpath); ++i) { + if (oldpath[i] == '/') { + strncpy(token, oldpath, i); + token[i] = '\0'; + + if (oldpath[i + 1] == '\0') { + newpath[0] = '\0'; + } else { + strcpy(newpath, oldpath + i + 1); + } + + break; + } else if (oldpath[i] == '\0') { + strncpy(token, oldpath, i); + token[i] = '\0'; + newpath[0] = '\0'; + break; + } + } +} + +void nandGetRelativeName(char* name, const char* path) { + if (strcmp("/", path) == 0) { + strcpy(name, ""); + } else { + int i = 0; + + ASSERTMSGLINE(260, nandIsAbsolutePath(path), "path must be absolute path."); + ASSERTMSGLINE(261, path[strlen(path) - 1] != '/', "path must not be terminated with \'/\'."); + + for (i = (int)(strlen(path) - 1); i >= 0; --i) { + if (path[i] == '/') { + break; + } + } + + ASSERTMSGLINE(270, strlen(path + i + 1) <= ISFS_INODE_NAMELEN, "path must be smaller than or equal to ISFS_INODE_NAMELEN."); + + strcpy(name, path + i + 1); + } +} + +void nandConvertPath(char* abspath, const char* wd, const char* relpath) { + char token[128]; + char new_relpath[128]; + + ASSERTMSGLINE(283, abspath && wd && relpath, "Null pointer detected!\n"); + ASSERTMSGLINE(284, wd[0] == '/', "Head of \'wd\' must be \'/\'.\n"); + + if (strlen(relpath) == 0) { + strcpy(abspath, wd); + return; + } + + nandGetHeadToken(token, new_relpath, relpath); + + if (strcmp(token, ".") == 0) { + nandConvertPath(abspath, wd, new_relpath); + } else if (strcmp(token, "..") == 0) { + char new_wd[128]; + nandRemoveTailToken(new_wd, wd); + nandConvertPath(abspath, new_wd, new_relpath); + } else if (token[0] != '\0') { + char new_wd[128]; + if (strcmp(wd, "/") == 0) { + sprintf(new_wd, "/%s", token); + } else { + sprintf(new_wd, "%s/%s", wd, token); + } + + nandConvertPath(abspath, new_wd, new_relpath); + } else { + strcpy(abspath, wd); + } +} + +BOOL nandIsRelativePath(const char* path) { + if (path[0] == '/') { + return FALSE; + } else { + return TRUE; + } +} + +BOOL nandIsAbsolutePath(const char* path) { + if (nandIsRelativePath(path)) { + return FALSE; + } else { + return TRUE; + } +} + +BOOL nandIsPrivatePath(const char* path) { + if (strncmp(path, "/shared2", 8) == 0) { + return TRUE; + } else { + return FALSE; + } +} + +BOOL nandIsUnderPrivatePath(const char* path) { + if (strncmp(path, "/shared2/", 9) == 0 && path[9] != '\0') { + return TRUE; + } else { + return FALSE; + } +} + +BOOL nandIsInitialized(void) { + if (s_libState == STATE_INITIALIZED) { + return TRUE; + } else { + return FALSE; + } +} + +void nandReportErrorCode(const ISFSError err) { + // NONMATCHING + return; +} + +void nandLoggingCallback(BOOL, ISFSError err) { + if (err == ISFS_ERROR_UNKNOWN || err == IOS_ERROR_UNKNOWN) { + __NANDPrintErrorMessage(err); + } +} + +s32 nandConvertErrorCode(const ISFSError err) { + const int ERRMAP[] = { + ISFS_ERROR_OK, NAND_RESULT_OK, + ISFS_ERROR_ACCESS, NAND_RESULT_ACCESS, + ISFS_ERROR_CORRUPT, NAND_RESULT_CORRUPT, + ISFS_ERROR_ECC_CRIT, NAND_RESULT_ECC_CRIT, + ISFS_ERROR_EXISTS, NAND_RESULT_EXISTS, + ISFS_ERROR_HMAC, NAND_RESULT_AUTHENTICATION, + ISFS_ERROR_INVALID, NAND_RESULT_INVALID, + ISFS_ERROR_MAXBLOCKS, NAND_RESULT_MAXBLOCKS, + ISFS_ERROR_MAXFD, NAND_RESULT_MAXFD, + ISFS_ERROR_MAXFILES, NAND_RESULT_MAXFILES, + ISFS_ERROR_MAXDEPTH, NAND_RESULT_MAXDEPTH, + ISFS_ERROR_NOEXISTS, NAND_RESULT_NOEXISTS, + ISFS_ERROR_NOTEMPTY, NAND_RESULT_NOTEMPTY, + ISFS_ERROR_NOTREADY, NAND_RESULT_UNKNOWN, + ISFS_ERROR_OPENFD, NAND_RESULT_OPENFD, + ISFS_ERROR_UNKNOWN, NAND_RESULT_UNKNOWN, + ISFS_ERROR_BUSY, NAND_RESULT_BUSY, + ISFS_ERROR_SHUTDOWN, NAND_RESULT_FATAL_ERROR, + + IOS_ERROR_ACCESS, NAND_RESULT_ACCESS, + IOS_ERROR_EXISTS, NAND_RESULT_EXISTS, + IOS_ERROR_INTR, NAND_RESULT_UNKNOWN, + IOS_ERROR_INVALID, NAND_RESULT_INVALID, + IOS_ERROR_MAX, NAND_RESULT_UNKNOWN, + IOS_ERROR_NOEXISTS, NAND_RESULT_NOEXISTS, + IOS_ERROR_QEMPTY, NAND_RESULT_UNKNOWN, + IOS_ERROR_QFULL, NAND_RESULT_BUSY, + IOS_ERROR_UNKNOWN, NAND_RESULT_UNKNOWN, + IOS_ERROR_NOTREADY, NAND_RESULT_UNKNOWN, + IOS_ERROR_ECC, NAND_RESULT_UNKNOWN, + IOS_ERROR_ECC_CRIT, NAND_RESULT_ECC_CRIT, + IOS_ERROR_BADBLOCK, NAND_RESULT_UNKNOWN, + + IOS_ERROR_INVALID_OBJTYPE, NAND_RESULT_UNKNOWN, + IOS_ERROR_INVALID_RNG, NAND_RESULT_UNKNOWN, + IOS_ERROR_INVALID_FLAG, NAND_RESULT_UNKNOWN, + IOS_ERROR_INVALID_FORMAT, NAND_RESULT_UNKNOWN, + IOS_ERROR_INVALID_VERSION, NAND_RESULT_UNKNOWN, + IOS_ERROR_INVALID_SIGNER, NAND_RESULT_UNKNOWN, + IOS_ERROR_FAIL_CHECKVALUE, NAND_RESULT_UNKNOWN, + IOS_ERROR_FAIL_INTERNAL, NAND_RESULT_UNKNOWN, + IOS_ERROR_FAIL_ALLOC, NAND_RESULT_ALLOC_FAILED, + IOS_ERROR_INVALID_SIZE, NAND_RESULT_UNKNOWN, + }; + + int i = 0; + + if (err >= 0) { + return err; + } + + for (; i < sizeof(ERRMAP) / 4; i = i + 2) { + if (ERRMAP[i] == err) { + if (err == ISFS_ERROR_ECC_CRIT || err == ISFS_ERROR_HMAC || err == ISFS_ERROR_UNKNOWN || err == IOS_ERROR_UNKNOWN || err == IOS_ERROR_ECC_CRIT) { + char buf[128] ATTRIBUTE_ALIGN(64); + sprintf(buf, "ISFS error code: %d", err); + NANDLoggingAddMessageAsync(nandLoggingCallback, err, buf); + } + + nandReportErrorCode(err); + + if (err == ISFS_ERROR_MAXBLOCKS || err == ISFS_ERROR_MAXFILES || err == ISFS_ERROR_CORRUPT || err == ISFS_ERROR_BUSY || err == IOS_ERROR_QFULL || err == IOS_ERROR_FAIL_ALLOC) { + __NANDPrintErrorMessage(err); + } + + return ERRMAP[i + 1]; + } + } + + OSReport("CAUTION! Unexpected error code [%d] was found.\n", err); + { + char buf[128] ATTRIBUTE_ALIGN(64); + sprintf(buf, "ISFS unexpected error code: %d", err); + NANDLoggingAddMessageAsync(nandLoggingCallback, err, buf); + } + + nandReportErrorCode(err); + return -64; +} + +void nandGenerateAbsPath(char* absPath, const char* path) { + if (strlen(path) == 0) { + strcpy(absPath, ""); + } else if (nandIsRelativePath(path)) { + nandConvertPath(absPath, s_currentDir, path); + } else { + u32 len = 0xFFFFFFFF; + strcpy(absPath, path); + + len = strlen(absPath); + if (len > 0) { + if ((absPath[len - 1] == '/') && (len - 1 != 0)) { + absPath[len - 1] = '\0'; + } + } + } +} + +void nandGetParentDirectory(char* parentDir, const char* absPath) { + int i = 0; + for (i = (int)strlen(absPath); i >= 0; --i) { + if (absPath[i] == '/') { + break; + } + } + + if (i == 0) { + strcpy(parentDir, "/"); + } else { + strncpy(parentDir, absPath, (u32)i); + parentDir[i] = '\0'; + } +} + +s32 NANDInit(void) { + BOOL enabled = OSDisableInterrupts(); + + if (s_libState == STATE_WORKING) { + OSRestoreInterrupts(enabled); + return -3; + } else if (s_libState == 2) { + OSRestoreInterrupts(enabled); + return 0; + } else { + ISFSError result = ISFS_ERROR_UNKNOWN; + s_libState = STATE_WORKING; + OSRestoreInterrupts(enabled); + + result = ISFS_OpenLib(); + if (result == 0) { + s32 rv; + ESTitleId id; + + rv = ESP_InitLib(); + + if (rv == 0) { + rv = ESP_GetTitleId(&id); + } + + if (rv == 0) { + rv = ESP_GetDataDir(id, s_homeDir); + } + + if (rv == 0) { + strcpy(s_currentDir, s_homeDir); + } + + ESP_CloseLib(); + + if (rv != 0) { + OSReport("Failed to set home directory.\n"); + } + + OSRegisterShutdownFunction(&s_shutdownFuncInfo); + enabled = OSDisableInterrupts(); + s_libState = STATE_INITIALIZED; + OSRestoreInterrupts(enabled); + NANDSetAutoErrorMessaging(1); + OSRegisterVersion(__NANDVersion); + return 0; + } else { + enabled = OSDisableInterrupts(); + s_libState = STATE_NOT_INITIALIZED; + OSRestoreInterrupts(enabled); + return nandConvertErrorCode(result); + } + } +} + +static BOOL nandOnShutdown(BOOL final, u32 event) { + if (!final) { + if (event == 2) { + volatile BOOL flag = FALSE; + OSTime t = OSGetTime(); + ISFS_ShutdownAsync(nandShutdownCallback, (void*)&flag); + + while (OSTicksToMilliseconds(OSGetTime() - t) < 500) { + if (flag) { + break; + } + } + } + + return TRUE; + } else { + return TRUE; + } +} + +static void nandShutdownCallback(ISFSError result, void* ctxt) { + (void)result; + *(BOOL*)ctxt = TRUE; +} + +// NOTE: function doesn't exist in TP debug, needed for string data +s32 NANDGetCurrentDir() { + OSReport("NANDGetCurrentDir"); +} + +s32 NANDGetHomeDir(char* path) { + ASSERTMSG1LINE(0, path, "NULL pointer is detected: %s()", "NANDGetHomeDir"); + + if (!nandIsInitialized()) { + return -128; + } + + strcpy(path, s_homeDir); + return 0; +} + +void nandCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); +} + +void nandGetTypeCallback(ISFSError result, void* ctxt); + +static ISFSError nandGetType(const char* path, u8* type, NANDCommandBlock* block, const BOOL async_flag, const BOOL privilege_flag) { + ASSERTMSG1LINE(1133, path, "NULL pointer is detected: %s()", __FUNCTION__); + ASSERTMSG1LINE(1134, type, "NULL pointer is detected: %s()", __FUNCTION__); + + if (strlen(path) == 0) { + return ISFS_ERROR_INVALID; + } + + if (async_flag) { + nandGenerateAbsPath(block->absPath, path); + if (!privilege_flag && nandIsUnderPrivatePath(block->absPath)) { + return ISFS_ERROR_ACCESS; + } else { + block->type = type; + return ISFS_ReadDirAsync((u8*)(block->absPath), NULL, &(block->num), nandGetTypeCallback, block); + } + } else { + char absPath[64] = ""; + nandGenerateAbsPath(absPath, path); + + if (!privilege_flag && nandIsUnderPrivatePath(absPath)) { + return ISFS_ERROR_ACCESS; + } else { + u32 dmy = 0; + ISFSError err = ISFS_ReadDir((u8*)absPath, NULL, &dmy); + + if (err == ISFS_ERROR_OK || err == ISFS_ERROR_ACCESS) { + *type = 2; + err = ISFS_ERROR_OK; + } else if (err == ISFS_ERROR_INVALID) { + *type = 1; + err = ISFS_ERROR_OK; + } + + return err; + } + } +} + +s32 NANDPrivateGetTypeAsync(const char* path, u8* type, NANDCallback cb, NANDCommandBlock* block) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + return nandConvertErrorCode(nandGetType(path, type, block, TRUE, TRUE)); +} + +void nandGetTypeCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + + if (result == ISFS_ERROR_OK || result == ISFS_ERROR_ACCESS) { + *(b->type) = 2; + result = ISFS_ERROR_OK; + } else if (result == ISFS_ERROR_INVALID) { + *(b->type) = 1; + result = ISFS_ERROR_OK; + } + + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); +} + +const char* nandGetHomeDir(void) { + return s_homeDir; +} + +void NANDInitBanner(NANDBanner* bnr, u32 const flag, const u16* title, const u16* comment) { + ASSERTMSG1LINE(1253, bnr, "Null pointer is detected at %s()", __FUNCTION__); + ASSERTMSG1LINE(1254, title, "Null pointer is detected at %s()", __FUNCTION__); + ASSERTMSG1LINE(1255, comment, "Null pointer is detected at %s()", __FUNCTION__); + + memset(bnr, 0, sizeof(NANDBanner)); + bnr->signature = 0x5749424E; + bnr->flag = flag; + + if (wcscmp((wchar_t*)title, L"") == 0) { + wcsncpy(bnr->comment[0], L" ", 32); + } else { + wcsncpy(bnr->comment[0], (wchar_t*)title, 32); + } + + if (wcscmp((wchar_t*)comment, L"") == 0) { + wcsncpy(bnr->comment[1], L" ", 32); + } else { + wcsncpy(bnr->comment[1], (wchar_t*)comment, 32); + } +} diff --git a/src/revolution/nand/NANDErrorMessage.c b/src/revolution/nand/NANDErrorMessage.c new file mode 100644 index 0000000000..1cb0f0e961 --- /dev/null +++ b/src/revolution/nand/NANDErrorMessage.c @@ -0,0 +1,235 @@ +#include +#include +#include +#include + +#define REGION_DEFAULT 0 +#define REGION_EUROPE 1 +#define REGION_CHNKOR 2 + +const char* const __NANDMaxBlocksErrorMessageDefault[] = { + "\n\n\nWii本体保存メモリの空き容量が異常です。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nThere is no more available space in\nWii system memory. Refer to the Wii\nOperations Manual for details.", + "\n\n\nDer Speicher der Wii-Konsole ist belegt.\nBitte lies die Wii-Bedienungsanleitung,\num weitere Informationen zu erhalten.", + "\n\n\nIl n'y a pas assez d'espace libre\ndans la m駑oire de la console Wii.\nVeuillez vous r馭駻er au Mode d'emploi\nde la Wii pour plus de d騁ails.", + "\n\n\nNo queda espacio libre en la memoria\nde la consola Wii. Consulta el manual\nde operaciones de la consola Wii para\nobtener m疽 informaci\xF3n.", + "\n\n\nNon c'\xE8 pi\xF9 spazio libero nella memoria\ndella console Wii. Per maggiori\ninformazioni, consulta il manuale di\nistruzioni della console Wii.", + "\n\n\nEr is geen vrije ruimte meer in het\ninterne geheugen van het Wii-systeem.\nLees de handleiding voor meer informatie.", +}; + +const char* const __NANDMaxBlocksErrorMessageEurope[] = { + "\n\n\nWii本体保存メモリの空き容量が異常です。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nThere is no more available space in\nthe Wii System Memory. Please refer to\nthe Wii Operations Manual for details.", + "\n\n\nDer Speicher der Wii-Konsole ist belegt.\nBitte lies die Wii-Bedienungsanleitung,\num weitere Informationen zu erhalten.", + "\n\n\nIl n'y a pas assez d'espace libre dans\nla m駑oire de la console Wii. Veuillez\nvous r馭駻er au mode d'emploi Wii pour\nplus de d騁ails.", + "\n\n\nNo queda espacio libre en la memoria de\nla consola Wii. Consulta el manual de\ninstrucciones de la consola Wii para\nobtener m疽 informaci\xF3n.", + "\n\n\nNon c'\xE8 pi\xF9 spazio libero nella memoria\ndella console Wii. Per maggiori\ninformazioni, consulta il manuale di\nistruzioni della console Wii.", + "\n\n\nEr is geen vrije ruimte meer in het\ninterne geheugen van het Wii-systeem.\nLees de handleiding voor meer informatie.", +}; + +const char* const __NANDMaxBlocksErrorMessageChinaKorea[] = { + "\n\nエラーコード405。\n\nWii本体保存メモリの空き容量が異常です。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\nError #405,\n\nThere is no more available space in\nWii system memory. Refer to the Wii\nOperations Manual for details.", +}; + +const char* const __NANDMaxFilesErrorMessageDefault[] = { + "\n\n\nWii本体保存メモリの空きファイル数が異常です。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nThere is no more available space in\nWii system memory. Refer to the Wii\nOperations Manual for details.", + "\n\n\nDer Speicher der Wii-Konsole ist belegt.\nBitte lies die Wii-Bedienungsanleitung,\num weitere Informationen zu erhalten.", + "\n\n\nIl n'y a pas assez d'espace libre dans\nla m駑oire de la console Wii. Veuillez\nvous r馭駻er au Mode d'emploi de la Wii\npour plus de d騁ails.", + "\n\n\nNo queda espacio libre en la memoria de\nla consola Wii. Consulta el manual de\noperaciones de la consola Wii para\nobtener m疽 informaci\xF3n.", + "\n\n\nImpossibile salvare altri dati nella\nmemoria della console Wii. Per maggiori\ninformazioni, consulta il manuale di\nistruzioni della console Wii.", + "\n\n\nEr is geen ruimte meer beschikbaar\nin het interne geheugen van het\nWii-systeem. Lees de handleiding voor\nmeer informatie.", +}; + +const char* const __NANDMaxFilesErrorMessageEurope[] = { + "\n\n\nWii本体保存メモリの空きファイル数が異常です。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nThere is no more available space in\nthe Wii System Memory. Please refer to\nthe Wii Operations Manual for details.", + "\n\n\nDer Speicher der Wii-Konsole ist belegt.\nBitte lies die Wii-Bedienungsanleitung,\num weitere Informationen zu erhalten.", + "\n\n\nIl n'y a pas assez d'espace libre dans\nla m駑oire de la console Wii. Veuillez\nvous r馭駻er au mode d'emploi Wii pour\nplus de d騁ails.", + "\n\n\nNo queda espacio libre en la memoria de\nla consola Wii. Consulta el manual de\ninstrucciones de la consola Wii para\nobtener m疽 informaci\xF3n.", + "\n\n\nImpossibile salvare altri dati nella\nmemoria della console Wii. Per maggiori\ninformazioni, consulta il manuale di\nistruzioni della console Wii.", + "\n\n\nEr is geen ruimte meer beschikbaar\nin het interne geheugen van het\nWii-systeem. Lees de handleiding voor\nmeer informatie.", +}; + +const char* const __NANDMaxFilesErrorMessageChinaKorea[] = { + "\n\nエラーコード406。\n\nWii本体保存メモリの空きファイル数が異常です。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\nError #406,\n\nThere is no more available space in\nWii system memory. Refer to the Wii\nOperations Manual for details.", +}; + +const char* const __NANDCorruptErrorMessageDefault[] = { + "\n\n\nWii本体保存メモリが壊れました。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nThe Wii system memory has been damaged.\nRefer to the Wii Operations Manual for\ndetails.", + "\n\n\nDer Speicher der Wii-Konsole\nist besch臈igt. Bitte lies die\nWii-Bedienungsanleitung, um weitere\nInformationen zu erhalten.", + "\n\n\nLa m駑oire de la console Wii a 騁\xE9 \nendommag馥. Veuillez vous r馭駻er au\nMode d'emploi de la Wii pour plus de\nd騁ails.", + "\n\n\nLa memoria de la consola Wii\nest\xE1 da\xF1""ada. Consulta el manual de\noperaciones de la consola Wii para\nobtener m疽 informaci\xF3n.", + "\n\n\nLa memoria della console Wii e\ndanneggiata. Per maggiori informazioni,\nconsulta il manuale di istruzioni della\nconsole Wii.", + "\n\n\nHet interne geheugen van het\nWii-systeem is beschadigd. Lees de\nWii-handleiding voor meer informatie.", +}; + +const char* const __NANDCorruptErrorMessageEurope[] = { + "\n\n\nWii本体保存メモリが壊れました。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nThe Wii System Memory has been damaged.\nPlease refer to the Wii Operations Manual\nfor details.", + "\n\n\nDer Speicher der Wii-Konsole\nist beschadigt. Bitte lies die\nWii-Bedienungsanleitung, um weitere\nInformationen zu erhalten.", + "\n\n\nLa m駑oire de la console Wii est\nendommag馥. Veuillez vous r馭駻er au\nmode d'emploi Wii pour plus de d騁ails.\n", + "\n\n\nLa memoria de la consola Wii est\xE1 da\xF1""ada.\nConsulta el manual de instrucciones de la\nconsola Wii para obtener m疽 informaci\xF3n.", + "\n\n\nLa memoria della console Wii e\ndanneggiata. Per maggiori informazioni,\nconsulta il manuale di istruzioni della\nconsole Wii.", + "\n\n\nHet interne geheugen van het\nWii-systeem is beschadigd. Lees de\nWii-handleiding voor meer informatie.", +}; + +const char* const __NANDCorruptErrorMessageChinaKorea[] = { + "\n\nエラーコード408。\n\nWii本体保存メモリが壊れました。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\nError #408,\n\nThe Wii system memory has been damaged.\nRefer to the Wii Operations Manual for\ndetails.", +}; + +const char* const __NANDBusyErrorMessageDefault[] = { + "\n\n\nWii本体保存メモリの書き込み/読み出しが\nできませんでした。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nCould not access Wii system memory.\nRefer to the Wii Operations Manual for\ndetails.", + "\n\n\nAuf den Speicher der Wii-Konsole konnte\nnicht zugegriffen werden. Bitte lies die\nWii-Bedienungsanleitung, um weitere\nInformationen zu erhalten.", + "\n\n\nImpossible d'acc馘er \xE0 la m駑oire de\nla console Wii. Veuillez vous r馭駻er\nau Mode d'emploi de la Wii pour plus\nde d騁ails.", + "\n\n\nNo se ha podido acceder a la memoria de\nla consola Wii. Consulta el manual de\noperaciones de la consola Wii para\nobtener m疽 informaci\xF3n.", + "\n\n\nImpossibile accedere alla memoria della\nconsole Wii. Per maggiori informazioni,\nconsulta il manuale di istruzioni della\nconsole Wii.", + "\n\n\nHet interne geheugen van het Wii-systeem\nkan niet worden gelezen of beschreven.\nLees de Wii-handleiding voor meer\ninformatie.", +}; + +const char* const __NANDBusyErrorMessageEurope[] = { + "\n\n\nWii本体保存メモリの書き込み/読み出しが\nできませんでした。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nCould not access the Wii System Memory.Please refer to the Wii Operations Manual\nfor details.", + "\n\n\nAuf den Speicher der Wii-Konsole konnte\nnicht zugegriffen werden. Bitte lies die\nWii-Bedienungsanleitung, um weitere\nInformationen zu erhalten.", + "\n\n\nImpossible d'acc馘er \xE0 la m駑oire de la\nconsole Wii. Veuillez vous r馭駻er au\nmode d'emploi Wii pour plus de d騁ails.", + "\n\n\nNo se ha podido acceder a la memoria de\nla consola Wii. Consulta el manual de\ninstrucciones de la consola Wii para\nobtener m疽 informaci\xF3n.", + "\n\n\nImpossibile accedere alla memoria della\nconsole Wii. Per maggiori informazioni,\nconsulta il manuale di istruzioni della\nconsole Wii.", + "\n\n\nHet interne geheugen van het Wii-systeem\nkan niet worden gelezen of beschreven.\nLees de Wii-handleiding voor meer\ninformatie.", +}; + +const char* const __NANDBusyErrorMessageChinaKorea[] = { + "\n\nエラーコード411。\n\nWii本体保存メモリの書き込み/読み出しが\nできませんでした。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\nError #411,\n\nCould not access Wii system memory.\nRefer to the Wii Operations Manual for\ndetails.", +}; + +const char* const __NANDUnknownErrorMessageDefault[] = { + "\n\n\nWii本体保存メモリの書き込み/読み出し中に\nエラーが発生しました。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nAn error occurred while accessing Wii\nsystem memory. Refer to the Wii\nOperations Manual for details.", + "\n\n\nBeim Zugriff auf den Speicher der\nWii-Konsole ist ein Fehler aufgetreten.\nBitte lies die Wii-Bedienungsanleitung,\num weitere Informationen zu erhalten.", + "\n\n\nUne erreur est survenue pendant le\nprocessus de lecture ou d'馗riture\ndans la m駑oire de la console Wii.\nVeuillez vous r馭駻er au Mode d'emploi\nde la Wii pour plus de d騁ails.", + "\n\n\nSe ha producido un error al intentar\nacceder a la memoria de la consola Wii.\nConsulta el manual de operaciones\nde la consola Wii para obtener m疽\ninformaci\xF3n.", + "\n\n\nSi \xE8 verificato un errore durante la\nlettura o la modifica dei dati\nall'interno della memoria della\nconsole Wii. Per maggiori informazioni,\nconsulta il manuale di istruzioni della\nconsole Wii.", + "\n\n\nEr is een fout opgetreden tijdens het\nlezen of beschrijven van het interne\ngeheugen van het Wii-systeem. Lees de\nWii-handleiding voor meer informatie.", +}; + +const char* const __NANDUnknownErrorMessageEurope[] = { + "\n\n\nWii本体保存メモリの書き込み/読み出し中に\nエラーが発生しました。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\n\nAn error occurred during the process of\nreading from or writing to the Wii System\nMemory. Please refer to the Wii Operations\nManual for details.", + "\n\n\nBeim Zugriff auf den Speicher der\nWii-Konsole ist ein Fehler aufgetreten.\nBitte lies die Wii-Bedienungsanleitung,\num weitere Informationen zu erhalten.", + "\n\n\nUne erreur est survenue avec la m駑oire\nde la console Wii pendant le processus\nde lecture ou d'馗riture. Veuillez vous\nr馭駻er au mode d'emploi Wii pour plus\nde d鑼ails.", + "\n\n\nSe ha producido un error durante la\nlectura o escritura de la memoria de\nla consola Wii. Consulta el manual de\ninstrucciones de la consola Wii para\nobtener m疽 informaci\xF3n.", + "\n\n\nSi \xE8 verificato un errore durante la\nlettura o la modifica dei dati\nall'interno della memoria della\nconsole Wii. Per maggiori informazioni,\nconsulta il manuale di istruzioni della\nconsole Wii.", + "\n\n\nEr is een fout opgetreden tijdens het\nlezen of beschrijven van het interne\ngeheugen van het Wii-systeem. Lees de\nWii-handleiding voor meer informatie.", +}; + +const char* const __NANDUnknownErrorMessageChinaKorea[] = { + "\n\nエラーコード412。\n\nWii本体保存メモリの書き込み/読み出し中に\nエラーが発生しました。\nくわしくはWii本体の取扱説明書をお読み\nください。", + "\n\nError #412,\n\nAn error occurred while accessing Wii\nsystem memory. Refer to the Wii\nOperations Manual for details.", +}; + +static void (*NANDErrorFunc)(s32 errorCode); + +const char* const* __NANDSetErrorMessageList(s32 errorCode, s32 region) { + u8 i = 0; + struct { + int errorCode; + int region; + const char* const* messageList; + } errorMessageList[] = { + {ISFS_ERROR_MAXBLOCKS, REGION_DEFAULT, __NANDMaxBlocksErrorMessageDefault}, + {ISFS_ERROR_MAXFILES, REGION_DEFAULT, __NANDMaxFilesErrorMessageDefault}, + {ISFS_ERROR_CORRUPT, REGION_DEFAULT, __NANDCorruptErrorMessageDefault}, + {ISFS_ERROR_BUSY, REGION_DEFAULT, __NANDBusyErrorMessageDefault}, + {IOS_ERROR_FAIL_ALLOC, REGION_DEFAULT, __NANDBusyErrorMessageDefault}, + {ISFS_ERROR_UNKNOWN, REGION_DEFAULT, __NANDUnknownErrorMessageDefault}, + {IOS_ERROR_UNKNOWN, REGION_DEFAULT, __NANDUnknownErrorMessageDefault}, + + {ISFS_ERROR_MAXBLOCKS, REGION_EUROPE, __NANDMaxBlocksErrorMessageEurope}, + {ISFS_ERROR_MAXFILES, REGION_EUROPE, __NANDMaxFilesErrorMessageEurope}, + {ISFS_ERROR_CORRUPT, REGION_EUROPE, __NANDCorruptErrorMessageEurope}, + {ISFS_ERROR_BUSY, REGION_EUROPE, __NANDBusyErrorMessageEurope}, + {IOS_ERROR_FAIL_ALLOC, REGION_EUROPE, __NANDBusyErrorMessageEurope}, + {ISFS_ERROR_UNKNOWN, REGION_EUROPE, __NANDUnknownErrorMessageEurope}, + {IOS_ERROR_UNKNOWN, REGION_EUROPE, __NANDUnknownErrorMessageEurope}, + + {ISFS_ERROR_MAXBLOCKS, REGION_CHNKOR, __NANDMaxBlocksErrorMessageChinaKorea}, + {ISFS_ERROR_MAXFILES, REGION_CHNKOR, __NANDMaxFilesErrorMessageChinaKorea}, + {ISFS_ERROR_CORRUPT, REGION_CHNKOR, __NANDCorruptErrorMessageChinaKorea}, + {ISFS_ERROR_BUSY, REGION_CHNKOR, __NANDBusyErrorMessageChinaKorea}, + {IOS_ERROR_FAIL_ALLOC, REGION_CHNKOR, __NANDBusyErrorMessageChinaKorea}, + {ISFS_ERROR_UNKNOWN, REGION_CHNKOR, __NANDUnknownErrorMessageChinaKorea}, + {IOS_ERROR_UNKNOWN, REGION_CHNKOR, __NANDUnknownErrorMessageChinaKorea}, + }; + + while (i < 21) { + if (region == errorMessageList[i].region) { + if (errorCode == errorMessageList[i].errorCode) { + return errorMessageList[i].messageList; + } + i++; + continue; + } + + i = i + 7; + } + + return __NANDUnknownErrorMessageDefault; +} + +void __NANDShowErrorMessage(s32 errorCode) { + const char* message; + const char* const* messageList; + GXColor bg = { 0, 0, 0, 0 }; + GXColor fg = { 255, 255, 255, 0 }; + + if (SCGetLanguage() == SC_LANG_JAPANESE) { + OSSetFontEncode(OS_FONT_ENCODE_SJIS); + } else { + OSSetFontEncode(OS_FONT_ENCODE_ANSI); + } + + switch (SCGetProductGameRegion()) { + case 0: + case 1: + case 3: + default: + messageList = __NANDSetErrorMessageList(errorCode, REGION_DEFAULT); + break; + case 2: + messageList = __NANDSetErrorMessageList(errorCode, REGION_EUROPE); + break; + case 4: + case 5: + messageList = __NANDSetErrorMessageList(errorCode, REGION_CHNKOR); + break; + } + + if (SCGetLanguage() > SC_LANG_DUTCH) { + message = messageList[1]; + } else { + message = messageList[SCGetLanguage()]; + } + + OSFatal(fg, bg, message); +} + +BOOL NANDSetAutoErrorMessaging(BOOL show) { + BOOL enabled = OSDisableInterrupts(); + BOOL var_r30 = NANDErrorFunc != NULL ? TRUE : FALSE; + + NANDErrorFunc = show ? __NANDShowErrorMessage : NULL; + + OSRestoreInterrupts(enabled); + return var_r30; +} + +void __NANDPrintErrorMessage(s32 errorCode) { + if (NANDErrorFunc) { + NANDErrorFunc(errorCode); + } +} diff --git a/src/revolution/nand/NANDLogging.c b/src/revolution/nand/NANDLogging.c new file mode 100644 index 0000000000..7d0d862c81 --- /dev/null +++ b/src/revolution/nand/NANDLogging.c @@ -0,0 +1,181 @@ +#include +#include +#include +#include +#include + +static IOSFd s_fd = -255; +static IOSError s_err = ISFS_ERROR_UNKNOWN; +static int s_stage; +static char s_message[256] ATTRIBUTE_ALIGN(64); +static NANDLoggingCallback s_callback = 0; + +static void asyncRoutine(ISFSError, void*); +static void prepareLine(char line[256], int, const char*); + +BOOL reserveFileDescriptor(void) { + BOOL enabled = FALSE; + BOOL busy_flag = FALSE; + + enabled = OSDisableInterrupts(); + + if (s_fd == -255) { + s_fd = -254; + busy_flag = FALSE; + } else if (s_fd == -254) { + busy_flag = TRUE; + } else if (s_fd >= 0) { + busy_flag = TRUE; + } else { + busy_flag = TRUE; + } + + OSRestoreInterrupts(enabled); + return busy_flag ? FALSE : TRUE; +} + +BOOL NANDLoggingAddMessageAsync(NANDLoggingCallback cb, s32 errorCode, const char* fmt, ...) { + va_list ap; + ISFSError err = ISFS_ERROR_UNKNOWN; + + if (!reserveFileDescriptor()) { + return FALSE; + } + + va_start(ap, fmt); + vsnprintf(s_message, 256, fmt, ap); + va_end(ap); + + s_callback = cb; + s_stage = 1; + + if (errorCode == ISFS_ERROR_UNKNOWN || errorCode == IOS_ERROR_UNKNOWN) { + s_err = errorCode; + } + + err = ISFS_OpenAsync((const u8*)"/shared2/test2/nanderr.log", 3, asyncRoutine, 0); + + if (err == ISFS_ERROR_OK) { + return TRUE; + } else { + return FALSE; + } +} + +static void callbackRoutine(BOOL result) { + if (s_callback) { + s_callback(result, s_err); + } +} + +static void asyncRoutine(ISFSError result, void *ctxt) { + ISFSError ret = ISFS_ERROR_UNKNOWN; + static char s_rBuf[256] ATTRIBUTE_ALIGN(64); + static char s_wBuf[256] ATTRIBUTE_ALIGN(64); + ++s_stage; + + if (s_stage == 2) { + if (result >= 0) { + s_fd = result; + ret = ISFS_SeekAsync(s_fd, 0, 0, asyncRoutine, 0); + + if (ret != ISFS_ERROR_OK) { + callbackRoutine(FALSE); + } + } else { + callbackRoutine(FALSE); + } + } else if (s_stage == 3) { + if (result == 0) { + ret = ISFS_ReadAsync(s_fd, (u8*)s_rBuf, 256, asyncRoutine, 0); + + if (ret != ISFS_ERROR_OK) { + callbackRoutine(FALSE); + } + } else { + callbackRoutine(FALSE); + } + } else if (s_stage == 4) { + if (result == 256) { + ret = ISFS_SeekAsync(s_fd, 0, 0, asyncRoutine, 0); + + if (ret != ISFS_ERROR_OK) { + callbackRoutine(FALSE); + } + } else { + callbackRoutine(FALSE); + } + } else if (s_stage == 5) { + if (result == 0) { + int n = 0; + s_rBuf[255] = '\0'; + n = atoi(s_rBuf); + prepareLine(s_wBuf, n, s_message); + ret = ISFS_WriteAsync(s_fd, (const u8*)s_wBuf, 256, asyncRoutine, 0); + + if (ret != ISFS_ERROR_OK) { + callbackRoutine(FALSE); + } + } else { + callbackRoutine(FALSE); + } + } else if (s_stage == 6) { + if (result == 256) { + int n = atoi(s_rBuf); + ret = ISFS_SeekAsync(s_fd, n * 256, 0, asyncRoutine, 0); + + if (ret != ISFS_ERROR_OK) { + callbackRoutine(FALSE); + } + } else { + callbackRoutine(FALSE); + } + } else if (s_stage == 7) { + int n = atoi(s_rBuf); + if (result == n * 256) { + ret = ISFS_WriteAsync(s_fd, (const u8*)s_wBuf, 256, asyncRoutine, 0); + if (ret != ISFS_ERROR_OK) { + callbackRoutine(FALSE); + } + } else { + callbackRoutine(FALSE); + } + } else if (s_stage == 8) { + if (result == 256) { + ret = ISFS_CloseAsync(s_fd, asyncRoutine, 0); + + if (ret != ISFS_ERROR_OK) { + callbackRoutine(FALSE); + } + } else { + callbackRoutine(FALSE); + } + } else if (s_stage == 9) { + if (result == ISFS_ERROR_OK) { + s_fd = -255; + callbackRoutine(TRUE); + } else { + callbackRoutine(FALSE); + } + } +} + +static void prepareLine(char line[256], int n, const char* msg) { + char titleID[64]; + int end = 0; + struct OSCalendarTime cal; + + memset(line, ' ', 254); + OSTicksToCalendarTime(OSGetTime(), &cal); + strncpy(titleID, nandGetHomeDir() + 7, 8 + 1 + 8); + titleID[8] = '-'; + titleID[8 + 1 + 8] = '\0'; + end = snprintf(line, 256, "%d %04d/%02d/%02d %02d:%02d:%02d %s %s", n % (64 - 1) + 1, cal.year, cal.mon + 1, cal.mday, cal.hour, cal.min, cal.sec, titleID, msg); + + if (end < 256) { + line[end] = ' '; + } + + line[254] = '\r'; + line[255] = '\n'; +} diff --git a/src/revolution/nand/NANDOpenClose.c b/src/revolution/nand/NANDOpenClose.c new file mode 100644 index 0000000000..cd3ed01142 --- /dev/null +++ b/src/revolution/nand/NANDOpenClose.c @@ -0,0 +1,683 @@ +#include +#include +#include + +static void nandOpenCallback(ISFSError, void *); +static void nandReadCloseCallback(ISFSError, void *); +static void nandCloseCallback(ISFSError, void *); +static void nandSafeCloseCallback(ISFSError, void *); +static void nandSafeOpenCallback(const ISFSError, void *); +void nandReadOpenCallback(ISFSError, void *); +s32 nandSafeCloseAsync(NANDFileInfo *, NANDCallback, NANDCommandBlock *, BOOL); +s32 nandSafeOpenAsync(const char *, NANDFileInfo *, const u8, void *, const u32, NANDCallback, NANDCommandBlock *, BOOL, BOOL); +s32 nandSafeOpen(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length, BOOL privilege_flag, BOOL simple_flag); +s32 nandSafeClose(NANDFileInfo* info, BOOL simple_flag); +static ISFSError nandCopy(s32 fd, s32 origFd, void* buf, const u32 length); +static u32 nandGetUniqueNumber(void); + +IOSFd nandOpen(const char* path, const u8 accType, NANDCommandBlock* block, const BOOL async_flag, const BOOL privilege_flag) { + IOSFd fd = ISFS_ERROR_UNKNOWN; + char absPath[64] = ""; + u32 access = 0; + + ASSERTMSGLINE(188, path, "NULL pointer is detected."); + ASSERTMSGLINE(192, accType == 1 || accType == 2 || accType == 3, "Access type is illegal."); + + nandGenerateAbsPath(absPath, path); + + if (!privilege_flag && nandIsPrivatePath(absPath)) { + return ISFS_ERROR_ACCESS; + } else { + switch (accType) { + case 3: + access = 3; + break; + case 1: + access = 1; + break; + case 2: + access = 2; + break; + default: + break; + } + + if (async_flag) { + fd = ISFS_OpenAsync((const u8*)absPath, access, nandOpenCallback, block); + } else { + fd = ISFS_Open((const u8*)absPath, access); + } + + return fd; + } +} + +s32 NANDOpen(const char* path, NANDFileInfo* info, const u8 accType) { + IOSFd fd = ISFS_ERROR_UNKNOWN; + + ASSERTMSGLINE(234, info, "NULL pointer is detected."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + fd = nandOpen(path, accType, NULL, FALSE, FALSE); + + if (fd >= 0) { + info->fileDescriptor = fd; + info->mark = 1; + return NAND_RESULT_OK; + } else { + return nandConvertErrorCode(fd); + } +} + +s32 NANDPrivateOpen(const char* path, NANDFileInfo* info, const u8 accType) { + IOSFd fd = ISFS_ERROR_UNKNOWN; + + ASSERTMSGLINE(259, info, "NULL pointer is detected."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + fd = nandOpen(path, accType, NULL, FALSE, TRUE); + + if (fd >= 0) { + info->fileDescriptor = fd; + info->mark = 1; + return NAND_RESULT_OK; + } else { + return nandConvertErrorCode(fd); + } +} + +s32 NANDOpenAsync(const char* path, NANDFileInfo* info, const u8 accType, NANDCallback cb, NANDCommandBlock* block) { + IOSFd fd = ISFS_ERROR_UNKNOWN; + + ASSERTMSGLINE(284, info, "NULL pointer is detected."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + block->fileInfo = info; + fd = nandOpen(path, accType, block, TRUE, FALSE); + return nandConvertErrorCode(fd); +} + +s32 NANDPrivateOpenAsync(const char* path, NANDFileInfo* info, const u8 accType, NANDCallback cb, NANDCommandBlock* block) { + IOSFd fd = ISFS_ERROR_UNKNOWN; + + ASSERTMSGLINE(301, info, "NULL pointer is detected."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + block->fileInfo = info; + fd = nandOpen(path, accType, block, TRUE, TRUE); + return nandConvertErrorCode(fd); +} + +void nandOpenCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + + if (result >= 0) { + ((NANDFileInfo*)(b->fileInfo))->fileDescriptor = result; + ((NANDFileInfo*)(b->fileInfo))->stage = 2; + ((NANDFileInfo*)(b->fileInfo))->mark = 1; + ((NANDCallback)(b->callback))(NAND_RESULT_OK, b); + } else { + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); + } +} + +s32 NANDClose(NANDFileInfo* info) { + ISFSError err = ISFS_ERROR_UNKNOWN; + + ASSERTMSGLINE(341, info, "NULL pointer is detected."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + if (info->mark != 1) { + return NAND_RESULT_INVALID; + } + + err = ISFS_Close(info->fileDescriptor); + + if (err == ISFS_ERROR_OK) { + info->mark = 2; + } + + return nandConvertErrorCode(err); +} + +s32 NANDCloseAsync(NANDFileInfo* info, NANDCallback cb, NANDCommandBlock* block) { + ISFSError err = ISFS_ERROR_UNKNOWN; + + ASSERTMSGLINE(364, info, "NULL pointer is detected."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + if (info->mark != 1) { + return NAND_RESULT_INVALID; + } + + block->callback = cb; + block->fileInfo = info; + err = ISFS_CloseAsync(info->fileDescriptor, nandCloseCallback, block); + return nandConvertErrorCode(err); +} + +s32 NANDSimpleSafeOpen(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length) { + return nandSafeOpen(path, info, accType, buf, length, FALSE, TRUE); +} + +s32 nandSafeOpen(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length, BOOL privilege_flag, BOOL simple_flag) { + ASSERTMSGLINE(411, path, "NULL pointer detected.\n"); + ASSERTMSGLINE(412, info, "NULL pointer detected.\n"); + ASSERTMSGLINE(413, accType == 1 || accType == 2 || accType == 3, "Illegal access type.\n"); + ASSERTMSGLINE(414, buf, "NULL pointer detected.\n"); + ASSERTMSGLINE(415, !((u32)buf & 0x1F), "32byte alignment is required.\n"); + ASSERTMSGLINE(416, !(length & 0x1F), "Buffer size must be multiples of 32.\n"); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + if (simple_flag && ((length & 0x3FFF) != 0)) { + return NAND_RESULT_INVALID; + } + + info->accType = accType; + info->stage = 0; + nandGenerateAbsPath(info->origPath, path); + + if (!privilege_flag && nandIsPrivatePath(info->origPath)) { + return NAND_RESULT_ACCESS; + } + + if (accType == 1) { + IOSFd fd = ISFS_Open((u8*)(info->origPath), 1); + if (fd >= ISFS_ERROR_OK) { + info->fileDescriptor = fd; + info->stage = 2; + + if (!simple_flag) { + info->mark = 3; + } else { + info->mark = 5; + } + + return NAND_RESULT_OK; + } else { + return nandConvertErrorCode(fd); + } + } else if (accType == 2 || accType == 3) { + char dirName[64]; + char relName[13] = {0}; + ISFSError ret = ISFS_ERROR_UNKNOWN; + IOSUid ownerId; + IOSGid groupId; + u32 attr; + u32 ownerAcc; + u32 groupAcc; + u32 othersAcc; + u32 sp48 = -1; + + ret = ISFS_CreateDir((u8*)"/tmp/sys", 0, 3, 3, 3); + if (ret != ISFS_ERROR_OK && ret != ISFS_ERROR_EXISTS) { + return nandConvertErrorCode(ret); + } else { + info->stage = 1; + ret = ISFS_GetAttr((const u8*)info->origPath, &ownerId, &groupId, &attr, &ownerAcc, &groupAcc, &othersAcc); + if (ret != ISFS_ERROR_OK) { + return nandConvertErrorCode(ret); + } + + info->origFd = ISFS_Open((u8*)info->origPath, 1); + if (info->origFd < 0) { + return nandConvertErrorCode(info->origFd); + } + + info->stage = 2; + + if (!simple_flag) { + sp48 = nandGetUniqueNumber(); + sprintf(dirName, "%s/%08x", "/tmp/sys", sp48); + ret = ISFS_CreateDir((const u8*)dirName, 0, 3, 0, 0); + if (ret != 0) { + return nandConvertErrorCode(ret); + } + + info->stage = 3; + } + + nandGetRelativeName(relName, info->origPath); + + if (!simple_flag) { + sprintf(info->tmpPath, "%s/%08x/%s", "/tmp/sys", sp48, relName); + } else { + sprintf(info->tmpPath, "%s/%s", "/tmp/sys", relName); + } + + ret = ISFS_CreateFile((const u8*)info->tmpPath, attr, ownerAcc, groupAcc, othersAcc); + if (ret != 0) { + return nandConvertErrorCode(ret); + } + + info->stage = 4; + + if (accType == 2) { + info->fileDescriptor = ISFS_Open((const u8*)info->tmpPath, 2); + } else if (accType == 3) { + info->fileDescriptor = ISFS_Open((const u8*)info->tmpPath, 3); + } + + if (info->fileDescriptor < 0) { + return nandConvertErrorCode(info->fileDescriptor); + } + + info->stage = 5; + + ret = nandCopy(info->fileDescriptor, info->origFd, buf, length); + if (ret != 0) { + return nandConvertErrorCode(ret); + } + + ret = ISFS_Seek(info->fileDescriptor, 0, 0); + if (ret == 0) { + ret = 0; + } else { + return nandConvertErrorCode(ret); + } + + if (ret == 0) { + if (simple_flag) { + info->mark = 5; + } else { + info->mark = 3; + } + } + + return nandConvertErrorCode(ret); + } + } else { + return NAND_RESULT_INVALID; + } +} + +s32 NANDSimpleSafeClose(NANDFileInfo* info) { + return nandSafeClose(info, TRUE); +} + +s32 nandSafeClose(NANDFileInfo* info, BOOL simple_flag) { + ISFSError err = ISFS_ERROR_UNKNOWN; + char tmpdir[64] = ""; + ASSERTMSGLINE(612, info, "NULL pointer detected.\n"); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + if (!((info->mark == 3 && !simple_flag) || (info->mark == 5 && simple_flag))) { + return NAND_RESULT_INVALID; + } + + if (info->accType == 1) { + err = ISFS_Close(info->fileDescriptor); + if (err == 0) { + info->stage = 7; + + if (!simple_flag) { + info->mark = 4; + } else { + info->mark = 6; + } + } + + return nandConvertErrorCode(err); + } else if (info->accType == 2 || info->accType == 3) { + err = ISFS_Close(info->fileDescriptor); + if (err != 0) { + return nandConvertErrorCode(err); + } + + info->stage = 6; + + err = ISFS_Close(info->origFd); + if (err != 0) { + return nandConvertErrorCode(err); + } + + info->stage = 7; + + err = ISFS_Rename((const u8*)info->tmpPath, (const u8*)info->origPath); + if (err != 0) { + return nandConvertErrorCode(err); + } + + info->stage = 8; + + if (!simple_flag) { + nandGetParentDirectory(tmpdir, info->tmpPath); + err = ISFS_Delete((const u8*)tmpdir); + if (err == 0) { + info->stage = 9; + info->mark = 4; + } + } else { + info->mark = 6; + } + + return nandConvertErrorCode(err); + } else { + OSReport("Illegal NANDFileInfo.\n"); + } + + return NAND_RESULT_INVALID; +} + +s32 NANDPrivateSafeOpenAsync(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length, NANDCallback cb, NANDCommandBlock* block) { + return nandSafeOpenAsync(path, info, accType, buf, length, cb, block, TRUE, FALSE); +} + +s32 nandSafeOpenAsync(const char* path, NANDFileInfo* info, const u8 accType, void* buf, const u32 length, NANDCallback cb, NANDCommandBlock* block, BOOL privilege_flag, BOOL simple_flag) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + if (simple_flag && ((length & 0x3FFF) != 0)) { + return NAND_RESULT_INVALID; + } + + info->accType = accType; + info->stage = 0; + block->simpleFlag = simple_flag; + nandGenerateAbsPath(info->origPath, path); + + if (!privilege_flag && nandIsPrivatePath(info->origPath)) { + return NAND_RESULT_ACCESS; + } + + if (accType == 1) { + IOSFd fd = -1; + block->fileInfo = info; + block->callback = cb; + fd = ISFS_OpenAsync((u8*)(info->origPath), 1, nandReadOpenCallback, block); + + if (fd == ISFS_ERROR_OK) { + return NAND_RESULT_OK; + } else { + return nandConvertErrorCode(fd); + } + } else if (accType == 2 || accType == 3) { + ISFSError ret = ISFS_ERROR_UNKNOWN; + block->fileInfo = info; + block->callback = cb; + block->state = 0; + block->copyBuf = buf; + block->bufLength = length; + ret = ISFS_CreateDirAsync((u8*)"/tmp/sys", 0, 3, 3, 3, nandSafeOpenCallback, block); + + if (ret == ISFS_ERROR_OK) { + return NAND_RESULT_OK; + } else { + return nandConvertErrorCode(ret); + } + } else { + return NAND_RESULT_INVALID; + } +} + +void nandSafeOpenCallback(const ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + + if (result >= 0 || (result == ISFS_ERROR_EXISTS && b->state == 0)) { + NANDFileInfo* info = b->fileInfo; + ISFSError ret = ISFS_ERROR_UNKNOWN; + + if (b->state == 0) { + info->stage = 1; + } + + if (b->state == 2) { + info->origFd = result; + info->stage = 2; + } + + if (b->state == 2 && b->simpleFlag) { + b->state += 2; + } else { + ++b->state; + } + + if (b->state == 1) { + ret = ISFS_GetAttrAsync((u8*)(info->origPath), &b->ownerId, &b->groupId, &b->attr, &b->ownerAcc, &b->groupAcc, &b->othersAcc, nandSafeOpenCallback, ctxt); + } else if (b->state == 2) { + ret = ISFS_OpenAsync((u8*)(info->origPath), 1, nandSafeOpenCallback, ctxt); + } else if (b->state == 3) { + char tmpDir[64]; + b->uniqNo = nandGetUniqueNumber(); + sprintf(tmpDir, "%s/%08x", "/tmp/sys", b->uniqNo); + ret = ISFS_CreateDirAsync((u8*)tmpDir, 0, 3, 0, 0, nandSafeOpenCallback, ctxt); + } else if (b->state == 4) { + char filename[13]; + nandGetRelativeName(filename, info->origPath); + + if (!b->simpleFlag) { + info->stage = 3; + sprintf(info->tmpPath, "%s/%08x/%s", "/tmp/sys", b->uniqNo, filename); + } + else { + sprintf(info->tmpPath, "%s/%s", "/tmp/sys", filename); + } + + ret = ISFS_CreateFileAsync((u8*)info->tmpPath, b->attr, b->ownerAcc, b->groupAcc, b->othersAcc, nandSafeOpenCallback, ctxt); + } else if (b->state == 5) { + info->stage = 4; + + if (info->accType == 2) { + ret = ISFS_OpenAsync((u8*)info->tmpPath, 2, nandSafeOpenCallback, ctxt); + } else if (info->accType == 3) { + ret = ISFS_OpenAsync((u8*)info->tmpPath, 3, nandSafeOpenCallback, ctxt); + } else { + ret = ISFS_ERROR_UNKNOWN; + } + } else if (b->state == 6) { + info->fileDescriptor = result; + info->stage = 5; + b->state = 7; + ret = ISFS_ReadAsync(info->origFd, b->copyBuf, b->bufLength, nandSafeOpenCallback, ctxt); + } else if (b->state == 7) { + ret = ISFS_ReadAsync(info->origFd, b->copyBuf, b->bufLength, nandSafeOpenCallback, ctxt); + } else if (b->state == 8) { + if (result > 0) { + b->state = 6; + ret = ISFS_WriteAsync(info->fileDescriptor, b->copyBuf, (u32)result, nandSafeOpenCallback, ctxt); + } else if (result == 0) { + ret = ISFS_SeekAsync(info->fileDescriptor, 0, 0, nandSafeOpenCallback, ctxt); + } + } else if (b->state == 9) { + if (result == 0) { + if (!b->simpleFlag) { + info->mark = 3; + } else { + info->mark = 5; + } + + ((NANDCallback)(b->callback))(nandConvertErrorCode(ISFS_ERROR_OK), b); + } else { + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); + } + return; + } + + if (ret != ISFS_ERROR_OK) { + ((NANDCallback)(b->callback))(nandConvertErrorCode(ret), b); + } + } else { + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); + } +} + +void nandReadOpenCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + + if (result >= 0) { + ((NANDFileInfo*)(b->fileInfo))->fileDescriptor = result; + ((NANDFileInfo*)(b->fileInfo))->stage = 2; + + if (!(b->simpleFlag)) { + ((NANDFileInfo*)(b->fileInfo))->mark = 3; + } else { + ((NANDFileInfo*)(b->fileInfo))->mark = 5; + } + + ((NANDCallback)(b->callback))(NAND_RESULT_OK, b); + } else { + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); + } +} + +void dummyStrings() { + OSReport("NULL pointer detected."); +} + +s32 NANDSafeCloseAsync(NANDFileInfo* info, NANDCallback cb, NANDCommandBlock* block) { + return nandSafeCloseAsync(info, cb, block, FALSE); +} + +s32 nandSafeCloseAsync(NANDFileInfo* info, NANDCallback cb, NANDCommandBlock* block, BOOL simple_flag) { + ISFSError err = ISFS_ERROR_UNKNOWN; + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + if (!((info->mark == 3 && !simple_flag) || (info->mark == 5 && simple_flag))) { + return NAND_RESULT_INVALID; + } + + block->simpleFlag = simple_flag; + if (info->accType == 1) { + block->fileInfo = info; + block->callback = cb; + err = ISFS_CloseAsync(info->fileDescriptor, nandReadCloseCallback, block); + } else if (info->accType == 2 || info->accType == 3) { + block->fileInfo = info; + block->callback = cb; + block->state = 10; + err = ISFS_CloseAsync(info->fileDescriptor, nandSafeCloseCallback, block); + } else { + err = ISFS_ERROR_INVALID; + } + + return nandConvertErrorCode(err); +} + +void nandSafeCloseCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + + if (result == 0) { + NANDFileInfo* info = b->fileInfo; + ISFSError ret = ISFS_ERROR_UNKNOWN; + + if (b->state == 12) { + info->stage = 8; + } + + if (b->state == 12 && b->simpleFlag) { + b->state += 2; + } else { + ++b->state; + } + + if (b->state == 11) { + info->stage = 6; + ret = ISFS_CloseAsync(info->origFd, nandSafeCloseCallback, ctxt); + } else if (b->state == 12) { + info->stage = 7; + ret = ISFS_RenameAsync((u8*)(info->tmpPath), (u8*)(info->origPath), nandSafeCloseCallback, ctxt); + } else if (b->state == 13) { + char tmpdir[64] = ""; + nandGetParentDirectory(tmpdir, info->tmpPath); + ret = ISFS_DeleteAsync((u8*)tmpdir, nandSafeCloseCallback, ctxt); + } else if (b->state == 14) { + if (!(b->simpleFlag)) { + info->stage = 9; + } + + info->mark = 4; + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); + return; + } + + if (ret != 0) { + ((NANDCallback)(b->callback))(nandConvertErrorCode(ret), b); + } + } else { + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); + } +} + +static void nandReadCloseCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + + if (result == 0) { + ((NANDFileInfo*)(b->fileInfo))->stage = 7; + ((NANDFileInfo*)(b->fileInfo))->mark = 4; + } + + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); +} + +static void nandCloseCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + + if (result == 0) { + ((NANDFileInfo*)(b->fileInfo))->stage = 7; + ((NANDFileInfo*)(b->fileInfo))->mark = 2; + } + + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); +} + +static ISFSError nandCopy(s32 fd, s32 origFd, void* buf, const u32 length) { + while (1) { + ISFSError ret; + ISFSError ret2; + + ret = ISFS_Read(origFd, buf, length); + if (ret == 0) { + return 0; + } + + if (ret < 0) { + return ret; + } + + ret2 = ISFS_Write(fd, buf, ret); + if (ret2 < 0) { + return ret2; + } + + if (ret2 != ret) {} + } +} + +static u32 nandGetUniqueNumber(void) { + static u32 s_counter = 0; + u32 ret; + BOOL enabled = OSDisableInterrupts(); + ret = s_counter++; + OSRestoreInterrupts(enabled); + return ret; +} diff --git a/src/revolution/nand/nand.c b/src/revolution/nand/nand.c new file mode 100644 index 0000000000..c81f226f84 --- /dev/null +++ b/src/revolution/nand/nand.c @@ -0,0 +1,565 @@ +#include +#include +#include + +#include + +static BOOL nandInspectPermission(u8); +static void nandSplitPerm(u8, u32*, u32*, u32*); +static void nandGetTypeCallback(ISFSError, void*); +static void nandGetStatusCallback(ISFSError, void*); +BOOL nandCheckPathName(const char* path); +BOOL nandCheckCharacter(char character); +void nandCallback(ISFSError, void*); + +ISFSError nandCreate(const char* path, const u8 perm, const u8 attr, NANDCommandBlock* block, BOOL async_flag, + BOOL privilege_flag) { + char absPath[64] = ""; + u32 owner = 0, group = 0, others = 0; + + ASSERTMSGLINE(254, path, "NULL pointer is detected."); + + if (!nandCheckPathName(path)) { + return ISFS_ERROR_INVALID; + } + + nandGenerateAbsPath(absPath, path); + + if (!privilege_flag && nandIsPrivatePath(absPath)) { + return ISFS_ERROR_ACCESS; + } else if (!nandInspectPermission(perm)) { + return ISFS_ERROR_INVALID; + } else { + nandSplitPerm(perm, &owner, &group, &others); + + if (async_flag) { + return ISFS_CreateFileAsync((const u8*)absPath, attr, owner, group, others, nandCallback, block); + } else { + return ISFS_CreateFile((const u8*)absPath, attr, owner, group, others); + } + } +} + +s32 NANDCreate(const char* path, const u8 perm, const u8 attr) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandCreate(path, perm, attr, NULL, FALSE, FALSE)); +} + +s32 NANDPrivateCreate(const char* path, u8 perm, u8 attr) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandCreate(path, perm, attr, NULL, FALSE, TRUE)); +} + +s32 NANDPrivateCreateAsync(const char* path, u8 perm, u8 attr, NANDCallback cb, + NANDCommandBlock* block) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + return nandConvertErrorCode(nandCreate(path, perm, attr, block, TRUE, TRUE)); +} + +static ISFSError nandDelete(const char* path, NANDCommandBlock* block, + BOOL async_flag, BOOL privilege_flag) { + char absPath[64] = ""; + nandGenerateAbsPath(absPath, path); + + if (!privilege_flag && nandIsPrivatePath(absPath)) { + return ISFS_ERROR_ACCESS; + } else { + if (async_flag) { + return ISFS_DeleteAsync((const u8*)absPath, nandCallback, block); + } else { + return ISFS_Delete((const u8*)absPath); + } + } +} + +s32 NANDDelete(const char* path) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandDelete(path, NULL, FALSE, FALSE)); +} + +s32 NANDPrivateDelete(const char* path) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandDelete(path, NULL, FALSE, TRUE)); +} + +s32 NANDPrivateDeleteAsync(const char* path, NANDCallback cb, NANDCommandBlock* block) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + return nandConvertErrorCode(nandDelete(path, block, TRUE, TRUE)); +} + +s32 NANDRead(NANDFileInfo* info, void* buf, const u32 length) { + ASSERTMSGLINE(412, info, "*info is NULL pointer!"); + ASSERTMSGLINE(413, buf, "*buf is NULL pointer!"); + ASSERTMSGLINE(414, !((u32)buf & 0x1F), "Buffer must be 32 bytes aligned."); + ASSERTMSGLINE(415, !(length & 0x1F), "Buffer length must be multiples of 32 bytes."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(ISFS_Read(info->fileDescriptor, (u8*)buf, length)); +} + +s32 NANDReadAsync(NANDFileInfo* info, void* buf, const u32 length, NANDCallback cb, NANDCommandBlock* block) { + ASSERTMSGLINE(428, info, "*info is NULL pointer!"); + ASSERTMSGLINE(429, buf, "*buf is NULL pointer!"); + ASSERTMSGLINE(430, !((u32)buf & 0x1F), "Buffer must be 32 bytes aligned."); + ASSERTMSGLINE(431, !(length & 0x1F), "Buffer length must be multiples of 32 bytes."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + return nandConvertErrorCode(ISFS_ReadAsync(info->fileDescriptor, (u8*)buf, length, nandCallback, block)); +} + +s32 NANDWrite(NANDFileInfo* info, const void* buf, const u32 length) { + ASSERTMSGLINE(448, info, "*info is NULL pointer!"); + ASSERTMSGLINE(449, buf, "*buf is NULL pointer!"); + ASSERTMSGLINE(450, !((u32)buf & 0x1F), "Buffer must be 32 bytes aligned."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(ISFS_Write(info->fileDescriptor, (const u8*)buf, length)); +} + +s32 NANDWriteAsync(NANDFileInfo* info, const void* buf, const u32 length, + NANDCallback cb, NANDCommandBlock* block) { + ASSERTMSGLINE(463, info, "*info is NULL pointer!"); + ASSERTMSGLINE(464, buf, "*buf is NULL pointer!"); + ASSERTMSGLINE(465, !((u32)buf & 0x1F), "Buffer must be 32 bytes aligned."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + return nandConvertErrorCode(ISFS_WriteAsync(info->fileDescriptor, (const u8*)buf, length, nandCallback, block)); +} + +static ISFSError nandSeek(const IOSFd fd, const s32 offset, const s32 whence, + NANDCommandBlock* block, const BOOL async_flag) { + u32 w = 0xFFFFFFFF; + + switch (whence) { + case 0: + w = 0; + break; + case 1: + w = 1; + break; + case 2: + w = 2; + break; + default: + break; + } + + if (async_flag) { + return ISFS_SeekAsync(fd, offset, w, nandCallback, block); + } else { + return ISFS_Seek(fd, offset, w); + } +} + +s32 NANDSeek(NANDFileInfo* info, const s32 offset, const s32 whence) { + ASSERTMSGLINE(513, info, "*info is NULL pointer!"); + ASSERTMSGLINE(514, whence == 0 || whence == 1 || whence == 2, "Illegal whence parameter."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandSeek(info->fileDescriptor, offset, whence, NULL, FALSE)); +} + +s32 NANDSeekAsync(NANDFileInfo* info, const s32 offset, const s32 whence, + NANDCallback cb, NANDCommandBlock* block) { + ASSERTMSGLINE(527, info, "*info is NULL pointer!"); + ASSERTMSGLINE(528, whence == 0 || whence == 1 || whence == 2, "Illegal whence parameter."); + + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + return nandConvertErrorCode(nandSeek(info->fileDescriptor, offset, whence, block, TRUE)); +} + +ISFSError nandCreateDir(const char* path, const u8 perm, const u8 attr, + NANDCommandBlock* block, const BOOL async_flag, + const BOOL privilege_flag) { + char absPath[64] = ""; + + if (!nandCheckPathName(path)) { + return ISFS_ERROR_INVALID; + } + + nandGenerateAbsPath(absPath, path); + if (!privilege_flag && nandIsPrivatePath(absPath)) { + return ISFS_ERROR_ACCESS; + } else if (!nandInspectPermission(perm)) { + return ISFS_ERROR_INVALID; + } else { + u32 owner = 0; + u32 group = 0; + u32 others = 0; + nandSplitPerm(perm, &owner, &group, &others); + + if (async_flag) { + return ISFS_CreateDirAsync((const u8*)absPath, attr, owner, group, others, nandCallback, block); + } else { + return ISFS_CreateDir((const u8*)absPath, attr, owner, group, others); + } + } +} + +s32 NANDPrivateCreateDir(const char* path, u8 perm, u8 attr) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandCreateDir(path, perm, attr, NULL, FALSE, TRUE)); +} + +s32 NANDPrivateCreateDirAsync(const char* path, u8 perm, u8 attr, + NANDCallback cb, NANDCommandBlock* block) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + return nandConvertErrorCode(nandCreateDir(path, perm, attr, block, TRUE, TRUE)); +} + +ISFSError nandMove(const char* path, const char* destDir, + NANDCommandBlock* block, const BOOL async_flag, + const BOOL privilege_flag) { + char absOldPath[64] = ""; + char absNewPath[64] = ""; + char relativeName[13] = ""; + + nandGenerateAbsPath(absOldPath, path); + nandGetRelativeName(relativeName, absOldPath); + nandGenerateAbsPath(absNewPath, destDir); + + if (strcmp(absNewPath, "/") == 0) { + sprintf(absNewPath, "/%s", relativeName); + } else { + strcat(absNewPath, "/"); + strcat(absNewPath, relativeName); + } + + if (!privilege_flag && (nandIsPrivatePath(absOldPath) || nandIsPrivatePath(absNewPath))) { + return ISFS_ERROR_ACCESS; + } else { + if (async_flag) { + return ISFS_RenameAsync((const u8*)absOldPath, (const u8*)absNewPath, nandCallback, block); + } else { + return ISFS_Rename((const u8*)absOldPath, (const u8*)absNewPath); + } + } +} + +s32 NANDMove(const char* path, const char* destDir) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandMove(path, destDir, NULL, FALSE, FALSE)); +} + +static ISFSError nandGetFileStatus(IOSFd fd, u32* length, u32* pos) { + ISFSFileStats fstat ATTRIBUTE_ALIGN(32); + ISFSError result = ISFS_GetFileStats(fd, &fstat); + if (result == ISFS_ERROR_OK) { + if (length) { + *length = fstat.size; + } + if (pos) { + *pos = fstat.offset; + } + } + + return result; +} + +s32 NANDGetLength(NANDFileInfo* info, u32* length) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandGetFileStatus(info->fileDescriptor, length, NULL)); +} + +void nandGetFileStatusAsyncCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + ISFSFileStats* fstat = (ISFSFileStats*)OSRoundUp32B((u32)(b->absPath)); + + if (result == ISFS_ERROR_OK) { + if (b->length) { + *(b->length) = fstat->size; + } + if (b->pos) { + *(b->pos) = fstat->offset; + } + } + + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); +} + +static ISFSError nandGetFileStatusAsync(IOSFd fd, NANDCommandBlock* block) { + ISFSError result = ISFS_ERROR_UNKNOWN; + ISFSFileStats* fstat = (ISFSFileStats*)OSRoundUp32B((u32)(block->absPath)); + return ISFS_GetFileStatsAsync(fd, fstat, nandGetFileStatusAsyncCallback, block); +} + +s32 NANDGetLengthAsync(NANDFileInfo* info, u32* length, NANDCallback cb, NANDCommandBlock* block) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + block->length = length; + block->pos = NULL; + return nandConvertErrorCode(nandGetFileStatusAsync(info->fileDescriptor, block)); +} + +void dummyStrings() { + OSReport("NULL pointer is detected.\n"); + OSReport("NAND library internal error: bytes value must be illegal."); + OSReport("NAND library internal error: inodes value must be illegal."); + OSReport("NAND library internal error: length value must be illegal."); + OSReport("NULL pointer detected."); +} + +void nandComposePerm(u8* perm, const u32 ownerAcc, const u32 groupAcc, const u32 othersAcc) { + u32 p = 0; + + if (ownerAcc & 1) { + p = p | 0x10; + } + + if (ownerAcc & 2) { + p = p | 0x20; + } + + if (groupAcc & 1) { + p = p | 4; + } + + if (groupAcc & 2) { + p = p | 8; + } + + if (othersAcc & 1) { + p = p | 1; + } + + if (othersAcc & 2) { + p = p | 2; + } + + ASSERTMSGLINE(1007, (p & ~0xFF) == 0, "NAND library internal error.\n"); + *perm = (u8)p; +} + +static void nandSplitPerm(u8 perm, u32* ownerAcc, u32* groupAcc, u32* othersAcc) { + *ownerAcc = 0; + *groupAcc = 0; + *othersAcc = 0; + + if (perm & 0x10) { + *ownerAcc = *ownerAcc | 1; + } + + if (perm & 0x20) { + *ownerAcc = *ownerAcc | 2; + } + + if (perm & 4) { + *groupAcc = *groupAcc | 1; + } + + if (perm & 8) { + *groupAcc = *groupAcc | 2; + } + + if (perm & 1) { + *othersAcc = *othersAcc | 1; + } + + if (perm & 2) { + *othersAcc = *othersAcc | 2; + } +} + +ISFSError nandGetStatus(const char* path, NANDStatus* stat, + NANDCommandBlock* block, const BOOL async_flag, + const BOOL privilege_flag) { + char absPath[64] = ""; + + ASSERTMSGLINE(1052, path, "NULL pointer detected."); + ASSERTMSGLINE(1053, stat, "NULL pointer detected."); + + nandGenerateAbsPath(absPath, path); + if (!privilege_flag && nandIsUnderPrivatePath(absPath)) { + return ISFS_ERROR_ACCESS; + } else { + if (async_flag) { + return ISFS_GetAttrAsync( + (const u8*)absPath, &(stat->ownerId), &(stat->groupId), + &(block->attr), &(block->ownerAcc), &(block->groupAcc), + &(block->othersAcc), nandGetStatusCallback, block); + } else { + u32 attr = 0, ownerAcc = 0, groupAcc = 0, othersAcc = 0; + ISFSError result = + ISFS_GetAttr((const u8*)absPath, &stat->ownerId, &stat->groupId, + &attr, &ownerAcc, &groupAcc, &othersAcc); + if (result == ISFS_ERROR_OK) { + nandComposePerm(&stat->permission, ownerAcc, groupAcc, othersAcc); + stat->attribute = (u8)attr; + } + + return result; + } + } +} + +void nandGetStatusCallback(ISFSError result, void* ctxt) { + NANDCommandBlock* b = (NANDCommandBlock*)ctxt; + if (result == ISFS_ERROR_OK) { + NANDStatus* stat = (NANDStatus*)(b->status); + stat->attribute = (u8)(b->attr); + nandComposePerm(&(stat->permission), b->ownerAcc, b->groupAcc, + b->othersAcc); + } + ((NANDCallback)(b->callback))(nandConvertErrorCode(result), b); +} + +s32 NANDGetStatus(const char* path, NANDStatus* stat) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandGetStatus(path, stat, NULL, FALSE, FALSE)); +} + +s32 NANDPrivateGetStatus(const char* path, NANDStatus* stat) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + return nandConvertErrorCode(nandGetStatus(path, stat, NULL, FALSE, TRUE)); +} + +s32 NANDPrivateGetStatusAsync(const char* path, NANDStatus* stat, + NANDCallback cb, NANDCommandBlock* block) { + if (!nandIsInitialized()) { + return NAND_RESULT_FATAL_ERROR; + } + + block->callback = cb; + block->status = stat; + return nandConvertErrorCode(nandGetStatus(path, stat, block, TRUE, TRUE)); +} + +void NANDSetUserData(NANDCommandBlock* block, void* data) { + block->userData = data; +} + +void* NANDGetUserData(const NANDCommandBlock* block) { + return block->userData; +} + +static BOOL nandInspectPermission(const u8 perm) { + if (perm & 0x10) { + return TRUE; + } else { + return FALSE; + } +} + +BOOL nandCheckPathName(const char* path) { + char absNewPath[64]; + char relativeName[13]; + int len = -1; + + ASSERTMSGLINE(1266, path, "null pointer is detected in argument of path\n"); + + len = strlen(path); + if (len == 0) { + return 0; + } else { + u32 i; + if (nandIsRelativePath(path)) { + for (i = 0; i < len; i++) { + if (!nandCheckCharacter(path[i])) { + return 0; + } + } + } else { + strcpy(absNewPath, path); + if (absNewPath[len - 1] == '/' && len - 1 != 0) { + absNewPath[len - 1] = 0; + } + + nandGetRelativeName(relativeName, absNewPath); + len = strlen(relativeName); + + for (i = 0; i < len; i++) { + if (!nandCheckCharacter(relativeName[i])) { + return 0; + } + } + } + } + + return 1; +} + +BOOL nandCheckCharacter(char character) { + u32 i; + const char legal_characters[66] = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ-_./"; + + for (i = 0; i < sizeof(legal_characters); i++) { + if (character == legal_characters[i]) { + return TRUE; + } + } + + return FALSE; +} + +void dummyStrings2() { + OSReport("/tmp/count_tmpdir"); + OSReport("countfile"); + OSReport("*number is NULL pointer!"); + OSReport("*cleaning is NULL pointer!"); + OSReport("NAND library internal error: free_inodes value must be illegal."); + OSReport("%s/%s_%.2d"); + OSReport("count_tmp.count must be less than ISFS_FD_ENTRIES.!"); +} diff --git a/src/revolution/os/OS.c b/src/revolution/os/OS.c index fc769082da..006870ca43 100644 --- a/src/revolution/os/OS.c +++ b/src/revolution/os/OS.c @@ -4,16 +4,17 @@ #include #include #include +#include #include "__os.h" +#include "__dvd.h" + +#include #define NOP 0x60000000 // external functions extern void EnableMetroTRKInterrupts(void); -extern void __OSInitMemoryProtection(void); -extern void IPCCltInit(void); -extern BOOL __DVDCheckDevice(void); #define DB_EXCEPTIONRET_OFFSET 0xC #define DB_EXCEPTIONDEST_OFFSET 0x8 diff --git a/src/revolution/os/OSAlarm.c b/src/revolution/os/OSAlarm.c index fd50cb3199..235ce0d18d 100644 --- a/src/revolution/os/OSAlarm.c +++ b/src/revolution/os/OSAlarm.c @@ -16,7 +16,7 @@ static void DecrementerExceptionCallback(__REGISTER __OSException exception, __R static void DecrementerExceptionHandler(__OSException exception, OSContext* context); static BOOL OnReset(BOOL final, u32 event); -static OSShutdownFunctionInfo ResetFunctionInfo = {OnReset, 0xFFFFFFFF, NULL, NULL}; +static OSShutdownFunctionInfo ShutdownFunctionInfo = {OnReset, 0xFFFFFFFF, NULL, NULL}; static OSAlarmQueue AlarmQueue; #define ASSERTREPORT(line, cond) \ @@ -52,7 +52,7 @@ void __OSInitAlarm(void) { if (__OSGetExceptionHandler(8) != DecrementerExceptionHandler) { AlarmQueue.head = AlarmQueue.tail = NULL; __OSSetExceptionHandler(8, DecrementerExceptionHandler); - OSRegisterShutdownFunction(&ResetFunctionInfo); + OSRegisterShutdownFunction(&ShutdownFunctionInfo); } } diff --git a/src/revolution/os/OSAudioSystem.c b/src/revolution/os/OSAudioSystem.c index d9e1df68c9..a16bf21954 100644 --- a/src/revolution/os/OSAudioSystem.c +++ b/src/revolution/os/OSAudioSystem.c @@ -1,6 +1,8 @@ #include #include +#include + #include "__os.h" // prototypes diff --git a/src/revolution/os/OSExec.c b/src/revolution/os/OSExec.c index b4b8b2d6cb..50441daab8 100644 --- a/src/revolution/os/OSExec.c +++ b/src/revolution/os/OSExec.c @@ -1,13 +1,14 @@ #include #include #include +#include +#include #include "__os.h" #include "__dvd.h" // extern extern size_t wcslen(const wchar_t *); -extern int __DVDLayoutFormat; extern volatile u32 BOOT_REGION_START AT_ADDRESS(0x812FDFF0); extern volatile u32 BOOT_REGION_END AT_ADDRESS(0x812FDFEC); diff --git a/src/revolution/os/OSInterrupt.c b/src/revolution/os/OSInterrupt.c index cc5e30cb1c..6250a07300 100644 --- a/src/revolution/os/OSInterrupt.c +++ b/src/revolution/os/OSInterrupt.c @@ -1,5 +1,6 @@ #include #include +#include #include "__os.h" diff --git a/src/revolution/os/OSLaunch.c b/src/revolution/os/OSLaunch.c index ce81619f6b..77bc9f8572 100644 --- a/src/revolution/os/OSLaunch.c +++ b/src/revolution/os/OSLaunch.c @@ -1,5 +1,6 @@ #include #include +#include #include "__os.h" diff --git a/src/revolution/os/OSLink.c b/src/revolution/os/OSLink.c index 7ec245ae58..4abc2f64c2 100644 --- a/src/revolution/os/OSLink.c +++ b/src/revolution/os/OSLink.c @@ -1,5 +1,6 @@ #include #include +#include #include "__os.h" diff --git a/src/revolution/os/OSNet.c b/src/revolution/os/OSNet.c index be1f33f184..e68c789734 100644 --- a/src/revolution/os/OSNet.c +++ b/src/revolution/os/OSNet.c @@ -1,6 +1,8 @@ #include #include -#include +#include + +#include "__os.h" static OSShutdownFunctionInfo ShutdownFuncInfo; @@ -8,21 +10,6 @@ static IOSFd nwc24ShtFd = -1; static int nwc24ShtRetryRest = 0; static BOOL NWC24iIsRequestPending = FALSE; -typedef enum NWC24Err { - NWC24_OK = 0, -} NWC24Err; - -NWC24Err NWC24iPrepareShutdown(void); -NWC24Err NWC24iSynchronizeRtcCounter(BOOL); -NWC24Err NWC24iOpenResourceManager_(const char* callerName, const char* path, IOSFd* fd, u32 flags); -NWC24Err NWC24SuspendScheduler(void); -NWC24Err NWC24iSetRtcCounter_(int rtc, BOOL); -NWC24Err NWC24iIoctlResourceManager_(const char* callerName, IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen); -NWC24Err NWC24iCloseResourceManager_(const char* callerName, IOSFd); -NWC24Err NWC24iRequestShutdown(u32 event, s32* result); -NWC24Err NWC24iIoctlResourceManagerAsync_(const char* callerName, IOSFd fd, s32 cmd, void* input, u32 inputLen, void* output, u32 outputLen, void* cbArg); -BOOL NWC24iIsAsyncRequestPending_(void); - BOOL NWC24Shutdown_(BOOL, u32); static void REXInit(void); diff --git a/src/revolution/os/OSPlayTime.c b/src/revolution/os/OSPlayTime.c index 9eddeb8b48..78a10b2ca8 100644 --- a/src/revolution/os/OSPlayTime.c +++ b/src/revolution/os/OSPlayTime.c @@ -2,6 +2,10 @@ #include #include #include +#include +#include + +#include "__os.h" OSAlarm __OSExpireAlarm; OSTime __OSExpireTime; diff --git a/src/revolution/os/OSReset.c b/src/revolution/os/OSReset.c index 12cd1ae138..1685475a18 100644 --- a/src/revolution/os/OSReset.c +++ b/src/revolution/os/OSReset.c @@ -1,6 +1,8 @@ #include #include +#include #include +#include #include "__os.h" #include "__dvd.h" diff --git a/src/revolution/os/OSStateFlags.c b/src/revolution/os/OSStateFlags.c index 5bb81fbcd6..da4b199cd5 100644 --- a/src/revolution/os/OSStateFlags.c +++ b/src/revolution/os/OSStateFlags.c @@ -1,6 +1,6 @@ #include #include -#include +#include static OSStateFlags StateFlags ATTRIBUTE_ALIGN(32); diff --git a/src/revolution/os/OSStateTM.c b/src/revolution/os/OSStateTM.c index 1b4e491e67..3961ff7d98 100644 --- a/src/revolution/os/OSStateTM.c +++ b/src/revolution/os/OSStateTM.c @@ -1,6 +1,7 @@ #include #include #include +#include #include @@ -29,6 +30,7 @@ static void __OSDefaultResetCallback(void); static void __OSDefaultPowerCallback(void); static void __OSRegisterStateEvent(void); +static int AccessVIDimRegs(void); static void LockUp(void); OSPowerCallback OSSetPowerCallback(OSPowerCallback callback) { diff --git a/src/revolution/os/OSSync.c b/src/revolution/os/OSSync.c index 7bf90140c2..094efbe1ba 100644 --- a/src/revolution/os/OSSync.c +++ b/src/revolution/os/OSSync.c @@ -1,5 +1,6 @@ #include #include +#include #include "__os.h" diff --git a/src/revolution/os/OSThread.c b/src/revolution/os/OSThread.c index 6bf9b1a6c3..dbe745d17a 100644 --- a/src/revolution/os/OSThread.c +++ b/src/revolution/os/OSThread.c @@ -542,7 +542,7 @@ void OSCancelThread(OSThread* thread) { int OSJoinThread(OSThread* thread, void* val) { BOOL enabled = OSDisableInterrupts(); - ASSERTMSG1LINE(LINE(1061, 1092, 1092), __OSIsThreadActive(thread) != 0, "OSJoinThread(): thread %p is not active.", thread); + ASSERTMSG1LINE(1061, __OSIsThreadActive(thread) != 0, "OSJoinThread(): thread %p is not active.", thread); if (!(thread->attr & 1) && (thread->state != OS_THREAD_STATE_MORIBUND) && (thread->queueJoin.head == NULL)) { OSSleepThread(&thread->queueJoin); @@ -851,7 +851,7 @@ void OSSetThreadSpecific(s32 index, void* ptr) { OSThread* thread; thread = __OSCurrentThread; - ASSERTLINE(LINE(1573, 1604, 1604), 0 <= index && index < OS_THREAD_SPECIFIC_MAX); + ASSERTLINE(1573, 0 <= index && index < OS_THREAD_SPECIFIC_MAX); if (thread != 0 && index >= 0 && index < OS_THREAD_SPECIFIC_MAX) { thread->specific[index] = ptr; @@ -862,7 +862,7 @@ void* OSGetThreadSpecific(s32 index) { OSThread* thread; thread = __OSCurrentThread; - ASSERTLINE(LINE(1584, 1615, 1615), 0 <= index && index < OS_THREAD_SPECIFIC_MAX); + ASSERTLINE(1584, 0 <= index && index < OS_THREAD_SPECIFIC_MAX); if (thread != 0 && index >= 0 && index < OS_THREAD_SPECIFIC_MAX) { return thread->specific[index]; diff --git a/src/revolution/os/__os.h b/src/revolution/os/__os.h index 75e76f5df3..3c41d2158a 100644 --- a/src/revolution/os/__os.h +++ b/src/revolution/os/__os.h @@ -13,11 +13,7 @@ extern char* __OSExceptionNames[17]; // D ONLY u32 __OSIsDebuggerPresent(void); void __OSPSInit(void); -void __OSInitIPCBuffer(void); -void __OSInitSTM(void); -void __OSInitNet(void); -void __OSInitPlayTime(void); -void __OSStartPlayRecord(void); +void __OSGetIOSRev(OSIOSRev* rev); // OSAlarm void __OSInitAlarm(void); @@ -44,6 +40,7 @@ void __OSGetExecParams(OSExecParams* params); void __OSSetExecParams(const OSExecParams* params, OSExecParams* addr); void __OSBootDolSimple(u32 doloffset, u32 restartCode, void* regionStart, void* regionEnd, BOOL argsUseDefault, s32 argc, char** argv); void __OSBootDol(u32 doloffset, u32 restartCode, const char** argv); +void __OSLaunchMenu(); extern u32 __OSNextPartitionType; // OSInterrupt @@ -62,25 +59,37 @@ OSInterruptMask __OSUnmaskInterrupts(OSInterruptMask global); void __OSDispatchInterrupt(__OSException exception, OSContext* context); void __OSModuleInit(void); +// OSIpc +void __OSInitIPCBuffer(void); + +// OSLaunch +void __OSRelaunchTitle(u32 resetCode); + // OSMemory void __OSInitMemoryProtection(void); +void __OSRestoreCodeExecOnMEM1(u32 param_0); // OSMutex void __OSUnlockAllMutex(OSThread* thread); int __OSCheckDeadLock(OSThread* thread); int __OSCheckMutexes(OSThread* thread); +// OSNet +void __OSInitNet(void); + // OSPlayTime -void __OSGetPlayTime(ESTicketView* ticket, __OSPlayTimeType* type, u32* playTime); +void __OSInitPlayTime(void); +s32 __OSGetPlayTime(ESTicketView* ticket, __OSPlayTimeType* type, u32* playTime); +BOOL __OSWriteExpiredFlagIfSet(void); + +// OSPlayRecord +void __OSStartPlayRecord(void); // OSReset -void __OSDoHotReset(u32 resetCode); void __OSShutdownDevices(u32 event); int __OSCallShutdownFunctions(BOOL final, u32 event); - -// OSResetSW -void __OSResetSWInterruptHandler(s16 exception, OSContext* context); -void __OSSetResetButtonTimer(u8 min); +void __OSReturnToMenuForError(void); +void __OSHotResetForError(void); // OSRtc int __OSGetRTC(u32* rtc); @@ -96,6 +105,8 @@ int __OSReadROM(void* buffer, s32 length, s32 offset); int __OSReadROMAsync(void* buffer, s32 length, s32 offset, void (*callback)()); u8 __OSGetBootMode(void); void __OSSetBootMode(u8 ntd); +BOOL __OSGetRTCFlags(u32* flags); +BOOL __OSClearRTCFlags(void); // OSSync extern void __OSSystemCallVectorStart(); @@ -103,6 +114,14 @@ extern void __OSSystemCallVectorEnd(); void __OSInitSystemCall(void); +// OSStateTM +void __OSInitSTM(void); +BOOL __OSWriteExpiredFlag(void); +int __OSSetVIForceDimming(BOOL isEnabled, u32 yShift, u32 xShift); +s32 __OSUnRegisterStateEvent(void); +void __OSShutdownToSBY(void); +void __OSHotReset(void); + // OSThread void __OSThreadInit(void); s32 __OSGetEffectivePriority(OSThread* thread); @@ -137,12 +156,6 @@ OSTime __get_clock(void); u32 __get_time(void); int __to_gm_time(void); - -// unsorted -void __OSWriteExpiredFlag(void); -void __OSReturnToMenuForError(void); -void __OSHotResetForError(void); - #ifdef __cplusplus } #endif diff --git a/src/revolution/pad/Pad.c b/src/revolution/pad/Pad.c new file mode 100644 index 0000000000..81105f2b8f --- /dev/null +++ b/src/revolution/pad/Pad.c @@ -0,0 +1,894 @@ +#include +#include +#include + +#include + +#include "__si.h" + +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#define MAX(a, b) ((a) > (b) ? (a) : (b)) + +#ifdef SDK_AUG2010 +#define BUILD_DATE "Aug 23 2010" +#if DEBUG +#define BUILD_TIME "17:27:55" +#else +#define BUILD_TIME "17:33:06" +#endif +#elif SDK_SEP2006 +#define BUILD_DATE "Sep 21 2006" +#define BUILD_TIME "14:32:13" +#endif + +#ifdef SDK_AUG2010 +#if DEBUG +const char* __PADVersion = "<< RVL_SDK - PAD \tdebug build: "BUILD_DATE" "BUILD_TIME" (0x4302_145) >>"; +#else +const char* __PADVersion = "<< RVL_SDK - PAD \trelease build: "BUILD_DATE" "BUILD_TIME" (0x4302_145) >>"; +#endif +#elif SDK_SEP2006 +const char* __PADVersion = "<< RVL_SDK - PAD \trelease build: "BUILD_DATE" "BUILD_TIME" (0x4200_60422) >>"; +#endif + +#define PAD_ALL \ + ( \ + PAD_BUTTON_LEFT | \ + PAD_BUTTON_RIGHT | \ + PAD_BUTTON_DOWN | \ + PAD_BUTTON_UP | \ + PAD_TRIGGER_Z | \ + PAD_TRIGGER_R | \ + PAD_TRIGGER_L | \ + PAD_BUTTON_A | \ + PAD_BUTTON_B | \ + PAD_BUTTON_X | \ + PAD_BUTTON_Y | \ + PAD_BUTTON_MENU | \ + 0x2000 | \ + 0x0080 \ + ) + +static s32 ResettingChan = 0x20; +static u32 XPatchBits = PAD_CHAN0_BIT | PAD_CHAN1_BIT | PAD_CHAN2_BIT | PAD_CHAN3_BIT; +static u32 AnalogMode = 0x300; +static u32 Spec = PAD_SPEC_5; + +static BOOL Initialized; +static u32 EnabledBits; +static u32 ResettingBits; +static u32 RecalibrateBits; +static u32 WaitingBits; +static u32 CheckingBits; +static u32 PendingBits; +static u32 BarrelBits; + +static u32 Type[4]; +static PADStatus Origin[4]; + +u32 __PADSpec; + +// prototypes +static void PADTypeAndStatusCallback(s32 chan, u32 type); +static u16 GetWirelessID(s32 chan); +static void SetWirelessID(s32 chan, u16 id); +static void DoReset(); +static void PADEnable(s32 chan); +static void ProbeWireless(s32 chan); +static void PADProbeCallback(s32 chan, u32 error, OSContext *context); +static void PADDisable(s32 chan); +static void UpdateOrigin(s32 chan); +static void PADOriginCallback(s32 chan, u32 error, OSContext *context); +static void PADFixCallback(s32 unused, u32 error, struct OSContext *context); +static void PADResetCallback(s32 unused, u32 error, struct OSContext *context); +static void PADReceiveCheckCallback(s32 chan, u32 error); +static void SPEC0_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); +static void SPEC1_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); +static s8 ClampS8(s8 var, s8 org); +static u8 ClampU8(u8 var, u8 org); +static void SPEC2_MakeStatus(s32 chan, PADStatus *status, u32 data[2]); +static BOOL OnShutdown(BOOL f, u32); +void __PADDisableXPatch(void); +BOOL __PADDisableRumble(BOOL disable); + +typedef void (*SPECCallback)(s32, PADStatus*, u32*); +static SPECCallback MakeStatus = SPEC2_MakeStatus; + +static u32 CmdTypeAndStatus; +static u32 CmdReadOrigin = 0x41000000; +static u32 CmdCalibrate = 0x42000000; +static u32 CmdProbeDevice[4]; + +static OSShutdownFunctionInfo ShutdownFunctionInfo = { + OnShutdown, + 127, + NULL, + NULL, +}; + +static void PADEnable(s32 chan) { + u32 cmd; + u32 chanBit; + u32 data[2]; + + chanBit = PAD_CHAN0_BIT >> chan; + EnabledBits |= chanBit; + SIGetResponse(chan, &data); + cmd = (AnalogMode | 0x400000); + SISetCommand(chan, cmd); + SIEnablePolling(EnabledBits); +} + +static void PADDisable(s32 chan) { + BOOL enabled; + u32 chanBit; + + enabled = OSDisableInterrupts(); + chanBit = PAD_CHAN0_BIT >> chan; + SIDisablePolling(chanBit); + EnabledBits &= ~chanBit; + WaitingBits &= ~chanBit; + CheckingBits &= ~chanBit; + PendingBits &= ~chanBit; + BarrelBits &= ~chanBit; + OSSetWirelessID(chan, 0); + OSRestoreInterrupts(enabled); +} + +static void DoReset() { + u32 chanBit; + + ResettingChan = __cntlzw(ResettingBits); + if (ResettingChan != 32) { + ASSERTLINE(589, 0 <= ResettingChan && ResettingChan < SI_MAX_CHAN); + chanBit = (PAD_CHAN0_BIT >> ResettingChan); + ResettingBits &= ~chanBit; + + memset(&Origin[ResettingChan], 0, sizeof(PADStatus)); + SIGetTypeAsync(ResettingChan, PADTypeAndStatusCallback); + } +} + +static void UpdateOrigin(s32 chan) { + PADStatus* origin; + u32 chanBit = PAD_CHAN0_BIT >> chan; + + origin = &Origin[chan]; + switch (AnalogMode & 0x00000700u) { + case 0x00000000u: + case 0x00000500u: + case 0x00000600u: + case 0x00000700u: + origin->triggerLeft &= ~15; + origin->triggerRight &= ~15; + origin->analogA &= ~15; + origin->analogB &= ~15; + break; + case 0x00000100u: + origin->substickX &= ~15; + origin->substickY &= ~15; + origin->analogA &= ~15; + origin->analogB &= ~15; + break; + case 0x00000200u: + origin->substickX &= ~15; + origin->substickY &= ~15; + origin->triggerLeft &= ~15; + origin->triggerRight &= ~15; + break; + case 0x00000300u: break; + case 0x00000400u: break; + } + + origin->stickX -= 128; + origin->stickY -= 128; + origin->substickX -= 128; + origin->substickY -= 128; + + if (XPatchBits & chanBit) { + if (64 < origin->stickX && (SIGetType(chan) & 0xFFFF0000) == SI_GC_CONTROLLER) { + origin->stickX = 0; + } + } +} + +static void PADOriginCallback(s32 chan, u32 error, OSContext* context) { + ASSERTLINE(671, 0 <= ResettingChan && ResettingChan < SI_MAX_CHAN); + ASSERTLINE(672, chan == ResettingChan); + + if (!(error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION))) + { + UpdateOrigin(ResettingChan); + PADEnable(ResettingChan); + } + + DoReset(); +} + +static void PADOriginUpdateCallback(s32 chan, u32 error, OSContext* context) { + ASSERTLINE(701, 0 <= chan && chan < SI_MAX_CHAN); + if (!(EnabledBits & (PAD_CHAN0_BIT >> chan))) + return; + if (!(error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION))) + UpdateOrigin(chan); + if (error & SI_ERROR_NO_RESPONSE) { + PADDisable(chan); + } +} + +static void PADProbeCallback(s32 chan, u32 error, OSContext* context) { + u32 type; + ASSERTLINE(740, 0 <= ResettingChan && ResettingChan < SI_MAX_CHAN); + ASSERTLINE(741, chan == ResettingChan); + ASSERTLINE(743, (Type[chan] & SI_WIRELESS_CONT_MASK) == SI_WIRELESS_CONT && !(Type[chan] & SI_WIRELESS_LITE)); + + if (!(error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION))) + { + PADEnable(ResettingChan); + WaitingBits |= PAD_CHAN0_BIT >> ResettingChan; + } + + DoReset(); +} + +static void PADTypeAndStatusCallback(s32 chan, u32 type) { + u32 chanBit; + u32 recalibrate; + BOOL rc = TRUE; + u32 error; + + ASSERTLINE(776, 0 <= ResettingChan && ResettingChan < SI_MAX_CHAN); + ASSERTLINE(777, chan == ResettingChan); + + chanBit = PAD_CHAN0_BIT >> ResettingChan; + error = type & 0xFF; + ASSERTLINE(786, !(error & SI_ERROR_BUSY)); + + recalibrate = RecalibrateBits & chanBit; + RecalibrateBits &= ~chanBit; + + if (error & (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION)) + { + DoReset(); + return; + } + + type &= ~0xFF; + Type[ResettingChan] = type; + + if ((type & SI_TYPE_MASK) != SI_TYPE_GC || !(type & SI_GC_STANDARD)) { + DoReset(); + return; + } + + if (Spec < PAD_SPEC_2) { + PADEnable(ResettingChan); + DoReset(); + return; + } + + if (!(type & SI_GC_WIRELESS) || (type & SI_WIRELESS_IR)) { + if (recalibrate) { + rc = SITransfer(ResettingChan, &CmdCalibrate, 3, &Origin[ResettingChan], 10, + PADOriginCallback, 0); + } else { + rc = SITransfer(ResettingChan, &CmdReadOrigin, 1, &Origin[ResettingChan], 10, + PADOriginCallback, 0); + } + } else if ((type & SI_WIRELESS_FIX_ID) && (type & SI_WIRELESS_CONT_MASK) == SI_WIRELESS_CONT && + !(type & SI_WIRELESS_LITE)) + { + if (type & SI_WIRELESS_RECEIVED) { + rc = SITransfer(ResettingChan, &CmdReadOrigin, 1, &Origin[ResettingChan], 10, + PADOriginCallback, 0); + } else { + rc = SITransfer(ResettingChan, &CmdProbeDevice[ResettingChan], 3, + &Origin[ResettingChan], 8, PADProbeCallback, 0); + } + } + + if (!rc) { + PendingBits |= chanBit; + DoReset(); + return; + } +} + +static void PADReceiveCheckCallback(s32 chan, u32 type) { + u32 error; + u32 chanBit; + + chanBit = PAD_CHAN0_BIT >> chan; + + if (EnabledBits & chanBit) { + error = type & 0xFF; + type &= ~0xFF; + + WaitingBits &= ~chanBit; + CheckingBits &= ~chanBit; + + if (!(error & + (SI_ERROR_UNDER_RUN | SI_ERROR_OVER_RUN | SI_ERROR_NO_RESPONSE | SI_ERROR_COLLISION)) && + (type & SI_GC_WIRELESS) && (type & SI_WIRELESS_FIX_ID) && (type & SI_WIRELESS_RECEIVED) && + !(type & SI_WIRELESS_IR) && (type & SI_WIRELESS_CONT_MASK) == SI_WIRELESS_CONT && + !(type & SI_WIRELESS_LITE)) + { + SITransfer(chan, &CmdReadOrigin, 1, &Origin[chan], 10, PADOriginUpdateCallback, 0); + } else { + PADDisable(chan); + } + } +} + +int PADReset(u32 mask) { + BOOL enabled; + u32 disableBits; + + ASSERTMSGLINE(927, !(mask & 0x0FFFFFFF), "PADReset(): invalid mask"); + + enabled = OSDisableInterrupts(); + mask |= PendingBits; + PendingBits = 0; + mask &= ~(WaitingBits | CheckingBits); + ResettingBits |= mask; + disableBits = ResettingBits & EnabledBits; + EnabledBits &= ~mask; + BarrelBits &= ~mask; + + if (Spec == 4) { + RecalibrateBits |= mask; + } + + SIDisablePolling(disableBits); + + if (ResettingChan == 0x20) { + DoReset(); + } + + OSRestoreInterrupts(enabled); + return 1; +} + +BOOL PADRecalibrate(u32 mask) { + BOOL enabled; + u32 disableBits; + + ASSERTMSGLINE(969, !(mask & 0x0FFFFFFF), "PADReset(): invalid mask"); + enabled = OSDisableInterrupts(); + + mask |= PendingBits; + PendingBits = 0; + mask &= ~(WaitingBits | CheckingBits); + ResettingBits |= mask; + disableBits = ResettingBits & EnabledBits; + EnabledBits &= ~mask; + BarrelBits &= ~mask; + + if (!(__gUnknown800030E3 & 0x40)) { + RecalibrateBits |= mask; + } + + SIDisablePolling(disableBits); + if (ResettingChan == 32) + DoReset(); + + OSRestoreInterrupts(enabled); + return 1; +} + +BOOL PADInit() { + s32 chan; + if (Initialized) { + return 1; + } + + OSRegisterVersion(__PADVersion); + + if (__PADSpec) + PADSetSpec(__PADSpec); + + Initialized = TRUE; + + if (__PADFixBits != 0) { + OSTime time = OSGetTime(); + __OSWirelessPadFixMode + = (u16)((((time)&0xffff) + ((time >> 16) & 0xffff) + ((time >> 32) & 0xffff) + ((time >> 48) & 0xffff)) + & 0x3fffu); + + RecalibrateBits = PAD_CHAN0_BIT | PAD_CHAN1_BIT | PAD_CHAN2_BIT | PAD_CHAN3_BIT; + } + + for (chan = 0; chan < SI_MAX_CHAN; ++chan) { + CmdProbeDevice[chan] = (0x4D << 24) | (chan << 22) | ((__OSWirelessPadFixMode & 0x3fffu) << 8); + } + + SIRefreshSamplingRate(); + OSRegisterShutdownFunction(&ShutdownFunctionInfo); + + return PADReset(PAD_CHAN0_BIT | PAD_CHAN1_BIT | PAD_CHAN2_BIT | PAD_CHAN3_BIT); +} + +u32 PADRead(PADStatus* status) { + BOOL enabled; + s32 chan; + u32 data[2]; + u32 chanBit; + u32 sr; + int chanShift; + u32 motor; + static PADStatus pre_status[4]; + int threshold; + + threshold = 3; + enabled = OSDisableInterrupts(); + motor = 0; + + for (chan = 0; chan < 4; chan++, status++) { + chanBit = PAD_CHAN0_BIT >> chan; + chanShift = 8 * (SI_MAX_CHAN - 1 - chan); + + if (PendingBits & chanBit) { + PADReset(0); + status->err = PAD_ERR_NOT_READY; + memset(status, 0, offsetof(PADStatus, err)); + } else if ((ResettingBits & chanBit) || ResettingChan == chan) { + status->err = PAD_ERR_NOT_READY; + memset(status, 0, offsetof(PADStatus, err)); + } else if (!(EnabledBits & chanBit)) { + status->err = PAD_ERR_NO_CONTROLLER; + memset(status, 0, offsetof(PADStatus, err)); + } else if (SIIsChanBusy(chan)) { + status->err = PAD_ERR_TRANSFER; + memset(status, 0, offsetof(PADStatus, err)); + } else { + sr = SIGetStatus(chan); + if (sr & SI_ERROR_NO_RESPONSE) { + SIGetResponse(chan, data); + + if (WaitingBits & chanBit) { + status->err = PAD_ERR_NONE; + memset(status, 0, offsetof(PADStatus, err)); + + if (!(CheckingBits & chanBit)) { + CheckingBits |= chanBit; + SIGetTypeAsync(chan, PADReceiveCheckCallback); + } + } else { + PADDisable(chan); + status->err = PAD_ERR_NO_CONTROLLER; + memset(status, 0, offsetof(PADStatus, err)); + } + } else { + if (!(SIGetType(chan) & SI_GC_NOMOTOR)) { + motor |= chanBit; + } + + if (!SIGetResponse(chan, &data)) { + status->err = PAD_ERR_TRANSFER; + memset(status, 0, offsetof(PADStatus, err)); + } else if (data[0] & 0x80000000) { + status->err = PAD_ERR_TRANSFER; + memset(status, 0, offsetof(PADStatus, err)); + } else { + + + MakeStatus(chan, status, data); + + if (((Type[chan] & (0xFFFF0000)) == SI_GC_CONTROLLER) && ((status->button & 0x80) ^ 0x80)) { + threshold = 10; + } else { + threshold = 3; + } + + #ifdef __MWERKS__ + #define abs(x) __abs(x) + #else + #define abs(x) __builtin_abs(x) + #endif + + if (abs(abs(status->stickX) - abs(pre_status[chan].stickX)) >= threshold || + abs(abs(status->stickY) - abs(pre_status[chan].stickY)) >= threshold || + abs(abs(status->substickX) - abs(pre_status[chan].substickX)) >= threshold || + abs(abs(status->substickY) - abs(pre_status[chan].substickY)) >= threshold || + abs(abs(status->triggerLeft) - abs(pre_status[chan].triggerLeft)) >= threshold || + abs(abs(status->triggerRight) - abs(pre_status[chan].triggerRight)) >= threshold || + pre_status[chan].button != status->button) + { + __VIResetSIIdle(); + } + + #undef abs + + memcpy(&pre_status[chan], status, sizeof(PADStatus)); + + // Check and clear PAD_ORIGIN bit + if (status->button & 0x2000) { + status->err = PAD_ERR_TRANSFER; + memset(status, 0, offsetof(PADStatus, err)); + + // Get origin. It is okay if the following transfer fails + // since the PAD_ORIGIN bit remains until the read origin + // command complete. + SITransfer(chan, &CmdReadOrigin, 1, &Origin[chan], 10, PADOriginUpdateCallback, 0); + } else { + status->err = PAD_ERR_NONE; + + // Clear PAD_INTERFERE bit + status->button &= ~0x0080; + } + } + } + } + } + + OSRestoreInterrupts(enabled); + return motor; +} + +typedef struct XY { + u8 line; + u8 count; +} XY; + +void PADSetSamplingRate(u32 msec) { + SISetSamplingRate(msec); +} + +#if DEBUG +void __PADTestSamplingRate(u32 tvmode) { + __SITestSamplingRate(tvmode); +} +#endif + +void PADControlAllMotors(const u32* commandArray) { + BOOL enabled; + int chan; + u32 command; + BOOL commit; + u32 chanBit; + + enabled = OSDisableInterrupts(); + commit = FALSE; + + for (chan = 0; chan < SI_MAX_CHAN; chan++, commandArray++) { + chanBit = PAD_CHAN0_BIT >> chan; + if ((EnabledBits & chanBit) && !(SIGetType(chan) & 0x20000000)) { + command = *commandArray; + ASSERTMSGLINE(0x4B5, !(command & 0xFFFFFFFC), "PADControlAllMotors(): invalid command"); + if (Spec < PAD_SPEC_2 && command == PAD_MOTOR_STOP_HARD) + command = PAD_MOTOR_STOP; + if (__gUnknown800030E3 & 0x20) + command = PAD_MOTOR_STOP; + SISetCommand(chan, (0x40 << 16) | AnalogMode | (command & (0x00000001 | 0x00000002))); + commit = TRUE; + } + } + + if (commit) + SITransferCommands(); + + OSRestoreInterrupts(enabled); +} + +void PADControlMotor(s32 chan, u32 command) { + BOOL enabled; + u32 chanBit; + + ASSERTMSGLINE(1308, !(command & 0xFFFFFFFC), "PADControlMotor(): invalid command"); + + enabled = OSDisableInterrupts(); + chanBit = PAD_CHAN0_BIT >> chan; + if ((EnabledBits & chanBit) && !(SIGetType(chan) & SI_GC_NOMOTOR)) { + if (Spec < PAD_SPEC_2 && command == PAD_MOTOR_STOP_HARD) + command = PAD_MOTOR_STOP; + if (__gUnknown800030E3 & 0x20) + command = PAD_MOTOR_STOP; + SISetCommand(chan, (0x40 << 16) | AnalogMode | (command & (0x00000001 | 0x00000002))); + SITransferCommands(); + } + + OSRestoreInterrupts(enabled); +} + +void PADSetSpec(u32 spec) { + ASSERTLINE(1346, !Initialized); + __PADSpec = 0; + + switch (spec) { + case PAD_SPEC_0: + MakeStatus = SPEC0_MakeStatus; + break; + case PAD_SPEC_1: + MakeStatus = SPEC1_MakeStatus; + break; + case PAD_SPEC_2: + case PAD_SPEC_3: + case PAD_SPEC_4: + case PAD_SPEC_5: + MakeStatus = SPEC2_MakeStatus; + break; + } + Spec = spec; +} + +u32 PADGetSpec(void) { + return Spec; +} + +static void SPEC0_MakeStatus(s32 chan, PADStatus* status, u32 data[2]) { + status->button = 0; + status->button |= ((data[0] >> 16) & 0x0008) ? PAD_BUTTON_A : 0; + status->button |= ((data[0] >> 16) & 0x0020) ? PAD_BUTTON_B : 0; + status->button |= ((data[0] >> 16) & 0x0100) ? PAD_BUTTON_X : 0; + status->button |= ((data[0] >> 16) & 0x0001) ? PAD_BUTTON_Y : 0; + status->button |= ((data[0] >> 16) & 0x0010) ? PAD_BUTTON_START : 0; + status->stickX = (s8)(data[1] >> 16); + status->stickY = (s8)(data[1] >> 24); + status->substickX = (s8)(data[1]); + status->substickY = (s8)(data[1] >> 8); + status->triggerLeft = (u8)(data[0] >> 8); + status->triggerRight = (u8)data[0]; + status->analogA = 0; + status->analogB = 0; + if (170 <= status->triggerLeft) + status->button |= PAD_TRIGGER_L; + if (170 <= status->triggerRight) + status->button |= PAD_TRIGGER_R; + status->stickX -= 128; + status->stickY -= 128; + status->substickX -= 128; + status->substickY -= 128; +} + +static void SPEC1_MakeStatus(s32 chan, PADStatus* status, u32 data[2]) { + status->button = 0; + status->button |= ((data[0] >> 16) & 0x0080) ? PAD_BUTTON_A : 0; + status->button |= ((data[0] >> 16) & 0x0100) ? PAD_BUTTON_B : 0; + status->button |= ((data[0] >> 16) & 0x0020) ? PAD_BUTTON_X : 0; + status->button |= ((data[0] >> 16) & 0x0010) ? PAD_BUTTON_Y : 0; + status->button |= ((data[0] >> 16) & 0x0200) ? PAD_BUTTON_START : 0; + + status->stickX = (s8)(data[1] >> 16); + status->stickY = (s8)(data[1] >> 24); + status->substickX = (s8)(data[1]); + status->substickY = (s8)(data[1] >> 8); + + status->triggerLeft = (u8)(data[0] >> 8); + status->triggerRight = (u8)data[0]; + + status->analogA = 0; + status->analogB = 0; + + if (170 <= status->triggerLeft) + status->button |= PAD_TRIGGER_L; + if (170 <= status->triggerRight) + status->button |= PAD_TRIGGER_R; + + status->stickX -= 128; + status->stickY -= 128; + status->substickX -= 128; + status->substickY -= 128; +} + +static s8 ClampS8(s8 var, s8 org) { + if (0 < org) { + s8 min = (s8)(-128 + org); + if (var < min) + var = min; + } else if (org < 0) { + s8 max = (s8)(127 + org); + if (max < var) + var = max; + } + return var -= org; +} + +static u8 ClampU8(u8 var, u8 org) { + if (var < org) + var = org; + return var -= org; +} + +static void SPEC2_MakeStatus(s32 chan, PADStatus* status, u32 data[2]) { + PADStatus* origin; + + status->button = (u16)((data[0] >> 16) & PAD_ALL); + status->stickX = (s8)(data[0] >> 8); + status->stickY = (s8)(data[0]); + + switch (AnalogMode & 0x00000700) { + case 0x00000000: + case 0x00000500: + case 0x00000600: + case 0x00000700: + status->substickX = (s8)(data[1] >> 24); + status->substickY = (s8)(data[1] >> 16); + status->triggerLeft = (u8)(((data[1] >> 12) & 0x0f) << 4); + status->triggerRight = (u8)(((data[1] >> 8) & 0x0f) << 4); + status->analogA = (u8)(((data[1] >> 4) & 0x0f) << 4); + status->analogB = (u8)(((data[1] >> 0) & 0x0f) << 4); + break; + case 0x00000100: + status->substickX = (s8)(((data[1] >> 28) & 0x0f) << 4); + status->substickY = (s8)(((data[1] >> 24) & 0x0f) << 4); + status->triggerLeft = (u8)(data[1] >> 16); + status->triggerRight = (u8)(data[1] >> 8); + status->analogA = (u8)(((data[1] >> 4) & 0x0f) << 4); + status->analogB = (u8)(((data[1] >> 0) & 0x0f) << 4); + break; + case 0x00000200: + status->substickX = (s8)(((data[1] >> 28) & 0x0f) << 4); + status->substickY = (s8)(((data[1] >> 24) & 0x0f) << 4); + status->triggerLeft = (u8)(((data[1] >> 20) & 0x0f) << 4); + status->triggerRight = (u8)(((data[1] >> 16) & 0x0f) << 4); + status->analogA = (u8)(data[1] >> 8); + status->analogB = (u8)(data[1] >> 0); + break; + case 0x00000300: + status->substickX = (s8)(data[1] >> 24); + status->substickY = (s8)(data[1] >> 16); + status->triggerLeft = (u8)(data[1] >> 8); + status->triggerRight = (u8)(data[1] >> 0); + status->analogA = 0; + status->analogB = 0; + break; + case 0x00000400: + status->substickX = (s8)(data[1] >> 24); + status->substickY = (s8)(data[1] >> 16); + status->triggerLeft = 0; + status->triggerRight = 0; + status->analogA = (u8)(data[1] >> 8); + status->analogB = (u8)(data[1] >> 0); + break; + } + + status->stickX -= 128; + status->stickY -= 128; + status->substickX -= 128; + status->substickY -= 128; + + if (((Type[chan] & (0xFFFF0000)) == SI_GC_CONTROLLER) && ((status->button & 0x80) ^ 0x80)) { + BarrelBits |= (PAD_CHAN0_BIT >> chan); + status->stickX = 0; + status->stickY = 0; + status->substickX = 0; + status->substickY = 0; + return; + } else { + BarrelBits &= ~(PAD_CHAN0_BIT >> chan); + } + + origin = &Origin[chan]; + status->stickX = ClampS8(status->stickX, origin->stickX); + status->stickY = ClampS8(status->stickY, origin->stickY); + status->substickX = ClampS8(status->substickX, origin->substickX); + status->substickY = ClampS8(status->substickY, origin->substickY); + status->triggerLeft = ClampU8(status->triggerLeft, origin->triggerLeft); + status->triggerRight = ClampU8(status->triggerRight, origin->triggerRight); +} + +int PADGetType(s32 chan, u32* type) { + u32 chanBit; + + *type = SIGetType(chan); + chanBit = PAD_CHAN0_BIT >> chan; + if (ResettingBits & chanBit || ResettingChan == chan || !(EnabledBits & chanBit)) { + return 0; + } + return 1; +} + +BOOL PADSync(void) { + return ResettingBits == 0 && (s32)ResettingChan == 32 && !SIBusy(); +} + +void PADSetAnalogMode(u32 mode) { + BOOL enabled; + u32 mask; + + ASSERTMSGLINE(1681, (mode < 8), "PADSetAnalogMode(): invalid mode"); + + enabled = OSDisableInterrupts(); + AnalogMode = mode << 8; + mask = EnabledBits; + + EnabledBits &= ~mask; + WaitingBits &= ~mask; + CheckingBits &= ~mask; + + SIDisablePolling(mask); + OSRestoreInterrupts(enabled); +} + +static void (*SamplingCallback)(); + +static BOOL OnShutdown(BOOL final, u32 event) { + BOOL sync; + static BOOL recalibrated = FALSE; + + if (SamplingCallback) + PADSetSamplingCallback(NULL); + + if (!final) { + sync = PADSync(); + if (!recalibrated && sync) { + recalibrated = PADRecalibrate(PAD_CHAN0_BIT | PAD_CHAN1_BIT | PAD_CHAN2_BIT | PAD_CHAN3_BIT); + return FALSE; + } + return sync; + } else + recalibrated = FALSE; + + return TRUE; +} + +void __PADDisableXPatch(void) { + XPatchBits = 0; +} + +static void SamplingHandler(__OSInterrupt interrupt, OSContext* context) { + OSContext exceptionContext; + + if (SamplingCallback) { + OSClearContext(&exceptionContext); + OSSetCurrentContext(&exceptionContext); + SamplingCallback(); + OSClearContext(&exceptionContext); + OSSetCurrentContext(context); + } +} + +PADSamplingCallback PADSetSamplingCallback(PADSamplingCallback callback) { + PADSamplingCallback prev; + + prev = SamplingCallback; + SamplingCallback = callback; + if (callback) { + SIRegisterPollingHandler(SamplingHandler); + } else { + SIUnregisterPollingHandler(SamplingHandler); + } + + return prev; +} + +BOOL __PADDisableRecalibration(BOOL disable) { + BOOL enabled; + BOOL prev; + + enabled = OSDisableInterrupts(); + prev = (__gUnknown800030E3 & 0x40) ? TRUE : FALSE; + __gUnknown800030E3 &= ~0x40; + if (disable) { + __gUnknown800030E3 |= 0x40; + } + + OSRestoreInterrupts(enabled); + return prev; +} + +BOOL __PADDisableRumble(BOOL disable) { + BOOL enabled; + BOOL prev; + + enabled = OSDisableInterrupts(); + prev = (__gUnknown800030E3 & 0x20) ? TRUE : FALSE; + __gUnknown800030E3 &= ~0x20; + if (disable) { + __gUnknown800030E3 |= 0x20; + } + OSRestoreInterrupts(enabled); + return prev; +} + +BOOL PADIsBarrel(s32 chan) { + if (chan < 0 || chan >= 4) { + return FALSE; + } + + if (BarrelBits & (PAD_CHAN0_BIT >> chan)) { + return TRUE; + } + + return FALSE; +} diff --git a/src/revolution/pad/Padclamp.c b/src/revolution/pad/Padclamp.c new file mode 100644 index 0000000000..1348cf5d9e --- /dev/null +++ b/src/revolution/pad/Padclamp.c @@ -0,0 +1,153 @@ +#include +#include + +extern f32 sqrtf(f32); + +static const PADClampRegion ClampRegion = { + // Triggers + 30, + 180, + + // Left stick + 15, + 72, + 40, + + // Right stick + 15, + 59, + 31, + + // Stick radii + 56, + 44, +}; + +// prototypes +static void ClampStick(s8* px, s8* py, s8 max, s8 xy, s8 min); +static void ClampCircle(s8* px, s8* py, s8 radius, s8 min); +static void ClampTrigger(u8* trigger, u8 min, u8 max); + +static void ClampStick(s8* px, s8* py, s8 max, s8 xy, s8 min) { + int x = *px; + int y = *py; + int signX; + int signY; + int d; + + if (0 <= x) { + signX = 1; + } else { + signX = -1; + x = -x; + } + + if (0 <= y) { + signY = 1; + } else { + signY = -1; + y = -y; + } + + if (x <= min) { + x = 0; + } else { + x -= min; + } + if (y <= min) { + y = 0; + } else { + y -= min; + } + + if (x == 0 && y == 0) { + *px = *py = 0; + return; + } + + if (xy * y <= xy * x) { + d = xy * x + (max - xy) * y; + if (xy * max < d) { + x = (s8)(xy * max * x / d); + y = (s8)(xy * max * y / d); + } + } else { + d = xy * y + (max - xy) * x; + if (xy * max < d) { + x = (s8)(xy * max * x / d); + y = (s8)(xy * max * y / d); + } + } + + *px = (s8)(signX * x); + *py = (s8)(signY * y); +} + +static void ClampCircle(s8* px, s8* py, s8 radius, s8 min) { + int x = *px; + int y = *py; + int squared; + int length; + + if (-min < x && x < min) { + x = 0; + } else if (0 < x) { + x -= min; + } else { + x += min; + } + + if (-min < y && y < min) { + y = 0; + } else if (0 < y) { + y -= min; + } else { + y += min; + } + + squared = x * x + y * y; + if (radius * radius < squared) { + length = sqrtf(squared); + x = (x * radius) / length; + y = (y * radius) / length; + } + + *px = x; + *py = y; +} + +static void ClampTrigger(u8* trigger, u8 min, u8 max) { + if (*trigger <= min) { + *trigger = 0; + } else { + if (max < *trigger) { + *trigger = max; + } + *trigger -= min; + } +} + +void PADClamp(PADStatus * status) { + int i; + + for (i = 0; i < 4; i++, status++) { + if (status->err == PAD_ERR_NONE) { + ClampStick(&status->stickX, &status->stickY, ClampRegion.maxStick, ClampRegion.xyStick, ClampRegion.minStick); + ClampStick(&status->substickX, &status->substickY, ClampRegion.maxSubstick, ClampRegion.xySubstick, ClampRegion.minSubstick); + ClampTrigger(&status->triggerLeft, ClampRegion.minTrigger, ClampRegion.maxTrigger); + ClampTrigger(&status->triggerRight, ClampRegion.minTrigger, ClampRegion.maxTrigger); + } + } +} + +void PADClampCircle(PADStatus* status) { + int i; + for (i = 0; i < 4; ++i, status++) { + if (status->err == PAD_ERR_NONE) { + ClampCircle(&status->stickX, &status->stickY, ClampRegion.radStick, ClampRegion.minStick); + ClampCircle(&status->substickX, &status->substickY, ClampRegion.radSubstick, ClampRegion.minSubstick); + ClampTrigger(&status->triggerLeft, ClampRegion.minTrigger, ClampRegion.maxTrigger); + ClampTrigger(&status->triggerRight, ClampRegion.minTrigger, ClampRegion.maxTrigger); + } + } +} diff --git a/src/revolution/si/__si.h b/src/revolution/si/__si.h new file mode 100644 index 0000000000..52aebce923 --- /dev/null +++ b/src/revolution/si/__si.h @@ -0,0 +1,21 @@ +#ifndef _REVOLUTION_SI_INTERNAL_H_ +#define _REVOLUTION_SI_INTERNAL_H_ + +#include + +#ifdef __cplusplus +extern "C" { +#endif + +void __SISteeringEnable(s32 chan); +s32 __SISteeringTransfer(s32 chan, u32 outputBytes, u32 inputBytes, void (*proc)(s32)); +void __SISteeringSyncCallback(s32 chan, s32); +s32 __SISteeringSync(s32 chan); +void __SISteeringDisable(s32 chan); +void __SITestSamplingRate(u32 tvmode); + +#ifdef __cplusplus +} +#endif + +#endif From 250c9dd1ff1701f8064383cfad74e1f4799d2397 Mon Sep 17 00:00:00 2001 From: Max Roncace Date: Mon, 8 Dec 2025 15:08:33 -0500 Subject: [PATCH 07/13] Add missing RELs for Wii USA v0 (#2930) --- config/RZDE01_00/build.full.sha1 | 759 ------------------ config/RZDE01_00/build.sha1 | 9 + config/RZDE01_00/config.yml | 88 +- config/RZDE01_00/rels/d_a_b_bh/splits.txt | 22 + config/RZDE01_00/rels/d_a_b_bh/symbols.txt | 113 +++ config/RZDE01_00/rels/d_a_b_bq/splits.txt | 22 + config/RZDE01_00/rels/d_a_b_bq/symbols.txt | 257 ++++++ config/RZDE01_00/rels/d_a_b_gm/splits.txt | 22 + config/RZDE01_00/rels/d_a_b_gm/symbols.txt | 196 +++++ config/RZDE01_00/rels/d_a_b_ob/splits.txt | 22 + config/RZDE01_00/rels/d_a_b_ob/symbols.txt | 307 +++++++ .../RZDE01_00/rels/d_a_no_chg_room/splits.txt | 14 + .../rels/d_a_no_chg_room/symbols.txt | 17 + config/RZDE01_00/rels/d_a_npc_bouS/splits.txt | 22 + .../RZDE01_00/rels/d_a_npc_bouS/symbols.txt | 175 ++++ .../rels/d_a_npc_wrestler/splits.txt | 22 + .../rels/d_a_npc_wrestler/symbols.txt | 401 +++++++++ .../RZDE01_00/rels/d_a_set_bgobj/splits.txt | 13 + .../RZDE01_00/rels/d_a_set_bgobj/symbols.txt | 14 + .../rels/f_pc_profile_lst/splits.txt | 12 + .../rels/f_pc_profile_lst/symbols.txt | 8 + configure.py | 2 +- 22 files changed, 1716 insertions(+), 801 deletions(-) delete mode 100644 config/RZDE01_00/build.full.sha1 create mode 100644 config/RZDE01_00/rels/d_a_b_bh/splits.txt create mode 100644 config/RZDE01_00/rels/d_a_b_bh/symbols.txt create mode 100644 config/RZDE01_00/rels/d_a_b_bq/splits.txt create mode 100644 config/RZDE01_00/rels/d_a_b_bq/symbols.txt create mode 100644 config/RZDE01_00/rels/d_a_b_gm/splits.txt create mode 100644 config/RZDE01_00/rels/d_a_b_gm/symbols.txt create mode 100644 config/RZDE01_00/rels/d_a_b_ob/splits.txt create mode 100644 config/RZDE01_00/rels/d_a_b_ob/symbols.txt create mode 100644 config/RZDE01_00/rels/d_a_no_chg_room/splits.txt create mode 100644 config/RZDE01_00/rels/d_a_no_chg_room/symbols.txt create mode 100644 config/RZDE01_00/rels/d_a_npc_bouS/splits.txt create mode 100644 config/RZDE01_00/rels/d_a_npc_bouS/symbols.txt create mode 100644 config/RZDE01_00/rels/d_a_npc_wrestler/splits.txt create mode 100644 config/RZDE01_00/rels/d_a_npc_wrestler/symbols.txt create mode 100644 config/RZDE01_00/rels/d_a_set_bgobj/splits.txt create mode 100644 config/RZDE01_00/rels/d_a_set_bgobj/symbols.txt create mode 100644 config/RZDE01_00/rels/f_pc_profile_lst/splits.txt create mode 100644 config/RZDE01_00/rels/f_pc_profile_lst/symbols.txt diff --git a/config/RZDE01_00/build.full.sha1 b/config/RZDE01_00/build.full.sha1 deleted file mode 100644 index ef9e7c8a9a..0000000000 --- a/config/RZDE01_00/build.full.sha1 +++ /dev/null @@ -1,759 +0,0 @@ -0f626c1bfbd05979ed78b634cc85248342452fc2 build/RZDE01_00/framework.dol -9230772a3dc20ffe822df0eee93bd684cbab280c build/RZDE01_00/d_a_L7demo_dr/d_a_L7demo_dr.rel -09c22aac4265cc230892203ba705fa28bb196a28 build/RZDE01_00/d_a_L7low_dr/d_a_L7low_dr.rel -ede193738f3e07f70293853069cb3aad98d4d21f build/RZDE01_00/d_a_L7op_demo_dr/d_a_L7op_demo_dr.rel -16e4cbded6d1a0227b1eb7bc19f83dbee09ac8c8 build/RZDE01_00/d_a_alldie/d_a_alldie.rel -b246618e3c7555c44db4c57fd43d5414b1788aa2 build/RZDE01_00/d_a_andsw/d_a_andsw.rel -31a83d751cb67bea4f90532e8bdf5df3cfcabb17 build/RZDE01_00/d_a_andsw2/d_a_andsw2.rel -c6ea2b15e1017035c681d2fd222c720abc0e2fb1 build/RZDE01_00/d_a_arrow/d_a_arrow.rel -67c7205a0cbdc2a5f2f637557f3591218ac0292f build/RZDE01_00/d_a_b_bh/d_a_b_bh.rel -0424ac3820dbd317090873d6aa3cb79c94b26439 build/RZDE01_00/d_a_b_bq/d_a_b_bq.rel -f7c1d6c8557b6221338b9bcadaecb2b6d4b651b0 build/RZDE01_00/d_a_b_dr/d_a_b_dr.rel -734b7a80f9935dfad802b15912f6bf21b06af547 build/RZDE01_00/d_a_b_dre/d_a_b_dre.rel -ff7f53899a0134b572b087eeeeb8bfddab027d20 build/RZDE01_00/d_a_b_ds/d_a_b_ds.rel -3282f582d760690a61db5cc17b23a0ace2003f6d build/RZDE01_00/d_a_b_gg/d_a_b_gg.rel -29d9b931283ea325a04f4daa7a72bd183e02a829 build/RZDE01_00/d_a_b_gm/d_a_b_gm.rel -a991c31e24ad86457e19e4c6a5a708925b204c18 build/RZDE01_00/d_a_b_gnd/d_a_b_gnd.rel -39f3f9025f273800729149b6e75def1b12c1e63b build/RZDE01_00/d_a_b_go/d_a_b_go.rel -2118b63fed14e4728e854b2bfd1d69b57d0b5e62 build/RZDE01_00/d_a_b_gos/d_a_b_gos.rel -e551d56558802388dd84904e35e08f7578156d16 build/RZDE01_00/d_a_b_mgn/d_a_b_mgn.rel -0f921595d92beaf0f27ea34cda1bdda03403fd4e build/RZDE01_00/d_a_b_ob/d_a_b_ob.rel -11f6d4d2f2a45e8ddd5b04d5417b84071b4d4d04 build/RZDE01_00/d_a_b_oh/d_a_b_oh.rel -a2b447a582a0c99274ee8969084d22963de6e825 build/RZDE01_00/d_a_b_oh2/d_a_b_oh2.rel -3e2e6dfb957ed3eed2f64a42c12450318f59da48 build/RZDE01_00/d_a_b_tn/d_a_b_tn.rel -92f90ec25a89d5fac38b2737f980cc3221f4ebc4 build/RZDE01_00/d_a_b_yo/d_a_b_yo.rel -703fe544f5ffd86c0dde8c7d707ef0178953f615 build/RZDE01_00/d_a_b_yo_ice/d_a_b_yo_ice.rel -a0826c46068cba58aa6d31a5ee6aae516be76579 build/RZDE01_00/d_a_b_zant/d_a_b_zant.rel -72d4f90840cabad05d67ea42814645f0a83148e2 build/RZDE01_00/d_a_b_zant_magic/d_a_b_zant_magic.rel -3a4421e1ef5a91a6c438a25cdec6c00f31ed25ce build/RZDE01_00/d_a_b_zant_mobile/d_a_b_zant_mobile.rel -c90308bb133ccb22e9631816da8d06b59b49449b build/RZDE01_00/d_a_b_zant_sima/d_a_b_zant_sima.rel -bace5b0dabfb4d598aeff977bbf3ce6cdd5e2539 build/RZDE01_00/d_a_balloon_2D/d_a_balloon_2D.rel -85abbc4e84341497f8a32a2ee40c27de638c5ec1 build/RZDE01_00/d_a_bd/d_a_bd.rel -d7732a605cc44e9a9a2d61e3429d12b081047684 build/RZDE01_00/d_a_bg/d_a_bg.rel -451289932fe41d5a9db11fb4f89b317570ebb86c build/RZDE01_00/d_a_bg_obj/d_a_bg_obj.rel -d535aabab0c21f2a2417fc6ed4241871ede13eb4 build/RZDE01_00/d_a_boomerang/d_a_boomerang.rel -1b72aa22db247fa652d9774ceec0813001e99b66 build/RZDE01_00/d_a_bullet/d_a_bullet.rel -22c998b90131a648cfaae81ee3c02b2e0e8b8f8f build/RZDE01_00/d_a_canoe/d_a_canoe.rel -662819953620bf97e341047a83db1353f3dc1362 build/RZDE01_00/d_a_coach_2D/d_a_coach_2D.rel -b7590367f4d420d5dcc1da587fd55b604ef201b0 build/RZDE01_00/d_a_coach_fire/d_a_coach_fire.rel -a0d464bcc14e3e4a82bbc5854667f8b8d9ca6afc build/RZDE01_00/d_a_cow/d_a_cow.rel -e6c5925eceef4743df3e180e8f10d77c34f9e509 build/RZDE01_00/d_a_crod/d_a_crod.rel -1d3f323d1980b093dcb6d02ca122bd257c67cc76 build/RZDE01_00/d_a_cstaF/d_a_cstaF.rel -a229571d22b158f017df41940aa683a0ea48716c build/RZDE01_00/d_a_cstatue/d_a_cstatue.rel -885bbe5436dfb9168831ab88b713b554c37dbb75 build/RZDE01_00/d_a_demo00/d_a_demo00.rel -905be4c41db42fb5b026140c67c696a4481cb7d6 build/RZDE01_00/d_a_demo_item/d_a_demo_item.rel -e088a884956d71c59cf7ff81bedb9ec0de81323f build/RZDE01_00/d_a_disappear/d_a_disappear.rel -9cf14ae185fdd1eb0f1473a48ab90b143fd4f1bc build/RZDE01_00/d_a_dmidna/d_a_dmidna.rel -a45fbd3dff78f03d1593cd9e71f5033d11a03cea build/RZDE01_00/d_a_do/d_a_do.rel -08ae31e9b00bd197136fc7d6fdddd0a8a5b2032c build/RZDE01_00/d_a_door_boss/d_a_door_boss.rel -7b4ea0b957a49faef8aa4e17333c110d1c7a29bf build/RZDE01_00/d_a_door_bossL5/d_a_door_bossL5.rel -ebc1b345b5ee909e02caf3a08d19aacfeb557873 build/RZDE01_00/d_a_door_bossL1/d_a_door_bossL1.rel -10dfe8d160f24a6b68e4bbacbe72a57f98ca50e4 build/RZDE01_00/d_a_door_dbdoor00/d_a_door_dbdoor00.rel -cf38c6b8561c1ee7ea6efc5b1f9cf6ed3e276fa9 build/RZDE01_00/d_a_door_knob00/d_a_door_knob00.rel -fdb9b04264b69501bf36d95f80b59a6007e2ef00 build/RZDE01_00/d_a_door_mbossL1/d_a_door_mbossL1.rel -51c140f71b51836fd3f8e2eee939b04eb0f8c6dc build/RZDE01_00/d_a_door_push/d_a_door_push.rel -9fa7f76fcc03e745a368ab9ce5923c7096fdb410 build/RZDE01_00/d_a_door_shutter/d_a_door_shutter.rel -ce159881d21f5e557c38a9ca98ac7d6a53b0b329 build/RZDE01_00/d_a_door_spiral/d_a_door_spiral.rel -52e37a0e10badd80fb611dd18cddb7ee07da2162 build/RZDE01_00/d_a_dshutter/d_a_dshutter.rel -06958741b1dbc3bb8d5038db064751545ace25ca build/RZDE01_00/d_a_e_ai/d_a_e_ai.rel -15894f517cde6348aafd3afd93abfa3a86da4f0d build/RZDE01_00/d_a_e_arrow/d_a_e_arrow.rel -1c34de96b2a06df30d512c566b96fe8204b9ca1e build/RZDE01_00/d_a_e_ba/d_a_e_ba.rel -d1b6a05bc23456c9422e447e5e58c664a8b77bc1 build/RZDE01_00/d_a_e_bee/d_a_e_bee.rel -45f1ef632f1c1ca53b66763279a638895f27d29e build/RZDE01_00/d_a_e_bg/d_a_e_bg.rel -825c5cd498ff06205ff605f9c2e8ef1ceca73a69 build/RZDE01_00/d_a_e_bi/d_a_e_bi.rel -50eca4bbed39b9aa6613e7ca95fe09084e7588af build/RZDE01_00/d_a_e_bi_leaf/d_a_e_bi_leaf.rel -c73eb5edff318d490616eb14754931c448adc3f7 build/RZDE01_00/d_a_e_bs/d_a_e_bs.rel -b58b06bb3d5c504e13a935f17aaf7febefbe9d9e build/RZDE01_00/d_a_e_bu/d_a_e_bu.rel -1aa4a9af1ae1a091c9bf28de03f55a31ced45090 build/RZDE01_00/d_a_e_bug/d_a_e_bug.rel -2e383f6b69e0f3f06980160485b2491e86b91b7a build/RZDE01_00/d_a_e_cr/d_a_e_cr.rel -d007d18c33a9156d3399c2cbe04b421ffaa61239 build/RZDE01_00/d_a_e_cr_egg/d_a_e_cr_egg.rel -700c1de88eac1b29fd126aae1126bf92bd91f03c build/RZDE01_00/d_a_e_db/d_a_e_db.rel -4d156ce1e10db19405d331277c3d1dbd385de2b7 build/RZDE01_00/d_a_e_db_leaf/d_a_e_db_leaf.rel -708d3b08648f665b36cbf76116c6a33de70210b6 build/RZDE01_00/d_a_e_dd/d_a_e_dd.rel -73e0a145b3a76c2f3e83ca53d1abc3fc2f3a0d79 build/RZDE01_00/d_a_e_df/d_a_e_df.rel -5394eb0feb4065fbe7bd029a5c03fc9f9f5dc4d6 build/RZDE01_00/d_a_e_dk/d_a_e_dk.rel -2741e35e439493d93379dab272380ac9cfdfce9b build/RZDE01_00/d_a_e_dn/d_a_e_dn.rel -0c85c7b2adbfb311ed7fa1bd357bb14b20c4078f build/RZDE01_00/d_a_e_dt/d_a_e_dt.rel -4627da8b4952260773a52c3d674715c43e2a6400 build/RZDE01_00/d_a_e_fb/d_a_e_fb.rel -ff47ccdf82c130e5e8694340b9221d723108cd5e build/RZDE01_00/d_a_e_fk/d_a_e_fk.rel -5e89f6c527da6ad84d005fbbfcd3d82309ef846e build/RZDE01_00/d_a_e_fm/d_a_e_fm.rel -aca2f0a850a22e15c47860d23e25d7b33477db82 build/RZDE01_00/d_a_e_fs/d_a_e_fs.rel -7158f23a7a3b1d816d19ba5e1b88deaf3cea4f95 build/RZDE01_00/d_a_e_fz/d_a_e_fz.rel -c6951a9d4e92fd8388869ec52aafe80b4e5fce33 build/RZDE01_00/d_a_e_ga/d_a_e_ga.rel -75c8111d737e0643ddc4ae1fcec6a82c099d15c0 build/RZDE01_00/d_a_e_gb/d_a_e_gb.rel -a652e40b37d227cf2ee3958e149ad626b2a26658 build/RZDE01_00/d_a_e_ge/d_a_e_ge.rel -2676df63bf061cdf11fbb99ca8b861d3f104d90e build/RZDE01_00/d_a_e_gi/d_a_e_gi.rel -2ac49daaacb44301cb769ac4d9828b4909b5f20f build/RZDE01_00/d_a_e_gm/d_a_e_gm.rel -edd46929975acfce899777c2dba069fe19ff55f1 build/RZDE01_00/d_a_e_gob/d_a_e_gob.rel -8573bf42481b2f1aa147d44d10872bc14d092f53 build/RZDE01_00/d_a_e_gs/d_a_e_gs.rel -cbfb1cdb0d1971a31a2ece2afb362ee5a02edba7 build/RZDE01_00/d_a_e_hb/d_a_e_hb.rel -48451f369c14a9f133f27960b8ea5a3d12cc0007 build/RZDE01_00/d_a_e_hb_leaf/d_a_e_hb_leaf.rel -8faeed0289a36a4a34c84ee1226597a6902a6cae build/RZDE01_00/d_a_e_hm/d_a_e_hm.rel -451670c3e9dc7d9a05b858552fd2339a45490150 build/RZDE01_00/d_a_e_hp/d_a_e_hp.rel -53b488ecc18da3ec58a6fae8d1cfc5f04b077df3 build/RZDE01_00/d_a_e_hz/d_a_e_hz.rel -98ff5e454f112fe08e42f2a2530e07b6c94c8f7e build/RZDE01_00/d_a_e_hzelda/d_a_e_hzelda.rel -5ad80a0c350f501c3c0942f05c9844af1dd42a4d build/RZDE01_00/d_a_e_is/d_a_e_is.rel -95f0532a4f534601d59fd0d46a3e28f7c08bf881 build/RZDE01_00/d_a_e_kg/d_a_e_kg.rel -0c58368089face0287262b4e7cf1455e62a8778b build/RZDE01_00/d_a_e_kk/d_a_e_kk.rel -6673386455adae94ba6472bfb8adad0503b36b76 build/RZDE01_00/d_a_e_kr/d_a_e_kr.rel -a712f5cd98942540b022750dcc623521225d1e4f build/RZDE01_00/d_a_e_mb/d_a_e_mb.rel -1de77f1ed4506311fc3946127facf58db2276b4e build/RZDE01_00/d_a_e_md/d_a_e_md.rel -922b1fce9324b95872083358805891aa8a1a1a75 build/RZDE01_00/d_a_e_mf/d_a_e_mf.rel -7cc6becd989d71c36322ac7ca3279fbd7a69dbc5 build/RZDE01_00/d_a_e_mk/d_a_e_mk.rel -05f31d2d3269a18e3e28c6b484c55c30edbe6172 build/RZDE01_00/d_a_e_mk_bo/d_a_e_mk_bo.rel -38d58fc7fc205862ef5c9ff2379c0fc68dd714b4 build/RZDE01_00/d_a_e_mm/d_a_e_mm.rel -51336923fc36909a1f7dd5ced120358eb45a17f6 build/RZDE01_00/d_a_e_mm_mt/d_a_e_mm_mt.rel -2b6b8586cc21513edd9d20afd4083301bf18d923 build/RZDE01_00/d_a_e_ms/d_a_e_ms.rel -c717dd125ed89203cdc34c5c7c0cd7126e0dcc06 build/RZDE01_00/d_a_e_nest/d_a_e_nest.rel -5f5c4a86ee40fecd54aa45350bcf5ec8838b6cdb build/RZDE01_00/d_a_e_nz/d_a_e_nz.rel -a908bc2a171b7f66e52f8d03eb6a3698d0608e53 build/RZDE01_00/d_a_e_oc/d_a_e_oc.rel -a7fab0fe3de550d97ef5a43745fd359ecd7ebf7a build/RZDE01_00/d_a_e_oct_bg/d_a_e_oct_bg.rel -bb8b1ffa470504f8c43857264e9ddf269d4d62fe build/RZDE01_00/d_a_e_ot/d_a_e_ot.rel -1c9d4363a7d21c96e2effd30754a1cb2dc39ed43 build/RZDE01_00/d_a_e_ph/d_a_e_ph.rel -7727e7a5c4aff9f8a695d9da6bedca2328f77093 build/RZDE01_00/d_a_e_pm/d_a_e_pm.rel -8ac932736c40550324cf6660f6b503573ad89fb3 build/RZDE01_00/d_a_e_po/d_a_e_po.rel -b87257c7ddc5857033dbc258e08bccd4d7c751d5 build/RZDE01_00/d_a_e_pz/d_a_e_pz.rel -69cfd7b04ecf4e3b7be7cbfeb205e60805b5782f build/RZDE01_00/d_a_e_rb/d_a_e_rb.rel -5b2faab51ed475f9ccb8392cb4616ad6cbe008d5 build/RZDE01_00/d_a_e_rd/d_a_e_rd.rel -b11e0a9d3a87cc139208c47760241668a0a895e6 build/RZDE01_00/d_a_e_rdb/d_a_e_rdb.rel -f9b310ae65ccdaa16b162d15efe7f86a6df2191c build/RZDE01_00/d_a_e_rdy/d_a_e_rdy.rel -c1b5ec1888000e64d12c167cad43b3122be4ea34 build/RZDE01_00/d_a_e_s1/d_a_e_s1.rel -b766b366429289c2234dab7e78be322bbad371bc build/RZDE01_00/d_a_e_sb/d_a_e_sb.rel -f7b4c492ec24bb84a262bef5a2d5c972bd615410 build/RZDE01_00/d_a_e_sf/d_a_e_sf.rel -76d1554de08bca46d36e025e289dd92c418d9dd7 build/RZDE01_00/d_a_e_sg/d_a_e_sg.rel -f496da0e14cdbbf23c227a92208f8e5d171193bc build/RZDE01_00/d_a_e_sh/d_a_e_sh.rel -cd4ae667d03313181dbfa7ea5b4d23640c78640b build/RZDE01_00/d_a_e_sm/d_a_e_sm.rel -878b36ab24645e85b57f815d4e766d431d8186cc build/RZDE01_00/d_a_e_sm2/d_a_e_sm2.rel -4dfac6b4f9b24094aa67e5fab6b1aacf0a585cba build/RZDE01_00/d_a_e_st/d_a_e_st.rel -903fc35b76bc1b6af42331fa8c2b47f429d84fd4 build/RZDE01_00/d_a_e_st_line/d_a_e_st_line.rel -62d5d2d1a6b5a18d14cde8d573e3d626f403c693 build/RZDE01_00/d_a_e_sw/d_a_e_sw.rel -6abd5b61df73eec9210eacd817bd3ee4a4e0f55e build/RZDE01_00/d_a_e_th/d_a_e_th.rel -c96363a4dc365a347371f5a9b556a239a9aef59f build/RZDE01_00/d_a_e_th_ball/d_a_e_th_ball.rel -8ce27b16bdcbe82eae052567309791d44db64a69 build/RZDE01_00/d_a_e_tk/d_a_e_tk.rel -f1fd5bbf60579a8c69887a723e8e511c322783b2 build/RZDE01_00/d_a_e_tk2/d_a_e_tk2.rel -0c063d51810999f0c021f638487338ec3df2002a build/RZDE01_00/d_a_e_tk_ball/d_a_e_tk_ball.rel -bf0d733c658ad5f3926b5f4c603f2cb055bbe5fc build/RZDE01_00/d_a_e_tt/d_a_e_tt.rel -9ad9fd313e94341c367c8dead57afe701e156a8b build/RZDE01_00/d_a_e_vt/d_a_e_vt.rel -fb2e6dd8a2a576ef9b8c58fc0abe50b5ebb9c543 build/RZDE01_00/d_a_e_warpappear/d_a_e_warpappear.rel -a71ab6d3910923cc9f548820d0b7f55a92d16214 build/RZDE01_00/d_a_e_wb/d_a_e_wb.rel -5d28de335c99ed73c56169f812421b9a0af3da52 build/RZDE01_00/d_a_e_ws/d_a_e_ws.rel -801d3ee98f2d86cf5abb35f185e892e4738c9551 build/RZDE01_00/d_a_e_ww/d_a_e_ww.rel -27240f248bb63a3eb17b9358d8f5ab3c998e7db0 build/RZDE01_00/d_a_e_yc/d_a_e_yc.rel -01e4170bdd3985ac60897845028d6c2b0ce4de7a build/RZDE01_00/d_a_e_yd/d_a_e_yd.rel -1070014cc787ebd4c37ada79f7ec9c62dd842f47 build/RZDE01_00/d_a_e_yd_leaf/d_a_e_yd_leaf.rel -7cb5840c5da5edf30bc33261ceffcf7f08b73f37 build/RZDE01_00/d_a_e_yg/d_a_e_yg.rel -29310f255b2f55d211cebef39d6cfe95f5c5bc31 build/RZDE01_00/d_a_e_yh/d_a_e_yh.rel -16a42262a5ff2b0cb2df7eaa8abb87cd623a67d3 build/RZDE01_00/d_a_e_yk/d_a_e_yk.rel -053607176be19fe2fb044f24744e8fc5bbe2c123 build/RZDE01_00/d_a_e_ym/d_a_e_ym.rel -3f6b74032f91a95e0b552b2d98b14f7511966cf5 build/RZDE01_00/d_a_e_ym_tag/d_a_e_ym_tag.rel -c79d57c30e5d670c090b5180c05832d426b0bde4 build/RZDE01_00/d_a_e_ymb/d_a_e_ymb.rel -a5f431649256d3e713d34627e79a6a55ab4bd995 build/RZDE01_00/d_a_e_yr/d_a_e_yr.rel -f0aff2dc5ecfe5530c93140b2f054dd3aa4ce81f build/RZDE01_00/d_a_e_zh/d_a_e_zh.rel -2fba33bd68aecdbc3fe274289e1f3cc2ec9e1a80 build/RZDE01_00/d_a_e_zm/d_a_e_zm.rel -2e9c6201a6b1f78e488480a89d0abf1cafcbd375 build/RZDE01_00/d_a_e_zs/d_a_e_zs.rel -8245922f7839164cfb520386ad2d29e190e64bed build/RZDE01_00/d_a_econt/d_a_econt.rel -ede9f15acf09036a1e8eac8ec8881bd2e3cae7b9 build/RZDE01_00/d_a_ep/d_a_ep.rel -d3902713fe8f7223e17cd1c38d0f3616a229a783 build/RZDE01_00/d_a_formation_mng/d_a_formation_mng.rel -653a2daaa1a2689a58ccdf70129d92613fe091dd build/RZDE01_00/d_a_fr/d_a_fr.rel -db754f65870569224eabcb4cfa3b66780f065fc3 build/RZDE01_00/d_a_grass/d_a_grass.rel -6bf3c824ca9e02d76182b72349e7a1634c571260 build/RZDE01_00/d_a_guard_mng/d_a_guard_mng.rel -f32ea5cedc5c8a67769cd91e48b296bfe63cff87 build/RZDE01_00/d_a_hitobj/d_a_hitobj.rel -26309768d23773a06b1023a24f32feacc74a36f3 build/RZDE01_00/d_a_horse/d_a_horse.rel -db66c5c07708f995ba25cb122f2443fa5058e575 build/RZDE01_00/d_a_hozelda/d_a_hozelda.rel -23e626786a8d1576218fa27a66ab96be72efede5 build/RZDE01_00/d_a_izumi_gate/d_a_izumi_gate.rel -ad67bfdb672de4f6a24f7f4f5daba382063874a0 build/RZDE01_00/d_a_kago/d_a_kago.rel -2cad168da3584a9379abbc8a6d8bce8bf676a73a build/RZDE01_00/d_a_kytag00/d_a_kytag00.rel -bddc0a3d406c0c583a8b2d96f3c4a8909bad69e3 build/RZDE01_00/d_a_kytag01/d_a_kytag01.rel -861560b948a5a94624cc00cb3a210e5e7aadb0fa build/RZDE01_00/d_a_kytag02/d_a_kytag02.rel -4b7d6dfb1d6d6b239570684e98651cab67b7bb7a build/RZDE01_00/d_a_kytag03/d_a_kytag03.rel -50e1b1e5b549bb26be080b82ff5b19a645000d7e build/RZDE01_00/d_a_kytag04/d_a_kytag04.rel -c95e793c5285fdc0e8466cc66ef9d9ed4c235756 build/RZDE01_00/d_a_kytag05/d_a_kytag05.rel -a637f35cd661be88b4e0d6b46920aaeecbfb3b8e build/RZDE01_00/d_a_kytag06/d_a_kytag06.rel -3503c65ffe89ab581fc82947003576ba8d2c48fc build/RZDE01_00/d_a_kytag07/d_a_kytag07.rel -46868e6b3a1ea8bcdfcfac951a50eb242673cbc8 build/RZDE01_00/d_a_kytag08/d_a_kytag08.rel -3cfe93a0a6157807a7b1e91834ddad3a887a1b56 build/RZDE01_00/d_a_kytag09/d_a_kytag09.rel -fbdc57a9d2a4b15e6ae46b41701c45f526c75048 build/RZDE01_00/d_a_kytag10/d_a_kytag10.rel -c87dcf6f1cce8cc2126e289f9d32d38e13ea288a build/RZDE01_00/d_a_kytag11/d_a_kytag11.rel -748239142dc53e8093c65518629a063a26fea590 build/RZDE01_00/d_a_kytag12/d_a_kytag12.rel -f5fd5bbb34142e117453ff25fb2611f4165fe057 build/RZDE01_00/d_a_kytag13/d_a_kytag13.rel -9de25b4c900b321fdc57ac8069fc2e074ebb6535 build/RZDE01_00/d_a_kytag14/d_a_kytag14.rel -0d7f00859ea9fd02abefd7bdafa036fd4bfa0a4f build/RZDE01_00/d_a_kytag15/d_a_kytag15.rel -956e4097ce8d9337b686ecfde1a5383a80089702 build/RZDE01_00/d_a_kytag16/d_a_kytag16.rel -216f00f3efeda5470c52bd547d9164bd3316685e build/RZDE01_00/d_a_kytag17/d_a_kytag17.rel -30040d2569ec9ad749cf23be175a669d9913ea62 build/RZDE01_00/d_a_mant/d_a_mant.rel -5ca16e52faf50f1637603d0639a456cc0b13f0d3 build/RZDE01_00/d_a_mg_fish/d_a_mg_fish.rel -746cf62cf15a455ca02c84a36d1d56f4253d749d build/RZDE01_00/d_a_mg_fshop/d_a_mg_fshop.rel -dc1333692d05efa5a38e51181723509ac4b31c5f build/RZDE01_00/d_a_mg_rod/d_a_mg_rod.rel -f4120733ecec3d296317edd4f0e2ff6ab65f077d build/RZDE01_00/d_a_midna/d_a_midna.rel -63ecb2272500c05ac8543557c9eab5cf33ab5ce1 build/RZDE01_00/d_a_mirror/d_a_mirror.rel -547e219a7e649068d6b50d6a28fd419302ec044c build/RZDE01_00/d_a_movie_player/d_a_movie_player.rel -e2959e667249f70d5ce6fbc9102fdc059cae02e9 build/RZDE01_00/d_a_myna/d_a_myna.rel -768bd0661a976a900be5b41d1f1d94aa237d1328 build/RZDE01_00/d_a_nbomb/d_a_nbomb.rel -ddff08df5e891a69ef79a70e2dbb429cab617b86 build/RZDE01_00/d_a_ni/d_a_ni.rel -3bb54240f33b1fc18af93347cd02a6f36c9d3e2f build/RZDE01_00/d_a_no_chg_room/d_a_no_chg_room.rel -ca9e44859966db2ca85739b05d171f6b287f9660 build/RZDE01_00/d_a_npc_aru/d_a_npc_aru.rel -b8368dfb33cdd4ecec563564972c112e83e12364 build/RZDE01_00/d_a_npc_ash/d_a_npc_ash.rel -32ec0282eb1d3825420b9390b5793a25478a7aff build/RZDE01_00/d_a_npc_ashB/d_a_npc_ashB.rel -31f055ec98ace6c24bf8087851982c467f3cfb8b build/RZDE01_00/d_a_npc_bans/d_a_npc_bans.rel -ad5bc7e30fff6bae36e40973e4912e2bf046b207 build/RZDE01_00/d_a_npc_besu/d_a_npc_besu.rel -1f34182affd673d75322b99802469f41818451f1 build/RZDE01_00/d_a_npc_blue_ns/d_a_npc_blue_ns.rel -0cfb946d2f257e9abb0db5532dce72113a2abafb build/RZDE01_00/d_a_npc_bou/d_a_npc_bou.rel -f9b9989db309764ba75e1349460304654d5169af build/RZDE01_00/d_a_npc_bouS/d_a_npc_bouS.rel -9b2296b2346783b7cdafe7f9a2e75bdd2bf42c6a build/RZDE01_00/d_a_npc_cdn3/d_a_npc_cdn3.rel -72bf2d17349875fe82aff8716447a5c6fc16f85f build/RZDE01_00/d_a_npc_chat/d_a_npc_chat.rel -fe046c70ea2cde19f48ff7c252ebafccb4dc7fcd build/RZDE01_00/d_a_npc_chin/d_a_npc_chin.rel -9650d15a0937c9675cbd4724d6e15b91070791e7 build/RZDE01_00/d_a_npc_clerka/d_a_npc_clerka.rel -ad60e6bb966d16001411690054a603180615edf0 build/RZDE01_00/d_a_npc_clerkb/d_a_npc_clerkb.rel -4b12f9b4f23522c69ada253aed8f45aefcde93ea build/RZDE01_00/d_a_npc_clerkt/d_a_npc_clerkt.rel -803172f6a1baf5b78dbe50024910df31dad848ef build/RZDE01_00/d_a_npc_coach/d_a_npc_coach.rel -45b4e33d2821b49a171a0697f9e683c283d5bb01 build/RZDE01_00/d_a_npc_df/d_a_npc_df.rel -f31a1b000c9216c1bdc23f83c2ef626390411fcb build/RZDE01_00/d_a_npc_doc/d_a_npc_doc.rel -090694c77db3604efa2e9e01c74d4cd235aa3d88 build/RZDE01_00/d_a_npc_doorboy/d_a_npc_doorboy.rel -606821eeb9993157301f28d54d0c0c99dd5b603a build/RZDE01_00/d_a_npc_drainSol/d_a_npc_drainSol.rel -105c49837a3e2db82a287893b1065b52503c9545 build/RZDE01_00/d_a_npc_du/d_a_npc_du.rel -6165e355cc70dd81ed3232565da619e923c5badc build/RZDE01_00/d_a_npc_fairy/d_a_npc_fairy.rel -4246042c19f1fa8c5fdc185d00b1281ad4702a30 build/RZDE01_00/d_a_npc_fairy_seirei/d_a_npc_fairy_seirei.rel -594274c8c6fd8751b5ae133157ea084cb1387c05 build/RZDE01_00/d_a_npc_fguard/d_a_npc_fguard.rel -3ef63bcc84832d5963000504803be98c3c3f8bc5 build/RZDE01_00/d_a_npc_fish/d_a_npc_fish.rel -fe6fac5c24432a5976b45cd6aa3ae54f64a3b4f5 build/RZDE01_00/d_a_npc_gnd/d_a_npc_gnd.rel -476b6e578839aad91f6c5b7b0ace013724abc1d0 build/RZDE01_00/d_a_npc_gra/d_a_npc_gra.rel -9f3921c3d74c76ee567ff2d17a7de987e0c45ace build/RZDE01_00/d_a_npc_grc/d_a_npc_grc.rel -d596dc071cee157f9bd1206bc2e141866551bae6 build/RZDE01_00/d_a_npc_grd/d_a_npc_grd.rel -9d02880df5cdd8a559cd065f2003650923e412d7 build/RZDE01_00/d_a_npc_grm/d_a_npc_grm.rel -f15338b88decf1346d8a05a85dd4c23bc0255a28 build/RZDE01_00/d_a_npc_grmc/d_a_npc_grmc.rel -391f48461774009924aea7ffc6dd491e8f2621b7 build/RZDE01_00/d_a_npc_gro/d_a_npc_gro.rel -893efd7136e07f58dc7b30aef67bdaf275b13b5f build/RZDE01_00/d_a_npc_grr/d_a_npc_grr.rel -3d1e514a9c91124ade9667f1f67e13c357b0ab2e build/RZDE01_00/d_a_npc_grs/d_a_npc_grs.rel -208954a12ce8477aed81983523bce1a26c441512 build/RZDE01_00/d_a_npc_grz/d_a_npc_grz.rel -8df1618985f327d2b836103dfe24c2820cb71605 build/RZDE01_00/d_a_npc_guard/d_a_npc_guard.rel -05ea5eabb59f663972c066cb7c099d2fc33ca80f build/RZDE01_00/d_a_npc_gwolf/d_a_npc_gwolf.rel -e2bf650e53d0b0b1d8de2784f06746bab19f84d8 build/RZDE01_00/d_a_npc_hanjo/d_a_npc_hanjo.rel -1d55bb2e224357f33aa7fe68f266b360a787f455 build/RZDE01_00/d_a_npc_henna/d_a_npc_henna.rel -49dcfe54536b0234e466108c017f3474680508b9 build/RZDE01_00/d_a_npc_henna0/d_a_npc_henna0.rel -a6be1d50dd7056660fc32f8cd1bfab1a265db1ee build/RZDE01_00/d_a_npc_hoz/d_a_npc_hoz.rel -4241689d2aa886248cbdbdb6829bbb4a47c2c644 build/RZDE01_00/d_a_npc_impal/d_a_npc_impal.rel -c4292123b760e97daed3d790d354cf6106bf9b24 build/RZDE01_00/d_a_npc_inko/d_a_npc_inko.rel -a4fe216d4878e551f555f535d6a5567e75822e4f build/RZDE01_00/d_a_npc_ins/d_a_npc_ins.rel -91c73bbd90c1ae6cdba1efc7d87bf132dc57f2ed build/RZDE01_00/d_a_npc_jagar/d_a_npc_jagar.rel -fe8aa4f2ee52a0f4e018b8020981928bc369d57d build/RZDE01_00/d_a_npc_kakashi/d_a_npc_kakashi.rel -7a9b2d8715939daf2f7a979c5fe87144c1d9780e build/RZDE01_00/d_a_npc_kasi_hana/d_a_npc_kasi_hana.rel -fbe059cc6f399f27d1dfa762f2684bc5b4dc4535 build/RZDE01_00/d_a_npc_kasi_kyu/d_a_npc_kasi_kyu.rel -8af9a4e9a4dc90cb5a48cfdcaf770af3b737c2d7 build/RZDE01_00/d_a_npc_kasi_mich/d_a_npc_kasi_mich.rel -6a343de221f103605bc410fdbfae17248122c30d build/RZDE01_00/d_a_npc_kdk/d_a_npc_kdk.rel -7629730f2b83dbff4600e39ecd036ae9080745dd build/RZDE01_00/d_a_npc_kkri/d_a_npc_kkri.rel -b4320021ae25a2b794c2577f2b138a83a82e3ca6 build/RZDE01_00/d_a_npc_kn/d_a_npc_kn.rel -765ef7ed7b3b84f39ab228d78b9b01dddc40589c build/RZDE01_00/d_a_npc_knj/d_a_npc_knj.rel -108bf4d991084a1b6ba45d8560731c16cd159e58 build/RZDE01_00/d_a_npc_kolin/d_a_npc_kolin.rel -e9d2f33a35a55ee14cf423eb98682938bb478c02 build/RZDE01_00/d_a_npc_kolinb/d_a_npc_kolinb.rel -3839620c249fa0d7c36f1f011acf4ad28e589450 build/RZDE01_00/d_a_npc_ks/d_a_npc_ks.rel -203f348682e8309379b1632b65084bb72892348f build/RZDE01_00/d_a_npc_kyury/d_a_npc_kyury.rel -52f160e9a4d5ab32581c373a5c4d100dc9ee171b build/RZDE01_00/d_a_npc_len/d_a_npc_len.rel -e5dd6d049d569c9c1f9b691872e4cb94c7a1dc0a build/RZDE01_00/d_a_npc_lf/d_a_npc_lf.rel -5f35708ed6f52cd3e0800580e7b1c0c1b565f364 build/RZDE01_00/d_a_npc_lud/d_a_npc_lud.rel -53534ed8c9c8680a3c2aaa38c807168ee153cfef build/RZDE01_00/d_a_npc_maro/d_a_npc_maro.rel -49c75ab64caf016c296539c846839ddd4f8eb079 build/RZDE01_00/d_a_npc_midp/d_a_npc_midp.rel -1ec211b6afdced963cef24012c227c03eb657ec0 build/RZDE01_00/d_a_npc_mk/d_a_npc_mk.rel -f5d4bc91270d43ed440c538ccdd0165c8e45284d build/RZDE01_00/d_a_npc_moi/d_a_npc_moi.rel -ceddf2b4ffb12105a279529cc9d1e2d6ca2d861c build/RZDE01_00/d_a_npc_moir/d_a_npc_moir.rel -d355b1455de440489f77717cedfd1c6ef4871f41 build/RZDE01_00/d_a_npc_myna2/d_a_npc_myna2.rel -188abf52290bf994222d2dde5f5af5715ca21e46 build/RZDE01_00/d_a_npc_ne/d_a_npc_ne.rel -cf9364d72464db7b7b81137f35bb9639a6930119 build/RZDE01_00/d_a_npc_p2/d_a_npc_p2.rel -5067c0517301fe06506f704911708b0fa8b334d6 build/RZDE01_00/d_a_npc_pachi_besu/d_a_npc_pachi_besu.rel -dd706c9fb0ae5e4508d3275aa51b504c38471cbe build/RZDE01_00/d_a_npc_pachi_maro/d_a_npc_pachi_maro.rel -2fcf0113b3d87e11961452b653152f1d6c35bb02 build/RZDE01_00/d_a_npc_pachi_taro/d_a_npc_pachi_taro.rel -4059a21e2bc895e78f4da223034ca8c559d16d33 build/RZDE01_00/d_a_npc_passer/d_a_npc_passer.rel -429940f5369a325569e52fbed5345701d422d3d4 build/RZDE01_00/d_a_npc_passer2/d_a_npc_passer2.rel -80f6fc8e76ebcf9c32afb3fab29f1c878709ab94 build/RZDE01_00/d_a_npc_post/d_a_npc_post.rel -b7a82a92efc6bdeb216f2490c373e4e99648994f build/RZDE01_00/d_a_npc_pouya/d_a_npc_pouya.rel -459ce4842bbc3bcf423cc7018b83b8c8eee39e7f build/RZDE01_00/d_a_npc_prayer/d_a_npc_prayer.rel -705ff02eebc3042da8848bf75fb0ebf17f5c105f build/RZDE01_00/d_a_npc_raca/d_a_npc_raca.rel -5b256a9c8efa6ca811efbf16443339c5d2c44fef build/RZDE01_00/d_a_npc_rafrel/d_a_npc_rafrel.rel -2b80f5d168ebea8dedd4e384fb36c2a2f6eb6b21 build/RZDE01_00/d_a_npc_saru/d_a_npc_saru.rel -97f1e021c02f43ba1917531e36de2e530c494a64 build/RZDE01_00/d_a_npc_seib/d_a_npc_seib.rel -506e4c4517f02dd9d837df3287cc383448798a0c build/RZDE01_00/d_a_npc_seic/d_a_npc_seic.rel -637497f7dbe4a20d94d0eac7ac9dc03866c57fd0 build/RZDE01_00/d_a_npc_seid/d_a_npc_seid.rel -3235594698bd18b954840638d30b66331697c425 build/RZDE01_00/d_a_npc_seira/d_a_npc_seira.rel -d056839a9b23a23b7c1ceb2faef8adddf3e301f5 build/RZDE01_00/d_a_npc_seira2/d_a_npc_seira2.rel -d378d6a35131852d516256135c45091c5d384b62 build/RZDE01_00/d_a_npc_seirei/d_a_npc_seirei.rel -c6341b98776679d5f3bc0c0b53a1505dc650e34a build/RZDE01_00/d_a_npc_shad/d_a_npc_shad.rel -6a452d9ed416c33823b2f96bddc6174b69053353 build/RZDE01_00/d_a_npc_shaman/d_a_npc_shaman.rel -1978f9cdabf75cc59ddbae878060a119d968728d build/RZDE01_00/d_a_npc_shoe/d_a_npc_shoe.rel -c716c0cd52d9373fd52e8f6ac7b39c1a41508d16 build/RZDE01_00/d_a_npc_shop0/d_a_npc_shop0.rel -3b26d55fa581d60d5b9cac5d70d3cc5e47cec57f build/RZDE01_00/d_a_npc_shop_maro/d_a_npc_shop_maro.rel -1c48cf73f1f640f60592641040eec798ef40692d build/RZDE01_00/d_a_npc_sola/d_a_npc_sola.rel -7168f2c1c529be7ae50aad68f35e7bac87dc6ffe build/RZDE01_00/d_a_npc_soldierA/d_a_npc_soldierA.rel -f73a92e236ced061bad5e07e4fe0011b65737121 build/RZDE01_00/d_a_npc_soldierB/d_a_npc_soldierB.rel -6456a649ee6bd71c32eab3b90b98bf549a12a646 build/RZDE01_00/d_a_npc_sq/d_a_npc_sq.rel -106d2c39b8f2df0560a37484d747b342b0569a5d build/RZDE01_00/d_a_npc_taro/d_a_npc_taro.rel -21e1cc0bcd77ec34fc580695db4f03252960cff8 build/RZDE01_00/d_a_npc_the/d_a_npc_the.rel -7eec40478f47a474318938eed212c506f1dda475 build/RZDE01_00/d_a_npc_theB/d_a_npc_theB.rel -9f444a3293481e332f7c918685745542b43e22b2 build/RZDE01_00/d_a_npc_tk/d_a_npc_tk.rel -c1d6465d3776e4e2693ce736f369e5a200983521 build/RZDE01_00/d_a_npc_tkc/d_a_npc_tkc.rel -ad5fc49faee79e71bf63d279d6c6ae13aa83cad8 build/RZDE01_00/d_a_npc_tkj/d_a_npc_tkj.rel -451e7dda74d6a7883d624fb018e13f211ff7e605 build/RZDE01_00/d_a_npc_tkj2/d_a_npc_tkj2.rel -f636ff2354de88f10a840c1482a37163b990fc4d build/RZDE01_00/d_a_npc_tks/d_a_npc_tks.rel -c86ad1de5c1b58a780c3a97e5ea476164413510d build/RZDE01_00/d_a_npc_toby/d_a_npc_toby.rel -2089ac1ff1ffb37472b0ae7d7bf3cf987edd06cb build/RZDE01_00/d_a_npc_tr/d_a_npc_tr.rel -452740d04606e7a79bbc2f67b999a0fb1fe47849 build/RZDE01_00/d_a_npc_uri/d_a_npc_uri.rel -28dfb1cb92538070029379e242d76f3ce7daa226 build/RZDE01_00/d_a_npc_worm/d_a_npc_worm.rel -648d16f1f92476839a8488c3399e96c449a87c21 build/RZDE01_00/d_a_npc_wrestler/d_a_npc_wrestler.rel -428cd39a6cd9354f275036f7ef66ea83e86701c2 build/RZDE01_00/d_a_npc_yamid/d_a_npc_yamid.rel -61d7c715399c2022f9020878b480c6ce321e09d9 build/RZDE01_00/d_a_npc_yamis/d_a_npc_yamis.rel -236e0d48b66111e8ce975dc1b5acaf186ac6e11d build/RZDE01_00/d_a_npc_yamit/d_a_npc_yamit.rel -a21f38909c49a36283b0632248639d2c70a2d965 build/RZDE01_00/d_a_npc_yelia/d_a_npc_yelia.rel -3679e4178afb5bd41005d8f8a1fc6f263c48eba0 build/RZDE01_00/d_a_npc_ykm/d_a_npc_ykm.rel -170018bd03078223ab77846b5dc8a52871922572 build/RZDE01_00/d_a_npc_ykw/d_a_npc_ykw.rel -eb09f7252fc006f205d1629f38b0caf390ee2aae build/RZDE01_00/d_a_npc_zanb/d_a_npc_zanb.rel -f7ec6a032611787de5bcd1ea258d7f3d7651d372 build/RZDE01_00/d_a_npc_zant/d_a_npc_zant.rel -0092523441d1e77b642c2eda6f9de048c3476ec9 build/RZDE01_00/d_a_npc_zelR/d_a_npc_zelR.rel -06fec7fd280a02161aff3e93ad981b2f21d7fe77 build/RZDE01_00/d_a_npc_zelRo/d_a_npc_zelRo.rel -a60e314645a0d222003e2785af0ab358e3975b87 build/RZDE01_00/d_a_npc_zelda/d_a_npc_zelda.rel -a573a955d556fc01d0d1060db946817d213e7537 build/RZDE01_00/d_a_npc_zra/d_a_npc_zra.rel -ffbe2f180607b8c88f9ec24ec2d8f1ab4ee656a8 build/RZDE01_00/d_a_npc_zrc/d_a_npc_zrc.rel -8b3bb11dd3a94d81904347bb4c4620b713bc1865 build/RZDE01_00/d_a_npc_zrz/d_a_npc_zrz.rel -c91604483657ad68af5e62aa15e012b779b330e1 build/RZDE01_00/d_a_obj_Lv5Key/d_a_obj_Lv5Key.rel -3b98be819d0e209f1a9f30c31c15291c3bcd08cf build/RZDE01_00/d_a_obj_Turara/d_a_obj_Turara.rel -074838b13a1c61fda050b8f9c7f9a42f979db690 build/RZDE01_00/d_a_obj_TvCdlst/d_a_obj_TvCdlst.rel -4fc52c186b077fb28407f9ad37b07afd7ff57f8e build/RZDE01_00/d_a_obj_Y_taihou/d_a_obj_Y_taihou.rel -4bc9936d19954d97a6c8608acc9a2ce793325c8f build/RZDE01_00/d_a_obj_amiShutter/d_a_obj_amiShutter.rel -aaf0e49acd38399db228726e4eb081c4270a74dc build/RZDE01_00/d_a_obj_ari/d_a_obj_ari.rel -326767a72363ea1c7805b0dec147623dada46255 build/RZDE01_00/d_a_obj_automata/d_a_obj_automata.rel -d60b5b737b876ee502969a4664ef63570b3806cf build/RZDE01_00/d_a_obj_avalanche/d_a_obj_avalanche.rel -0cef087fa0c66f1e6a4caec20ed5e0bc613bc557 build/RZDE01_00/d_a_obj_balloon/d_a_obj_balloon.rel -855ac7302716e7d7e65a7a55c65465324ce66a5c build/RZDE01_00/d_a_obj_barDesk/d_a_obj_barDesk.rel -cc99ae3cb856abf9aaa2df956160aec7800d8768 build/RZDE01_00/d_a_obj_batta/d_a_obj_batta.rel -2b1da006dab66e77d83895305fa43bbfa82a48da build/RZDE01_00/d_a_obj_bbox/d_a_obj_bbox.rel -90119497067efb4777da1678a9e7db6cbfb5858d build/RZDE01_00/d_a_obj_bed/d_a_obj_bed.rel -2c852a12be522eeeb4aa268579bc059a4f13a1b8 build/RZDE01_00/d_a_obj_bemos/d_a_obj_bemos.rel -6f2dae110955b7222ee425bf19b606f02795403f build/RZDE01_00/d_a_obj_bhashi/d_a_obj_bhashi.rel -5e52d1302cc03d9c93525c61234d7933618f5c36 build/RZDE01_00/d_a_obj_bhbridge/d_a_obj_bhbridge.rel -a5536f980dfd15a406e77517d6c882394091384f build/RZDE01_00/d_a_obj_bk_leaf/d_a_obj_bk_leaf.rel -ac2a4f54b03cfa23323fdddbd362f6fd8331abef build/RZDE01_00/d_a_obj_bkdoor/d_a_obj_bkdoor.rel -348723f8b02c7ffb5fc2bac5c5d3fb66c44e3c46 build/RZDE01_00/d_a_obj_bky_rock/d_a_obj_bky_rock.rel -cf1567222840109928648287508c0a865176ab2e build/RZDE01_00/d_a_obj_bmWindow/d_a_obj_bmWindow.rel -6c4f94828c1ef211f44a295cc3779204b2a363b6 build/RZDE01_00/d_a_obj_bmshutter/d_a_obj_bmshutter.rel -33022be8098bf0297b1e6739795dc1a86032144c build/RZDE01_00/d_a_obj_bombf/d_a_obj_bombf.rel -149db71b2fcc127f7a1b16b700565831b06538a8 build/RZDE01_00/d_a_obj_bosswarp/d_a_obj_bosswarp.rel -2f70e43797b4d0e85191ab9b01d625417f43d0bd build/RZDE01_00/d_a_obj_boumato/d_a_obj_boumato.rel -474061b0b3dbd9142ef222d97dce14bbbc9a0bb8 build/RZDE01_00/d_a_obj_brakeeff/d_a_obj_brakeeff.rel -5a5664191397fc26300a59c445ad802078bb9461 build/RZDE01_00/d_a_obj_brg/d_a_obj_brg.rel -78f4be0cc5ef3eca100853ef496374aae0b24b6c build/RZDE01_00/d_a_obj_bsGate/d_a_obj_bsGate.rel -d470cb508801036718ae9f86c120afc4ba657f9d build/RZDE01_00/d_a_obj_bubblePilar/d_a_obj_bubblePilar.rel -4bd8fb2873b905572dacf239bfba188b7f169ae5 build/RZDE01_00/d_a_obj_burnbox/d_a_obj_burnbox.rel -399d50917083cd39dccbebbdfaada33e84b35ec0 build/RZDE01_00/d_a_obj_carry/d_a_obj_carry.rel -3d431a077991eac276b26ce6397179f13c37df0f build/RZDE01_00/d_a_obj_catdoor/d_a_obj_catdoor.rel -93da69d70d1b10fdc52650df8024f67d1cbbf6d9 build/RZDE01_00/d_a_obj_cb/d_a_obj_cb.rel -b83fac0999eeec0e177bcbd6bb9e87c9e8f77959 build/RZDE01_00/d_a_obj_cblock/d_a_obj_cblock.rel -555bdf6253f63ae84847617cacbb3670b85f6fb3 build/RZDE01_00/d_a_obj_cboard/d_a_obj_cboard.rel -fb2c95497fd8e2ba9183d029b52e28e66c5b4ab6 build/RZDE01_00/d_a_obj_cdoor/d_a_obj_cdoor.rel -c83200cd2640c7d48803a9e01b2d9b52c0534db7 build/RZDE01_00/d_a_obj_chandelier/d_a_obj_chandelier.rel -cdfd4351298be152f827ece10f7032065e621d24 build/RZDE01_00/d_a_obj_chest/d_a_obj_chest.rel -aa8e38f669f17ac3a67100369669e5af8caf4908 build/RZDE01_00/d_a_obj_cho/d_a_obj_cho.rel -9a394e97162ff99eac64ea0a0ff3b398dfd7ef9d build/RZDE01_00/d_a_obj_cowdoor/d_a_obj_cowdoor.rel -1a69a49c0bf390d0a97abe045e11a9ba167250b7 build/RZDE01_00/d_a_obj_crope/d_a_obj_crope.rel -fbcadfc94fd4d7e082e82ce2c526cfe066dcb5d1 build/RZDE01_00/d_a_obj_crvfence/d_a_obj_crvfence.rel -f0e75a17c3bd78c05a9c8881adf143dbca6d0cf1 build/RZDE01_00/d_a_obj_crvgate/d_a_obj_crvgate.rel -8c9d2675e29594d89457c0369230119bc8ae6206 build/RZDE01_00/d_a_obj_crvhahen/d_a_obj_crvhahen.rel -40897c5cffe004a8d65e3b290c99c24d36fa2ca7 build/RZDE01_00/d_a_obj_crvlh_down/d_a_obj_crvlh_down.rel -94f2024afada1eae156b312725ce6f865831ee99 build/RZDE01_00/d_a_obj_crvlh_up/d_a_obj_crvlh_up.rel -8aad62f17525f1d3e06bd6579cf31133d57f9fa5 build/RZDE01_00/d_a_obj_crvsteel/d_a_obj_crvsteel.rel -24c383a30155451e2a8660d376c3a35ae456fba9 build/RZDE01_00/d_a_obj_crystal/d_a_obj_crystal.rel -c11fab185560ab3df1a7acc74f753374b7a4d014 build/RZDE01_00/d_a_obj_cwall/d_a_obj_cwall.rel -3ffba5badc1a4a6486c6a5ffe0439c5ed49880bc build/RZDE01_00/d_a_obj_damCps/d_a_obj_damCps.rel -c16f106dd9559295b3325d6bdd47fc0a88de83c9 build/RZDE01_00/d_a_obj_dan/d_a_obj_dan.rel -149b8d375bd574f5d5f204449300c23983120bb6 build/RZDE01_00/d_a_obj_digholl/d_a_obj_digholl.rel -213f26ddcb82ba3b780c9205803eeee4edbbd25b build/RZDE01_00/d_a_obj_digplace/d_a_obj_digplace.rel -2cf56d9ca06b44023a2f03b5e566cf34463ad8c7 build/RZDE01_00/d_a_obj_digsnow/d_a_obj_digsnow.rel -7d52c389504fc4116da479ae6e9d43cb15d2e51f build/RZDE01_00/d_a_obj_dmelevator/d_a_obj_dmelevator.rel -7cf2ef190eff1dad39e86cea62e3b7b53356390b build/RZDE01_00/d_a_obj_drop/d_a_obj_drop.rel -0b8c33f83321960a653ee093b4a82286e22f8ff7 build/RZDE01_00/d_a_obj_dust/d_a_obj_dust.rel -e376adde02392a3c19998d9901368eb09cf9d33e build/RZDE01_00/d_a_obj_eff/d_a_obj_eff.rel -f325583f779ae9ed2d6c91515a25637fcd1f1d85 build/RZDE01_00/d_a_obj_enemy_create/d_a_obj_enemy_create.rel -78e513d3a1d3f2bf8d05d42313256a649cf52d86 build/RZDE01_00/d_a_obj_fallobj/d_a_obj_fallobj.rel -8988978af34c90842704c2eea492af2f20321e41 build/RZDE01_00/d_a_obj_fan/d_a_obj_fan.rel -dec598b677d5ee0a428bfc45f7aab91908863006 build/RZDE01_00/d_a_obj_fchain/d_a_obj_fchain.rel -c97e16fbde5dceed12ade6386c556fed5d58ef6a build/RZDE01_00/d_a_obj_fireWood/d_a_obj_fireWood.rel -9fe76a3fb661eeb54ef630339e2ed7943a0e188f build/RZDE01_00/d_a_obj_fireWood2/d_a_obj_fireWood2.rel -231cf846380975c99f3cbe3362b355d1f6ed9d06 build/RZDE01_00/d_a_obj_firepillar/d_a_obj_firepillar.rel -5eba882878c1f4400243ea594e1320a623499979 build/RZDE01_00/d_a_obj_firepillar2/d_a_obj_firepillar2.rel -7e14b74e48ae72320086c08c59e8f12c6ff9f34b build/RZDE01_00/d_a_obj_flag/d_a_obj_flag.rel -7214e39542beef8661931d73f6cd3314482d2ce3 build/RZDE01_00/d_a_obj_flag2/d_a_obj_flag2.rel -d7ca0662bb994c84e6d52aec1849acdbd3893262 build/RZDE01_00/d_a_obj_flag3/d_a_obj_flag3.rel -5a2a1a5eb2a08f6f52f44400067660051850b600 build/RZDE01_00/d_a_obj_fmobj/d_a_obj_fmobj.rel -82d2e688c3785f9a9ceebe4aaa641d48d9894f6a build/RZDE01_00/d_a_obj_food/d_a_obj_food.rel -36ca1511aeff6c2de9999005a91eafd06c7da906 build/RZDE01_00/d_a_obj_fw/d_a_obj_fw.rel -96635892010b695bade2b5576b8e80f0acdb0232 build/RZDE01_00/d_a_obj_gadget/d_a_obj_gadget.rel -9f1c15d3ff08d426601f3a45a072866b4088db45 build/RZDE01_00/d_a_obj_ganonwall/d_a_obj_ganonwall.rel -a327b1c5516049843f0a230807383476f6a0e676 build/RZDE01_00/d_a_obj_ganonwall2/d_a_obj_ganonwall2.rel -168c02f330a1f53bee4fbcf3409ce51f696345a8 build/RZDE01_00/d_a_obj_gb/d_a_obj_gb.rel -d6f831cf3bbb7af661c0c86d757d0f023710e06c build/RZDE01_00/d_a_obj_geyser/d_a_obj_geyser.rel -66d8973bb14859381fe40768ea6857213d928935 build/RZDE01_00/d_a_obj_glowSphere/d_a_obj_glowSphere.rel -a01c1affd7c28e6e6081070e45a682d4d2bd8144 build/RZDE01_00/d_a_obj_gm/d_a_obj_gm.rel -edd4c805fcd7228dc163237dcf6cec413e666d75 build/RZDE01_00/d_a_obj_goGate/d_a_obj_goGate.rel -7ef1c522096f5dce567169a3c7e985449af45880 build/RZDE01_00/d_a_obj_gomikabe/d_a_obj_gomikabe.rel -af22c6ece5f34b1fc2f640c092a92d1b32e77d0d build/RZDE01_00/d_a_obj_gpTaru/d_a_obj_gpTaru.rel -1fb833204fba2409837090deebbd7fe4048b9eeb build/RZDE01_00/d_a_obj_gra2/d_a_obj_gra2.rel -a3d41a6a9e18ab04f07e1bf5885be5e6688ab573 build/RZDE01_00/d_a_obj_graWall/d_a_obj_graWall.rel -3f3bcce634ff604cf0bff29e75f6cdcdf0e2526c build/RZDE01_00/d_a_obj_gra_rock/d_a_obj_gra_rock.rel -69cb83b9fab48077f8cb962dc2a95cd30a8b9418 build/RZDE01_00/d_a_obj_grave_stone/d_a_obj_grave_stone.rel -4c94bd739b894b2187330ff9b97247ca4e255957 build/RZDE01_00/d_a_obj_groundwater/d_a_obj_groundwater.rel -173f5be51427cf29e034652edb7d5c50665a81b7 build/RZDE01_00/d_a_obj_grz_rock/d_a_obj_grz_rock.rel -669ece18e6f32e653e4c748e7b7266a048a58d3a build/RZDE01_00/d_a_obj_h_saku/d_a_obj_h_saku.rel -b39abc508a88a769d329baea71ed16054d722504 build/RZDE01_00/d_a_obj_hakai_brl/d_a_obj_hakai_brl.rel -c49ab5e7e250abd246381ab76ea5c7d78d2d8976 build/RZDE01_00/d_a_obj_hakai_ftr/d_a_obj_hakai_ftr.rel -bac64293610f02896f13325b39e389ddae5b0a84 build/RZDE01_00/d_a_obj_hasu2/d_a_obj_hasu2.rel -b4891d78917809bcdfc820d786ae7895cd06491e build/RZDE01_00/d_a_obj_hata/d_a_obj_hata.rel -f07ea983980e216b425613246db0b70379a918eb build/RZDE01_00/d_a_obj_hb/d_a_obj_hb.rel -b8becb77d8abc761d57ee0a7da13fdde4633fdfd build/RZDE01_00/d_a_obj_hbombkoya/d_a_obj_hbombkoya.rel -34978102101f02625cd3bf7fd66e61a8ee3c4bcd build/RZDE01_00/d_a_obj_heavySw/d_a_obj_heavySw.rel -49cdb2acd392f3056bce7c6d1fb2200a472f7ac7 build/RZDE01_00/d_a_obj_hfuta/d_a_obj_hfuta.rel -c0a89fc33034601c31317a70c716a1a4268e2da5 build/RZDE01_00/d_a_obj_hhashi/d_a_obj_hhashi.rel -1679ba7dfcdffffc7da2a4034113ecf7a4984cd8 build/RZDE01_00/d_a_obj_hsTarget/d_a_obj_hsTarget.rel -70585d2c8c97613ffd45733c9209b8db21bed4a3 build/RZDE01_00/d_a_obj_ice_l/d_a_obj_ice_l.rel -b9147a330e8699f2ef6b8e54ded09363a3ce154c build/RZDE01_00/d_a_obj_ice_s/d_a_obj_ice_s.rel -83eb1cad977f4ecdd4b10d5c3fecf1d94fe28dd1 build/RZDE01_00/d_a_obj_iceblock/d_a_obj_iceblock.rel -048fa1554e89c08ec531111a2d16b7fb6eebd415 build/RZDE01_00/d_a_obj_iceleaf/d_a_obj_iceleaf.rel -f04426fc0d9e612f6ba9c7bc468bbe55179e7c21 build/RZDE01_00/d_a_obj_ihasi/d_a_obj_ihasi.rel -6a32d826db2a9b73fcef50196513a57ac51b8e02 build/RZDE01_00/d_a_obj_ikada/d_a_obj_ikada.rel -6c0be096229122633c76765205c4e4121899520d build/RZDE01_00/d_a_obj_inobone/d_a_obj_inobone.rel -51fb567b878b0556c49e5452e9bf1e10bda4cd78 build/RZDE01_00/d_a_obj_ita/d_a_obj_ita.rel -5732d80766b2ffbebdd6a3f4d2fdb6097ecc62e9 build/RZDE01_00/d_a_obj_itamato/d_a_obj_itamato.rel -51b30491b3e91dc283150bce91b83602cb591948 build/RZDE01_00/d_a_obj_ito/d_a_obj_ito.rel -c63f6f36b0c8ad721ab3490f82175ac0dd8456ff build/RZDE01_00/d_a_obj_kabuto/d_a_obj_kabuto.rel -0e385ea5f40326a98e6808d6521eeb79bfeb5902 build/RZDE01_00/d_a_obj_kag/d_a_obj_kag.rel -58eaca7dd6d10e210e97e60635350db0b5ac3581 build/RZDE01_00/d_a_obj_kage/d_a_obj_kage.rel -9dc5ce9fbb1a1cdd9b23a8175828ae11db13aaea build/RZDE01_00/d_a_obj_kago/d_a_obj_kago.rel -5c6b18b9e0b86adaf5482c5c8be72173e0331ee7 build/RZDE01_00/d_a_obj_kaisou/d_a_obj_kaisou.rel -e8c8802bfed7d2bf34ff4a3ac3b57b38370e1431 build/RZDE01_00/d_a_obj_kamakiri/d_a_obj_kamakiri.rel -95255ede0c0fbdfead6c5224b1f31c60203f1e2c build/RZDE01_00/d_a_obj_kanban2/d_a_obj_kanban2.rel -cd3fa689507c819189f54f80c9264ead8875a15d build/RZDE01_00/d_a_obj_kantera/d_a_obj_kantera.rel -d039edb539f7d3d67ebfd2de63addb23fdb4e314 build/RZDE01_00/d_a_obj_katatsumuri/d_a_obj_katatsumuri.rel -4200739f5dbfd4034b2d08acd62a447f0af3b7a4 build/RZDE01_00/d_a_obj_kazeneko/d_a_obj_kazeneko.rel -100a5da452050fe840d72fb76b081aa0969add70 build/RZDE01_00/d_a_obj_kbacket/d_a_obj_kbacket.rel -20913b83f6a16bffd37f05da486a3f209bceaa0f build/RZDE01_00/d_a_obj_kbox/d_a_obj_kbox.rel -b6f42d1d8e5070a9da117806c628b89c63b6690a build/RZDE01_00/d_a_obj_key/d_a_obj_key.rel -bf36508a205be7f8628b533614191c714249458e build/RZDE01_00/d_a_obj_keyhole/d_a_obj_keyhole.rel -6ee5fc9c0a0508b5749a4026ec49ec5fb17e0f1a build/RZDE01_00/d_a_obj_kgate/d_a_obj_kgate.rel -1e208410e16daad061f7de4a4639f9898777f52a build/RZDE01_00/d_a_obj_ki/d_a_obj_ki.rel -10d39d5d20f38e2d88cbaea3b617ea199b9b9a5e build/RZDE01_00/d_a_obj_kiPot/d_a_obj_kiPot.rel -675f28479b2bf61246d46528e73d5ee4ee6afb9e build/RZDE01_00/d_a_obj_kita/d_a_obj_kita.rel -78e4d12f0e521ad7b8630607f7e697a2be2b6697 build/RZDE01_00/d_a_obj_kjgjs/d_a_obj_kjgjs.rel -ef13ae1e9f4f1a84c625fbaf3ace7ad50394cd53 build/RZDE01_00/d_a_obj_kkanban/d_a_obj_kkanban.rel -1cfe3dbebe4c5e2b7b679d5c59dc1187fef6c09f build/RZDE01_00/d_a_obj_klift00/d_a_obj_klift00.rel -b0bed6571e110b0e187d01be5bcba24bc3fcee50 build/RZDE01_00/d_a_obj_knBullet/d_a_obj_knBullet.rel -cf65bf217ae6af0e71289c4b84c0bc59a9d80bf2 build/RZDE01_00/d_a_obj_kshutter/d_a_obj_kshutter.rel -232bf9009aeea68edfa9c910ce5662d75dfaafd5 build/RZDE01_00/d_a_obj_ktOnFire/d_a_obj_ktOnFire.rel -90487be5eeaca0e307307e86373700d726152a9c build/RZDE01_00/d_a_obj_kuwagata/d_a_obj_kuwagata.rel -3208595b1c734a0cd6aca217c1cc20e1f0ff7e2f build/RZDE01_00/d_a_obj_kwheel00/d_a_obj_kwheel00.rel -67f038be726cb79f14423dbc313e373ffaef7439 build/RZDE01_00/d_a_obj_kwheel01/d_a_obj_kwheel01.rel -c5f702de95ba8dcb9cc57b0f43b9fa8a2fe06f6b build/RZDE01_00/d_a_obj_kznkarm/d_a_obj_kznkarm.rel -c76dd5a91f46146b8103f84c7d3d1e05a30dbef6 build/RZDE01_00/d_a_obj_ladder/d_a_obj_ladder.rel -1bcf1fbcf6b626cdc001715a59fecb6e6997405c build/RZDE01_00/d_a_obj_laundry/d_a_obj_laundry.rel -0eead8544bfcf4ba65d4639b8b6001e424b3df90 build/RZDE01_00/d_a_obj_laundry_rope/d_a_obj_laundry_rope.rel -b05a8643e3b4eff8ff2c0cc418c538bf530a953d build/RZDE01_00/d_a_obj_lbox/d_a_obj_lbox.rel -5b6b501aebd9c750d727869a40ae4b421f13afe3 build/RZDE01_00/d_a_obj_life_container/d_a_obj_life_container.rel -183ea984f85ffd046dd556329ee5162a3252726f build/RZDE01_00/d_a_obj_lp/d_a_obj_lp.rel -c8354b25d1f12fb29c1ec7328d6d030d3fe8887b build/RZDE01_00/d_a_obj_lv1Candle00/d_a_obj_lv1Candle00.rel -cef6424767d38ab6c49f9061dadc924cc26afebf build/RZDE01_00/d_a_obj_lv1Candle01/d_a_obj_lv1Candle01.rel -58cced9e6ab43f66ead7f4ed96af3299b70f0961 build/RZDE01_00/d_a_obj_lv2Candle/d_a_obj_lv2Candle.rel -89f59cbb8d41ab93efefe28e0970f0ea41ebe77f build/RZDE01_00/d_a_obj_lv3Candle/d_a_obj_lv3Candle.rel -f040a0726806116dce99a400d3b9900aa6a19acc build/RZDE01_00/d_a_obj_lv3Water/d_a_obj_lv3Water.rel -b891b049508b553d35921c935a3f972b092e30ff build/RZDE01_00/d_a_obj_lv3Water2/d_a_obj_lv3Water2.rel -dc780bb050a8bea3b822effa8036fe57b8c79ec3 build/RZDE01_00/d_a_obj_lv3WaterB/d_a_obj_lv3WaterB.rel -c2d3b6034fc4cff49bc5a4302240209d2995aff9 build/RZDE01_00/d_a_obj_lv3saka00/d_a_obj_lv3saka00.rel -1b786865a43fadde95331349fdabba7fc98db039 build/RZDE01_00/d_a_obj_lv3waterEff/d_a_obj_lv3waterEff.rel -80dc66462687e37c1fbe1ce6c98bf1ae5a18f74a build/RZDE01_00/d_a_obj_lv4CandleDemoTag/d_a_obj_lv4CandleDemoTag.rel -ea0e6677c131577ef6a3740c3046a9ec97cedb33 build/RZDE01_00/d_a_obj_lv4CandleTag/d_a_obj_lv4CandleTag.rel -27d536a0fb42d5396d9b8e2d0a02efcc93688872 build/RZDE01_00/d_a_obj_lv4EdShutter/d_a_obj_lv4EdShutter.rel -52ff8d154cbf22edcbb419abc6952325226e427d build/RZDE01_00/d_a_obj_lv4Gate/d_a_obj_lv4Gate.rel -c39da27e71a76ee81f6e9c0d9eac9d84c5465c13 build/RZDE01_00/d_a_obj_lv4HsTarget/d_a_obj_lv4HsTarget.rel -d16147c303c612b9f540de74410544134d34c67c build/RZDE01_00/d_a_obj_lv4PoGate/d_a_obj_lv4PoGate.rel -e3f9af021f463ebf269db5da37ea0fa30debf30e build/RZDE01_00/d_a_obj_lv4RailWall/d_a_obj_lv4RailWall.rel -a7325e0254581722b2b588d438fc429f058ff5a6 build/RZDE01_00/d_a_obj_lv4SlideWall/d_a_obj_lv4SlideWall.rel -5ae4499f1b1e682ffdc6c5ecb5ff67323c74683b build/RZDE01_00/d_a_obj_lv4bridge/d_a_obj_lv4bridge.rel -0d297c6c8f20589625930bfa52915cb29d656b1e build/RZDE01_00/d_a_obj_lv4chandelier/d_a_obj_lv4chandelier.rel -3c4f2a26883daadb622a656d85dfc52d662ca927 build/RZDE01_00/d_a_obj_lv4digsand/d_a_obj_lv4digsand.rel -c258dc8e67b09b6e26254292754e94c39bbf220d build/RZDE01_00/d_a_obj_lv4floor/d_a_obj_lv4floor.rel -e9f9cbcb8d910029de042b29545acc4d1a2f40ee build/RZDE01_00/d_a_obj_lv4gear/d_a_obj_lv4gear.rel -95bd752ee0314198968edf27a65123c4c156f07b build/RZDE01_00/d_a_obj_lv4prelvtr/d_a_obj_lv4prelvtr.rel -613fd11ea3b2e916961841a825837119edf07f56 build/RZDE01_00/d_a_obj_lv4prwall/d_a_obj_lv4prwall.rel -531954a4b49d244efb82215cdbb8df00cf688a89 build/RZDE01_00/d_a_obj_lv4sand/d_a_obj_lv4sand.rel -0214cae6a6dff515f4408106e4bb6cda299d9374 build/RZDE01_00/d_a_obj_lv5FloorBoard/d_a_obj_lv5FloorBoard.rel -d35494a7d8070744b6189630b959dbadf611e885 build/RZDE01_00/d_a_obj_lv5IceWall/d_a_obj_lv5IceWall.rel -88e1f2a5d570a890680b06432a9863172bd3a994 build/RZDE01_00/d_a_obj_lv5SwIce/d_a_obj_lv5SwIce.rel -8ac8c14b6e0f233836db74dc377271b62883f2dd build/RZDE01_00/d_a_obj_lv5ychndlr/d_a_obj_lv5ychndlr.rel -17356c062509972bc95d1a6583e8c3e2c71b2ba9 build/RZDE01_00/d_a_obj_lv5yiblltray/d_a_obj_lv5yiblltray.rel -a055a899115e5f13f552a0462dc3d79b972301e2 build/RZDE01_00/d_a_obj_lv6ChangeGate/d_a_obj_lv6ChangeGate.rel -b6460baa537fac600e33581970feeb73a36bc2fe build/RZDE01_00/d_a_obj_lv6FurikoTrap/d_a_obj_lv6FurikoTrap.rel -cbf673b98dc8cee918e4993f39229c588d3d7031 build/RZDE01_00/d_a_obj_lv6Lblock/d_a_obj_lv6Lblock.rel -e6cbf5fa2ced273a80b7817e9e880678096f8a9f build/RZDE01_00/d_a_obj_lv6SwGate/d_a_obj_lv6SwGate.rel -4c4b4100f5b9bc3745780901c3204470401f4f4c build/RZDE01_00/d_a_obj_lv6SzGate/d_a_obj_lv6SzGate.rel -1c33269150f85d4aa924247b7ccbb33e875aacd6 build/RZDE01_00/d_a_obj_lv6Tenbin/d_a_obj_lv6Tenbin.rel -61bf48595fe8e9b52e33f5e66a3998a7016658b7 build/RZDE01_00/d_a_obj_lv6TogeRoll/d_a_obj_lv6TogeRoll.rel -3f1a844e8e953cb92ff1dc6fa7b3acf7ee1358c1 build/RZDE01_00/d_a_obj_lv6TogeTrap/d_a_obj_lv6TogeTrap.rel -cbf9f5d56a3660f14fee943c3dde97b7f66701bf build/RZDE01_00/d_a_obj_lv6bemos/d_a_obj_lv6bemos.rel -5bd80172cd8234067d6d3d131207285429d6a855 build/RZDE01_00/d_a_obj_lv6bemos2/d_a_obj_lv6bemos2.rel -9f952c70a8fb4ac5e1bba033ac9953e663972cc8 build/RZDE01_00/d_a_obj_lv6egate/d_a_obj_lv6egate.rel -94214e7f8359d6f1f6e92794c233d995c145f812 build/RZDE01_00/d_a_obj_lv6elevta/d_a_obj_lv6elevta.rel -176336a9fdcd7688012eeaf94eca62e53a5b7bde build/RZDE01_00/d_a_obj_lv6swturn/d_a_obj_lv6swturn.rel -cda8326c76b76c0d9226423b99a800f08ec2bbfc build/RZDE01_00/d_a_obj_lv7BsGate/d_a_obj_lv7BsGate.rel -a0c045cb71eb9d8b4c1550e2c6c4b46786e92423 build/RZDE01_00/d_a_obj_lv7PropellerY/d_a_obj_lv7PropellerY.rel -8b94670f471f00d0092bf9a5d14aaa805d449da3 build/RZDE01_00/d_a_obj_lv7bridge/d_a_obj_lv7bridge.rel -dd2fe8b9af5ce4f3e3b29015bbadaf61b5f88848 build/RZDE01_00/d_a_obj_lv8KekkaiTrap/d_a_obj_lv8KekkaiTrap.rel -f0ca2bc961151e45dd86d32191a989d00ea836e6 build/RZDE01_00/d_a_obj_lv8Lift/d_a_obj_lv8Lift.rel -e6bd1ba9389090610ffde94b501535550ddb708e build/RZDE01_00/d_a_obj_lv8OptiLift/d_a_obj_lv8OptiLift.rel -e221307d4d48efab77b04b2fad1504cfce2cdb70 build/RZDE01_00/d_a_obj_lv8UdFloor/d_a_obj_lv8UdFloor.rel -7bfca858501ea76595ed2eea5619137b1daba93b build/RZDE01_00/d_a_obj_lv9SwShutter/d_a_obj_lv9SwShutter.rel -d5996e47eaca3d1ca57adc09e10ec9fdb85c2108 build/RZDE01_00/d_a_obj_magLift/d_a_obj_magLift.rel -f779acc3cbd2d62d0678980455dbcc6e95f449b9 build/RZDE01_00/d_a_obj_magLiftRot/d_a_obj_magLiftRot.rel -e9d53e8bbb5fd308b117ee2ca46ce9a1fa886a51 build/RZDE01_00/d_a_obj_magne_arm/d_a_obj_magne_arm.rel -5f4786aae1f7c60e8675ced298c2e77e815ee54f build/RZDE01_00/d_a_obj_maki/d_a_obj_maki.rel -21a245ce9cd835756fe11cf8d40a3ceeb3e22b51 build/RZDE01_00/d_a_obj_master_sword/d_a_obj_master_sword.rel -0645aab305ea70f8b13443b8f86ca7b91a071959 build/RZDE01_00/d_a_obj_mato/d_a_obj_mato.rel -92ff7e8c39ea5015a57e4ab9f40473fd49a42db1 build/RZDE01_00/d_a_obj_metalbox/d_a_obj_metalbox.rel -ac754ef714ddd795610fca815e7ed20f3765546d build/RZDE01_00/d_a_obj_mgate/d_a_obj_mgate.rel -18697c8257822907658f15ac07ca9e681f75a194 build/RZDE01_00/d_a_obj_mhole/d_a_obj_mhole.rel -5d029e5d0a04187ce0fe890d81637cdb198aa1a3 build/RZDE01_00/d_a_obj_mie/d_a_obj_mie.rel -c55dabc3aaa6c5fe02e9bfa8521cb86c8890ceda build/RZDE01_00/d_a_obj_mirror_6pole/d_a_obj_mirror_6pole.rel -201831d040d781e512ddb012137ec9d11ab7523b build/RZDE01_00/d_a_obj_mirror_chain/d_a_obj_mirror_chain.rel -b308268c4fc35cd1f72e8d6bc676a2ac9a0c1697 build/RZDE01_00/d_a_obj_mirror_sand/d_a_obj_mirror_sand.rel -aadc74af0236c3a8979d90b8e37f538071956982 build/RZDE01_00/d_a_obj_mirror_screw/d_a_obj_mirror_screw.rel -cb96b8b7721ef881612c68440dbc2e33734e7ee1 build/RZDE01_00/d_a_obj_mirror_table/d_a_obj_mirror_table.rel -183a00956ca4574a6541006b985bb6dec420866f build/RZDE01_00/d_a_obj_movebox/d_a_obj_movebox.rel -e7044233f0465da4c1d4bf3addb0bdd15593ca74 build/RZDE01_00/d_a_obj_msima/d_a_obj_msima.rel -3998d5bbeb5b8ae50f1e6b164f52f75810f1b2ba build/RZDE01_00/d_a_obj_mvstair/d_a_obj_mvstair.rel -9567e37513cc18fb04331cb0b722aa0405b1accc build/RZDE01_00/d_a_obj_myogan/d_a_obj_myogan.rel -d1e8c5a22e6a5f18d6fa5519b8987c2b7a3058e5 build/RZDE01_00/d_a_obj_nagaisu/d_a_obj_nagaisu.rel -f93bb19125abfb58db23b2f434d630339ab046a4 build/RZDE01_00/d_a_obj_nameplate/d_a_obj_nameplate.rel -885a973fa2d965f7669085c2585e3480bd76be2b build/RZDE01_00/d_a_obj_nan/d_a_obj_nan.rel -33e1993506921883cdb3f76a731e4a8c7dbbec74 build/RZDE01_00/d_a_obj_ndoor/d_a_obj_ndoor.rel -bfbed04725e2d608a2e44d1ffa2343007d832c86 build/RZDE01_00/d_a_obj_nougu/d_a_obj_nougu.rel -a9f7192c56a6fe2e2ae01ae5159b20d78d8c677c build/RZDE01_00/d_a_obj_octhashi/d_a_obj_octhashi.rel -1ff45e2c90f325873d986ada6266d9b17e478209 build/RZDE01_00/d_a_obj_oiltubo/d_a_obj_oiltubo.rel -33b964c5081f99cdf7a29f5190d4e21495bf33f2 build/RZDE01_00/d_a_obj_onsen/d_a_obj_onsen.rel -b08b9778eea98c9a598d4841a132074a4e21c574 build/RZDE01_00/d_a_obj_onsenFire/d_a_obj_onsenFire.rel -a3516b45cd5bb66a812115b4b216842006fd1d75 build/RZDE01_00/d_a_obj_onsenTaru/d_a_obj_onsenTaru.rel -fc05a789e7fd078a28578bf697eb314e3c63dd21 build/RZDE01_00/d_a_obj_ornament_cloth/d_a_obj_ornament_cloth.rel -f5e767c1044763fd7bd34245574c0e87580ea16f build/RZDE01_00/d_a_obj_pdoor/d_a_obj_pdoor.rel -c7ef6c7c0178a69808fb1511f8c95b4eeee21786 build/RZDE01_00/d_a_obj_pdtile/d_a_obj_pdtile.rel -909306ed7a370cbfef9defd5ab07c532ae9e102a build/RZDE01_00/d_a_obj_pdwall/d_a_obj_pdwall.rel -7eb0fbc5999ab8ffaaa3ab94205f7f2cafe18304 build/RZDE01_00/d_a_obj_picture/d_a_obj_picture.rel -298e5e1ab02e1d7e8ca292b3cab7aff30da1db41 build/RZDE01_00/d_a_obj_pillar/d_a_obj_pillar.rel -04b0d71c6359fe26860d1fb2429c4eea7686b2db build/RZDE01_00/d_a_obj_pleaf/d_a_obj_pleaf.rel -7aa1af2ffb33c66ae2b03b87c42eed943b3000d5 build/RZDE01_00/d_a_obj_poCandle/d_a_obj_poCandle.rel -3ac3b652eb03cc98250c0c20d5fbe1f3737446ad build/RZDE01_00/d_a_obj_poFire/d_a_obj_poFire.rel -9efa9b3ebaa7d615be01e83fd6f38072e1fdfcdc build/RZDE01_00/d_a_obj_poTbox/d_a_obj_poTbox.rel -4fa924fc54b902321d546da6f8780502f7047fbe build/RZDE01_00/d_a_obj_prop/d_a_obj_prop.rel -9b690d2c97622235f03fa9fcb5904eeebee4eb4b build/RZDE01_00/d_a_obj_pumpkin/d_a_obj_pumpkin.rel -13ea9eee5461bf0cd9b0b5b36a1294d6556a7765 build/RZDE01_00/d_a_obj_rcircle/d_a_obj_rcircle.rel -52d80417fe20145332bcb0403517d8670f0b1597 build/RZDE01_00/d_a_obj_rfHole/d_a_obj_rfHole.rel -25ce97f74f6f9d531cac5964c897447db2b9b3b3 build/RZDE01_00/d_a_obj_rgate/d_a_obj_rgate.rel -cf5b08b4d6fbf163f51638967424b2fe385dc7ae build/RZDE01_00/d_a_obj_riverrock/d_a_obj_riverrock.rel -1ecabd8c75138b42f9692c8adffa453f1a4f7a2c build/RZDE01_00/d_a_obj_rock/d_a_obj_rock.rel -7732db393987714d119ffdf4a03516fa5d2a181b build/RZDE01_00/d_a_obj_rope_bridge/d_a_obj_rope_bridge.rel -e4e0e7dd6489b6f0f6dbd94a4195dd18df334395 build/RZDE01_00/d_a_obj_rotBridge/d_a_obj_rotBridge.rel -7a33c8ab5e0c0e3ee44480514137f6b4b1ead816 build/RZDE01_00/d_a_obj_rotTrap/d_a_obj_rotTrap.rel -d6b950da54c55eccdfe826bd044f950be7eb36ad build/RZDE01_00/d_a_obj_roten/d_a_obj_roten.rel -0fce23660897ae9bacbe6b4dfa94f190413f7aa3 build/RZDE01_00/d_a_obj_rstair/d_a_obj_rstair.rel -50bd675c7c46a7a5a5cf0021067016d9d744d9e1 build/RZDE01_00/d_a_obj_rw/d_a_obj_rw.rel -c15afe6576a0ac22228cc8584e0d98422f2689e3 build/RZDE01_00/d_a_obj_saidan/d_a_obj_saidan.rel -bf14020c1efde69cdebd4f988bd168de1abd1c50 build/RZDE01_00/d_a_obj_sakuita/d_a_obj_sakuita.rel -4bf87a97647e3c94cb4c90a3e6428e3d0e5f7df6 build/RZDE01_00/d_a_obj_sakuita_rope/d_a_obj_sakuita_rope.rel -794e7efa55349937d04e53dc0883130d921f1ef9 build/RZDE01_00/d_a_obj_scannon/d_a_obj_scannon.rel -57c2ee118a0f58568be023b30ad640bddb6de7d7 build/RZDE01_00/d_a_obj_scannon_crs/d_a_obj_scannon_crs.rel -52df4f52fe2c10f316634f9902f9109ac4f02de8 build/RZDE01_00/d_a_obj_scannon_ten/d_a_obj_scannon_ten.rel -3302441964edb783ebfa3aeca958788351e4e437 build/RZDE01_00/d_a_obj_sekidoor/d_a_obj_sekidoor.rel -cb62d5a621316c9adb883e33e96b51698be21e2e build/RZDE01_00/d_a_obj_sekizo/d_a_obj_sekizo.rel -4e2061ccb74e633a00a68a71aa2e752737ed6846 build/RZDE01_00/d_a_obj_sekizoa/d_a_obj_sekizoa.rel -f19e7e2f1e19b25acc54b2ce1def9cba3432d4f3 build/RZDE01_00/d_a_obj_shield/d_a_obj_shield.rel -236caf2b7dfab7250ca88aa425fb992ff2e1d7ff build/RZDE01_00/d_a_obj_sm_door/d_a_obj_sm_door.rel -576e8fc7785e7b09863da4caf85295a323734899 build/RZDE01_00/d_a_obj_smallkey/d_a_obj_smallkey.rel -d2e9394da7ff2e15b07323b2329ec580ffa3c9d3 build/RZDE01_00/d_a_obj_smgdoor/d_a_obj_smgdoor.rel -bc3fb8bdeead477fa9b2d47a0cee65909eb9c549 build/RZDE01_00/d_a_obj_smoke/d_a_obj_smoke.rel -e25cf8b645455445c579fbf40ce1ee83c0853724 build/RZDE01_00/d_a_obj_smtile/d_a_obj_smtile.rel -7e817e312cb6ddd7ae59f1fd8d60b219cf12b2c7 build/RZDE01_00/d_a_obj_smw_stone/d_a_obj_smw_stone.rel -ab93016341ef1358eb4785241f59193c199a4fb7 build/RZDE01_00/d_a_obj_snowEffTag/d_a_obj_snowEffTag.rel -4a34c01510ddf429286c0a4dd97280555d6d4e9b build/RZDE01_00/d_a_obj_snow_soup/d_a_obj_snow_soup.rel -85f423aaee4a3ed02d982e2471808d1ea70c5f47 build/RZDE01_00/d_a_obj_so/d_a_obj_so.rel -46b9b895a9f6ca7f230f35fa0261de9b83279e9b build/RZDE01_00/d_a_obj_spinLift/d_a_obj_spinLift.rel -8875a4e28f896318bac68eb3349a54fa6fd2eb07 build/RZDE01_00/d_a_obj_ss_drink/d_a_obj_ss_drink.rel -bc6387fbb3581a13ec1405f41fe6f7bd76334401 build/RZDE01_00/d_a_obj_ss_item/d_a_obj_ss_item.rel -03ca961d98caa8aa2ad1c55826b4f3c1dfde889f build/RZDE01_00/d_a_obj_stairBlock/d_a_obj_stairBlock.rel -9e8c909fa68fb75069b3bf06cb8b72c2f8190992 build/RZDE01_00/d_a_obj_stick/d_a_obj_stick.rel -a6bb70cfd2618942e18b48106652e07c83fb7743 build/RZDE01_00/d_a_obj_stone/d_a_obj_stone.rel -26d0d500a791b0539f16fb8e20dc0bf4459bd4a0 build/RZDE01_00/d_a_obj_stoneMark/d_a_obj_stoneMark.rel -693c7c2ed9bf4ad26386010a6e250b827d41489d build/RZDE01_00/d_a_obj_stopper/d_a_obj_stopper.rel -686b8287de2ec380adbf4073ca68acaef48ac8d2 build/RZDE01_00/d_a_obj_stopper2/d_a_obj_stopper2.rel -0acadca10bf3ca336bfe09207f0b13acbb184965 build/RZDE01_00/d_a_obj_suisya/d_a_obj_suisya.rel -0328f0ddb07ad8a0d7c927ea251d49d2a71a1e36 build/RZDE01_00/d_a_obj_sw/d_a_obj_sw.rel -4b439c320e590f473e08fae3db6d513036aef9a6 build/RZDE01_00/d_a_obj_swBallA/d_a_obj_swBallA.rel -165707aac759cb2e356c9be5bc2574d7cf4e42c0 build/RZDE01_00/d_a_obj_swBallB/d_a_obj_swBallB.rel -2cd59fb993832d7dafe6f9b5a92209e60c2737de build/RZDE01_00/d_a_obj_swBallC/d_a_obj_swBallC.rel -a7cba1e2a9f6c5f7f7cc782d96c73975d758d104 build/RZDE01_00/d_a_obj_swLight/d_a_obj_swLight.rel -7700d137f1eb3cbb0862019d5cc212728e908a9f build/RZDE01_00/d_a_obj_sWallShutter/d_a_obj_sWallShutter.rel -898fbe9a5d7276a3934b97c2806704ff8527b54d build/RZDE01_00/d_a_obj_swchain/d_a_obj_swchain.rel -0aef259f0ffe6566e7a440b17034a59c438b581a build/RZDE01_00/d_a_obj_swhang/d_a_obj_swhang.rel -eb25dd5c67ff87643842d9ae8ffedfb7cbe3922b build/RZDE01_00/d_a_obj_sword/d_a_obj_sword.rel -6bf7b939bc57fae25661e67c95be83360db2b3cd build/RZDE01_00/d_a_obj_swpropeller/d_a_obj_swpropeller.rel -8b40a70483c1183c2240372c616fffd93cf9fc75 build/RZDE01_00/d_a_obj_swpush/d_a_obj_swpush.rel -373516d72a52374ec8bce4b0903d8389a9ead4f7 build/RZDE01_00/d_a_obj_swpush2/d_a_obj_swpush2.rel -3dae51c8cece15a135ed38ad3a7303b66764970e build/RZDE01_00/d_a_obj_swpush5/d_a_obj_swpush5.rel -fedba5af2e7e6cdbccf3b6182792f4758012ee67 build/RZDE01_00/d_a_obj_swspinner/d_a_obj_swspinner.rel -f162cf5e80c4dcfd926676a44e26ea2a8b367c60 build/RZDE01_00/d_a_obj_swturn/d_a_obj_swturn.rel -e02294893fc39de6b945925e717da51dac55209b build/RZDE01_00/d_a_obj_syRock/d_a_obj_syRock.rel -bdab903d5fcc77b288b3209f5acaae8c11a40e25 build/RZDE01_00/d_a_obj_szbridge/d_a_obj_szbridge.rel -7f4cefe1eee20eb4c9af5b25b759371195782880 build/RZDE01_00/d_a_obj_taFence/d_a_obj_taFence.rel -7871f7c2dbd35dac8ad1586de001c159d4f5b5d5 build/RZDE01_00/d_a_obj_table/d_a_obj_table.rel -f8b18865d9538d077a1c118c2a82ad11774a6f15 build/RZDE01_00/d_a_obj_takaraDai/d_a_obj_takaraDai.rel -eef076d7e4286e5d4262e55721968e991e510f6c build/RZDE01_00/d_a_obj_tatigi/d_a_obj_tatigi.rel -e0de5e38d50e4c2175e8599c51033e211f5271f7 build/RZDE01_00/d_a_obj_ten/d_a_obj_ten.rel -64be2ec649d3dfda3972544283ed28b0ad737bf2 build/RZDE01_00/d_a_obj_testcube/d_a_obj_testcube.rel -c72cc49fba323538e384f41cb10b9f414ac144da build/RZDE01_00/d_a_obj_tgake/d_a_obj_tgake.rel -86103b2c4a4da425d1c1451181a6d570f0fa0313 build/RZDE01_00/d_a_obj_thashi/d_a_obj_thashi.rel -8bfa38db49f5fa242929595a909d8aded3e10e9b build/RZDE01_00/d_a_obj_thdoor/d_a_obj_thdoor.rel -2ded7ad2a60a9c952e92de42c67f372865cced68 build/RZDE01_00/d_a_obj_timeFire/d_a_obj_timeFire.rel -0121558a09dca021cdf926a0df62597d600ea14d build/RZDE01_00/d_a_obj_timer/d_a_obj_timer.rel -b053485145688509c2ac4c47af9dc9d678f1d382 build/RZDE01_00/d_a_obj_tks/d_a_obj_tks.rel -4a41ea89af3cf62d529e8ac6e4ad20bc28ec52e6 build/RZDE01_00/d_a_obj_tmoon/d_a_obj_tmoon.rel -957ae12d5dad6ab285fd5f201d862454ebceb952 build/RZDE01_00/d_a_obj_toaru_maki/d_a_obj_toaru_maki.rel -a6e2e8b4a6d171d434adf8699fee63cd34e14463 build/RZDE01_00/d_a_obj_toby/d_a_obj_toby.rel -925927e5f157947b6d5de3c0534ee055700f57d7 build/RZDE01_00/d_a_obj_tobyhouse/d_a_obj_tobyhouse.rel -0fc8730925c4c6df390ff5bad61fdac282ff4a50 build/RZDE01_00/d_a_obj_togeTrap/d_a_obj_togeTrap.rel -7fe79d8b3db10742df5b6b4bcb2c37892823b71c build/RZDE01_00/d_a_obj_tombo/d_a_obj_tombo.rel -02c05459b79bdd676a692a6075504cdaee7d5423 build/RZDE01_00/d_a_obj_tornado/d_a_obj_tornado.rel -a7ec5c51279eb5410960121472227219b7de6d92 build/RZDE01_00/d_a_obj_tornado2/d_a_obj_tornado2.rel -5f0b6a736975a9e3b4cb908b9ac7d5be68c0a5af build/RZDE01_00/d_a_obj_tp/d_a_obj_tp.rel -4e2cc6cefb76ab6cd9362bc9f7438897a96d92ac build/RZDE01_00/d_a_obj_treesh/d_a_obj_treesh.rel -6d9b32959dc9a7457af61e9853ba80dfa1273439 build/RZDE01_00/d_a_obj_twGate/d_a_obj_twGate.rel -fe7f402abb9fbdc0cacb2884a6f0eda47f4c6ad2 build/RZDE01_00/d_a_obj_udoor/d_a_obj_udoor.rel -0f108e34b80e437903fb6748889007af67c6ac29 build/RZDE01_00/d_a_obj_usaku/d_a_obj_usaku.rel -0e117ba2963c7cf583ccc2d929ca7a942d54d09f build/RZDE01_00/d_a_obj_vground/d_a_obj_vground.rel -913c30854d2f4ab3d405e2b3a13f9d75766004ab build/RZDE01_00/d_a_obj_volcball/d_a_obj_volcball.rel -2b1263501d1364d8879fb3df3970057b75adf6a5 build/RZDE01_00/d_a_obj_volcbom/d_a_obj_volcbom.rel -ce1acbf70efde43c78dc542468ca1fadc31f3bdb build/RZDE01_00/d_a_obj_warp_kbrg/d_a_obj_warp_kbrg.rel -ed6982c9531354d6ec517ffc13d6636963ae3152 build/RZDE01_00/d_a_obj_warp_obrg/d_a_obj_warp_obrg.rel -65da51e73f7e6e9ac90b73a3be24cf95e0ca4a0f build/RZDE01_00/d_a_obj_waterGate/d_a_obj_waterGate.rel -221abaa4ad24d9e3dbc885218d6eba53cb6dd573 build/RZDE01_00/d_a_obj_waterPillar/d_a_obj_waterPillar.rel -88c59b77d7b66fa721d3c44c3f29ce7aaded8e0d build/RZDE01_00/d_a_obj_waterfall/d_a_obj_waterfall.rel -bca041d34d8fa58829da8681d650843cbbeb202f build/RZDE01_00/d_a_obj_wchain/d_a_obj_wchain.rel -e43aab97ab941657e6040ef0d387d2053faa70bf build/RZDE01_00/d_a_obj_wdStick/d_a_obj_wdStick.rel -aafe0f1eec70bf96a1cc4f7f13f3e29f9578af43 build/RZDE01_00/d_a_obj_web0/d_a_obj_web0.rel -f481f2ecd651b55b397f6106d0a4e7ca0cfcdcd2 build/RZDE01_00/d_a_obj_web1/d_a_obj_web1.rel -8a5e4e3fd468b613416458ffb899f1e81b91208e build/RZDE01_00/d_a_obj_well_cover/d_a_obj_well_cover.rel -0b65a985d700226fb105421a5218129861891e68 build/RZDE01_00/d_a_obj_wflag/d_a_obj_wflag.rel -114b23c16cf9ab4b9b97c64fb8b03ef9a3f7cab5 build/RZDE01_00/d_a_obj_wind_stone/d_a_obj_wind_stone.rel -93bbcf1746b0a07983684283c31bb46c9b40ba15 build/RZDE01_00/d_a_obj_window/d_a_obj_window.rel -0c512a702e4062a36024f783abb307f3c668ecff build/RZDE01_00/d_a_obj_wood_pendulum/d_a_obj_wood_pendulum.rel -8b8db89b070c0fbc7e867bb13955e949da3b67d5 build/RZDE01_00/d_a_obj_wood_statue/d_a_obj_wood_statue.rel -5152774585ed0dfe326929734226bf9e7893cd1d build/RZDE01_00/d_a_obj_wsword/d_a_obj_wsword.rel -d4b688a60ef5976e122f61074370190448bdc851 build/RZDE01_00/d_a_obj_yel_bag/d_a_obj_yel_bag.rel -570556b81c59a007886593327d095d8c2d137b43 build/RZDE01_00/d_a_obj_yobikusa/d_a_obj_yobikusa.rel -3e60845e11f5992c948bca3b5f463b3717c819e6 build/RZDE01_00/d_a_obj_yousei/d_a_obj_yousei.rel -c75f88185200d39f543a9499fd97475095aa47fe build/RZDE01_00/d_a_obj_ystone/d_a_obj_ystone.rel -441c90465a4c279a7f1a6d3ab507d97a8d31099c build/RZDE01_00/d_a_obj_zcloth/d_a_obj_zcloth.rel -3dca57e13d27700e25ea282d75cc721263dba709 build/RZDE01_00/d_a_obj_zdoor/d_a_obj_zdoor.rel -d158579b036ea02c02b590ebea5700723749141e build/RZDE01_00/d_a_obj_zrTurara/d_a_obj_zrTurara.rel -97381a61466a727edc98c60db41710e2b1314981 build/RZDE01_00/d_a_obj_zrTuraraRock/d_a_obj_zrTuraraRock.rel -4fc88f5ef99e485e9f735dbb72db8e7762975930 build/RZDE01_00/d_a_obj_zraMark/d_a_obj_zraMark.rel -e148d1fd5978a183c47e10f9cdbbb0d592b2ebf1 build/RZDE01_00/d_a_obj_zra_freeze/d_a_obj_zra_freeze.rel -726d36f816c91b6b701d20bdea70d6e60c5c3dbb build/RZDE01_00/d_a_obj_zra_rock/d_a_obj_zra_rock.rel -485f90668377a34b86c1ff26b54a0f3886a8c609 build/RZDE01_00/d_a_passer_mng/d_a_passer_mng.rel -6b8b4c5d07ca794589f9fac43d32d0c25d7af4e0 build/RZDE01_00/d_a_path_line/d_a_path_line.rel -067240928091a1f07c85fe38358b7c138bc62af0 build/RZDE01_00/d_a_peru/d_a_peru.rel -f27c85653793a24ccdb50d99e25b6e9b632bed77 build/RZDE01_00/d_a_ppolamp/d_a_ppolamp.rel -8f7a6980a970ee759d0bed34a7b4a303ef809edc build/RZDE01_00/d_a_scene_exit/d_a_scene_exit.rel -de26e827f1e51210d38f43b4befc863faaa19d5e build/RZDE01_00/d_a_scene_exit2/d_a_scene_exit2.rel -8a1a3de4e9f618018b97081111d21682a060eef2 build/RZDE01_00/d_a_set_bgobj/d_a_set_bgobj.rel -621e4e41fa08f59267dc67fa3fad36e96e630388 build/RZDE01_00/d_a_shop_item/d_a_shop_item.rel -6459ee82726a8582ee8615cc27bd3e84c6d3221f build/RZDE01_00/d_a_skip_2D/d_a_skip_2D.rel -1c13d18532102cf391923ce22d94cae0c6f48cd4 build/RZDE01_00/d_a_spinner/d_a_spinner.rel -181fdb96fd066f27fd434aae3c8e18d66daad673 build/RZDE01_00/d_a_sq/d_a_sq.rel -62906aac0946d15757479555f592177ceb02e642 build/RZDE01_00/d_a_startAndGoal/d_a_startAndGoal.rel -9cc259487cfab7c8992c0ffd7fda5e7963e2c335 build/RZDE01_00/d_a_suspend/d_a_suspend.rel -3fa1c5d95c0aa92e46c54314fc58a4daff33fea1 build/RZDE01_00/d_a_swBall/d_a_swBall.rel -c4a8b534471c193eef5c41a2514bc2f255155d39 build/RZDE01_00/d_a_swLBall/d_a_swLBall.rel -a04b9a3fb8cd79449bc5108794b2e42526449267 build/RZDE01_00/d_a_swTime/d_a_swTime.rel -3fa8fb4743aecaf61bf0f350303dd097dd4228c8 build/RZDE01_00/d_a_swc00/d_a_swc00.rel -84851cafe8369066333dadfc6c3e58256915eafd build/RZDE01_00/d_a_swhit0/d_a_swhit0.rel -23aaca33e90e67f2665bda28fcb2e9a1b459cca9 build/RZDE01_00/d_a_tag_Lv6Gate/d_a_tag_Lv6Gate.rel -2af9bc970e8e9c367b136ad55e8413ae1363e19e build/RZDE01_00/d_a_tag_Lv7Gate/d_a_tag_Lv7Gate.rel -9d074a6be7a43368bf2712e2c374a9a6c94d0985 build/RZDE01_00/d_a_tag_Lv8Gate/d_a_tag_Lv8Gate.rel -8a1f6adc9d70e27051aa4a0f6cc4008c89fa2cd4 build/RZDE01_00/d_a_tag_TWgate/d_a_tag_TWgate.rel -5196d66df249fa574f833b7b46d9eaa4618c6749 build/RZDE01_00/d_a_tag_ajnot/d_a_tag_ajnot.rel -966a983f021b63e9e169e534146f31cd97b66058 build/RZDE01_00/d_a_tag_allmato/d_a_tag_allmato.rel -deb3eaf3f08f82dcdf0ca38cc63555573c7d9cc7 build/RZDE01_00/d_a_tag_arena/d_a_tag_arena.rel -7a75e4f218c96066196d6e89d209d0630fe0e7d2 build/RZDE01_00/d_a_tag_assistance/d_a_tag_assistance.rel -d4a5787303af8d44ca2cdac7d527f08a1ab9a877 build/RZDE01_00/d_a_tag_attack_item/d_a_tag_attack_item.rel -e5969d4cd7d15b0c8e1bb12dd882d17e617b01ca build/RZDE01_00/d_a_tag_attention/d_a_tag_attention.rel -cdb3a1c694151973d1581be359ccd716c7f10a30 build/RZDE01_00/d_a_tag_bottle_item/d_a_tag_bottle_item.rel -5d3ed06fdd42a609a3c2bf186369aaf07e128189 build/RZDE01_00/d_a_tag_camera/d_a_tag_camera.rel -b4b792c3713342acb91d8b4dbc1b7453a3e36237 build/RZDE01_00/d_a_tag_chgrestart/d_a_tag_chgrestart.rel -1b74e980302ea40c75e30ccb1305da393114923c build/RZDE01_00/d_a_tag_chkpoint/d_a_tag_chkpoint.rel -d2aedce24a1b086b90fc52454a15b5b2ef06bedd build/RZDE01_00/d_a_tag_CstaSw/d_a_tag_CstaSw.rel -820be7fd0ebde4a47555b0a9d13c5dec7c629a14 build/RZDE01_00/d_a_tag_csw/d_a_tag_csw.rel -279d54624695c5ad1e5d897b23005aed34bd758a build/RZDE01_00/d_a_tag_escape/d_a_tag_escape.rel -ae8068042fa136cc917171dfc05fff663fee86fb build/RZDE01_00/d_a_tag_event/d_a_tag_event.rel -3807cf3205d1f6c6635e583d419a2a6587865ad3 build/RZDE01_00/d_a_tag_evt/d_a_tag_evt.rel -0072b91722e61cb991b91da003eb2c814c71e8f8 build/RZDE01_00/d_a_tag_evtarea/d_a_tag_evtarea.rel -e0e65319a1abf0f3fc66048c58ccaca28a8dd372 build/RZDE01_00/d_a_tag_evtmsg/d_a_tag_evtmsg.rel -1450b952480eedff3ca925ffaa997c83164d6d78 build/RZDE01_00/d_a_tag_firewall/d_a_tag_firewall.rel -e9e6b515f8073f8bfa7feca9c999e0ca3042a317 build/RZDE01_00/d_a_tag_gra/d_a_tag_gra.rel -0175ba8075e4f0957378f14758325fd7d8b6ee5d build/RZDE01_00/d_a_tag_gstart/d_a_tag_gstart.rel -1f445c9611312715d74d12aa3f2eb087618e3dcf build/RZDE01_00/d_a_tag_guard/d_a_tag_guard.rel -2598b0d5cfefeb9149a996ffb87e8a66424f716f build/RZDE01_00/d_a_tag_hinit/d_a_tag_hinit.rel -9e754f7a8036fb826505d1558edc8cafc8798050 build/RZDE01_00/d_a_tag_hjump/d_a_tag_hjump.rel -e0d30fb2baf251e750f345da64b9feda2e11adf7 build/RZDE01_00/d_a_tag_howl/d_a_tag_howl.rel -295fec0adf179b6867a00051f65c2dff9c1525de build/RZDE01_00/d_a_tag_hstop/d_a_tag_hstop.rel -298db132015c58d62dcef6785b0643453e9f4d11 build/RZDE01_00/d_a_tag_instruction/d_a_tag_instruction.rel -ce1373f0e55bee124db5739846dc3fd0f9b2b45a build/RZDE01_00/d_a_tag_kago_fall/d_a_tag_kago_fall.rel -3261243766c070ef54dffb0bff4bc208bd70fc6c build/RZDE01_00/d_a_tag_kmsg/d_a_tag_kmsg.rel -be520c5d3c769a4d3e5c4f5d20c1763bf4a61e37 build/RZDE01_00/d_a_tag_lantern/d_a_tag_lantern.rel -b2851a573ab90dae8ccec543a8ea6d09042cf548 build/RZDE01_00/d_a_tag_lightball/d_a_tag_lightball.rel -bb017963b81c8ab746221d79f1273c59ed4253a8 build/RZDE01_00/d_a_tag_lv2prchk/d_a_tag_lv2prchk.rel -1d68513e99ed6942076854648f78e99c000c9c9c build/RZDE01_00/d_a_tag_lv5soup/d_a_tag_lv5soup.rel -eebec9c9c49a36646f39c31d13b7ccef3591294c build/RZDE01_00/d_a_tag_lv6CstaSw/d_a_tag_lv6CstaSw.rel -591f43d4934d792bbc3ac15f81b6e1b0cbd12bc7 build/RZDE01_00/d_a_tag_magne/d_a_tag_magne.rel -074be75e5ba9ec1fa8257cc5ce6991913cd2e908 build/RZDE01_00/d_a_tag_mhint/d_a_tag_mhint.rel -3531679d1fb5a496c886453cb918a2a18304e023 build/RZDE01_00/d_a_tag_mist/d_a_tag_mist.rel -36c7f0f5285ee859ef5da097c185f3efbfa965ad build/RZDE01_00/d_a_tag_mmsg/d_a_tag_mmsg.rel -2795b1d007379eb9dfea6e87eb58c6e42541771c build/RZDE01_00/d_a_tag_msg/d_a_tag_msg.rel -29ce17c7c0871e5b00216e6c7f6fd135e5debe7b build/RZDE01_00/d_a_tag_mstop/d_a_tag_mstop.rel -6701b0aff6c365c96499fd176e83f905f80b8dae build/RZDE01_00/d_a_tag_mwait/d_a_tag_mwait.rel -5d48af41ab170a28856fb167cc9ae11b98429cf9 build/RZDE01_00/d_a_tag_myna2/d_a_tag_myna2.rel -e966814bf9d17c1b2f6871e1d9fab6c3daf193e7 build/RZDE01_00/d_a_tag_myna_light/d_a_tag_myna_light.rel -c20f35cea855aaacf152b5765ae25013890bab93 build/RZDE01_00/d_a_tag_pachi/d_a_tag_pachi.rel -919b44b2aa1812d8c1a4800625224f8b6018a2d0 build/RZDE01_00/d_a_tag_poFire/d_a_tag_poFire.rel -0a33d9e570ee9bfc3fa8f445b4e82dd5822cfa54 build/RZDE01_00/d_a_tag_push/d_a_tag_push.rel -4b2bf62e33a2f41b58bad9c35eaa0d56dc3f42ff build/RZDE01_00/d_a_tag_qs/d_a_tag_qs.rel -716882f33f6abb068a2acc453149e87ab560fa67 build/RZDE01_00/d_a_tag_ret_room/d_a_tag_ret_room.rel -56f8a16c27b674f3420cd655e79134b01c56f76c build/RZDE01_00/d_a_tag_river_back/d_a_tag_river_back.rel -079e397223c2d9a82bfdcaecf261ce978118ecdc build/RZDE01_00/d_a_tag_rmbit_sw/d_a_tag_rmbit_sw.rel -e2db8f98f74d1e414e9e6b41bf734cc12fbb4e15 build/RZDE01_00/d_a_tag_schedule/d_a_tag_schedule.rel -f46502ef6209483844d7ca70cd211f0bafe678d4 build/RZDE01_00/d_a_tag_setBall/d_a_tag_setBall.rel -4a7bd917d8b00be029bc5d41dfaaf4ce3db081bb build/RZDE01_00/d_a_tag_setrestart/d_a_tag_setrestart.rel -9f60caa3057d43eb05ac9a82c72921f884de1b31 build/RZDE01_00/d_a_tag_shop_camera/d_a_tag_shop_camera.rel -fbaa1ffc8376c92acf6dae3e75065fcfa1a7b3eb build/RZDE01_00/d_a_tag_shop_item/d_a_tag_shop_item.rel -608d135476085de2d7cfad6caf35ee6d71eb1082 build/RZDE01_00/d_a_tag_smk_emt/d_a_tag_smk_emt.rel -a74d482932bf53ab16e861cb7ad0fcfe19ac316b build/RZDE01_00/d_a_tag_spinner/d_a_tag_spinner.rel -ef8f5f15de1b10629eca80e4c09ac3b19085afb7 build/RZDE01_00/d_a_tag_sppath/d_a_tag_sppath.rel -c5ebdbad98459178d82446b0a50fc15bb0b18f68 build/RZDE01_00/d_a_tag_spring/d_a_tag_spring.rel -9bf476560bdcfa8321f189b7c423ad66afa20d2d build/RZDE01_00/d_a_tag_ss_drink/d_a_tag_ss_drink.rel -072d86e5344bc02f669bbd2ad14685895c0198fe build/RZDE01_00/d_a_tag_statue_evt/d_a_tag_statue_evt.rel -44e4421cf940bc4888fa33772df8b09507c912d7 build/RZDE01_00/d_a_tag_stream/d_a_tag_stream.rel -5ccc787937b863668503b8a2dc320a6522a75de2 build/RZDE01_00/d_a_tag_telop/d_a_tag_telop.rel -416a6c38e0bfedde6af2f2489270bd82b1184f97 build/RZDE01_00/d_a_tag_theB_hint/d_a_tag_theB_hint.rel -f12552a0faadc64ab7e845c837bc3f50afeae121 build/RZDE01_00/d_a_tag_wara_howl/d_a_tag_wara_howl.rel -cd6d3b2ee310f72497ff64ac63f2518a7d12ecd6 build/RZDE01_00/d_a_tag_watchge/d_a_tag_watchge.rel -3275c6e5476a4d4fa01bf295d601f26acb474fcb build/RZDE01_00/d_a_tag_waterfall/d_a_tag_waterfall.rel -3d8d998a8b4e7d210ba2397b8de4dfb58dcdd705 build/RZDE01_00/d_a_tag_wljump/d_a_tag_wljump.rel -c007807f1a9f53175eacce000be0e8d58683e638 build/RZDE01_00/d_a_tag_yami/d_a_tag_yami.rel -8077e4b71922259002475a1a4ce5ae8698a49015 build/RZDE01_00/d_a_talk/d_a_talk.rel -c0f14410a168f93044656c507f6c4f7f7a242902 build/RZDE01_00/d_a_tbox/d_a_tbox.rel -2af0f8cdb9dc30a21536389d90b933c5d8197912 build/RZDE01_00/d_a_tbox2/d_a_tbox2.rel -4004c4a4b170d4f4a681a410569684c9ec80573d build/RZDE01_00/d_a_tboxSw/d_a_tboxSw.rel -4be84926f0e9d94360054b495e98b5dd2012f3f4 build/RZDE01_00/d_a_title/d_a_title.rel -7c3ef5ddc47eaf69918315295cb6974dc3241593 build/RZDE01_00/d_a_vrbox/d_a_vrbox.rel -f0a4b9c86e03185dbe024944a8d5dc382479902f build/RZDE01_00/d_a_vrbox2/d_a_vrbox2.rel -3c4b602ef024a662b11b13ad02d79178f54319a1 build/RZDE01_00/d_a_warp_bug/d_a_warp_bug.rel -5e46ad812427d181d3b2d323f67d1652a5a08399 build/RZDE01_00/d_a_ykgr/d_a_ykgr.rel -40511841f108b688f4885b19bf8ecf07781aab67 build/RZDE01_00/f_pc_profile_lst/f_pc_profile_lst.rel diff --git a/config/RZDE01_00/build.sha1 b/config/RZDE01_00/build.sha1 index 4fe973d6b9..ef9e7c8a9a 100644 --- a/config/RZDE01_00/build.sha1 +++ b/config/RZDE01_00/build.sha1 @@ -6,14 +6,18 @@ ede193738f3e07f70293853069cb3aad98d4d21f build/RZDE01_00/d_a_L7op_demo_dr/d_a_L b246618e3c7555c44db4c57fd43d5414b1788aa2 build/RZDE01_00/d_a_andsw/d_a_andsw.rel 31a83d751cb67bea4f90532e8bdf5df3cfcabb17 build/RZDE01_00/d_a_andsw2/d_a_andsw2.rel c6ea2b15e1017035c681d2fd222c720abc0e2fb1 build/RZDE01_00/d_a_arrow/d_a_arrow.rel +67c7205a0cbdc2a5f2f637557f3591218ac0292f build/RZDE01_00/d_a_b_bh/d_a_b_bh.rel +0424ac3820dbd317090873d6aa3cb79c94b26439 build/RZDE01_00/d_a_b_bq/d_a_b_bq.rel f7c1d6c8557b6221338b9bcadaecb2b6d4b651b0 build/RZDE01_00/d_a_b_dr/d_a_b_dr.rel 734b7a80f9935dfad802b15912f6bf21b06af547 build/RZDE01_00/d_a_b_dre/d_a_b_dre.rel ff7f53899a0134b572b087eeeeb8bfddab027d20 build/RZDE01_00/d_a_b_ds/d_a_b_ds.rel 3282f582d760690a61db5cc17b23a0ace2003f6d build/RZDE01_00/d_a_b_gg/d_a_b_gg.rel +29d9b931283ea325a04f4daa7a72bd183e02a829 build/RZDE01_00/d_a_b_gm/d_a_b_gm.rel a991c31e24ad86457e19e4c6a5a708925b204c18 build/RZDE01_00/d_a_b_gnd/d_a_b_gnd.rel 39f3f9025f273800729149b6e75def1b12c1e63b build/RZDE01_00/d_a_b_go/d_a_b_go.rel 2118b63fed14e4728e854b2bfd1d69b57d0b5e62 build/RZDE01_00/d_a_b_gos/d_a_b_gos.rel e551d56558802388dd84904e35e08f7578156d16 build/RZDE01_00/d_a_b_mgn/d_a_b_mgn.rel +0f921595d92beaf0f27ea34cda1bdda03403fd4e build/RZDE01_00/d_a_b_ob/d_a_b_ob.rel 11f6d4d2f2a45e8ddd5b04d5417b84071b4d4d04 build/RZDE01_00/d_a_b_oh/d_a_b_oh.rel a2b447a582a0c99274ee8969084d22963de6e825 build/RZDE01_00/d_a_b_oh2/d_a_b_oh2.rel 3e2e6dfb957ed3eed2f64a42c12450318f59da48 build/RZDE01_00/d_a_b_tn/d_a_b_tn.rel @@ -186,6 +190,7 @@ f4120733ecec3d296317edd4f0e2ff6ab65f077d build/RZDE01_00/d_a_midna/d_a_midna.re e2959e667249f70d5ce6fbc9102fdc059cae02e9 build/RZDE01_00/d_a_myna/d_a_myna.rel 768bd0661a976a900be5b41d1f1d94aa237d1328 build/RZDE01_00/d_a_nbomb/d_a_nbomb.rel ddff08df5e891a69ef79a70e2dbb429cab617b86 build/RZDE01_00/d_a_ni/d_a_ni.rel +3bb54240f33b1fc18af93347cd02a6f36c9d3e2f build/RZDE01_00/d_a_no_chg_room/d_a_no_chg_room.rel ca9e44859966db2ca85739b05d171f6b287f9660 build/RZDE01_00/d_a_npc_aru/d_a_npc_aru.rel b8368dfb33cdd4ecec563564972c112e83e12364 build/RZDE01_00/d_a_npc_ash/d_a_npc_ash.rel 32ec0282eb1d3825420b9390b5793a25478a7aff build/RZDE01_00/d_a_npc_ashB/d_a_npc_ashB.rel @@ -193,6 +198,7 @@ b8368dfb33cdd4ecec563564972c112e83e12364 build/RZDE01_00/d_a_npc_ash/d_a_npc_as ad5bc7e30fff6bae36e40973e4912e2bf046b207 build/RZDE01_00/d_a_npc_besu/d_a_npc_besu.rel 1f34182affd673d75322b99802469f41818451f1 build/RZDE01_00/d_a_npc_blue_ns/d_a_npc_blue_ns.rel 0cfb946d2f257e9abb0db5532dce72113a2abafb build/RZDE01_00/d_a_npc_bou/d_a_npc_bou.rel +f9b9989db309764ba75e1349460304654d5169af build/RZDE01_00/d_a_npc_bouS/d_a_npc_bouS.rel 9b2296b2346783b7cdafe7f9a2e75bdd2bf42c6a build/RZDE01_00/d_a_npc_cdn3/d_a_npc_cdn3.rel 72bf2d17349875fe82aff8716447a5c6fc16f85f build/RZDE01_00/d_a_npc_chat/d_a_npc_chat.rel fe046c70ea2cde19f48ff7c252ebafccb4dc7fcd build/RZDE01_00/d_a_npc_chin/d_a_npc_chin.rel @@ -290,6 +296,7 @@ c86ad1de5c1b58a780c3a97e5ea476164413510d build/RZDE01_00/d_a_npc_toby/d_a_npc_t 2089ac1ff1ffb37472b0ae7d7bf3cf987edd06cb build/RZDE01_00/d_a_npc_tr/d_a_npc_tr.rel 452740d04606e7a79bbc2f67b999a0fb1fe47849 build/RZDE01_00/d_a_npc_uri/d_a_npc_uri.rel 28dfb1cb92538070029379e242d76f3ce7daa226 build/RZDE01_00/d_a_npc_worm/d_a_npc_worm.rel +648d16f1f92476839a8488c3399e96c449a87c21 build/RZDE01_00/d_a_npc_wrestler/d_a_npc_wrestler.rel 428cd39a6cd9354f275036f7ef66ea83e86701c2 build/RZDE01_00/d_a_npc_yamid/d_a_npc_yamid.rel 61d7c715399c2022f9020878b480c6ce321e09d9 build/RZDE01_00/d_a_npc_yamis/d_a_npc_yamis.rel 236e0d48b66111e8ce975dc1b5acaf186ac6e11d build/RZDE01_00/d_a_npc_yamit/d_a_npc_yamit.rel @@ -656,6 +663,7 @@ e148d1fd5978a183c47e10f9cdbbb0d592b2ebf1 build/RZDE01_00/d_a_obj_zra_freeze/d_a f27c85653793a24ccdb50d99e25b6e9b632bed77 build/RZDE01_00/d_a_ppolamp/d_a_ppolamp.rel 8f7a6980a970ee759d0bed34a7b4a303ef809edc build/RZDE01_00/d_a_scene_exit/d_a_scene_exit.rel de26e827f1e51210d38f43b4befc863faaa19d5e build/RZDE01_00/d_a_scene_exit2/d_a_scene_exit2.rel +8a1a3de4e9f618018b97081111d21682a060eef2 build/RZDE01_00/d_a_set_bgobj/d_a_set_bgobj.rel 621e4e41fa08f59267dc67fa3fad36e96e630388 build/RZDE01_00/d_a_shop_item/d_a_shop_item.rel 6459ee82726a8582ee8615cc27bd3e84c6d3221f build/RZDE01_00/d_a_skip_2D/d_a_skip_2D.rel 1c13d18532102cf391923ce22d94cae0c6f48cd4 build/RZDE01_00/d_a_spinner/d_a_spinner.rel @@ -748,3 +756,4 @@ c0f14410a168f93044656c507f6c4f7f7a242902 build/RZDE01_00/d_a_tbox/d_a_tbox.rel f0a4b9c86e03185dbe024944a8d5dc382479902f build/RZDE01_00/d_a_vrbox2/d_a_vrbox2.rel 3c4b602ef024a662b11b13ad02d79178f54319a1 build/RZDE01_00/d_a_warp_bug/d_a_warp_bug.rel 5e46ad812427d181d3b2d323f67d1652a5a08399 build/RZDE01_00/d_a_ykgr/d_a_ykgr.rel +40511841f108b688f4885b19bf8ecf07781aab67 build/RZDE01_00/f_pc_profile_lst/f_pc_profile_lst.rel diff --git a/config/RZDE01_00/config.yml b/config/RZDE01_00/config.yml index a5f0b86b1d..dc7a5962b1 100644 --- a/config/RZDE01_00/config.yml +++ b/config/RZDE01_00/config.yml @@ -5,7 +5,7 @@ hash: 0f626c1bfbd05979ed78b634cc85248342452fc2 splits: config/RZDE01_00/splits.txt symbols: config/RZDE01_00/symbols.txt # map: orig/RZDE01_00/fixed_maps/RframeworkF.map -mw_comment_version: 14 # GC Linker 2.7 +mw_comment_version: 14 # GC Linker 3.0 quick_analysis: true # Initial analysis completed # detect_objects: true @@ -14,11 +14,11 @@ force_active: [ ] modules: -# - object: files/RELS.arc:rels/mmem/f_pc_profile_lst.rel -# hash: 40511841f108b688f4885b19bf8ecf07781aab67 -# symbols: config/RZDE01_00/rels/f_pc_profile_lst/symbols.txt -# splits: config/RZDE01_00/rels/f_pc_profile_lst/splits.txt -# # map: orig/RZDE01_00/fixed_maps/f_pc_profile_lst.map +- object: files/RELS.arc:rels/mmem/f_pc_profile_lst.rel + hash: 40511841f108b688f4885b19bf8ecf07781aab67 + symbols: config/RZDE01_00/rels/f_pc_profile_lst/symbols.txt + splits: config/RZDE01_00/rels/f_pc_profile_lst/splits.txt +# map: orig/RZDE01_00/fixed_maps/f_pc_profile_lst.map - object: files/RELS.arc:rels/mmem/d_a_andsw.rel hash: b246618e3c7555c44db4c57fd43d5414b1788aa2 @@ -104,6 +104,12 @@ modules: splits: config/RZDE01_00/rels/d_a_kytag17/splits.txt # map: orig/RZDE01_00/fixed_maps/d_a_kytag17.map +- object: files/RELS.arc:rels/mmem/d_a_no_chg_room.rel + hash: 3bb54240f33b1fc18af93347cd02a6f36c9d3e2f + symbols: config/RZDE01_00/rels/d_a_no_chg_room/symbols.txt + splits: config/RZDE01_00/rels/d_a_no_chg_room/splits.txt + # map: orig/RZDE01_00/fixed_maps/d_a_no_chg_room.map + - object: files/RELS.arc:rels/mmem/d_a_obj_brakeeff.rel hash: 474061b0b3dbd9142ef222d97dce14bbbc9a0bb8 symbols: config/RZDE01_00/rels/d_a_obj_brakeeff/symbols.txt @@ -158,11 +164,11 @@ modules: splits: config/RZDE01_00/rels/d_a_scene_exit/splits.txt # map: orig/RZDE01_00/fixed_maps/d_a_scene_exit.map -# - object: files/RELS.arc:rels/mmem/d_a_set_bgobj.rel -# hash: 8a1a3de4e9f618018b97081111d21682a060eef2 -# symbols: config/RZDE01_00/rels/d_a_set_bgobj/symbols.txt -# splits: config/RZDE01_00/rels/d_a_set_bgobj/splits.txt -# map: orig/RZDE01_00/fixed_maps/d_a_set_bgobj.map +- object: files/RELS.arc:rels/mmem/d_a_set_bgobj.rel + hash: 8a1a3de4e9f618018b97081111d21682a060eef2 + symbols: config/RZDE01_00/rels/d_a_set_bgobj/symbols.txt + splits: config/RZDE01_00/rels/d_a_set_bgobj/splits.txt +# map: orig/RZDE01_00/fixed_maps/d_a_set_bgobj.map - object: files/RELS.arc:rels/mmem/d_a_swhit0.rel hash: 84851cafe8369066333dadfc6c3e58256915eafd @@ -908,17 +914,17 @@ modules: splits: config/RZDE01_00/rels/d_a_L7op_demo_dr/splits.txt # map: orig/RZDE01_00/fixed_maps/d_a_L7op_demo_dr.map -# - object: files/rel/Rfinal/Release/d_a_b_bh.rel -# hash: 67c7205a0cbdc2a5f2f637557f3591218ac0292f -# symbols: config/RZDE01_00/rels/d_a_b_bh/symbols.txt -# splits: config/RZDE01_00/rels/d_a_b_bh/splits.txt -# # map: orig/RZDE01_00/fixed_maps/d_a_b_bh.map +- object: files/rel/Rfinal/Release/d_a_b_bh.rel + hash: 67c7205a0cbdc2a5f2f637557f3591218ac0292f + symbols: config/RZDE01_00/rels/d_a_b_bh/symbols.txt + splits: config/RZDE01_00/rels/d_a_b_bh/splits.txt +# map: orig/RZDE01_00/fixed_maps/d_a_b_bh.map -# - object: files/rel/Rfinal/Release/d_a_b_bq.rel -# hash: 0424ac3820dbd317090873d6aa3cb79c94b26439 -# symbols: config/RZDE01_00/rels/d_a_b_bq/symbols.txt -# splits: config/RZDE01_00/rels/d_a_b_bq/splits.txt -# # map: orig/RZDE01_00/fixed_maps/d_a_b_bq.map +- object: files/rel/Rfinal/Release/d_a_b_bq.rel + hash: 0424ac3820dbd317090873d6aa3cb79c94b26439 + symbols: config/RZDE01_00/rels/d_a_b_bq/symbols.txt + splits: config/RZDE01_00/rels/d_a_b_bq/splits.txt +# map: orig/RZDE01_00/fixed_maps/d_a_b_bq.map - object: files/rel/Rfinal/Release/d_a_b_dr.rel hash: f7c1d6c8557b6221338b9bcadaecb2b6d4b651b0 @@ -944,11 +950,11 @@ modules: splits: config/RZDE01_00/rels/d_a_b_gg/splits.txt # map: orig/RZDE01_00/fixed_maps/d_a_b_gg.map -# - object: files/rel/Rfinal/Release/d_a_b_gm.rel -# hash: 29d9b931283ea325a04f4daa7a72bd183e02a829 -# symbols: config/RZDE01_00/rels/d_a_b_gm/symbols.txt -# splits: config/RZDE01_00/rels/d_a_b_gm/splits.txt -# # map: orig/RZDE01_00/fixed_maps/d_a_b_gm.map +- object: files/rel/Rfinal/Release/d_a_b_gm.rel + hash: 29d9b931283ea325a04f4daa7a72bd183e02a829 + symbols: config/RZDE01_00/rels/d_a_b_gm/symbols.txt + splits: config/RZDE01_00/rels/d_a_b_gm/splits.txt +# map: orig/RZDE01_00/fixed_maps/d_a_b_gm.map - object: files/rel/Rfinal/Release/d_a_b_gnd.rel hash: a991c31e24ad86457e19e4c6a5a708925b204c18 @@ -974,11 +980,11 @@ modules: splits: config/RZDE01_00/rels/d_a_b_mgn/splits.txt # map: orig/RZDE01_00/fixed_maps/d_a_b_mgn.map -# - object: files/rel/Rfinal/Release/d_a_b_ob.rel -# hash: 0f921595d92beaf0f27ea34cda1bdda03403fd4e -# symbols: config/RZDE01_00/rels/d_a_b_ob/symbols.txt -# splits: config/RZDE01_00/rels/d_a_b_ob/splits.txt -# # map: orig/RZDE01_00/fixed_maps/d_a_b_ob.map +- object: files/rel/Rfinal/Release/d_a_b_ob.rel + hash: 0f921595d92beaf0f27ea34cda1bdda03403fd4e + symbols: config/RZDE01_00/rels/d_a_b_ob/symbols.txt + splits: config/RZDE01_00/rels/d_a_b_ob/splits.txt +# map: orig/RZDE01_00/fixed_maps/d_a_b_ob.map - object: files/rel/Rfinal/Release/d_a_b_oh.rel hash: 11f6d4d2f2a45e8ddd5b04d5417b84071b4d4d04 @@ -1827,11 +1833,11 @@ modules: splits: config/RZDE01_00/rels/d_a_npc_bou/splits.txt # map: orig/RZDE01_00/fixed_maps/d_a_npc_bou.map -# - object: files/rel/Rfinal/Release/d_a_npc_bouS.rel -# hash: f9b9989db309764ba75e1349460304654d5169af -# symbols: config/RZDE01_00/rels/d_a_npc_bouS/symbols.txt -# splits: config/RZDE01_00/rels/d_a_npc_bouS/splits.txt -# # map: orig/RZDE01_00/fixed_maps/d_a_npc_bouS.map +- object: files/rel/Rfinal/Release/d_a_npc_bouS.rel + hash: f9b9989db309764ba75e1349460304654d5169af + symbols: config/RZDE01_00/rels/d_a_npc_bouS/symbols.txt + splits: config/RZDE01_00/rels/d_a_npc_bouS/splits.txt +# map: orig/RZDE01_00/fixed_maps/d_a_npc_bouS.map - object: files/rel/Rfinal/Release/d_a_npc_cdn3.rel hash: 9b2296b2346783b7cdafe7f9a2e75bdd2bf42c6a @@ -2361,11 +2367,11 @@ modules: splits: config/RZDE01_00/rels/d_a_npc_worm/splits.txt # map: orig/RZDE01_00/fixed_maps/d_a_npc_worm.map -# - object: files/rel/Rfinal/Release/d_a_npc_wrestler.rel -# hash: 648d16f1f92476839a8488c3399e96c449a87c21 -# symbols: config/RZDE01_00/rels/d_a_npc_wrestler/symbols.txt -# splits: config/RZDE01_00/rels/d_a_npc_wrestler/splits.txt -# # map: orig/RZDE01_00/fixed_maps/d_a_npc_wrestler.map +- object: files/rel/Rfinal/Release/d_a_npc_wrestler.rel + hash: 648d16f1f92476839a8488c3399e96c449a87c21 + symbols: config/RZDE01_00/rels/d_a_npc_wrestler/symbols.txt + splits: config/RZDE01_00/rels/d_a_npc_wrestler/splits.txt +# map: orig/RZDE01_00/fixed_maps/d_a_npc_wrestler.map - object: files/rel/Rfinal/Release/d_a_npc_yamid.rel hash: 428cd39a6cd9354f275036f7ef66ea83e86701c2 diff --git a/config/RZDE01_00/rels/d_a_b_bh/splits.txt b/config/RZDE01_00/rels/d_a_b_bh/splits.txt new file mode 100644 index 0000000000..65478d00e2 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_b_bh/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +REL/global_destructor_chain.c: + .text start:0x0000005C end:0x000000CC + .dtors start:0x00000000 end:0x00000004 rename:.dtors$10 + .bss start:0x00000000 end:0x00000008 + +d/actor/d_a_b_bh.cpp: + .text start:0x000000CC end:0x000044B8 + .ctors start:0x00000000 end:0x00000004 + .rodata start:0x00000000 end:0x000000CC + .data start:0x00000000 end:0x0000033C + .bss start:0x00000008 end:0x00000038 diff --git a/config/RZDE01_00/rels/d_a_b_bh/symbols.txt b/config/RZDE01_00/rels/d_a_b_bh/symbols.txt new file mode 100644 index 0000000000..295c0abad1 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_b_bh/symbols.txt @@ -0,0 +1,113 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global +__register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global +__destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global +__ct__12daB_BH_HIO_cFv = .text:0x000000CC; // type:function size:0x38 scope:global +anm_init__FP10b_bh_classifUcf = .text:0x00000104; // type:function size:0xAC scope:global +daB_BH_Draw__FP10b_bh_class = .text:0x000001B0; // type:function size:0xD4 scope:global +b_bh_wait__FP10b_bh_class = .text:0x00000284; // type:function size:0x650 scope:global +b_bh_attack_1__FP10b_bh_class = .text:0x000008D4; // type:function size:0x46C scope:global +b_bh_bombeat__FP10b_bh_class = .text:0x00000D40; // type:function size:0x248 scope:global +b_bh_down__FP10b_bh_class = .text:0x00000F88; // type:function size:0x420 scope:global +b_bh_b_wait__FP10b_bh_class = .text:0x000013A8; // type:function size:0x548 scope:global +b_bh_b_attack_1__FP10b_bh_class = .text:0x000018F0; // type:function size:0x440 scope:global +b_bh_b_bombeat__FP10b_bh_class = .text:0x00001D30; // type:function size:0x19C scope:global +b_bh_b_down__FP10b_bh_class = .text:0x00001ECC; // type:function size:0x2D4 scope:global +b_bh_start__FP10b_bh_class = .text:0x000021A0; // type:function size:0x504 scope:global +kuki_control1__FP10b_bh_class = .text:0x000026A4; // type:function size:0x268 scope:global +kuki_control2__FP10b_bh_class = .text:0x0000290C; // type:function size:0x148 scope:global +kuki_control3__FP10b_bh_class = .text:0x00002A54; // type:function size:0xE4 scope:global +s_b_sub__FPvPv = .text:0x00002B38; // type:function size:0xB0 scope:global +damage_check__FP10b_bh_class = .text:0x00002BE8; // type:function size:0x314 scope:global +daB_BH_Execute__FP10b_bh_class = .text:0x00002EFC; // type:function size:0xED4 scope:global +daB_BH_IsDelete__FP10b_bh_class = .text:0x00003DD0; // type:function size:0x8 scope:global +daB_BH_Delete__FP10b_bh_class = .text:0x00003DD8; // type:function size:0x68 scope:global +useHeapInit__FP10fopAc_ac_c = .text:0x00003E40; // type:function size:0x244 scope:global +daB_BH_Create__FP10fopAc_ac_c = .text:0x00004084; // type:function size:0x3AC scope:global +__dt__12daB_BH_HIO_cFv = .text:0x00004430; // type:function size:0x40 scope:global +__sinit_\d_a_b_bh_cpp = .text:0x00004470; // type:function size:0x48 scope:local +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global +__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global +...rodata.0 = .rodata:0x00000000; // type:label scope:local +@98262 = .rodata:0x00000000; // type:object size:0x4 scope:local +@98271 = .rodata:0x00000004; // type:object size:0x4 scope:local align:4 data:float +@98272 = .rodata:0x00000008; // type:object size:0x4 scope:local align:4 data:float +@98363 = .rodata:0x0000000C; // type:object size:0x4 scope:local +@98364 = .rodata:0x00000010; // type:object size:0x4 scope:local +@98365 = .rodata:0x00000014; // type:object size:0x4 scope:local +@98366 = .rodata:0x00000018; // type:object size:0x4 scope:local +@98367 = .rodata:0x0000001C; // type:object size:0x4 scope:local +@98368 = .rodata:0x00000020; // type:object size:0x4 scope:local +@98369 = .rodata:0x00000024; // type:object size:0x4 scope:local +@98370 = .rodata:0x00000028; // type:object size:0x4 scope:local +@98371 = .rodata:0x0000002C; // type:object size:0x4 scope:local +@98372 = .rodata:0x00000030; // type:object size:0x4 scope:local +@98373 = .rodata:0x00000034; // type:object size:0x4 scope:local align:4 data:float +@98374 = .rodata:0x00000038; // type:object size:0x4 scope:local +@98375 = .rodata:0x0000003C; // type:object size:0x4 scope:local +@98376 = .rodata:0x00000040; // type:object size:0x4 scope:local data:string +@98377 = .rodata:0x00000044; // type:object size:0x4 scope:local +@98378 = .rodata:0x00000048; // type:object size:0x4 scope:local +@98379 = .rodata:0x0000004C; // type:object size:0x4 scope:local +@98380 = .rodata:0x00000050; // type:object size:0x4 scope:local +@98381 = .rodata:0x00000054; // type:object size:0x4 scope:local +@98382 = .rodata:0x00000058; // type:object size:0x4 scope:local +@98387 = .rodata:0x00000060; // type:object size:0x8 scope:local align:8 data:double +@98419 = .rodata:0x00000068; // type:object size:0x4 scope:local +@98420 = .rodata:0x0000006C; // type:object size:0x4 scope:local +@98421 = .rodata:0x00000070; // type:object size:0x4 scope:local +@98422 = .rodata:0x00000074; // type:object size:0x4 scope:local +@98423 = .rodata:0x00000078; // type:object size:0x4 scope:local +@98424 = .rodata:0x0000007C; // type:object size:0x4 scope:local +@98425 = .rodata:0x00000080; // type:object size:0x4 scope:local +@98472 = .rodata:0x00000084; // type:object size:0x4 scope:local +@98507 = .rodata:0x00000088; // type:object size:0x4 scope:local +@98508 = .rodata:0x0000008C; // type:object size:0x4 scope:local +@98509 = .rodata:0x00000090; // type:object size:0x4 scope:local +@98510 = .rodata:0x00000094; // type:object size:0x4 scope:local +@98563 = .rodata:0x00000098; // type:object size:0x4 scope:local +@98630 = .rodata:0x0000009C; // type:object size:0x4 scope:local +@98683 = .rodata:0x000000A0; // type:object size:0x4 scope:local +@98684 = .rodata:0x000000A4; // type:object size:0x4 scope:local +@98718 = .rodata:0x000000A8; // type:object size:0x4 scope:local align:4 data:float +@98958 = .rodata:0x000000AC; // type:object size:0x4 scope:local +@98959 = .rodata:0x000000B0; // type:object size:0x4 scope:local +@98960 = .rodata:0x000000B4; // type:object size:0x4 scope:local +@98961 = .rodata:0x000000B8; // type:object size:0x4 scope:local +@98962 = .rodata:0x000000BC; // type:object size:0x4 scope:local +@99030 = .rodata:0x000000C0; // type:object size:0x4 scope:local +@99031 = .rodata:0x000000C4; // type:object size:0x4 scope:local +@99086 = .rodata:0x000000C8; // type:object size:0x4 scope:local +@112234 = .data:0x00000000; // type:object size:0x5 scope:local data:string +pow_xa$93969 = .data:0x00000006; // type:object size:0x22 scope:local +eno$94187 = .data:0x00000028; // type:object size:0xA scope:local data:2byte +eno$94198 = .data:0x00000032; // type:object size:0x8 scope:local data:2byte +g_y_i$94263 = .data:0x0000003A; // type:object size:0xA scope:local data:2byte +g_y_ji$94264 = .data:0x00000044; // type:object size:0x14 scope:local data:4byte +cc_sph_src$94478 = .data:0x00000058; // type:object size:0x40 scope:local +tg_sph_src$94479 = .data:0x00000098; // type:object size:0x40 scope:local +l_daB_BH_Method = .data:0x000000D8; // type:object size:0x20 scope:global +g_profile_B_BH = .data:0x000000F8; // type:object size:0x30 scope:global +__vt__12daB_BH_HIO_c = .data:0x00000128; // type:object size:0xC scope:global +lbl_138_data_134 = .data:0x00000134; // type:object size:0xD data:string +@94524 = .data:0x00000144; // type:object size:0xC scope:local data:string +__RTTI__12daB_BH_HIO_c = .data:0x00000150; // type:object size:0x8 scope:global +lbl_138_data_158 = .data:0x00000158; // type:object size:0x34 +@94587 = .data:0x0000018C; // type:object size:0x34 scope:local +lbl_138_data_1C0 = .data:0x000001C0; // type:object size:0x1C +@94589 = .data:0x000001DC; // type:object size:0x34 scope:local +lbl_138_data_210 = .data:0x00000210; // type:object size:0x14 +@94647 = .data:0x00000224; // type:object size:0x24 scope:local +lbl_138_data_248 = .data:0x00000248; // type:object size:0x18 +@94649 = .data:0x00000260; // type:object size:0xC scope:local +lbl_138_data_26C = .data:0x0000026C; // type:object size:0x1C +@94651 = .data:0x00000288; // type:object size:0xC scope:local +lbl_138_data_294 = .data:0x00000294; // type:object size:0xA8 +__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global +...bss.0 = .bss:0x00000000; // type:label scope:local +lbl_138_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte +@93399 = .bss:0x0000000C; // type:object size:0xC scope:global +l_HIO = .bss:0x00000018; // type:object size:0x18 scope:global data:2byte +bh = .bss:0x00000030; // type:object size:0x8 scope:global diff --git a/config/RZDE01_00/rels/d_a_b_bq/splits.txt b/config/RZDE01_00/rels/d_a_b_bq/splits.txt new file mode 100644 index 0000000000..dfcff87b1b --- /dev/null +++ b/config/RZDE01_00/rels/d_a_b_bq/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +REL/global_destructor_chain.c: + .text start:0x0000005C end:0x000000CC + .dtors start:0x00000000 end:0x00000004 rename:.dtors$10 + .bss start:0x00000000 end:0x00000008 + +d/actor/d_a_b_bq.cpp: + .text start:0x000000CC end:0x00006924 + .ctors start:0x00000000 end:0x00000004 + .rodata start:0x00000000 end:0x000002C4 + .data start:0x00000000 end:0x00000518 + .bss start:0x00000008 end:0x0000002C diff --git a/config/RZDE01_00/rels/d_a_b_bq/symbols.txt b/config/RZDE01_00/rels/d_a_b_bq/symbols.txt new file mode 100644 index 0000000000..69576e2b48 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_b_bq/symbols.txt @@ -0,0 +1,257 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 +__register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 +__destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 +__ct__12daB_BQ_HIO_cFv = .text:0x000000CC; // type:function size:0x34 scope:global align:4 +anm_init__FP10b_bq_classifUcf = .text:0x00000100; // type:function size:0xAC scope:global align:4 +nodeCallBack__FP8J3DJointi = .text:0x000001AC; // type:function size:0x13C scope:global align:4 +daB_BQ_Draw__FP10b_bq_class = .text:0x000002E8; // type:function size:0x310 scope:global align:4 +s_fw_sub0__FPvPv = .text:0x000005F8; // type:function size:0x50 scope:global align:4 +s_fw_sub1__FPvPv = .text:0x00000648; // type:function size:0x124 scope:global align:4 +s_fw_sub2__FPvPv = .text:0x0000076C; // type:function size:0x108 scope:global align:4 +s_fw_del_sub__FPvPv = .text:0x00000874; // type:function size:0x4C scope:global align:4 +s_bi_del_sub__FPvPv = .text:0x000008C0; // type:function size:0x54 scope:global align:4 +action__FP10b_bq_class = .text:0x00000914; // type:function size:0x1820 scope:global align:4 +anm_se_set__FP10b_bq_class = .text:0x00002134; // type:function size:0x9B8 scope:global align:4 +cam_3d_morf__FP10b_bq_classf = .text:0x00002AEC; // type:function size:0xE4 scope:global align:4 +fish_set__FP10b_bq_class = .text:0x00002BD0; // type:function size:0xA4 scope:global align:4 +demo_camera__FP10b_bq_class = .text:0x00002C74; // type:function size:0x28C4 scope:global align:4 +daB_BQ_Execute__FP10b_bq_class = .text:0x00005538; // type:function size:0x98C scope:global align:4 +daB_BQ_IsDelete__FP10b_bq_class = .text:0x00005EC4; // type:function size:0x8 scope:global align:4 +daB_BQ_Delete__FP10b_bq_class = .text:0x00005ECC; // type:function size:0x78 scope:global align:4 +useHeapInit__FP10fopAc_ac_c = .text:0x00005F44; // type:function size:0x2C8 scope:global align:4 +daB_BQ_Create__FP10fopAc_ac_c = .text:0x0000620C; // type:function size:0x52C scope:global align:4 +__dt__12daB_BQ_HIO_cFv = .text:0x00006738; // type:function size:0x40 scope:global align:4 +__sinit_\d_a_b_bq_cpp = .text:0x00006778; // type:function size:0x48 scope:global align:4 +setBaseTRMtx__8J3DModelFPA4_f = .text:0x000067C0; // type:function size:0x10 scope:global align:4 +getModel__16mDoExt_McaMorfSOFv = .text:0x000067D0; // type:function size:0x8 scope:global align:4 +getPlaySpeed__14mDoExt_baseAnmFv = .text:0x000067D8; // type:function size:0x8 scope:global align:4 +dComIfGp_getPlayer__Fi = .text:0x000067E0; // type:function size:0x18 scope:global align:4 +dComIfGp_particle_set__FUlUsP10cXyz = .text:0x000067F8; // type:function size:0x78 scope:global align:4 +dComIfG_Ccsp__Fv = .text:0x00006870; // type:function size:0x10 scope:global align:4 +dComIfGp_checkPlayerStatus0__FiUl = .text:0x00006880; // type:function size:0x1C scope:global align:4 +getCutType__9daPy_py_cCFv = .text:0x0000689C; // type:function size:0x8 scope:global align:4 +daPy_getPlayerActorClass__Fv = .text:0x000068A4; // type:function size:0x10 scope:global align:4 +changeOriginalDemo__9daPy_py_cFv = .text:0x000068B4; // type:function size:0x14 scope:global align:4 +fopAcM_GetRoomNo__FP16fopAc_ac_c = .text:0x000068C8; // type:function size:0xC scope:global align:4 +fopAcM_GetID__FP10void = .text:0x000068D4; // type:function size:0x18 scope:global align:4 +fopAcM_OffStatus__FP10fopAc_ac_cUl = .text:0x000068EC; // type:function size:0x10 scope:global align:4 +get__14mDoMtx_stack_cFv = .text:0x000068FC; // type:function size:0xC scope:global align:4 +YrotM__14mDoMtx_stack_cFs = .text:0x00006908; // type:function size:0x10 scope:global align:4 +fpcM_Search__FPFPvPv_PvPv = .text:0x00006918; // type:function size:0x4 scope:global align:4 +setCurrentPos__16obj_ystone_classF4cXyz = .text:0x0000691C; // type:function size:0x8 scope:global align:4 +_ctors = .ctors:0x00000000; // type:label scope:global +__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global align:4 +_dtors = .dtors:0x00000000; // type:label scope:global +...rodata.0 = .rodata:0x00000000; // type:label scope:local align:4 +@103874 = .rodata:0x00000000; // type:object size:0x4 scope:local align:4 +@103883 = .rodata:0x00000004; // type:object size:0x4 scope:local align:4 data:float +@103884 = .rodata:0x00000008; // type:object size:0x4 scope:local align:4 data:float +@104026 = .rodata:0x0000000C; // type:object size:0x4 scope:local align:4 +@104027 = .rodata:0x00000010; // type:object size:0x4 scope:local align:4 +@104028 = .rodata:0x00000014; // type:object size:0x4 scope:local align:4 +@104059 = .rodata:0x00000018; // type:object size:0x4 scope:local align:4 +@104060 = .rodata:0x0000001C; // type:object size:0x4 scope:local align:4 +@104085 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 data:float +@104473 = .rodata:0x00000024; // type:object size:0x4 scope:local align:4 +@104474 = .rodata:0x00000028; // type:object size:0x4 scope:local align:4 +@104475 = .rodata:0x0000002C; // type:object size:0x4 scope:local align:4 +@104476 = .rodata:0x00000030; // type:object size:0x4 scope:local align:4 +@104477 = .rodata:0x00000034; // type:object size:0x4 scope:local align:4 +@104478 = .rodata:0x00000038; // type:object size:0x4 scope:local align:4 +@104479 = .rodata:0x0000003C; // type:object size:0x4 scope:local align:4 +@104480 = .rodata:0x00000040; // type:object size:0x4 scope:local align:4 +@104481 = .rodata:0x00000044; // type:object size:0x4 scope:local align:4 +@104482 = .rodata:0x00000048; // type:object size:0x4 scope:local align:4 +@104483 = .rodata:0x0000004C; // type:object size:0x4 scope:local align:4 +@104484 = .rodata:0x00000050; // type:object size:0x4 scope:local align:4 +@104485 = .rodata:0x00000054; // type:object size:0x4 scope:local align:4 +@104486 = .rodata:0x00000058; // type:object size:0x4 scope:local align:4 +@104487 = .rodata:0x0000005C; // type:object size:0x4 scope:local align:4 +@104488 = .rodata:0x00000060; // type:object size:0x4 scope:local align:4 +@104489 = .rodata:0x00000064; // type:object size:0x4 scope:local align:4 +@104490 = .rodata:0x00000068; // type:object size:0x4 scope:local align:4 +@104491 = .rodata:0x0000006C; // type:object size:0x4 scope:local align:4 +@104495 = .rodata:0x00000070; // type:object size:0x8 scope:local align:4 +@104813 = .rodata:0x00000078; // type:object size:0x4 scope:local align:4 data:float +@105419 = .rodata:0x0000007C; // type:object size:0x4 scope:local align:4 +@105420 = .rodata:0x00000080; // type:object size:0x4 scope:local align:4 +@105421 = .rodata:0x00000084; // type:object size:0x4 scope:local align:4 +@105422 = .rodata:0x00000088; // type:object size:0x4 scope:local align:4 +@105423 = .rodata:0x0000008C; // type:object size:0x4 scope:local align:4 +@105424 = .rodata:0x00000090; // type:object size:0x4 scope:local align:4 +@105425 = .rodata:0x00000094; // type:object size:0x4 scope:local align:4 +@105426 = .rodata:0x00000098; // type:object size:0x4 scope:local align:4 +@105427 = .rodata:0x0000009C; // type:object size:0x4 scope:local align:4 +@105428 = .rodata:0x000000A0; // type:object size:0x4 scope:local align:4 +@105429 = .rodata:0x000000A4; // type:object size:0x4 scope:local align:4 +@105430 = .rodata:0x000000A8; // type:object size:0x4 scope:local align:4 +@105431 = .rodata:0x000000AC; // type:object size:0x4 scope:local align:4 +@105432 = .rodata:0x000000B0; // type:object size:0x4 scope:local align:4 +@105433 = .rodata:0x000000B4; // type:object size:0x4 scope:local align:4 +@105434 = .rodata:0x000000B8; // type:object size:0x4 scope:local align:4 +@105435 = .rodata:0x000000BC; // type:object size:0x4 scope:local align:4 +@105436 = .rodata:0x000000C0; // type:object size:0x4 scope:local align:4 +@105437 = .rodata:0x000000C4; // type:object size:0x4 scope:local align:4 +@105438 = .rodata:0x000000C8; // type:object size:0x4 scope:local align:4 +@105439 = .rodata:0x000000CC; // type:object size:0x4 scope:local align:4 +@105440 = .rodata:0x000000D0; // type:object size:0x4 scope:local align:4 +@105441 = .rodata:0x000000D4; // type:object size:0x4 scope:local align:4 +@105442 = .rodata:0x000000D8; // type:object size:0x4 scope:local align:4 +@105443 = .rodata:0x000000DC; // type:object size:0x4 scope:local align:4 +@105444 = .rodata:0x000000E0; // type:object size:0x4 scope:local align:4 +@105445 = .rodata:0x000000E4; // type:object size:0x4 scope:local align:4 +@105446 = .rodata:0x000000E8; // type:object size:0x4 scope:local align:4 +@105447 = .rodata:0x000000EC; // type:object size:0x4 scope:local align:4 +@105448 = .rodata:0x000000F0; // type:object size:0x4 scope:local align:4 +@105449 = .rodata:0x000000F4; // type:object size:0x4 scope:local align:4 +@105450 = .rodata:0x000000F8; // type:object size:0x4 scope:local align:4 +@105451 = .rodata:0x000000FC; // type:object size:0x4 scope:local align:4 +@105452 = .rodata:0x00000100; // type:object size:0x4 scope:local align:4 +@105453 = .rodata:0x00000104; // type:object size:0x4 scope:local align:4 +@105454 = .rodata:0x00000108; // type:object size:0x4 scope:local align:4 +@105455 = .rodata:0x0000010C; // type:object size:0x4 scope:local align:4 +@105456 = .rodata:0x00000110; // type:object size:0x4 scope:local align:4 +@105457 = .rodata:0x00000114; // type:object size:0x4 scope:local align:4 +@105458 = .rodata:0x00000118; // type:object size:0x4 scope:local align:4 +@105459 = .rodata:0x0000011C; // type:object size:0x4 scope:local align:4 +@105460 = .rodata:0x00000120; // type:object size:0x4 scope:local align:4 +@105461 = .rodata:0x00000124; // type:object size:0x4 scope:local align:4 +@105462 = .rodata:0x00000128; // type:object size:0x4 scope:local align:4 +@105463 = .rodata:0x0000012C; // type:object size:0x4 scope:local align:4 +@105464 = .rodata:0x00000130; // type:object size:0x4 scope:local align:4 +@105465 = .rodata:0x00000134; // type:object size:0x4 scope:local align:4 +@105466 = .rodata:0x00000138; // type:object size:0x4 scope:local align:4 +@105467 = .rodata:0x0000013C; // type:object size:0x4 scope:local align:4 +@105468 = .rodata:0x00000140; // type:object size:0x4 scope:local align:4 +@105469 = .rodata:0x00000144; // type:object size:0x4 scope:local align:4 +@105470 = .rodata:0x00000148; // type:object size:0x4 scope:local align:4 +@105471 = .rodata:0x0000014C; // type:object size:0x4 scope:local align:4 +@105472 = .rodata:0x00000150; // type:object size:0x4 scope:local align:4 +@105473 = .rodata:0x00000154; // type:object size:0x4 scope:local align:4 +@105474 = .rodata:0x00000158; // type:object size:0x4 scope:local align:4 +@105475 = .rodata:0x0000015C; // type:object size:0x4 scope:local align:4 +@105476 = .rodata:0x00000160; // type:object size:0x4 scope:local align:4 +@105477 = .rodata:0x00000164; // type:object size:0x4 scope:local align:4 +@105478 = .rodata:0x00000168; // type:object size:0x4 scope:local align:4 +@105479 = .rodata:0x0000016C; // type:object size:0x4 scope:local align:4 +@105480 = .rodata:0x00000170; // type:object size:0x4 scope:local align:4 +@105481 = .rodata:0x00000174; // type:object size:0x4 scope:local align:4 +@105482 = .rodata:0x00000178; // type:object size:0x4 scope:local align:4 +@105483 = .rodata:0x0000017C; // type:object size:0x4 scope:local align:4 +@105484 = .rodata:0x00000180; // type:object size:0x4 scope:local align:4 +@105485 = .rodata:0x00000184; // type:object size:0x4 scope:local align:4 +@105486 = .rodata:0x00000188; // type:object size:0x4 scope:local align:4 +@105487 = .rodata:0x0000018C; // type:object size:0x4 scope:local align:4 data:string +@105488 = .rodata:0x00000190; // type:object size:0x4 scope:local align:4 +@105489 = .rodata:0x00000194; // type:object size:0x4 scope:local align:4 +@105490 = .rodata:0x00000198; // type:object size:0x4 scope:local align:4 +@105491 = .rodata:0x0000019C; // type:object size:0x4 scope:local align:4 +@105492 = .rodata:0x000001A0; // type:object size:0x4 scope:local align:4 data:string +@105493 = .rodata:0x000001A4; // type:object size:0x4 scope:local align:4 +@105494 = .rodata:0x000001A8; // type:object size:0x4 scope:local align:4 +@105495 = .rodata:0x000001AC; // type:object size:0x4 scope:local align:4 +@105496 = .rodata:0x000001B0; // type:object size:0x4 scope:local align:4 +@105497 = .rodata:0x000001B4; // type:object size:0x4 scope:local align:4 +@105498 = .rodata:0x000001B8; // type:object size:0x4 scope:local align:4 +@105499 = .rodata:0x000001BC; // type:object size:0x4 scope:local align:4 +@105500 = .rodata:0x000001C0; // type:object size:0x4 scope:local align:4 +@105501 = .rodata:0x000001C4; // type:object size:0x4 scope:local align:4 +@105502 = .rodata:0x000001C8; // type:object size:0x4 scope:local align:4 +@105503 = .rodata:0x000001CC; // type:object size:0x4 scope:local align:4 +@105504 = .rodata:0x000001D0; // type:object size:0x4 scope:local align:4 +@105505 = .rodata:0x000001D4; // type:object size:0x4 scope:local align:4 +@105506 = .rodata:0x000001D8; // type:object size:0x4 scope:local align:4 +@105507 = .rodata:0x000001DC; // type:object size:0x4 scope:local align:4 +@105508 = .rodata:0x000001E0; // type:object size:0x4 scope:local align:4 +@105509 = .rodata:0x000001E4; // type:object size:0x4 scope:local align:4 +@105510 = .rodata:0x000001E8; // type:object size:0x4 scope:local align:4 +@105511 = .rodata:0x000001EC; // type:object size:0x4 scope:local align:4 data:string +@105512 = .rodata:0x000001F0; // type:object size:0x4 scope:local align:4 +@105513 = .rodata:0x000001F4; // type:object size:0x4 scope:local align:4 +@105514 = .rodata:0x000001F8; // type:object size:0x4 scope:local align:4 +@105515 = .rodata:0x000001FC; // type:object size:0x4 scope:local align:4 +@105516 = .rodata:0x00000200; // type:object size:0x4 scope:local align:4 +@105517 = .rodata:0x00000204; // type:object size:0x4 scope:local align:4 +@105518 = .rodata:0x00000208; // type:object size:0x4 scope:local align:4 +@105519 = .rodata:0x0000020C; // type:object size:0x4 scope:local align:4 +@105520 = .rodata:0x00000210; // type:object size:0x4 scope:local align:4 +@105521 = .rodata:0x00000214; // type:object size:0x4 scope:local align:4 +@105522 = .rodata:0x00000218; // type:object size:0x4 scope:local align:4 +@105523 = .rodata:0x0000021C; // type:object size:0x4 scope:local align:4 +@105524 = .rodata:0x00000220; // type:object size:0x4 scope:local align:4 +@105525 = .rodata:0x00000224; // type:object size:0x4 scope:local align:4 +@105526 = .rodata:0x00000228; // type:object size:0x4 scope:local align:4 +@105527 = .rodata:0x0000022C; // type:object size:0x4 scope:local align:4 +@105528 = .rodata:0x00000230; // type:object size:0x4 scope:local align:4 +@105529 = .rodata:0x00000234; // type:object size:0x4 scope:local align:4 +@105530 = .rodata:0x00000238; // type:object size:0x4 scope:local align:4 +@105531 = .rodata:0x0000023C; // type:object size:0x4 scope:local align:4 +@105532 = .rodata:0x00000240; // type:object size:0x4 scope:local align:4 +@105533 = .rodata:0x00000244; // type:object size:0x4 scope:local align:4 +@105534 = .rodata:0x00000248; // type:object size:0x4 scope:local align:4 data:string +@105535 = .rodata:0x0000024C; // type:object size:0x4 scope:local align:4 +@105536 = .rodata:0x00000250; // type:object size:0x4 scope:local align:4 data:string +@105537 = .rodata:0x00000254; // type:object size:0x4 scope:local align:4 data:string +@105538 = .rodata:0x00000258; // type:object size:0x4 scope:local align:4 +@105539 = .rodata:0x0000025C; // type:object size:0x4 scope:local align:4 +@105540 = .rodata:0x00000260; // type:object size:0x4 scope:local align:4 +@105541 = .rodata:0x00000264; // type:object size:0x4 scope:local align:4 +@105542 = .rodata:0x00000268; // type:object size:0x4 scope:local align:4 +@105543 = .rodata:0x0000026C; // type:object size:0x4 scope:local align:4 +@105544 = .rodata:0x00000270; // type:object size:0x4 scope:local align:4 +@105545 = .rodata:0x00000274; // type:object size:0x4 scope:local align:4 +@105546 = .rodata:0x00000278; // type:object size:0x4 scope:local align:4 +@105547 = .rodata:0x0000027C; // type:object size:0x4 scope:local align:4 +@105548 = .rodata:0x00000280; // type:object size:0x4 scope:local align:4 +@105549 = .rodata:0x00000284; // type:object size:0x4 scope:local align:4 +@105550 = .rodata:0x00000288; // type:object size:0x4 scope:local align:4 +@105551 = .rodata:0x0000028C; // type:object size:0x4 scope:local align:4 +@105648 = .rodata:0x00000290; // type:object size:0x4 scope:local align:4 +@105649 = .rodata:0x00000294; // type:object size:0x4 scope:local align:4 +@105650 = .rodata:0x00000298; // type:object size:0x4 scope:local align:4 +@105651 = .rodata:0x0000029C; // type:object size:0x4 scope:local align:4 +@105652 = .rodata:0x000002A0; // type:object size:0x4 scope:local align:4 +@105653 = .rodata:0x000002A4; // type:object size:0x4 scope:local align:4 +@105654 = .rodata:0x000002A8; // type:object size:0x4 scope:local align:4 +@105655 = .rodata:0x000002AC; // type:object size:0x4 scope:local align:4 +@105656 = .rodata:0x000002B0; // type:object size:0x4 scope:local align:4 +@105657 = .rodata:0x000002B4; // type:object size:0x4 scope:local align:4 +@105658 = .rodata:0x000002B8; // type:object size:0x4 scope:local align:4 +@105879 = .rodata:0x000002BC; // type:object size:0x4 scope:local align:4 +@105880 = .rodata:0x000002C0; // type:object size:0x4 scope:local align:4 data:string +...data.0 = .data:0x00000000; // type:label scope:local align:4 +fireno$95025 = .data:0x00000006; // type:object size:0x8 scope:global align:2 +fireno$95037 = .data:0x0000000E; // type:object size:0x4 scope:global align:2 +@104496 = .data:0x00000014; // type:object size:0xA8 scope:local align:4 +g_e_i$95250 = .data:0x000000BC; // type:object size:0x26 scope:global align:4 +g_d_i$95257 = .data:0x000000E2; // type:object size:0x18 scope:global align:2 +g_k_ji$95258 = .data:0x000000FC; // type:object size:0x30 scope:global align:4 +g_y_i$95271 = .data:0x0000012C; // type:object size:0xA scope:global align:4 +g_y_ji$95272 = .data:0x00000138; // type:object size:0x14 scope:global align:4 +g_c_i$95283 = .data:0x0000014C; // type:object size:0x26 scope:global align:4 +g_c_ji$95284 = .data:0x00000174; // type:object size:0x4C scope:global align:4 +lf_pos$95359 = .data:0x000001C0; // type:object size:0x18 scope:global align:4 data:byte +g_b_i$95590 = .data:0x000001D8; // type:object size:0xE scope:global align:4 +g_e_i$95631 = .data:0x000001E6; // type:object size:0xA scope:global align:2 +@105553 = .data:0x000001F0; // type:object size:0xDC scope:local align:4 +takino$95946 = .data:0x000002CC; // type:object size:0x8 scope:global align:4 +takino2$95947 = .data:0x000002D4; // type:object size:0x8 scope:global align:4 +cc_sph_src$96114 = .data:0x000002DC; // type:object size:0x40 scope:global align:4 +core_sph_src$96115 = .data:0x0000031C; // type:object size:0x40 scope:global align:4 +core_co_sph_src$96116 = .data:0x0000035C; // type:object size:0x40 scope:global align:4 +body_co_sph_src$96117 = .data:0x0000039C; // type:object size:0x40 scope:global align:4 +mizu_sph_src$96118 = .data:0x000003DC; // type:object size:0x40 scope:global align:4 +l_daB_BQ_Method = .data:0x0000041C; // type:object size:0x20 scope:global align:4 +g_profile_B_BQ = .data:0x0000043C; // type:object size:0x30 scope:global align:4 +__vt__12daB_BQ_HIO_c = .data:0x0000046C; // type:object size:0xC scope:global align:4 +lbl_139_data_478 = .data:0x00000478; // type:object size:0xD data:string +@96197 = .data:0x00000488; // type:object size:0xC scope:local align:4 +__RTTI__12daB_BQ_HIO_c = .data:0x00000494; // type:object size:0x8 scope:global align:4 +lbl_139_data_49C = .data:0x0000049C; // type:object size:0x7C +__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global align:4 +lbl_139_bss_8 = .bss:0x00000008; // type:object size:0x1 data:byte +@94580 = .bss:0x0000000C; // type:object size:0xC scope:local align:4 +l_HIO = .bss:0x00000018; // type:object size:0x10 scope:global align:4 data:byte +lbl_139_bss_28 = .bss:0x00000028; // type:object size:0x1 data:byte diff --git a/config/RZDE01_00/rels/d_a_b_gm/splits.txt b/config/RZDE01_00/rels/d_a_b_gm/splits.txt new file mode 100644 index 0000000000..4979a628fa --- /dev/null +++ b/config/RZDE01_00/rels/d_a_b_gm/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +REL/global_destructor_chain.c: + .text start:0x0000005C end:0x000000CC + .dtors start:0x00000000 end:0x00000004 rename:.dtors$10 + .bss start:0x00000000 end:0x00000008 + +d/actor/d_a_b_gm.cpp: + .text start:0x000000CC end:0x00005A8C + .ctors start:0x00000000 end:0x00000004 + .rodata start:0x00000000 end:0x000001E4 + .data start:0x00000000 end:0x000005B0 + .bss start:0x00000008 end:0x00000128 diff --git a/config/RZDE01_00/rels/d_a_b_gm/symbols.txt b/config/RZDE01_00/rels/d_a_b_gm/symbols.txt new file mode 100644 index 0000000000..2ef73c8a06 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_b_gm/symbols.txt @@ -0,0 +1,196 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 +__register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 +__destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 +__ct__12daB_GM_HIO_cFv = .text:0x000000CC; // type:function size:0xB0 scope:global align:4 +anm_init__FP10b_gm_classifUcf = .text:0x0000017C; // type:function size:0xAC scope:global align:4 +nodeCallBack__FP8J3DJointi = .text:0x00000228; // type:function size:0x2D8 scope:global align:4 +daB_GM_Draw__FP10b_gm_class = .text:0x00000500; // type:function size:0x274 scope:global align:4 +s_ko_del__FPvPv = .text:0x00000774; // type:function size:0x58 scope:global align:4 +s_ko_sub__FPvPv = .text:0x000007CC; // type:function size:0x54 scope:global align:4 +s_ko2_move__FPvPv = .text:0x00000820; // type:function size:0x68 scope:global align:4 +s_ko2_get__FPvPv = .text:0x00000888; // type:function size:0x58 scope:global align:4 +s_ko_move__FPvPv = .text:0x000008E0; // type:function size:0x78 scope:global align:4 +demo_camera__FP10b_gm_class = .text:0x00000958; // type:function size:0x1A64 scope:global align:4 +daB_GM_Execute__FP10b_gm_class = .text:0x000023BC; // type:function size:0x2C20 scope:global align:4 +daB_GM_IsDelete__FP10b_gm_class = .text:0x00004FDC; // type:function size:0x8 scope:global align:4 +daB_GM_Delete__FP10b_gm_class = .text:0x00004FE4; // type:function size:0x70 scope:global align:4 +useHeapInit__FP10fopAc_ac_c = .text:0x00005054; // type:function size:0x3F4 scope:global align:4 +daB_GM_Create__FP10fopAc_ac_c = .text:0x00005448; // type:function size:0x428 scope:global align:4 +__dt__12daB_GM_HIO_cFv = .text:0x00005870; // type:function size:0x40 scope:global align:4 +__sinit_\d_a_b_gm_cpp = .text:0x000058B0; // type:function size:0x184 scope:global align:4 +entry__13mDoExt_btkAnmFP12J3DModelData = .text:0x00005A34; // type:function size:0xC scope:global align:4 +setCurrentPos__16obj_ystone_classF4cXyz = .text:0x00005A40; // type:function size:0x8 scope:global align:4 +__ct__9b_gm_footFv = .text:0x00005A48; // type:function size:0x4 scope:global align:4 +__dt__9b_gm_footFv = .text:0x00005A4C; // type:function size:0x40 scope:global align:4 +_ctors = .ctors:0x00000000; // type:label scope:global +__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global align:4 +_dtors = .dtors:0x00000000; // type:label scope:global +...rodata.0 = .rodata:0x00000000; // type:label scope:local align:4 +@100309 = .rodata:0x00000000; // type:object size:0x4 scope:local align:4 +@100310 = .rodata:0x00000004; // type:object size:0x4 scope:local align:4 +@100311 = .rodata:0x00000008; // type:object size:0x4 scope:local align:4 +@100312 = .rodata:0x0000000C; // type:object size:0x4 scope:local align:4 data:float +@100313 = .rodata:0x00000010; // type:object size:0x4 scope:local align:4 +@100314 = .rodata:0x00000014; // type:object size:0x4 scope:local align:4 +@100315 = .rodata:0x00000018; // type:object size:0x4 scope:local align:4 data:float +@100324 = .rodata:0x0000001C; // type:object size:0x4 scope:local align:4 data:float +@100426 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 +@100427 = .rodata:0x00000024; // type:object size:0x4 scope:local align:4 +@100428 = .rodata:0x00000028; // type:object size:0x4 scope:local align:4 +@100806 = .rodata:0x0000002C; // type:object size:0x4 scope:local align:4 +@100807 = .rodata:0x00000030; // type:object size:0x4 scope:local align:4 +@100808 = .rodata:0x00000034; // type:object size:0x4 scope:local align:4 +@100809 = .rodata:0x00000038; // type:object size:0x4 scope:local align:4 +@100810 = .rodata:0x0000003C; // type:object size:0x4 scope:local align:4 +@100811 = .rodata:0x00000040; // type:object size:0x4 scope:local align:4 +@100812 = .rodata:0x00000044; // type:object size:0x4 scope:local align:4 +@100813 = .rodata:0x00000048; // type:object size:0x4 scope:local align:4 +@100814 = .rodata:0x0000004C; // type:object size:0x4 scope:local align:4 +@100815 = .rodata:0x00000050; // type:object size:0x4 scope:local align:4 +@100816 = .rodata:0x00000054; // type:object size:0x4 scope:local align:4 +@100817 = .rodata:0x00000058; // type:object size:0x4 scope:local align:4 +@100818 = .rodata:0x0000005C; // type:object size:0x4 scope:local align:4 +@100819 = .rodata:0x00000060; // type:object size:0x4 scope:local align:4 +@100820 = .rodata:0x00000064; // type:object size:0x4 scope:local align:4 +@100821 = .rodata:0x00000068; // type:object size:0x4 scope:local align:4 +@100822 = .rodata:0x0000006C; // type:object size:0x4 scope:local align:4 +@100823 = .rodata:0x00000070; // type:object size:0x4 scope:local align:4 +@100824 = .rodata:0x00000074; // type:object size:0x4 scope:local align:4 +@100825 = .rodata:0x00000078; // type:object size:0x4 scope:local align:4 +@100826 = .rodata:0x0000007C; // type:object size:0x4 scope:local align:4 +@100827 = .rodata:0x00000080; // type:object size:0x4 scope:local align:4 +@100828 = .rodata:0x00000084; // type:object size:0x4 scope:local align:4 +@100829 = .rodata:0x00000088; // type:object size:0x4 scope:local align:4 +@100830 = .rodata:0x0000008C; // type:object size:0x4 scope:local align:4 +@100831 = .rodata:0x00000090; // type:object size:0x4 scope:local align:4 +@100832 = .rodata:0x00000094; // type:object size:0x4 scope:local align:4 +@100833 = .rodata:0x00000098; // type:object size:0x4 scope:local align:4 +@100834 = .rodata:0x0000009C; // type:object size:0x4 scope:local align:4 +@100835 = .rodata:0x000000A0; // type:object size:0x4 scope:local align:4 +@100836 = .rodata:0x000000A4; // type:object size:0x4 scope:local align:4 +@100837 = .rodata:0x000000A8; // type:object size:0x4 scope:local align:4 +@100838 = .rodata:0x000000AC; // type:object size:0x4 scope:local align:4 +@100839 = .rodata:0x000000B0; // type:object size:0x4 scope:local align:4 +@100840 = .rodata:0x000000B4; // type:object size:0x4 scope:local align:4 +@100841 = .rodata:0x000000B8; // type:object size:0x4 scope:local align:4 +@100842 = .rodata:0x000000BC; // type:object size:0x4 scope:local align:4 +@100843 = .rodata:0x000000C0; // type:object size:0x4 scope:local align:4 +@100844 = .rodata:0x000000C4; // type:object size:0x4 scope:local align:4 +@100845 = .rodata:0x000000C8; // type:object size:0x4 scope:local align:4 +@100846 = .rodata:0x000000CC; // type:object size:0x4 scope:local align:4 +@100847 = .rodata:0x000000D0; // type:object size:0x4 scope:local align:4 +@100848 = .rodata:0x000000D4; // type:object size:0x4 scope:local align:4 +@100849 = .rodata:0x000000D8; // type:object size:0x4 scope:local align:4 +@100850 = .rodata:0x000000DC; // type:object size:0x4 scope:local align:4 +@100851 = .rodata:0x000000E0; // type:object size:0x4 scope:local align:4 +@100852 = .rodata:0x000000E4; // type:object size:0x4 scope:local align:4 +@100853 = .rodata:0x000000E8; // type:object size:0x4 scope:local align:4 +@100854 = .rodata:0x000000EC; // type:object size:0x4 scope:local align:4 +@100855 = .rodata:0x000000F0; // type:object size:0x4 scope:local align:4 +@100856 = .rodata:0x000000F4; // type:object size:0x4 scope:local align:4 +@100857 = .rodata:0x000000F8; // type:object size:0x4 scope:local align:4 +@100858 = .rodata:0x000000FC; // type:object size:0x4 scope:local align:4 +@100859 = .rodata:0x00000100; // type:object size:0x4 scope:local align:4 +@100860 = .rodata:0x00000104; // type:object size:0x4 scope:local align:4 +@100861 = .rodata:0x00000108; // type:object size:0x4 scope:local align:4 +@100862 = .rodata:0x0000010C; // type:object size:0x4 scope:local align:4 +@100863 = .rodata:0x00000110; // type:object size:0x4 scope:local align:4 +@100864 = .rodata:0x00000114; // type:object size:0x4 scope:local align:4 +@100865 = .rodata:0x00000118; // type:object size:0x4 scope:local align:4 +@100866 = .rodata:0x0000011C; // type:object size:0x4 scope:local align:4 +@100867 = .rodata:0x00000120; // type:object size:0x4 scope:local align:4 +@100868 = .rodata:0x00000124; // type:object size:0x4 scope:local align:4 data:string +@100869 = .rodata:0x00000128; // type:object size:0x4 scope:local align:4 +@100870 = .rodata:0x0000012C; // type:object size:0x4 scope:local align:4 +@100875 = .rodata:0x00000130; // type:object size:0x8 scope:local align:4 +@101381 = .rodata:0x00000138; // type:object size:0x4 scope:local align:4 +@101382 = .rodata:0x0000013C; // type:object size:0x4 scope:local align:4 +@101383 = .rodata:0x00000140; // type:object size:0x4 scope:local align:4 +@101384 = .rodata:0x00000144; // type:object size:0x4 scope:local align:4 +@101385 = .rodata:0x00000148; // type:object size:0x4 scope:local align:4 +@101386 = .rodata:0x0000014C; // type:object size:0x4 scope:local align:4 +@101387 = .rodata:0x00000150; // type:object size:0x4 scope:local align:4 +@101388 = .rodata:0x00000154; // type:object size:0x4 scope:local align:4 +@101389 = .rodata:0x00000158; // type:object size:0x4 scope:local align:4 +@101390 = .rodata:0x0000015C; // type:object size:0x4 scope:local align:4 data:string +@101391 = .rodata:0x00000160; // type:object size:0x4 scope:local align:4 +@101392 = .rodata:0x00000164; // type:object size:0x4 scope:local align:4 +@101393 = .rodata:0x00000168; // type:object size:0x4 scope:local align:4 +@101394 = .rodata:0x0000016C; // type:object size:0x4 scope:local align:4 +@101395 = .rodata:0x00000170; // type:object size:0x4 scope:local align:4 +@101396 = .rodata:0x00000174; // type:object size:0x4 scope:local align:4 +@101397 = .rodata:0x00000178; // type:object size:0x4 scope:local align:4 +@101398 = .rodata:0x0000017C; // type:object size:0x4 scope:local align:4 +@101399 = .rodata:0x00000180; // type:object size:0x4 scope:local align:4 +@101400 = .rodata:0x00000184; // type:object size:0x4 scope:local align:4 +@101401 = .rodata:0x00000188; // type:object size:0x4 scope:local align:4 +@101402 = .rodata:0x0000018C; // type:object size:0x4 scope:local align:4 +@101403 = .rodata:0x00000190; // type:object size:0x4 scope:local align:4 +@101404 = .rodata:0x00000194; // type:object size:0x4 scope:local align:4 +@101405 = .rodata:0x00000198; // type:object size:0x4 scope:local align:4 +@101406 = .rodata:0x0000019C; // type:object size:0x4 scope:local align:4 +@101407 = .rodata:0x000001A0; // type:object size:0x4 scope:local align:4 +@101408 = .rodata:0x000001A4; // type:object size:0x4 scope:local align:4 +@101409 = .rodata:0x000001A8; // type:object size:0x4 scope:local align:4 +@101410 = .rodata:0x000001AC; // type:object size:0x4 scope:local align:4 +@101411 = .rodata:0x000001B0; // type:object size:0x4 scope:local align:4 +@101412 = .rodata:0x000001B4; // type:object size:0x4 scope:local align:4 +@101413 = .rodata:0x000001B8; // type:object size:0x4 scope:local align:4 +@101414 = .rodata:0x000001BC; // type:object size:0x4 scope:local align:4 +@101415 = .rodata:0x000001C0; // type:object size:0x4 scope:local align:4 +@101416 = .rodata:0x000001C4; // type:object size:0x4 scope:local align:4 +@101578 = .rodata:0x000001C8; // type:object size:0x4 scope:local align:4 data:float +@101669 = .rodata:0x000001CC; // type:object size:0x4 scope:local align:4 +@101670 = .rodata:0x000001D0; // type:object size:0x4 scope:local align:4 +@101753 = .rodata:0x000001D4; // type:object size:0x4 scope:local align:4 +@101754 = .rodata:0x000001D8; // type:object size:0x4 scope:local align:4 +@101755 = .rodata:0x000001DC; // type:object size:0x4 scope:local align:4 +@101756 = .rodata:0x000001E0; // type:object size:0x4 scope:local align:4 +...data.0 = .data:0x00000000; // type:label scope:local align:4 +name$93475 = .data:0x00000006; // type:object size:0x6 scope:global align:2 +name$93500 = .data:0x0000000C; // type:object size:0x8 scope:global align:4 +top_j = .data:0x00000014; // type:object size:0x28 scope:global align:4 +@100872 = .data:0x0000003C; // type:object size:0xD0 scope:local align:4 +name$94559 = .data:0x0000010C; // type:object size:0x8 scope:global align:4 +@101421 = .data:0x00000114; // type:object size:0x58 scope:local align:4 +@101420 = .data:0x0000016C; // type:object size:0x2C scope:local align:4 +@101418 = .data:0x00000198; // type:object size:0x30 scope:local align:4 +body_sph_src$94831 = .data:0x000001C8; // type:object size:0x40 scope:global align:4 +core_sph_src$94832 = .data:0x00000208; // type:object size:0x40 scope:global align:4 +hand_sph_src$94833 = .data:0x00000248; // type:object size:0x40 scope:global align:4 +foot_sph_src$94834 = .data:0x00000288; // type:object size:0x40 scope:global align:4 +beam_sph_src$94835 = .data:0x000002C8; // type:object size:0x40 scope:global align:4 +l_daB_GM_Method = .data:0x00000308; // type:object size:0x20 scope:global align:4 +g_profile_B_GM = .data:0x00000328; // type:object size:0x30 scope:global align:4 +__vt__12daB_GM_HIO_c = .data:0x00000358; // type:object size:0xC scope:global align:4 +lbl_144_data_364 = .data:0x00000364; // type:object size:0xD data:string +@94897 = .data:0x00000374; // type:object size:0xC scope:local align:4 +__RTTI__12daB_GM_HIO_c = .data:0x00000380; // type:object size:0x8 scope:global align:4 +lbl_144_data_388 = .data:0x00000388; // type:object size:0x34 +@94960 = .data:0x000003BC; // type:object size:0x3C scope:local align:4 +lbl_144_data_3F8 = .data:0x000003F8; // type:object size:0x14 +@94962 = .data:0x0000040C; // type:object size:0x34 scope:local align:4 +lbl_144_data_440 = .data:0x00000440; // type:object size:0x14 +@95020 = .data:0x00000454; // type:object size:0x24 scope:local align:4 +lbl_144_data_478 = .data:0x00000478; // type:object size:0x18 +@95022 = .data:0x00000490; // type:object size:0xC scope:local align:4 +lbl_144_data_49C = .data:0x0000049C; // type:object size:0x1C +@95024 = .data:0x000004B8; // type:object size:0xC scope:local align:4 +lbl_144_data_4C4 = .data:0x000004C4; // type:object size:0xEC +__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global align:4 +...bss.0 = .bss:0x00000008; // type:label scope:local align:4 data:byte +@93326 = .bss:0x0000000C; // type:object size:0xC scope:local align:4 +l_HIO = .bss:0x00000018; // type:object size:0x4C scope:global align:4 data:byte +ko_ct = .bss:0x00000064; // type:object size:0x4 scope:global align:4 data:4byte +@93627 = .bss:0x00000068; // type:object size:0xC scope:local align:4 +@93628 = .bss:0x00000074; // type:object size:0xC scope:local align:4 +@93629 = .bss:0x00000080; // type:object size:0xC scope:local align:4 +@93630 = .bss:0x0000008C; // type:object size:0xC scope:local align:4 +target_pos = .bss:0x00000098; // type:object size:0x30 scope:global align:4 +@93907 = .bss:0x000000C8; // type:object size:0xC scope:local align:4 +@93908 = .bss:0x000000D4; // type:object size:0xC scope:local align:4 +@93909 = .bss:0x000000E0; // type:object size:0xC scope:local align:4 +@93910 = .bss:0x000000EC; // type:object size:0xC scope:local align:4 +top_pos_data = .bss:0x000000F8; // type:object size:0x30 scope:global align:4 diff --git a/config/RZDE01_00/rels/d_a_b_ob/splits.txt b/config/RZDE01_00/rels/d_a_b_ob/splits.txt new file mode 100644 index 0000000000..876a248537 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_b_ob/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +REL/global_destructor_chain.c: + .text start:0x0000005C end:0x000000CC + .dtors start:0x00000000 end:0x00000004 rename:.dtors$10 + .bss start:0x00000000 end:0x00000008 + +d/actor/d_a_b_ob.cpp: + .text start:0x000000CC end:0x000099F0 + .ctors start:0x00000000 end:0x00000004 + .rodata start:0x00000000 end:0x000002F8 + .data start:0x00000000 end:0x000005D0 + .bss start:0x00000008 end:0x000000E8 diff --git a/config/RZDE01_00/rels/d_a_b_ob/symbols.txt b/config/RZDE01_00/rels/d_a_b_ob/symbols.txt new file mode 100644 index 0000000000..a657e2e19a --- /dev/null +++ b/config/RZDE01_00/rels/d_a_b_ob/symbols.txt @@ -0,0 +1,307 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 +__register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 +__destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 +__ct__12daB_OB_HIO_cFv = .text:0x000000CC; // type:function size:0x50 scope:global align:4 +anm_init__FP10b_ob_classifUcf = .text:0x0000011C; // type:function size:0xB0 scope:global align:4 +HeadCallBack__FP8J3DJointi = .text:0x000001CC; // type:function size:0x110 scope:global align:4 +TailCallBack__FP8J3DJointi = .text:0x000002DC; // type:function size:0x1A0 scope:global align:4 +FinACallBack__FP8J3DJointi = .text:0x0000047C; // type:function size:0x14C scope:global align:4 +FinBCallBack__FP8J3DJointi = .text:0x000005C8; // type:function size:0xCC scope:global align:4 +FinCCallBack__FP8J3DJointi = .text:0x00000694; // type:function size:0xD8 scope:global align:4 +sui_nodeCallBack__FP8J3DJointi = .text:0x0000076C; // type:function size:0x10C scope:global align:4 +dark__FP12J3DModelDatas = .text:0x00000878; // type:function size:0xB8 scope:global align:4 +daB_OB_Draw__FP10b_ob_class = .text:0x00000930; // type:function size:0x478 scope:global align:4 +s_bf_sub__FPvPv = .text:0x00000DA8; // type:function size:0x54 scope:global align:4 +s_bfdel_sub__FPvPv = .text:0x00000DFC; // type:function size:0x4C scope:global align:4 +s_kaisoudel_sub__FPvPv = .text:0x00000E48; // type:function size:0x4C scope:global align:4 +core_action__FP10b_ob_class = .text:0x00000E94; // type:function size:0x140C scope:global align:4 +core_damage_check__FP10b_ob_class = .text:0x000022A0; // type:function size:0x208 scope:global align:4 +fish_damage_check__FP10b_ob_class = .text:0x000024A8; // type:function size:0x2EC scope:global align:4 +pl_check__FP10b_ob_classfs = .text:0x00002794; // type:function size:0xC4 scope:global align:4 +fish_move__FP10b_ob_class = .text:0x00002858; // type:function size:0x2514 scope:global align:4 +cam_3d_morf__FP10b_ob_classf = .text:0x00004D6C; // type:function size:0xE4 scope:global align:4 +s_hasidel_sub__FPvPv = .text:0x00004E50; // type:function size:0x4C scope:global align:4 +demo_camera__FP10b_ob_class = .text:0x00004E9C; // type:function size:0x2F0C scope:global align:4 +daB_OB_Execute__FP10b_ob_class = .text:0x00007DA8; // type:function size:0xA7C scope:global align:4 +daB_OB_IsDelete__FP10b_ob_class = .text:0x00008824; // type:function size:0x8 scope:global align:4 +daB_OB_Delete__FP10b_ob_class = .text:0x0000882C; // type:function size:0x7C scope:global align:4 +useHeapInit__FP10fopAc_ac_c = .text:0x000088A8; // type:function size:0x78C scope:global align:4 +daB_OB_Create__FP10fopAc_ac_c = .text:0x00009034; // type:function size:0x594 scope:global align:4 +__dt__12daB_OB_HIO_cFv = .text:0x000095C8; // type:function size:0x40 scope:global align:4 +__sinit_\d_a_b_ob_cpp = .text:0x00009608; // type:function size:0x48 scope:global align:4 +getBaseTRMtx__8J3DModelFv = .text:0x00009650; // type:function size:0x8 scope:global align:4 +setBaseTRMtx__8J3DModelFPA4_f = .text:0x00009658; // type:label +getModel__14mDoExt_McaMorfFv = .text:0x00009668; // type:function size:0x8 scope:global align:4 +getModel__16mDoExt_McaMorfSOFv = .text:0x00009670; // type:function size:0x8 scope:global align:4 +getPlaySpeed__13mDoExt_morf_cFv = .text:0x00009678; // type:function size:0x8 scope:global align:4 +fopAcM_searchPlayerDistance__FP16fopAc_ac_c = .text:0x00009680; // type:function size:0x10 scope:global align:4 +fopAcM_SearchByID__FUi = .text:0x00009690; // type:function size:0x30 scope:global align:4 +fopAcM_GetRoomNo__FP16fopAc_ac_c = .text:0x000096C0; // type:function size:0xC scope:global align:4 +fopAcM_searchPlayerAngleY__FP16fopAc_ac_c = .text:0x000096CC; // type:function size:0x10 scope:global align:4 +fopAcM_searchPlayerAngleX__FP16fopAc_ac_c = .text:0x000096DC; // type:function size:0x10 scope:global align:4 +fopAcM_searchPlayerDistanceXZ__FP16fopAc_ac_c = .text:0x000096EC; // type:function size:0x10 scope:global align:4 +dComIfGp_getPlayer__Fi = .text:0x000096FC; // type:function size:0x18 scope:global align:4 +dComIfGp_particle_set__FUlUsP10cXyz = .text:0x00009714; // type:function size:0x78 scope:global align:4 +dComIfGp_event_runCheck__Fv = .text:0x0000978C; // type:function size:0x18 scope:global align:4 +dComIfGp_particle_getEmitter__FUl = .text:0x000097A4; // type:function size:0x18 scope:global align:4 +dComIfG_Ccsp__Fv = .text:0x000097BC; // type:function size:0x10 scope:global align:4 +get__14mDoMtx_stack_cFv = .text:0x000097CC; // type:function size:0xC scope:global align:4 +YrotM__14mDoMtx_stack_cFs = .text:0x000097D8; // type:function size:0x10 scope:global align:4 +XrotM__14mDoMtx_stack_cFs = .text:0x000097E8; // type:function size:0x10 scope:global align:4 +ZrotM__14mDoMtx_stack_cFs = .text:0x000097F8; // type:function size:0x10 scope:global align:4 +cM_ssin__Fs = .text:0x00009808; // type:function size:0x14 scope:global align:4 +changeOriginalDemo__9daPy_py_cFv = .text:0x0000981C; // type:function size:0x14 scope:global align:4 +OffCoSetBit__14cCcD_ObjHitInfFv = .text:0x00009830; // type:function size:0x10 scope:global align:4 +OnCoSetBit__14cCcD_ObjHitInfFv = .text:0x00009840; // type:function size:0x10 scope:global align:4 +OffAtSetBit__14cCcD_ObjHitInfFv = .text:0x00009850; // type:function size:0x10 scope:global align:4 +setCurrentPos__16obj_ystone_classF4cXyz = .text:0x00009860; // type:function size:0x8 scope:global align:4 +setGlobalRTMatrix__14JPABaseEmitterFPA4_Cf = .text:0x00009868; // type:function size:0x14 scope:global align:4 +__ct__9ob_part_sFv = .text:0x0000987C; // type:function size:0x34 scope:global align:4 +__dt__9ob_part_sFv = .text:0x000098B0; // type:function size:0x5C scope:global align:4 +__ct__7ob_ke_sFv = .text:0x0000990C; // type:function size:0x68 scope:global align:4 +__dt__7ob_ke_sFv = .text:0x00009974; // type:function size:0x7C scope:global align:4 +_ctors = .ctors:0x00000000; // type:label scope:global +__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global align:4 +_dtors = .dtors:0x00000000; // type:label scope:global +...rodata.0 = .rodata:0x00000000; // type:label scope:local align:4 +@105470 = .rodata:0x00000000; // type:object size:0x4 scope:local align:4 +@105471 = .rodata:0x00000004; // type:object size:0x4 scope:local align:4 +@105472 = .rodata:0x00000008; // type:object size:0x4 scope:local align:4 +@105481 = .rodata:0x0000000C; // type:object size:0x4 scope:local align:4 data:float +@105482 = .rodata:0x00000010; // type:object size:0x4 scope:local align:4 data:float +@105624 = .rodata:0x00000018; // type:object size:0x8 scope:local align:4 data:double +@105876 = .rodata:0x00000020; // type:object size:0x4 scope:local align:4 +@105877 = .rodata:0x00000024; // type:object size:0x4 scope:local align:4 +@105878 = .rodata:0x00000028; // type:object size:0x4 scope:local align:4 +@106179 = .rodata:0x0000002C; // type:object size:0x4 scope:local align:4 +@106180 = .rodata:0x00000030; // type:object size:0x4 scope:local align:4 +@106181 = .rodata:0x00000034; // type:object size:0x4 scope:local align:4 +@106182 = .rodata:0x00000038; // type:object size:0x4 scope:local align:4 +@106183 = .rodata:0x0000003C; // type:object size:0x4 scope:local align:4 +@106184 = .rodata:0x00000040; // type:object size:0x4 scope:local align:4 +@106185 = .rodata:0x00000044; // type:object size:0x4 scope:local align:4 +@106186 = .rodata:0x00000048; // type:object size:0x4 scope:local align:4 +@106187 = .rodata:0x0000004C; // type:object size:0x4 scope:local align:4 +@106188 = .rodata:0x00000050; // type:object size:0x4 scope:local align:4 +@106189 = .rodata:0x00000054; // type:object size:0x4 scope:local align:4 +@106190 = .rodata:0x00000058; // type:object size:0x4 scope:local align:4 +@106191 = .rodata:0x0000005C; // type:object size:0x4 scope:local align:4 +@106192 = .rodata:0x00000060; // type:object size:0x4 scope:local align:4 +@106193 = .rodata:0x00000064; // type:object size:0x4 scope:local align:4 +@106194 = .rodata:0x00000068; // type:object size:0x4 scope:local align:4 +@106195 = .rodata:0x0000006C; // type:object size:0x4 scope:local align:4 +@106196 = .rodata:0x00000070; // type:object size:0x4 scope:local align:4 +@106197 = .rodata:0x00000074; // type:object size:0x4 scope:local align:4 +@106198 = .rodata:0x00000078; // type:object size:0x4 scope:local align:4 +@106230 = .rodata:0x0000007C; // type:object size:0x4 scope:local align:4 +@106661 = .rodata:0x00000080; // type:object size:0x4 scope:local align:4 +@106662 = .rodata:0x00000084; // type:object size:0x4 scope:local align:4 +@106663 = .rodata:0x00000088; // type:object size:0x4 scope:local align:4 +@106664 = .rodata:0x0000008C; // type:object size:0x4 scope:local align:4 +@106665 = .rodata:0x00000090; // type:object size:0x4 scope:local align:4 +@106666 = .rodata:0x00000094; // type:object size:0x4 scope:local align:4 +@106667 = .rodata:0x00000098; // type:object size:0x4 scope:local align:4 +@106668 = .rodata:0x0000009C; // type:object size:0x4 scope:local align:4 data:string +@106669 = .rodata:0x000000A0; // type:object size:0x4 scope:local align:4 +@106670 = .rodata:0x000000A4; // type:object size:0x4 scope:local align:4 +@106671 = .rodata:0x000000A8; // type:object size:0x4 scope:local align:4 +@106672 = .rodata:0x000000AC; // type:object size:0x4 scope:local align:4 +@106673 = .rodata:0x000000B0; // type:object size:0x4 scope:local align:4 +@106674 = .rodata:0x000000B4; // type:object size:0x4 scope:local align:4 +@106675 = .rodata:0x000000B8; // type:object size:0x4 scope:local align:4 +@106676 = .rodata:0x000000BC; // type:object size:0x4 scope:local align:4 +@106677 = .rodata:0x000000C0; // type:object size:0x4 scope:local align:4 +@106678 = .rodata:0x000000C4; // type:object size:0x4 scope:local align:4 +@106679 = .rodata:0x000000C8; // type:object size:0x4 scope:local align:4 +@106680 = .rodata:0x000000CC; // type:object size:0x4 scope:local align:4 +@106681 = .rodata:0x000000D0; // type:object size:0x4 scope:local align:4 +@106682 = .rodata:0x000000D4; // type:object size:0x4 scope:local align:4 +@106683 = .rodata:0x000000D8; // type:object size:0x4 scope:local align:4 +@106684 = .rodata:0x000000DC; // type:object size:0x4 scope:local align:4 +@106685 = .rodata:0x000000E0; // type:object size:0x4 scope:local align:4 +@106686 = .rodata:0x000000E4; // type:object size:0x4 scope:local align:4 +@106687 = .rodata:0x000000E8; // type:object size:0x4 scope:local align:4 +@106688 = .rodata:0x000000EC; // type:object size:0x4 scope:local align:4 +@106689 = .rodata:0x000000F0; // type:object size:0x4 scope:local align:4 +@106690 = .rodata:0x000000F4; // type:object size:0x4 scope:local align:4 +@106691 = .rodata:0x000000F8; // type:object size:0x4 scope:local align:4 +@106692 = .rodata:0x000000FC; // type:object size:0x4 scope:local align:4 +@106693 = .rodata:0x00000100; // type:object size:0x4 scope:local align:4 +@106694 = .rodata:0x00000104; // type:object size:0x4 scope:local align:4 +@106695 = .rodata:0x00000108; // type:object size:0x4 scope:local align:4 +@106696 = .rodata:0x0000010C; // type:object size:0x4 scope:local align:4 +@106697 = .rodata:0x00000110; // type:object size:0x4 scope:local align:4 +@106698 = .rodata:0x00000114; // type:object size:0x4 scope:local align:4 +@106699 = .rodata:0x00000118; // type:object size:0x4 scope:local align:4 +@106700 = .rodata:0x0000011C; // type:object size:0x4 scope:local align:4 +@106701 = .rodata:0x00000120; // type:object size:0x4 scope:local align:4 +@106702 = .rodata:0x00000124; // type:object size:0x4 scope:local align:4 +@106703 = .rodata:0x00000128; // type:object size:0x4 scope:local align:4 +@106704 = .rodata:0x0000012C; // type:object size:0x4 scope:local align:4 +@106705 = .rodata:0x00000130; // type:object size:0x4 scope:local align:4 +@106706 = .rodata:0x00000134; // type:object size:0x4 scope:local align:4 +@106707 = .rodata:0x00000138; // type:object size:0x4 scope:local align:4 +@106708 = .rodata:0x0000013C; // type:object size:0x4 scope:local align:4 +@106709 = .rodata:0x00000140; // type:object size:0x4 scope:local align:4 +@106710 = .rodata:0x00000144; // type:object size:0x4 scope:local align:4 +@106711 = .rodata:0x00000148; // type:object size:0x4 scope:local align:4 +@106712 = .rodata:0x0000014C; // type:object size:0x4 scope:local align:4 +@106713 = .rodata:0x00000150; // type:object size:0x4 scope:local align:4 +@106714 = .rodata:0x00000154; // type:object size:0x4 scope:local align:4 +@106715 = .rodata:0x00000158; // type:object size:0x4 scope:local align:4 +@106716 = .rodata:0x0000015C; // type:object size:0x4 scope:local align:4 +@107367 = .rodata:0x00000160; // type:object size:0x4 scope:local align:4 +@107368 = .rodata:0x00000164; // type:object size:0x4 scope:local align:4 +@107369 = .rodata:0x00000168; // type:object size:0x4 scope:local align:4 +@107370 = .rodata:0x0000016C; // type:object size:0x4 scope:local align:4 +@107371 = .rodata:0x00000170; // type:object size:0x4 scope:local align:4 +@107372 = .rodata:0x00000174; // type:object size:0x4 scope:local align:4 +@107373 = .rodata:0x00000178; // type:object size:0x4 scope:local align:4 +@107374 = .rodata:0x0000017C; // type:object size:0x4 scope:local align:4 +@107375 = .rodata:0x00000180; // type:object size:0x4 scope:local align:4 +@107376 = .rodata:0x00000184; // type:object size:0x4 scope:local align:4 +@107377 = .rodata:0x00000188; // type:object size:0x4 scope:local align:4 +@107378 = .rodata:0x0000018C; // type:object size:0x4 scope:local align:4 +@107379 = .rodata:0x00000190; // type:object size:0x4 scope:local align:4 +@107380 = .rodata:0x00000194; // type:object size:0x4 scope:local align:4 +@107381 = .rodata:0x00000198; // type:object size:0x4 scope:local align:4 +@107382 = .rodata:0x0000019C; // type:object size:0x4 scope:local align:4 +@107383 = .rodata:0x000001A0; // type:object size:0x4 scope:local align:4 +@107384 = .rodata:0x000001A4; // type:object size:0x4 scope:local align:4 +@107385 = .rodata:0x000001A8; // type:object size:0x4 scope:local align:4 +@107386 = .rodata:0x000001AC; // type:object size:0x4 scope:local align:4 +@107387 = .rodata:0x000001B0; // type:object size:0x4 scope:local align:4 +@107388 = .rodata:0x000001B4; // type:object size:0x4 scope:local align:4 +@107389 = .rodata:0x000001B8; // type:object size:0x4 scope:local align:4 +@107390 = .rodata:0x000001BC; // type:object size:0x4 scope:local align:4 +@107391 = .rodata:0x000001C0; // type:object size:0x4 scope:local align:4 +@107392 = .rodata:0x000001C4; // type:object size:0x4 scope:local align:4 +@107393 = .rodata:0x000001C8; // type:object size:0x4 scope:local align:4 +@107394 = .rodata:0x000001CC; // type:object size:0x4 scope:local align:4 +@107395 = .rodata:0x000001D0; // type:object size:0x4 scope:local align:4 +@107396 = .rodata:0x000001D4; // type:object size:0x4 scope:local align:4 +@107397 = .rodata:0x000001D8; // type:object size:0x4 scope:local align:4 +@107398 = .rodata:0x000001DC; // type:object size:0x4 scope:local align:4 +@107399 = .rodata:0x000001E0; // type:object size:0x4 scope:local align:4 +@107400 = .rodata:0x000001E4; // type:object size:0x4 scope:local align:4 +@107401 = .rodata:0x000001E8; // type:object size:0x4 scope:local align:4 +@107402 = .rodata:0x000001EC; // type:object size:0x4 scope:local align:4 +@107403 = .rodata:0x000001F0; // type:object size:0x4 scope:local align:4 +@107404 = .rodata:0x000001F4; // type:object size:0x4 scope:local align:4 +@107405 = .rodata:0x000001F8; // type:object size:0x4 scope:local align:4 +@107406 = .rodata:0x000001FC; // type:object size:0x4 scope:local align:4 +@107407 = .rodata:0x00000200; // type:object size:0x4 scope:local align:4 +@107408 = .rodata:0x00000204; // type:object size:0x4 scope:local align:4 data:string +@107409 = .rodata:0x00000208; // type:object size:0x4 scope:local align:4 +@107410 = .rodata:0x0000020C; // type:object size:0x4 scope:local align:4 +@107411 = .rodata:0x00000210; // type:object size:0x4 scope:local align:4 +@107412 = .rodata:0x00000214; // type:object size:0x4 scope:local align:4 +@107413 = .rodata:0x00000218; // type:object size:0x4 scope:local align:4 +@107414 = .rodata:0x0000021C; // type:object size:0x4 scope:local align:4 +@107415 = .rodata:0x00000220; // type:object size:0x4 scope:local align:4 +@107416 = .rodata:0x00000224; // type:object size:0x4 scope:local align:4 +@107417 = .rodata:0x00000228; // type:object size:0x4 scope:local align:4 +@107418 = .rodata:0x0000022C; // type:object size:0x4 scope:local align:4 +@107419 = .rodata:0x00000230; // type:object size:0x4 scope:local align:4 +@107420 = .rodata:0x00000234; // type:object size:0x4 scope:local align:4 +@107421 = .rodata:0x00000238; // type:object size:0x4 scope:local align:4 +@107422 = .rodata:0x0000023C; // type:object size:0x4 scope:local align:4 +@107423 = .rodata:0x00000240; // type:object size:0x4 scope:local align:4 +@107424 = .rodata:0x00000244; // type:object size:0x4 scope:local align:4 +@107425 = .rodata:0x00000248; // type:object size:0x4 scope:local align:4 +@107426 = .rodata:0x0000024C; // type:object size:0x4 scope:local align:4 +@107427 = .rodata:0x00000250; // type:object size:0x4 scope:local align:4 +@107428 = .rodata:0x00000254; // type:object size:0x4 scope:local align:4 +@107429 = .rodata:0x00000258; // type:object size:0x4 scope:local align:4 +@107430 = .rodata:0x0000025C; // type:object size:0x4 scope:local align:4 data:string +@107431 = .rodata:0x00000260; // type:object size:0x4 scope:local align:4 +@107432 = .rodata:0x00000264; // type:object size:0x4 scope:local align:4 +@107433 = .rodata:0x00000268; // type:object size:0x4 scope:local align:4 +@107434 = .rodata:0x0000026C; // type:object size:0x4 scope:local align:4 +@107435 = .rodata:0x00000270; // type:object size:0x4 scope:local align:4 +@107436 = .rodata:0x00000274; // type:object size:0x4 scope:local align:4 +@107437 = .rodata:0x00000278; // type:object size:0x4 scope:local align:4 +@107438 = .rodata:0x0000027C; // type:object size:0x4 scope:local align:4 +@107439 = .rodata:0x00000280; // type:object size:0x4 scope:local align:4 +@107440 = .rodata:0x00000284; // type:object size:0x4 scope:local align:4 +@107441 = .rodata:0x00000288; // type:object size:0x4 scope:local align:4 +@107442 = .rodata:0x0000028C; // type:object size:0x4 scope:local align:4 +@107443 = .rodata:0x00000290; // type:object size:0x4 scope:local align:4 +@107444 = .rodata:0x00000294; // type:object size:0x4 scope:local align:4 +@107445 = .rodata:0x00000298; // type:object size:0x4 scope:local align:4 +@107446 = .rodata:0x0000029C; // type:object size:0x4 scope:local align:4 +@107447 = .rodata:0x000002A0; // type:object size:0x4 scope:local align:4 +@107448 = .rodata:0x000002A4; // type:object size:0x4 scope:local align:4 +@107449 = .rodata:0x000002A8; // type:object size:0x4 scope:local align:4 +@107450 = .rodata:0x000002AC; // type:object size:0x4 scope:local align:4 +@107451 = .rodata:0x000002B0; // type:object size:0x4 scope:local align:4 +@107452 = .rodata:0x000002B4; // type:object size:0x4 scope:local align:4 +@107453 = .rodata:0x000002B8; // type:object size:0x4 scope:local align:4 +@107454 = .rodata:0x000002BC; // type:object size:0x4 scope:local align:4 +@107455 = .rodata:0x000002C0; // type:object size:0x4 scope:local align:4 +@107456 = .rodata:0x000002C4; // type:object size:0x4 scope:local align:4 +@107457 = .rodata:0x000002C8; // type:object size:0x4 scope:local align:4 +@107565 = .rodata:0x000002CC; // type:object size:0x4 scope:local align:4 +@107566 = .rodata:0x000002D0; // type:object size:0x4 scope:local align:4 +@107567 = .rodata:0x000002D4; // type:object size:0x4 scope:local align:4 data:string +@107568 = .rodata:0x000002D8; // type:object size:0x4 scope:local align:4 +@107569 = .rodata:0x000002DC; // type:object size:0x4 scope:local align:4 +@107570 = .rodata:0x000002E0; // type:object size:0x4 scope:local align:4 +@107571 = .rodata:0x000002E4; // type:object size:0x4 scope:local align:4 +@108143 = .rodata:0x000002E8; // type:object size:0x4 scope:local align:4 +@108144 = .rodata:0x000002EC; // type:object size:0x4 scope:local align:4 +@108145 = .rodata:0x000002F0; // type:object size:0x4 scope:local align:4 +@108146 = .rodata:0x000002F4; // type:object size:0x4 scope:local align:4 +...data.0 = .data:0x00000000; // type:label scope:local align:4 +iso_eff$94305 = .data:0x00000006; // type:object size:0xA scope:global align:2 +buf_p = .data:0x00000010; // type:object size:0x4C scope:global align:4 +size_p = .data:0x0000005C; // type:object size:0x4C scope:global align:4 +ex_eff$94869 = .data:0x000000A8; // type:object size:0xA scope:global align:4 +iso_eff$94956 = .data:0x000000B2; // type:object size:0x8 scope:global align:2 +@107459 = .data:0x000000BC; // type:object size:0xF8 scope:local align:4 +iso_eff$95267 = .data:0x000001B4; // type:object size:0xA scope:global align:4 +iso_eff$95281 = .data:0x000001BE; // type:object size:0x6 scope:global align:2 +iso_eff$95292 = .data:0x000001C4; // type:object size:0x8 scope:global align:4 +p_bmd$95410 = .data:0x000001CC; // type:object size:0x4C scope:global align:4 +cc_sph_src$95620 = .data:0x00000218; // type:object size:0x40 scope:global align:4 +body_sph_src$95621 = .data:0x00000258; // type:object size:0x40 scope:global align:4 +parts_sph_src$95622 = .data:0x00000298; // type:object size:0x40 scope:global align:4 +core_sph_src$95623 = .data:0x000002D8; // type:object size:0x40 scope:global align:4 +l_daB_OB_Method = .data:0x00000318; // type:object size:0x20 scope:global align:4 +g_profile_B_OB = .data:0x00000338; // type:object size:0x30 scope:global align:4 +__vt__12daB_OB_HIO_c = .data:0x00000368; // type:object size:0xC scope:global align:4 +lbl_149_data_374 = .data:0x00000374; // type:object size:0xD data:string +@95704 = .data:0x00000384; // type:object size:0xC scope:local align:4 +__RTTI__12daB_OB_HIO_c = .data:0x00000390; // type:object size:0x8 scope:global align:4 +lbl_149_data_398 = .data:0x00000398; // type:object size:0x34 +@95767 = .data:0x000003CC; // type:object size:0x3C scope:local align:4 +lbl_149_data_408 = .data:0x00000408; // type:object size:0x14 +@95769 = .data:0x0000041C; // type:object size:0x34 scope:local align:4 +__vt__18mDoExt_3DlineMat_c = .data:0x00000458; // type:object size:0x14 scope:global align:4 +lbl_149_data_46C = .data:0x0000046C; // type:object size:0x28 +@95827 = .data:0x00000494; // type:object size:0x24 scope:local align:4 +lbl_149_data_4B8 = .data:0x000004B8; // type:object size:0x18 +@95829 = .data:0x000004D0; // type:object size:0xC scope:local align:4 +lbl_149_data_4DC = .data:0x000004DC; // type:object size:0x1C +@95831 = .data:0x000004F8; // type:object size:0xC scope:local align:4 +lbl_149_data_504 = .data:0x00000504; // type:object size:0xCC +__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global align:4 +...bss.0 = .bss:0x00000008; // type:label scope:local align:4 data:byte +moveSW = .bss:0x0000000C; // type:object size:0x4 scope:global align:4 +moveSW2 = .bss:0x00000010; // type:object size:0x4 scope:global align:4 +@93293 = .bss:0x00000014; // type:object size:0xC scope:local align:4 +l_HIO = .bss:0x00000020; // type:object size:0x20 scope:global align:4 data:byte +pno = .bss:0x00000040; // type:object size:0x4 scope:global align:4 data:4byte +fin = .bss:0x00000044; // type:object size:0x4 scope:global align:4 data:4byte +bf_ct = .bss:0x00000048; // type:object size:0x4 scope:global align:4 data:4byte +@94062 = .bss:0x00000050; // type:object size:0xC scope:local align:4 +@94063 = .bss:0x0000005C; // type:object size:0xC scope:local align:4 +@94064 = .bss:0x00000068; // type:object size:0xC scope:local align:4 +@94065 = .bss:0x00000074; // type:object size:0xC scope:local align:4 +sdemo_p$94059 = .bss:0x00000080; // type:object size:0x30 scope:global align:4 +@94873 = .bss:0x000000B4; // type:object size:0xC scope:local align:4 +room_pos$94870 = .bss:0x000000C0; // type:object size:0xC scope:global align:4 +@94877 = .bss:0x000000D0; // type:object size:0xC scope:local align:4 +sc$94874 = .bss:0x000000DC; // type:object size:0xC scope:global align:4 diff --git a/config/RZDE01_00/rels/d_a_no_chg_room/splits.txt b/config/RZDE01_00/rels/d_a_no_chg_room/splits.txt new file mode 100644 index 0000000000..61aae6ccc5 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_no_chg_room/splits.txt @@ -0,0 +1,14 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +d/actor/d_a_no_chg_room.cpp: + .text start:0x0000005C end:0x00000508 + .rodata start:0x00000000 end:0x0000000C + .data start:0x00000000 end:0x0000008C diff --git a/config/RZDE01_00/rels/d_a_no_chg_room/symbols.txt b/config/RZDE01_00/rels/d_a_no_chg_room/symbols.txt new file mode 100644 index 0000000000..1ef417e9c5 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_no_chg_room/symbols.txt @@ -0,0 +1,17 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global +execute__9daNocrm_cFv = .text:0x0000005C; // type:function size:0x2F4 scope:global +getRoomNo__9daNocrm_cFi = .text:0x00000350; // type:function size:0xA4 scope:global +daNocrm_create__FP9daNocrm_c = .text:0x000003F4; // type:function size:0x100 scope:global +daNocrm_Delete__FP9daNocrm_c = .text:0x000004F4; // type:function size:0x8 scope:global +daNocrm_execute__FP9daNocrm_c = .text:0x000004FC; // type:function size:0x4 scope:global +daNocrm_draw__FP9daNocrm_c = .text:0x00000500; // type:function size:0x8 scope:global +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global +@92711 = .rodata:0x00000000; // type:object size:0x4 scope:local +@92761 = .rodata:0x00000004; // type:object size:0x4 scope:local align:4 data:float +@92762 = .rodata:0x00000008; // type:object size:0x4 scope:local align:4 data:float +daNocrm_METHODS = .data:0x00000000; // type:object size:0x20 scope:global +g_profile_NO_CHG_ROOM = .data:0x00000020; // type:object size:0x30 scope:global +lbl_16_data_50 = .data:0x00000050; // type:object size:0x3C diff --git a/config/RZDE01_00/rels/d_a_npc_bouS/splits.txt b/config/RZDE01_00/rels/d_a_npc_bouS/splits.txt new file mode 100644 index 0000000000..a502c1b8cb --- /dev/null +++ b/config/RZDE01_00/rels/d_a_npc_bouS/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +REL/global_destructor_chain.c: + .text start:0x0000005C end:0x000000CC + .dtors start:0x00000000 end:0x00000004 rename:.dtors$10 + .bss start:0x00000000 end:0x00000004 + +d/actor/d_a_npc_bouS.cpp: + .text start:0x000000CC end:0x00003908 + .ctors start:0x00000000 end:0x00000004 + .rodata start:0x00000000 end:0x0000023C + .data start:0x00000000 end:0x0000063C + .bss start:0x00000008 end:0x0000004C diff --git a/config/RZDE01_00/rels/d_a_npc_bouS/symbols.txt b/config/RZDE01_00/rels/d_a_npc_bouS/symbols.txt new file mode 100644 index 0000000000..8a3d8ae9e5 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_npc_bouS/symbols.txt @@ -0,0 +1,175 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 +__register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 +__destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 +__ct__11daNpcBouS_cFv = .text:0x000000CC; // type:function size:0x28C scope:global align:4 +__dt__11daNpcBouS_cFv = .text:0x00000358; // type:function size:0xF0 scope:global align:4 +Create__11daNpcBouS_cFv = .text:0x00000448; // type:function size:0x418 scope:global align:4 +__as__4cXyzFR10cXyz = .text:0x00000860; // type:label scope:global align:4 +CreateHeap__11daNpcBouS_cFv = .text:0x00000860; // type:function size:0x260 scope:global align:4 +Draw__11daNpcBouS_cFv = .text:0x00000AC0; // type:function size:0x70 scope:global align:4 +ctrlJoint__11daNpcBouS_cFP8J3DJointP8J3DModel = .text:0x00000B30; // type:function size:0x1DC scope:global align:4 +createHeapCallBack__11daNpcBouS_cFP10fopAc_ac_c = .text:0x00000D0C; // type:function size:0x4 scope:global align:4 +ctrlJointCallBack__11daNpcBouS_cFP8J3DJointi = .text:0x00000D10; // type:function size:0x48 scope:global align:4 +setExpressionAnm__11daNpcBouS_cFib = .text:0x00000D58; // type:function size:0x1F0 scope:global align:4 +setExpressionBtp__11daNpcBouS_cFi = .text:0x00000F48; // type:function size:0xD8 scope:global align:4 +setMotionAnm__11daNpcBouS_cFif = .text:0x00001020; // type:function size:0x130 scope:global align:4 +setAction__11daNpcBouS_cFM11daNpcBouS_cFP10void = .text:0x00001150; // type:function size:0xA8 scope:global align:4 +s_sub__FPvPv = .text:0x000011F8; // type:function size:0x74 scope:global align:4 +wait__11daNpcBouS_cFPv = .text:0x0000126C; // type:function size:0x340 scope:global align:4 +setExpression__11daNpcBouS_cFif = .text:0x000015AC; // type:function size:0x2C scope:global align:4 +setMotion__11daNpcBouS_cFifi = .text:0x000015D8; // type:function size:0x48 scope:global align:4 +chkFindPlayer__11daNpcBouS_cFv = .text:0x00001620; // type:function size:0xB0 scope:global align:4 +setLookMode__11daNpcBouS_cFi = .text:0x000016D0; // type:function size:0x24 scope:global align:4 +step__11daNpcBouS_cFsi = .text:0x000016F4; // type:function size:0x178 scope:global align:4 +talk__11daNpcBouS_cFPv = .text:0x0000186C; // type:function size:0x33C scope:global align:4 +setExpressionTalkAfter__11daNpcBouS_cFv = .text:0x00001BA8; // type:function size:0x68 scope:global align:4 +demo__11daNpcBouS_cFPv = .text:0x00001C10; // type:function size:0x18C scope:global align:4 +instruction__11daNpcBouS_cFPv = .text:0x00001D9C; // type:function size:0x480 scope:global align:4 +EvCut_BousIntroSumo1__11daNpcBouS_cFi = .text:0x0000221C; // type:function size:0x218 scope:global align:4 +EvCut_BousIntroSumo2__11daNpcBouS_cFi = .text:0x00002434; // type:function size:0x21C scope:global align:4 +EvCut_BousIntroSumo3__11daNpcBouS_cFi = .text:0x00002650; // type:function size:0x3B0 scope:global align:4 +daNpcBouS_Create__FPv = .text:0x00002A00; // type:function size:0x4 scope:global align:4 +daNpcBouS_Delete__FPv = .text:0x00002A04; // type:function size:0x34 scope:global align:4 +daNpcBouS_Execute__FPv = .text:0x00002A38; // type:function size:0x24 scope:global align:4 +daNpcBouS_Draw__FPv = .text:0x00002A5C; // type:function size:0x4 scope:global align:4 +daNpcBouS_IsDelete__FPv = .text:0x00002A60; // type:function size:0x8 scope:global align:4 +drawOtherMdls__11daNpcBouS_cFv = .text:0x00002A68; // type:function size:0x4 scope:global align:4 +drawDbgInfo__11daNpcBouS_cFv = .text:0x00002A6C; // type:function size:0x8 scope:global align:4 +setAttnPos__11daNpcBouS_cFv = .text:0x00002A74; // type:function size:0x548 scope:global align:4 +ctrlBtk__11daNpcBouS_cFv = .text:0x00002FBC; // type:function size:0xD4 scope:global align:4 +main__11daNpcBouS_cFv = .text:0x00003090; // type:function size:0x614 scope:global align:4 +setParam__11daNpcBouS_cFv = .text:0x000036A4; // type:function size:0x84 scope:global align:4 +__sinit_\d_a_npc_bouS_cpp = .text:0x00003728; // type:function size:0x94 scope:global align:4 +__ct__18daNpcF_ActorMngr_cFv = .text:0x000037BC; // type:function size:0x3C scope:global align:4 +__dt__15daNpcF_Lookat_cFv = .text:0x000037F8; // type:function size:0xBC scope:global align:4 +adjustShapeAngle__11daNpcBouS_cFv = .text:0x000038B4; // type:function size:0x4 scope:global align:4 +__dt__17daNpcBouS_Param_cFv = .text:0x000038B8; // type:function size:0x40 scope:global align:4 +__ct__17daNpcBouS_Param_cFv = .text:0x000038F8; // type:function size:0x10 scope:global align:4 +_ctors = .ctors:0x00000000; // type:label scope:global +__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global align:4 +_dtors = .dtors:0x00000000; // type:label scope:global +...rodata.0 = .rodata:0x00000000; // type:label scope:local align:4 +m__17daNpcBouS_Param_c = .rodata:0x00000000; // type:object size:0x8C scope:global align:4 +@103701 = .rodata:0x0000008C; // type:object size:0x4 scope:local align:4 +@103702 = .rodata:0x00000090; // type:object size:0x4 scope:local align:4 +@103703 = .rodata:0x00000094; // type:object size:0x4 scope:local align:4 +@103704 = .rodata:0x00000098; // type:object size:0x4 scope:local align:4 +@103705 = .rodata:0x0000009C; // type:object size:0x4 scope:local align:4 data:float +@103746 = .rodata:0x000000A0; // type:object size:0x4 scope:local align:4 data:float +@99263 = .rodata:0x000000A4; // type:object size:0xC scope:local align:4 data:4byte +@99569 = .rodata:0x000000B0; // type:object size:0xC scope:local align:4 +@99573 = .rodata:0x000000BC; // type:object size:0xC scope:local align:4 +@99577 = .rodata:0x000000C8; // type:object size:0xC scope:local align:4 +@99579 = .rodata:0x000000D4; // type:object size:0xC scope:local align:4 +@99583 = .rodata:0x000000E0; // type:object size:0xC scope:local align:4 +@99585 = .rodata:0x000000EC; // type:object size:0xC scope:local align:4 +@99636 = .rodata:0x000000F8; // type:object size:0xC scope:local align:4 +@99640 = .rodata:0x00000104; // type:object size:0xC scope:local align:4 +@99644 = .rodata:0x00000110; // type:object size:0xC scope:local align:4 +@99648 = .rodata:0x0000011C; // type:object size:0xC scope:local align:4 +@99650 = .rodata:0x00000128; // type:object size:0xC scope:local align:4 +@99654 = .rodata:0x00000134; // type:object size:0xC scope:local align:4 +@99656 = .rodata:0x00000140; // type:object size:0xC scope:local align:4 +@99660 = .rodata:0x0000014C; // type:object size:0xC scope:local align:4 +@99662 = .rodata:0x00000158; // type:object size:0xC scope:local align:4 +@99666 = .rodata:0x00000164; // type:object size:0xC scope:local align:4 +@99668 = .rodata:0x00000170; // type:object size:0xC scope:local align:4 +@99672 = .rodata:0x0000017C; // type:object size:0xC scope:local align:4 +@99674 = .rodata:0x00000188; // type:object size:0xC scope:local align:4 +@99678 = .rodata:0x00000194; // type:object size:0xC scope:local align:4 +@99680 = .rodata:0x000001A0; // type:object size:0xC scope:local align:4 +@99684 = .rodata:0x000001AC; // type:object size:0xC scope:local align:4 +@99688 = .rodata:0x000001B8; // type:object size:0xC scope:local align:4 +@99690 = .rodata:0x000001C4; // type:object size:0xC scope:local align:4 +@99694 = .rodata:0x000001D0; // type:object size:0xC scope:local align:4 +@99698 = .rodata:0x000001DC; // type:object size:0xC scope:local align:4 +@99702 = .rodata:0x000001E8; // type:object size:0xC scope:local align:4 +@104005 = .rodata:0x000001F4; // type:object size:0x4 scope:local align:4 data:float +@104064 = .rodata:0x000001F8; // type:object size:0x4 scope:local align:4 +@104065 = .rodata:0x000001FC; // type:object size:0x4 scope:local align:4 +@104068 = .rodata:0x00000200; // type:object size:0x8 scope:local align:4 +@104255 = .rodata:0x00000208; // type:object size:0x4 scope:local align:4 +@104256 = .rodata:0x0000020C; // type:object size:0x4 scope:local align:4 +@104380 = .rodata:0x00000210; // type:object size:0x4 scope:local align:4 +@104381 = .rodata:0x00000214; // type:object size:0x4 scope:local align:4 +@104467 = .rodata:0x00000218; // type:object size:0x4 scope:local align:4 +@104468 = .rodata:0x0000021C; // type:object size:0x4 scope:local align:4 +@104469 = .rodata:0x00000220; // type:object size:0x4 scope:local align:4 +@104470 = .rodata:0x00000224; // type:object size:0x4 scope:local align:4 +@104471 = .rodata:0x00000228; // type:object size:0x4 scope:local align:4 +@104472 = .rodata:0x0000022C; // type:object size:0x4 scope:local align:4 +@104473 = .rodata:0x00000230; // type:object size:0x4 scope:local align:4 +@104492 = .rodata:0x00000234; // type:object size:0x4 scope:local align:4 data:float +@104580 = .rodata:0x00000238; // type:object size:0x4 scope:local align:4 data:float +...data.0 = .data:0x00000000; // type:label scope:local align:4 +l_bckGetParamList = .data:0x00000000; // type:object size:0x114 scope:global align:4 +l_btpGetParamList = .data:0x00000114; // type:object size:0x3C scope:global align:4 +l_btkGetParamList = .data:0x00000150; // type:object size:0xC scope:global align:4 data:4byte +lbl_289_data_15C = .data:0x0000015C; // type:object size:0x4 data:string +lbl_289_data_160 = .data:0x00000160; // type:object size:0x5 data:string +l_arcNames = .data:0x00000168; // type:object size:0x8 scope:global align:4 data:4byte +lbl_289_data_170 = .data:0x00000170; // type:object size:0x11 data:string +lbl_289_data_181 = .data:0x00000181; // type:object size:0x11 data:string +lbl_289_data_192 = .data:0x00000192; // type:object size:0x11 data:string +l_evtNames = .data:0x000001A4; // type:object size:0x10 scope:global align:4 data:4byte +lbl_289_data_1B4 = .data:0x000001B4; // type:object size:0x5 data:string +l_myName = .data:0x000001BC; // type:object size:0x4 scope:global align:4 +mEvtSeqList__11daNpcBouS_c = .data:0x000001C0; // type:object size:0x30 scope:global align:4 data:4byte +@103629 = .data:0x000001F0; // type:object size:0xC scope:local align:4 +@103630 = .data:0x000001FC; // type:object size:0xC scope:local align:4 +@103899 = .data:0x00000208; // type:object size:0x1C scope:local align:4 +@103983 = .data:0x00000224; // type:object size:0xC scope:local align:4 +@103984 = .data:0x00000230; // type:object size:0xC scope:local align:4 +@103985 = .data:0x0000023C; // type:object size:0xC scope:local align:4 +lbl_289_data_248 = .data:0x00000248; // type:object size:0x5 data:string +@104083 = .data:0x00000250; // type:object size:0xC scope:local align:4 +@104084 = .data:0x0000025C; // type:object size:0xC scope:local align:4 +@104085 = .data:0x00000268; // type:object size:0xC scope:local align:4 +@104154 = .data:0x00000274; // type:object size:0xC scope:local align:4 +@104183 = .data:0x00000280; // type:object size:0xC scope:local align:4 data:4byte +@104349 = .data:0x0000028C; // type:object size:0xC scope:local align:4 data:4byte +@104350 = .data:0x00000298; // type:object size:0xC scope:local align:4 data:4byte +daNpcBouS_MethodTable = .data:0x000002A4; // type:object size:0x20 scope:global align:4 +g_profile_NPC_BOU_S = .data:0x000002C4; // type:object size:0x30 scope:global align:4 +__vt__11daNpcBouS_c = .data:0x000002F4; // type:object size:0x48 scope:global align:4 +lbl_289_data_33C = .data:0x0000033C; // type:object size:0xC data:string +@100516 = .data:0x00000348; // type:object size:0x14 scope:local align:4 +__RTTI__11daNpcBouS_c = .data:0x0000035C; // type:object size:0x8 scope:global align:4 +__vt__17daNpcBouS_Param_c = .data:0x00000364; // type:object size:0xC scope:global align:4 +lbl_289_data_370 = .data:0x00000370; // type:object size:0x12 data:string +__RTTI__17daNpcBouS_Param_c = .data:0x00000384; // type:object size:0x8 scope:global align:4 +lbl_289_data_38C = .data:0x0000038C; // type:object size:0x9 data:string +@100519 = .data:0x00000398; // type:object size:0xC scope:local align:4 +__vt__15daNpcF_Lookat_c = .data:0x000003AC; // type:object size:0xC scope:global align:4 +lbl_289_data_3B8 = .data:0x000003B8; // type:object size:0x10 data:string +__RTTI__15daNpcF_Lookat_c = .data:0x000003C8; // type:object size:0x8 scope:global align:4 +__vt__18daNpcF_ActorMngr_c = .data:0x000003D0; // type:object size:0xC scope:global align:4 +lbl_289_data_3DC = .data:0x000003DC; // type:object size:0x13 data:string +__RTTI__18daNpcF_ActorMngr_c = .data:0x000003F0; // type:object size:0x8 scope:global align:4 +lbl_289_data_3F8 = .data:0x000003F8; // type:object size:0x34 +@100592 = .data:0x0000042C; // type:object size:0x3C scope:local align:4 +lbl_289_data_468 = .data:0x00000468; // type:object size:0x14 +@100594 = .data:0x0000047C; // type:object size:0x34 scope:local align:4 +lbl_289_data_4B0 = .data:0x000004B0; // type:object size:0x14 +@100652 = .data:0x000004C4; // type:object size:0x24 scope:local align:4 +lbl_289_data_4E8 = .data:0x000004E8; // type:object size:0x18 +@100654 = .data:0x00000500; // type:object size:0xC scope:local align:4 +lbl_289_data_50C = .data:0x0000050C; // type:object size:0x1C +@100656 = .data:0x00000528; // type:object size:0xC scope:local align:4 +lbl_289_data_534 = .data:0x00000534; // type:object size:0xE8 +lbl_289_data_61C = .data:0x0000061C; // type:object size:0x4 data:string +lbl_289_data_620 = .data:0x00000620; // type:object size:0x5 data:string +lbl_289_data_625 = .data:0x00000625; // type:object size:0x5 data:string +lbl_289_data_62A = .data:0x0000062A; // type:object size:0x5 data:string +lbl_289_data_62F = .data:0x0000062F; // type:object size:0x5 data:string +lbl_289_data_634 = .data:0x00000634; // type:object size:0x7 data:string +__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global align:4 +@99112 = .bss:0x00000008; // type:object size:0xC scope:local align:4 +l_createPos = .bss:0x00000014; // type:object size:0xC scope:global align:4 +@99113 = .bss:0x00000020; // type:object size:0xC scope:local align:4 +l_HIO = .bss:0x0000002C; // type:object size:0x4 scope:global align:4 +@99353 = .bss:0x00000030; // type:object size:0xC scope:local align:4 +lbl_289_bss_3C = .bss:0x0000003C; // type:object size:0x1 data:byte +eyeOffset$localstatic3$setAttnPos__11daNpcBouS_cFv = .bss:0x00000040; // type:object size:0xC scope:global align:4 data:float diff --git a/config/RZDE01_00/rels/d_a_npc_wrestler/splits.txt b/config/RZDE01_00/rels/d_a_npc_wrestler/splits.txt new file mode 100644 index 0000000000..df03d9d7eb --- /dev/null +++ b/config/RZDE01_00/rels/d_a_npc_wrestler/splits.txt @@ -0,0 +1,22 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:8 + .bss type:bss align:8 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +REL/global_destructor_chain.c: + .text start:0x0000005C end:0x000000CC + .dtors start:0x00000000 end:0x00000004 rename:.dtors$10 + .bss start:0x00000000 end:0x00000008 + +d/actor/d_a_npc_wrestler.cpp: + .text start:0x000000CC end:0x0000CD98 + .ctors start:0x00000000 end:0x00000004 + .rodata start:0x00000000 end:0x000004E4 + .data start:0x00000000 end:0x00001288 + .bss start:0x00000008 end:0x00000034 diff --git a/config/RZDE01_00/rels/d_a_npc_wrestler/symbols.txt b/config/RZDE01_00/rels/d_a_npc_wrestler/symbols.txt new file mode 100644 index 0000000000..31e0bde727 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_npc_wrestler/symbols.txt @@ -0,0 +1,401 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global align:4 +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global align:4 +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global align:4 +__register_global_object = .text:0x0000005C; // type:function size:0x1C scope:global align:4 +__destroy_global_chain = .text:0x00000078; // type:function size:0x54 scope:global align:4 +__ct__15daNpcWrestler_cFv = .text:0x000000CC; // type:function size:0x28C scope:global align:4 +__dt__15daNpcWrestler_cFv = .text:0x00000358; // type:function size:0xF8 scope:global align:4 +Create__15daNpcWrestler_cFv = .text:0x00000450; // type:function size:0x4A8 scope:global align:4 +CreateHeap__15daNpcWrestler_cFv = .text:0x000008F8; // type:function size:0x274 scope:global align:4 +Draw__15daNpcWrestler_cFv = .text:0x00000B6C; // type:function size:0x50 scope:global align:4 +ctrlJoint__15daNpcWrestler_cFP8J3DJointP8J3DModel = .text:0x00000BBC; // type:function size:0x22C scope:global align:4 +createHeapCallBack__15daNpcWrestler_cFP10fopAc_ac_c = .text:0x00000DE8; // type:function size:0x4 scope:global align:4 +ctrlJointCallBack__15daNpcWrestler_cFP8J3DJointi = .text:0x00000DEC; // type:function size:0x48 scope:global align:4 +checkStartUp__15daNpcWrestler_cFv = .text:0x00000E34; // type:function size:0x7C scope:global align:4 +setExpressionAnm__15daNpcWrestler_cFib = .text:0x00000EB0; // type:function size:0x418 scope:global align:4 +setExpressionBtp__15daNpcWrestler_cFi = .text:0x000012C8; // type:function size:0xF8 scope:global align:4 +setMotionAnm__15daNpcWrestler_cFif = .text:0x000013C0; // type:function size:0x164 scope:global align:4 +setAction__15daNpcWrestler_cFM15daNpcWrestler_cFP10void = .text:0x00001524; // type:function size:0xA8 scope:global align:4 +s_sub1__FPvPv = .text:0x000015CC; // type:function size:0x74 scope:global align:4 +checkArenaInfo__15daNpcWrestler_cFv = .text:0x00001640; // type:function size:0xB8 scope:global align:4 +s_sub2__FPvPv = .text:0x000016F8; // type:function size:0x80 scope:global align:4 +setOnToArena__15daNpcWrestler_cFf = .text:0x00001778; // type:function size:0x180 scope:global align:4 +wait__15daNpcWrestler_cFPv = .text:0x000018F8; // type:function size:0x400 scope:global align:4 +setExpression__15daNpcWrestler_cFif = .text:0x00001CF8; // type:function size:0x2C scope:global align:4 +setMotion__15daNpcWrestler_cFifi = .text:0x00001D24; // type:function size:0x48 scope:global align:4 +chkFindPlayer__15daNpcWrestler_cFv = .text:0x00001D6C; // type:function size:0xC8 scope:global align:4 +setLookMode__15daNpcWrestler_cFi = .text:0x00001E34; // type:function size:0x24 scope:global align:4 +step__15daNpcWrestler_cFsi = .text:0x00001E58; // type:function size:0x180 scope:global align:4 +talk__15daNpcWrestler_cFPv = .text:0x00001FD8; // type:function size:0x3A4 scope:global align:4 +setTalkAngle__15daNpcWrestler_cFv = .text:0x0000237C; // type:function size:0xB4 scope:global align:4 +setExpressionTalkAfter__15daNpcWrestler_cFv = .text:0x00002430; // type:function size:0x70 scope:global align:4 +demo__15daNpcWrestler_cFPv = .text:0x000024A0; // type:function size:0x150 scope:global align:4 +gotoArena__15daNpcWrestler_cFPv = .text:0x000025F0; // type:function size:0x268 scope:global align:4 +gotoLiving__15daNpcWrestler_cFPv = .text:0x00002858; // type:function size:0x360 scope:global align:4 +sumouReady__15daNpcWrestler_cFPv = .text:0x00002BB8; // type:function size:0x780 scope:global align:4 +sumouWait__15daNpcWrestler_cFPv = .text:0x00003338; // type:function size:0x8C8 scope:global align:4 +correctGraspPosAngle__15daNpcWrestler_cFb = .text:0x00003C00; // type:function size:0xA8 scope:global align:4 +oppositeToPlayer__15daNpcWrestler_cFv = .text:0x00003CA8; // type:function size:0x74 scope:global align:4 +checkOutOfArenaP__15daNpcWrestler_cFv = .text:0x00003D1C; // type:function size:0xC0 scope:global align:4 +sumouPunchHit__15daNpcWrestler_cFPv = .text:0x00003DDC; // type:function size:0x4E8 scope:global align:4 +sumouPunchChaseHit__15daNpcWrestler_cFPv = .text:0x000042C4; // type:function size:0x4E8 scope:global align:4 +sumouPunchMiss__15daNpcWrestler_cFPv = .text:0x000047AC; // type:function size:0x2E8 scope:global align:4 +checkOutOfArenaW__15daNpcWrestler_cFv = .text:0x00004A94; // type:function size:0xF8 scope:global align:4 +getJointPos__15daNpcWrestler_cFi = .text:0x00004B8C; // type:function size:0x54 scope:global align:4 +sumouPunchDraw__15daNpcWrestler_cFPv = .text:0x00004BE0; // type:function size:0x524 scope:global align:4 +sumouTackleHit__15daNpcWrestler_cFPv = .text:0x00005104; // type:function size:0x6A4 scope:global align:4 +sumouTackleMiss__15daNpcWrestler_cFPv = .text:0x000057A8; // type:function size:0x1C8 scope:global align:4 +sumouTackleDraw__15daNpcWrestler_cFPv = .text:0x00005970; // type:function size:0x408 scope:global align:4 +sumouSideStep__15daNpcWrestler_cFPv = .text:0x00005D78; // type:function size:0x328 scope:global align:4 +setStepAngle__15daNpcWrestler_cFv = .text:0x000060A0; // type:function size:0x13C scope:global align:4 +sumouLostBalance__15daNpcWrestler_cFPv = .text:0x000061DC; // type:function size:0x18C scope:global align:4 +sumouPunchShock__15daNpcWrestler_cFPv = .text:0x00006368; // type:function size:0x200 scope:global align:4 +sumouPunchChaseShock__15daNpcWrestler_cFPv = .text:0x00006568; // type:function size:0x28C scope:global align:4 +sumouPunchStagger__15daNpcWrestler_cFPv = .text:0x000067F4; // type:function size:0x204 scope:global align:4 +sumouTackleShock__15daNpcWrestler_cFPv = .text:0x000069F8; // type:function size:0x190 scope:global align:4 +sumouTackleStagger__15daNpcWrestler_cFPv = .text:0x00006B88; // type:function size:0x304 scope:global align:4 +sumouTackleStaggerRelease__15daNpcWrestler_cFPv = .text:0x00006E8C; // type:function size:0x12C scope:global align:4 +sumouTacklePush__15daNpcWrestler_cFPv = .text:0x00006FB8; // type:function size:0x320 scope:global align:4 +sumouTackleRelease__15daNpcWrestler_cFPv = .text:0x000072D8; // type:function size:0x244 scope:global align:4 +demoSumouReady__15daNpcWrestler_cFPv = .text:0x0000751C; // type:function size:0xCC8 scope:global align:4 +demoSumouWin__15daNpcWrestler_cFPv = .text:0x000081E4; // type:function size:0x554 scope:global align:4 +demoSumouLose__15daNpcWrestler_cFPv = .text:0x00008738; // type:function size:0x660 scope:global align:4 +demoSumouWin2__15daNpcWrestler_cFPv = .text:0x00008D98; // type:function size:0x4BC scope:global align:4 +demoSumouLose2__15daNpcWrestler_cFPv = .text:0x00009254; // type:function size:0x644 scope:global align:4 +demoSumouUnilateralWin__15daNpcWrestler_cFPv = .text:0x00009898; // type:function size:0x558 scope:global align:4 +demoTalkAfterLose__15daNpcWrestler_cFPv = .text:0x00009DF0; // type:function size:0x33C scope:global align:4 +EvCut_grDSEntry__15daNpcWrestler_cFi = .text:0x0000A12C; // type:function size:0x394 scope:global align:4 +EvCut_grDSEntry2__15daNpcWrestler_cFi = .text:0x0000A4C0; // type:function size:0x128 scope:global align:4 +EvCut_grDSEntry3_4__15daNpcWrestler_cFi = .text:0x0000A5E8; // type:function size:0x1DC scope:global align:4 +EvCut_grDSEntry5__15daNpcWrestler_cFi = .text:0x0000A7C4; // type:function size:0x1F4 scope:global align:4 +EvCut_grDSLose__15daNpcWrestler_cFi = .text:0x0000A9B8; // type:function size:0x264 scope:global align:4 +daNpcWrestler_Create__FPv = .text:0x0000AC1C; // type:function size:0x4 scope:global align:4 +daNpcWrestler_Delete__FPv = .text:0x0000AC20; // type:function size:0x34 scope:global align:4 +daNpcWrestler_Execute__FPv = .text:0x0000AC54; // type:function size:0x38 scope:global align:4 +daNpcWrestler_Draw__FPv = .text:0x0000AC8C; // type:function size:0x4 scope:global align:4 +daNpcWrestler_IsDelete__FPv = .text:0x0000AC90; // type:function size:0x8 scope:global align:4 +drawOtherMdls__15daNpcWrestler_cFv = .text:0x0000AC98; // type:function size:0x4 scope:global align:4 +drawDbgInfo__15daNpcWrestler_cFv = .text:0x0000AC9C; // type:function size:0x8 scope:global align:4 +setAttnPos__15daNpcWrestler_cFv = .text:0x0000ACA4; // type:function size:0x654 scope:global align:4 +ctrlBtk__15daNpcWrestler_cFv = .text:0x0000B2F8; // type:function size:0xE4 scope:global align:4 +main__15daNpcWrestler_cFv = .text:0x0000B3DC; // type:function size:0x16C4 scope:global align:4 +setParam__15daNpcWrestler_cFv = .text:0x0000CAA0; // type:function size:0xAC scope:global align:4 +__sinit_\d_a_npc_wrestler_cpp = .text:0x0000CB4C; // type:function size:0x68 scope:global align:4 +__dt__12DemoCamera_cFv = .text:0x0000CBB4; // type:function size:0x40 scope:global align:4 +__ct__18daNpcF_ActorMngr_cFv = .text:0x0000CBF4; // type:function size:0x3C scope:global align:4 +__dt__15daNpcF_Lookat_cFv = .text:0x0000CC30; // type:function size:0xBC scope:global align:4 +getArenaPos__12daTagArena_cFv = .text:0x0000CCEC; // type:function size:0x8 scope:global align:4 +setSumouForcePunch__9daPy_py_cFv = .text:0x0000CCF4; // type:function size:0x24 scope:global align:4 +getLeftFootPos__9daPy_py_cCFv = .text:0x0000CD18; // type:function size:0x8 scope:global align:4 +getRightFootPos__9daPy_py_cCFv = .text:0x0000CD20; // type:function size:0x8 scope:global align:4 +setGlobalTranslation__14JPABaseEmitterFRQ29JGeometry9TVec3<1f> = .text:0x0000CD28; // type:function size:0x1C scope:global align:4 +adjustShapeAngle__15daNpcWrestler_cFv = .text:0x0000CD44; // type:function size:0x4 scope:global align:4 +__dt__21daNpcWrestler_Param_cFv = .text:0x0000CD48; // type:function size:0x40 scope:global align:4 +__ct__21daNpcWrestler_Param_cFv = .text:0x0000CD88; // type:function size:0x10 scope:global align:4 +_ctors = .ctors:0x00000000; // type:label scope:global +__destroy_global_chain_reference = .dtors:0x00000000; // type:object size:0x4 scope:global align:4 +_dtors = .dtors:0x00000000; // type:label scope:global +...rodata.0 = .rodata:0x00000000; // type:label scope:local align:4 +m__21daNpcWrestler_Param_c = .rodata:0x00000000; // type:object size:0x194 scope:global align:4 +@112626 = .rodata:0x00000194; // type:object size:0x4 scope:local align:4 +@112627 = .rodata:0x00000198; // type:object size:0x4 scope:local align:4 +@112628 = .rodata:0x0000019C; // type:object size:0x4 scope:local align:4 +@112629 = .rodata:0x000001A0; // type:object size:0x4 scope:local align:4 +@112630 = .rodata:0x000001A4; // type:object size:0x4 scope:local align:4 data:float +@112631 = .rodata:0x000001A8; // type:object size:0x4 scope:local align:4 +@112632 = .rodata:0x000001AC; // type:object size:0x4 scope:local align:4 +@112633 = .rodata:0x000001B0; // type:object size:0x4 scope:local align:4 +@112634 = .rodata:0x000001B4; // type:object size:0x4 scope:local align:4 data:float +@112635 = .rodata:0x000001B8; // type:object size:0x4 scope:local align:4 +@112636 = .rodata:0x000001BC; // type:object size:0x4 scope:local align:4 data:float +@112637 = .rodata:0x000001C0; // type:object size:0x4 scope:local align:4 +@112638 = .rodata:0x000001C4; // type:object size:0x4 scope:local align:4 +@112639 = .rodata:0x000001C8; // type:object size:0x4 scope:local align:4 +@112640 = .rodata:0x000001CC; // type:object size:0x4 scope:local align:4 +@112686 = .rodata:0x000001D0; // type:object size:0x4 scope:local align:4 data:float +btkType$localstatic3$setMotionAnm__15daNpcWrestler_cFif = .rodata:0x000001D4; // type:object size:0x4 scope:global align:4 +@98942 = .rodata:0x000001D8; // type:object size:0xC scope:local align:4 +@98946 = .rodata:0x000001E4; // type:object size:0xC scope:local align:4 +@98950 = .rodata:0x000001F0; // type:object size:0xC scope:local align:4 +@98952 = .rodata:0x000001FC; // type:object size:0xC scope:local align:4 +@98956 = .rodata:0x00000208; // type:object size:0xC scope:local align:4 +@98960 = .rodata:0x00000214; // type:object size:0xC scope:local align:4 +@98995 = .rodata:0x00000220; // type:object size:0xC scope:local align:4 +@98999 = .rodata:0x0000022C; // type:object size:0xC scope:local align:4 +@99003 = .rodata:0x00000238; // type:object size:0xC scope:local align:4 +@99005 = .rodata:0x00000244; // type:object size:0xC scope:local align:4 +@99009 = .rodata:0x00000250; // type:object size:0xC scope:local align:4 +@99013 = .rodata:0x0000025C; // type:object size:0xC scope:local align:4 +@99015 = .rodata:0x00000268; // type:object size:0xC scope:local align:4 +@99019 = .rodata:0x00000274; // type:object size:0xC scope:local align:4 +@99021 = .rodata:0x00000280; // type:object size:0xC scope:local align:4 +@99025 = .rodata:0x0000028C; // type:object size:0xC scope:local align:4 +@99029 = .rodata:0x00000298; // type:object size:0xC scope:local align:4 +@99031 = .rodata:0x000002A4; // type:object size:0xC scope:local align:4 +@99035 = .rodata:0x000002B0; // type:object size:0xC scope:local align:4 +@99039 = .rodata:0x000002BC; // type:object size:0xC scope:local align:4 +@99043 = .rodata:0x000002C8; // type:object size:0xC scope:local align:4 +@99047 = .rodata:0x000002D4; // type:object size:0xC scope:local align:4 +@99051 = .rodata:0x000002E0; // type:object size:0xC scope:local align:4 +@99055 = .rodata:0x000002EC; // type:object size:0xC scope:local align:4 +@99059 = .rodata:0x000002F8; // type:object size:0xC scope:local align:4 +@99063 = .rodata:0x00000304; // type:object size:0xC scope:local align:4 +@99067 = .rodata:0x00000310; // type:object size:0xC scope:local align:4 +@99071 = .rodata:0x0000031C; // type:object size:0xC scope:local align:4 +@99075 = .rodata:0x00000328; // type:object size:0xC scope:local align:4 +@99079 = .rodata:0x00000334; // type:object size:0xC scope:local align:4 +@99083 = .rodata:0x00000340; // type:object size:0xC scope:local align:4 +@99087 = .rodata:0x0000034C; // type:object size:0xC scope:local align:4 +@99091 = .rodata:0x00000358; // type:object size:0xC scope:local align:4 +@99095 = .rodata:0x00000364; // type:object size:0xC scope:local align:4 +@99099 = .rodata:0x00000370; // type:object size:0xC scope:local align:4 +@99103 = .rodata:0x0000037C; // type:object size:0xC scope:local align:4 +@99105 = .rodata:0x00000388; // type:object size:0xC scope:local align:4 +@99109 = .rodata:0x00000394; // type:object size:0xC scope:local align:4 +@99111 = .rodata:0x000003A0; // type:object size:0xC scope:local align:4 +@99115 = .rodata:0x000003AC; // type:object size:0xC scope:local align:4 +@99117 = .rodata:0x000003B8; // type:object size:0xC scope:local align:4 +@99121 = .rodata:0x000003C4; // type:object size:0xC scope:local align:4 +@99125 = .rodata:0x000003D0; // type:object size:0xC scope:local align:4 +@99127 = .rodata:0x000003DC; // type:object size:0xC scope:local align:4 +@113113 = .rodata:0x000003E8; // type:object size:0x4 scope:local align:4 +@113114 = .rodata:0x000003EC; // type:object size:0x4 scope:local align:4 +@113175 = .rodata:0x000003F0; // type:object size:0x4 scope:local align:4 +@113176 = .rodata:0x000003F4; // type:object size:0x4 scope:local align:4 +@113179 = .rodata:0x000003F8; // type:object size:0x8 scope:local align:4 +@113252 = .rodata:0x00000400; // type:object size:0x4 scope:local align:4 data:float +@113343 = .rodata:0x00000404; // type:object size:0x4 scope:local align:4 +@113428 = .rodata:0x00000408; // type:object size:0x4 scope:local align:4 +@113429 = .rodata:0x0000040C; // type:object size:0x4 scope:local align:4 +@113430 = .rodata:0x00000410; // type:object size:0x4 scope:local align:4 +@113431 = .rodata:0x00000414; // type:object size:0x4 scope:local align:4 +@113700 = .rodata:0x00000418; // type:object size:0x4 scope:local align:4 +@113736 = .rodata:0x00000420; // type:object size:0x8 scope:local align:4 data:double +@113858 = .rodata:0x00000428; // type:object size:0x4 scope:local align:4 +@113859 = .rodata:0x0000042C; // type:object size:0x4 scope:local align:4 +@114070 = .rodata:0x00000430; // type:object size:0x4 scope:local align:4 +@114071 = .rodata:0x00000434; // type:object size:0x4 scope:local align:4 +@114228 = .rodata:0x00000438; // type:object size:0x4 scope:local align:4 +@114388 = .rodata:0x0000043C; // type:object size:0x4 scope:local align:4 +@114389 = .rodata:0x00000440; // type:object size:0x4 scope:local align:4 +@114514 = .rodata:0x00000444; // type:object size:0x4 scope:local align:4 +@114515 = .rodata:0x00000448; // type:object size:0x4 scope:local align:4 +@114596 = .rodata:0x0000044C; // type:object size:0x4 scope:local align:4 +@114597 = .rodata:0x00000450; // type:object size:0x4 scope:local align:4 +@114771 = .rodata:0x00000454; // type:object size:0x4 scope:local align:4 +@114838 = .rodata:0x00000458; // type:object size:0x4 scope:local align:4 data:float +@114996 = .rodata:0x0000045C; // type:object size:0x4 scope:local align:4 +@115165 = .rodata:0x00000460; // type:object size:0x4 scope:local align:4 +@115166 = .rodata:0x00000464; // type:object size:0x4 scope:local align:4 +@115167 = .rodata:0x00000468; // type:object size:0x4 scope:local align:4 +@115168 = .rodata:0x0000046C; // type:object size:0x4 scope:local align:4 +@115169 = .rodata:0x00000470; // type:object size:0x4 scope:local align:4 +@115170 = .rodata:0x00000474; // type:object size:0x4 scope:local align:4 +@115171 = .rodata:0x00000478; // type:object size:0x4 scope:local align:4 +@115211 = .rodata:0x0000047C; // type:object size:0x4 scope:local align:4 +@115212 = .rodata:0x00000480; // type:object size:0x4 scope:local align:4 +@115213 = .rodata:0x00000484; // type:object size:0x4 scope:local align:4 data:float +@115214 = .rodata:0x00000488; // type:object size:0x4 scope:local align:4 +@115215 = .rodata:0x0000048C; // type:object size:0x4 scope:local align:4 +@115297 = .rodata:0x00000490; // type:object size:0x4 scope:local align:4 +@115298 = .rodata:0x00000494; // type:object size:0x4 scope:local align:4 +@115299 = .rodata:0x00000498; // type:object size:0x4 scope:local align:4 +@115300 = .rodata:0x0000049C; // type:object size:0x4 scope:local align:4 +@115301 = .rodata:0x000004A0; // type:object size:0x4 scope:local align:4 +@115302 = .rodata:0x000004A4; // type:object size:0x4 scope:local align:4 +@115303 = .rodata:0x000004A8; // type:object size:0x4 scope:local align:4 +@115304 = .rodata:0x000004AC; // type:object size:0x4 scope:local align:4 +@115305 = .rodata:0x000004B0; // type:object size:0x4 scope:local align:4 +@115306 = .rodata:0x000004B4; // type:object size:0x4 scope:local align:4 +@115307 = .rodata:0x000004B8; // type:object size:0x4 scope:local align:4 +@115542 = .rodata:0x000004BC; // type:object size:0x4 scope:local align:4 +@115730 = .rodata:0x000004C0; // type:object size:0x4 scope:local align:4 +@115731 = .rodata:0x000004C4; // type:object size:0x4 scope:local align:4 +@115732 = .rodata:0x000004C8; // type:object size:0x4 scope:local align:4 +@116032 = .rodata:0x000004CC; // type:object size:0x4 scope:local align:4 +@116033 = .rodata:0x000004D0; // type:object size:0x4 scope:local align:4 +@116034 = .rodata:0x000004D4; // type:object size:0x4 scope:local align:4 +@116035 = .rodata:0x000004D8; // type:object size:0x4 scope:local align:4 +@116036 = .rodata:0x000004DC; // type:object size:0x4 scope:local align:4 +@116037 = .rodata:0x000004E0; // type:object size:0x4 scope:local align:4 +...data.0 = .data:0x00000000; // type:label scope:local align:4 +l_resALink = .data:0x00000008; // type:object size:0x4 scope:global align:4 data:4byte +lbl_378_data_C = .data:0x0000000C; // type:object size:0x5 data:string +lbl_378_data_11 = .data:0x00000011; // type:object size:0x5 data:string +l_resName = .data:0x00000018; // type:object size:0x14 scope:global align:4 +l_bmdGetParamList = .data:0x0000002C; // type:object size:0x14 scope:global align:4 +l_BouBckParamList = .data:0x00000040; // type:object size:0x1F8 scope:global align:4 +l_BouFaceParamList = .data:0x00000238; // type:object size:0x114 scope:global align:4 +l_BouBtpParamList = .data:0x0000034C; // type:object size:0xB8 scope:global align:4 +l_BouBtkParamList = .data:0x00000404; // type:object size:0x8 scope:global align:4 +l_BouAnmParamList = .data:0x0000040C; // type:object size:0x10 scope:global align:4 +l_GrdBckParamList = .data:0x0000041C; // type:object size:0x1F8 scope:global align:4 +l_GrdFaceParamList = .data:0x00000614; // type:object size:0x114 scope:global align:4 +l_GrdBtpParamList = .data:0x00000728; // type:object size:0xB8 scope:global align:4 +l_GrdBtkParamList = .data:0x000007E0; // type:object size:0x8 scope:global align:4 +l_GrdAnmParamList = .data:0x000007E8; // type:object size:0x10 scope:global align:4 +l_anmList = .data:0x000007F8; // type:object size:0x8 scope:global align:4 +lbl_378_data_800 = .data:0x00000800; // type:object size:0xB data:string +lbl_378_data_80B = .data:0x0000080B; // type:object size:0xC data:string +lbl_378_data_817 = .data:0x00000817; // type:object size:0xC data:string +lbl_378_data_823 = .data:0x00000823; // type:object size:0xC data:string +lbl_378_data_82F = .data:0x0000082F; // type:object size:0xC data:string +lbl_378_data_83B = .data:0x0000083B; // type:object size:0xA data:string +l_evtNames = .data:0x00000848; // type:object size:0x1C scope:global align:4 data:4byte +lbl_378_data_864 = .data:0x00000864; // type:object size:0x9 data:string +l_myName = .data:0x00000870; // type:object size:0x4 scope:global align:4 +mEvtSeqList__15daNpcWrestler_c = .data:0x00000874; // type:object size:0x54 scope:global align:4 data:4byte +@112562 = .data:0x000008C8; // type:object size:0xC scope:local align:4 +@112563 = .data:0x000008D4; // type:object size:0xC scope:local align:4 +@112840 = .data:0x000008E0; // type:object size:0xC scope:local align:4 data:4byte +@112898 = .data:0x000008EC; // type:object size:0x6C scope:local align:4 +@113076 = .data:0x00000958; // type:object size:0xC scope:local align:4 +@113077 = .data:0x00000964; // type:object size:0xC scope:local align:4 +@113078 = .data:0x00000970; // type:object size:0xC scope:local align:4 +@113197 = .data:0x0000097C; // type:object size:0xC scope:local align:4 +@113198 = .data:0x00000988; // type:object size:0xC scope:local align:4 +@113199 = .data:0x00000994; // type:object size:0xC scope:local align:4 +@113200 = .data:0x000009A0; // type:object size:0xC scope:local align:4 +@113201 = .data:0x000009AC; // type:object size:0xC scope:local align:4 +@113244 = .data:0x000009B8; // type:object size:0xC scope:local align:4 +@113271 = .data:0x000009C4; // type:object size:0xC scope:local align:4 +@113272 = .data:0x000009D0; // type:object size:0xC scope:local align:4 +@113273 = .data:0x000009DC; // type:object size:0xC scope:local align:4 +@113274 = .data:0x000009E8; // type:object size:0xC scope:local align:4 +@113299 = .data:0x000009F4; // type:object size:0xC scope:local align:4 data:4byte +@113367 = .data:0x00000A00; // type:object size:0xC scope:local align:4 data:4byte +@113368 = .data:0x00000A0C; // type:object size:0xC scope:local align:4 data:4byte +@113436 = .data:0x00000A18; // type:object size:0x1C scope:local align:4 +@113506 = .data:0x00000A34; // type:object size:0xC scope:local align:4 +@113507 = .data:0x00000A40; // type:object size:0xC scope:local align:4 +@113508 = .data:0x00000A4C; // type:object size:0xC scope:local align:4 +@113509 = .data:0x00000A58; // type:object size:0xC scope:local align:4 +@113510 = .data:0x00000A64; // type:object size:0xC scope:local align:4 +@113511 = .data:0x00000A70; // type:object size:0xC scope:local align:4 +@113512 = .data:0x00000A7C; // type:object size:0xC scope:local align:4 +@113513 = .data:0x00000A88; // type:object size:0xC scope:local align:4 +@113514 = .data:0x00000A94; // type:object size:0xC scope:local align:4 +@113515 = .data:0x00000AA0; // type:object size:0xC scope:local align:4 +@113516 = .data:0x00000AAC; // type:object size:0xC scope:local align:4 +@113517 = .data:0x00000AB8; // type:object size:0xC scope:local align:4 +@113518 = .data:0x00000AC4; // type:object size:0xC scope:local align:4 +@113519 = .data:0x00000AD0; // type:object size:0xC scope:local align:4 +@113520 = .data:0x00000ADC; // type:object size:0xC scope:local align:4 +@113521 = .data:0x00000AE8; // type:object size:0xC scope:local align:4 +@113522 = .data:0x00000AF4; // type:object size:0xC scope:local align:4 +@113523 = .data:0x00000B00; // type:object size:0xC scope:local align:4 +@113524 = .data:0x00000B0C; // type:object size:0xC scope:local align:4 +@113525 = .data:0x00000B18; // type:object size:0xC scope:local align:4 +@113526 = .data:0x00000B24; // type:object size:0xC scope:local align:4 +@113527 = .data:0x00000B30; // type:object size:0xC scope:local align:4 +@113528 = .data:0x00000B3C; // type:object size:0xC scope:local align:4 +@113529 = .data:0x00000B48; // type:object size:0xC scope:local align:4 +@113530 = .data:0x00000B54; // type:object size:0xC scope:local align:4 +@113768 = .data:0x00000B60; // type:object size:0xC scope:local align:4 +@113769 = .data:0x00000B6C; // type:object size:0xC scope:local align:4 +@113770 = .data:0x00000B78; // type:object size:0xC scope:local align:4 +@113890 = .data:0x00000B84; // type:object size:0xC scope:local align:4 +@113891 = .data:0x00000B90; // type:object size:0xC scope:local align:4 +@113892 = .data:0x00000B9C; // type:object size:0xC scope:local align:4 +@113999 = .data:0x00000BA8; // type:object size:0xC scope:local align:4 data:4byte +@114000 = .data:0x00000BB4; // type:object size:0xC scope:local align:4 data:4byte +@114125 = .data:0x00000BC0; // type:object size:0xC scope:local align:4 +@114126 = .data:0x00000BCC; // type:object size:0xC scope:local align:4 +@114127 = .data:0x00000BD8; // type:object size:0xC scope:local align:4 +@114128 = .data:0x00000BE4; // type:object size:0xC scope:local align:4 +@114255 = .data:0x00000BF0; // type:object size:0xC scope:local align:4 data:4byte +@114256 = .data:0x00000BFC; // type:object size:0xC scope:local align:4 data:4byte +@114399 = .data:0x00000C08; // type:object size:0xC scope:local align:4 +@114400 = .data:0x00000C14; // type:object size:0xC scope:local align:4 +@114401 = .data:0x00000C20; // type:object size:0xC scope:local align:4 +@114402 = .data:0x00000C2C; // type:object size:0xC scope:local align:4 +@114443 = .data:0x00000C38; // type:object size:0xC scope:local align:4 +@114444 = .data:0x00000C44; // type:object size:0xC scope:local align:4 +@114445 = .data:0x00000C50; // type:object size:0xC scope:local align:4 +@114446 = .data:0x00000C5C; // type:object size:0xC scope:local align:4 +@114529 = .data:0x00000C68; // type:object size:0xC scope:local align:4 +@114530 = .data:0x00000C74; // type:object size:0xC scope:local align:4 +@114531 = .data:0x00000C80; // type:object size:0xC scope:local align:4 +@114532 = .data:0x00000C8C; // type:object size:0xC scope:local align:4 +@114628 = .data:0x00000C98; // type:object size:0xC scope:local align:4 +@114629 = .data:0x00000CA4; // type:object size:0xC scope:local align:4 +@114630 = .data:0x00000CB0; // type:object size:0xC scope:local align:4 +@114631 = .data:0x00000CBC; // type:object size:0xC scope:local align:4 +@114660 = .data:0x00000CC8; // type:object size:0xC scope:local align:4 +@114661 = .data:0x00000CD4; // type:object size:0xC scope:local align:4 +@114662 = .data:0x00000CE0; // type:object size:0xC scope:local align:4 +@114663 = .data:0x00000CEC; // type:object size:0xC scope:local align:4 +@114696 = .data:0x00000CF8; // type:object size:0xC scope:local align:4 +@114697 = .data:0x00000D04; // type:object size:0xC scope:local align:4 +@114698 = .data:0x00000D10; // type:object size:0xC scope:local align:4 +@114721 = .data:0x00000D1C; // type:object size:0xC scope:local align:4 +@114722 = .data:0x00000D28; // type:object size:0xC scope:local align:4 +@114723 = .data:0x00000D34; // type:object size:0xC scope:local align:4 +@114724 = .data:0x00000D40; // type:object size:0xC scope:local align:4 +@114725 = .data:0x00000D4C; // type:object size:0xC scope:local align:4 +@114754 = .data:0x00000D58; // type:object size:0xC scope:local align:4 data:4byte +@114755 = .data:0x00000D64; // type:object size:0xC scope:local align:4 data:4byte +@114783 = .data:0x00000D70; // type:object size:0xC scope:local align:4 data:4byte +@114784 = .data:0x00000D7C; // type:object size:0xC scope:local align:4 data:4byte +@114844 = .data:0x00000D88; // type:object size:0xC scope:local align:4 data:4byte +@114867 = .data:0x00000D94; // type:object size:0xC scope:local align:4 data:4byte +@114868 = .data:0x00000DA0; // type:object size:0xC scope:local align:4 data:4byte +@114944 = .data:0x00000DAC; // type:object size:0xC scope:local align:4 data:4byte +@115027 = .data:0x00000DB8; // type:object size:0xC scope:local align:4 data:4byte +@115174 = .data:0x00000DC4; // type:object size:0x2C scope:local align:4 +@115191 = .data:0x00000DF0; // type:object size:0xC scope:local align:4 data:4byte +@115240 = .data:0x00000DFC; // type:object size:0xC scope:local align:4 data:4byte +@115241 = .data:0x00000E08; // type:object size:0xC scope:local align:4 data:4byte +@115321 = .data:0x00000E14; // type:object size:0xC scope:local align:4 data:4byte +@115362 = .data:0x00000E20; // type:object size:0xC scope:local align:4 data:4byte +@115363 = .data:0x00000E2C; // type:object size:0xC scope:local align:4 data:4byte +@115434 = .data:0x00000E38; // type:object size:0xC scope:local align:4 data:4byte +@115477 = .data:0x00000E44; // type:object size:0xC scope:local align:4 +@115545 = .data:0x00000E50; // type:object size:0x24 scope:local align:4 +@115544 = .data:0x00000E74; // type:object size:0x24 scope:local align:4 +@115554 = .data:0x00000E98; // type:object size:0xC scope:local align:4 data:4byte +@115595 = .data:0x00000EA4; // type:object size:0xC scope:local align:4 data:4byte +daNpcWrestler_MethodTable = .data:0x00000EB0; // type:object size:0x20 scope:global align:4 +g_profile_NPC_WRESTLER = .data:0x00000ED0; // type:object size:0x30 scope:global align:4 +@115671 = .data:0x00000F00; // type:object size:0xC scope:local align:4 +@115672 = .data:0x00000F0C; // type:object size:0xC scope:local align:4 +@115673 = .data:0x00000F18; // type:object size:0xC scope:local align:4 +@115674 = .data:0x00000F24; // type:object size:0xC scope:local align:4 +__vt__15daNpcWrestler_c = .data:0x00000F30; // type:object size:0x48 scope:global align:4 +lbl_378_data_F78 = .data:0x00000F78; // type:object size:0x10 data:string +@103108 = .data:0x00000F88; // type:object size:0x14 scope:local align:4 +__RTTI__15daNpcWrestler_c = .data:0x00000F9C; // type:object size:0x8 data:string +__vt__21daNpcWrestler_Param_c = .data:0x00000FA4; // type:object size:0xC scope:global align:4 +lbl_378_data_FB0 = .data:0x00000FB0; // type:object size:0x16 data:string +__RTTI__21daNpcWrestler_Param_c = .data:0x00000FC8; // type:object size:0x8 scope:global align:4 +lbl_378_data_FD0 = .data:0x00000FD0; // type:object size:0x9 data:string +@103111 = .data:0x00000FDC; // type:object size:0xC scope:local align:4 +__vt__15daNpcF_Lookat_c = .data:0x00000FF0; // type:object size:0xC scope:global align:4 +lbl_378_data_FFC = .data:0x00000FFC; // type:object size:0x10 data:string +__RTTI__15daNpcF_Lookat_c = .data:0x0000100C; // type:object size:0x8 scope:global align:4 +__vt__18daNpcF_ActorMngr_c = .data:0x00001014; // type:object size:0xC scope:global align:4 +lbl_378_data_1020 = .data:0x00001020; // type:object size:0x13 data:string +__RTTI__18daNpcF_ActorMngr_c = .data:0x00001034; // type:object size:0x8 scope:global align:4 +lbl_378_data_103C = .data:0x0000103C; // type:object size:0x34 +@103185 = .data:0x00001070; // type:object size:0x3C scope:local align:4 +lbl_378_data_10AC = .data:0x000010AC; // type:object size:0x14 +@103187 = .data:0x000010C0; // type:object size:0x34 scope:local align:4 +lbl_378_data_10F4 = .data:0x000010F4; // type:object size:0x14 +@103245 = .data:0x00001108; // type:object size:0x24 scope:local align:4 +lbl_378_data_112C = .data:0x0000112C; // type:object size:0x18 +@103247 = .data:0x00001144; // type:object size:0xC scope:local align:4 +lbl_378_data_1150 = .data:0x00001150; // type:object size:0x1C +@103249 = .data:0x0000116C; // type:object size:0xC scope:local align:4 +lbl_378_data_1178 = .data:0x00001178; // type:object size:0xE8 +lbl_378_data_1260 = .data:0x00001260; // type:object size:0x4 data:string +lbl_378_data_1264 = .data:0x00001264; // type:object size:0x6 data:string +lbl_378_data_126A = .data:0x0000126A; // type:object size:0x6 data:string +lbl_378_data_1270 = .data:0x00001270; // type:object size:0x4 data:string +lbl_378_data_1274 = .data:0x00001274; // type:object size:0x4 data:string +lbl_378_data_1278 = .data:0x00001278; // type:object size:0x10 data:string +__global_destructor_chain = .bss:0x00000000; // type:object size:0x4 scope:global align:4 +@98326 = .bss:0x00000008; // type:object size:0xC scope:local align:4 +l_HIO = .bss:0x00000014; // type:object size:0x4 scope:global align:4 +@98622 = .bss:0x00000018; // type:object size:0xC scope:local align:4 +lbl_378_bss_24 = .bss:0x00000024; // type:object size:0x1 data:byte +eyeOffset$localstatic3$setAttnPos__15daNpcWrestler_cFv = .bss:0x00000028; // type:object size:0xC scope:local align:4 data:float diff --git a/config/RZDE01_00/rels/d_a_set_bgobj/splits.txt b/config/RZDE01_00/rels/d_a_set_bgobj/splits.txt new file mode 100644 index 0000000000..c9e50e5fa5 --- /dev/null +++ b/config/RZDE01_00/rels/d_a_set_bgobj/splits.txt @@ -0,0 +1,13 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .rodata type:rodata align:8 + .data type:data align:16 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +d/actor/d_a_set_bgobj.cpp: + .text start:0x0000005C end:0x000001A0 + .data start:0x00000000 end:0x00000060 diff --git a/config/RZDE01_00/rels/d_a_set_bgobj/symbols.txt b/config/RZDE01_00/rels/d_a_set_bgobj/symbols.txt new file mode 100644 index 0000000000..688dbbef6c --- /dev/null +++ b/config/RZDE01_00/rels/d_a_set_bgobj/symbols.txt @@ -0,0 +1,14 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global +CreateInit__12daSetBgObj_cFv = .text:0x0000005C; // type:function size:0x84 scope:global +create__12daSetBgObj_cFv = .text:0x000000E0; // type:function size:0x8C scope:global +daSetBgObj_Delete__FP12daSetBgObj_c = .text:0x0000016C; // type:function size:0x30 scope:global +daSetBgObj_Create__FP10fopAc_ac_c = .text:0x0000019C; // type:function size:0x4 scope:global +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global +lbl_26_rodata_0 = .rodata:0x00000000; // type:object size:0x9 data:string +l_bg_profName$3618 = .data:0x00000000; // type:object size:0xA scope:local +lbl_26_data_A = .data:0x0000000A; // type:object size:0x3 data:string +l_daSetBgObj_Method = .data:0x00000010; // type:object size:0x20 scope:global +g_profile_SET_BG_OBJ = .data:0x00000030; // type:object size:0x30 scope:global diff --git a/config/RZDE01_00/rels/f_pc_profile_lst/splits.txt b/config/RZDE01_00/rels/f_pc_profile_lst/splits.txt new file mode 100644 index 0000000000..41392a3439 --- /dev/null +++ b/config/RZDE01_00/rels/f_pc_profile_lst/splits.txt @@ -0,0 +1,12 @@ +Sections: + .text type:code align:4 + .ctors type:rodata align:4 + .dtors type:rodata align:4 + .data type:data align:8 + +REL/executor.c: + .text start:0x00000000 end:0x0000005C + +f_pc/f_pc_profile_lst.cpp: + .text start:0x0000005C end:0x00000080 + .data start:0x00000000 end:0x00000C5C diff --git a/config/RZDE01_00/rels/f_pc_profile_lst/symbols.txt b/config/RZDE01_00/rels/f_pc_profile_lst/symbols.txt new file mode 100644 index 0000000000..1d3f938956 --- /dev/null +++ b/config/RZDE01_00/rels/f_pc_profile_lst/symbols.txt @@ -0,0 +1,8 @@ +_prolog = .text:0x00000000; // type:function size:0x2C scope:global +_epilog = .text:0x0000002C; // type:function size:0x2C scope:global +_unresolved = .text:0x00000058; // type:function size:0x4 scope:global +ModuleProlog = .text:0x0000005C; // type:function size:0x14 scope:global +ModuleEpilog = .text:0x00000070; // type:function size:0x10 scope:global +_ctors = .ctors:0x00000000; // type:label scope:global +_dtors = .dtors:0x00000000; // type:label scope:global +g_fpcPfLst_ProfileList = .data:0x00000000; // type:object size:0xC5C scope:global diff --git a/configure.py b/configure.py index d00d071b28..ae30c5dc8e 100755 --- a/configure.py +++ b/configure.py @@ -1727,7 +1727,7 @@ config.libs = [ ), ], }, - Rel("f_pc_profile_lst", [Object(Matching, "f_pc/f_pc_profile_lst.cpp")]), + Rel("f_pc_profile_lst", [Object(MatchingFor(ALL_GCN, "Shield", "ShieldD"), "f_pc/f_pc_profile_lst.cpp")]), ActorRel(MatchingFor(ALL_GCN), "d_a_andsw"), ActorRel(MatchingFor(ALL_GCN), "d_a_bg"), ActorRel(MatchingFor(ALL_GCN), "d_a_bg_obj"), From 550f54d8bed3eece6c9cac3e1417c42dee82a65b Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Mon, 8 Dec 2025 15:10:37 -0500 Subject: [PATCH 08/13] decent work (#2931) --- include/d/actor/d_a_boomerang.h | 2 +- include/d/actor/d_a_e_hz.h | 11 +- src/d/actor/d_a_e_hz.cpp | 558 ++++++++++++++++++-------------- 3 files changed, 314 insertions(+), 257 deletions(-) diff --git a/include/d/actor/d_a_boomerang.h b/include/d/actor/d_a_boomerang.h index 331adf7973..d4a1335fd7 100644 --- a/include/d/actor/d_a_boomerang.h +++ b/include/d/actor/d_a_boomerang.h @@ -114,7 +114,7 @@ public: u32 checkStateFlg0(daBoomerang_FLG0 i_flag) const { return m_stateFlg0 & i_flag; } void onStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 |= flag; } void offStateFlg0(daBoomerang_FLG0 flag) { m_stateFlg0 &= ~flag; } - u32 getReturnFlg() { return checkStateFlg0(FLG0_1); } + u32 getReturnFlg() const { return checkStateFlg0(FLG0_1); } void onWindCatch() { onStateFlg0(WIND_CATCH); } bool checkForceDelete() const { return m_forceDelete; } void onForceDelete() { m_forceDelete = true; } diff --git a/include/d/actor/d_a_e_hz.h b/include/d/actor/d_a_e_hz.h index 9d6a6ce763..7e5902e016 100644 --- a/include/d/actor/d_a_e_hz.h +++ b/include/d/actor/d_a_e_hz.h @@ -17,7 +17,8 @@ * * @details Enemy - Tile Worm * - */ +*/ + class daE_HZ_c : public fopEn_enemy_c { public: void setBck(int, u8, f32, f32); @@ -75,9 +76,9 @@ private: /* 0x674 */ daObjCarry_c* mpCarryActor; /* 0x678 */ cXyz field_0x678; /* 0x684 */ cXyz mSmokeEffectPosition; - /* 0x690 */ csXyz field_0x690; - /* 0x696 */ csXyz field_0x696; - /* 0x69C */ csXyz field_0x69c; + /* 0x690 */ csXyz mBackbone1YZRot; + /* 0x696 */ csXyz mBackbone2YZRot; + /* 0x69C */ csXyz mBackbone3YZRot; /* 0x6A4 */ f32 mPlayerDist; /* 0x6A8 */ f32 field_0x6a8; /* 0x6AC */ f32 mGroundCross; @@ -102,7 +103,7 @@ private: /* 0x6E2 */ s16 mCameraOnTimer; /* 0x6E4 */ u8 field_0x6e4; /* 0x6E5 */ u8 mSetModelAnmMtx; - /* 0x6E6 */ u8 field_0x6E6[0x6E7 - 0x6E6]; + /* 0x6E6 */ u8 field_0x6E6; /* 0x6E7 */ u8 mDisableShadow; // Shadow is active when this is false /* 0x6E8 */ u8 field_0x6e8; /* 0x6E9 */ u8 field_0x6e9; diff --git a/src/d/actor/d_a_e_hz.cpp b/src/d/actor/d_a_e_hz.cpp index ada079e8a9..4bc16b0d61 100644 --- a/src/d/actor/d_a_e_hz.cpp +++ b/src/d/actor/d_a_e_hz.cpp @@ -7,9 +7,25 @@ #include "Z2AudioLib/Z2Instances.h" #include "d/actor/d_a_e_hz.h" +#include "../assets/GZ2E01/res/Object/E_hz.h" #include "d/d_camera.h" #include "f_op/f_op_actor_enemy.h" +#include "d/d_debug_viewer.h" +enum daE_HZ_Action { + /* 0 */ ACTION_WAIT, + /* 1 */ ACTION_HIDE, + /* 2 */ ACTION_ATTACK, + /* 3 */ ACTION_AWAY, + /* 4 */ ACTION_WIND, + /* 5 */ ACTION_DAMAGE, + /* 6 */ ACTION_DEATH, + /* 7 */ ACTION_CHANCE, + /* 8 */ ACTION_WIND_CHANCE, + /* 9 */ ACTION_WIND_WALK, + /* 10 */ ACTION_WATER_DEATH, + /* 11 */ ACTION_DEATH_WAIT +}; class daE_HZ_HIO_c : public JORReflexible { public: @@ -34,21 +50,6 @@ public: /* 0x38 */ f32 camera_off_timer; }; -enum daE_HZ_Action { - /* 0 */ ACTION_WAIT, - /* 1 */ ACTION_HIDE, - /* 2 */ ACTION_ATTACK, - /* 3 */ ACTION_AWAY, - /* 4 */ ACTION_WIND, - /* 5 */ ACTION_DAMAGE, - /* 6 */ ACTION_DEATH, - /* 7 */ ACTION_CHANCE, - /* 8 */ ACTION_WIND_CHANCE, - /* 9 */ ACTION_WIND_WALK, - /* 10 */ ACTION_WATER_DEATH, - /* 11 */ ACTION_DEATH_WAIT -}; - daE_HZ_HIO_c::daE_HZ_HIO_c() { enemy_sample = -1; basic_size = 1.0f; @@ -66,22 +67,42 @@ daE_HZ_HIO_c::daE_HZ_HIO_c() { camera_off_timer = 50.0f; } -void daE_HZ_c::setBck(int i_index, u8 i_attr, f32 i_morf, f32 i_rate) { - J3DAnmTransform* transform = (J3DAnmTransform*)dComIfG_getObjectRes("E_HZ", i_index); +#if DEBUG +void daE_HZ_HIO_c::genMessage(JORMContext* ctx) { + ctx->genLabel(" 敵サンプル", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("基本サイズ", &basic_size, 0.0f, 5.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genCheckBox("PL発見半径表示", &pl_detection_radius_display, 1, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("PL発見半径(内)", &pl_detection_radius_in, 0.0f, 5000.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("PL発見半径(外)", &pl_detection_radius_outside, 0.0f, 5000.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("逃げ速度", &escape_speed, 0.0f, 200.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("ぴより時間", &piyori_time, 0.0f, 500.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("巻き込み回転速度", &reeling_rotation_speed, 0.0f, 10000.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("巻き込みY位置", &y_position_wrap, 0.0f, 1000.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("伸び溜め時間", &extension_time, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("伸びアニメ速度", &stretch_anim_speed, 0.0f, 1.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("伸び前の溜め時間", &retention_time_before_stretch, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genLabel("カメラ用タイマー", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("オンタイマー", &camera_on_timer, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("オフタイマー", &camera_off_timer, 0.0f, 100.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); +} +#endif - mpMorfSO->setAnm(transform, i_attr, i_morf, i_rate, 0.0f, -1.0f); +void daE_HZ_c::setBck(int i_index, u8 i_attr, f32 i_morf, f32 i_rate) { + mpMorfSO->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_HZ", i_index), i_attr, i_morf, i_rate, 0.0f, -1.0f); } bool daE_HZ_c::checkBck(int i_index) { - J3DAnmTransform* transform = (J3DAnmTransform*)dComIfG_getObjectRes("E_HZ", i_index); - - if (mpMorfSO->getAnm() == transform) { + if (mpMorfSO->getAnm() == (J3DAnmTransform*)dComIfG_getObjectRes("E_HZ", i_index)) { return true; } return false; } +static u8 l_HIOInit; + +static daE_HZ_HIO_c l_HIO; + int daE_HZ_c::draw() { g_env_light.settingTevStruct(0, ¤t.pos, &tevStr); g_env_light.setLightTevColorType_MAJI(mpModel2, &tevStr); @@ -90,13 +111,15 @@ int daE_HZ_c::draw() { if (field_0x6e8 != 0) { return 1; } + + J3DMaterial* material; J3DModel* morfModel = mpMorfSO->getModel(); g_env_light.setLightTevColorType_MAJI(morfModel, &tevStr); if (mReadyChangeColor != 0) { J3DModelData* morfModelData = morfModel->getModelData(); for (u16 i = 0; i < morfModelData->getMaterialNum(); i++) { - J3DMaterial* material = morfModelData->getMaterialNodePointer(i); + material = morfModelData->getMaterialNodePointer(i); material->getTevColor(0)->r = mColor; material->getTevColor(0)->g = mColor; material->getTevColor(0)->b = mColor; @@ -112,11 +135,26 @@ int daE_HZ_c::draw() { modified_pos.set(current.pos.x, current.pos.y + 100.0f, current.pos.z); if (!mDisableShadow) { - mShadowKey = dComIfGd_setShadow(mShadowKey, 1, morfModel, &modified_pos, 800.0f, 0.0f, + mShadowKey = dComIfGd_setShadow(mShadowKey, 1, morfModel, &modified_pos, nREG_F(19) + 800.0f, 0.0f, current.pos.y, mObjAcch.GetGroundH(), mObjAcch.m_gnd, &tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } + #if DEBUG + if (l_HIO.pl_detection_radius_display) { + cXyz pos(home.pos); + pos.y += 100.0f; + dDbVw_drawCircleOpa(pos, l_HIO.pl_detection_radius_in, (GXColor){0xC8, 0xC8, 0x00, 0xFF}, 1, 12); + dDbVw_drawCircleOpa(pos, l_HIO.pl_detection_radius_outside, (GXColor){0x00, 0xC8, 0x00, 0xFF}, 1, 12); + + if (field_0x6e4) { + pos = current.pos; + pos.y += mAcchCir.GetWallH(); + dDbVw_drawCircleOpa(pos, mAcchCir.GetWallR(), (GXColor){0x00, 0x00, 0xC8, 0xFF}, 1, 12); + } + } + #endif + return 1; } @@ -124,13 +162,9 @@ static int daE_HZ_Draw(daE_HZ_c* i_this) { return i_this->draw(); } -static u8 l_HIOInit; +static fopAc_ac_c* m_near_bomb; -static daE_HZ_HIO_c l_HIO; - -static daNbomb_c* m_near_bomb; - -static daObjCarry_c* m_near_carry; +static fopAc_ac_c* m_near_carry; static fopAc_ac_c* m_near_weapon; @@ -144,9 +178,9 @@ static void* s_obj_sub(void* i_actor, void* i_data) { !fopAcM_GetSpeed((fopAc_ac_c*)i_actor).y) { if (fopAcM_GetName(i_actor) == PROC_Obj_Carry) { - m_near_carry = static_cast(i_actor); + m_near_carry = (fopAc_ac_c*)i_actor; } else if (fopAcM_GetName(i_actor) == PROC_NBOMB) { - m_near_bomb = static_cast(i_actor); + m_near_bomb = (fopAc_ac_c*)i_actor; } } @@ -199,9 +233,7 @@ bool daE_HZ_c::checkHideStart() { } } - m_near_weapon = NULL; - m_near_carry = NULL; - m_near_bomb = NULL; + m_near_bomb = m_near_carry = m_near_weapon = NULL; fpcM_Search(s_obj_sub, this); @@ -222,10 +254,10 @@ bool daE_HZ_c::checkAttackStart() { field_0x6e9 = 0; if (fopAcM_searchPlayerDistanceXZ(this) < 100.0f && - fabsf(fopAcM_searchPlayerDistanceY(this)) < 110.0f) + std::abs(fopAcM_searchPlayerDistanceY(this)) < 110.0f) { if (!daPy_getPlayerActorClass()->checkBootsOrArmorHeavy()) { - field_0x6e9 |= 1; + field_0x6e9 |= (u8)1; } else { if (mAttackStartTimer == 0) { mMode = 2; @@ -236,21 +268,19 @@ bool daE_HZ_c::checkAttackStart() { } } - m_near_weapon = NULL; - m_near_carry = NULL; - m_near_bomb = NULL; + m_near_bomb = m_near_carry = m_near_weapon = NULL; fpcM_Search(s_obj_sub, this); cXyz unused; - if (m_near_bomb != NULL && !m_near_bomb->checkStateExplode()) { - field_0x6e9 |= 4; - mpBombActor = m_near_bomb; + if (m_near_bomb != NULL && !((daNbomb_c*)m_near_bomb)->checkStateExplode()) { + field_0x6e9 |= (u8)4; + mpBombActor = (daNbomb_c*)m_near_bomb; } if (m_near_carry != NULL) { - field_0x6e9 |= 2; - mpCarryActor = m_near_carry; + field_0x6e9 |= (u8)2; + mpCarryActor = (daObjCarry_c*)m_near_carry; } if (field_0x6e9) { @@ -294,11 +324,19 @@ void daE_HZ_c::checkFall() { if (mAction == ACTION_DEATH_WAIT || mAction == ACTION_WATER_DEATH) { return; } + if (mObjAcch.ChkGroundHit()) { int acch_ground_code = dComIfG_Bgsp().GetGroundCode(mObjAcch.m_gnd); + // FAKEMATCH??? + #if DEBUG + if (acch_ground_code != 4 && acch_ground_code != 10 && acch_ground_code != 5) { + return; + } + #else if (acch_ground_code != 10 && (acch_ground_code - 4 > 1u)) { return; } + #endif } dBgS_GndChk gnd_chk; @@ -328,7 +366,8 @@ void daE_HZ_c::setCloseSmokeEffect() { modified_pos.y += 100.0f; gnd_chk.SetPos(&modified_pos); - if (dComIfG_Bgsp().GroundCross(&gnd_chk) != -G_CM3D_F_INF) { + f32 groundCross = dComIfG_Bgsp().GroundCross(&gnd_chk); + if (groundCross != -G_CM3D_F_INF) { dComIfGp_particle_setPolyColor(dPa_RM(ID_ZM_S_HAZIKIPLATESMOKE00), gnd_chk, &mSmokeEffectPosition, &tevStr, &shape_angle, NULL, 0, NULL, -1, NULL); } @@ -337,6 +376,8 @@ void daE_HZ_c::setCloseSmokeEffect() { } void daE_HZ_c::executeWait() { + f32 target; + field_0x566 = 0; mSetModelAnmMtx = true; @@ -345,19 +386,17 @@ void daE_HZ_c::executeWait() { mSpheres[0].OnTgSetBit(); mSpheres[0].SetTgType(0x10040); setBck(0x10, 2, 0.0f, 1.0f); - shape_angle.y = mPlayerAngleY + 0x2000 & 0xC000; + shape_angle.y = (s16)(mPlayerAngleY + 0x2000) & 0xC000; mMode = 1; field_0x6e4 = 0; field_0x6b4 = 0; /* fallthrough */ - case 1: if (!cLib_chaseF(¤t.pos.y, home.pos.y + 30.0f, 2.0f)) { break; } else { mMode = 2; - s16 angle = shape_angle.y = shape_angle.y + 0x2000 & 0xC000; - field_0x6b2 = angle; + field_0x6b2 = shape_angle.y = (s16)(shape_angle.y + 0x2000) & 0xC000; field_0x6cc = 0; field_0x6b6 = 0; } @@ -399,6 +438,7 @@ void daE_HZ_c::executeWait() { mWaitTimer = 10; field_0x6cc = 5; return; + case 5: cLib_chaseAngleS(&field_0x6b6, 0, 0x80); if (mWaitTimer == 0) { @@ -409,6 +449,7 @@ void daE_HZ_c::executeWait() { } } } + if (field_0x6cc >= 2 && field_0x6cc <= 4 && cLib_distanceAngleS(shape_angle.y, mPlayerAngleY) < 0x800) { @@ -420,12 +461,12 @@ void daE_HZ_c::executeWait() { case 3: case 4: - if (cLib_chaseF(¤t.pos.y, home.pos.y + 30.0f, 5.0f)) { - field_0x6b4 += 0x800; + target = home.pos.y + 30.0f; + if (cLib_chaseF(¤t.pos.y, target, 5.0f)) { + field_0x6b4 += (s16)0x800; current.pos.y += cM_ssin(field_0x6b4) * 1.5f; cLib_chaseAngleS(&shape_angle.y, mPlayerAngleY, 0x400); } - break; } if (checkBck(0x10) && (mpMorfSO->checkFrame(0.0f) || mpMorfSO->checkFrame(30.0f))) { @@ -454,6 +495,8 @@ f32 daE_HZ_c::getHideSpeed() { } void daE_HZ_c::executeHide() { + f32 step; + field_0x566 = 0; mSetModelAnmMtx = true; @@ -477,9 +520,8 @@ void daE_HZ_c::executeHide() { mMode = 1; setBck(0x10, 2, 0.0f, 1.0f); } - field_0x6b2 = shape_angle.y + 0x2000 & 0xC000; - speedF = 0.0f; - speed.y = 0.0f; + field_0x6b2 = (s16)(shape_angle.y + 0x2000) & 0xC000; + speed.y = speedF = 0.0f; gravity = 0.0f; break; @@ -489,7 +531,8 @@ void daE_HZ_c::executeHide() { chaseAngle = 0x200; } else { chaseAngle = 0x800; - if (cLib_chaseF(¤t.pos.y, home.pos.y, getHideSpeed())) { + step = getHideSpeed(); + if (cLib_chaseF(¤t.pos.y, home.pos.y, step)) { shape_angle.y = field_0x6b2; } } @@ -499,12 +542,12 @@ void daE_HZ_c::executeHide() { break; case 2: - f32 step; if (mPlayerDist > l_HIO.pl_detection_radius_outside) { step = 5.0f; } else { step = getHideSpeed(); } + if (cLib_chaseF(¤t.pos.y, home.pos.y, step) && mWaitTimer == 0) { mMode = 3; setBck(0xD, 0, 3.0f, 0.0f); @@ -520,7 +563,7 @@ void daE_HZ_c::executeHide() { mMode = 5; mRetentionBeforeStretchTimer = l_HIO.retention_time_before_stretch; } - shape_angle.y = mPlayerAngleY + 0x2000 & 0xC000; + shape_angle.y = (s16)(mPlayerAngleY + 0x2000) & 0xC000; break; } if (!checkHideStart() && !dComIfGp_checkPlayerStatus0(0, 0x4000)) { @@ -647,8 +690,7 @@ void daE_HZ_c::initBackWalk() { cXyz start; cXyz end; - speed.y = 0.0f; - speedF = 0.0f; + speedF = speed.y = 0.0f; setTgSetBit(1); mSpheres[0].OnTgSetBit(); mSpheres[0].SetTgType(0x10000); @@ -671,9 +713,8 @@ void daE_HZ_c::initBackWalk() { linChk.Set(&start, &end, NULL); if (dComIfG_Bgsp().LineCross(&linChk)) { - s16 angle = modifiedTargetAngleY & 0x4000 ? (s16)((targetAngleY + 0x4000) & 0x8000) : - (s16)((targetAngleY & 0x8000) + 0x4000); - cLib_offsetPos(&field_0x678, &home.pos, angle, &position); + cLib_offsetPos(&field_0x678, &home.pos, modifiedTargetAngleY & 0x4000 ? (s16)((targetAngleY + 0x4000) & 0x8000) : + (s16)((targetAngleY & 0x8000) + 0x4000), &position); } } } @@ -783,7 +824,7 @@ void daE_HZ_c::executeAway() { if (home.pos == current.pos) { if (mpMorfSO->isStop()) { setCloseSmokeEffect(); - shape_angle.y = shape_angle.y + 0x2000 & 0xC000; + shape_angle.y = (s16)(shape_angle.y + 0x2000) & 0xC000; gravity = 0.0f; setActionMode(ACTION_HIDE); } @@ -806,7 +847,7 @@ void daE_HZ_c::setWindEnd() { speed.y = 20.0f; field_0x6b2 = 0x1000; - if (fabsf(fopAcM_searchPlayerDistanceY(this)) >= 300.0f) { + if (std::abs(fopAcM_searchPlayerDistanceY(this)) >= 300.0f) { mWaitTimer = 5; } else { mWaitTimer = 10; @@ -829,15 +870,12 @@ void daE_HZ_c::executeWind() { switch (mMode) { case 0: - gravity = 0.0f; - speedF = 0.0f; - speed.y = 0.0f; + speed.y = speedF = gravity = 0.0f; mSpheres[0].OffTgSetBit(); setBck(0x13, 0, 0.0f, 1.0f); mSound.startCreatureSound(Z2SE_EN_HZ_WIND, 0, -1); mSound.startCreatureVoice(Z2SE_EN_HZ_V_WIND_NAKU, -1); - speed.y = 0.0f; - speedF = 0.0f; + speedF = speed.y = 0.0f; mMode = 1; field_0x6e4 = 0; @@ -848,16 +886,17 @@ void daE_HZ_c::executeWind() { if (playerDist < 100.0f) { playerDist = 100.0f; } + field_0x6cc = (s16)((playerDist * 15.0f) / 1000.0f); /* fallthrough */ - case 1: frame = 6.0f - frame / 3.0f; if (frame < 0.0f) { frame = 0.0f; } + current.pos.y += frame; - shape_angle.y -= 0x7D0; + shape_angle.y -= (s16)0x7D0; if (mpMorfSO->checkFrame(field_0x6cc) || mpBoomerangActor == NULL || mpBoomerangActor->getReturnFlg()) @@ -888,12 +927,14 @@ void daE_HZ_c::executeWind() { if (cLib_chaseF(&field_0x6a8, 0.0f, 10.0f)) { bVar = true; } + if (mpBoomerangActor->getReturnFlg() && fopAcM_searchPlayerDistance(mpBoomerangActor) < 500.0f) { bVar = true; } } + if (bVar) { mMode = 3; field_0x6e4 = 1; @@ -908,17 +949,20 @@ void daE_HZ_c::executeWind() { } } break; + case 3: if (mpBoomerangActor == NULL) { setWindEnd(); return; } + position = mpBoomerangActor->current.pos; if (mPlayerDist < 500.0f && mpBoomerangActor->getReturnFlg()) { setWindEnd(); return; } - field_0x6b2 += 0x800; + + field_0x6b2 += (s16)0x800; linChk.Set(¤t.pos, &position, NULL); if (!dComIfG_Bgsp().LineCross(&linChk)) { cLib_chaseF(¤t.pos.x, position.x + field_0x678.x * cM_ssin(field_0x6b2), 50.0f); @@ -926,6 +970,7 @@ void daE_HZ_c::executeWind() { } else { position.y += 10.0f; } + cLib_chaseF(&field_0x678.x, 0.0f, 20.0f); gndChk.SetPos(&position); @@ -945,8 +990,10 @@ void daE_HZ_c::executeWind() { if (mpMorfSO->isStop()) { cLib_chaseAngleS(&shape_angle.x, -0x8000, 0x400); } + shape_angle.y -= (s16)l_HIO.reeling_rotation_speed; break; + case 4: cLib_chaseAngleS(&shape_angle.x, -0x8000, 0x800); cLib_chaseAngleS(&shape_angle.z, field_0x678.z * cM_scos(field_0x6b4), 0x100); @@ -965,6 +1012,7 @@ void daE_HZ_c::executeWind() { speed.y = 15.0f; mMode = 5; } + shape_angle.y -= field_0x6b2; break; @@ -986,11 +1034,12 @@ void daE_HZ_c::executeWind() { } } } + shape_angle.y -= field_0x6b2; break; } - if (checkBck(0x13) && mpMorfSO->checkFrame(25.0f)) { + if (checkBck(dRes_ID_E_HZ_BCK_HZ_WIND_e) && mpMorfSO->checkFrame(25.0f)) { mSound.startCreatureVoice(Z2SE_EN_HZ_V_WIND, -1); } } @@ -1000,13 +1049,12 @@ void daE_HZ_c::executeChance() { case 0: gravity = -5.0f; field_0x6e4 = 1; - setBck(0xB, 2, 3.0f, 1.0f); + setBck(dRes_ID_E_HZ_BCK_HZ_FAINT_e, J3DFrameCtrl::EMode_LOOP, 3.0f, 1.0f); setTgSetBit(1); mSpheres[0].OnTgSetBit(); mSpheres[0].SetTgType(0x10000); mMode = 1; - shape_angle.z = 0; - shape_angle.x = 0; + shape_angle.x = shape_angle.z = 0; speedF = 0.0f; /* fallthrough */ @@ -1024,8 +1072,7 @@ void daE_HZ_c::executeChance() { void daE_HZ_c::initRollDamage() { current.angle.y = mAtInfo.mHitDirection.y + 0x8000; - shape_angle.z = 0; - shape_angle.x = 0; + shape_angle.x = shape_angle.z = 0; if (mAction == ACTION_DEATH) { if (field_0x6cc == 0) { @@ -1033,16 +1080,19 @@ void daE_HZ_c::initRollDamage() { field_0x6b6 = 0x1000; return; } + if (field_0x6cc == 1) { speedF = 35.0f; field_0x6b6 = 0x1400; return; } + if (field_0x6cc == 2) { speedF = 20.0f; field_0x6b6 = 0; return; } + speedF = 30.0f; field_0x6b6 = 0x800; } else { @@ -1051,11 +1101,13 @@ void daE_HZ_c::initRollDamage() { field_0x6b6 = 0; return; } + if (field_0x6cc == 1) { speedF = 30.0f; field_0x6b6 = 0x1000; return; } + speedF = 20.0f; field_0x6b6 = 0; } @@ -1066,14 +1118,16 @@ bool daE_HZ_c::doRollDamage() { if (mObjAcch.ChkGroundHit()) { if (speedF >= 3.0f) { - fopAcM_effSmokeSet1(&mSmokeKey, &mSmokeKey2, ¤t.pos, NULL, 1.5f, &tevStr, 0); + fopAcM_effSmokeSet2(&mSmokeKey, &mSmokeKey2, ¤t.pos, NULL, 1.5f, &tevStr); } + cLib_chaseF(&speedF, 0.0f, 1.0f); cLib_chaseAngleS(&field_0x6b6, 0, 0x80); if (!speedF && field_0x6b6 == 0 && mpMorfSO->isStop()) { return true; } } + return false; } @@ -1086,32 +1140,36 @@ void daE_HZ_c::executeDamage() { initRollDamage(); if (mPrevAction == 3) { mMode = 2; - setBck(0x12, 0, 5.0f, 1.0f); + setBck(dRes_ID_E_HZ_BCK_HZ_WALK_D_R_e, J3DFrameCtrl::EMode_NONE, 5.0f, 1.0f); } else { mMode = 1; - setBck(6, 0, 5.0f, 1.0f); + setBck(dRes_ID_E_HZ_BCK_HZ_DAMAGE_e, J3DFrameCtrl::EMode_NONE, 5.0f, 1.0f); } + mSound.startCreatureVoice(Z2SE_EN_HZ_V_DAMAGE, -1); mpMorfSO->setFrame(0.0f); - return; + break; case 1: if (speedF > 2.0f) { mSound.startCreatureSoundLevel(Z2SE_EN_HZ_SLIDE, 0, -1); } + if (mpMorfSO->checkFrame(28.0f)) { mSound.startCreatureSound(Z2SE_CM_BODYFALL_S, 0, -1); } + if (doRollDamage()) { setActionMode(ACTION_CHANCE); - return; + break; } + if (mPiyoriTimer == 0 && !speedF) { speedF = 0.0f; setTgSetBit(0); setActionMode(ACTION_AWAY); } - return; + break; case 2: if (doRollDamage()) { @@ -1209,11 +1267,9 @@ void daE_HZ_c::executeWindChance() { mSound.startCreatureVoice(Z2SE_EN_HZ_V_FAINT, -1); mMode = 1; field_0x6b6 = 0; - // f32 unused = l_HIO.reeling_rotation_speed; field_0x6b2 = l_HIO.reeling_rotation_speed; field_0x6b4 = 0; /* fallthrough */ - case 1: if (mpBoomerangActor == NULL) { setWindChanceEnd(); @@ -1221,7 +1277,7 @@ void daE_HZ_c::executeWindChance() { } end = mpBoomerangActor->current.pos; - field_0x6b6 += 0x800; + field_0x6b6 += (s16)0x800; start = current.pos; start.y += 50.0f; linChk.Set(&start, &end, NULL); @@ -1238,10 +1294,12 @@ void daE_HZ_c::executeWindChance() { if (mObjAcch.ChkGroundHit()) { speed.y = 20.0f; } - shape_angle.y -= field_0x6b2; - field_0x6b4 += 0x1000; - shape_angle.x = (s16)(cM_scos(field_0x6b4) * 6144.0f); + shape_angle.y -= field_0x6b2; + field_0x6b4 += (s16)0x1000; + shape_angle.x = (s16)(cM_scos(field_0x6b4) * 6144.0f); + break; + default: break; @@ -1249,13 +1307,14 @@ void daE_HZ_c::executeWindChance() { cLib_chaseAngleS(&field_0x6b2, 0, 0x100); cLib_chaseAngleS(&field_0x6b6, 0, 0x200); shape_angle.y -= field_0x6b2; - field_0x6b4 += 0x1000; + field_0x6b4 += (s16)0x1000; shape_angle.x = (s16)(field_0x6b6 * cM_scos(field_0x6b4)); if (mWaitTimer == 0) { if (mPiyoriTimer != 0) { - mPiyoriTimer += 20; + mPiyoriTimer += (s16)20; } + setActionMode(ACTION_CHANCE); } } @@ -1292,6 +1351,7 @@ void daE_HZ_c::setWaterEffect() { ID_ZI_J_DOWNWTRA_C, ID_ZI_J_DOWNWTRA_D, }; + cXyz position(current.pos.x, mGroundCross, current.pos.z); static cXyz sc(2.0f, 2.0f, 2.0f); @@ -1306,8 +1366,7 @@ void daE_HZ_c::executeWaterDeath() { switch (mMode) { case 0: - gravity = 0.0f; - speedF = 0.0f; + speedF = gravity = 0.0f; mMode = 1; setWaterEffect(); mSound.startCreatureSound(Z2SE_CM_BODYFALL_WATER_L, 0, -1); @@ -1377,27 +1436,25 @@ void daE_HZ_c::executeDeathWait() { mSound.deleteObject(); field_0x6e8 = 1; attention_info.flags = 0; - current.pos = home.pos; - eyePos = current.pos; - attention_info.position = eyePos; + attention_info.position = eyePos = current.pos = home.pos; fopAcM_SetGroup(this, 0); mMode = 3; - return; + break; case 1: mSound.deleteObject(); field_0x6e8 = 1; attention_info.flags = 0; - current.pos = home.pos; - eyePos = current.pos; - attention_info.position = eyePos; + attention_info.position = eyePos = current.pos = home.pos; fopAcM_SetGroup(this, 0); mMode = 4; - return; + break; } } void daE_HZ_c::damage_check() { + s16 angle; + if (mAction != 1 || mMode < 4) { if (mSpheres[0].ChkTgHit() && mSpheres[0].GetTgHitObj()->ChkAtType(AT_TYPE_BOOMERANG)) { mSpheres[0].ClrTgHit(); @@ -1410,134 +1467,135 @@ void daE_HZ_c::damage_check() { } setTgSetBit(0); mDamageDeathTimer = 10; - } else { - if (mDamageDeathTimer == 0) { - mStts.Move(); - cXyz player_pos(daPy_getPlayerActorClass()->current.pos); + } else if (mDamageDeathTimer == 0) { + mStts.Move(); + cXyz player_pos(daPy_getPlayerActorClass()->current.pos); - s32 bVar = 0; + s32 bVar = 0; - for (int i = 1; i <= 2; i++) { - if (mSpheres[i].ChkTgHit()) { - mAtInfo.mpCollider = mSpheres[i].GetTgHitObj(); + for (int i = 1; i <= 2; i++) { + if (mSpheres[i].ChkTgHit()) { + mAtInfo.mpCollider = mSpheres[i].GetTgHitObj(); - if (mAction == ACTION_ATTACK) { - mAtInfo.field_0x18 = 0x2a; - mAtInfo.mpCollider->SetAtAtp(0); - } else { - mAtInfo.field_0x18 = 0; - } + if (mAction == ACTION_ATTACK) { + mAtInfo.field_0x18 = 0x2a; + mAtInfo.mpCollider->SetAtAtp(0); + } else { + mAtInfo.field_0x18 = 0; + } - if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_SLINGSHOT)) { - mSound.startCreatureSound(Z2SE_HIT_PACHINKO, 0x2D, -1); - return; - } + if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_SLINGSHOT)) { + mSound.startCreatureSound(Z2SE_HIT_PACHINKO, 0x2D, -1); + return; + } - if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) { - bVar = true; - health = 0; - } + if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_IRON_BALL)) { + bVar = true; + health = 0; + } - cc_at_check(this, &mAtInfo); - if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_UNK)) { - mDamageDeathTimer = 0x14; - } else { - if (cc_pl_cut_bit_get() == 0x80) { - mDamageDeathTimer = 0x14; - } else { - mDamageDeathTimer = 10; - } - } + cc_at_check(this, &mAtInfo); + if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_UNK)) { + mDamageDeathTimer = 0x14; + } else if (cc_pl_cut_bit_get() == 0x80) { + mDamageDeathTimer = 0x14; + } else { + mDamageDeathTimer = 10; + } - if (mAtInfo.mAttackPower <= 1) { - mDamageDeathTimer = 10; - } + if (mAtInfo.mAttackPower <= 1) { + mDamageDeathTimer = KREG_S(8) + 10; + } - mSpheres[1].ClrTgHit(); - mSpheres[2].ClrTgHit(); - mSpheres[3].ClrTgHit(); + mSpheres[1].ClrTgHit(); + mSpheres[2].ClrTgHit(); + mSpheres[3].ClrTgHit(); - if (mAction == ACTION_ATTACK) { - setActionMode(ACTION_HIDE); - return; - } + if (mAction == ACTION_ATTACK) { + setActionMode(ACTION_HIDE); + return; + } - if (daPy_getPlayerActorClass()->getCutCount() >= 4 || - ((dCcD_GObjInf*)mAtInfo.mpCollider)->GetAtSpl() == 1) - { - bVar = true; - } + if (daPy_getPlayerActorClass()->getCutCount() >= 4 || + ((dCcD_GObjInf*)mAtInfo.mpCollider)->GetAtSpl() == 1) + { + bVar = true; + } - if (health < 1) { - field_0x6cc = 0; - if (bVar) { - field_0x6cc = 1; - } - if (mAction == ACTION_AWAY) { - field_0x6cc += 2; - } - setActionMode(ACTION_DEATH); - return; + if (health < 1) { + field_0x6cc = 0; + if (bVar) { + field_0x6cc = 1; } if (mAction == ACTION_AWAY) { - if (bVar) { - field_0x6cc = 1; - setActionMode(ACTION_DAMAGE); - return; - } - s16 angle = cLib_targetAngleY(&mSpheres[1].GetCoCP(), &player_pos) - - shape_angle.y; - if (i == 1) { - if (abs(angle) >= 0x4000) { - if (bVar) { - field_0x690.z = 0x5000; - field_0x696.z = -0x4000; - field_0x69c.z = 0; - } else { - field_0x690.z = 0x3000; - } - - } else if (bVar) { - field_0x690.z = -0x3000; - field_0x696.z = -0x2000; - field_0x69c.z = -0x1000; - } else { - field_0x690.z = -0x2000; - field_0x696.z = -0x1000; - field_0x69c.z = -0x800; - } - speedF = 0.0f; - } else if (bVar) { - field_0x690.z = 0x5000; - field_0x696.z = -0x4000; - field_0x69c.z = 0; - } else { - field_0x690.z = 0x3000; - } - - if (angle < -0x2800) { - angle = -0x2800; - } - if (angle > 0x2800) { - angle = 0x2800; - } - - field_0x690.y = angle; - mSound.startCreatureVoice(Z2SE_EN_HZ_V_DAMAGE, -1); - return; + field_0x6cc += 2; } - if (bVar) { - field_0x6cc = 1; - } else { - field_0x6cc = 0; - if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK)) { - field_0x6cc = 2; - } - } - setActionMode(ACTION_DAMAGE); + + setActionMode(ACTION_DEATH); return; } + + if (mAction == ACTION_AWAY) { + if (bVar) { + field_0x6cc = 1; + setActionMode(ACTION_DAMAGE); + return; + } + + angle = cLib_targetAngleY(&mSpheres[1].GetCoCP(), &player_pos) - shape_angle.y; + if (i == 1) { + if (abs(angle) >= 0x4000) { + if (bVar) { + mBackbone1YZRot.z = 0x5000; + mBackbone2YZRot.z = -0x4000; + mBackbone3YZRot.z = 0; + } else { + mBackbone1YZRot.z = 0x3000; + } + + } else if (bVar) { + mBackbone1YZRot.z = -0x3000; + mBackbone2YZRot.z = -0x2000; + mBackbone3YZRot.z = -0x1000; + } else { + mBackbone1YZRot.z = -0x2000; + mBackbone2YZRot.z = -0x1000; + mBackbone3YZRot.z = -0x800; + } + speedF = 0.0f; + } else if (bVar) { + mBackbone1YZRot.z = 0x5000; + mBackbone2YZRot.z = -0x4000; + mBackbone3YZRot.z = 0; + } else { + mBackbone1YZRot.z = 0x3000; + } + + if (angle < -0x2800) { + angle = -0x2800; + } + + if (angle > 0x2800) { + angle = 0x2800; + } + + mBackbone1YZRot.y = angle; + mSound.startCreatureVoice(Z2SE_EN_HZ_V_DAMAGE, -1); + return; + } + + if (bVar) { + field_0x6cc = 1; + } else { + field_0x6cc = 0; + if (mAtInfo.mpCollider->ChkAtType(AT_TYPE_SHIELD_ATTACK)) { + field_0x6cc = 2; + } + } + + setActionMode(ACTION_DAMAGE); + return; } } } @@ -1696,8 +1754,7 @@ void daE_HZ_c::cc_set() { cXyz pos; J3DModel* morfModel = mpMorfSO->getModel(); - eyePos = mSmokeEffectPosition; - attention_info.position = eyePos; + attention_info.position = eyePos = mSmokeEffectPosition; attention_info.position.y += 30.0f; MTXCopy(morfModel->getAnmMtx(7), mDoMtx_stack_c::get()); @@ -1723,8 +1780,7 @@ void daE_HZ_c::cc_set() { int daE_HZ_c::execute() { if (field_0x6e8 != 0) { mtx_set(); - eyePos = current.pos; - attention_info.position = eyePos; + attention_info.position = eyePos = current.pos; return 1; } @@ -1772,12 +1828,12 @@ int daE_HZ_c::execute() { } } - cLib_chaseAngleS(&field_0x690.z, 0, 0x200); - cLib_chaseAngleS(&field_0x690.y, 0, 0x200); - cLib_chaseAngleS(&field_0x696.z, 0, 0x200); - cLib_chaseAngleS(&field_0x696.y, 0, 0x200); - cLib_chaseAngleS(&field_0x69c.z, 0, 0x200); - cLib_chaseAngleS(&field_0x69c.y, 0, 0x200); + cLib_chaseAngleS(&mBackbone1YZRot.z, 0, 0x200); + cLib_chaseAngleS(&mBackbone1YZRot.y, 0, 0x200); + cLib_chaseAngleS(&mBackbone2YZRot.z, 0, 0x200); + cLib_chaseAngleS(&mBackbone2YZRot.y, 0, 0x200); + cLib_chaseAngleS(&mBackbone3YZRot.z, 0, 0x200); + cLib_chaseAngleS(&mBackbone3YZRot.y, 0, 0x200); action(); mtx_set(); cc_set(); @@ -1814,28 +1870,29 @@ int daE_HZ_c::_delete() { } static int daE_HZ_Delete(daE_HZ_c* i_this) { + fpc_ProcID id = fopAcM_GetID(i_this); return i_this->_delete(); } int daE_HZ_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { - u16 joint_no = i_joint->getJntNo(); + int joint_no = i_joint->getJntNo(); mDoMtx_stack_c::copy(i_model->getAnmMtx(joint_no)); switch (joint_no) { - case 1: - mDoMtx_stack_c::ZrotM(field_0x690.z); - mDoMtx_stack_c::YrotM(field_0x690.y); + case HZ_JNT_BACK_BONE1_e: + mDoMtx_stack_c::ZrotM(mBackbone1YZRot.z); + mDoMtx_stack_c::YrotM(mBackbone1YZRot.y); break; - case 2: - mDoMtx_stack_c::ZrotM(field_0x696.z); - mDoMtx_stack_c::YrotM(field_0x696.y); + case HZ_JNT_BACK_BONE2_e: + mDoMtx_stack_c::ZrotM(mBackbone2YZRot.z); + mDoMtx_stack_c::YrotM(mBackbone2YZRot.y); break; - case 3: - mDoMtx_stack_c::ZrotM(field_0x69c.z); - mDoMtx_stack_c::YrotM(field_0x69c.y); + case HZ_JNT_BACK_BONE3_e: + mDoMtx_stack_c::ZrotM(mBackbone3YZRot.z); + mDoMtx_stack_c::YrotM(mBackbone3YZRot.y); break; } @@ -1846,9 +1903,10 @@ int daE_HZ_c::ctrlJoint(J3DJoint* i_joint, J3DModel* i_model) { int daE_HZ_c::JointCallBack(J3DJoint* i_joint, int param_1) { if (param_1 == 0) { - daE_HZ_c* a_this = (daE_HZ_c*)j3dSys.getModel()->getUserArea(); + J3DModel* model = j3dSys.getModel(); + daE_HZ_c* a_this = (daE_HZ_c*)model->getUserArea(); if (a_this != NULL) { - a_this->ctrlJoint(i_joint, j3dSys.getModel()); + a_this->ctrlJoint(i_joint, model); } } @@ -1856,12 +1914,12 @@ int daE_HZ_c::JointCallBack(J3DJoint* i_joint, int param_1) { } int daE_HZ_c::CreateHeap() { - J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_HZ", 0x16); + J3DModelData* modelData = (J3DModelData*)dComIfG_getObjectRes("E_HZ", dRes_INDEX_E_HZ_BMD_HZ_e); JUT_ASSERT(2479, modelData != NULL); mpMorfSO = new mDoExt_McaMorfSO(modelData, NULL, NULL, - (J3DAnmTransform*)dComIfG_getObjectRes("E_HZ", 0x10), 0, 1.0f, - 0, -1, &mSound, 0x80000, 0x11000084); + (J3DAnmTransform*)dComIfG_getObjectRes("E_HZ", dRes_INDEX_E_HZ_BCK_HZ_WAIT_e), 0, 1.0f, + 0, -1, &mSound, J3DMdlFlag_DifferedDLBuffer, 0x11000084); if (mpMorfSO == NULL || mpMorfSO->getModel() == NULL) { return 0; @@ -1875,7 +1933,7 @@ int daE_HZ_c::CreateHeap() { JUT_ASSERT(2505, modelData != NULL); - mpModel = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + mpModel = mDoExt_J3DModel__create(modelData, J3DMdlFlag_DifferedDLBuffer, 0x11000084); if (mpModel == NULL) { return 0; } @@ -1885,18 +1943,16 @@ int daE_HZ_c::CreateHeap() { return 0; } - cBgD_t* bgD_t = (cBgD_t*)dComIfG_getObjectRes("E_HZ", 0x1A); - - if (mpBgW->Set(bgD_t, 1, &mMtx) == 1) { + if (mpBgW->Set((cBgD_t*)dComIfG_getObjectRes("E_HZ", dRes_INDEX_E_HZ_DZB_K_HZP00_e), 1, &mMtx) == 1) { return 0; } mpBgW->SetCrrFunc(dBgS_MoveBGProc_Typical); - modelData = (J3DModelData*)dComIfG_getObjectRes("E_HZ", 0x17); + modelData = (J3DModelData*)dComIfG_getObjectRes("E_HZ", dRes_INDEX_E_HZ_BMD_HZ_HOLE_e); JUT_ASSERT(2532, modelData != NULL); - mpModel2 = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); + mpModel2 = mDoExt_J3DModel__create(modelData, J3DMdlFlag_DifferedDLBuffer, 0x11000084); if (mpModel2 == NULL) { return 0; } @@ -1912,7 +1968,8 @@ int daE_HZ_c::CreateHeap() { } static int useHeapInit(fopAc_ac_c* i_this) { - return static_cast(i_this)->CreateHeap(); + daE_HZ_c* actor = (daE_HZ_c*)i_this; + return actor->CreateHeap(); } void daE_HZ_c::setInitPos() { @@ -1929,7 +1986,7 @@ void daE_HZ_c::setInitPos() { current.pos.y = ground_cross; } - s16 angle = home.angle.y = home.angle.y + 0x2000 & 0xC000; + s16 angle = home.angle.y = (s16)(home.angle.y + 0x2000) & 0xC000; shape_angle.y = angle; current.angle.y = angle; setActionMode(ACTION_HIDE); @@ -1969,8 +2026,6 @@ int daE_HZ_c::create() { return phase; } - OS_REPORT("E_HZ PARAM %x\n", fopAcM_GetParam(this)); - if ((fopAcM_GetParam(this) >> 8 & 0xFF) == 1) { mpName = "E_hzp2"; } else { @@ -1979,6 +2034,8 @@ int daE_HZ_c::create() { phase = dComIfG_resLoad(&mPhaseReq2, mpName); if (phase == cPhs_COMPLEATE_e) { + OS_REPORT("E_HZ PARAM %x\n", fopAcM_GetParam(this)); + if (!fopAcM_entrySolidHeap(this, useHeapInit, 0x2C20)) { return cPhs_ERROR_e; } @@ -1998,8 +2055,7 @@ int daE_HZ_c::create() { mObjAcch.Set(fopAcM_GetPosition_p(this), fopAcM_GetOldPosition_p(this), this, 1, &mAcchCir, fopAcM_GetSpeed_p(this), NULL, NULL); mAcchCir.SetWall(50.0f, 150.0f); - health = 0x32; - field_0x560 = 0x32; + field_0x560 = health = 0x32; mStts.Init(0xFF, 0, this); mSpheres[0].Set(cc_sph_src); mSpheres[1].Set(cc_sph_src2); From 968c027d157f16a45caf311fdc4d658d715c0688 Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Mon, 8 Dec 2025 15:11:03 -0500 Subject: [PATCH 09/13] Match JStudio_JStage::TAdaptor_light::adaptor_do_begin (#2932) --- configure.py | 2 +- src/JSystem/JStudio/JStudio_JStage/object-light.cpp | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/configure.py b/configure.py index ae30c5dc8e..aad400106b 100755 --- a/configure.py +++ b/configure.py @@ -988,7 +988,7 @@ config.libs = [ Object(MatchingFor(ALL_GCN), "JSystem/JStudio/JStudio_JStage/object-ambientlight.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JStudio/JStudio_JStage/object-camera.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JStudio/JStudio_JStage/object-fog.cpp"), - Object(NonMatching, "JSystem/JStudio/JStudio_JStage/object-light.cpp"), + Object(MatchingFor(ALL_GCN), "JSystem/JStudio/JStudio_JStage/object-light.cpp"), ], ), JSystemLib( diff --git a/src/JSystem/JStudio/JStudio_JStage/object-light.cpp b/src/JSystem/JStudio/JStudio_JStage/object-light.cpp index f7e1e93696..a3291af3fb 100644 --- a/src/JSystem/JStudio/JStudio_JStage/object-light.cpp +++ b/src/JSystem/JStudio/JStudio_JStage/object-light.cpp @@ -40,7 +40,6 @@ void JStudio_JStage::TAdaptor_light::adaptor_do_prepare() { } } -// NONMATCHING - regalloc void JStudio_JStage::TAdaptor_light::adaptor_do_begin() { { adaptor_object_begin_(); @@ -56,7 +55,8 @@ void JStudio_JStage::TAdaptor_light::adaptor_do_begin() { pLightObj->JSGGetPosition(&lightObjTransform.position); pLightObj->JSGGetDirection(&lightObjTransform.direction); const JStudio::TControl::TTransform_position_direction* finalTransform = - pControl->transformOnGet_transform_ifEnabled(lightObjTransform, &aTStack_b8); + (const JStudio::TControl::TTransform_position_direction*) + pControl->transformOnGet_transform_ifEnabled(lightObjTransform, &aTStack_b8); adaptor_setVariableValue_Vec(sauVariableValue_3_POSITION_XYZ, finalTransform->position); f32 dirx = finalTransform->direction.x; f32 diry = finalTransform->direction.y; From 3ec0cbca924060f6ca03690ecf250cc1cc7fc3df Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Mon, 8 Dec 2025 15:12:20 -0500 Subject: [PATCH 10/13] almost matching (#2933) --- include/d/actor/d_a_e_sm2.h | 9 +- include/f_op/f_op_actor_mng.h | 1 + src/d/actor/d_a_e_sm2.cpp | 299 ++++++++++++++++++---------------- 3 files changed, 169 insertions(+), 140 deletions(-) diff --git a/include/d/actor/d_a_e_sm2.h b/include/d/actor/d_a_e_sm2.h index bf16a45f98..5ea841ea1b 100644 --- a/include/d/actor/d_a_e_sm2.h +++ b/include/d/actor/d_a_e_sm2.h @@ -36,7 +36,8 @@ enum daE_SM2_ACTION { * * @details * - */ +*/ + class e_sm2_class { public: bool checkYellow() { return type == TYPE_YELLOW; } @@ -63,9 +64,9 @@ public: /* 0x68E */ s16 combine_off_timer; /* 0x690 */ s16 angle_to_pl; /* 0x694 */ f32 dist_to_pl; - /* 0x698 */ u8 field_0x698[0x6A4 - 0x698]; - /* 0x6A4 */ s16 field_0x6a4; - /* 0x6A6 */ s16 field_0x6a6; + /* 0x698 */ cXyz field_0x698; + /* 0x6A4 */ s16 mCurrentAngleYTarget; + /* 0x6A6 */ s16 mCurrentAngleYTargetStep; /* 0x6A8 */ s8 field_0x6a8; /* 0x6A9 */ u8 field_0x6a9; /* 0x6AA */ u8 field_0x6aa; diff --git a/include/f_op/f_op_actor_mng.h b/include/f_op/f_op_actor_mng.h index 955da52ad1..b5a11a6beb 100644 --- a/include/f_op/f_op_actor_mng.h +++ b/include/f_op/f_op_actor_mng.h @@ -86,6 +86,7 @@ struct fOpAcm_HIO_entry_c : public mDoHIO_entry_c { #if DEBUG void removeHIO(const fopAc_ac_c* i_this) { removeHIO(*i_this); } void removeHIO(const fopAc_ac_c& i_this) { removeHIO(i_this.base); } + void removeHIO(const fopEn_enemy_c& i_this) { removeHIO(i_this.base); } void removeHIO(const leafdraw_class& i_this) { removeHIO(i_this.base); } void removeHIO(const base_process_class& i_this) { removeHIO(i_this.state); } void removeHIO(const state_class& state) { diff --git a/src/d/actor/d_a_e_sm2.cpp b/src/d/actor/d_a_e_sm2.cpp index eabf8fa573..c143c1abd5 100644 --- a/src/d/actor/d_a_e_sm2.cpp +++ b/src/d/actor/d_a_e_sm2.cpp @@ -40,6 +40,16 @@ daE_SM2_HIO_c::daE_SM2_HIO_c() { color_debug_B = 91; } +#if DEBUG +void daE_SM2_HIO_c::genMessage(JORMContext* ctx) { + ctx->genCheckBox("合体しない", &merge_OFF, 1, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genCheckBox("色調整する", &color_debug_ON, 1, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("色調整R", &color_debug_R, 0, 0xFF, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("色調整G", &color_debug_G, 0, 0xFF, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("色調整B", &color_debug_B, 0, 0xFF, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); +} +#endif + static int nodeCallBack(J3DJoint* i_joint, int param_1) { if (param_1 == 0) { int jnt_no = i_joint->getJntNo(); @@ -65,7 +75,7 @@ static int nodeCallBack(J3DJoint* i_joint, int param_1) { } static int daE_SM2_Draw(e_sm2_class* i_this) { - fopAc_ac_c* actor = &i_this->enemy; + fopAc_ac_c* actor = (fopAc_ac_c*)&i_this->enemy; g_env_light.settingTevStruct(0, &actor->current.pos, &actor->tevStr); if (!i_this->isPiece) { @@ -82,15 +92,15 @@ static int daE_SM2_Draw(e_sm2_class* i_this) { i_this->invisModel.entryDL(NULL); if (i_this->shadowId != 353535) { - cXyz sp8; - sp8.set(actor->current.pos.x, 50.0f + actor->current.pos.y + BREG_F(18), actor->current.pos.z); + cXyz pos; + pos.set(actor->current.pos.x, 50.0f + actor->current.pos.y + BREG_F(18), actor->current.pos.z); f32 var_f31 = i_this->size * (2500.0f + BREG_F(19)) * i_this->field_0x830; if (var_f31 < 700.0f) { var_f31 = 700.0f; } - i_this->shadowId = dComIfGd_setShadow(i_this->shadowId, 1, model, &sp8, var_f31, 0.0f, actor->current.pos.y, i_this->acch.GetGroundH(), i_this->acch.m_gnd, &actor->tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + i_this->shadowId = dComIfGd_setShadow(i_this->shadowId, 1, model, &pos, var_f31, 0.0f, actor->current.pos.y, i_this->acch.GetGroundH(), i_this->acch.m_gnd, &actor->tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); } } else { J3DModel* model = i_this->pieceModelMorf->getModel(); @@ -144,8 +154,6 @@ static void sm2_delete(e_sm2_class* i_this) { } static void cc_stts_init(e_sm2_class* i_this) { - fopAc_ac_c* actor = &i_this->enemy; - static u8 w_d[] = { 200, 210, @@ -154,7 +162,7 @@ static void cc_stts_init(e_sm2_class* i_this) { 250, }; - i_this->ccStts.Init(w_d[i_this->sizetype], 0, actor); + i_this->ccStts.Init(w_d[i_this->sizetype], 0, &i_this->enemy); static f32 bg_h[] = { 50.0f, @@ -176,14 +184,14 @@ static void cc_stts_init(e_sm2_class* i_this) { } static void* s_s_sub(void* i_actor, void* i_data) { - cXyz sp18; + cXyz pos_delta; if (fopAcM_IsActor(i_actor) && fopAcM_GetName(i_actor) == PROC_E_SM2) { e_sm2_class* pother = (e_sm2_class*)i_data; e_sm2_class* pactor = (e_sm2_class*)i_actor; if (pother != pactor && pactor->action == ACTION_NORMAL_MOVE && pactor->combine_off_timer == 0) { - sp18 = pactor->enemy.current.pos - pother->enemy.current.pos; - f32 other_dist = sp18.abs(); + pos_delta = pactor->enemy.current.pos - pother->enemy.current.pos; + f32 other_dist = pos_delta.abs(); if (other_dist < 600.0f && other_dist < pother->dist_to_pl && !fopAcM_otherBgCheck(&pother->enemy, &pactor->enemy)) { return pactor; } @@ -209,16 +217,16 @@ static daE_SM2_HIO_c l_HIO; static void normal_move(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; fopAc_ac_c* player = dComIfGp_getPlayer(0); - cXyz sp24; - cXyz sp18; + cXyz unused; + cXyz unused_2; f32 move_speed = 0.0f; f32 speed_step = 1.0f; - s16 spA = 1000; + s16 step_target = 1000; if (pl_check(i_this, 700.0f)) { i_this->field_0x6a8 = 1; speed_step = 6.0f + TREG_F(10); - spA = TREG_S(3) + 2000; + step_target = TREG_S(3) + 2000; } else { i_this->field_0x6a8 = 0; } @@ -227,13 +235,13 @@ static void normal_move(e_sm2_class* i_this) { case 0: if (i_this->timers[0] == 0) { if (i_this->field_0x6a8 == 0) { - i_this->field_0x6a4 = cM_rndF(65536.0f); + i_this->mCurrentAngleYTarget = cM_rndF(65536.0f); i_this->timers[0] = 23.0f + cM_rndF(3.0f); } else { i_this->timers[0] = 8.0f + cM_rndF(3.0f); } - i_this->field_0x6a6 = 0; + i_this->mCurrentAngleYTargetStep = 0; i_this->mode = 1; } break; @@ -242,7 +250,7 @@ static void normal_move(e_sm2_class* i_this) { move_speed = 15.0f + TREG_F(2); } else { move_speed = 25.0f + TREG_F(11); - i_this->field_0x6a4 = i_this->angle_to_pl; + i_this->mCurrentAngleYTarget = i_this->angle_to_pl; } if (i_this->timers[0] == 0) { @@ -256,7 +264,7 @@ static void normal_move(e_sm2_class* i_this) { if (i_this->field_0x6a8 == 0) { i_this->timers[0] = 23.0f + cM_rndF(3.0f); } else { - s16 sp8 = actor->current.angle.y - i_this->field_0x6a4; + s16 sp8 = actor->current.angle.y - i_this->mCurrentAngleYTarget; if (sp8 < 0x1000 && sp8 > -0x1000 && i_this->dist_to_pl < (400.0f + (100.0f * i_this->size))) { i_this->action = ACTION_ATTACK; i_this->mode = 0; @@ -270,11 +278,12 @@ static void normal_move(e_sm2_class* i_this) { cLib_addCalc2(&actor->speedF, move_speed, 0.2f, 0.5f * speed_step); if (move_speed > 0.0f) { - cLib_addCalcAngleS2(&actor->current.angle.y, i_this->field_0x6a4, 4, i_this->field_0x6a6); - cLib_addCalcAngleS2(&i_this->field_0x6a6, spA, 1, 400); + cLib_addCalcAngleS2(&actor->current.angle.y, (s16)i_this->mCurrentAngleYTarget, 4, i_this->mCurrentAngleYTargetStep); + cLib_addCalcAngleS2(&i_this->mCurrentAngleYTargetStep, step_target, 1, 400); } - cLib_addCalc2(&i_this->field_0x830, 0.65f + TREG_F(7) + (actor->speedF * (0.03f + TREG_F(9))), 0.1f, (0.02f * speed_step) + TREG_F(8)); + f32 target = 0.65f + TREG_F(7) + (actor->speedF * (0.03f + TREG_F(9))); + cLib_addCalc2(&i_this->field_0x830, target, 0.1f, (0.02f * speed_step) + TREG_F(8)); if (!l_HIO.merge_OFF && (i_this->counter & 7) == 0 && i_this->sizetype < 4 && i_this->combine_off_timer == 0 && !fopAcM_CheckCondition(actor, 4)) { e_sm2_class* pother = (e_sm2_class*)fpcM_Search(s_s_sub, i_this); @@ -293,8 +302,8 @@ static void normal_move(e_sm2_class* i_this) { static void attack(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; fopAc_ac_c* player = dComIfGp_getPlayer(0); - cXyz sp28; - cXyz sp1C; + cXyz unused; + cXyz unused_2; f32 move_speed = 0.0f; switch (i_this->mode) { @@ -371,8 +380,8 @@ static void attack(e_sm2_class* i_this) { static s8 combine(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; fopAc_ac_c* player = dComIfGp_getPlayer(0); - cXyz sp28; - cXyz sp1C; + cXyz work; + cXyz unused; e_sm2_class* combine_actor = (e_sm2_class*)fopAcM_SearchByID(i_this->combine_actor_pid); s8 cc_co_ON = TRUE; @@ -384,13 +393,14 @@ static s8 combine(e_sm2_class* i_this) { return cc_co_ON; } - sp28 = combine_actor->enemy.current.pos - actor->current.pos; + work = combine_actor->enemy.current.pos - actor->current.pos; - f32 var_f28 = sp28.abs(); + f32 var_f28 = work.abs(); f32 move_speed = 0.0f; - s8 sp8 = 0; - f32 speed_step = 6.0f + TREG_F(10); - s16 spA = TREG_S(3) + 2000; + f32 speed_step = 1.0f; + s8 unk_flag = 0; + speed_step = 6.0f + TREG_F(10); + s16 step_target = TREG_S(3) + 2000; i_this->field_0x6a8 = 1; @@ -405,7 +415,7 @@ static s8 combine(e_sm2_class* i_this) { break; case 1: move_speed = 25.0f + TREG_F(11); - i_this->field_0x6a4 = cM_atan2s(sp28.x, sp28.z); + i_this->mCurrentAngleYTarget = cM_atan2s(work.x, work.z); if (i_this->timers[0] == 0) { i_this->mode = 0; @@ -418,9 +428,9 @@ static s8 combine(e_sm2_class* i_this) { i_this->combine_off_timer = 10; i_this->field_0x82c = 3.5f; - sp8 = 1; + unk_flag = 1; i_this->field_0x6a8 = 2; - i_this->field_0x6a4 = combine_actor->enemy.current.angle.y + 0x8000; + i_this->mCurrentAngleYTarget = combine_actor->enemy.current.angle.y + 0x8000; break; case 10: cc_co_ON = FALSE; @@ -433,22 +443,22 @@ static s8 combine(e_sm2_class* i_this) { cLib_addCalc2(&actor->current.pos.x, combine_actor->field_0x708[6].x, 1.0f, 10.0f * i_this->size); cLib_addCalc2(&actor->current.pos.z, combine_actor->field_0x708[6].z, 1.0f, 10.0f * i_this->size); - i_this->field_0x6a4 = combine_actor->enemy.current.angle.y + 0x8000; - sp8 = 1; + i_this->mCurrentAngleYTarget = combine_actor->enemy.current.angle.y + 0x8000; + unk_flag = 1; i_this->field_0x6a8 = 2; - sp28.x = actor->current.pos.x - combine_actor->field_0x708[6].x; - sp28.z = actor->current.pos.z - combine_actor->field_0x708[6].z; - if (i_this->timers[0] == 0 || JMAFastSqrt((sp28.x * sp28.x) + (sp28.z * sp28.z)) <= i_this->size) { + work.x = actor->current.pos.x - combine_actor->field_0x708[6].x; + work.z = actor->current.pos.z - combine_actor->field_0x708[6].z; + if (i_this->timers[0] == 0 || JMAFastSqrt((work.x * work.x) + (work.z * work.z)) <= i_this->size) { sm2_delete(i_this); } break; } cLib_addCalc2(&actor->speedF, move_speed, 0.2f, 0.5f * speed_step); - if (move_speed > 0.0f || sp8 != 0) { - cLib_addCalcAngleS2(&actor->current.angle.y, i_this->field_0x6a4, 4, i_this->field_0x6a6); - cLib_addCalcAngleS2(&i_this->field_0x6a6, spA, 1, 400); + if (move_speed > 0.0f || unk_flag != 0) { + cLib_addCalcAngleS2(&actor->current.angle.y, (s16)i_this->mCurrentAngleYTarget, 4, i_this->mCurrentAngleYTargetStep); + cLib_addCalcAngleS2(&i_this->mCurrentAngleYTargetStep, step_target, 1, 400); } cLib_addCalc2(&i_this->field_0x830, var_f29, 0.1f, (0.02f * speed_step) + TREG_F(8)); @@ -458,8 +468,8 @@ static s8 combine(e_sm2_class* i_this) { static s8 roof(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; fopAc_ac_c* player = dComIfGp_getPlayer(0); - cXyz sp34; - cXyz sp28; + cXyz unused; + cXyz unused_2; s8 do_pos_crr = FALSE; actor->current.angle.x = actor->shape_angle.x = KREG_S(0) + 0x3F00; @@ -490,16 +500,14 @@ static s8 roof(e_sm2_class* i_this) { i_this->timers[0] = 2.0f + cM_rndF(50.0f); i_this->timers[1] = i_this->timers[0] + 50; } - } else { - if (fopAcM_searchPlayerDistanceXZ(actor) < (100.0f * i_this->field_0x5b6)) { - i_this->mode = 2; - if (strcmp(dComIfGp_getStartStageName(), "D_SB07") == 0) { - i_this->timers[0] = 2.0f + cM_rndF(50.0f); - } else { - i_this->timers[0] = 2; - } - i_this->timers[1] = i_this->timers[0] + 50; + } else if (fopAcM_searchPlayerDistanceXZ(actor) < (100.0f * i_this->field_0x5b6)) { + i_this->mode = 2; + if (strcmp(dComIfGp_getStartStageName(), "D_SB07") == 0) { + i_this->timers[0] = 2.0f + cM_rndF(50.0f); + } else { + i_this->timers[0] = 2; } + i_this->timers[1] = i_this->timers[0] + 50; } break; case 2: @@ -601,7 +609,7 @@ static void eff_set(e_sm2_class* i_this, cXyz* i_pos, f32 i_size) { cXyz effsize(i_size, i_size, i_size); - dComIfGp_particle_set(0x85BE, i_pos, &actor->tevStr, &actor->shape_angle, &effsize, 0xFF, NULL, fopAcM_GetRoomNo(actor), &e_prim_A[i_this->type], &e_env_A[i_this->type], NULL); + dComIfGp_particle_set(dPa_RM(ID_ZI_S_SM_DEAD_A), i_pos, &actor->tevStr, &actor->shape_angle, &effsize, 0xFF, NULL, fopAcM_GetRoomNo(actor), &e_prim_A[i_this->type], &e_env_A[i_this->type], NULL); static GXColor e_prim_B[] = { {0x8C, 0xB4, 0x78, 0x00}, @@ -623,13 +631,13 @@ static void eff_set(e_sm2_class* i_this, cXyz* i_pos, f32 i_size) { {0x14, 0x14, 0x14, 0x00}, }; - dComIfGp_particle_set(0x85BF, i_pos, &actor->tevStr, &actor->shape_angle, &effsize, 0xFF, NULL, fopAcM_GetRoomNo(actor), &e_prim_B[i_this->type], &e_env_B[i_this->type], NULL); + dComIfGp_particle_set(dPa_RM(ID_ZI_S_SM_DEAD_B), i_pos, &actor->tevStr, &actor->shape_angle, &effsize, 0xFF, NULL, fopAcM_GetRoomNo(actor), &e_prim_B[i_this->type], &e_env_B[i_this->type], NULL); } static void fail(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; - cXyz sp14; - cXyz sp8; + cXyz work; + cXyz pos; i_this->invulernabilityTimer = 10; actor->speedF = 0.0f; @@ -671,11 +679,16 @@ static void fail(e_sm2_class* i_this) { dComIfGp_att_CatchRequest(actor, item_no[i_this->type], 100.0f, 50.0f, -150.0f, 0x5000, 1); actor->eventInfo.onCondition(0x40); } - } else if (i_this->mode == 2 && i_this->timers[0] == 1) { + + return; + } + + if (i_this->mode == 2 && i_this->timers[0] == 1) { MTXCopy(daPy_getPlayerActorClass()->getLeftItemMatrix(), *calc_mtx); - sp14.set(0.0f, 0.0f, 0.0f); - MtxPosition(&sp14, &sp8); - eff_set(i_this, &sp8, 0.1f + TREG_F(14)); + work.set(0.0f, 0.0f, 0.0f); + MtxPosition(&work, &pos); + f32 size = 0.1f + TREG_F(14); + eff_set(i_this, &pos, size); } } @@ -683,7 +696,7 @@ static void dmcalc(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; int i; - cXyz sp5C; + cXyz work; cXyz sp50; cXyz* var_r28 = &i_this->field_0x708[1]; csXyz* sp14 = &i_this->field_0x768[1]; @@ -692,22 +705,22 @@ static void dmcalc(e_sm2_class* i_this) { cMtx_YrotS(*calc_mtx, actor->shape_angle.y); cMtx_XrotM(*calc_mtx, actor->shape_angle.x); - sp5C.x = 0.0f; - sp5C.y = 0.0f; - sp5C.z = i_this->size * (-5.0f + WREG_F(18)) * i_this->field_0x830; - if (sp5C.z > -1.5f + WREG_F(17)) { - sp5C.z = -1.5f + WREG_F(17); + work.x = 0.0f; + work.y = 0.0f; + work.z = ((-5.0f + WREG_F(18)) * i_this->size) * i_this->field_0x830; + if (work.z > -1.5f + WREG_F(17)) { + work.z = -1.5f + WREG_F(17); } if (i_this->field_0x6a8 == 1) { - sp5C.z *= 1.4f; + work.z *= 1.4f; } else if (i_this->field_0x6a8 == 2) { - sp5C.z *= 5.0f; + work.z *= 5.0f; } else if (i_this->field_0x6a8 == 3) { - sp5C.z = -2000.0f; + work.z = -2000.0f; } - MtxPosition(&sp5C, &sp44); + MtxPosition(&work, &sp44); f32 var_f31 = 1.0f; f32 temp_f30; @@ -744,9 +757,9 @@ static void dmcalc(e_sm2_class* i_this) { spA = swsp_d[i_this->sizetype]; } - sp5C.x = 0.0f; - sp5C.y = 0.0f; - sp5C.z = i_this->size * (100.0f + WREG_F(1)) * i_this->field_0x830; + work.x = 0.0f; + work.y = 0.0f; + work.z = ((100.0f + WREG_F(1)) * i_this->size) * i_this->field_0x830; for (i = 1; i < 8; i++, var_r28++, sp14++) { if (i_this->field_0x6aa != 0) { @@ -783,7 +796,7 @@ static void dmcalc(e_sm2_class* i_this) { spE = -cM_atan2s(temp_f26, JMAFastSqrt((temp_f30 * temp_f30) + (temp_f29 * temp_f29))); cMtx_YrotS(*calc_mtx, spC); cMtx_XrotM(*calc_mtx, spE); - MtxPosition(&sp5C, &sp50); + MtxPosition(&work, &sp50); var_r28[0].x = var_r28[-1].x + sp50.x; var_r28[0].y = var_r28[-1].y + sp50.y; @@ -798,7 +811,14 @@ static void dmcalc(e_sm2_class* i_this) { static u8 new_col_d[] = { TYPE_GREEN, TYPE_BLUE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_RARE, TYPE_BLUE, TYPE_RED, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_RARE, - TYPE_PURPLE, TYPE_PURPLE, TYPE_BLUE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_RARE, + TYPE_PURPLE, TYPE_PURPLE, TYPE_BLUE, + // For some reason, the data differs here between retail and ShieldD? + #if VERSION == VERSION_SHIELD_DEBUG + TYPE_GREEN, + #else + TYPE_PURPLE, + #endif + TYPE_PURPLE, TYPE_PURPLE, TYPE_RARE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_YELLOW, TYPE_PURPLE, TYPE_PURPLE, TYPE_RARE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_RARE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_PURPLE, TYPE_RARE, TYPE_RARE, @@ -808,7 +828,7 @@ static u8 new_col_d[] = { static void damage_check(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; - cXyz sp78; + cXyz work; i_this->ccStts.Move(); if (i_this->combine_off_timer == 0 && i_this->action == ACTION_COMBINE && i_this->mode < 5) { @@ -901,26 +921,26 @@ static void damage_check(e_sm2_class* i_this) { i_this->field_0x830 = 0.1f; i_this->field_0xfd4 = 1; - sp78 = i_this->field_0x708[0] - i_this->field_0x708[3]; - actor->current.angle.y = cM_atan2s(sp78.x, sp78.z); + work = i_this->field_0x708[0] - i_this->field_0x708[3]; + actor->current.angle.y = cM_atan2s(work.x, work.z); i_this->invulernabilityTimer = 20; u32 parameters = 0xFF000000 | (i_this->sizetype << 8) | (i_this->type << 4) | 0xA; csXyz rotation(0, 0, 0); - sp78 = i_this->field_0x708[6] - i_this->field_0x708[3]; - rotation.y = cM_atan2s(sp78.x, sp78.z); + work = i_this->field_0x708[6] - i_this->field_0x708[3]; + rotation.y = cM_atan2s(work.x, work.z); - sp78 = actor->current.pos; - sp78.y += 20.0f; + work = actor->current.pos; + work.y += 20.0f; cXyz pos(i_this->field_0x708[6]); pos.y += 20.0f; dBgS_LinChk linchk; - linchk.Set(&sp78, &pos, actor); + linchk.Set(&work, &pos, actor); if (dComIfG_Bgsp().LineCross(&linchk)) { - pos = sp78; + pos = work; } fopAcM_createChild(PROC_E_SM2, fopAcM_GetID(actor), parameters, &pos, fopAcM_GetRoomNo(actor), &rotation, NULL, -1, NULL); @@ -946,8 +966,8 @@ static void damage_check(e_sm2_class* i_this) { static void action(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; - cXyz sp58; - cXyz sp4C; + cXyz work; + cXyz offset; i_this->angle_to_pl = fopAcM_searchPlayerAngleY(actor); i_this->dist_to_pl = fopAcM_searchPlayerDistance(actor); @@ -992,11 +1012,11 @@ static void action(e_sm2_class* i_this) { dBgS_ObjGndChk sp10C; dBgS_ObjGndChk_Spl spB8; - sp58 = actor->current.pos; - sp58.y += 150.0f; + work = actor->current.pos; + work.y += 150.0f; - spB8.SetPos(&sp58); - sp10C.SetPos(&sp58); + spB8.SetPos(&work); + sp10C.SetPos(&work); f32 ground_y = dComIfG_Bgsp().GroundCross(&spB8); f32 temp_f26 = ground_y - dComIfG_Bgsp().GroundCross(&sp10C); @@ -1026,13 +1046,13 @@ static void action(e_sm2_class* i_this) { actor->attention_info.flags = 0; } - cMtx_YrotS(*calc_mtx, actor->shape_angle.y); - sp58.x = 0.0f; - sp58.y = 0.0f; - sp58.z = actor->speedF * i_this->size; - MtxPosition(&sp58, &sp4C); - actor->speed.x = sp4C.x; - actor->speed.z = sp4C.z; + cMtx_YrotS(*calc_mtx, (s16)actor->shape_angle.y); + work.x = 0.0f; + work.y = 0.0f; + work.z = actor->speedF * i_this->size; + MtxPosition(&work, &offset); + actor->speed.x = offset.x; + actor->speed.z = offset.z; actor->speed.y += actor->gravity; if (actor->speed.y < -100.0f) { actor->speed.y = -100.0f; @@ -1055,29 +1075,29 @@ static void action(e_sm2_class* i_this) { dBgS_GndChk gndchk; cMtx_YrotS(*calc_mtx, actor->shape_angle.y); - sp58.x = 0.0f; - sp58.y = 0.0f; - sp58.z = -25.0f * i_this->size; - MtxPosition(&sp58, &sp4C); - sp4C += actor->current.pos; + work.x = 0.0f; + work.y = 0.0f; + work.z = -25.0f * i_this->size; + MtxPosition(&work, &offset); + offset += actor->current.pos; - Vec sp40; - sp40.x = sp4C.x; - sp40.y = 100.0f + sp4C.y; - sp40.z = sp4C.z; + Vec pos; + pos.x = offset.x; + pos.y = 100.0f + offset.y; + pos.z = offset.z; - gndchk.SetPos(&sp40); - sp4C.y = dComIfG_Bgsp().GroundCross(&gndchk); + gndchk.SetPos(&pos); + offset.y = dComIfG_Bgsp().GroundCross(&gndchk); - sp58 = sp4C - actor->current.pos; - if (fabsf(sp58.y) < 200.0f) { - actor->current.angle.x = cM_atan2s(sp58.y, JMAFastSqrt((sp58.x * sp58.x) + (sp58.z * sp58.z))); + work = offset - actor->current.pos; + if (fabsf(work.y) < 200.0f) { + actor->current.angle.x = (s16)cM_atan2s(work.y, JMAFastSqrt((work.x * work.x) + (work.z * work.z))); } else { actor->current.angle.x = 0; } } else { - sp58 = actor->speed; - actor->current.angle.x = -cM_atan2s(sp58.y, JMAFastSqrt((sp58.x * sp58.x) + (sp58.z * sp58.z))); + work = actor->speed; + actor->current.angle.x = -cM_atan2s(work.y, JMAFastSqrt((work.x * work.x) + (work.z * work.z))); } } @@ -1095,8 +1115,8 @@ static void action(e_sm2_class* i_this) { } } - f32 var_f31 = 0.1f; - s16 spC = 4; + f32 pos_scale = 0.1f; + s16 angle_scale = 4; if (i_this->field_0x6a9 == 0 && i_this->field_0x6aa < 10 && i_this->field_0x83f != 0) { i_this->field_0x83f--; @@ -1139,22 +1159,22 @@ static void action(e_sm2_class* i_this) { 0x0003, }; - var_f31 = pf_d[i_this->field_0x83f]; - spC = ps_d[i_this->field_0x83f]; + pos_scale = pf_d[i_this->field_0x83f]; + angle_scale = ps_d[i_this->field_0x83f]; } - cLib_addCalc2(&i_this->field_0x840.x, actor->current.pos.x, var_f31, 500.0f + JREG_F(8)); - cLib_addCalc2(&i_this->field_0x840.y, actor->current.pos.y, var_f31, 500.0f + JREG_F(8)); - cLib_addCalc2(&i_this->field_0x840.z, actor->current.pos.z, var_f31, 500.0f + JREG_F(8)); - cLib_addCalcAngleS2(&i_this->field_0x84c.x, actor->shape_angle.x, spC, JREG_S(8) + 0x800); - cLib_addCalcAngleS2(&i_this->field_0x84c.y, actor->shape_angle.y, spC, JREG_S(8) + 0x800); + cLib_addCalc2(&i_this->field_0x840.x, actor->current.pos.x, pos_scale, 500.0f + JREG_F(8)); + cLib_addCalc2(&i_this->field_0x840.y, actor->current.pos.y, pos_scale, 500.0f + JREG_F(8)); + cLib_addCalc2(&i_this->field_0x840.z, actor->current.pos.z, pos_scale, 500.0f + JREG_F(8)); + cLib_addCalcAngleS2(&i_this->field_0x84c.x, actor->shape_angle.x, angle_scale, JREG_S(8) + 0x800); + cLib_addCalcAngleS2(&i_this->field_0x84c.y, actor->shape_angle.y, angle_scale, JREG_S(8) + 0x800); for (int i = 1; i < 8; i++) { - cLib_addCalc2(&i_this->jnt_pos[i].x, i_this->field_0x708[i].x, var_f31, 500.0f + JREG_F(8)); - cLib_addCalc2(&i_this->jnt_pos[i].y, i_this->field_0x708[i].y, var_f31, 500.0f + JREG_F(8)); - cLib_addCalc2(&i_this->jnt_pos[i].z, i_this->field_0x708[i].z, var_f31, 500.0f + JREG_F(8)); - cLib_addCalcAngleS2(&i_this->field_0x7f8[i].x, i_this->field_0x768[i].x, spC, JREG_S(8) + 0x800); - cLib_addCalcAngleS2(&i_this->field_0x7f8[i].y, i_this->field_0x768[i].y, spC, JREG_S(8) + 0x800); + cLib_addCalc2(&i_this->jnt_pos[i].x, i_this->field_0x708[i].x, pos_scale, 500.0f + JREG_F(8)); + cLib_addCalc2(&i_this->jnt_pos[i].y, i_this->field_0x708[i].y, pos_scale, 500.0f + JREG_F(8)); + cLib_addCalc2(&i_this->jnt_pos[i].z, i_this->field_0x708[i].z, pos_scale, 500.0f + JREG_F(8)); + cLib_addCalcAngleS2(&i_this->field_0x7f8[i].x, i_this->field_0x768[i].x, angle_scale, JREG_S(8) + 0x800); + cLib_addCalcAngleS2(&i_this->field_0x7f8[i].y, i_this->field_0x768[i].y, angle_scale, JREG_S(8) + 0x800); } } else { i_this->field_0x840 = actor->current.pos; @@ -1178,8 +1198,8 @@ static void action(e_sm2_class* i_this) { mDoMtx_stack_c::transM(0.0f, TREG_F(3), 100.0f + TREG_F(4)); model->setBaseTRMtx(mDoMtx_stack_c::get()); - sp58.set(0.0f, 60.0f + VREG_F(1), VREG_F(2)); - mDoMtx_stack_c::multVec(&sp58, &i_this->field_0x708[0]); + work.set(0.0f, 60.0f + VREG_F(1), VREG_F(2)); + mDoMtx_stack_c::multVec(&work, &i_this->field_0x708[0]); f32 btk_frame = 9.0f - (12.0f * (i_this->size - 0.25f)); if (btk_frame < 0.0f) { @@ -1216,7 +1236,7 @@ static void action(e_sm2_class* i_this) { static int cc_idx[] = {1, 3, 4, 6}; static f32 cc_size[] = {0.7f, 1.0f, 1.0f, 0.7f}; - static u16 key_eno[] = {0x827A, 0x827B}; + static u16 key_eno[] = {dPa_RM(ID_ZM_S_KEYLIGHT00), dPa_RM(ID_ZM_S_KEYLIGHT01)}; for (int i = 0; i < 4; i++) { if (i_this->type == TYPE_RARE) { @@ -1379,7 +1399,12 @@ static int daE_SM2_IsDelete(e_sm2_class* i_this) { static int daE_SM2_Delete(e_sm2_class* i_this) { fopAc_ac_c* actor = &i_this->enemy; - fpc_ProcID id = fopAcM_GetID(actor); + fpc_ProcID id = fopAcM_GetID(&i_this->enemy); + + #if DEBUG + l_HIO.removeHIO(i_this->enemy); + #endif + dComIfG_resDelete(&i_this->phase, "E_sm2"); if (actor->heap != NULL) { @@ -1433,7 +1458,7 @@ static int useHeapInit(fopAc_ac_c* i_this) { static int daE_SM2_Create(fopAc_ac_c* i_this) { e_sm2_class* a_this = (e_sm2_class*)i_this; - fopAcM_ct(i_this, e_sm2_class); + fopAcM_ct(&a_this->enemy, e_sm2_class); OS_REPORT("E_SM2//////////////E_SM2 SET 0 !!\n"); @@ -1500,8 +1525,7 @@ static int daE_SM2_Create(fopAc_ac_c* i_this) { } a_this->field_0x5b8 = i_this->home.angle.z & 0xFF; - i_this->shape_angle.z = 0; - i_this->current.angle.z = 0; + i_this->current.angle.z = i_this->shape_angle.z = 0; a_this->size = size_get(a_this->sizetype); OS_REPORT("E_SM2//////////////E_SM2 SET 1 !!\n"); @@ -1526,9 +1550,12 @@ static int daE_SM2_Create(fopAc_ac_c* i_this) { a_this->jnt_pos[i] = i_this->current.pos; a_this->field_0x6c8[i] = 1.0f; } + + #if DEBUG + l_HIO.entryHIO("スライム(豪華)"); + #endif - i_this->health = 100; - i_this->field_0x560 = 100; + i_this->field_0x560 = i_this->health = 100; fopAcM_SetMtx(i_this, a_this->modelMorf->getModel()->getBaseTRMtx()); fopAcM_SetMin(i_this, -1000.0f, -600.0f, -1000.0f); From 239fedd80b738444b3cc1040335df9a57bc4130a Mon Sep 17 00:00:00 2001 From: LagoLunatic Date: Mon, 8 Dec 2025 15:12:42 -0500 Subject: [PATCH 11/13] Match JASTaskThread::run (#2934) --- configure.py | 2 +- src/JSystem/JAudio2/JASTaskThread.cpp | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/configure.py b/configure.py index aad400106b..013a8d74d2 100755 --- a/configure.py +++ b/configure.py @@ -1009,7 +1009,7 @@ config.libs = [ "JAudio2", [ Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASCalc.cpp"), - Object(NonMatching, "JSystem/JAudio2/JASTaskThread.cpp"), + Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASTaskThread.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASDvdThread.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASCallback.cpp"), Object(MatchingFor(ALL_GCN), "JSystem/JAudio2/JASHeapCtrl.cpp"), diff --git a/src/JSystem/JAudio2/JASTaskThread.cpp b/src/JSystem/JAudio2/JASTaskThread.cpp index 0a5f2859f5..30a6d07a98 100644 --- a/src/JSystem/JAudio2/JASTaskThread.cpp +++ b/src/JSystem/JAudio2/JASTaskThread.cpp @@ -81,12 +81,11 @@ int JASTaskThread::sendCmdMsg(JASThreadCallback callback, void* msg) { return iVar2; } -// NONMATCHING Regalloc void* JASTaskThread::run() { JASThreadCallStack* callstack; OSInitFastCast(); do { - callstack = (JASThreadCallStack*)waitMessageBlock(); + callstack = static_cast(waitMessageBlock()); if (field_0x84) { OSSleepThread(&threadQueue_); } From 1adace595ead82cc03748507b48d6609ce6675e8 Mon Sep 17 00:00:00 2001 From: kipcode66 Date: Mon, 8 Dec 2025 23:31:22 -0500 Subject: [PATCH 12/13] Improving standard compiler compatibility (#2926) * Adding explicit dolphin/ prefix & fix characters * Rename ShiftJIS to SJIS * Separate JASSeqReader read methods implementation between compilers. * Fix pointer.h * fix d_item_data typo * fix gcn matching issue --- configure.py | 5 + include/JSystem/JAudio2/JASSeqReader.h | 12 + include/JSystem/JGadget/pointer.h | 7 + include/JSystem/JHostIO/JHIRMcc.h | 2 +- include/JSystem/JHostIO/JORHostInfo.h | 2 +- include/JSystem/JHostIO/JORMContext.h | 2 +- include/JSystem/JMath/random.h | 2 +- include/JSystem/JMessage/JMessage.h | 2 +- include/JSystem/JMessage/locale.h | 2 +- .../JSystem/JStudio/JStudio/fvb-data-parse.h | 2 +- include/JSystem/JSupport/JSupport.h | 2 +- include/JSystem/JUtility/JUTGamePad.h | 2 +- include/f_pc/f_pc_debug_sv.h | 2 +- include/global.h | 6 + src/JSystem/JFramework/JFWDisplay.cpp | 5 +- src/JSystem/JHostIO/JHIMccBuf.cpp | 2 +- src/JSystem/JHostIO/JHIMemBuf.cpp | 2 +- src/JSystem/JHostIO/JHIhioASync.cpp | 2 +- src/JSystem/JHostIO/JORFile.cpp | 2 +- src/JSystem/JStudio/JStudio/functionvalue.cpp | 4 +- .../JStudio/JStudio/jstudio-object.cpp | 2 +- .../JStudio/JStudio/stb-data-parse.cpp | 7 +- src/JSystem/JSupport/JSUInputStream.cpp | 2 +- src/JSystem/JSupport/JSUOutputStream.cpp | 2 +- src/JSystem/JUtility/JUTException.cpp | 2 +- .../JUtility/JUTFontData_Ascfont_fix12.cpp | 2 +- src/PowerPC_EABI_Support/Runtime/Src/__mem.c | 2 +- .../Runtime/Src/runtime.c | 2 +- src/Z2AudioLib/Z2SeqMgr.cpp | 2 +- src/c/c_dylink.cpp | 2 +- src/d/d_bg_w_kcol.cpp | 34 +- src/d/d_item_data.cpp | 1016 ++++++++--------- src/d/d_kankyo.cpp | 2 +- src/d/d_kankyo_debug.cpp | 2 + src/d/d_map_path_dmap.cpp | 2 +- src/d/d_menu_fmap.cpp | 14 +- src/d/d_menu_save.cpp | 6 +- src/d/d_model.cpp | 4 +- src/d/d_name.cpp | 36 +- src/d/d_stage.cpp | 6 +- src/dolphin/G2D/G2D.c | 2 +- src/dolphin/am/am.c | 2 +- src/dolphin/amcnotstub/amcnotstub.c | 2 +- src/dolphin/amcstubs/AmcExi2Stubs.c | 2 +- src/dolphin/ar/ar.c | 2 +- src/dolphin/ar/arq.c | 2 +- src/dolphin/ax/AX.c | 2 +- src/dolphin/ax/AXAlloc.c | 2 +- src/dolphin/ax/AXAux.c | 2 +- src/dolphin/ax/AXCL.c | 2 +- src/dolphin/ax/AXComp.c | 2 +- src/dolphin/ax/AXOut.c | 2 +- src/dolphin/ax/AXProf.c | 2 +- src/dolphin/ax/AXSPB.c | 2 +- src/dolphin/ax/AXVPB.c | 2 +- src/dolphin/ax/DSPCode.c | 2 +- src/dolphin/axfx/axfx.c | 2 +- src/dolphin/axfx/chorus.c | 2 +- src/dolphin/axfx/delay.c | 2 +- src/dolphin/axfx/reverb_hi.c | 2 +- src/dolphin/axfx/reverb_hi_4ch.c | 2 +- src/dolphin/axfx/reverb_std.c | 2 +- src/dolphin/base/PPCArch.c | 2 +- src/dolphin/base/PPCPm.c | 2 +- src/dolphin/card/CARDStatEx.c | 2 +- src/dolphin/card/CARDUnlock.c | 2 +- src/dolphin/demo/DEMOAVX.c | 2 +- src/dolphin/demo/DEMOFont.c | 2 +- src/dolphin/demo/DEMOInit.c | 2 +- src/dolphin/demo/DEMOPad.c | 2 +- src/dolphin/demo/DEMOPuts.c | 2 +- src/dolphin/demo/DEMOStats.c | 2 +- src/dolphin/demo/DEMOWin.c | 2 +- src/dolphin/dsp/dsp.c | 2 +- src/dolphin/dsp/dsp_task.c | 2 +- src/dolphin/dvd/dvd.c | 2 +- src/dolphin/dvd/dvdFatal.c | 2 +- src/dolphin/dvd/dvderror.c | 2 +- src/dolphin/dvd/dvdfs.c | 2 +- src/dolphin/dvd/dvdidutils.c | 2 +- src/dolphin/dvd/dvdlow.c | 2 +- src/dolphin/dvd/dvdqueue.c | 2 +- src/dolphin/dvd/fstload.c | 2 +- src/dolphin/exi/EXIAd16.c | 2 +- src/dolphin/exi/EXIBios.c | 2 +- src/dolphin/mcc/fio.c | 2 +- src/dolphin/mcc/mcc.c | 2 +- src/dolphin/mcc/tty.c | 2 +- src/dolphin/mix/mix.c | 2 +- src/dolphin/mtx/mtx.c | 2 +- src/dolphin/mtx/mtx44.c | 2 +- src/dolphin/mtx/mtx44vec.c | 2 +- src/dolphin/mtx/mtxstack.c | 2 +- src/dolphin/mtx/mtxvec.c | 2 +- src/dolphin/mtx/psmtx.c | 2 +- src/dolphin/mtx/quat.c | 2 +- src/dolphin/mtx/vec.c | 2 +- src/dolphin/odemustubs/odemustubs.c | 2 +- src/dolphin/odenotstub/odenotstub.c | 2 +- src/dolphin/os/OS.c | 2 +- src/dolphin/os/OSAlarm.c | 2 +- src/dolphin/os/OSAlloc.c | 2 +- src/dolphin/os/OSArena.c | 2 +- src/dolphin/os/OSAudioSystem.c | 2 +- src/dolphin/os/OSCache.c | 2 +- src/dolphin/os/OSContext.c | 2 +- src/dolphin/os/OSError.c | 2 +- src/dolphin/os/OSExec.c | 2 +- src/dolphin/os/OSFatal.c | 2 +- src/dolphin/os/OSFont.c | 2 +- src/dolphin/os/OSInterrupt.c | 2 +- src/dolphin/os/OSLink.c | 2 +- src/dolphin/os/OSMemory.c | 2 +- src/dolphin/os/OSMessage.c | 2 +- src/dolphin/os/OSMutex.c | 2 +- src/dolphin/os/OSReboot.c | 2 +- src/dolphin/os/OSReset.c | 2 +- src/dolphin/os/OSResetSW.c | 2 +- src/dolphin/os/OSSemaphore.c | 2 +- src/dolphin/os/OSStopwatch.c | 2 +- src/dolphin/os/OSSync.c | 2 +- src/dolphin/os/OSThread.c | 2 +- src/dolphin/os/OSTimer.c | 2 +- src/dolphin/os/OSUtf.c | 2 +- src/dolphin/os/__ppc_eabi_init.c | 2 +- src/dolphin/os/__start.c | 2 +- src/dolphin/os/time.dolphin.c | 2 +- src/dolphin/pad/Pad.c | 2 +- src/dolphin/pad/Padclamp.c | 2 +- src/dolphin/perf/perf.c | 2 +- src/dolphin/perf/perfdraw.c | 2 +- src/dolphin/seq/seq.c | 2 +- src/dolphin/si/SISamplingRate.c | 2 +- src/dolphin/si/SISteering.c | 2 +- src/dolphin/si/SISteeringAuto.c | 2 +- src/dolphin/si/SISteeringXfer.c | 2 +- src/dolphin/sp/sp.c | 2 +- src/dolphin/syn/syn.c | 2 +- src/dolphin/syn/synctrl.c | 2 +- src/dolphin/syn/synenv.c | 2 +- src/dolphin/syn/synlfo.c | 2 +- src/dolphin/syn/synmix.c | 2 +- src/dolphin/syn/synpitch.c | 2 +- src/dolphin/syn/synsample.c | 2 +- src/dolphin/syn/synvoice.c | 2 +- src/dolphin/syn/synwt.c | 2 +- src/f_pc/f_pc_deletor.cpp | 2 +- src/f_pc/f_pc_layer_iter.cpp | 8 +- src/f_pc/f_pc_stdcreate_req.cpp | 2 +- src/m_Do/m_Do_ext.cpp | 26 +- src/m_Do/m_Do_graphic.cpp | 4 +- src/m_Do/m_Do_hostIO.cpp | 2 +- src/m_Do/m_Do_machine.cpp | 2 + src/odenotstub/odenotstub.c | 2 +- 154 files changed, 756 insertions(+), 718 deletions(-) diff --git a/configure.py b/configure.py index 013a8d74d2..d8423df216 100755 --- a/configure.py +++ b/configure.py @@ -392,6 +392,9 @@ cflags_revolution_base = [ cflags_revolution_retail = [ *cflags_revolution_base, "-O4,p", + "-DNDEBUG=1", + "-DNDEBUG_DEFINED=1", + "-DDEBUG_DEFINED=0", ] cflags_revolution_debug = [ @@ -399,6 +402,8 @@ cflags_revolution_debug = [ "-opt off", "-inline off", "-DDEBUG=1", + "-DDEBUG_DEFINED=1", + "-DNDEBUG_DEFINED=0", ] # Framework flags diff --git a/include/JSystem/JAudio2/JASSeqReader.h b/include/JSystem/JAudio2/JASSeqReader.h index 8080a4a8b6..24cc48a1d7 100644 --- a/include/JSystem/JAudio2/JASSeqReader.h +++ b/include/JSystem/JAudio2/JASSeqReader.h @@ -37,11 +37,23 @@ public: u8* getCur() { return field_0x04; } u32 readByte() { return *field_0x04++; } u32 read16() { +#ifdef __MWERKS__ return *((u16*)field_0x04)++; +#else + u16* value = (u16*)field_0x04; + field_0x04 += 2; + return *value; +#endif } u32 read24() { field_0x04--; +#ifdef __MWERKS__ return (*((u32*)field_0x04)++) & 0x00ffffff; +#else + u32* value = (u32*)field_0x04; + field_0x04 += 4; + return (*value) & 0x00ffffff; +#endif } u16 getLoopCount() const { if (field_0x08 == 0) { diff --git a/include/JSystem/JGadget/pointer.h b/include/JSystem/JGadget/pointer.h index ac38df93f9..9ea7c3af7d 100644 --- a/include/JSystem/JGadget/pointer.h +++ b/include/JSystem/JGadget/pointer.h @@ -15,10 +15,17 @@ public: template class TPointer_delete : public TPointer { public: +#ifdef __MWERKS__ TPointer_delete(T* ptr) : TPointer(ptr) {} ~TPointer_delete() { delete mPtr; } +#else + TPointer_delete(T* ptr) : TPointer(ptr) {} + ~TPointer_delete() { + delete this->mPtr; + } +#endif }; } diff --git a/include/JSystem/JHostIO/JHIRMcc.h b/include/JSystem/JHostIO/JHIRMcc.h index 6b79187c56..9e8c00ca39 100644 --- a/include/JSystem/JHostIO/JHIRMcc.h +++ b/include/JSystem/JHostIO/JHIRMcc.h @@ -1,7 +1,7 @@ #ifndef JHIRMCC_H #define JHIRMCC_H -#include +#include struct JHIMccContext; diff --git a/include/JSystem/JHostIO/JORHostInfo.h b/include/JSystem/JHostIO/JORHostInfo.h index 2eb43c5184..965b00ef93 100644 --- a/include/JSystem/JHostIO/JORHostInfo.h +++ b/include/JSystem/JHostIO/JORHostInfo.h @@ -1,7 +1,7 @@ #ifndef JORHOSTINFO_H #define JORHOSTINFO_H -#include +#include #define HOSTINFO_REQ_COMPUTER_NAME 0 #define HOSTINFO_REQ_USERNAME 1 diff --git a/include/JSystem/JHostIO/JORMContext.h b/include/JSystem/JHostIO/JORMContext.h index daf8bbc5f5..b0fe008186 100644 --- a/include/JSystem/JHostIO/JORMContext.h +++ b/include/JSystem/JHostIO/JORMContext.h @@ -1,7 +1,7 @@ #ifndef JORMCONTEXT_H #define JORMCONTEXT_H -#include +#include #include #include "JSystem/JHostIO/JORReflexible.h" #include "JSystem/JSupport/JSUMemoryStream.h" diff --git a/include/JSystem/JMath/random.h b/include/JSystem/JMath/random.h index cfb8ecc1aa..273ab97c12 100644 --- a/include/JSystem/JMath/random.h +++ b/include/JSystem/JMath/random.h @@ -42,7 +42,7 @@ public: TRandom_(u32 value) : RandomT(value) {} u8 get_uint8(u8 param_0) { - return get_ufloat_1() * param_0; + return this->get_ufloat_1() * param_0; } }; diff --git a/include/JSystem/JMessage/JMessage.h b/include/JSystem/JMessage/JMessage.h index f727dd390e..a097187998 100644 --- a/include/JSystem/JMessage/JMessage.h +++ b/include/JSystem/JMessage/JMessage.h @@ -1,7 +1,7 @@ #ifndef JMESSAGE_H #define JMESSAGE_H -#include +#include // Struct definitions might be wrong typedef struct bmg_header_t { diff --git a/include/JSystem/JMessage/locale.h b/include/JSystem/JMessage/locale.h index fca67aa3e6..c5dc58512a 100644 --- a/include/JSystem/JMessage/locale.h +++ b/include/JSystem/JMessage/locale.h @@ -1,7 +1,7 @@ #ifndef JMESSAGE_LOCALE_H #define JMESSAGE_LOCALE_H -#include +#include namespace JMessage { diff --git a/include/JSystem/JStudio/JStudio/fvb-data-parse.h b/include/JSystem/JStudio/JStudio/fvb-data-parse.h index 7e9ae92f55..1caa417550 100644 --- a/include/JSystem/JStudio/JStudio/fvb-data-parse.h +++ b/include/JSystem/JStudio/JStudio/fvb-data-parse.h @@ -27,7 +27,7 @@ public: return ret; } const void* getContent() const { - return (const void*)((int)getBlockEnd_() + align_roundUp(get_IDSize(), 4)); + return (const void*)((intptr_t)getBlockEnd_() + align_roundUp(get_IDSize(), 4)); } }; diff --git a/include/JSystem/JSupport/JSupport.h b/include/JSystem/JSupport/JSupport.h index 8a652dd722..0b9a37aec5 100644 --- a/include/JSystem/JSupport/JSupport.h +++ b/include/JSystem/JSupport/JSupport.h @@ -1,7 +1,7 @@ #ifndef JSUPPORT_H #define JSUPPORT_H -#include +#include #include /** diff --git a/include/JSystem/JUtility/JUTGamePad.h b/include/JSystem/JUtility/JUTGamePad.h index b2e5403de8..0df3f24640 100644 --- a/include/JSystem/JUtility/JUTGamePad.h +++ b/include/JSystem/JUtility/JUTGamePad.h @@ -3,7 +3,7 @@ #include "JSystem/JKernel/JKRDisposer.h" #include "JSystem/JUtility/JUTAssert.h" -#include +#include typedef void (*callbackFn)(int, void*); diff --git a/include/f_pc/f_pc_debug_sv.h b/include/f_pc/f_pc_debug_sv.h index 78a1d98b3e..680f90bd82 100644 --- a/include/f_pc/f_pc_debug_sv.h +++ b/include/f_pc/f_pc_debug_sv.h @@ -2,7 +2,7 @@ #ifndef F_PC_DEBUG_SV_H_ #define F_PC_DEBUG_SV_H_ -#include +#include #if DEBUG diff --git a/include/global.h b/include/global.h index 42990950e1..63e3defa45 100644 --- a/include/global.h +++ b/include/global.h @@ -113,4 +113,10 @@ static const float INF = 2000000000.0f; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; \ (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; (void*)0; +#ifdef __MWERKS__ +#define SJIS(character, value) character +#else +#define SJIS(character, value) ((u32)value) +#endif + #endif diff --git a/src/JSystem/JFramework/JFWDisplay.cpp b/src/JSystem/JFramework/JFWDisplay.cpp index 4d62a8f483..7f775989b8 100644 --- a/src/JSystem/JFramework/JFWDisplay.cpp +++ b/src/JSystem/JFramework/JFWDisplay.cpp @@ -9,6 +9,7 @@ #include "dolphin/gx.h" #include #include "global.h" +#include "stdint.h" void JFWDisplay::ctor_subroutine(bool enableAlpha) { mEnableAlpha = enableAlpha; @@ -362,8 +363,8 @@ static void waitForTick(u32 p1, u16 p2) { if (!OSReceiveMessage(JUTVideo::getManager()->getMessageQueue(), &msg, OS_MESSAGE_BLOCK)) { msg = 0; } - } while (((int)msg - (int)nextCount) < 0); - nextCount = (int)msg + uVar1; + } while (((intptr_t)msg - (intptr_t)nextCount) < 0); + nextCount = (intptr_t)msg + uVar1; } } diff --git a/src/JSystem/JHostIO/JHIMccBuf.cpp b/src/JSystem/JHostIO/JHIMccBuf.cpp index 6a9df9d841..0e539630ce 100644 --- a/src/JSystem/JHostIO/JHIMccBuf.cpp +++ b/src/JSystem/JHostIO/JHIMccBuf.cpp @@ -3,7 +3,7 @@ #include "JSystem/JHostIO/JHIMccBuf.h" #include "JSystem/JKernel/JKRHeap.h" #include "JSystem/JHostIO/JHIRMcc.h" -#include +#include #include extern "C" int HIO2Read(u32, u32, void*, u32); diff --git a/src/JSystem/JHostIO/JHIMemBuf.cpp b/src/JSystem/JHostIO/JHIMemBuf.cpp index 9ab585839d..7f02ca32b8 100644 --- a/src/JSystem/JHostIO/JHIMemBuf.cpp +++ b/src/JSystem/JHostIO/JHIMemBuf.cpp @@ -2,7 +2,7 @@ #include "JSystem/JHostIO/JHICommonMem.h" #include "JSystem/JKernel/JKRHeap.h" -#include +#include int JHIMemBuf::create() { int rt = 1; diff --git a/src/JSystem/JHostIO/JHIhioASync.cpp b/src/JSystem/JHostIO/JHIhioASync.cpp index e9dfd586e8..0dc75b4e76 100644 --- a/src/JSystem/JHostIO/JHIhioASync.cpp +++ b/src/JSystem/JHostIO/JHIhioASync.cpp @@ -2,7 +2,7 @@ #include "JSystem/JHostIO/JHIMccBuf.h" #include "JSystem/JHostIO/JHIRMcc.h" -#include +#include #include "global.h" u32 gsEnableHostio; diff --git a/src/JSystem/JHostIO/JORFile.cpp b/src/JSystem/JHostIO/JORFile.cpp index b412958d88..10dfa2af9a 100644 --- a/src/JSystem/JHostIO/JORFile.cpp +++ b/src/JSystem/JHostIO/JORFile.cpp @@ -2,7 +2,7 @@ #include "JSystem/JHostIO/JORFile.h" #include "JSystem/JHostIO/JORServer.h" -#include +#include JORFile::JORFile() : mHandle(0), diff --git a/src/JSystem/JStudio/JStudio/functionvalue.cpp b/src/JSystem/JStudio/JStudio/functionvalue.cpp index bb09bdb5f6..3e5ec522a2 100644 --- a/src/JSystem/JStudio/JStudio/functionvalue.cpp +++ b/src/JSystem/JStudio/JStudio/functionvalue.cpp @@ -778,8 +778,8 @@ f64 TFunctionValue_list_parameter::update_INTERPOLATE_BSPLINE_dataMore3_( local_68[2] = pfVar2[1]; local_48[2] = pfVar2[-2]; local_48[3] = pfVar2[0]; - s32 iVar5 = ((int)pfVar2 - (int)rThis.dat1.get()) / 4; - s32 iVar3 = ((int)rThis.dat2.get() - (int)pfVar2) / 4; + s32 iVar5 = ((intptr_t)pfVar2 - (intptr_t)rThis.dat1.get()) / 4; + s32 iVar3 = ((intptr_t)rThis.dat2.get() - (intptr_t)pfVar2) / 4; switch(iVar5) { case 2: local_68[0] = 2.0 * local_68[1] - local_68[2]; diff --git a/src/JSystem/JStudio/JStudio/jstudio-object.cpp b/src/JSystem/JStudio/JStudio/jstudio-object.cpp index 00308345df..5d6cb6c443 100644 --- a/src/JSystem/JStudio/JStudio/jstudio-object.cpp +++ b/src/JSystem/JStudio/JStudio/jstudio-object.cpp @@ -186,7 +186,7 @@ void JStudio::TAdaptor::adaptor_setVariableValue_n(JStudio::TControl* pControl, JGadget::TEnumerator enumerator(param_2, param_2 + param_3); while (enumerator) { (*pcVar6)(this, pControl, **enumerator, param_5, iVar7); - param_5 = (const void*)((int)param_5 + iVar7); + param_5 = (const void*)((intptr_t)param_5 + iVar7); } } diff --git a/src/JSystem/JStudio/JStudio/stb-data-parse.cpp b/src/JSystem/JStudio/JStudio/stb-data-parse.cpp index 5a1dd03a7a..3a0f7f54b9 100644 --- a/src/JSystem/JStudio/JStudio/stb-data-parse.cpp +++ b/src/JSystem/JStudio/JStudio/stb-data-parse.cpp @@ -3,6 +3,7 @@ #include "JSystem/JStudio/JStudio/stb-data-parse.h" #include "JSystem/JUtility/JUTAssert.h" #include "dolphin/os.h" +#include "stdint.h" namespace JStudio { namespace stb { @@ -22,12 +23,12 @@ void TParse_TSequence::getData(TData* pData) const { if (type == 0) return; - const void* next = (const void*)((int)getRaw() + 4); + const void* next = (const void*)((intptr_t)getRaw() + 4); if (type <= 0x7f) { pData->next = next; } else { pData->content = next; - pData->next = (const void*)((int)next + param); + pData->next = (const void*)((intptr_t)next + param); } } @@ -43,7 +44,7 @@ void TParse_TParagraph::getData(TData* pData) const { pData->next = data; } else { pData->content = data; - pData->next = (const void*)((int)data + align_roundUp(result, 4)); + pData->next = (const void*)((intptr_t)data + align_roundUp(result, 4)); } } diff --git a/src/JSystem/JSupport/JSUInputStream.cpp b/src/JSystem/JSupport/JSUInputStream.cpp index c5f566a577..26830a0b51 100644 --- a/src/JSystem/JSupport/JSUInputStream.cpp +++ b/src/JSystem/JSupport/JSUInputStream.cpp @@ -2,7 +2,7 @@ #include "JSystem/JSupport/JSUInputStream.h" #include "JSystem/JSupport/JSURandomInputStream.h" -#include +#include JSUInputStream::~JSUInputStream() { if (!isGood()) { diff --git a/src/JSystem/JSupport/JSUOutputStream.cpp b/src/JSystem/JSupport/JSUOutputStream.cpp index c7f37be713..046ab59bda 100644 --- a/src/JSystem/JSupport/JSUOutputStream.cpp +++ b/src/JSystem/JSupport/JSUOutputStream.cpp @@ -2,7 +2,7 @@ #include "JSystem/JSupport/JSUOutputStream.h" #include "JSystem/JSupport/JSURandomOutputStream.h" -#include +#include #include JSUOutputStream::~JSUOutputStream() { diff --git a/src/JSystem/JUtility/JUTException.cpp b/src/JSystem/JUtility/JUTException.cpp index 3b72375a40..855e46cf70 100644 --- a/src/JSystem/JUtility/JUTException.cpp +++ b/src/JSystem/JUtility/JUTException.cpp @@ -7,7 +7,7 @@ #include #include #include -#include +#include #include OSMessageQueue JUTException::sMessageQueue = {0}; diff --git a/src/JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp b/src/JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp index 3a1e55086e..a413a6751a 100644 --- a/src/JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp +++ b/src/JSystem/JUtility/JUTFontData_Ascfont_fix12.cpp @@ -1,6 +1,6 @@ #include "JSystem/JSystem.h" // IWYU pragma: keep -#include +#include #include "global.h" extern u8 const JUTResFONT_Ascfont_fix12[16736] ATTRIBUTE_ALIGN(32) = { diff --git a/src/PowerPC_EABI_Support/Runtime/Src/__mem.c b/src/PowerPC_EABI_Support/Runtime/Src/__mem.c index dfafa506f8..bdf3410251 100644 --- a/src/PowerPC_EABI_Support/Runtime/Src/__mem.c +++ b/src/PowerPC_EABI_Support/Runtime/Src/__mem.c @@ -1,4 +1,4 @@ -#include +#include __declspec(section ".init") void* memcpy(void* dst, const void* src, size_t n) { const unsigned char* s; diff --git a/src/PowerPC_EABI_Support/Runtime/Src/runtime.c b/src/PowerPC_EABI_Support/Runtime/Src/runtime.c index 639b69630c..c06b108a4d 100644 --- a/src/PowerPC_EABI_Support/Runtime/Src/runtime.c +++ b/src/PowerPC_EABI_Support/Runtime/Src/runtime.c @@ -1,4 +1,4 @@ -#include +#include #ifdef __cplusplus extern "C" { diff --git a/src/Z2AudioLib/Z2SeqMgr.cpp b/src/Z2AudioLib/Z2SeqMgr.cpp index 390d6aa0b1..cd90349a97 100644 --- a/src/Z2AudioLib/Z2SeqMgr.cpp +++ b/src/Z2AudioLib/Z2SeqMgr.cpp @@ -131,7 +131,7 @@ Z2SeqMgr::Z2SeqMgr() : JASGlobalInstance(true) { void Z2SeqMgr::bgmStart(u32 bgmID, u32 fadeTime, s32 param_2) { switch (bgmID) { - case -1: + case 0xFFFFFFFF: return; case 0x200005D: bgmAllUnMute(33); diff --git a/src/c/c_dylink.cpp b/src/c/c_dylink.cpp index 503219ae69..27113d7a2a 100644 --- a/src/c/c_dylink.cpp +++ b/src/c/c_dylink.cpp @@ -795,7 +795,7 @@ static DynamicNameTableEntry const DynamicNameTable[] = { #if !PLATFORM_SHIELD {PROC_GRASS, "d_a_grass"}, #endif - {0xFFFF, NULL}, + {-1, NULL}, }; static DynamicModuleControlBase* DMC[PROC_MAX_NUM]; diff --git a/src/d/d_bg_w_kcol.cpp b/src/d/d_bg_w_kcol.cpp index b618cc0b6a..b41b5a4d87 100644 --- a/src/d/d_bg_w_kcol.cpp +++ b/src/d/d_bg_w_kcol.cpp @@ -364,15 +364,15 @@ bool dBgWKCol::LineCheck(cBgS_LinChk* plinchk) { ((u32)y_sp3C >> shift) << m_pkc_head->m_area_x_blocks_shift | (u32)x_sp38 >> shift) << 2; - while ((offset = *(int*)((int)block + offset)) >= 0) { - block = (u16*)((int)block + offset); + while ((offset = *(int*)((intptr_t)block + offset)) >= 0) { + block = (u16*)((intptr_t)block + offset); shift--; offset = (((u32)z_sp40 >> shift & 1) << 2 | ((u32)y_sp3C >> shift & 1) << 1 | ((u32)x_sp38 >> shift & 1) << 0) << 2; } - u16* sp28 = (u16*)((int)block + (offset & 0x7FFFFFFF)); + u16* sp28 = (u16*)((intptr_t)block + (offset & 0x7FFFFFFF)); shift = 1 << shift; int cellSize = shift - 1; @@ -927,15 +927,15 @@ void dBgWKCol::CaptPoly(dBgS_CaptPoly& i_captpoly) { 4 * (((u32)sp24 >> r29) << m_pkc_head->m_area_xy_blocks_shift | ((u32)sp20 >> r29) << m_pkc_head->m_area_x_blocks_shift | (u32)sp1C >> r29); - while ((sp14 = (*(int*)((int)sp18 + sp14))) >= 0) { - sp18 = (u16*)((int)sp18 + sp14); + while ((sp14 = (*(int*)((intptr_t)sp18 + sp14))) >= 0) { + sp18 = (u16*)((intptr_t)sp18 + sp14); r29--; sp14 = (((u32)sp24 >> r29 & 1) << 2 | ((u32)sp20 >> r29 & 1) << 1 | ((u32)sp1C >> r29 & 1) << 0) << 2; } - u16* r28 = (u16*)((int)sp18 + (sp14 & 0x7FFFFFFF)); + u16* r28 = (u16*)((intptr_t)sp18 + (sp14 & 0x7FFFFFFF)); r29 = 1 << r29; int sp10 = r29 - 1; @@ -1098,8 +1098,8 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) { ((u32)sp_e0 >> shift_d0) << m_pkc_head->m_area_xy_blocks_shift | ((u32)sp_dc >> shift_d0) << m_pkc_head->m_area_x_blocks_shift | ((u32)sp_d8 >> shift_d0)); - while ((sp_cc = *(int*)((int)block_d4 + sp_cc)) >= 0) { - block_d4 = (u16*)((int)block_d4 + sp_cc); + while ((sp_cc = *(int*)((intptr_t)block_d4 + sp_cc)) >= 0) { + block_d4 = (u16*)((intptr_t)block_d4 + sp_cc); shift_d0--; sp_cc = 4 * ( ((((u32)sp_e0 >> shift_d0) & 1) << 2) | @@ -1107,7 +1107,7 @@ bool dBgWKCol::WallCorrectSort(dBgS_Acch* pwi) { ((((u32)sp_d8 >> shift_d0) & 1) << 0) ); } - u16* sp_c8 = (u16*)((int)block_d4 + (sp_cc & 0x7fffffff)); + u16* sp_c8 = (u16*)((intptr_t)block_d4 + (sp_cc & 0x7fffffff)); shift_d0 = 1 << shift_d0; int sp_c4 = shift_d0 - 1; sp_108 = shift_d0 - (sp_d8 & sp_c4); @@ -1556,15 +1556,15 @@ bool dBgWKCol::WallCorrect(dBgS_Acch* pwi) { ((u32)spB8 >> spAC) << m_pkc_head->m_area_x_blocks_shift | (u32)spB4 >> spAC); - while ((spA8 = *(int*)((int)spB0 + spA8)) >= 0) { - spB0 = (u16*)((int)spB0 + spA8); + while ((spA8 = *(int*)((intptr_t)spB0 + spA8)) >= 0) { + spB0 = (u16*)((intptr_t)spB0 + spA8); spAC--; spA8 = ((((u32)spBC >> spAC) & 1) << 2 | (((u32)spB8 >> spAC) & 1) << 1 | (((u32)spB4 >> spAC) & 1) << 0) * 4; } - u16* spA4 = (u16*)((int)spB0 + (spA8 & 0x7FFFFFFF)); + u16* spA4 = (u16*)((intptr_t)spB0 + (spA8 & 0x7FFFFFFF)); spAC = 1 << spAC; u32 spA0 = spAC - 1; spDC = spAC - (spB4 & spA0); @@ -2012,8 +2012,8 @@ bool dBgWKCol::SplGrpChk(dBgS_SplGrpChk* param_0) { int sp20 = 4 * (((u32)sp34 >> sp24) << m_pkc_head->m_area_xy_blocks_shift | ((u32)sp2C >> sp24) << m_pkc_head->m_area_x_blocks_shift | (u32)sp38 >> sp24); - while ((sp20 = *(int*)((int)sp28 + sp20)) >= 0) { - sp28 = ((int)sp28 + sp20); + while ((sp20 = *(int*)((intptr_t)sp28 + sp20)) >= 0) { + sp28 = ((intptr_t)sp28 + sp20); sp24--; sp20 = 4 * (((u32)sp34 >> sp24 & 1) << 2 | @@ -2172,15 +2172,15 @@ bool dBgWKCol::SphChk(dBgS_SphChk* param_0, void* param_1) { int sp1C = (((u32)sp2C >> var_r29 << m_pkc_head->m_area_xy_blocks_shift) | ((u32)sp28 >> var_r29 << m_pkc_head->m_area_x_blocks_shift) | ((u32)sp24 >> var_r29)) * 4; - while ((sp1C = *(int*)((int)sp20 + sp1C)) >= 0) { - sp20 = (u16*)((int)sp20 + sp1C); + while ((sp1C = *(int*)((intptr_t)sp20 + sp1C)) >= 0) { + sp20 = (u16*)((intptr_t)sp20 + sp1C); var_r29--; sp1C = (((u32)sp2C >> var_r29 & 1) << 2 | ((u32)sp28 >> var_r29 & 1) << 1 | ((u32)sp24 >> var_r29 & 1)) * 4; } - u16* var_r28 = (u16*)((int)sp20 + (sp1C & 0x7fffffff)); + u16* var_r28 = (u16*)((intptr_t)sp20 + (sp1C & 0x7fffffff)); var_r29 = 1 << var_r29; int sp18 = var_r29 - 1; sp4C = var_r29 - (sp24 & sp18); diff --git a/src/d/d_item_data.cpp b/src/d/d_item_data.cpp index 00f6acccda..2a84fb615a 100644 --- a/src/d/d_item_data.cpp +++ b/src/d/d_item_data.cpp @@ -3,519 +3,519 @@ #include "d/d_item_data.h" dItem_itemResource dItem_data::item_resource[] = { - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x3C, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x1, 0xFF, 0x002D, 0x3C, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x2, 0xFF, 0x002D, 0x3C, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x3, 0xFF, 0x002D, 0x3C, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x4, 0xFF, 0x002D, 0x3C, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x5, 0xFF, 0x002D, 0x3C, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x6, 0xFF, 0x002D, 0x3C, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"O_gD_bomb", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x019F}, - {"O_gD_bomb", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x019F}, - {"O_gD_bomb", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x019F}, - {"O_gD_bomb", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x019F}, - {"O_gD_arow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0053, 0x64, 0x0000}, - {"O_gD_arow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0053, 0x64, 0x0000}, - {"O_gD_arow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0053, 0x64, 0x0000}, - {"O_gD_arow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0053, 0x64, 0x0000}, - {"O_gD_tane", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x005C, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, - {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, - {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, - {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, - {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, - {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, - {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, - {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0079}, - {"O_gD_hutk", 0x0008, 0xFFFF, 0x0005, 0x000B, 0xFFFF, 0xFF, 0xFF, 0x0050, 0x64, 0x0194}, - {"O_gD_hutu", 0x0008, 0xFFFF, 0x0005, 0x000B, 0xFFFF, 0xFF, 0xFF, 0x0051, 0x64, 0x0000}, - {"T_gD_map", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0071, 0x64, 0x0197}, - {"T_gD_kmps", 0x0007, 0xFFFF, 0x0004, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006F, 0x64, 0x0198}, - {"O_gD_TKS", 0x0008, 0xFFFF, 0x0005, 0xFFFF, 0x000B, 0xFF, 0xFF, 0x0028, 0x64, 0x0191}, - {"T_gD_bkey", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0021, 0x64, 0xFFFF}, - {"O_gD_TKC", 0x0009, 0x000C, 0x0006, 0xFFFF, 0x000F, 0xFF, 0xFF, 0x0026, 0x64, 0x0191}, - {"O_gD_SWA", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0070, 0x6E, 0x0195}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0042, 0x6E, 0x01B2}, - {"T_gD_SHB", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0074, 0x6E, 0x01B5}, - {"O_gD_SHC", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0040, 0x6E, 0x0196}, - {"O_gD_SHA", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x003C, 0x64, 0x01B4}, - {"O_gD_mem2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0022, 0x64, 0x01A8}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x006B, 0x64, 0x0192}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x006B, 0x64, 0x0000}, - {"O_gD_marm", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0041, 0x64, 0x01A9}, - {"O_gD_zora", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004D, 0x64, 0x01AA}, - {"O_gD_Injy", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x002D, 0x64, 0x0000}, - {"O_gD_TKS", 0x0008, 0xFFFF, 0x0005, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0028, 0x64, 0x0000}, - {"O_gD_puL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0047, 0x64, 0x0000}, - {"O_gD_puL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0048, 0x64, 0x0000}, - {"O_gD_puL3", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0049, 0x64, 0x01AD}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0050, 0x64, 0x019F}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0050, 0x64, 0x01AF}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0050, 0x64, 0x01B0}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0050, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0072, 0x6E, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x01B3}, - {"O_gD_sang", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x002A, 0x64, 0x0194}, - {"O_gD_hawk", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0059, 0x64, 0x0000}, - {"O_gD_SWB", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0024, 0x6E, 0x0000}, - {"O_gD_boom", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0062, 0x6E, 0x01AB}, - {"O_gD_SP", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x002B, 0x5F, 0x01A6}, - {"O_gD_IB", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0020, 0x78, 0x0000}, - {"O_gD_bow", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0069, 0x64, 0x01A5}, - {"O_gD_HS", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006A, 0x78, 0x01AC}, - {"O_gD_boot", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0025, 0x64, 0x01A7}, - {"O_gD_CROD", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0016, 0x6E, 0x019E}, - {"O_gD_HS", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x002C, 0x82, 0x01B5}, - {"T_gD_kt", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006C, 0x6E, 0x0193}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0042, 0x6E, 0x01B6}, - {"O_gD_uktr", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0018, 0x64, 0x01B7}, - {"O_gD_pach", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x005B, 0x64, 0x01B8}, - {"O_gD_CROD", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0016, 0x6E, 0x01B9}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x01BA}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0197}, - {"O_gD_bmL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0056, 0x64, 0x0198}, - {"O_gD_bomc", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0x0, 0xFF, 0x0055, 0x64, 0x01BD}, - {"O_gD_bomc", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0055, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0056, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"O_gD_quL1", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004A, 0x64, 0x01B1}, - {"O_gD_quL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004B, 0x64, 0x01F0}, - {"O_gD_quL3", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004C, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x004E, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x000C, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0059, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0019, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x001B, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x001A, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x001C, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x001D, 0x64, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x01BE}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x1, 0x0, 0x0011, 0x50, 0x01C0}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x2, 0x0, 0x0011, 0x50, 0x01C1}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x3, 0x0, 0x0011, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x3, 0x1, 0x0012, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x01AE}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x8, 0x0, 0x0011, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x0000}, - {"Obj_kntr", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006C, 0x6E, 0x0000}, - {"Obj_kntr", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006C, 0x6E, 0x0000}, - {"O_gD_bmL2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000C, 0x64, 0x0198}, - {"O_gD_PG", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000D, 0x64, 0x0000}, - {"O_gD_BI", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x000B, 0x64, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0xB, 0x0, 0x0011, 0x50, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0xB, 0x0, 0x0011, 0x50, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x7, 0x0, 0x0011, 0x50, 0x01BF}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x2, 0x0, 0x0011, 0x50, 0x01BF}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x1, 0x0, 0x0011, 0x50, 0x01BF}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01BF}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x6, 0x0, 0x0011, 0x50, 0x01BF}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0013, 0x50, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0013, 0x50, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0013, 0x50, 0x01CF}, - {"O_gD_lttr", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x005A, 0x64, 0x0000}, - {"O_gD_bill", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0054, 0x64, 0x0000}, - {"O_gD_wood", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0058, 0x64, 0x0000}, - {"O_gD_pend", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x005D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x005D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x01D3}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x01D2}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"O_gD_mem2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0022, 0x64, 0x0000}, - {"O_gD_mem2", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0022, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x006C, 0x6E, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, - {"O_gD_hk_s", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0011, 0x50, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"N_gD_Lpod", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0052, 0x64, 0x0000}, - {"N_gD_Lpod", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0052, 0x64, 0x0000}, - {"N_gD_Lpod", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0052, 0x64, 0x0000}, - {"N_gD_Lpod", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0052, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x0011, 0x50, 0x0000}, - {"O_gD_kabo", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0030, 0x50, 0x0000}, - {"O_gD_kabm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x002F, 0x50, 0x0000}, - {"O_gD_choo", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0008, 0x50, 0x0000}, - {"O_gD_chom", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0007, 0x50, 0x0000}, - {"O_gD_kuwo", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0038, 0x50, 0x0000}, - {"O_gD_kuwm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0037, 0x50, 0x0000}, - {"O_gD_bato", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0006, 0x50, 0x0000}, - {"O_gD_batm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0005, 0x50, 0x0000}, - {"O_gD_nano", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x003B, 0x50, 0x0000}, - {"O_gD_nanm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x003A, 0x50, 0x0000}, - {"O_gD_dano", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x000A, 0x50, 0x0000}, - {"O_gD_danm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0009, 0x50, 0x0000}, - {"O_gD_kamo", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0034, 0x50, 0x0000}, - {"O_gD_kamm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0033, 0x50, 0x0000}, - {"O_gD_teno", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x005F, 0x50, 0x0000}, - {"O_gD_tenm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x005E, 0x50, 0x0000}, - {"O_gD_kato", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0036, 0x50, 0x0000}, - {"O_gD_katm", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0035, 0x50, 0x0000}, - {"O_gD_tono", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0061, 0x50, 0x0000}, - {"O_gD_tonm", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0060, 0x50, 0x0000}, - {"O_gD_ario", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0004, 0x50, 0x0000}, - {"O_gD_arim", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x0003, 0x50, 0x0000}, - {"O_gD_kago", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0032, 0x50, 0x0000}, - {"O_gD_kagm", 0x0009, 0x000F, 0x0006, 0x000C, 0xFFFF, 0xFF, 0xFF, 0x0031, 0x50, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"O_gD_tama", 0x0005, 0x000B, 0xFFFF, 0x0008, 0xFFFF, 0xFF, 0xFF, 0x003E, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x002D, 0x64, 0x0000}, - {"O_gD_komo", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004F, 0x64, 0x0000}, - {"O_gD_komo", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004F, 0x64, 0x0000}, - {"O_gD_komo", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x004F, 0x64, 0x0000}, - {"O_gD_TKC", 0x0009, 0x000C, 0x0006, 0xFFFF, 0x000F, 0xFF, 0xFF, 0x0026, 0x64, 0x0191}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x4, 0xFF, 0x002D, 0x3C, 0x0000}, - {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, - {"O_gD_bott", 0x0006, 0x000C, 0xFFFF, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, - {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0000}, - {"O_gD_pump", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0029, 0x64, 0x0000}, - {"O_gD_chee", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0015, 0x64, 0x0000}, - {"O_gD_bkey", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x003F, 0x64, 0x0000}, - {"F_gD_rupy", 0x0004, 0xFFFF, 0xFFFF, 0x0007, 0xFFFF, 0x0, 0xFF, 0x003C, 0x64, 0x0000}, - {"T_gD_kt", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006C, 0x6E, 0x0000}, - {"D_MKey_01", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0043, 0x78, 0x0000}, - {"D_MKey_02", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0045, 0x78, 0x0000}, - {"D_MKey_03", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0046, 0x78, 0x0000}, - {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0000}, - {"O_gD_Mkey", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x0017, 0x78, 0x0000}, - {"T_gD_key", 0x0003, 0xFFFF, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0xFF, 0x006E, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x1, -0x1, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x2, -0x1, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x3, -0x1, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x4, -0x1, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x5, -0x1, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x6, -0x1, 0x002D, 0x3C, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"O_gD_bomb", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000C, 0x64, 0x019F}, + {"O_gD_bomb", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000C, 0x64, 0x019F}, + {"O_gD_bomb", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000C, 0x64, 0x019F}, + {"O_gD_bomb", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000C, 0x64, 0x019F}, + {"O_gD_arow", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0053, 0x64, 0x0000}, + {"O_gD_arow", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0053, 0x64, 0x0000}, + {"O_gD_arow", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0053, 0x64, 0x0000}, + {"O_gD_arow", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0053, 0x64, 0x0000}, + {"O_gD_tane", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x005C, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"O_gD_PG", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000D, 0x64, 0x0000}, + {"O_gD_PG", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000D, 0x64, 0x0000}, + {"O_gD_PG", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000D, 0x64, 0x0000}, + {"O_gD_PG", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000D, 0x64, 0x0000}, + {"O_gD_BI", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000B, 0x64, 0x0000}, + {"O_gD_BI", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000B, 0x64, 0x0000}, + {"O_gD_BI", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000B, 0x64, 0x0000}, + {"O_gD_BI", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000B, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"T_gD_key", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006E, 0x64, 0x0079}, + {"O_gD_hutk", 0x0008,-0x0001, 0x0005, 0x000B,-0x0001, -0x1, -0x1, 0x0050, 0x64, 0x0194}, + {"O_gD_hutu", 0x0008,-0x0001, 0x0005, 0x000B,-0x0001, -0x1, -0x1, 0x0051, 0x64, 0x0000}, + {"T_gD_map", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0071, 0x64, 0x0197}, + {"T_gD_kmps", 0x0007,-0x0001, 0x0004,-0x0001,-0x0001, -0x1, -0x1, 0x006F, 0x64, 0x0198}, + {"O_gD_TKS", 0x0008,-0x0001, 0x0005,-0x0001, 0x000B, -0x1, -0x1, 0x0028, 0x64, 0x0191}, + {"T_gD_bkey", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0021, 0x64,-0x0001}, + {"O_gD_TKC", 0x0009, 0x000C, 0x0006,-0x0001, 0x000F, -0x1, -0x1, 0x0026, 0x64, 0x0191}, + {"O_gD_SWA", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0070, 0x6E, 0x0195}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0042, 0x6E, 0x01B2}, + {"T_gD_SHB", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0074, 0x6E, 0x01B5}, + {"O_gD_SHC", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0040, 0x6E, 0x0196}, + {"O_gD_SHA", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x003C, 0x64, 0x01B4}, + {"O_gD_mem2", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0022, 0x64, 0x01A8}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x006B, 0x64, 0x0192}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x006B, 0x64, 0x0000}, + {"O_gD_marm", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0041, 0x64, 0x01A9}, + {"O_gD_zora", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x004D, 0x64, 0x01AA}, + {"O_gD_Injy", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x002D, 0x64, 0x0000}, + {"O_gD_TKS", 0x0008,-0x0001, 0x0005,-0x0001,-0x0001, -0x1, -0x1, 0x0028, 0x64, 0x0000}, + {"O_gD_puL2", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0047, 0x64, 0x0000}, + {"O_gD_puL2", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0048, 0x64, 0x0000}, + {"O_gD_puL3", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0049, 0x64, 0x01AD}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0050, 0x64, 0x019F}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0050, 0x64, 0x01AF}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0050, 0x64, 0x01B0}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0050, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0072, 0x6E, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x01B3}, + {"O_gD_sang", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x002A, 0x64, 0x0194}, + {"O_gD_hawk", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0059, 0x64, 0x0000}, + {"O_gD_SWB", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0024, 0x6E, 0x0000}, + {"O_gD_boom", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0062, 0x6E, 0x01AB}, + {"O_gD_SP", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x002B, 0x5F, 0x01A6}, + {"O_gD_IB", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0020, 0x78, 0x0000}, + {"O_gD_bow", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0069, 0x64, 0x01A5}, + {"O_gD_HS", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006A, 0x78, 0x01AC}, + {"O_gD_boot", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0025, 0x64, 0x01A7}, + {"O_gD_CROD", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0016, 0x6E, 0x019E}, + {"O_gD_HS", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x002C, 0x82, 0x01B5}, + {"T_gD_kt", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006C, 0x6E, 0x0193}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0042, 0x6E, 0x01B6}, + {"O_gD_uktr", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0018, 0x64, 0x01B7}, + {"O_gD_pach", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x005B, 0x64, 0x01B8}, + {"O_gD_CROD", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0016, 0x6E, 0x01B9}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x01BA}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0197}, + {"O_gD_bmL2", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0056, 0x64, 0x0198}, + {"O_gD_bomc", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, 0x0, -0x1, 0x0055, 0x64, 0x01BD}, + {"O_gD_bomc", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0055, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0056, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"O_gD_quL1", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x004A, 0x64, 0x01B1}, + {"O_gD_quL2", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x004B, 0x64, 0x01F0}, + {"O_gD_quL3", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x004C, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x004E, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x000C, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0059, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0019, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x001B, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x001A, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x001C, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x001D, 0x64, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x01BE}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x1, 0x0, 0x0011, 0x50, 0x01C0}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x2, 0x0, 0x0011, 0x50, 0x01C1}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x3, 0x0, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x3, 0x1, 0x0012, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x01AE}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x8, 0x0, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x5, 0x0, 0x0011, 0x50, 0x0000}, + {"Obj_kntr", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006C, 0x6E, 0x0000}, + {"Obj_kntr", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006C, 0x6E, 0x0000}, + {"O_gD_bmL2", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000C, 0x64, 0x0198}, + {"O_gD_PG", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000D, 0x64, 0x0000}, + {"O_gD_BI", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x000B, 0x64, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0xB, 0x0, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0xB, 0x0, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x7, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x0, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x2, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x1, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01BF}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x6, 0x0, 0x0011, 0x50, 0x01BF}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0013, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0013, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0013, 0x50, 0x01CF}, + {"O_gD_lttr", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x005A, 0x64, 0x0000}, + {"O_gD_bill", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0054, 0x64, 0x0000}, + {"O_gD_wood", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0058, 0x64, 0x0000}, + {"O_gD_pend", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x005D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x005D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x01D3}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x01D2}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"O_gD_mem2", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0022, 0x64, 0x0000}, + {"O_gD_mem2", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0022, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x006C, 0x6E, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x4, 0x0, 0x0011, 0x50, 0x01A1}, + {"O_gD_hk_s", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0011, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"N_gD_Lpod", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0052, 0x64, 0x0000}, + {"N_gD_Lpod", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0052, 0x64, 0x0000}, + {"N_gD_Lpod", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0052, 0x64, 0x0000}, + {"N_gD_Lpod", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0052, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x0011, 0x50, 0x0000}, + {"O_gD_kabo", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0030, 0x50, 0x0000}, + {"O_gD_kabm", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x002F, 0x50, 0x0000}, + {"O_gD_choo", 0x0009, 0x000F, 0x0006, 0x000C,-0x0001, -0x1, -0x1, 0x0008, 0x50, 0x0000}, + {"O_gD_chom", 0x0009, 0x000F, 0x0006, 0x000C,-0x0001, -0x1, -0x1, 0x0007, 0x50, 0x0000}, + {"O_gD_kuwo", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0038, 0x50, 0x0000}, + {"O_gD_kuwm", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0037, 0x50, 0x0000}, + {"O_gD_bato", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0006, 0x50, 0x0000}, + {"O_gD_batm", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0005, 0x50, 0x0000}, + {"O_gD_nano", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x003B, 0x50, 0x0000}, + {"O_gD_nanm", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x003A, 0x50, 0x0000}, + {"O_gD_dano", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x000A, 0x50, 0x0000}, + {"O_gD_danm", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0009, 0x50, 0x0000}, + {"O_gD_kamo", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0034, 0x50, 0x0000}, + {"O_gD_kamm", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0033, 0x50, 0x0000}, + {"O_gD_teno", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x005F, 0x50, 0x0000}, + {"O_gD_tenm", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x005E, 0x50, 0x0000}, + {"O_gD_kato", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0036, 0x50, 0x0000}, + {"O_gD_katm", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0035, 0x50, 0x0000}, + {"O_gD_tono", 0x0009, 0x000F, 0x0006, 0x000C,-0x0001, -0x1, -0x1, 0x0061, 0x50, 0x0000}, + {"O_gD_tonm", 0x0009, 0x000F, 0x0006, 0x000C,-0x0001, -0x1, -0x1, 0x0060, 0x50, 0x0000}, + {"O_gD_ario", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0004, 0x50, 0x0000}, + {"O_gD_arim", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x0003, 0x50, 0x0000}, + {"O_gD_kago", 0x0009, 0x000F, 0x0006, 0x000C,-0x0001, -0x1, -0x1, 0x0032, 0x50, 0x0000}, + {"O_gD_kagm", 0x0009, 0x000F, 0x0006, 0x000C,-0x0001, -0x1, -0x1, 0x0031, 0x50, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"O_gD_tama", 0x0005, 0x000B,-0x0001, 0x0008,-0x0001, -0x1, -0x1, 0x003E, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x002D, 0x64, 0x0000}, + {"O_gD_komo", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x004F, 0x64, 0x0000}, + {"O_gD_komo", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x004F, 0x64, 0x0000}, + {"O_gD_komo", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x004F, 0x64, 0x0000}, + {"O_gD_TKC", 0x0009, 0x000C, 0x0006,-0x0001, 0x000F, -0x1, -0x1, 0x0026, 0x64, 0x0191}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x4, -0x1, 0x002D, 0x3C, 0x0000}, + {"T_gD_key", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006E, 0x64, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, + {"O_gD_bott", 0x0006, 0x000C,-0x0001, 0x0009, 0x000F, 0x0, 0x2, 0x0011, 0x50, 0x0000}, + {"T_gD_key", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006E, 0x64, 0x0000}, + {"O_gD_pump", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0029, 0x64, 0x0000}, + {"O_gD_chee", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0015, 0x64, 0x0000}, + {"O_gD_bkey", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x003F, 0x64, 0x0000}, + {"F_gD_rupy", 0x0004,-0x0001,-0x0001, 0x0007,-0x0001, 0x0, -0x1, 0x003C, 0x64, 0x0000}, + {"T_gD_kt", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006C, 0x6E, 0x0000}, + {"D_MKey_01", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0043, 0x78, 0x0000}, + {"D_MKey_02", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0045, 0x78, 0x0000}, + {"D_MKey_03", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0046, 0x78, 0x0000}, + {"T_gD_key", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006E, 0x64, 0x0000}, + {"O_gD_Mkey", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x0017, 0x78, 0x0000}, + {"T_gD_key", 0x0003,-0x0001,-0x0001,-0x0001,-0x0001, -0x1, -0x1, 0x006E, 0x64, 0x0000}, }; dItem_fieldItemResource dItem_data::field_item_res[] = { - {"Always", 0x0014, 0xFFFF, 0x0030, 0xFF, 0x1000}, - {"Always", 0x0017, 0xFFFF, 0x0031, 0x0, 0x1000}, - {"Always", 0x0017, 0xFFFF, 0x0031, 0x1, 0x1000}, - {"Always", 0x0017, 0xFFFF, 0x0031, 0x2, 0x1000}, - {"Always", 0x0017, 0xFFFF, 0x0031, 0x3, 0x1000}, - {"Always", 0x0017, 0xFFFF, 0x0031, 0x4, 0x1000}, - {"Always", 0x0017, 0xFFFF, 0x0031, 0x5, 0x1000}, - {"Always", 0x0017, 0xFFFF, 0x0031, 0x6, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"Always", 0x0023, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"Always", 0x0023, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"Always", 0x0023, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"Always", 0x0022, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"Always", 0x0024, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"Always", 0x0014, 0xFFFF, 0x0030, 0xFF, 0x1000}, - {"T_g_key", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {"Always", 0x0014,-0x0001, 0x0030, 0xFF, 0x1000}, + {"Always", 0x0017,-0x0001, 0x0031, 0x0, 0x1000}, + {"Always", 0x0017,-0x0001, 0x0031, 0x1, 0x1000}, + {"Always", 0x0017,-0x0001, 0x0031, 0x2, 0x1000}, + {"Always", 0x0017,-0x0001, 0x0031, 0x3, 0x1000}, + {"Always", 0x0017,-0x0001, 0x0031, 0x4, 0x1000}, + {"Always", 0x0017,-0x0001, 0x0031, 0x5, 0x1000}, + {"Always", 0x0017,-0x0001, 0x0031, 0x6, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"Always", 0x0023,-0x0001,-0x0001, 0xFF, 0x1000}, + {"Always", 0x0023,-0x0001,-0x0001, 0xFF, 0x1000}, + {"Always", 0x0023,-0x0001,-0x0001, 0xFF, 0x1000}, + {"Always", 0x0022,-0x0001,-0x0001, 0xFF, 0x1000}, + {"Always", 0x0024,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"Always", 0x0014,-0x0001, 0x0030, 0xFF, 0x1000}, + {"T_g_key", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, {"Always", 0x0015, 0x000D, 0x0033, 0xFF, 0x1000}, {"Always", 0x0016, 0x000E, 0x0034, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"T_g_bkey", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"O_g_SWA", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"T_g_SHB", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"O_g_ZORA", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"O_gD_SWB", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"T_g_kt", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"O_wood", 0x0004, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"T_g_kt", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {NULL, 0xFFFF, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, - {"T_g_key", 0x0003, 0xFFFF, 0xFFFF, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"T_g_bkey", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"O_g_SWA", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"T_g_SHB", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"O_g_ZORA", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"O_gD_SWB", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"T_g_kt", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"O_wood", 0x0004,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"T_g_kt", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {NULL,-0x0001,-0x0001,-0x0001, 0xFF, 0x1000}, + {"T_g_key", 0x0003,-0x0001,-0x0001, 0xFF, 0x1000}, }; dItem_itemInfo dItem_data::item_info[] = { diff --git a/src/d/d_kankyo.cpp b/src/d/d_kankyo.cpp index ac96a6f3df..d59299eccd 100644 --- a/src/d/d_kankyo.cpp +++ b/src/d/d_kankyo.cpp @@ -1,7 +1,7 @@ #include "d/dolzel.h" // IWYU pragma: keep #include "d/d_kankyo.h" -#include +#include #include #include "JSystem/JHostIO/JORFile.h" diff --git a/src/d/d_kankyo_debug.cpp b/src/d/d_kankyo_debug.cpp index f7380be066..4d0a26893b 100644 --- a/src/d/d_kankyo_debug.cpp +++ b/src/d/d_kankyo_debug.cpp @@ -689,9 +689,11 @@ void dKydb_timedisp() { } } +#if __MWERKS__ || DEBUG if (g_presetHIO.field_0x2716 != 0) { dDbVw_Report(0x1E, 0x55, "JYOKYO FILE YOMIKOMI SIPPAI!"); } +#endif int var_r31 = 0x55; if ((g_kankyoHIO.navy.field_0x22a & 1)) { diff --git a/src/d/d_map_path_dmap.cpp b/src/d/d_map_path_dmap.cpp index de6c6e2155..a7d6172436 100644 --- a/src/d/d_map_path_dmap.cpp +++ b/src/d/d_map_path_dmap.cpp @@ -422,7 +422,7 @@ int dMpath_c::setPointer(dDrawPath_c::room_class* i_room, s8* param_1, s8* param i_room->mpFloatData = (f32*)((uintptr_t)i_room + (uintptr_t)i_room->mpFloatData); dDrawPath_c::floor_class* floor_p = i_room->mpFloor; - int room = (int)i_room; + int room = (intptr_t)i_room; for (int i = 0; i < i_room->mFloorNum; i++) { floor_p->mpGroup = (dDrawPath_c::group_class*)(room + (uintptr_t)floor_p->mpGroup); diff --git a/src/d/d_menu_fmap.cpp b/src/d/d_menu_fmap.cpp index 24616375ef..a310746aaf 100644 --- a/src/d/d_menu_fmap.cpp +++ b/src/d/d_menu_fmap.cpp @@ -105,7 +105,7 @@ const char* dMenuFmap_getStartStageName(void* i_fieldData) { stage_stag_info_class* stag_info = dComIfGp_getStage()->getStagInfo(); if (dStage_stagInfo_GetUpButton(stag_info) == 5) { dMenu_Fmap_virtual_stage_data_c* data_list = (dMenu_Fmap_virtual_stage_data_c*) - ((int)i_fieldData + ((dMenu_Fmap_field_data_c*)i_fieldData)->mVirtualStageOffset); + ((intptr_t)i_fieldData + ((dMenu_Fmap_field_data_c*)i_fieldData)->mVirtualStageOffset); dMenu_Fmap_virtual_stage_data_c::data* data = data_list->mData; for (int i = 0; i < data_list->mCount; i++) { if (!strcmp(dComIfGp_getStartStageName(), data[i].mStageName)) { @@ -1801,7 +1801,7 @@ bool dMenu_Fmap_c::isRoomCheck(int i_stageNo, int i_roomNo) { } dMenuMapCommon_c::Stage_c* stage_data - = (dMenuMapCommon_c::Stage_c*)((int)mpFieldDat + mpFieldDat->mStageDataOffset); + = (dMenuMapCommon_c::Stage_c*)((intptr_t)mpFieldDat + mpFieldDat->mStageDataOffset); dMenuMapCommon_c::Stage_c::data* stages = stage_data->mData; u8 stage_no = 0; int i = 0; @@ -1890,7 +1890,7 @@ bool dMenu_Fmap_c::isRoomCheck(int i_stageNo, int i_roomNo) { u16 dMenu_Fmap_c::checkStRoomData() { dMenu_Fmap_field_room_data_c* room_data - = (dMenu_Fmap_field_room_data_c*)((int)mpFieldDat + mpFieldDat->mRoomDataOffset); + = (dMenu_Fmap_field_room_data_c*)((intptr_t)mpFieldDat + mpFieldDat->mRoomDataOffset); dMenu_Fmap_field_room_data_c::data* data = room_data->mData; int count = room_data->mCount; for (int i = 0; i < count; i++) { @@ -1909,7 +1909,7 @@ u16 dMenu_Fmap_c::checkStRoomData() { } } - data = (dMenu_Fmap_field_room_data_c::data*)((int)data + offset); + data = (dMenu_Fmap_field_room_data_c::data*)((intptr_t)data + offset); } mFlashRoomCount = 0; @@ -2010,7 +2010,7 @@ bool dMenu_Fmap_c::readAreaData(u8 i_regionNo, bool i_isSelectedRegion) { char tmp_stage_name[8]; dMenuMapCommon_c::Stage_c::data* stages - = ((dMenuMapCommon_c::Stage_c*)((int)mpFieldDat + mpFieldDat->mStageDataOffset))->mData; + = ((dMenuMapCommon_c::Stage_c*)((intptr_t)mpFieldDat + mpFieldDat->mStageDataOffset))->mData; u8 stage_no = 0; dMenu_Fmap_stage_data_c* prev_stage_data = NULL; dMenuMapCommon_c::RoomData_c* prev_room_data = NULL; @@ -2254,7 +2254,7 @@ bool dMenu_Fmap_c::readFieldMapData(void** o_data, char const* i_path, bool para } void dMenu_Fmap_c::decodeFieldMapData() { - int field_data = (int)mpFieldDat; + int field_data = (intptr_t)mpFieldDat; dMenu_Fmap_field_region_data_c* region_data = (dMenu_Fmap_field_region_data_c*)(field_data + mpFieldDat->mRegionDataOffset); dMenuMapCommon_c::Stage_c* stage_data @@ -2682,7 +2682,7 @@ void dMenu_Fmap_c::drawPortalIcon() { u8 dMenu_Fmap_c::getRegionStageNum(int param_0) { if (mpFieldDat != NULL) { dMenu_Fmap_field_region_data_c* region_data - = (dMenu_Fmap_field_region_data_c*)((int)mpFieldDat + mpFieldDat->mRegionDataOffset); + = (dMenu_Fmap_field_region_data_c*)((intptr_t)mpFieldDat + mpFieldDat->mRegionDataOffset); dMenu_Fmap_field_region_data_c::data* regions = region_data->mData; for (int i = 0; i < region_data->mCount; i++) { if (param_0 == regions[i].mTextureReadNum) { diff --git a/src/d/d_menu_save.cpp b/src/d/d_menu_save.cpp index 32b4fa61b7..5929fbfa70 100644 --- a/src/d/d_menu_save.cpp +++ b/src/d/d_menu_save.cpp @@ -926,7 +926,7 @@ void dMenu_save_c::memCardCheck() { field_0x1c0 = 0; errDispInitSet(0x3B4); // There is Insufficient space on the Memory Card in Slot A. field_0x9e = 0; - mpErrFunc = &iplSelMsgInitSet; + mpErrFunc = &dMenu_save_c::iplSelMsgInitSet; mErrProc = PROC_IPL_SELECT_DISP1; field_0x1b4 = 9; break; @@ -938,7 +938,7 @@ void dMenu_save_c::memCardCheck() { field_0x1c0 = 0; errDispInitSet(0x3C4); // There is no save for this game on the Memory Card in Slot A. field_0x9e = 0; - mpErrFunc = &gameFileMakeSelInitSet; + mpErrFunc = &dMenu_save_c::gameFileMakeSelInitSet; mErrProc = PROC_MAKE_GAME_FILE_SEL_DISP; field_0x1b4 = 9; break; @@ -1048,7 +1048,7 @@ void dMenu_save_c::iplSelInitSet() { void dMenu_save_c::IPLSelectDisp1() { if (errorTxtChangeAnm() == true) { - mpErrFunc = &iplSelInitSet; + mpErrFunc = &dMenu_save_c::iplSelInitSet; mErrProc = PROC_IPL_SELECT_DISP2; mMenuProc = PROC_MEMCARD_ERRMSG_WAIT_KEY; } diff --git a/src/d/d_model.cpp b/src/d/d_model.cpp index 5d89bc2603..59562d9b15 100644 --- a/src/d/d_model.cpp +++ b/src/d/d_model.cpp @@ -15,8 +15,8 @@ void dMdl_c::draw() { mpModelData->getMaterialNodePointer(mMaterialId)->loadSharedDL(); shape->loadPreDrawSetting(); - GXColor amb_color = {mpTevstr->AmbCol.r, mpTevstr->AmbCol.g, mpTevstr->AmbCol.b, - mpTevstr->AmbCol.a}; + GXColor amb_color = {(u8)mpTevstr->AmbCol.r, (u8)mpTevstr->AmbCol.g, (u8)mpTevstr->AmbCol.b, + (u8)mpTevstr->AmbCol.a}; GXSetChanAmbColor(GX_COLOR0A0, amb_color); GXSetChanMatColor(GX_COLOR0A0, g_whiteColor); dKy_setLight_nowroom_actor(mpTevstr); diff --git a/src/d/d_name.cpp b/src/d/d_name.cpp index 7eaac1851b..81afdfd48a 100644 --- a/src/d/d_name.cpp +++ b/src/d/d_name.cpp @@ -467,7 +467,7 @@ void dName_c::MojiSelectAnm3() {} int dName_c::mojiChange(u8 idx) { if (mChrInfo[idx].field_0x3 == 0 || mChrInfo[idx].mMojiSet == MOJI_EIGO || - mChrInfo[idx].mCharacter == ' ') + mChrInfo[idx].mCharacter == SJIS(' ', 0x8140U)) { return 0; } @@ -481,20 +481,20 @@ int dName_c::mojiChange(u8 idx) { switch (mChrInfo[idx].mColumn) { case 0: case 10: { - if (mChrInfo[idx].mCharacter == 'ウ' || mChrInfo[idx].mCharacter == 'ゥ' || - mChrInfo[idx].mCharacter == 'ヴ') + if (mChrInfo[idx].mCharacter == SJIS('ウ', 0x8345U) || mChrInfo[idx].mCharacter == SJIS('ゥ', 0x8344U) || + mChrInfo[idx].mCharacter == SJIS('ヴ', 0x8394U)) { mChrInfo[idx].mCharacter++; - if (mChrInfo[idx].mCharacter == 'ェ') { - mChrInfo[idx].mCharacter = 'ヴ'; + if (mChrInfo[idx].mCharacter == SJIS('ェ', 0x8346U)) { + mChrInfo[idx].mCharacter = SJIS('ヴ', 0x8394U); } - if (mChrInfo[idx].mCharacter == 'ヵ') { - mChrInfo[idx].mCharacter = 'ゥ'; + if (mChrInfo[idx].mCharacter == SJIS('ヵ', 0x8395U)) { + mChrInfo[idx].mCharacter = SJIS('ゥ', 0x8344U); } } else { - int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ァ' : 'ぁ'; + int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('ァ', 0x8340U) : SJIS('ぁ', 0x829fU); if ((mChrInfo[idx].mCharacter - c) % 2) { --mChrInfo[idx].mCharacter; @@ -505,7 +505,7 @@ int dName_c::mojiChange(u8 idx) { break; } case 1: { - int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'カ' : 'か'; + int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('カ', 0x834aU) : SJIS('か', 0x82a9U); c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; @@ -513,7 +513,7 @@ int dName_c::mojiChange(u8 idx) { break; } case 2: { - int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'サ' : 'さ'; + int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('サ', 0x8354U) : SJIS('さ', 0x82b3U); c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; @@ -523,24 +523,24 @@ int dName_c::mojiChange(u8 idx) { case 3: case 12: { if (mChrInfo[idx].mCharacter != (u32)0x815b) { - if (mChrInfo[idx].mCharacter <= (mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ヂ' : 'ぢ')) { - int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'タ' : 'た'; + if (mChrInfo[idx].mCharacter <= (mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('ヂ', 0x8361U) : SJIS('ぢ', 0x82c0U))) { + int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('タ', 0x835eU) : SJIS('た', 0x82bdU); c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1); } else if (mChrInfo[idx].mCharacter <= - (mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ド' : 'ど') && + (mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('ド', 0x8368U) : SJIS('ど', 0x82c7U)) && mChrInfo[idx].mCharacter >= - (mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'テ' : 'て')) + (mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('テ', 0x8365U) : SJIS('て', 0x82c4U))) { - int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'テ' : 'て'; + int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('テ', 0x8365U) : SJIS('て', 0x82c4U); c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; mChrInfo[idx].mCharacter = (mChrInfo[idx].mCharacter - c) + (c2 & 1); } else { - int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ッ' : 'っ'; + int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('ッ', 0x8362U) : SJIS('っ', 0x82c1U); int c2 = (mChrInfo[idx].mCharacter - c) % 3; int ivar2 = c2 + 1; @@ -554,7 +554,7 @@ int dName_c::mojiChange(u8 idx) { break; } case 5: { - int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ハ' : 'は'; + int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('ハ', 0x836eU) : SJIS('は', 0x82cdU); int c2 = (mChrInfo[idx].mCharacter - c) % 3; int ivar2 = c2 + 1; @@ -567,7 +567,7 @@ int dName_c::mojiChange(u8 idx) { } case 7: case 11: { - int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? 'ャ' : 'ゃ'; + int c = mChrInfo[idx].mMojiSet != MOJI_HIRA ? SJIS('ャ', 0x8383U) : SJIS('ゃ', 0x82e1U); c = ((mChrInfo[idx].mCharacter - c) % 2); int c2 = c + 1; diff --git a/src/d/d_stage.cpp b/src/d/d_stage.cpp index 5bae4ade2b..55f2b24244 100644 --- a/src/d/d_stage.cpp +++ b/src/d/d_stage.cpp @@ -1962,9 +1962,9 @@ static int dStage_roomReadInit(dStage_dt_c* i_stage, void* i_data, int param_2, i_stage->setRoom(p_node); for (int i = 0; i < p_node->num; i++) { - if ((int)rtbl[i] < 0x80000000) { - rtbl[i] = (roomRead_data_class*)((int)rtbl[i] + (int)param_3); - rtbl[i]->m_rooms = (u8*)((int)rtbl[i]->m_rooms + (int)param_3); + if ((intptr_t)rtbl[i] < 0x80000000) { + rtbl[i] = (roomRead_data_class*)((intptr_t)rtbl[i] + (intptr_t)param_3); + rtbl[i]->m_rooms = (u8*)((intptr_t)rtbl[i]->m_rooms + (intptr_t)param_3); } } diff --git a/src/dolphin/G2D/G2D.c b/src/dolphin/G2D/G2D.c index 351a5046f5..92302f4ef9 100644 --- a/src/dolphin/G2D/G2D.c +++ b/src/dolphin/G2D/G2D.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/am/am.c b/src/dolphin/am/am.c index ba3fd2e4b7..924f70bb41 100644 --- a/src/dolphin/am/am.c +++ b/src/dolphin/am/am.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__am.h" diff --git a/src/dolphin/amcnotstub/amcnotstub.c b/src/dolphin/amcnotstub/amcnotstub.c index 0c38a4aa35..ee78c7ce40 100644 --- a/src/dolphin/amcnotstub/amcnotstub.c +++ b/src/dolphin/amcnotstub/amcnotstub.c @@ -1,4 +1,4 @@ -#include +#include // this file is a stub. DECL_WEAK int AMC_IsStub(void); diff --git a/src/dolphin/amcstubs/AmcExi2Stubs.c b/src/dolphin/amcstubs/AmcExi2Stubs.c index 99073a34cb..718256d351 100644 --- a/src/dolphin/amcstubs/AmcExi2Stubs.c +++ b/src/dolphin/amcstubs/AmcExi2Stubs.c @@ -1,4 +1,4 @@ -#include +#include #include // prototypes diff --git a/src/dolphin/ar/ar.c b/src/dolphin/ar/ar.c index a7c9400fc5..5f5d6b1b60 100644 --- a/src/dolphin/ar/ar.c +++ b/src/dolphin/ar/ar.c @@ -1,4 +1,4 @@ -#include +#include #include #include "fake_tgmath.h" diff --git a/src/dolphin/ar/arq.c b/src/dolphin/ar/arq.c index baf3acead4..318d77bcb3 100644 --- a/src/dolphin/ar/arq.c +++ b/src/dolphin/ar/arq.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__ar.h" diff --git a/src/dolphin/ax/AX.c b/src/dolphin/ax/AX.c index eb06c5906d..ef50391f89 100644 --- a/src/dolphin/ax/AX.c +++ b/src/dolphin/ax/AX.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__ax.h" diff --git a/src/dolphin/ax/AXAlloc.c b/src/dolphin/ax/AXAlloc.c index 3fcd6278c1..d84e93042e 100644 --- a/src/dolphin/ax/AXAlloc.c +++ b/src/dolphin/ax/AXAlloc.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__ax.h" diff --git a/src/dolphin/ax/AXAux.c b/src/dolphin/ax/AXAux.c index 7c3294d1a6..7d392d8f1c 100644 --- a/src/dolphin/ax/AXAux.c +++ b/src/dolphin/ax/AXAux.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__ax.h" diff --git a/src/dolphin/ax/AXCL.c b/src/dolphin/ax/AXCL.c index e51eb3d311..81e60f7623 100644 --- a/src/dolphin/ax/AXCL.c +++ b/src/dolphin/ax/AXCL.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__ax.h" diff --git a/src/dolphin/ax/AXComp.c b/src/dolphin/ax/AXComp.c index bc0eb97c87..6d9b21f307 100644 --- a/src/dolphin/ax/AXComp.c +++ b/src/dolphin/ax/AXComp.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__ax.h" diff --git a/src/dolphin/ax/AXOut.c b/src/dolphin/ax/AXOut.c index b7402c4966..3f049436f3 100644 --- a/src/dolphin/ax/AXOut.c +++ b/src/dolphin/ax/AXOut.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/ax/AXProf.c b/src/dolphin/ax/AXProf.c index 316cadf5bb..09ae37c6c3 100644 --- a/src/dolphin/ax/AXProf.c +++ b/src/dolphin/ax/AXProf.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__ax.h" diff --git a/src/dolphin/ax/AXSPB.c b/src/dolphin/ax/AXSPB.c index 829c8ef35a..3729589b62 100644 --- a/src/dolphin/ax/AXSPB.c +++ b/src/dolphin/ax/AXSPB.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__ax.h" diff --git a/src/dolphin/ax/AXVPB.c b/src/dolphin/ax/AXVPB.c index bd6ffe02aa..6bf7f4ae6e 100644 --- a/src/dolphin/ax/AXVPB.c +++ b/src/dolphin/ax/AXVPB.c @@ -1,4 +1,4 @@ -#include +#include #include #include "fake_tgmath.h" diff --git a/src/dolphin/ax/DSPCode.c b/src/dolphin/ax/DSPCode.c index d54b0de21a..7ca0d067ba 100644 --- a/src/dolphin/ax/DSPCode.c +++ b/src/dolphin/ax/DSPCode.c @@ -1,4 +1,4 @@ -#include +#include #include u16 axDspSlaveLength = (AX_DSP_SLAVE_LENGTH * 2); diff --git a/src/dolphin/axfx/axfx.c b/src/dolphin/axfx/axfx.c index 64c25fc063..6ebdd31424 100644 --- a/src/dolphin/axfx/axfx.c +++ b/src/dolphin/axfx/axfx.c @@ -1,4 +1,4 @@ -#include +#include #include static void* __AXFXAllocFunction(u32 bytes) { diff --git a/src/dolphin/axfx/chorus.c b/src/dolphin/axfx/chorus.c index f383a03b36..ba38864258 100644 --- a/src/dolphin/axfx/chorus.c +++ b/src/dolphin/axfx/chorus.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/axfx/delay.c b/src/dolphin/axfx/delay.c index 5c26e59c33..41e426236d 100644 --- a/src/dolphin/axfx/delay.c +++ b/src/dolphin/axfx/delay.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/axfx/reverb_hi.c b/src/dolphin/axfx/reverb_hi.c index 02283ac476..44f8d3c04e 100644 --- a/src/dolphin/axfx/reverb_hi.c +++ b/src/dolphin/axfx/reverb_hi.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/axfx/reverb_hi_4ch.c b/src/dolphin/axfx/reverb_hi_4ch.c index a840dfee15..f7770c9959 100644 --- a/src/dolphin/axfx/reverb_hi_4ch.c +++ b/src/dolphin/axfx/reverb_hi_4ch.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/axfx/reverb_std.c b/src/dolphin/axfx/reverb_std.c index 960c68c514..ef74a8d1e7 100644 --- a/src/dolphin/axfx/reverb_std.c +++ b/src/dolphin/axfx/reverb_std.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/base/PPCArch.c b/src/dolphin/base/PPCArch.c index b23dc209ee..e8be975a11 100644 --- a/src/dolphin/base/PPCArch.c +++ b/src/dolphin/base/PPCArch.c @@ -1,4 +1,4 @@ -#include +#include #include asm u32 PPCMfmsr() { diff --git a/src/dolphin/base/PPCPm.c b/src/dolphin/base/PPCPm.c index d5ffcb4bb0..b892839645 100644 --- a/src/dolphin/base/PPCPm.c +++ b/src/dolphin/base/PPCPm.c @@ -1,4 +1,4 @@ -#include +#include #include void PMBegin(void) { diff --git a/src/dolphin/card/CARDStatEx.c b/src/dolphin/card/CARDStatEx.c index 681dbd5a8c..0ec84c1cea 100644 --- a/src/dolphin/card/CARDStatEx.c +++ b/src/dolphin/card/CARDStatEx.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__card.h" diff --git a/src/dolphin/card/CARDUnlock.c b/src/dolphin/card/CARDUnlock.c index 2287abf7e2..63313c5098 100644 --- a/src/dolphin/card/CARDUnlock.c +++ b/src/dolphin/card/CARDUnlock.c @@ -1,5 +1,5 @@ #include -#include +#include #include #include "__card.h" diff --git a/src/dolphin/demo/DEMOAVX.c b/src/dolphin/demo/DEMOAVX.c index 27d49172d1..927c09661c 100644 --- a/src/dolphin/demo/DEMOAVX.c +++ b/src/dolphin/demo/DEMOAVX.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/demo/DEMOFont.c b/src/dolphin/demo/DEMOFont.c index 9b371704c2..48299131d9 100644 --- a/src/dolphin/demo/DEMOFont.c +++ b/src/dolphin/demo/DEMOFont.c @@ -1,4 +1,4 @@ -#include +#include #include u32 DEMOFontBitmap[768] ATTRIBUTE_ALIGN(32) = { diff --git a/src/dolphin/demo/DEMOInit.c b/src/dolphin/demo/DEMOInit.c index 630c2f5db4..c0ba85ad3f 100644 --- a/src/dolphin/demo/DEMOInit.c +++ b/src/dolphin/demo/DEMOInit.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/dolphin/demo/DEMOPad.c b/src/dolphin/demo/DEMOPad.c index 3320523b9f..a345c5f044 100644 --- a/src/dolphin/demo/DEMOPad.c +++ b/src/dolphin/demo/DEMOPad.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/demo/DEMOPuts.c b/src/dolphin/demo/DEMOPuts.c index af0ea2fe27..60dbc5326e 100644 --- a/src/dolphin/demo/DEMOPuts.c +++ b/src/dolphin/demo/DEMOPuts.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/dolphin/demo/DEMOStats.c b/src/dolphin/demo/DEMOStats.c index ca79effef3..d16f846306 100644 --- a/src/dolphin/demo/DEMOStats.c +++ b/src/dolphin/demo/DEMOStats.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/demo/DEMOWin.c b/src/dolphin/demo/DEMOWin.c index 108e3769a5..b9c72bc43f 100644 --- a/src/dolphin/demo/DEMOWin.c +++ b/src/dolphin/demo/DEMOWin.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/dsp/dsp.c b/src/dolphin/dsp/dsp.c index 3c4177a7b7..2737aaa229 100644 --- a/src/dolphin/dsp/dsp.c +++ b/src/dolphin/dsp/dsp.c @@ -1,5 +1,5 @@ #include -#include +#include #include #include "__dsp.h" diff --git a/src/dolphin/dsp/dsp_task.c b/src/dolphin/dsp/dsp_task.c index be844c3e17..236950cddf 100644 --- a/src/dolphin/dsp/dsp_task.c +++ b/src/dolphin/dsp/dsp_task.c @@ -1,6 +1,6 @@ #include -#include +#include #include #include "__dsp.h" diff --git a/src/dolphin/dvd/dvd.c b/src/dolphin/dvd/dvd.c index 003be19cf6..d820b8354d 100644 --- a/src/dolphin/dvd/dvd.c +++ b/src/dolphin/dvd/dvd.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/dvd/dvdFatal.c b/src/dolphin/dvd/dvdFatal.c index abb3a64f3c..9bcf757247 100644 --- a/src/dolphin/dvd/dvdFatal.c +++ b/src/dolphin/dvd/dvdFatal.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__dvd.h" diff --git a/src/dolphin/dvd/dvderror.c b/src/dolphin/dvd/dvderror.c index 894312ed1d..529fcfbe71 100644 --- a/src/dolphin/dvd/dvderror.c +++ b/src/dolphin/dvd/dvderror.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/dvd/dvdfs.c b/src/dolphin/dvd/dvdfs.c index 4a0a28282f..07cd0e5ce3 100644 --- a/src/dolphin/dvd/dvdfs.c +++ b/src/dolphin/dvd/dvdfs.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__dvd.h" diff --git a/src/dolphin/dvd/dvdidutils.c b/src/dolphin/dvd/dvdidutils.c index 64e533ea43..4dc13d7e46 100644 --- a/src/dolphin/dvd/dvdidutils.c +++ b/src/dolphin/dvd/dvdidutils.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__dvd.h" diff --git a/src/dolphin/dvd/dvdlow.c b/src/dolphin/dvd/dvdlow.c index 9e2c834f37..19c8439d92 100644 --- a/src/dolphin/dvd/dvdlow.c +++ b/src/dolphin/dvd/dvdlow.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__dvd.h" diff --git a/src/dolphin/dvd/dvdqueue.c b/src/dolphin/dvd/dvdqueue.c index 2106f8cdad..fcede7672f 100644 --- a/src/dolphin/dvd/dvdqueue.c +++ b/src/dolphin/dvd/dvdqueue.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__dvd.h" diff --git a/src/dolphin/dvd/fstload.c b/src/dolphin/dvd/fstload.c index 555517ddf1..db588254f0 100644 --- a/src/dolphin/dvd/fstload.c +++ b/src/dolphin/dvd/fstload.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/exi/EXIAd16.c b/src/dolphin/exi/EXIAd16.c index 668dcaa140..ead4b21dd4 100644 --- a/src/dolphin/exi/EXIAd16.c +++ b/src/dolphin/exi/EXIAd16.c @@ -1,4 +1,4 @@ -#include +#include #include static BOOL Initialized; diff --git a/src/dolphin/exi/EXIBios.c b/src/dolphin/exi/EXIBios.c index 4f4465bcbe..aca473001f 100644 --- a/src/dolphin/exi/EXIBios.c +++ b/src/dolphin/exi/EXIBios.c @@ -1,4 +1,4 @@ -#include +#include #define REG_MAX 5 #define REG(chan, idx) (__EXIRegs[((chan) * REG_MAX) + (idx)]) diff --git a/src/dolphin/mcc/fio.c b/src/dolphin/mcc/fio.c index e576373491..b60e64ef96 100644 --- a/src/dolphin/mcc/fio.c +++ b/src/dolphin/mcc/fio.c @@ -1,4 +1,4 @@ -#include +#include #include #if DEBUG diff --git a/src/dolphin/mcc/mcc.c b/src/dolphin/mcc/mcc.c index e0f3014fcc..fa75efe415 100644 --- a/src/dolphin/mcc/mcc.c +++ b/src/dolphin/mcc/mcc.c @@ -1,4 +1,4 @@ -#include +#include #include #if DEBUG diff --git a/src/dolphin/mcc/tty.c b/src/dolphin/mcc/tty.c index bb8aa31818..8e99578a71 100644 --- a/src/dolphin/mcc/tty.c +++ b/src/dolphin/mcc/tty.c @@ -1,4 +1,4 @@ -#include +#include #include #if DEBUG diff --git a/src/dolphin/mix/mix.c b/src/dolphin/mix/mix.c index 1ec6539b02..45d727856a 100644 --- a/src/dolphin/mix/mix.c +++ b/src/dolphin/mix/mix.c @@ -1,4 +1,4 @@ -#include +#include #include u16 __MIXVolumeTable[965] = { diff --git a/src/dolphin/mtx/mtx.c b/src/dolphin/mtx/mtx.c index 2fd287beb5..888246b1f1 100644 --- a/src/dolphin/mtx/mtx.c +++ b/src/dolphin/mtx/mtx.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/mtx/mtx44.c b/src/dolphin/mtx/mtx44.c index d1657d341a..8c6526833b 100644 --- a/src/dolphin/mtx/mtx44.c +++ b/src/dolphin/mtx/mtx44.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/mtx/mtx44vec.c b/src/dolphin/mtx/mtx44vec.c index e0989ed750..19b03894a7 100644 --- a/src/dolphin/mtx/mtx44vec.c +++ b/src/dolphin/mtx/mtx44vec.c @@ -1,4 +1,4 @@ -#include +#include #include #include "fake_tgmath.h" diff --git a/src/dolphin/mtx/mtxstack.c b/src/dolphin/mtx/mtxstack.c index 475175c2ca..5502b2e9d4 100644 --- a/src/dolphin/mtx/mtxstack.c +++ b/src/dolphin/mtx/mtxstack.c @@ -1,4 +1,4 @@ -#include +#include #include #include "fake_tgmath.h" diff --git a/src/dolphin/mtx/mtxvec.c b/src/dolphin/mtx/mtxvec.c index befb7684b8..61cb3ae6ad 100644 --- a/src/dolphin/mtx/mtxvec.c +++ b/src/dolphin/mtx/mtxvec.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/mtx/psmtx.c b/src/dolphin/mtx/psmtx.c index f8f79d1573..cc75ea8b3d 100644 --- a/src/dolphin/mtx/psmtx.c +++ b/src/dolphin/mtx/psmtx.c @@ -1,4 +1,4 @@ -#include +#include #include #include "fake_tgmath.h" diff --git a/src/dolphin/mtx/quat.c b/src/dolphin/mtx/quat.c index 2acb4a7d3b..cf00deb3df 100644 --- a/src/dolphin/mtx/quat.c +++ b/src/dolphin/mtx/quat.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/mtx/vec.c b/src/dolphin/mtx/vec.c index 3a3aff27a2..c501097268 100644 --- a/src/dolphin/mtx/vec.c +++ b/src/dolphin/mtx/vec.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/odemustubs/odemustubs.c b/src/dolphin/odemustubs/odemustubs.c index ed3c2bbb1c..bdd9b9760e 100644 --- a/src/dolphin/odemustubs/odemustubs.c +++ b/src/dolphin/odemustubs/odemustubs.c @@ -1,4 +1,4 @@ -#include +#include // prototypes DECL_WEAK int Hu_IsStub(); diff --git a/src/dolphin/odenotstub/odenotstub.c b/src/dolphin/odenotstub/odenotstub.c index 987b74e9c7..be358495b9 100644 --- a/src/dolphin/odenotstub/odenotstub.c +++ b/src/dolphin/odenotstub/odenotstub.c @@ -1,4 +1,4 @@ -#include +#include // prototypes DECL_WEAK int Hu_IsStub(); diff --git a/src/dolphin/os/OS.c b/src/dolphin/os/OS.c index 24a274b571..4c4d65ee43 100644 --- a/src/dolphin/os/OS.c +++ b/src/dolphin/os/OS.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/dolphin/os/OSAlarm.c b/src/dolphin/os/OSAlarm.c index b1922a6fa2..676f41010d 100644 --- a/src/dolphin/os/OSAlarm.c +++ b/src/dolphin/os/OSAlarm.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSAlloc.c b/src/dolphin/os/OSAlloc.c index b45ba83aef..879f93af00 100644 --- a/src/dolphin/os/OSAlloc.c +++ b/src/dolphin/os/OSAlloc.c @@ -1,4 +1,4 @@ -#include +#include #include #define ALIGNMENT 32 diff --git a/src/dolphin/os/OSArena.c b/src/dolphin/os/OSArena.c index ab7b5feeab..507fcfa7da 100644 --- a/src/dolphin/os/OSArena.c +++ b/src/dolphin/os/OSArena.c @@ -1,4 +1,4 @@ -#include +#include #include #define ROUND(n, a) (((u32)(n) + (a)-1) & ~((a)-1)) diff --git a/src/dolphin/os/OSAudioSystem.c b/src/dolphin/os/OSAudioSystem.c index 3ffd4403e2..6a820e7268 100644 --- a/src/dolphin/os/OSAudioSystem.c +++ b/src/dolphin/os/OSAudioSystem.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSCache.c b/src/dolphin/os/OSCache.c index c1bd1f2590..c950516af6 100644 --- a/src/dolphin/os/OSCache.c +++ b/src/dolphin/os/OSCache.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/os/OSContext.c b/src/dolphin/os/OSContext.c index 0edc0f863c..93064549ca 100644 --- a/src/dolphin/os/OSContext.c +++ b/src/dolphin/os/OSContext.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSError.c b/src/dolphin/os/OSError.c index 5a545392f4..f01258fca2 100644 --- a/src/dolphin/os/OSError.c +++ b/src/dolphin/os/OSError.c @@ -1,5 +1,5 @@ #include -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSExec.c b/src/dolphin/os/OSExec.c index 77fc0c86c1..5ed339fbe8 100644 --- a/src/dolphin/os/OSExec.c +++ b/src/dolphin/os/OSExec.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSFatal.c b/src/dolphin/os/OSFatal.c index 673ddf90db..2624f504c0 100644 --- a/src/dolphin/os/OSFatal.c +++ b/src/dolphin/os/OSFatal.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/dolphin/os/OSFont.c b/src/dolphin/os/OSFont.c index 6cab5a1a52..0ae2538f50 100644 --- a/src/dolphin/os/OSFont.c +++ b/src/dolphin/os/OSFont.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSInterrupt.c b/src/dolphin/os/OSInterrupt.c index 3c174a21e4..a075e88829 100644 --- a/src/dolphin/os/OSInterrupt.c +++ b/src/dolphin/os/OSInterrupt.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSLink.c b/src/dolphin/os/OSLink.c index fbe11fef3c..54801396ff 100644 --- a/src/dolphin/os/OSLink.c +++ b/src/dolphin/os/OSLink.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSMemory.c b/src/dolphin/os/OSMemory.c index 0e0ac287b1..04148cadf5 100644 --- a/src/dolphin/os/OSMemory.c +++ b/src/dolphin/os/OSMemory.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/os/OSMessage.c b/src/dolphin/os/OSMessage.c index 476891b6ee..0fb17b4114 100644 --- a/src/dolphin/os/OSMessage.c +++ b/src/dolphin/os/OSMessage.c @@ -1,4 +1,4 @@ -#include +#include #include void OSInitMessageQueue(OSMessageQueue* mq, void* msgArray, s32 msgCount) { diff --git a/src/dolphin/os/OSMutex.c b/src/dolphin/os/OSMutex.c index 66b4abd2cb..c223c3eaed 100644 --- a/src/dolphin/os/OSMutex.c +++ b/src/dolphin/os/OSMutex.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSReboot.c b/src/dolphin/os/OSReboot.c index c921b4d8a7..d18476d047 100644 --- a/src/dolphin/os/OSReboot.c +++ b/src/dolphin/os/OSReboot.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSReset.c b/src/dolphin/os/OSReset.c index 21953da870..67e80900e8 100644 --- a/src/dolphin/os/OSReset.c +++ b/src/dolphin/os/OSReset.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSResetSW.c b/src/dolphin/os/OSResetSW.c index bbc5d2d161..e27224947b 100644 --- a/src/dolphin/os/OSResetSW.c +++ b/src/dolphin/os/OSResetSW.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSSemaphore.c b/src/dolphin/os/OSSemaphore.c index c58e20dd51..864689678e 100644 --- a/src/dolphin/os/OSSemaphore.c +++ b/src/dolphin/os/OSSemaphore.c @@ -1,4 +1,4 @@ -#include +#include #include void OSInitSemaphore(OSSemaphore* sem, s32 count) { diff --git a/src/dolphin/os/OSStopwatch.c b/src/dolphin/os/OSStopwatch.c index c53c1689e5..a5e4e3a5aa 100644 --- a/src/dolphin/os/OSStopwatch.c +++ b/src/dolphin/os/OSStopwatch.c @@ -1,4 +1,4 @@ -#include +#include #include void OSInitStopwatch(OSStopwatch* sw, char* name) { diff --git a/src/dolphin/os/OSSync.c b/src/dolphin/os/OSSync.c index 0f91a19fce..5a468efabc 100644 --- a/src/dolphin/os/OSSync.c +++ b/src/dolphin/os/OSSync.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSThread.c b/src/dolphin/os/OSThread.c index 6befa33a5d..48dd553eb9 100644 --- a/src/dolphin/os/OSThread.c +++ b/src/dolphin/os/OSThread.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSTimer.c b/src/dolphin/os/OSTimer.c index 1d0f90a02b..bab96915f0 100644 --- a/src/dolphin/os/OSTimer.c +++ b/src/dolphin/os/OSTimer.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/OSUtf.c b/src/dolphin/os/OSUtf.c index ddfa23dde4..b4c1cf55c3 100644 --- a/src/dolphin/os/OSUtf.c +++ b/src/dolphin/os/OSUtf.c @@ -1,4 +1,4 @@ -#include +#include #include char* OSUTF8to32(const char* utf8, u32* utf32) { diff --git a/src/dolphin/os/__ppc_eabi_init.c b/src/dolphin/os/__ppc_eabi_init.c index 3e4d27b501..9c0054a4c7 100644 --- a/src/dolphin/os/__ppc_eabi_init.c +++ b/src/dolphin/os/__ppc_eabi_init.c @@ -1,5 +1,5 @@ #include -#include +#include #include #include "__os.h" diff --git a/src/dolphin/os/__start.c b/src/dolphin/os/__start.c index c9172e44f5..62349da961 100644 --- a/src/dolphin/os/__start.c +++ b/src/dolphin/os/__start.c @@ -1,4 +1,4 @@ -#include +#include #include "__ppc_eabi_linker.h" extern void InitMetroTRK(); diff --git a/src/dolphin/os/time.dolphin.c b/src/dolphin/os/time.dolphin.c index 5e9d20af8e..0bbe26b9db 100644 --- a/src/dolphin/os/time.dolphin.c +++ b/src/dolphin/os/time.dolphin.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/pad/Pad.c b/src/dolphin/pad/Pad.c index 27c554518e..942716514c 100644 --- a/src/dolphin/pad/Pad.c +++ b/src/dolphin/pad/Pad.c @@ -1,4 +1,4 @@ -#include +#include #include #include diff --git a/src/dolphin/pad/Padclamp.c b/src/dolphin/pad/Padclamp.c index 741a0e87b7..960e38880c 100644 --- a/src/dolphin/pad/Padclamp.c +++ b/src/dolphin/pad/Padclamp.c @@ -1,5 +1,5 @@ #include "fake_tgmath.h" -#include +#include #include static const PADClampRegion ClampRegion = { diff --git a/src/dolphin/perf/perf.c b/src/dolphin/perf/perf.c index fc86eebd67..a5529239bb 100644 --- a/src/dolphin/perf/perf.c +++ b/src/dolphin/perf/perf.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/perf/perfdraw.c b/src/dolphin/perf/perfdraw.c index 8bd961af0c..2e23517082 100644 --- a/src/dolphin/perf/perfdraw.c +++ b/src/dolphin/perf/perfdraw.c @@ -1,4 +1,4 @@ -#include +#include #include #include "fake_tgmath.h" diff --git a/src/dolphin/seq/seq.c b/src/dolphin/seq/seq.c index 582a323395..1c5745dc73 100644 --- a/src/dolphin/seq/seq.c +++ b/src/dolphin/seq/seq.c @@ -1,4 +1,4 @@ -#include +#include #include static u8 __SEQMidiEventLength[128] = { diff --git a/src/dolphin/si/SISamplingRate.c b/src/dolphin/si/SISamplingRate.c index b1a6f60f8c..53d37d407a 100644 --- a/src/dolphin/si/SISamplingRate.c +++ b/src/dolphin/si/SISamplingRate.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/si/SISteering.c b/src/dolphin/si/SISteering.c index ceae68b131..156fea91d5 100644 --- a/src/dolphin/si/SISteering.c +++ b/src/dolphin/si/SISteering.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__si.h" diff --git a/src/dolphin/si/SISteeringAuto.c b/src/dolphin/si/SISteeringAuto.c index b8e23e97fd..98d38991b6 100644 --- a/src/dolphin/si/SISteeringAuto.c +++ b/src/dolphin/si/SISteeringAuto.c @@ -1,4 +1,4 @@ -#include +#include #include static void (*SamplingCallback)(); diff --git a/src/dolphin/si/SISteeringXfer.c b/src/dolphin/si/SISteeringXfer.c index 3bb8abdb89..7f37b70664 100644 --- a/src/dolphin/si/SISteeringXfer.c +++ b/src/dolphin/si/SISteeringXfer.c @@ -1,4 +1,4 @@ -#include +#include #include #include "__os.h" diff --git a/src/dolphin/sp/sp.c b/src/dolphin/sp/sp.c index b934423b2b..0031e60d7d 100644 --- a/src/dolphin/sp/sp.c +++ b/src/dolphin/sp/sp.c @@ -1,4 +1,4 @@ -#include +#include #include void SPInitSoundTable(SPSoundTable* table, u32 aramBase, u32 zeroBase) { diff --git a/src/dolphin/syn/syn.c b/src/dolphin/syn/syn.c index 17bdebc515..8dd2771166 100644 --- a/src/dolphin/syn/syn.c +++ b/src/dolphin/syn/syn.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/dolphin/syn/synctrl.c b/src/dolphin/syn/synctrl.c index cfae4ec96e..8c96fb8368 100644 --- a/src/dolphin/syn/synctrl.c +++ b/src/dolphin/syn/synctrl.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/dolphin/syn/synenv.c b/src/dolphin/syn/synenv.c index caafb5ea07..7d7f15fe8a 100644 --- a/src/dolphin/syn/synenv.c +++ b/src/dolphin/syn/synenv.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/syn/synlfo.c b/src/dolphin/syn/synlfo.c index 22ace20110..9625c3b176 100644 --- a/src/dolphin/syn/synlfo.c +++ b/src/dolphin/syn/synlfo.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/syn/synmix.c b/src/dolphin/syn/synmix.c index 56dc0ac178..bfa9fdd49a 100644 --- a/src/dolphin/syn/synmix.c +++ b/src/dolphin/syn/synmix.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/dolphin/syn/synpitch.c b/src/dolphin/syn/synpitch.c index ed1d543734..ce38a83114 100644 --- a/src/dolphin/syn/synpitch.c +++ b/src/dolphin/syn/synpitch.c @@ -1,4 +1,4 @@ -#include +#include #include #include "fake_tgmath.h" diff --git a/src/dolphin/syn/synsample.c b/src/dolphin/syn/synsample.c index 8419c57189..e1c1f05ac1 100644 --- a/src/dolphin/syn/synsample.c +++ b/src/dolphin/syn/synsample.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include "fake_tgmath.h" diff --git a/src/dolphin/syn/synvoice.c b/src/dolphin/syn/synvoice.c index ea5e66d5ba..ec6ea4437b 100644 --- a/src/dolphin/syn/synvoice.c +++ b/src/dolphin/syn/synvoice.c @@ -1,4 +1,4 @@ -#include +#include #include #include #include diff --git a/src/dolphin/syn/synwt.c b/src/dolphin/syn/synwt.c index 6a03e030af..8b29c511a8 100644 --- a/src/dolphin/syn/synwt.c +++ b/src/dolphin/syn/synwt.c @@ -1,4 +1,4 @@ -#include +#include #include #include "fake_tgmath.h" diff --git a/src/f_pc/f_pc_deletor.cpp b/src/f_pc/f_pc_deletor.cpp index 23b061652c..6eec2c76e2 100644 --- a/src/f_pc/f_pc_deletor.cpp +++ b/src/f_pc/f_pc_deletor.cpp @@ -39,7 +39,7 @@ void fpcDt_Handler() { g_fpcDbSv_service[6](&g_fpcDtTg_Queue.mSize); } #endif - cLsIt_Method(&g_fpcDtTg_Queue, (cNdIt_MethodFunc)fpcDtTg_Do, fpcDt_deleteMethod); + cLsIt_Method(&g_fpcDtTg_Queue, (cNdIt_MethodFunc)fpcDtTg_Do, (void*)fpcDt_deleteMethod); } s32 fpcDt_ToQueue(base_process_class* i_proc) { diff --git a/src/f_pc/f_pc_layer_iter.cpp b/src/f_pc/f_pc_layer_iter.cpp index df8344aa20..3ea631f1eb 100644 --- a/src/f_pc/f_pc_layer_iter.cpp +++ b/src/f_pc/f_pc_layer_iter.cpp @@ -10,7 +10,7 @@ s32 fpcLyIt_OnlyHere(layer_class* i_layer, fpcLyIt_OnlyHereFunc i_func, void* i_data) { layer_iter iter; - iter.func = i_func; + iter.func = (void*)i_func; iter.data = i_data; return cTrIt_Method(&i_layer->node_tree, (cNdIt_MethodFunc)cTgIt_MethodCall, &iter); } @@ -31,7 +31,7 @@ s32 fpcLyIt_All(fpcLyIt_OnlyHereFunc i_func, void* i_data) { layer_iter iter; layer_class* layer; - iter.func = i_func; + iter.func = (void*)i_func; iter.data = i_data; for (layer = fpcLy_RootLayer(); layer != NULL; layer = (layer_class*)layer->node.mpNextNode) { @@ -45,7 +45,7 @@ s32 fpcLyIt_All(fpcLyIt_OnlyHereFunc i_func, void* i_data) { void* fpcLyIt_Judge(layer_class* i_layer, fpcLyIt_JudgeFunc i_func, void* i_data) { layer_iter iter; - iter.func = i_func; + iter.func = (void*)i_func; iter.data = i_data; return cTrIt_Judge(&i_layer->node_tree, (cNdIt_JudgeFunc)cTgIt_JudgeFilter, &iter); } @@ -55,7 +55,7 @@ void* fpcLyIt_AllJudge(fpcLyIt_JudgeFunc i_func, void* i_data) { layer_iter iter; layer_class* layer; - iter.func = i_func; + iter.func = (void*)i_func; iter.data = i_data; for (layer = fpcLy_RootLayer(); layer != NULL; layer = (layer_class*)layer->node.mpNextNode) { diff --git a/src/f_pc/f_pc_stdcreate_req.cpp b/src/f_pc/f_pc_stdcreate_req.cpp index b445e994bc..0d5bc43e4d 100644 --- a/src/f_pc/f_pc_stdcreate_req.cpp +++ b/src/f_pc/f_pc_stdcreate_req.cpp @@ -8,7 +8,7 @@ #include "f_pc/f_pc_node.h" #include "f_pc/f_pc_manager.h" #include "f_pc/f_pc_debug_sv.h" -#include +#include s32 fpcSCtRq_phase_Load(standard_create_request_class* i_request) { int ret = fpcLd_Load(i_request->process_name); diff --git a/src/m_Do/m_Do_ext.cpp b/src/m_Do/m_Do_ext.cpp index 4c4f85c785..ffe36c4cec 100644 --- a/src/m_Do/m_Do_ext.cpp +++ b/src/m_Do/m_Do_ext.cpp @@ -2189,8 +2189,8 @@ void mDoExt_3DlineMat0_c::draw() { int var_r26 = (field_0x14 << 1) & 0xFFFF; for (int i = 0; i < field_0x10; i++) { - GXSetArray(GX_VA_POS, ((mDoExt_3Dline_c*)((int)var_r28 + field_0x16 * 4))->field_0x8, sizeof(cXyz)); - GXSetArray(GX_VA_NRM, ((mDoExt_3Dline_c*)((int)var_r28 + field_0x16 * 4))->field_0x10, 3); + GXSetArray(GX_VA_POS, ((mDoExt_3Dline_c*)((intptr_t)var_r28 + field_0x16 * 4))->field_0x8, sizeof(cXyz)); + GXSetArray(GX_VA_NRM, ((mDoExt_3Dline_c*)((intptr_t)var_r28 + field_0x16 * 4))->field_0x10, 3); GXBegin(GX_TRIANGLESTRIP, GX_VTXFMT0, var_r26); for (u16 j = 0; j < (u16)var_r26; j++) { @@ -2245,9 +2245,9 @@ void mDoExt_3DlineMat0_c::update(int param_0, f32 param_1, GXColor& param_2, u16 for (s32 sp_14 = 0; sp_14 < field_0x10; sp_14++) { local_r27 = sp_28->field_0x0; - sp_1c = ((mDoExt_3Dline_c*)((int)sp_28 + (field_0x16 << 2)))->field_0x8; + sp_1c = ((mDoExt_3Dline_c*)((intptr_t)sp_28 + (field_0x16 << 2)))->field_0x8; local_r26 = sp_1c; - sp_18 = ((mDoExt_3Dline_c*)((int)sp_28 + (field_0x16 << 2)))->field_0x10; + sp_18 = ((mDoExt_3Dline_c*)((intptr_t)sp_28 + (field_0x16 << 2)))->field_0x10; local_r30 = sp_18; local_r29 = local_r30 + 1; @@ -2366,9 +2366,9 @@ void mDoExt_3DlineMat0_c::update(int param_0, GXColor& param_2, dKy_tevstr_c* pa JUT_ASSERT(0x1545, sp_18 != NULL); - sp_20 = ((mDoExt_3Dline_c*)((int)sp_30 + (field_0x16 << 2)))->field_0x8; + sp_20 = ((mDoExt_3Dline_c*)((intptr_t)sp_30 + (field_0x16 << 2)))->field_0x8; sp_24 = sp_20; - sp_1c = ((mDoExt_3Dline_c*)((int)sp_30 + (field_0x16 << 2)))->field_0x10; + sp_1c = ((mDoExt_3Dline_c*)((intptr_t)sp_30 + (field_0x16 << 2)))->field_0x10; local_r30 = sp_1c; local_r29 = local_r30 + 1; @@ -2455,7 +2455,7 @@ int mDoExt_3DlineMat1_c::init(u16 param_0, u16 param_1, ResTIMG* param_2, int pa field_0x4 = 0; mIsDrawn = 0; - GXInitTexObj(&mTextureObject, (void*)((int)param_2 + param_2->imageOffset), param_2->width, + GXInitTexObj(&mTextureObject, (void*)((intptr_t)param_2 + param_2->imageOffset), param_2->width, param_2->height, (GXTexFmt)param_2->format, (GXTexWrapMode)param_2->wrapS, (GXTexWrapMode)param_2->wrapT, param_2->mipmapCount > 1 ? GX_TRUE : GX_FALSE); GXInitTexObjLOD(&mTextureObject, (GXTexFilter)param_2->minFilter, @@ -2564,14 +2564,14 @@ void mDoExt_3DlineMat1_c::update(int param_0, f32 param_1, _GXColor& param_2, u1 for (s32 sp_14 = 0; sp_14 < mNumLines; sp_14++) { local_r27 = sp_38[0].field_0x0; - sp_24 = ((mDoExt_3Dline_c*)((int)sp_38 + (mIsDrawn << 2)))->field_0x8; + sp_24 = ((mDoExt_3Dline_c*)((intptr_t)sp_38 + (mIsDrawn << 2)))->field_0x8; sp_28 = sp_24; - sp_20 = ((mDoExt_3Dline_c*)((int)sp_38 + (mIsDrawn << 2)))->field_0x10; + sp_20 = ((mDoExt_3Dline_c*)((intptr_t)sp_38 + (mIsDrawn << 2)))->field_0x10; local_r30 = sp_20; local_r28 = local_r30 + 1; - sp_18 = ((mDoExt_3Dline_c*)((int)sp_38 + (mIsDrawn << 2)))->field_0x18; + sp_18 = ((mDoExt_3Dline_c*)((intptr_t)sp_38 + (mIsDrawn << 2)))->field_0x18; sp_1c = sp_18; local_f29 = param_1; @@ -2711,12 +2711,12 @@ void mDoExt_3DlineMat1_c::update(int param_0, _GXColor& param_2, dKy_tevstr_c* p local_r27 = sp_38[0].field_0x0; local_r18 = sp_38->field_0x4; JUT_ASSERT(0x16f3, sp_18 != NULL); - sp_24 = ((mDoExt_3Dline_c*)((int)sp_38 + (mIsDrawn << 2)))->field_0x8; + sp_24 = ((mDoExt_3Dline_c*)((intptr_t)sp_38 + (mIsDrawn << 2)))->field_0x8; sp_28 = sp_24; - sp_20 = ((mDoExt_3Dline_c*)((int)sp_38 + (mIsDrawn << 2)))->field_0x10; + sp_20 = ((mDoExt_3Dline_c*)((intptr_t)sp_38 + (mIsDrawn << 2)))->field_0x10; local_r30 = sp_20; local_r28 = local_r30 + 1; - sp_18 = ((mDoExt_3Dline_c*)((int)sp_38 + (mIsDrawn << 2)))->field_0x18; + sp_18 = ((mDoExt_3Dline_c*)((intptr_t)sp_38 + (mIsDrawn << 2)))->field_0x18; sp_1c = sp_18; sp_1c++->field_0x4 = local_f31; sp_1c++->field_0x4 = local_f31; diff --git a/src/m_Do/m_Do_graphic.cpp b/src/m_Do/m_Do_graphic.cpp index 5b80b40201..7c6074323a 100644 --- a/src/m_Do/m_Do_graphic.cpp +++ b/src/m_Do/m_Do_graphic.cpp @@ -191,8 +191,10 @@ static void drawHeapMap() { heap = mDoExt_getGameHeap(); OSReport_Error("ゲームヒープマップ表示\n"); } else if (l_heapMapMode == 2) { +#if PLATFORM_WII || PLATFORM_SHIELD heap = (JKRExpHeap*)DynamicModuleControlBase::getHeap(); OSReport_Error("ダイナミックリンクヒープマップ表示\n"); +#endif } else if (l_heapMapMode == 4) { heap = mDoExt_getZeldaHeap(); OSReport_Error("ゼルダヒープマップ表示\n"); @@ -1166,7 +1168,7 @@ void mDoGph_gInf_c::bloom_c::draw() { GXSetTevAlphaOp(GX_TEVSTAGE2, GX_TEV_ADD, GX_TB_ZERO, GX_CS_SCALE_1, GX_TRUE, GX_TEVPREV); GXSetBlendMode(GX_BM_NONE, GX_BL_ZERO, GX_BL_ZERO, GX_LO_OR); - GXColorS10 tevColor0 = {-mPoint, -mPoint, -mPoint, 0x40}; + GXColorS10 tevColor0 = {(s16)-mPoint, (s16)-mPoint, (s16)-mPoint, 0x40}; GXSetTevColorS10(GX_TEVREG0, tevColor0); GXColor tevColor1 = {mBlureRatio, mBlureRatio, mBlureRatio, mBlureRatio}; GXSetTevColor(GX_TEVREG1, tevColor1); diff --git a/src/m_Do/m_Do_hostIO.cpp b/src/m_Do/m_Do_hostIO.cpp index 3183dc76e7..ba3523106e 100644 --- a/src/m_Do/m_Do_hostIO.cpp +++ b/src/m_Do/m_Do_hostIO.cpp @@ -1,5 +1,5 @@ #include "m_Do/m_Do_hostIO.h" -#include +#include #if DEBUG diff --git a/src/m_Do/m_Do_machine.cpp b/src/m_Do/m_Do_machine.cpp index fed3d8c4d3..19fc4e6d57 100644 --- a/src/m_Do/m_Do_machine.cpp +++ b/src/m_Do/m_Do_machine.cpp @@ -16,7 +16,9 @@ #include "SSystem/SComponent/c_malloc.h" #include "SSystem/SComponent/c_math.h" #include "SSystem/SComponent/c_API_controller_pad.h" +#ifdef __MWERKS__ #include "base/PPCArch.h" +#endif #include "m_Do/m_Do_DVDError.h" #include "m_Do/m_Do_MemCard.h" #include "m_Do/m_Do_Reset.h" diff --git a/src/odenotstub/odenotstub.c b/src/odenotstub/odenotstub.c index ca91654dbd..48e09dbd05 100644 --- a/src/odenotstub/odenotstub.c +++ b/src/odenotstub/odenotstub.c @@ -1,4 +1,4 @@ -#include +#include u8 Hu_IsStub() { return 0; From 14738e6b499303a90ca99852a17a092743f2292c Mon Sep 17 00:00:00 2001 From: Carco_21 <144170194+carter-ktb21@users.noreply.github.com> Date: Mon, 8 Dec 2025 23:33:55 -0500 Subject: [PATCH 13/13] d_a_e_gb debug + documentation (#2916) * cleanup and documentation * PR cleanup --- include/d/actor/d_a_e_gb.h | 115 +-- include/d/actor/d_a_player.h | 2 +- src/d/actor/d_a_e_gb.cpp | 1643 ++++++++++++++++++---------------- src/d/actor/d_a_player.cpp | 2 +- 4 files changed, 914 insertions(+), 848 deletions(-) diff --git a/include/d/actor/d_a_e_gb.h b/include/d/actor/d_a_e_gb.h index 6cc1158f42..3a6a1185aa 100644 --- a/include/d/actor/d_a_e_gb.h +++ b/include/d/actor/d_a_e_gb.h @@ -12,54 +12,55 @@ * * @details * - */ +*/ + class e_gb_class { public: e_gb_class(); /* 0x000 */ fopEn_enemy_c actor; - /* 0x5AC */ request_of_phase_process_class mPhase; - /* 0x5B4 */ u8 field_0x5b4; - /* 0x5B5 */ u8 field_0x5b5; - /* 0x5B6 */ u8 field_0x5b6; - /* 0x5B7 */ u8 field_0x5b7; - /* 0x5B8 */ mDoExt_McaMorf* mpModelMorf1; - /* 0x5BC */ mDoExt_McaMorf* mpModelMorf2; - /* 0x5C0 */ mDoExt_brkAnm* mBrkAnm; - /* 0x5C4 */ Z2CreatureEnemy mSound; + /* 0x5AC */ request_of_phase_process_class phase; + /* 0x5B4 */ u8 arg0; + /* 0x5B5 */ u8 arg1; + /* 0x5B6 */ u8 arg2; + /* 0x5B7 */ u8 arg3; + /* 0x5B8 */ mDoExt_McaMorf* anmP; + /* 0x5BC */ mDoExt_McaMorf* flowerAnmP; + /* 0x5C0 */ mDoExt_brkAnm* brkAnmP; + /* 0x5C4 */ Z2CreatureEnemy sound; /* 0x668 */ s8 field_0x668; - /* 0x66C */ J3DModel* field_0x66c; + /* 0x66C */ J3DModel* keyModelP; /* 0x670 */ s8 field_0x670; - /* 0x674 */ cXyz field_0x674; + /* 0x674 */ cXyz keyPos; /* 0x680 */ f32 field_0x680; - /* 0x684 */ s16 field_0x684; - /* 0x686 */ s16 field_0x686; - /* 0x688 */ int field_0x688; - /* 0x68C */ int field_0x68c; + /* 0x684 */ s16 keyYRot; + /* 0x686 */ s16 keyXRot; + /* 0x688 */ int headAnmNo; + /* 0x68C */ int bodyAnmNo; /* 0x690 */ u8 field_0x690[0x694 - 0x690]; - /* 0x694 */ u32 mShadowKey; - /* 0x698 */ s16 field_0x698; - /* 0x69A */ s16 field_0x69a; - /* 0x69C */ s16 field_0x69c; - /* 0x69E */ s16 field_0x69e; - /* 0x6A0 */ s16 field_0x6a0; + /* 0x694 */ u32 shadowKey; + /* 0x698 */ s16 frameCounter; + /* 0x69A */ s16 headAction; + /* 0x69C */ s16 mode; + /* 0x69E */ s16 flowerAction; + /* 0x6A0 */ s16 flowerMode; /* 0x6A2 */ u8 field_0x6a2[0x6a8 - 0x6a2]; - /* 0x6A8 */ cXyz field_0x6a8; + /* 0x6A8 */ cXyz currentPosTarget; /* 0x6B4 */ u8 field_0x6b4[0x6b8 - 0x6b4]; - /* 0x6B8 */ s16 field_0x6b8; - /* 0x6BA */ s16 field_0x6ba; - /* 0x6BC */ f32 field_0x6bc; - /* 0x6C0 */ f32 field_0x6c0; - /* 0x6C4 */ s16 field_0x6c4[5]; - /* 0x6CE */ s16 field_0x6ce; - /* 0x6D0 */ s16 field_0x6d0; + /* 0x6B8 */ s16 angleYTarget; + /* 0x6BA */ s16 angleXTarget; + /* 0x6BC */ f32 distToPlayer; + /* 0x6C0 */ f32 currentPosTargetStep; + /* 0x6C4 */ s16 timer[5]; + /* 0x6CE */ s16 invulnerabilityTimer; + /* 0x6D0 */ s16 flowerInvulnerabilityTimer; /* 0x6D4 */ cXyz field_0x6d4; /* 0x6E0 */ s8 field_0x6e0; /* 0x6E4 */ cXyz field_0x6e4[18]; /* 0x7BC */ csXyz field_0x7bc[18]; - /* 0x828 */ J3DModel* field_0x828[18]; + /* 0x828 */ J3DModel* stemModelP[18]; /* 0x870 */ u8 field_0x870[0x8b8 - 0x870]; - /* 0x8B8 */ f32 field_0x8b8[18]; + /* 0x8B8 */ f32 stemModelSize[18]; /* 0x900 */ s16 field_0x900[18]; /* 0x924 */ s16 field_0x924; /* 0x928 */ f32 field_0x928; @@ -67,48 +68,48 @@ public: /* 0x932 */ s8 field_0x932[3]; /* 0x935 */ s8 field_0x935[3]; /* 0x938 */ s8 field_0x938; - /* 0x939 */ s8 field_0x939; + /* 0x939 */ s8 stemModelIdx; /* 0x93C */ f32 field_0x93c; /* 0x940 */ f32 field_0x940; /* 0x944 */ f32 field_0x944; /* 0x948 */ s16 field_0x948; /* 0x94A */ s16 field_0x94a; /* 0x94C */ f32 field_0x94c; - /* 0x950 */ s16 field_0x950; - /* 0x952 */ s16 field_0x952; + /* 0x950 */ s16 yRot; + /* 0x952 */ s16 xRot; /* 0x954 */ u8 field_0x954; - /* 0x955 */ s8 field_0x955; + /* 0x955 */ s8 keyStatus; /* 0x956 */ u8 field_0x956[0x964 - 0x956]; /* 0x964 */ f32 field_0x964; - /* 0x968 */ s8 field_0x968; - /* 0x969 */ u8 field_0x969[0x970 - 0x969]; - /* 0x970 */ dCcD_Stts mStts; - /* 0x9AC */ dCcD_Sph mHeadSph; - /* 0xAE4 */ dCcD_Cyl mBodyCyl; - /* 0xC20 */ s8 field_0xc20; - /* 0xC24 */ dCcU_AtInfo mAtInfo; - /* 0xC48 */ dBgS_AcchCir mAcchCir; - /* 0xC88 */ dBgS_ObjAcch mObjAcch; - /* 0xE60 */ u8 field_0xe60[2]; + /* 0x968 */ s8 status; + /* 0x96A */ csXyz field_0x96a; + /* 0x970 */ dCcD_Stts stts; + /* 0x9AC */ dCcD_Sph headSph; + /* 0xAE4 */ dCcD_Cyl bodyCyl; + /* 0xC20 */ s8 atSetBitFlag; + /* 0xC24 */ dCcU_AtInfo atInfo; + /* 0xC48 */ dBgS_AcchCir acchcir; + /* 0xC88 */ dBgS_ObjAcch objAcch; + /* 0xE60 */ u8 field_0xe60[0xe62 - 0xe60]; /* 0xE62 */ u32 field_0xe62[2]; /* 0xE6C */ u32 field_0xe6c; /* 0xE70 */ u32 field_0xe70; /* 0xE74 */ u32 field_0xe74; /* 0xE78 */ u32 field_0xe78; /* 0xE7C */ u32 field_0xe7c[5]; - /* 0xE90 */ s16 mDemoMode; - /* 0xE92 */ s16 field_0xe92; - /* 0xE94 */ cXyz mDemoCamEye; - /* 0xEA0 */ cXyz mDemoCamCenter; - /* 0xEAC */ cXyz field_0xeac; - /* 0xEB8 */ cXyz field_0xeb8; - /* 0xEC4 */ cXyz field_0xec4; - /* 0xED0 */ cXyz field_0xed0; + /* 0xE90 */ s16 demoMode; + /* 0xE92 */ s16 demoCounter; + /* 0xE94 */ cXyz demoCamEye; + /* 0xEA0 */ cXyz demoCamCenter; + /* 0xEAC */ cXyz demoCamEyeTarget; + /* 0xEB8 */ cXyz demoCamCenterTarget; + /* 0xEC4 */ cXyz demoCamEyeTargetDist; + /* 0xED0 */ cXyz demoCamCenterTargetDist; /* 0xEDC */ u8 field_0xedc[0xee4 - 0xedc]; - /* 0xEE4 */ f32 field_0xee4; - /* 0xEE8 */ f32 mDemoCamFovy; + /* 0xEE4 */ f32 demoCamStepScale; + /* 0xEE8 */ f32 demoCamFovy; /* 0xEEC */ u8 field_0xeec[0xef5 - 0xeec]; - /* 0xEF5 */ u8 field_0xef5; + /* 0xEF5 */ u8 hioInit; }; STATIC_ASSERT(sizeof(e_gb_class) == 0xef8); diff --git a/include/d/actor/d_a_player.h b/include/d/actor/d_a_player.h index 37cb8ec037..1725fc7e50 100644 --- a/include/d/actor/d_a_player.h +++ b/include/d/actor/d_a_player.h @@ -695,7 +695,7 @@ public: f32 getSpinnerRideSpeed() const; bool checkSpinnerReflectEffect(); static bool checkBoomerangCharge(); - static u8 checkBoomerangChargeTime(); + static bool checkBoomerangChargeTime(); static daBoomerang_c* getThrowBoomerangActor(); static void cancelBoomerangLockActor(fopAc_ac_c*); static void setPlayerDamage(int, int); diff --git a/src/d/actor/d_a_e_gb.cpp b/src/d/actor/d_a_e_gb.cpp index f57cb33dd8..a0f43bbac6 100644 --- a/src/d/actor/d_a_e_gb.cpp +++ b/src/d/actor/d_a_e_gb.cpp @@ -6,6 +6,7 @@ #include "d/dolzel_rel.h" // IWYU pragma: keep #include "d/actor/d_a_e_gb.h" +#include "../assets/GZ2E01/res/Object/E_gb.h" #include "d/d_cc_d.h" #include "d/d_camera.h" #include "d/d_bomb.h" @@ -13,87 +14,115 @@ #include "f_op/f_op_actor_enemy.h" #include "f_op/f_op_camera_mng.h" +enum Head_Action { + /* 0x0 */ HEAD_ACTION_WAIT, + /* 0x1 */ HEAD_ACTION_ATTACK_1, + /* 0x2 */ HEAD_ACTION_ATTACK_2, + /* 0x3 */ HEAD_ACTION_DAMAGE, + /* 0x5 */ HEAD_ACTION_END = 0x5, + /* 0xA */ HEAD_ACTION_START = 0xA, +}; + +enum Flower_Action { + /* 0x0 */ FLOWER_ACTION_WAIT, + /* 0x2 */ FLOWER_ACTION_EATBOMB = 0x2, + /* 0x3 */ FLOWER_ACTION_CHANCE, + /* 0xA */ FLOWER_ACTION_END = 0xA, +}; + class daE_GB_HIO_c : public JORReflexible{ public: - daE_GB_HIO_c(); virtual ~daE_GB_HIO_c() {} + daE_GB_HIO_c(); void genMessage(JORMContext*); - /* 0x04 */ s8 field_0x4; - /* 0x08 */ f32 field_0x8; - /* 0x0C */ f32 field_0xc; - /* 0x10 */ f32 field_0x10; - /* 0x14 */ s16 field_0x14; - /* 0x18 */ f32 field_0x18; - /* 0x1C */ s16 field_0x1c; - /* 0x1E */ s16 field_0x1e; + /* 0x04 */ s8 no; + /* 0x08 */ f32 face_size; + /* 0x0C */ f32 flower_size; + /* 0x10 */ f32 stem_size; + /* 0x14 */ s16 attack_frequency; + /* 0x18 */ f32 attack_spd; + /* 0x1C */ s16 attack_range; + /* 0x1E */ s16 post_attack_pause_timer; }; - daE_GB_HIO_c::daE_GB_HIO_c() { - field_0x4 = -1; - field_0x8 = 1.0f; - field_0xc = 1.0f; - field_0x10 = 1.0f; - field_0x14 = 15; - field_0x18 = 65.0f; - field_0x1c = 12; - field_0x1e = 10; + no = -1; + face_size = 1.0f; + flower_size = 1.0f; + stem_size = 1.0f; + attack_frequency = 15; + attack_spd = 65.0f; + attack_range = 12; + post_attack_pause_timer = 10; } -static void head_anm_init(e_gb_class* i_this, int param_2, f32 i_morf, u8 i_mode, f32 i_speed) { - i_this->mpModelMorf1->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_gb", param_2), i_mode, +#if DEBUG +void daE_GB_HIO_c::genMessage(JORMContext* ctx) { + ctx->genLabel(" デカババ  ", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genLabel("   大幅なサイズ変更は姿勢生成に影響があるので注意   ", 0x80000001, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("顔サイズ", &face_size, 0.0f, 5.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("花サイズ", &flower_size, 0.0f, 5.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("茎サイズ", &stem_size, 0.0f, 5.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("攻撃頻度", &attack_frequency, 0, 30000, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("攻撃速度", &attack_spd, 0.0f, 200.0f, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("攻後距離", &attack_range, 0, 30, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); + ctx->genSlider("攻後停間", &post_attack_pause_timer, 0, 200, 0, NULL, 0xFFFF, 0xFFFF, 0x200, 0x18); +} +#endif + +static void head_anm_init(e_gb_class* i_this, int i_idx, f32 i_morf, u8 i_mode, f32 i_speed) { + i_this->anmP->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_gb", i_idx), i_mode, i_morf, i_speed, 0.0f, -1.0f, NULL); - i_this->field_0x688 = param_2; + i_this->headAnmNo = i_idx; } -static void body_anm_init(e_gb_class* i_this, int param_2, f32 i_morf, u8 i_mode, f32 i_speed) { - i_this->mpModelMorf2->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_gb", param_2), i_mode, +static void body_anm_init(e_gb_class* i_this, int i_idx, f32 i_morf, u8 i_mode, f32 i_speed) { + i_this->flowerAnmP->setAnm((J3DAnmTransform*)dComIfG_getObjectRes("E_gb", i_idx), i_mode, i_morf, i_speed, 0.0f, -1.0f, NULL); - i_this->field_0x68c = param_2; + i_this->bodyAnmNo = i_idx; } static int daE_GB_Draw(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; - g_env_light.settingTevStruct(0, &a_this->current.pos, &a_this->tevStr); + g_env_light.settingTevStruct(0, &actor->current.pos, &actor->tevStr); - J3DModel* model = i_this->mpModelMorf2->getModel(); - g_env_light.setLightTevColorType_MAJI(model, &a_this->tevStr); + J3DModel* model = i_this->flowerAnmP->getModel(); + g_env_light.setLightTevColorType_MAJI(model, &actor->tevStr); - J3DModelData* modelData = model->getModelData(); - i_this->mBrkAnm->entry(modelData); - i_this->mpModelMorf2->entryDL(); + i_this->brkAnmP->entry(model->getModelData()); + i_this->flowerAnmP->entryDL(); - if (i_this->field_0x66c != NULL) { - g_env_light.setLightTevColorType_MAJI(i_this->field_0x66c, &a_this->tevStr); - mDoExt_modelUpdateDL(i_this->field_0x66c); + if (i_this->keyModelP != NULL) { + g_env_light.setLightTevColorType_MAJI(i_this->keyModelP, &actor->tevStr); + mDoExt_modelUpdateDL(i_this->keyModelP); } - if (i_this->field_0x968 != 0) { - if (i_this->field_0x828[17] != NULL) { - model = i_this->mpModelMorf1->getModel(); - g_env_light.setLightTevColorType_MAJI(model, &a_this->tevStr); - i_this->mpModelMorf1->entryDL(); + if (i_this->status != 0) { + if (i_this->stemModelP[17] != NULL) { + model = i_this->anmP->getModel(); + g_env_light.setLightTevColorType_MAJI(model, &actor->tevStr); + i_this->anmP->entryDL(); for (int i = 0; i < 17; i++) { - if (i_this->field_0x828[i] != NULL) { - g_env_light.setLightTevColorType_MAJI(i_this->field_0x828[i], &a_this->tevStr); - mDoExt_modelUpdateDL(i_this->field_0x828[i]); + if (i_this->stemModelP[i] != NULL) { + g_env_light.setLightTevColorType_MAJI(i_this->stemModelP[i], &actor->tevStr); + mDoExt_modelUpdateDL(i_this->stemModelP[i]); } } } - cXyz sp38; - sp38.set(a_this->current.pos.x, a_this->current.pos.y + 100.0f, a_this->current.pos.z); - i_this->mShadowKey = dComIfGd_setShadow(i_this->mShadowKey, 1, model, &sp38, 1400.0f, 0.0f, a_this->current.pos.y, - i_this->mObjAcch.GetGroundH(), i_this->mObjAcch.m_gnd, - &a_this->tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); + cXyz pos; + pos.set(actor->current.pos.x, actor->current.pos.y + 100.0f + BREG_F(18), actor->current.pos.z); + i_this->shadowKey = dComIfGd_setShadow(i_this->shadowKey, 1, model, &pos, BREG_F(19) + 1400.0f, 0.0f, actor->current.pos.y, + i_this->objAcch.GetGroundH(), i_this->objAcch.m_gnd, + &i_this->actor.tevStr, 0, 1.0f, dDlst_shadowControl_c::getSimpleTex()); for (int i = 0; i < 17; i++) { - if (i_this->field_0x828[i] != NULL) { - dComIfGd_addRealShadow(i_this->mShadowKey, i_this->field_0x828[i]); + if (i_this->stemModelP[i] != NULL) { + dComIfGd_addRealShadow(i_this->shadowKey, i_this->stemModelP[i]); } } } @@ -106,242 +135,252 @@ static u8 data_806C7928; static daE_GB_HIO_c l_HIO; static void e_gb_wait(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; fopAc_ac_c* player = dComIfGp_getPlayer(0); - cXyz sp5c, sp68; - f32 fVar1 = (a_this->home.pos - dComIfGp_getPlayer(0)->current.pos).abs(); - s8 sVar1 = 0; + cXyz work, target_offset; + f32 offset = TREG_F(12) + 30.0f; + #if VERSION == VERSION_SHIELD_DEBUG + f32 pl_dist = (actor->home.pos - player->current.pos).abs(); + #else + f32 pl_dist = (actor->home.pos - dComIfGp_getPlayer(0)->current.pos).abs(); + #endif + s8 near_attack_flag = 0; - switch (i_this->field_0x69c) { + switch (i_this->mode) { case -2: - head_anm_init(i_this, 16, 3.0f, 0, 1.0f); - i_this->field_0x6c4[1] = l_HIO.field_0x14 + cM_rndF(l_HIO.field_0x14); - i_this->field_0x69c = 1; - i_this->field_0x6c0 = 1.0f; + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_REVIVE_e, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + i_this->timer[1] = l_HIO.attack_frequency + cM_rndF(l_HIO.attack_frequency); + i_this->mode = 1; + i_this->currentPosTargetStep = 1.0f; break; case 0: - head_anm_init(i_this, 17, 10.0f, 2, 1.0f); - i_this->field_0x69c = 1; - i_this->field_0x6c4[1] = l_HIO.field_0x14 + cM_rndF(l_HIO.field_0x14); + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_WAIT_e, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->mode = 1; + i_this->timer[1] = l_HIO.attack_frequency + cM_rndF(l_HIO.attack_frequency); // fallthrough case 1: - if (i_this->field_0x688 != 17 && i_this->mpModelMorf1->isStop()) { - head_anm_init(i_this, 17, 10.0f, 2, 1.0f); + if (i_this->headAnmNo != dRes_ID_E_GB_BCK_GB_WAIT_e && i_this->anmP->isStop()) { + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_WAIT_e, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); } - if (i_this->field_0x6c4[1] == 0 && fVar1 < 1000.0f) { - sVar1 = 1; + if (i_this->timer[1] == 0 && pl_dist < YREG_F(17) + 1000.0f) { + near_attack_flag = 1; OS_REPORT("E_gb NEAR ATTACK d\n"); } - if (i_this->field_0x6c4[0] == 0) { - i_this->field_0x6c4[0] = cM_rndF(30.0f) + 10.0f; - cMtx_YrotS(*calc_mtx, a_this->current.angle.y); - sp5c.x = cM_rndFX(100.0f); - sp5c.y = l_HIO.field_0x8 * 450.0f + cM_rndFX(100.0f); - sp5c.z = cM_rndFX(100.0f) + 200.0f; - MtxPosition(&sp5c, &i_this->field_0x6a8); - i_this->field_0x6a8 += i_this->field_0x6d4; - i_this->field_0x6c0 = 0.0f; + if (i_this->timer[0] == 0) { + i_this->timer[0] = cM_rndF(30.0f) + 10.0f; + cMtx_YrotS(*calc_mtx, actor->current.angle.y); + work.x = cM_rndFX(100.0f); + work.y = BREG_F(3) + (l_HIO.face_size * 450.0f + cM_rndFX(100.0f)); + work.z = BREG_F(4) + (cM_rndFX(100.0f) + 200.0f); + MtxPosition(&work, &i_this->currentPosTarget); + i_this->currentPosTarget += i_this->field_0x6d4; + i_this->currentPosTargetStep = 0.0f; - if (i_this->field_0x6c4[1] == 0 && fVar1 < 1500.0f) { - sVar1 = 1; + if (i_this->timer[1] == 0 && pl_dist < YREG_F(19) + 1500.0f) { + near_attack_flag = 1; } } - sp68.x = cM_ssin(i_this->field_0x698 * 0x76C) * 30.0f; - sp68.y = cM_ssin(i_this->field_0x698 * 0x898) * 30.0f; - sp68.z = cM_scos(i_this->field_0x698 * 2000) * 30.0f; - cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x6a8.x + sp68.x, 0.1f, i_this->field_0x6c0 * 30.0f); - cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x6a8.z + sp68.z, 0.1f, i_this->field_0x6c0 * 30.0f); - cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x6a8.y + sp68.y, 0.1f, i_this->field_0x6c0 * 30.0f); - cLib_addCalc2(&i_this->field_0x6c0, 1.0f, 1.0f, 0.05f); + target_offset.x = cM_ssin(i_this->frameCounter * (TREG_S(0) + 0x76C)) * offset; + target_offset.y = cM_ssin(i_this->frameCounter * (TREG_S(1) + 0x898)) * offset; + target_offset.z = cM_scos(i_this->frameCounter * (TREG_S(2) + 2000)) * offset; + cLib_addCalc2(&actor->current.pos.x, i_this->currentPosTarget.x + target_offset.x, 0.1f, i_this->currentPosTargetStep * 30.0f); + cLib_addCalc2(&actor->current.pos.z, i_this->currentPosTarget.z + target_offset.z, 0.1f, i_this->currentPosTargetStep * 30.0f); + cLib_addCalc2(&actor->current.pos.y, i_this->currentPosTarget.y + target_offset.y, 0.1f, i_this->currentPosTargetStep * 30.0f); + cLib_addCalc2(&i_this->currentPosTargetStep, 1.0f, 1.0f, 0.05f); } - cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x6b8, 8, 0x100); - cLib_addCalcAngleS2(&a_this->shape_angle.y, i_this->field_0x6b8, 8, 0x800); - cLib_addCalcAngleS2(&a_this->shape_angle.x, i_this->field_0x6ba, 8, 0x400); + cLib_addCalcAngleS2(&actor->current.angle.y, i_this->angleYTarget, 8, 0x100); + cLib_addCalcAngleS2(&actor->shape_angle.y, i_this->angleYTarget, 8, 0x800); + cLib_addCalcAngleS2(&actor->shape_angle.x, i_this->angleXTarget, 8, 0x400); - if (sVar1 != 0) { - a_this->speedF = 0.0f; - i_this->field_0x69a = 1; - i_this->field_0x69c = 0; + if (near_attack_flag != 0) { + actor->speedF = 0.0f; + i_this->headAction = HEAD_ACTION_ATTACK_1; + i_this->mode = 0; } } static void e_gb_attack_1(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; fopAc_ac_c* player = dComIfGp_getPlayer(0); - cXyz sp58, sp64; - f32 fVar2 = 0.0f; - f32 fVar3 = 20.0f; - f32 fVar1 = (a_this->home.pos - dComIfGp_getPlayer(0)->current.pos).abs(); + cXyz work, pos_target_offset; + f32 attack_spd = 0.0f; + f32 step = YREG_F(2) + 20.0f; + #if VERSION == VERSION_SHIELD_DEBUG + f32 pl_dist = (actor->home.pos - player->current.pos).abs(); + #else + f32 pl_dist = (actor->home.pos - dComIfGp_getPlayer(0)->current.pos).abs(); + #endif - switch (i_this->field_0x69c) { + switch (i_this->mode) { case 0: - if (fVar1 < 1200.0f && cM_rndF(1.0f) < 0.5f) { - i_this->field_0x69a = 2; - i_this->field_0x69c = 0; - i_this->field_0x6c4[0] = 0; + if (pl_dist < TREG_F(11) + 1200.0f && cM_rndF(1.0f) < 0.5f) { + i_this->headAction = HEAD_ACTION_ATTACK_2; + i_this->mode = 0; + i_this->timer[0] = 0; return; } - head_anm_init(i_this, 5, 5.0f, 0, 1.0f); - i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK, -1); - i_this->field_0x69c = 1; - i_this->field_0x6c0 = 0.0f; + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_ATTACK_e, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + i_this->sound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK, -1); + i_this->mode = 1; + i_this->currentPosTargetStep = 0.0f; break; case 1: - cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x6b8, 2, 0x800); - cLib_addCalcAngleS2(&a_this->current.angle.x, i_this->field_0x6ba, 2, 0x800); - cMtx_YrotS(*calc_mtx, a_this->current.angle.y); + cLib_addCalcAngleS2(&actor->current.angle.y, i_this->angleYTarget, 2, 0x800); + cLib_addCalcAngleS2(&actor->current.angle.x, i_this->angleXTarget, 2, 0x800); + cMtx_YrotS(*calc_mtx, actor->current.angle.y); - sp58.x = 0.0f; - sp58.y = l_HIO.field_0x8 * 450.0f; - sp58.z = 0.0f; - MtxPosition(&sp58, &sp64); - i_this->field_0x6a8 = i_this->field_0x6d4 + sp64; + work.x = 0.0f; + work.y = l_HIO.face_size * 450.0f + NREG_F(0); + work.z = NREG_F(1); + MtxPosition(&work, &pos_target_offset); + i_this->currentPosTarget = i_this->field_0x6d4 + pos_target_offset; - cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x6a8.x, 0.1f, i_this->field_0x6c0 * 30.0f); - cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x6a8.z, 0.1f, i_this->field_0x6c0 * 30.0f); - cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x6a8.y, 0.1f, i_this->field_0x6c0 * 30.0f); - cLib_addCalc2(&i_this->field_0x6c0, 1.0f, 1.0f, 0.1f); + cLib_addCalc2(&actor->current.pos.x, i_this->currentPosTarget.x, 0.1f, i_this->currentPosTargetStep * 30.0f); + cLib_addCalc2(&actor->current.pos.z, i_this->currentPosTarget.z, 0.1f, i_this->currentPosTargetStep * 30.0f); + cLib_addCalc2(&actor->current.pos.y, i_this->currentPosTarget.y, 0.1f, i_this->currentPosTargetStep * 30.0f); + cLib_addCalc2(&i_this->currentPosTargetStep, 1.0f, 1.0f, 0.1f); - if (i_this->mpModelMorf1->isStop()) { - i_this->field_0x69c = 3; - i_this->field_0x6c4[0] = l_HIO.field_0x1c; - head_anm_init(i_this, 8, 1.0f, 0, 1.0f); - i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK_DASH, -1); + if (i_this->anmP->isStop()) { + i_this->mode = 3; + i_this->timer[0] = l_HIO.attack_range; + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_ATTACK_DASH_e, 1.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + i_this->sound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK_DASH, -1); } break; case 3: - fVar2 = l_HIO.field_0x18; - fVar3 = l_HIO.field_0x18 * 0.5f; - if (i_this->field_0x6c4[0] == 0) { - i_this->field_0x6c4[0] = l_HIO.field_0x1e; - i_this->field_0x69c = 4; + attack_spd = l_HIO.attack_spd; + step = l_HIO.attack_spd * 0.5f; + if (i_this->timer[0] == 0) { + i_this->timer[0] = l_HIO.post_attack_pause_timer; + i_this->mode = 4; } break; case 4: - if (i_this->field_0x6c4[0] == 0) { - i_this->field_0x69a = 0; - i_this->field_0x69c = 0; - i_this->field_0x6c4[0] = cM_rndF(10.0f) + 10.0f; - i_this->field_0x6c0 = 0.0f; + if (i_this->timer[0] == 0) { + i_this->headAction = HEAD_ACTION_WAIT; + i_this->mode = 0; + i_this->timer[0] = cM_rndF(10.0f) + 10.0f; + i_this->currentPosTargetStep = 0.0f; return; } break; case 5: - fVar3 = 5.0f; - if (i_this->field_0x6c4[0] == 0 && fabsf(a_this->speedF) < 0.1f) { - i_this->field_0x69a = 0; - i_this->field_0x69c = 0; - i_this->field_0x6c4[0] = cM_rndF(10.0f) + 10.0f; - i_this->field_0x6c0 = 0.0f; + step = NREG_F(4) + 5.0f; + if (i_this->timer[0] == 0 && fabsf(actor->speedF) < 0.1f) { + i_this->headAction = HEAD_ACTION_WAIT; + i_this->mode = 0; + i_this->timer[0] = cM_rndF(10.0f) + 10.0f; + i_this->currentPosTargetStep = 0.0f; } } - cLib_addCalc2(&a_this->speedF, fVar2, 1.0f, fVar3); - if (a_this->speedF >= 10.0f) { - i_this->field_0xc20 = 1; - if (i_this->field_0x69c != 5 && (i_this->mObjAcch.ChkWallHit() != 0 || i_this->mHeadSph.ChkAtShieldHit())) { - i_this->field_0x69c = 5; - i_this->field_0x948 = 5000; - i_this->field_0x952 = 3000; - i_this->field_0x94c = 3000.0f; + cLib_addCalc2(&actor->speedF, attack_spd, 1.0f, step); + if (actor->speedF >= 10.0f) { + i_this->atSetBitFlag = 1; + if (i_this->mode != 5 && (i_this->objAcch.ChkWallHit() != 0 || i_this->headSph.ChkAtShieldHit())) { + i_this->mode = 5; + i_this->field_0x948 = VREG_S(8) + 5000; + i_this->xRot = VREG_S(4) + 3000; + i_this->field_0x94c = VREG_F(5) + 3000.0f; - head_anm_init(i_this, 17, 2.0f, 2, 1.0f); + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_WAIT_e, 2.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); - i_this->field_0x6c4[0] = 0; - a_this->speedF = -30.0f; + i_this->timer[0] = 0; + actor->speedF = NREG_F(11) + -30.0f; } } - cLib_addCalcAngleS2(&a_this->shape_angle.y, a_this->current.angle.y, 8, 0x800); - cLib_addCalcAngleS2(&a_this->shape_angle.x, a_this->current.angle.x, 8, 0x400); + cLib_addCalcAngleS2(&actor->shape_angle.y, actor->current.angle.y, 8, 0x800); + cLib_addCalcAngleS2(&actor->shape_angle.x, actor->current.angle.x, 8, 0x400); } static void e_gb_attack_2(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; fopAc_ac_c* player = dComIfGp_getPlayer(0); - cXyz sp60, sp6c; - f32 fVar1 = 0.0f; - f32 frame = i_this->mpModelMorf1->getFrame(); + cXyz work, pos_target_offset; + f32 attack_spd = 0.0f; + f32 step = YREG_F(2) + 20.0f; + f32 frame = i_this->anmP->getFrame(); - switch (i_this->field_0x69c) { + switch (i_this->mode) { case 0: - head_anm_init(i_this, 7, 5.0f, 2, 1.0f); - i_this->field_0x6c4[0] = cM_rndF(10.0f) + 49.0f; - i_this->field_0x69c = 1; - i_this->mSound.startCreatureSound(Z2SE_EN_GB_V_DOSUN, 0, -1); + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_ATTACK_BEAT_SIGN_e, 5.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->timer[0] = cM_rndF(10.0f) + 49.0f; + i_this->mode = 1; + i_this->sound.startCreatureSound(Z2SE_EN_GB_V_DOSUN, 0, -1); break; case 1: - a_this->speedF = 0.0f; - a_this->speed.y = 0.0f; + actor->speedF = 0.0f; + actor->speed.y = 0.0f; - cLib_addCalc2(&a_this->current.pos.y, a_this->home.pos.y + 200.0f, 0.05f, 3.0f); - cLib_addCalcAngleS2(&a_this->current.angle.y, i_this->field_0x6b8, 2, 0x800); - cLib_addCalcAngleS2(&a_this->current.angle.x, 0, 2, 0x800); - cLib_addCalcAngleS2(&a_this->shape_angle.y, a_this->current.angle.y, 8, 0x800); - cLib_addCalcAngleS2(&a_this->shape_angle.x, a_this->current.angle.x, 8, 0x400); + cLib_addCalc2(&actor->current.pos.y, actor->home.pos.y + 200.0f, 0.05f, 3.0f); + cLib_addCalcAngleS2(&actor->current.angle.y, i_this->angleYTarget, 2, 0x800); + cLib_addCalcAngleS2(&actor->current.angle.x, 0, 2, 0x800); + cLib_addCalcAngleS2(&actor->shape_angle.y, actor->current.angle.y, 8, 0x800); + cLib_addCalcAngleS2(&actor->shape_angle.x, actor->current.angle.x, 8, 0x400); - if (i_this->field_0x6c4[0] == 0) { - head_anm_init(i_this, 6, 2.0f, 0, 1.0f); - i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK, -1); - i_this->mSound.startCreatureSound(Z2SE_EN_GB_DOSUN_DASH, 0, -1); - i_this->field_0x69c = 2; + if (i_this->timer[0] == 0) { + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_ATTACK_BEAT_e, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + i_this->sound.startCreatureVoice(Z2SE_EN_GB_V_ATTACK, -1); + i_this->sound.startCreatureSound(Z2SE_EN_GB_DOSUN_DASH, 0, -1); + i_this->mode = 2; } break; case 2: - sp60.x = player->current.pos.x - a_this->current.pos.x; - sp60.z = player->current.pos.z - a_this->current.pos.z; + work.x = player->current.pos.x - actor->current.pos.x; + work.z = player->current.pos.z - actor->current.pos.z; if (frame >= 16.0f) { - a_this->speedF = 0.0f; - fVar1 = 0.0f; + actor->speedF = 0.0f; + attack_spd = 0.0f; } else if (frame >= 6.0f) { - fVar1 = 50.0f; + attack_spd = JREG_F(17) + 50.0f; if (frame == 6.0f) { - a_this->speed.y = 50.0f; + actor->speed.y = JREG_F(15) + 50.0f; } - if (JMAFastSqrt(sp60.x * sp60.x + sp60.z * sp60.z) < 100.0f) { - a_this->speedF = 0.0f; - fVar1 = 0.0f; + if (JMAFastSqrt(work.x * work.x + work.z * work.z) < TREG_F(12) + 100.0f) { + actor->speedF = 0.0f; + attack_spd = 0.0f; } } else { - a_this->speed.y = 0.0f; + actor->speed.y = 0.0f; } if (frame >= 10.0f && frame <= 20.0f) { - i_this->field_0xc20 = 1; + i_this->atSetBitFlag = 1; } - a_this->speedF = fVar1; - if (a_this->speed.y <= 0.0f && a_this->current.pos.y <= (a_this->home.pos.y + 150.0f)) { - a_this->current.pos.y = a_this->home.pos.y + 150.0f; - if (a_this->speed.y < -30.0f) { - fopAcM_effSmokeSet1(&i_this->field_0xe74, &i_this->field_0xe78, &a_this->eyePos, NULL, 1.7f, &a_this->tevStr, 1); - dComIfGp_getVibration().StartShock(5, 15, cXyz(0.0f, 1.0f, 0.0f)); - i_this->mSound.startCreatureSound(Z2SE_EN_GB_DOSUN, 0, -1); + actor->speedF = attack_spd; + if (actor->speed.y <= 0.0f && actor->current.pos.y <= (actor->home.pos.y + 150.0f + KREG_F(6))) { + actor->current.pos.y = actor->home.pos.y + 150.0f + KREG_F(6); + if (actor->speed.y < -30.0f) { + fopAcM_effSmokeSet1(&i_this->field_0xe74, &i_this->field_0xe78, &actor->eyePos, NULL, TREG_F(18) + 1.7f, &actor->tevStr, 1); + dComIfGp_getVibration().StartShock((int)YREG_S(2) + VIBMODE_S_POWER5, 15, cXyz(0.0f, 1.0f, 0.0f)); + i_this->sound.startCreatureSound(Z2SE_EN_GB_DOSUN, 0, -1); } - a_this->speed.y = 0.0f; - if (i_this->mpModelMorf1->isStop()) { - sp60 = a_this->current.pos - a_this->home.pos; - if (cM_rndF(1.0f) < 0.5f && sp60.abs() < 1000.0f) { - i_this->field_0x69c = 0; + actor->speed.y = 0.0f; + if (i_this->anmP->isStop()) { + work = actor->current.pos - actor->home.pos; + if (cM_rndF(1.0f) < 0.5f && work.abs() < TREG_F(12) + 1000.0f) { + i_this->mode = 0; } else { - i_this->field_0x69a = 0; - i_this->field_0x69c = 0; - i_this->field_0x6c4[0] = cM_rndF(10.0f) + 10.0f; - i_this->field_0x6c0 = 0.0f; + i_this->headAction = HEAD_ACTION_WAIT; + i_this->mode = 0; + i_this->timer[0] = cM_rndF(10.0f) + 10.0f; + i_this->currentPosTargetStep = 0.0f; } } } @@ -349,91 +388,89 @@ static void e_gb_attack_2(e_gb_class* i_this) { } static void e_gb_damage(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; - cXyz sp24; - s16 sVar1; + fopEn_enemy_c* actor = &i_this->actor; + cXyz work; - i_this->field_0x6ce = 35; - switch (i_this->field_0x69c) { + i_this->invulnerabilityTimer = 35; + switch (i_this->mode) { case 0: - i_this->field_0x69c = 1; - sVar1 = a_this->current.angle.y; - if ((s16)(i_this->field_0x6b8 - sVar1) < 0) { - a_this->current.angle.y = sVar1 + 0x2000; + i_this->mode = 1; + if ((s16)(i_this->angleYTarget - actor->current.angle.y) < 0) { + actor->current.angle.y += (s16)(KREG_S(6) + 0x2000); } else { - a_this->current.angle.y = sVar1 - 0x2000; + actor->current.angle.y -= (s16)(KREG_S(6) + 0x2000); } - cMtx_YrotS(*calc_mtx, a_this->current.angle.y); - sp24.x = 0.0f; - sp24.y = 50.0f; - sp24.z = 800.0f; - MtxPosition(&sp24, &i_this->field_0x6a8); - i_this->field_0x6a8 += a_this->home.pos; - a_this->speed.x = fabsf(a_this->current.pos.x - i_this->field_0x6a8.x) * 0.2f; - a_this->speed.y = fabsf(a_this->current.pos.y - i_this->field_0x6a8.y) * 0.2f; - a_this->speed.z = fabsf(a_this->current.pos.z - i_this->field_0x6a8.z) * 0.2f; - i_this->field_0x6c4[0] = 15; + cMtx_YrotS(*calc_mtx, actor->current.angle.y); + work.x = 0.0f; + work.y = AREG_F(2) + 50.0f; + work.z = AREG_F(1) + 800.0f; + MtxPosition(&work, &i_this->currentPosTarget); + i_this->currentPosTarget += actor->home.pos; + actor->speed.x = fabsf(actor->current.pos.x - i_this->currentPosTarget.x) * 0.2f; + actor->speed.y = fabsf(actor->current.pos.y - i_this->currentPosTarget.y) * 0.2f; + actor->speed.z = fabsf(actor->current.pos.z - i_this->currentPosTarget.z) * 0.2f; + i_this->timer[0] = KREG_S(7) + 15; // fallthrough case 1: - if (i_this->field_0x6c4[0] == 0) { - if (a_this->health <= 0) { - i_this->field_0x69a = 5; - i_this->field_0x69c = 0; + if (i_this->timer[0] == 0) { + if (actor->health <= 0) { + i_this->headAction = HEAD_ACTION_END; + i_this->mode = 0; } else { - i_this->field_0x69a = 0; - i_this->field_0x69c = -2; + i_this->headAction = HEAD_ACTION_WAIT; + i_this->mode = -2; } } } - cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x6a8.x, 0.1f, a_this->speed.x); - cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x6a8.y, 0.1f, a_this->speed.y); - cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x6a8.z, 0.1f, a_this->speed.z); - cLib_addCalcAngleS2(&a_this->shape_angle.y, a_this->current.angle.y, 2, 0x2000); - cLib_addCalcAngleS2(&a_this->shape_angle.x, 0, 4, 0x800); + cLib_addCalc2(&actor->current.pos.x, i_this->currentPosTarget.x, 0.1f, actor->speed.x); + cLib_addCalc2(&actor->current.pos.y, i_this->currentPosTarget.y, 0.1f, actor->speed.y); + cLib_addCalc2(&actor->current.pos.z, i_this->currentPosTarget.z, 0.1f, actor->speed.z); + cLib_addCalcAngleS2(&actor->shape_angle.y, actor->current.angle.y, 2, 0x2000); + cLib_addCalcAngleS2(&actor->shape_angle.x, 0, 4, 0x800); } static void e_gb_end(e_gb_class* i_this) { static u16 eno[2] = { - 0x832F, - 0x8330, + dPa_RM(ID_ZM_S_GS_FEELERDEATH00), + dPa_RM(ID_ZM_S_GS_FEELERDEATH01), }; - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; - i_this->field_0x6ce = 20; - switch (i_this->field_0x69c) { + i_this->invulnerabilityTimer = 20; + switch (i_this->mode) { case 0: - head_anm_init(i_this, 15, 30.0f, 0, 1.0f); - i_this->field_0x69c = 1; + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_DIE_e, 30.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + i_this->mode = 1; break; case 1: - i_this->field_0x69c = 2; - i_this->mSound.startCreatureSound(Z2SE_EN_GB_BOMBROOT, 0, -1); + i_this->mode = 2; + i_this->sound.startCreatureSound(Z2SE_EN_GB_BOMBROOT, 0, -1); break; case 2: - if ((i_this->field_0x698 & 1) == 0) { - i_this->field_0x828[i_this->field_0x939] = NULL; - if (i_this->field_0x939 == 17) { - i_this->field_0x69c = 10; - fopAcM_createDisappear(a_this, &a_this->eyePos, 12, 0, a_this->field_0x564); - i_this->field_0x968 = 0; - i_this->field_0x69e = 3; - i_this->field_0x6a0 = 0; - i_this->field_0x6c4[0] = 80; + if ((i_this->frameCounter & 1) == 0) { + i_this->stemModelP[i_this->stemModelIdx] = NULL; + if (i_this->stemModelIdx == 17) { + i_this->mode = 10; + fopAcM_createDisappear(actor, &actor->eyePos, 12, 0, actor->field_0x564); + i_this->status = 0; + i_this->flowerAction = FLOWER_ACTION_CHANCE; + i_this->flowerMode = 0; + i_this->timer[0] = 80; i_this->field_0x668 = 1; - i_this->mSound.stopAnime(); + i_this->sound.stopAnime(); Z2GetAudioMgr()->unMuteSceneBgm(33); } else { for (int i = 0; i < 2; i++) { - dComIfGp_particle_set(eno[i], &i_this->field_0x6e4[i_this->field_0x939], NULL, NULL); + dComIfGp_particle_set(eno[i], &i_this->field_0x6e4[i_this->stemModelIdx], NULL, NULL); } } - i_this->field_0x939++; + i_this->stemModelIdx++; } break; @@ -441,63 +478,65 @@ static void e_gb_end(e_gb_class* i_this) { break; } - a_this->current.pos.y -= 5.0f; + actor->current.pos.y -= 5.0f; } static void e_gb_start(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; - cXyz sp28; + fopEn_enemy_c* actor = &i_this->actor; + cXyz work; - i_this->field_0x6ce = 20; - switch (i_this->field_0x69c) { + i_this->invulnerabilityTimer = 20; + switch (i_this->mode) { case 0: - i_this->field_0x69c = 1; - head_anm_init(i_this, 17, 10.0f, 2, 1.0f); - i_this->mDemoMode = 1; + i_this->mode = 1; + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_WAIT_e, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->demoMode = 1; break; case 2: - a_this->current.pos.set(-6112.0f, 4520.0f, 10800.0f); - i_this->field_0x69c = 3; + actor->current.pos.set(-6112.0f, KREG_F(6) + 4520.0f, KREG_F(7) + 10800.0f); + i_this->mode = 3; break; case 3: - cLib_addCalc2(&a_this->current.pos.x, -5450.0f, 0.5f, 30.0f); + cLib_addCalc2(&actor->current.pos.x, -5450.0f, 0.5f, KREG_F(8) + 30.0f); break; case 4: - cMtx_YrotS(*calc_mtx, a_this->home.angle.y); - sp28.x = 20.0f; - sp28.y = 500.0f; - sp28.z = 0.0f; - MtxPosition(&sp28, &i_this->field_0x6a8); - i_this->field_0x6a8 += a_this->home.pos; + cMtx_YrotS(*calc_mtx, actor->home.angle.y); + work.x = NREG_F(0) + 20.0f; + work.y = NREG_F(1) + 500.0f; + work.z = NREG_F(2); + MtxPosition(&work, &i_this->currentPosTarget); + i_this->currentPosTarget += actor->home.pos; - cLib_addCalc2(&a_this->current.pos.x, i_this->field_0x6a8.x, 0.1f, 80.0f); - cLib_addCalc2(&a_this->current.pos.y, i_this->field_0x6a8.y, 0.1f, 80.0f); - cLib_addCalc2(&a_this->current.pos.z, i_this->field_0x6a8.z, 0.1f, 80.0f); + cLib_addCalc2(&actor->current.pos.x, i_this->currentPosTarget.x, 0.1f, NREG_F(3) + 80.0f); + cLib_addCalc2(&actor->current.pos.y, i_this->currentPosTarget.y, 0.1f, NREG_F(3) + 80.0f); + cLib_addCalc2(&actor->current.pos.z, i_this->currentPosTarget.z, 0.1f, NREG_F(3) + 80.0f); - cLib_addCalcAngleS2(&a_this->current.angle.y, -0x4000, 16, 0x200); - cLib_addCalcAngleS2(&a_this->shape_angle.y, 0x4000, 16, 0x200); - cLib_addCalcAngleS2(&a_this->shape_angle.x, 0x2000, 16, 0x100); + cLib_addCalcAngleS2(&actor->current.angle.y, -0x4000, 16, 0x200); + cLib_addCalcAngleS2(&actor->shape_angle.y, 0x4000, 16, 0x200); + cLib_addCalcAngleS2(&actor->shape_angle.x, 0x2000, 16, 0x100); } } static void kuki_control1(e_gb_class* i_this) { static s16 pow_xa[17] = { - 0xD000, 0xD800, 0xE000, 0xE800, 0xF000, - 0x0000, 0x1000, 0x1800, - 0x2000, 0x2800, 0x3000, - 0x3800, 0x3000, 0x2000, - 0x1000, 0x0000, 0x0000, + 0xD000, 0xD800, 0xE000, + 0xE800, 0xF000, 0x0000, + 0x1000, 0x1800, 0x2000, + 0x2800, 0x3000, 0x3800, + 0x3000, 0x2000, 0x1000, + 0x0000, 0x0000, }; static s16 pow_xa_chance[17] = { - 0xC800, 0xD000, 0xD800, 0xE000, 0xE800, - 0xF000, 0xF800, 0x0000, + 0xC800, 0xD000, 0xD800, + 0xE000, 0xE800, 0xF000, + 0xF800, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, - 0x0000, 0x0800, 0x0000, 0x0800, 0x0000, 0x0800, + 0x0000, 0x0800, }; static f32 wav_d[17] = { @@ -508,7 +547,7 @@ static void kuki_control1(e_gb_class* i_this) { 0.4f, 0.2f, 0.0f, }; - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; int i; cXyz sp9c, spa8, spb4; cXyz* pcVar1 = i_this->field_0x6e4; @@ -534,18 +573,18 @@ static void kuki_control1(e_gb_class* i_this) { f32 fVar1 = i_this->field_0x944; for (i = 1; i < 18; i++, pcVar1++) { - if (i_this->field_0x69a != 5) { + if (i_this->headAction != HEAD_ACTION_END) { if (i_this->field_0x94c > 1.0f) { fVar6 = i_this->field_0x94c * wav_d[i - 1] * 0.035f; - fVar3 = fVar6 * cM_ssin(i_this->field_0x698 * (7000 + TREG_S(0)) + i * (7000 + TREG_S(1))); - fVar7 = fVar6 * cM_scos(i_this->field_0x698 * (7700 + TREG_S(2)) + i * (5000 + TREG_S(3))); + fVar3 = fVar6 * cM_ssin(i_this->frameCounter * (7000 + TREG_S(0)) + i * (7000 + TREG_S(1))); + fVar7 = fVar6 * cM_scos(i_this->frameCounter * (7700 + TREG_S(2)) + i * (5000 + TREG_S(3))); } else { fVar6 = (60.0f + TREG_F(8)) * wav_d[i - 1]; - fVar3 = fVar6 * cM_ssin(i_this->field_0x698 * (2000 + TREG_S(0)) + i * (7000 + TREG_S(1))); - fVar7 = fVar6 * cM_scos(i_this->field_0x698 * (2300 + TREG_S(2)) + i * (5000 + TREG_S(3))); + fVar3 = fVar6 * cM_ssin(i_this->frameCounter * (2000 + TREG_S(0)) + i * (7000 + TREG_S(1))); + fVar7 = fVar6 * cM_scos(i_this->frameCounter * (2300 + TREG_S(2)) + i * (5000 + TREG_S(3))); } - cMtx_YrotS(*calc_mtx, (s16)a_this->current.angle.y); + cMtx_YrotS(*calc_mtx, (s16)actor->current.angle.y); if (i_this->field_0x6e0 != 0) { cMtx_XrotM(*calc_mtx, (s16)pow_xa_chance[i - 1]); } else { @@ -559,13 +598,13 @@ static void kuki_control1(e_gb_class* i_this) { fVar2 = (pcVar1->z - (pcVar1 - 1)->z) + spc0.z + fVar7; } else { fVar6 = (20.0f + TREG_F(8)) * wav_d[i - 1]; - fVar3 = fVar6 * cM_ssin(i_this->field_0x698 * (1100 + TREG_S(0)) + i * (7000 + TREG_S(1))); - fVar7 = fVar6 * cM_scos(i_this->field_0x698 * (1500 + TREG_S(2)) + i * (5000 + TREG_S(3))); + fVar3 = fVar6 * cM_ssin(i_this->frameCounter * (1100 + TREG_S(0)) + i * (7000 + TREG_S(1))); + fVar7 = fVar6 * cM_scos(i_this->frameCounter * (1500 + TREG_S(2)) + i * (5000 + TREG_S(3))); fVar4 = fVar3 + (pcVar1->x - (pcVar1 - 1)->x); fVar8 = pcVar1->y - 5.0f; - if (fVar8 < (i_this->mObjAcch.GetGroundH() + 5.0f + YREG_F(18))) { - fVar8 = i_this->mObjAcch.GetGroundH() + 5.0f + YREG_F(18); + if (fVar8 < (i_this->objAcch.GetGroundH() + 5.0f + YREG_F(18))) { + fVar8 = i_this->objAcch.GetGroundH() + 5.0f + YREG_F(18); } fVar5 = fVar8 - (pcVar1 - 1)->y; @@ -582,7 +621,7 @@ static void kuki_control1(e_gb_class* i_this) { } static void kuki_control2(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; cXyz sp58, sp64; int i; @@ -590,7 +629,7 @@ static void kuki_control2(e_gb_class* i_this) { s16 sVar2; cXyz* pcVar1 = &i_this->field_0x6e4[17]; csXyz* pcVar2 = &i_this->field_0x7bc[17]; - *pcVar1 = a_this->current.pos; + *pcVar1 = actor->current.pos; sp58.x = 0.0f; sp58.y = 0.0f; sp58.z = i_this->field_0x93c; @@ -617,22 +656,25 @@ static void kuki_control2(e_gb_class* i_this) { } static void kuki_control3(e_gb_class* i_this) { + fopEn_enemy_c* actor = &i_this->actor; cXyz sp40; sp40 = i_this->field_0x6e4[0] - i_this->field_0x6d4; cXyz* pcVar1 = i_this->field_0x6e4; - for (int i = 0; i < 18; i++) { - *pcVar1 -= sp40 * ((18 - i) / 17.0f); - pcVar1++; + for (int i = 0; i < 18; i++, pcVar1++) { + f32 fVar1 = ((18 - i) / 17.0f); + *pcVar1 -= sp40 * fVar1; } i_this->field_0x964 = sp40.abs(); } static void* s_b_sub(void* i_actor, void* i_data) { - if (fopAc_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) && !((dBomb_c*)i_actor)->checkStateExplode()) { + i_data; + + if (fopAcM_IsActor(i_actor) && dBomb_c::checkBombActor((fopAc_ac_c*)i_actor) && !((dBomb_c*)i_actor)->checkStateExplode()) { cXyz sp28 = ((fopAc_ac_c*)i_actor)->current.pos - ((fopAc_ac_c*)i_data)->home.pos; - if (fabsf(sp28.y) < 110.0f && JMAFastSqrt(sp28.x * sp28.x + sp28.z * sp28.z) < 150.0f) { + if (fabsf(sp28.y) < NREG_F(6) + 110.0f && JMAFastSqrt(sp28.x * sp28.x + sp28.z * sp28.z) < NREG_F(7) + 150.0f) { fopAcM_delete(((fopAc_ac_c*)i_actor)); return i_actor; } @@ -641,170 +683,178 @@ static void* s_b_sub(void* i_actor, void* i_data) { } static void damage_check(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; + fopAc_ac_c* player = dComIfGp_getPlayer(0); - i_this->mStts.Move(); - if (i_this->field_0x6ce == 0) { - if (i_this->mHeadSph.ChkAtShieldHit()) { - i_this->field_0x6ce = 6; - i_this->mAtInfo.mpCollider = i_this->mHeadSph.GetAtHitObj(); - def_se_set(&i_this->mSound, i_this->mAtInfo.mpCollider, 0x2D, NULL); + i_this->stts.Move(); + if (i_this->invulnerabilityTimer == 0) { + if (i_this->headSph.ChkAtShieldHit()) { + i_this->invulnerabilityTimer = 6; + i_this->atInfo.mpCollider = i_this->headSph.GetAtHitObj(); + def_se_set(&i_this->sound, i_this->atInfo.mpCollider, 0x2D, NULL); dComIfGp_getVibration().StartShock(6, 31, cXyz(0.0f, 1.0f, 0.0f)); - } else if (i_this->mHeadSph.ChkTgHit() != 0) { - i_this->field_0x6ce = 6; - i_this->mAtInfo.mpCollider = i_this->mHeadSph.GetTgHitObj(); - cc_at_check(a_this, &i_this->mAtInfo); - if (i_this->mAtInfo.mHitType == HIT_TYPE_STUN) { - i_this->field_0x69a = 1; - i_this->field_0x69c = 5; - i_this->field_0x948 = 5000; - i_this->field_0x952 = 3000; - i_this->field_0x94c = 3000.0f; + } else if (i_this->headSph.ChkTgHit() != 0) { + i_this->invulnerabilityTimer = 6; + i_this->atInfo.mpCollider = i_this->headSph.GetTgHitObj(); + cc_at_check(actor, &i_this->atInfo); + if (i_this->atInfo.mHitType == HIT_TYPE_STUN) { + i_this->headAction = HEAD_ACTION_ATTACK_1; + i_this->mode = 5; + i_this->field_0x948 = VREG_S(8) + 5000; + i_this->xRot = VREG_S(4) + 3000; + i_this->field_0x94c = VREG_F(5) + 3000.0f; - head_anm_init(i_this, 17, 2.0f, 2, 1.0f); - i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_NODAMAGE, -1); - i_this->field_0x6c4[0] = 30; + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_WAIT_e, 2.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->sound.startCreatureVoice(Z2SE_EN_GB_V_NODAMAGE, -1); + i_this->timer[0] = 30; } else { - i_this->field_0x69a = 3; - i_this->field_0x69c = 0; + i_this->headAction = HEAD_ACTION_DAMAGE; + i_this->mode = 0; - head_anm_init(i_this, 11, 2.0f, 0, 1.0f); - if (a_this->health <= 0) { - i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_DIE, -1); + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_DAMAGE_A_e, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + if (actor->health <= 0) { + i_this->sound.startCreatureVoice(Z2SE_EN_GB_V_DIE, -1); } else { - i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_DAMAGE, -1); + i_this->sound.startCreatureVoice(Z2SE_EN_GB_V_DAMAGE, -1); } } + + OS_REPORT("E_gb AI.POW %d\n", i_this->atInfo.mAttackPower); } } } static void action(e_gb_class* i_this) { - fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->actor; + fopEn_enemy_c* actor = (fopEn_enemy_c*)&i_this->actor; + fopAc_ac_c* player = dComIfGp_getPlayer(0); + cXyz work; + cXyz new_speed; + // FAKEMATCH??? + #if VERSION == VERSION_SHIELD_DEBUG + work = player->current.pos - actor->current.pos; + #else + work = dComIfGp_getPlayer(0)->current.pos - actor->current.pos; + #endif + work.y += 100.0f; - cXyz sp34; - cXyz sp40; - sp34 = dComIfGp_getPlayer(0)->current.pos - a_this->current.pos; - sp34.y += 100.0f; - - i_this->field_0x6b8 = (s16)cM_atan2s(sp34.x, sp34.z); - i_this->field_0x6ba = -cM_atan2s(sp34.y, JMAFastSqrt(sp34.x * sp34.x + sp34.z * sp34.z)); - i_this->field_0x6bc = fopAcM_searchPlayerDistance(a_this); + i_this->angleYTarget = (s16)cM_atan2s(work.x, work.z); + i_this->angleXTarget = -cM_atan2s(work.y, JMAFastSqrt(work.x * work.x + work.z * work.z)); + i_this->distToPlayer = fopAcM_searchPlayerDistance(actor); damage_check(i_this); s8 bVar1 = 0; s8 sVar1 = 0; s8 bVar2 = 1; - sp34 = a_this->current.pos - a_this->home.pos; - cMtx_YrotS(*calc_mtx, cM_atan2s(sp34.x, sp34.z)); - sp34.x = 0.0f; - sp34.y = KREG_F(0) + 30.0f; - sp34.z = KREG_F(1) + 150.0f; - MtxPosition(&sp34, &i_this->field_0x6d4); - i_this->field_0x6d4 += a_this->home.pos; + work = actor->current.pos - actor->home.pos; + cMtx_YrotS(*calc_mtx, cM_atan2s(work.x, work.z)); + work.x = 0.0f; + work.y = KREG_F(0) + 30.0f; + work.z = KREG_F(1) + 150.0f; + MtxPosition(&work, &i_this->field_0x6d4); + i_this->field_0x6d4 += actor->home.pos; i_this->field_0x6e0 = 0; - a_this->field_0x566 = 0; - s8 bVar3 = 1; + actor->field_0x566 = 0; + s8 link_search = 1; - switch (i_this->field_0x69a) { - case 0: + switch (i_this->headAction) { + case HEAD_ACTION_WAIT: e_gb_wait(i_this); bVar1 = 1; - a_this->field_0x566 = 1; + actor->field_0x566 = 1; break; - case 1: + case HEAD_ACTION_ATTACK_1: e_gb_attack_1(i_this); bVar1 = 1; sVar1 = 1; - a_this->field_0x566 = 1; + actor->field_0x566 = 1; break; - case 2: + case HEAD_ACTION_ATTACK_2: e_gb_attack_2(i_this); bVar1 = 1; sVar1 = 2; bVar2 = 0; - a_this->field_0x566 = 1; + actor->field_0x566 = 1; break; - case 3: + case HEAD_ACTION_DAMAGE: e_gb_damage(i_this); - a_this->field_0x566 = 1; + actor->field_0x566 = 1; bVar1 = 1; - bVar3 = 0; + link_search = 0; break; - case 5: + case HEAD_ACTION_END: e_gb_end(i_this); bVar1 = 1; - a_this->field_0x566 = 1; - bVar3 = 0; + actor->field_0x566 = 1; + link_search = 0; break; - case 10: + case HEAD_ACTION_START: e_gb_start(i_this); bVar2 = 0; i_this->field_0x6e0 = 1; - a_this->field_0x566 = 1; - bVar3 = 0; + actor->field_0x566 = 1; + link_search = 0; } - if (bVar3 != 0) { - i_this->mSound.setLinkSearch(true); + if (link_search != 0) { + i_this->sound.setLinkSearch(true); } else { - i_this->mSound.setLinkSearch(false); + i_this->sound.setLinkSearch(false); } if (sVar1 == 1) { - cMtx_YrotS(*calc_mtx, a_this->current.angle.y); - cMtx_XrotM(*calc_mtx, a_this->current.angle.x); - sp34.x = 0.0f; - sp34.y = 0.0f; - sp34.z = a_this->speedF; - MtxPosition(&sp34, &a_this->speed); - a_this->current.pos += a_this->speed; + cMtx_YrotS(*calc_mtx, actor->current.angle.y); + cMtx_XrotM(*calc_mtx, actor->current.angle.x); + work.x = 0.0f; + work.y = 0.0f; + work.z = actor->speedF; + MtxPosition(&work, &actor->speed); + actor->current.pos += actor->speed; } else if (sVar1 == 2) { - cMtx_YrotS(*calc_mtx, a_this->current.angle.y); - sp34.x = 0.0f; - sp34.y = 0.0f; - sp34.z = a_this->speedF; + cMtx_YrotS(*calc_mtx, actor->current.angle.y); + work.x = 0.0f; + work.y = 0.0f; + work.z = actor->speedF; - MtxPosition(&sp34, &sp40); - a_this->speed.x = sp40.x; - a_this->speed.z = sp40.z; - a_this->current.pos += a_this->speed; - a_this->speed.y -= JREG_F(12) + 10.0f; + MtxPosition(&work, &new_speed); + actor->speed.x = new_speed.x; + actor->speed.z = new_speed.z; + actor->current.pos += actor->speed; + actor->speed.y -= JREG_F(12) + 10.0f; } if (bVar2 != 0) { f32 fVar1; - if (i_this->field_0x69a != 5) { + if (i_this->headAction != HEAD_ACTION_END) { fVar1 = ZREG_F(3) + 150.0f; } else { fVar1 = 60.0f; } - i_this->mObjAcch.CrrPos(dComIfG_Bgsp()); - if (a_this->current.pos.y < fVar1 + i_this->mObjAcch.GetGroundH()) { - a_this->current.pos.y = fVar1 + i_this->mObjAcch.GetGroundH(); + i_this->objAcch.CrrPos(dComIfG_Bgsp()); + if (actor->current.pos.y < fVar1 + i_this->objAcch.GetGroundH()) { + actor->current.pos.y = fVar1 + i_this->objAcch.GetGroundH(); } } if (bVar1 != 0) { - fopAcM_OnStatus(a_this, 0); - a_this->attention_info.flags = fopAc_AttnFlag_BATTLE_e; + fopAcM_OnStatus(actor, 0); + actor->attention_info.flags = fopAc_AttnFlag_BATTLE_e; } else { - fopAcM_OffStatus(a_this, 0); - a_this->attention_info.flags = 0; + fopAcM_OffStatus(actor, 0); + actor->attention_info.flags = 0; } - sp34 = a_this->current.pos - i_this->field_0x6d4; - i_this->field_0x93c = i_this->field_0x940 * (sp34.abs() * (BREG_F(0) + 0.1f)); + work = actor->current.pos - i_this->field_0x6d4; + i_this->field_0x93c = i_this->field_0x940 * (work.abs() * (BREG_F(0) + 0.1f)); - if (i_this->field_0x93c > (35.0f + BREG_F(1)) * l_HIO.field_0x8) { - i_this->field_0x93c = (35.0f + BREG_F(1)) * l_HIO.field_0x8; + if (i_this->field_0x93c > (35.0f + BREG_F(1)) * l_HIO.face_size) { + i_this->field_0x93c = (35.0f + BREG_F(1)) * l_HIO.face_size; } cLib_addCalc2(&i_this->field_0x940, 1.0f, 1.0f, 0.01f); @@ -815,57 +865,61 @@ static void action(e_gb_class* i_this) { if (i_this->field_0x94c > 0.1f) { if (i_this->field_0x948 != 0) { - i_this->field_0x950 += i_this->field_0x948; - cLib_addCalcAngleS2(&i_this->field_0x952, 0, 1, VREG_S(3) + 0x96); + i_this->yRot += i_this->field_0x948; + cLib_addCalcAngleS2(&i_this->xRot, 0, 1, VREG_S(3) + 0x96); } else { - i_this->field_0x952 = i_this->field_0x94c * cM_scos((s16)i_this->field_0x94a); + i_this->xRot = i_this->field_0x94c * cM_scos((s16)i_this->field_0x94a); } i_this->field_0x94a += (s16)(10000 + VREG_S(2)); cLib_addCalc0(&i_this->field_0x94c, 1.0f, VREG_F(2) + 150.0f); } else { - i_this->field_0x952 = 0; + i_this->xRot = 0; } - cXyz sp4c(2.0f, 2.0f, 2.0f); - setMidnaBindEffect(a_this, &i_this->mSound, &a_this->eyePos, &sp4c); + cXyz eff_size(2.0f, 2.0f, 2.0f); + setMidnaBindEffect(actor, &i_this->sound, &actor->eyePos, &eff_size); } static void e_gf_wait(e_gb_class* i_this) { - switch (i_this->field_0x6a0) { + fopEn_enemy_c* actor = (fopEn_enemy_c*)&i_this->actor; + cXyz work; + + switch (i_this->flowerMode) { case 0: - i_this->field_0x6a0 = 1; + i_this->flowerMode = 1; break; case 1: default: - return; + break; } } static void e_gf_chance(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; - cXyz sp38; - BOOL bVar2 = i_this->mpModelMorf2->isStop(); + fopEn_enemy_c* actor = &i_this->actor; + cXyz work; + f32 frame = i_this->flowerAnmP->getFrame(); s8 bVar1 = 0; - switch (i_this->field_0x6a0) { + switch (i_this->flowerMode) { case 0: - if (i_this->field_0x6c4[0] == 30) { - i_this->mDemoMode = 10; + if (i_this->timer[0] == 30) { + i_this->demoMode = 10; } - if (i_this->field_0x6c4[0] == 0) { - body_anm_init(i_this, 24, 5.0f, 0, 1.0f); - mDoAud_seStart(Z2SE_EN_GF_OPEN, &a_this->home.pos, 0, 0); - i_this->field_0x6a0 = 1; + if (i_this->timer[0] == 0) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_OPEN_e, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_OPEN, &actor->home.pos, 0, 0); + i_this->flowerMode = 1; } break; case 1: - if (i_this->mpModelMorf2->isStop()) { - body_anm_init(i_this, 25, 2.0f, 2, 1.0f); - i_this->field_0x6a0 = 2; + bVar1 = 1; + if (i_this->flowerAnmP->isStop()) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_WAIT_e, 2.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->flowerMode = 2; } // fallthrough case 2: @@ -873,384 +927,388 @@ static void e_gf_chance(e_gb_class* i_this) { } if (bVar1 && fpcM_Search(s_b_sub, i_this) != NULL) { - i_this->field_0x69e = 2; - i_this->field_0x6a0 = 0; + i_this->flowerAction = FLOWER_ACTION_EATBOMB; + i_this->flowerMode = 0; } } static void e_gf_eatbomb(e_gb_class* i_this) { static u16 eno[5] = { - 0x82E8, - 0x82E9, - 0x82EA, - 0x82EB, - 0x82EC, + dPa_RM(ID_ZM_S_GF_BOMBDAMAGE00), + dPa_RM(ID_ZM_S_GF_BOMBDAMAGE01), + dPa_RM(ID_ZM_S_GF_BOMBDAMAGE02), + dPa_RM(ID_ZM_S_GF_BOMBDAMAGE03), + dPa_RM(ID_ZM_S_GF_BOMBDAMAGE04), }; - fopEn_enemy_c* a_this = &i_this->actor; - cXyz sp28; + fopEn_enemy_c* actor = &i_this->actor; + cXyz work; - switch (i_this->field_0x6a0) { + switch (i_this->flowerMode) { case 0: - body_anm_init(i_this, 23, 3.0f, 0, 1.0f); - mDoAud_seStart(Z2SE_EN_GF_EAT, &a_this->home.pos, 0, 0); - i_this->field_0x6a0 = 1; + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_EAT_e, 3.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_EAT, &actor->home.pos, 0, 0); + i_this->flowerMode = 1; // fallthrough case 1: - if (i_this->mpModelMorf2->isStop()) { - body_anm_init(i_this, 20, 2.0f, 0, 1.0f); - mDoAud_seStart(Z2SE_EN_GF_BURST, &a_this->home.pos, 0, 0); - i_this->field_0x6a0 = 2; + if (i_this->flowerAnmP->isStop()) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_BURST_e, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_BURST, &actor->home.pos, 0, 0); + i_this->flowerMode = 2; } break; case 2: - if (i_this->mpModelMorf2->isStop()) { - i_this->field_0x69e = 10; - i_this->field_0x6a0 = 0; - i_this->mBrkAnm->setPlaySpeed(1.0f); + if (i_this->flowerAnmP->isStop()) { + i_this->flowerAction = FLOWER_ACTION_END; + i_this->flowerMode = 0; + i_this->brkAnmP->setPlaySpeed(1.0f); } break; } - if (i_this->field_0x68c == 20) { + if (i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_BURST_e) { for (int i = 0; i < 5; i++) { i_this->field_0xe7c[i] = dComIfGp_particle_set(i_this->field_0xe7c[i], eno[i], - &a_this->home.pos, NULL, NULL); + &actor->home.pos, NULL, NULL); JPABaseEmitter* emitter = dComIfGp_particle_getEmitter(i_this->field_0xe7c[i]); if (emitter != NULL) { - emitter->setGlobalRTMatrix(i_this->mpModelMorf2->getModel()->getAnmMtx(5)); + emitter->setGlobalRTMatrix(i_this->flowerAnmP->getModel()->getAnmMtx(GF_JNT_FLOWER_5_e)); } } } } static void e_gf_end(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; - cXyz sp30; + fopEn_enemy_c* actor = &i_this->actor; + cXyz work; - switch (i_this->field_0x6a0) { + switch (i_this->flowerMode) { case 0: - body_anm_init(i_this, 22, 5.0f, 0, 1.0f); - mDoAud_seStart(Z2SE_EN_GF_DIE, &a_this->home.pos, 0, 0); - i_this->field_0x6a0 = 1; + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_DIE_e, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_DIE, &actor->home.pos, 0, 0); + i_this->flowerMode = 1; // fallthrough case 1: - if (i_this->mpModelMorf2->isStop()) { - i_this->field_0x6a0 = 3; - i_this->field_0x6c4[0] = 40; + if (i_this->flowerAnmP->isStop()) { + i_this->flowerMode = 3; + i_this->timer[0] = 40; } break; case 3: - if (i_this->field_0x6c4[0] == 20) { - dComIfGs_onSwitch((fopAcM_GetParam(a_this) & 0xFF0000) >> 16, fopAcM_GetRoomNo(a_this)); + if (i_this->timer[0] == 20) { + int sw_bit = (fopAcM_GetParam(actor) & 0xFF0000) >> 16; + dComIfGs_onSwitch(sw_bit, fopAcM_GetRoomNo(actor)); } - if (i_this->field_0x6c4[0] == 0) { + if (i_this->timer[0] == 0) { daKey_c* key_p = (daKey_c*)fopAcM_SearchByName(PROC_Obj_SmallKey); - cXyz sp3c(a_this->home.pos); + cXyz pos(actor->home.pos); + pos.z += YREG_F(12); if (key_p != NULL) { - key_p->setPos(sp3c); - key_p->startMove(60.0f, 4.0f); + key_p->setPos(pos); + key_p->startMove(BREG_F(7) + 60.0f, BREG_F(8) + 4.0f); } - fopAcM_createDisappear(a_this, &sp3c, 20, 0, a_this->field_0x564); - fopAcM_delete(a_this); + fopAcM_createDisappear(actor, &pos, 20, 0, actor->field_0x564); + fopAcM_delete(actor); } } } static void damage_check2(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; + fopEn_enemy_c* actor = &i_this->actor; + fopAc_ac_c* player = dComIfGp_getPlayer(0); - if (i_this->field_0x6d0 == 0) { - if (i_this->mBodyCyl.ChkTgHit() != 0) { - i_this->field_0x6d0 = 6; - i_this->mAtInfo.mpCollider = i_this->mBodyCyl.GetTgHitObj(); - def_se_set(&i_this->mSound, i_this->mAtInfo.mpCollider, 0x2D, NULL); + if (i_this->flowerInvulnerabilityTimer == 0) { + if (i_this->bodyCyl.ChkTgHit() != 0) { + i_this->flowerInvulnerabilityTimer = 6; + i_this->atInfo.mpCollider = i_this->bodyCyl.GetTgHitObj(); + def_se_set(&i_this->sound, i_this->atInfo.mpCollider, 0x2D, NULL); - if (i_this->field_0x68c == 26 || i_this->field_0x68c == 19) { - body_anm_init(i_this, 19, 2.0f, 0, 1.0f); - mDoAud_seStart(Z2SE_EN_GF_BOUND_CLOSE, &a_this->home.pos, 0, 0); - } else if (i_this->field_0x68c == 24 || i_this->field_0x68c == 25 || i_this->field_0x68c == 18) { - body_anm_init(i_this, 18, 2.0f, 0, 1.0f); - mDoAud_seStart(Z2SE_EN_GF_BOUND, &a_this->home.pos, 0, 0); + if (i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_WAIT_CLOSE_e || i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_BOUND_CLOSE_e) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_BOUND_CLOSE_e, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_BOUND_CLOSE, &actor->home.pos, 0, 0); + } else if (i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_OPEN_e || i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_WAIT_e || i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_BOUND_e) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_BOUND_e, 2.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_BOUND, &actor->home.pos, 0, 0); } } - if (i_this->field_0x68c == 18 && i_this->mpModelMorf2->isStop()) { - body_anm_init(i_this, 25, 10.0f, 2, 1.0f); - i_this->mpModelMorf2->setFrame(47.0f); - } else if (i_this->field_0x68c == 19 && i_this->mpModelMorf2->isStop()) { - body_anm_init(i_this, 26, 10.0f, 2, 1.0f); + if (i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_BOUND_e && i_this->flowerAnmP->isStop()) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_WAIT_e, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->flowerAnmP->setFrame(47.0f); + } else if (i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_BOUND_CLOSE_e && i_this->flowerAnmP->isStop()) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_WAIT_CLOSE_e, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); } } } static void action2(e_gb_class* i_this) { + fopEn_enemy_c* actor = &i_this->actor; + damage_check2(i_this); - s8 bVar1 = 1; + s8 boss_room_wait_flag = 1; - switch (i_this->field_0x69e) { - case 0: + switch (i_this->flowerAction) { + case FLOWER_ACTION_WAIT: e_gf_wait(i_this); break; - case 3: + case FLOWER_ACTION_CHANCE: e_gf_chance(i_this); - bVar1 = 0; + boss_room_wait_flag = 0; break; - case 2: + case FLOWER_ACTION_EATBOMB: e_gf_eatbomb(i_this); - bVar1 = 0; + boss_room_wait_flag = 0; break; - case 10: + case FLOWER_ACTION_END: e_gf_end(i_this); - bVar1 = 0; + boss_room_wait_flag = 0; } - if (bVar1 != 0) { + if (boss_room_wait_flag != 0) { daPy_getPlayerActorClass()->onBossRoomWait(); } - if (i_this->field_0x955 != 0) { + if (i_this->keyStatus != 0) { daKey_c* key_p = (daKey_c*)fopAcM_SearchByName(PROC_Obj_SmallKey); if (key_p != NULL) { - key_p->field_0x978 = i_this->field_0x674; - mDoAud_seStartLevel(Z2SE_OBJ_KEY_TWINKLE, &key_p->field_0x978, 0, - dComIfGp_getReverb(fopAcM_GetRoomNo(key_p))); - key_p->field_0x984 = 1; + key_p->seStartTwinkle(Z2SE_OBJ_KEY_TWINKLE, &i_this->keyPos); } } } static void cam_3d_morf(e_gb_class* i_this, f32 param_2) { - cLib_addCalc2(&i_this->mDemoCamCenter.x, i_this->field_0xeb8.x, param_2, - i_this->field_0xed0.x * i_this->field_0xee4); - cLib_addCalc2(&i_this->mDemoCamCenter.y, i_this->field_0xeb8.y, param_2, - i_this->field_0xed0.y * i_this->field_0xee4); - cLib_addCalc2(&i_this->mDemoCamCenter.z, i_this->field_0xeb8.z, param_2, - i_this->field_0xed0.z * i_this->field_0xee4); + cLib_addCalc2(&i_this->demoCamCenter.x, i_this->demoCamCenterTarget.x, param_2, + i_this->demoCamCenterTargetDist.x * i_this->demoCamStepScale); + cLib_addCalc2(&i_this->demoCamCenter.y, i_this->demoCamCenterTarget.y, param_2, + i_this->demoCamCenterTargetDist.y * i_this->demoCamStepScale); + cLib_addCalc2(&i_this->demoCamCenter.z, i_this->demoCamCenterTarget.z, param_2, + i_this->demoCamCenterTargetDist.z * i_this->demoCamStepScale); - cLib_addCalc2(&i_this->mDemoCamEye.x, i_this->field_0xeac.x, param_2, - i_this->field_0xec4.x * i_this->field_0xee4); - cLib_addCalc2(&i_this->mDemoCamEye.y, i_this->field_0xeac.y, param_2, - i_this->field_0xec4.y * i_this->field_0xee4); - cLib_addCalc2(&i_this->mDemoCamEye.z, i_this->field_0xeac.z, param_2, - i_this->field_0xec4.z * i_this->field_0xee4); + cLib_addCalc2(&i_this->demoCamEye.x, i_this->demoCamEyeTarget.x, param_2, + i_this->demoCamEyeTargetDist.x * i_this->demoCamStepScale); + cLib_addCalc2(&i_this->demoCamEye.y, i_this->demoCamEyeTarget.y, param_2, + i_this->demoCamEyeTargetDist.y * i_this->demoCamStepScale); + cLib_addCalc2(&i_this->demoCamEye.z, i_this->demoCamEyeTarget.z, param_2, + i_this->demoCamEyeTargetDist.z * i_this->demoCamStepScale); } static void demo_camera(e_gb_class* i_this) { - fopEn_enemy_c* a_this = (fopEn_enemy_c*)&i_this->actor; + fopEn_enemy_c* actor = (fopEn_enemy_c*)&i_this->actor; camera_class* camera = dComIfGp_getCamera(dComIfGp_getPlayerCameraID(0)); + camera_class* camera2 = dComIfGp_getCamera(0); fopAc_ac_c* player = (fopAc_ac_c*)dComIfGp_getPlayer(0); - cXyz sp1c, sp28, sp34, sp40; + cXyz work, pos, sp34, sp40; int swBit; - switch (i_this->mDemoMode) { + switch (i_this->demoMode) { case 1: - if (!a_this->eventInfo.checkCommandDemoAccrpt()) { - fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0); - a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + if (!actor->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(actor, 2, 0xFFFF, 0); + actor->eventInfo.onCondition(dEvtCnd_CANDEMO_e); return; } camera->mCamera.Stop(); - i_this->mDemoMode = 2; - i_this->mDemoCamFovy = 55.0f; - i_this->field_0xe92 = 0; + i_this->demoMode = 2; + i_this->demoCamFovy = 55.0f; + i_this->demoCounter = 0; camera->mCamera.SetTrimSize(3); daPy_getPlayerActorClass()->changeOriginalDemo(); - i_this->field_0x674.set(-5750.0f, 4410.0f, 10684.0f); - i_this->field_0x684 = 0x5000; - i_this->mDemoCamCenter.set(-5689.0f, 4747.0f, 15000.0f); - i_this->mDemoCamEye.set(-5700.0f, 4740.0f, 14644.0f); - i_this->field_0xeb8.set(-5689.0f, 4740.0f, 14643.0f); - i_this->field_0xeac.set(-5723.0f, 4733.0f, 14293.0f); - i_this->field_0xec4.x = fabsf(i_this->field_0xeac.x - i_this->mDemoCamEye.x); - i_this->field_0xec4.y = fabsf(i_this->field_0xeac.y - i_this->mDemoCamEye.y); - i_this->field_0xec4.z = fabsf(i_this->field_0xeac.z - i_this->mDemoCamEye.z); - i_this->field_0xed0.x = fabsf(i_this->field_0xeb8.x - i_this->mDemoCamCenter.x); - i_this->field_0xed0.y = fabsf(i_this->field_0xeb8.y - i_this->mDemoCamCenter.y); - i_this->field_0xed0.z = fabsf(i_this->field_0xeb8.z - i_this->mDemoCamCenter.z); - i_this->field_0xee4 = 0.0; + i_this->keyPos.set(-5750.0f, 4410.0f, 10684.0f); + i_this->keyYRot = KREG_S(4) + 0x5000; + i_this->demoCamCenter.set(-5689.0f, 4747.0f, 15000.0f); + i_this->demoCamEye.set(-5700.0f, 4740.0f, 14644.0f); + i_this->demoCamCenterTarget.set(-5689.0f, 4740.0f, 14643.0f); + i_this->demoCamEyeTarget.set(-5723.0f, 4733.0f, 14293.0f); + i_this->demoCamEyeTargetDist.x = fabsf(i_this->demoCamEyeTarget.x - i_this->demoCamEye.x); + i_this->demoCamEyeTargetDist.y = fabsf(i_this->demoCamEyeTarget.y - i_this->demoCamEye.y); + i_this->demoCamEyeTargetDist.z = fabsf(i_this->demoCamEyeTarget.z - i_this->demoCamEye.z); + i_this->demoCamCenterTargetDist.x = fabsf(i_this->demoCamCenterTarget.x - i_this->demoCamCenter.x); + i_this->demoCamCenterTargetDist.y = fabsf(i_this->demoCamCenterTarget.y - i_this->demoCamCenter.y); + i_this->demoCamCenterTargetDist.z = fabsf(i_this->demoCamCenterTarget.z - i_this->demoCamCenter.z); + i_this->demoCamStepScale = 0.0; Z2GetAudioMgr()->setBattleBgmOff(true); - dComIfGp_getEvent().startCheckSkipEdge(a_this); - swBit = (fopAcM_GetParam(a_this) & 0xFF00) >> 8; - dComIfGs_onSwitch(swBit, fopAcM_GetRoomNo(a_this)); + dComIfGp_getEvent().startCheckSkipEdge(actor); + swBit = (fopAcM_GetParam(actor) & 0xFF00) >> 8; + dComIfGs_onSwitch(swBit, fopAcM_GetRoomNo(actor)); // fallthrough case 2: - sp28.set(-5700.0f, 4350.0f, 9670.0f); - daPy_getPlayerActorClass()->setPlayerPosAndAngle(&sp28, 0, 0); - if (i_this->field_0xe92 > 50) { + pos.set(-5700.0f, 4350.0f, 9670.0f); + daPy_getPlayerActorClass()->setPlayerPosAndAngle(&pos, 0, 0); + if (i_this->demoCounter > 50) { cam_3d_morf(i_this, 0.1f); - cLib_addCalc2(&i_this->field_0xee4, 0.02f, 1.0f, 0.0005f); + cLib_addCalc2(&i_this->demoCamStepScale, 0.02f, 1.0f, 0.0005f); } - if (i_this->field_0xe92 != 170) break; - i_this->mDemoCamCenter.set(-5690.0f, 4432.0f, 9610.0f); - i_this->mDemoCamEye.set(-5709.0f, 4445.0f, 9961.0f); - i_this->field_0xeb8.set(-5741.0f, 4432.0f, 10530.0f); - i_this->field_0xeac.set(-5760.0f, 4496.0f, 10896.0f); - i_this->field_0xec4.x = fabsf(i_this->field_0xeac.x - i_this->mDemoCamEye.x); - i_this->field_0xec4.y = fabsf(i_this->field_0xeac.y - i_this->mDemoCamEye.y); - i_this->field_0xec4.z = fabsf(i_this->field_0xeac.z - i_this->mDemoCamEye.z); - i_this->field_0xed0.x = fabsf(i_this->field_0xeb8.x - i_this->mDemoCamCenter.x); - i_this->field_0xed0.y = fabsf(i_this->field_0xeb8.y - i_this->mDemoCamCenter.y); - i_this->field_0xed0.z = fabsf(i_this->field_0xeb8.z - i_this->mDemoCamCenter.z); - i_this->field_0xee4 = 0.0f; - i_this->mDemoMode = 3; - i_this->mDemoCamFovy = 55.0f; - i_this->field_0xe92 = 0; + if (i_this->demoCounter != 170) break; + i_this->demoCamCenter.set(-5690.0f, 4432.0f, 9610.0f); + i_this->demoCamEye.set(-5709.0f, 4445.0f, 9961.0f); + i_this->demoCamCenterTarget.set(-5741.0f, 4432.0f, 10530.0f); + i_this->demoCamEyeTarget.set(-5760.0f, 4496.0f, 10896.0f); + i_this->demoCamEyeTargetDist.x = fabsf(i_this->demoCamEyeTarget.x - i_this->demoCamEye.x); + i_this->demoCamEyeTargetDist.y = fabsf(i_this->demoCamEyeTarget.y - i_this->demoCamEye.y); + i_this->demoCamEyeTargetDist.z = fabsf(i_this->demoCamEyeTarget.z - i_this->demoCamEye.z); + i_this->demoCamCenterTargetDist.x = fabsf(i_this->demoCamCenterTarget.x - i_this->demoCamCenter.x); + i_this->demoCamCenterTargetDist.y = fabsf(i_this->demoCamCenterTarget.y - i_this->demoCamCenter.y); + i_this->demoCamCenterTargetDist.z = fabsf(i_this->demoCamCenterTarget.z - i_this->demoCamCenter.z); + i_this->demoCamStepScale = 0.0f; + i_this->demoMode = 3; + i_this->demoCamFovy = 55.0f; + i_this->demoCounter = 0; // fallthrough case 3: - if (i_this->field_0xe92 > 30) { + if (i_this->demoCounter > 30) { cam_3d_morf(i_this, 0.1f); - cLib_addCalc2(&i_this->field_0xee4, 0.02f, 1.0f, 0.0005f); + cLib_addCalc2(&i_this->demoCamStepScale, 0.02f, 1.0f, 0.0005f); } - if (i_this->field_0xe92 == 130) { - i_this->field_0x69c++; + if (i_this->demoCounter == 130) { + i_this->mode++; } - if (i_this->field_0xe92 == 135) { - i_this->mSound.startCreatureSound(Z2SE_EN_GB_SWINGHEAD, 0, -1); + if (i_this->demoCounter == 135) { + i_this->sound.startCreatureSound(Z2SE_EN_GB_SWINGHEAD, 0, -1); } - if (i_this->field_0xe92 == 143) { + if (i_this->demoCounter == 143) { i_this->field_0x670 = 2; } - if (i_this->field_0xe92 == 162) { + if (i_this->demoCounter == 162) { daPy_getPlayerActorClass()->changeDemoMode(23, 1, 2, 0); } - if (i_this->field_0xe92 != 190) break; - i_this->field_0x69c++; - i_this->mDemoMode = 4; - i_this->field_0xe92 = 0; - body_anm_init(i_this, 24, 5.0f, 0, 1.0f); - mDoAud_seStart(Z2SE_EN_GF_OPEN, &a_this->home.pos, 0, 0); - i_this->mDemoCamCenter.set(-5706.0f, 4526.0f, 11379.0f); - i_this->mDemoCamEye.set(-5687.0f, 4505.0f, 11008.0f); - i_this->field_0xeb8.set(-5624.0f, 4439.0f, 9818.0f); - i_this->field_0xeac.set(-5604.0f, 4418.0f, 9447.0f); - i_this->field_0xec4.x = fabsf(i_this->field_0xeac.x - i_this->mDemoCamEye.x); - i_this->field_0xec4.y = fabsf(i_this->field_0xeac.y - i_this->mDemoCamEye.y); - i_this->field_0xec4.z = fabsf(i_this->field_0xeac.z - i_this->mDemoCamEye.z); - i_this->field_0xed0.x = fabsf(i_this->field_0xeb8.x - i_this->mDemoCamCenter.x); - i_this->field_0xed0.y = fabsf(i_this->field_0xeb8.y - i_this->mDemoCamCenter.y); - i_this->field_0xed0.z = fabsf(i_this->field_0xeb8.z - i_this->mDemoCamCenter.z); - i_this->field_0xee4 = 0.0f; - i_this->mDemoCamCenter.y = 4584.0f; + if (i_this->demoCounter != 190) break; + i_this->mode++; + i_this->demoMode = 4; + i_this->demoCounter = 0; + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_OPEN_e, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_OPEN, &actor->home.pos, 0, 0); + i_this->demoCamCenter.set(-5706.0f, 4526.0f, 11379.0f); + i_this->demoCamEye.set(-5687.0f, 4505.0f, 11008.0f); + i_this->demoCamCenterTarget.set(-5624.0f, 4439.0f, 9818.0f); + i_this->demoCamEyeTarget.set(-5604.0f, 4418.0f, 9447.0f); + i_this->demoCamEyeTargetDist.x = fabsf(i_this->demoCamEyeTarget.x - i_this->demoCamEye.x); + i_this->demoCamEyeTargetDist.y = fabsf(i_this->demoCamEyeTarget.y - i_this->demoCamEye.y); + i_this->demoCamEyeTargetDist.z = fabsf(i_this->demoCamEyeTarget.z - i_this->demoCamEye.z); + i_this->demoCamCenterTargetDist.x = fabsf(i_this->demoCamCenterTarget.x - i_this->demoCamCenter.x); + i_this->demoCamCenterTargetDist.y = fabsf(i_this->demoCamCenterTarget.y - i_this->demoCamCenter.y); + i_this->demoCamCenterTargetDist.z = fabsf(i_this->demoCamCenterTarget.z - i_this->demoCamCenter.z); + i_this->demoCamStepScale = 0.0f; + i_this->demoCamCenter.y = 4584.0f; // fallthrough case 4: - if (i_this->field_0xe92 == 48) { - head_anm_init(i_this, 14, 5.0f, 0, 1.0f); - i_this->mSound.startCreatureSound(Z2SE_EN_GB_DROPKEY, 0, -1); + if (i_this->demoCounter == (s16)(NREG_S(5) + 48)) { + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_DEMO_DROPKEY_e, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + i_this->sound.startCreatureSound(Z2SE_EN_GB_DROPKEY, 0, -1); } - if (i_this->field_0xe92 == 54) { - head_anm_init(i_this, 14, 5.0f, 0, 1.0f); - i_this->field_0x674 = a_this->home.pos; - i_this->field_0x674.y += 400.0f; + if (i_this->demoCounter == (s16)(NREG_S(6) + 54)) { + head_anm_init(i_this, dRes_ID_E_GB_BCK_GB_DEMO_DROPKEY_e, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + i_this->keyPos = actor->home.pos; + i_this->keyPos.y += NREG_F(9) + 400.0f; i_this->field_0x670 = 1; } - if (i_this->field_0xe92 == 68) { - body_anm_init(i_this, 21, 5.0f, 0, 1.0f); - mDoAud_seStart(Z2SE_EN_GF_CLOSE, &a_this->home.pos, 0, 0); - i_this->field_0x955 = 0; + if (i_this->demoCounter == (s16)(NREG_S(7) + 68)) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_CLOSE_e, 5.0f, J3DFrameCtrl::EMode_NONE, 1.0f); + mDoAud_seStart(Z2SE_EN_GF_CLOSE, &actor->home.pos, 0, 0); + i_this->keyStatus = 0; } - if (i_this->field_0xe92 > 150) { + if (i_this->demoCounter > 150) { cam_3d_morf(i_this, 0.2f); - cLib_addCalc2(&i_this->field_0xee4, 0.04f, 1.0f, 0.002f); - } else if (i_this->field_0xe92 >= 80) { - cLib_addCalc2(&i_this->mDemoCamCenter.y, 4526.0f, 0.05f, 1.0f); + cLib_addCalc2(&i_this->demoCamStepScale, 0.04f, 1.0f, 0.002f); + } else if (i_this->demoCounter >= 80) { + cLib_addCalc2(&i_this->demoCamCenter.y, 4526.0f, 0.05f, 1.0f); } - if (i_this->field_0x68c == 21 && i_this->mpModelMorf2->isStop()) { - body_anm_init(i_this, 26, 10.0f, 2, 1.0f); + if (i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_CLOSE_e && i_this->flowerAnmP->isStop()) { + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_WAIT_CLOSE_e, 10.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); } - if (i_this->field_0xe92 == 220) { - i_this->mDemoMode = 100; - i_this->field_0x69a = 0; - i_this->field_0x69c = 0; - i_this->field_0x69e = 0; - i_this->field_0x6a0 = 0; + if (i_this->demoCounter == 220) { + i_this->demoMode = 100; + i_this->headAction = HEAD_ACTION_WAIT; + i_this->mode = 0; + i_this->flowerAction = FLOWER_ACTION_WAIT; + i_this->flowerMode = 0; Z2GetAudioMgr()->setBattleBgmOff(false); } break; case 10: - if (!a_this->eventInfo.checkCommandDemoAccrpt()) { - fopAcM_orderPotentialEvent(a_this, 2, 0xFFFF, 0); - a_this->eventInfo.onCondition(dEvtCnd_CANDEMO_e); + if (!actor->eventInfo.checkCommandDemoAccrpt()) { + fopAcM_orderPotentialEvent(actor, 2, 0xFFFF, 0); + actor->eventInfo.onCondition(dEvtCnd_CANDEMO_e); return; } camera->mCamera.Stop(); - i_this->mDemoMode = 11; - i_this->mDemoCamFovy = 55.0; - i_this->field_0xe92 = 0; + i_this->demoMode = 11; + i_this->demoCamFovy = 55.0; + i_this->demoCounter = 0; camera->mCamera.SetTrimSize(3); // fallthrough case 11: - i_this->mDemoCamCenter = a_this->home.pos; - i_this->mDemoCamCenter.y += 100.0f; - i_this->mDemoCamEye = a_this->home.pos; - i_this->mDemoCamEye.y += 300.0f; - i_this->mDemoCamEye.z += -600.0f; + i_this->demoCamCenter = actor->home.pos; + i_this->demoCamCenter.y += YREG_F(12) + 100.0f; + i_this->demoCamEye = actor->home.pos; + i_this->demoCamEye.x += YREG_F(13); + i_this->demoCamEye.y += YREG_F(14) + 300.0f; + i_this->demoCamEye.z += YREG_F(15) + -600.0f; - if (i_this->field_0xe92 == 100) { - i_this->mDemoMode = 100; + if (i_this->demoCounter == 100) { + i_this->demoMode = 100; } break; case 100: - camera->mCamera.Reset(i_this->mDemoCamCenter, i_this->mDemoCamEye); + camera->mCamera.Reset(i_this->demoCamCenter, i_this->demoCamEye); camera->mCamera.Start(); camera->mCamera.SetTrimSize(0); dComIfGp_event_reset(); daPy_getPlayerActorClass()->cancelOriginalDemo(); - i_this->mDemoMode = 0; + i_this->demoMode = 0; break; case 0: break; } - if (i_this->mDemoMode != 0) { - camera->mCamera.Set(i_this->mDemoCamCenter, i_this->mDemoCamEye, i_this->mDemoCamFovy, 0); - i_this->field_0xe92++; + if (i_this->demoMode != 0) { + camera->mCamera.Set(i_this->demoCamCenter, i_this->demoCamEye, i_this->demoCamFovy, 0); + i_this->demoCounter++; - if (i_this->mDemoMode < 10) { + if (i_this->demoMode < 10) { dComIfGp_getEvent().setSkipProc(i_this, dEv_defaultSkipProc, 0); if (dComIfGp_getEvent().checkSkipEdge()) { - i_this->mDemoMode = 100; + i_this->demoMode = 100; cMtx_YrotS(*calc_mtx, player->shape_angle.y); - sp1c.x = 0.0; - sp1c.y = 100.0f; - sp1c.z = -250.0f; - MtxPosition(&sp1c, &i_this->mDemoCamEye); - i_this->mDemoCamEye += player->current.pos; - i_this->mDemoCamCenter = player->current.pos; - i_this->mDemoCamCenter.y += 120.0f; - i_this->field_0x69a = 0; - i_this->field_0x69c = 0; - i_this->field_0x69e = 0; - i_this->field_0x6a0 = 0; - body_anm_init(i_this, 26, 1.0f, 2, 1.0f); - i_this->field_0x66c = NULL; - i_this->field_0x686 = 0; - i_this->field_0x955 = 0; + work.x = 0.0; + work.y = JREG_F(1) + 100.0f; + work.z = JREG_F(2) + -250.0f; + MtxPosition(&work, &i_this->demoCamEye); + i_this->demoCamEye += player->current.pos; + i_this->demoCamCenter = player->current.pos; + i_this->demoCamCenter.y += 120.0f; + i_this->headAction = HEAD_ACTION_WAIT; + i_this->mode = 0; + i_this->flowerAction = FLOWER_ACTION_WAIT; + i_this->flowerMode = 0; + body_anm_init(i_this, dRes_ID_E_GB_BCK_GF_WAIT_CLOSE_e, 1.0f, J3DFrameCtrl::EMode_LOOP, 1.0f); + i_this->keyModelP = NULL; + i_this->keyXRot = 0; + i_this->keyStatus = 0; Z2GetAudioMgr()->setBattleBgmOff(false); } } @@ -1259,163 +1317,167 @@ static void demo_camera(e_gb_class* i_this) { static int daE_GB_Execute(e_gb_class* i_this) { static u16 key_eno[2] = { - 0x827A, - 0x827B, + dPa_RM(ID_ZM_S_KEYLIGHT00), + dPa_RM(ID_ZM_S_KEYLIGHT01), }; - fopEn_enemy_c* a_this = &i_this->actor; - cXyz sp50, sp5c; + fopEn_enemy_c* actor = &i_this->actor; + cXyz work, pos; - i_this->field_0x698++; + i_this->frameCounter++; for (int i = 0; i < 5; i = i + 1) { - if (i_this->field_0x6c4[i] != 0) { - i_this->field_0x6c4[i]--; + if (i_this->timer[i] != 0) { + i_this->timer[i]--; } } - if (i_this->field_0x6ce != 0) { - i_this->field_0x6ce--; + if (i_this->invulnerabilityTimer != 0) { + i_this->invulnerabilityTimer--; } - if (i_this->field_0x6d0 != 0) { - i_this->field_0x6d0--; + if (i_this->flowerInvulnerabilityTimer != 0) { + i_this->flowerInvulnerabilityTimer--; } action(i_this); + if (i_this->field_0x668 == 0) { - i_this->mSound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this))); + i_this->sound.framework(0, dComIfGp_getReverb(fopAcM_GetRoomNo(actor))); } action2(i_this); - mDoMtx_stack_c::transS(a_this->current.pos.x,a_this->current.pos.y, a_this->current.pos.z); - mDoMtx_stack_c::YrotM(i_this->field_0x950); - mDoMtx_stack_c::XrotM(i_this->field_0x952); - mDoMtx_stack_c::YrotM(-i_this->field_0x950); - mDoMtx_stack_c::YrotM(a_this->shape_angle.y); - mDoMtx_stack_c::XrotM(a_this->shape_angle.x); - mDoMtx_stack_c::ZrotM(a_this->shape_angle.z); - mDoMtx_stack_c::scaleM(l_HIO.field_0x8, l_HIO.field_0x8, l_HIO.field_0x8); + mDoMtx_stack_c::transS(actor->current.pos.x,actor->current.pos.y, actor->current.pos.z); + mDoMtx_stack_c::YrotM(i_this->yRot); + mDoMtx_stack_c::XrotM(i_this->xRot); + mDoMtx_stack_c::YrotM(-i_this->yRot); + mDoMtx_stack_c::YrotM(actor->shape_angle.y); + mDoMtx_stack_c::XrotM(actor->shape_angle.x); + mDoMtx_stack_c::ZrotM(actor->shape_angle.z); + f32 scale = l_HIO.face_size; + mDoMtx_stack_c::scaleM(scale, scale, scale); - J3DModel* model = i_this->mpModelMorf1->getModel(); + J3DModel* model = i_this->anmP->getModel(); model->setBaseTRMtx(mDoMtx_stack_c::get()); - i_this->mpModelMorf1->play(NULL, dComIfGp_getReverb(fopAcM_GetRoomNo(a_this)), 0); - i_this->mpModelMorf1->modelCalc(); - MTXCopy(model->getAnmMtx(3), *calc_mtx); + i_this->anmP->play(NULL, dComIfGp_getReverb(fopAcM_GetRoomNo(actor)), 0); + i_this->anmP->modelCalc(); + MTXCopy(model->getAnmMtx((int)BREG_S(0) + GB_JNT_MOUTH_1_e), *calc_mtx); - if (i_this->field_0x968 != 0) { - sp50.set(20.0f, 0.0f, -50.0f); - MtxPosition(&sp50, &a_this->eyePos); - a_this->attention_info.position = a_this->eyePos; - a_this->attention_info.position.y += 50.0f; + if (i_this->status != 0) { + work.set(BREG_F(3) + 20.0f, BREG_F(4), BREG_F(5) + -50.0f); + MtxPosition(&work, &actor->eyePos); + actor->attention_info.position = actor->eyePos; + actor->attention_info.position.y += BREG_F(6) + 50.0f; JPABaseEmitter* baseEmitter; - if (i_this->field_0x688 == 16) { - i_this->field_0xe6c = dComIfGp_particle_set(i_this->field_0xe6c, 0x82E7, &a_this->current.pos, NULL, NULL); + if (i_this->headAnmNo == dRes_ID_E_GB_BCK_GB_REVIVE_e) { + i_this->field_0xe6c = dComIfGp_particle_set(i_this->field_0xe6c, dPa_RM(ID_ZM_S_GB_REVIVESLAVER00), &actor->current.pos, NULL, NULL); baseEmitter = dComIfGp_particle_getEmitter(i_this->field_0xe6c); if (baseEmitter != NULL) { - baseEmitter->setGlobalSRTMatrix(model->getAnmMtx(3)); + baseEmitter->setGlobalSRTMatrix(model->getAnmMtx(GB_JNT_MOUTH_1_e)); } - if (i_this->mpModelMorf1->checkFrame(8.0f)) { - i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_NODAMAGE, -1); + if (i_this->anmP->checkFrame(8.0f)) { + i_this->sound.startCreatureVoice(Z2SE_EN_GB_V_NODAMAGE, -1); } } - if (i_this->field_0x688 == 11) { - i_this->field_0xe70 = dComIfGp_particle_set(i_this->field_0xe70, 0x82E6, &a_this->current.pos, NULL, NULL); + if (i_this->headAnmNo == dRes_ID_E_GB_BCK_GB_DAMAGE_A_e) { + i_this->field_0xe70 = dComIfGp_particle_set(i_this->field_0xe70, dPa_RM(ID_ZM_S_GB_DAMAGESLAVER00), &actor->current.pos, NULL, NULL); baseEmitter = dComIfGp_particle_getEmitter(i_this->field_0xe70); if (baseEmitter != NULL) { - baseEmitter->setGlobalSRTMatrix(model->getAnmMtx(3)); + baseEmitter->setGlobalSRTMatrix(model->getAnmMtx(GB_JNT_MOUTH_1_e)); } } - if (i_this->field_0x688 == 17 && i_this->mpModelMorf1->checkFrame(1.0f)) { - i_this->mSound.startCreatureVoice(Z2SE_EN_GB_V_WAIT, -1); + if (i_this->headAnmNo == dRes_ID_E_GB_BCK_GB_WAIT_e && i_this->anmP->checkFrame(1.0f)) { + i_this->sound.startCreatureVoice(Z2SE_EN_GB_V_WAIT, -1); } } - sp50.set(50.0f, 0.0f, 0.0f); - MtxPosition(&sp50, &sp5c); + work.set(BREG_F(6) + 50.0f, BREG_F(7), BREG_F(8)); + MtxPosition(&work, &pos); - if (i_this->field_0x6ce != 0) { - sp5c.x += 10000.0f; + if (i_this->invulnerabilityTimer != 0) { + pos.x += 10000.0f; } - i_this->mHeadSph.SetC(sp5c); - if (i_this->field_0x6bc > 500.0f && daPy_py_c::checkBoomerangChargeTime() != 0) { - i_this->mHeadSph.SetR(l_HIO.field_0x8 * 160.0f); + i_this->headSph.SetC(pos); + if (i_this->distToPlayer > 500.0f && daPy_getPlayerActorClass()->checkBoomerangChargeTime() != 0) { + i_this->headSph.SetR((BREG_F(9) + 160.0f) * l_HIO.face_size); } else { - i_this->mHeadSph.SetR(l_HIO.field_0x8 * 80.0f); + i_this->headSph.SetR((BREG_F(9) + 80.0f) * l_HIO.face_size); } - dComIfG_Ccsp()->Set(&i_this->mHeadSph); - if (i_this->field_0xc20 != 0) { - i_this->mHeadSph.OnAtSetBit(); - i_this->field_0xc20 = 0; + dComIfG_Ccsp()->Set(&i_this->headSph); + if (i_this->atSetBitFlag != 0) { + i_this->headSph.OnAtSetBit(); + i_this->atSetBitFlag = 0; } else { - i_this->mHeadSph.OffAtSetBit(); + i_this->headSph.OffAtSetBit(); } - mDoMtx_stack_c::transS(a_this->home.pos.x, a_this->home.pos.y, a_this->home.pos.z); - mDoMtx_stack_c::YrotM(a_this->home.angle.y); - mDoMtx_stack_c::scaleM(l_HIO.field_0xc, l_HIO.field_0xc, l_HIO.field_0xc); - model = i_this->mpModelMorf2->getModel(); + mDoMtx_stack_c::transS(actor->home.pos.x, actor->home.pos.y, actor->home.pos.z); + mDoMtx_stack_c::YrotM(actor->home.angle.y); + scale = l_HIO.flower_size; + mDoMtx_stack_c::scaleM(scale, scale, scale); + model = i_this->flowerAnmP->getModel(); model->setBaseTRMtx(mDoMtx_stack_c::get()); - i_this->mpModelMorf2->play(NULL, 0, 0); - i_this->mBrkAnm->play(); - i_this->mpModelMorf2->modelCalc(); + i_this->flowerAnmP->play(NULL, 0, 0); + i_this->brkAnmP->play(); + i_this->flowerAnmP->modelCalc(); - if ((i_this->field_0x68c == 25 || i_this->field_0x68c == 26) && i_this->mpModelMorf2->checkFrame(1.0f)) { - mDoAud_seStart(Z2SE_EN_GF_WAIT, &a_this->home.pos, 0, 0); + if ((i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_WAIT_e || i_this->bodyAnmNo == dRes_ID_E_GB_BCK_GF_WAIT_CLOSE_e) && i_this->flowerAnmP->checkFrame(1.0f)) { + mDoAud_seStart(Z2SE_EN_GF_WAIT, &actor->home.pos, 0, 0); } - if (i_this->field_0x968 == 0) { - a_this->eyePos = a_this->home.pos; - a_this->eyePos.y += 150.0f; - a_this->attention_info.position = a_this->eyePos; - a_this->attention_info.position.y += 50.0f; + if (i_this->status == 0) { + actor->eyePos = actor->home.pos; + actor->eyePos.y += BREG_F(17) + 150.0f; + actor->attention_info.position = actor->eyePos; + actor->attention_info.position.y += BREG_F(18) + 50.0f; } - i_this->mBodyCyl.SetC(a_this->home.pos); - i_this->mBodyCyl.SetR(l_HIO.field_0xc * 170.0f); - i_this->mBodyCyl.SetH(l_HIO.field_0xc * 100.0f); - dComIfG_Ccsp()->Set(&i_this->mBodyCyl); + i_this->bodyCyl.SetC(actor->home.pos); + i_this->bodyCyl.SetR((JREG_F(9) + 170.0f) * l_HIO.flower_size); + i_this->bodyCyl.SetH((JREG_F(10) + 100.0f) * l_HIO.flower_size); + dComIfG_Ccsp()->Set(&i_this->bodyCyl); - if (i_this->field_0x66c != NULL) { + if (i_this->keyModelP != NULL) { if (i_this->field_0x670 == 1) { - i_this->field_0x674.y += i_this->field_0x680; + i_this->keyPos.y += i_this->field_0x680; i_this->field_0x680 -= 3.0f; - i_this->field_0x686 += -0xC00; + i_this->keyXRot += (s16)-0xC00; - if (i_this->field_0x674.y < a_this->home.pos.y) { - i_this->field_0x686 = 0; - i_this->field_0x66c = NULL; + if (i_this->keyPos.y < actor->home.pos.y) { + i_this->keyXRot = 0; + i_this->keyModelP = NULL; } } else if (i_this->field_0x670 == 2) { - MTXCopy(model->getAnmMtx(5), *calc_mtx); - sp50.set(-30.0f, 0.0f, 0.0f); - MtxPosition(&sp50, &i_this->field_0x674); + MTXCopy(model->getAnmMtx(GF_JNT_FLOWER_5_e), *calc_mtx); + work.set(BREG_F(13) + -30.0f, BREG_F(14), BREG_F(15)); + MtxPosition(&work, &i_this->keyPos); } - if (i_this->field_0x66c != NULL) { - mDoMtx_stack_c::transS(i_this->field_0x674.x, i_this->field_0x674.y, i_this->field_0x674.z); - mDoMtx_stack_c::YrotM(i_this->field_0x684); - mDoMtx_stack_c::XrotM(i_this->field_0x686); + if (i_this->keyModelP != NULL) { + mDoMtx_stack_c::transS(i_this->keyPos.x, i_this->keyPos.y, i_this->keyPos.z); + mDoMtx_stack_c::YrotM(i_this->keyYRot); + mDoMtx_stack_c::XrotM(i_this->keyXRot); mDoMtx_stack_c::XrotM(0x4000); - f32 fVar1 = 1.5f; - mDoMtx_stack_c::scaleM(fVar1, fVar1, fVar1); - i_this->field_0x66c->setBaseTRMtx(mDoMtx_stack_c::get()); - sp5c = i_this->field_0x674; + scale = BREG_F(16) + 1.5f; + mDoMtx_stack_c::scaleM(scale, scale, scale); + i_this->keyModelP->setBaseTRMtx(mDoMtx_stack_c::get()); + pos = i_this->keyPos; + pos.y += YREG_F(13); for (int i = 0; i < 2; i++) { - i_this->field_0xe62[i] = dComIfGp_particle_set(i_this->field_0xe62[i], key_eno[i], &sp5c, NULL, NULL); + i_this->field_0xe62[i] = dComIfGp_particle_set(i_this->field_0xe62[i], key_eno[i], &pos, NULL, NULL); } } } - f32 fVar2 = i_this->field_0x964 * 0.001f; + f32 fVar2 = i_this->field_0x964 * (YREG_F(4) + 0.001f); for (int i = 0; i < 3; i++) { if (i_this->field_0x92c[i] == 0) { @@ -1423,14 +1485,14 @@ static int daE_GB_Execute(e_gb_class* i_this) { i_this->field_0x938 = 0; i_this->field_0x92c[i] = 2; i_this->field_0x932[i] = 17; - i_this->field_0x928 = 2.0f; + i_this->field_0x928 = YREG_F(8) + 2.0f; i_this->field_0x924 = 4000; break; } } else { if (i_this->field_0x92c[i] == 1) { if (i_this->field_0x935[i] == 0) { - i_this->field_0x935[i] = 1; + i_this->field_0x935[i] = YREG_S(5) + 1; i_this->field_0x900[i_this->field_0x932[i]] = 1; i_this->field_0x932[i]++; if (i_this->field_0x932[i] >= 18) { @@ -1438,7 +1500,7 @@ static int daE_GB_Execute(e_gb_class* i_this) { } } } else if (i_this->field_0x935[i] == 0) { - i_this->field_0x935[i] = 1; + i_this->field_0x935[i] = YREG_S(5) + 1; i_this->field_0x900[i_this->field_0x932[i]] = 1; i_this->field_0x932[i]--; if (i_this->field_0x932[i] < 0) { @@ -1453,7 +1515,7 @@ static int daE_GB_Execute(e_gb_class* i_this) { } for (int i = 0; i < 18; i = i + 1) { - if (i_this->field_0x828[i] != NULL) { + if (i_this->stemModelP[i] != NULL) { if (i_this->field_0x900[i] != 0) { i_this->field_0x900[i] +=i_this->field_0x924; @@ -1461,15 +1523,15 @@ static int daE_GB_Execute(e_gb_class* i_this) { i_this->field_0x900[i] = 0; } - i_this->field_0x8b8[i] = i_this->field_0x928 * cM_ssin(i_this->field_0x900[i]) + 1.0f; + i_this->stemModelSize[i] = i_this->field_0x928 * cM_ssin((s16)i_this->field_0x900[i]) + 1.0f; } MtxTrans(i_this->field_0x6e4[i].x, i_this->field_0x6e4[i].y, i_this->field_0x6e4[i].z, 0); cMtx_XrotM(*calc_mtx, i_this->field_0x7bc[i].x); cMtx_YrotM(*calc_mtx, i_this->field_0x7bc[i].y + 0x8000); - MtxScale(l_HIO.field_0x8 * i_this->field_0x8b8[i], l_HIO.field_0x8 * i_this->field_0x8b8[i], l_HIO.field_0x8 + fVar2, 1); - MtxTrans(0.0f, 0.0f, 0.0f, 1); - i_this->field_0x828[i]->setBaseTRMtx(*calc_mtx); + MtxScale(l_HIO.face_size * i_this->stemModelSize[i], l_HIO.face_size * i_this->stemModelSize[i], l_HIO.face_size + fVar2, 1); + MtxTrans(0.0f, 0.0f, XREG_F(4), 1); + i_this->stemModelP[i]->setBaseTRMtx(*calc_mtx); } } @@ -1482,66 +1544,71 @@ static int daE_GB_IsDelete(e_gb_class* i_this) { } static int daE_GB_Delete(e_gb_class* i_this) { - fopEn_enemy_c* a_this = &i_this->actor; - dComIfG_resDelete(&i_this->mPhase, "E_gb"); - if (i_this->field_0xef5 != 0) { + "Delete -> E_GB(id=%d)\n"; + + fopEn_enemy_c* actor = &i_this->actor; + fpc_ProcID id = fopAcM_GetID(i_this); + + dComIfG_resDelete(&i_this->phase, "E_gb"); + if (i_this->hioInit != 0) { data_806C7928 = 0; + mDoHIO_DELETE_CHILD(l_HIO.no); } - if (a_this->heap != NULL && i_this->field_0x668 == 0) { - i_this->mSound.stopAnime(); + if (actor->heap != NULL && i_this->field_0x668 == 0) { + i_this->sound.stopAnime(); } return 1; } -static int useHeapInit(fopAc_ac_c* a_this) { - e_gb_class* i_this = (e_gb_class*)a_this; +static int useHeapInit(fopAc_ac_c* actor) { + e_gb_class* i_this = (e_gb_class*)actor; - i_this->mpModelMorf1 = new mDoExt_McaMorf(static_cast(dComIfG_getObjectRes("E_gb", 29)), NULL, NULL, - static_cast(dComIfG_getObjectRes("E_gb", 17)), 2, 1.0f, - 0, -1, 1, NULL, 0x80000, 0x11000084); - if (i_this->mpModelMorf1 == NULL || i_this->mpModelMorf1->getModel() == NULL) { + i_this->anmP = new mDoExt_McaMorf(static_cast(dComIfG_getObjectRes("E_gb", dRes_INDEX_E_GB_BMD_GB_e)), NULL, NULL, + static_cast(dComIfG_getObjectRes("E_gb", dRes_INDEX_E_GB_BCK_GB_WAIT_e)), 2, 1.0f, + 0, -1, 1, NULL, J3DMdlFlag_DifferedDLBuffer, 0x11000084); + if (i_this->anmP == NULL || i_this->anmP->getModel() == NULL) { return 0; } - i_this->mpModelMorf2 = new mDoExt_McaMorf(static_cast(dComIfG_getObjectRes("E_gb", 31)), NULL, NULL, - static_cast(dComIfG_getObjectRes("E_gb", 26)), 2, 1.0f, - 0, -1, 1, NULL, 0x80000, 0x11000084); - i_this->field_0x68c = 26; - if (i_this->mpModelMorf2 == NULL || i_this->mpModelMorf2->getModel() == NULL) { + i_this->flowerAnmP = new mDoExt_McaMorf(static_cast(dComIfG_getObjectRes("E_gb", dRes_INDEX_E_GB_BMD_GF_e)), NULL, NULL, + static_cast(dComIfG_getObjectRes("E_gb", dRes_INDEX_E_GB_BCK_GF_WAIT_CLOSE_e)), 2, 1.0f, + 0, -1, 1, NULL, J3DMdlFlag_DifferedDLBuffer, 0x11000084); + i_this->bodyAnmNo = dRes_ID_E_GB_BCK_GF_WAIT_CLOSE_e; + if (i_this->flowerAnmP == NULL || i_this->flowerAnmP->getModel() == NULL) { return 0; } - i_this->mBrkAnm = new mDoExt_brkAnm(); - if (i_this->mBrkAnm == NULL) { + i_this->brkAnmP = new mDoExt_brkAnm(); + if (i_this->brkAnmP == NULL) { return 0; } - if (i_this->mBrkAnm->init(i_this->mpModelMorf2->getModel()->getModelData(), - static_cast(dComIfG_getObjectRes("E_gb", 35)), + if (i_this->brkAnmP->init(i_this->flowerAnmP->getModel()->getModelData(), + static_cast(dComIfG_getObjectRes("E_gb", dRes_INDEX_E_GB_BRK_GF_DIE_e)), 1, 0, 1.0f, 0, -1) == 0) { return 0; } - i_this->mBrkAnm->setPlaySpeed(0.0f); + i_this->brkAnmP->setPlaySpeed(0.0f); - J3DModelData* modelData = static_cast(dComIfG_getObjectRes("E_gb", 32)); + J3DModelData* modelData = static_cast(dComIfG_getObjectRes("E_gb", dRes_INDEX_E_GB_BMD_GS_e)); JUT_ASSERT(3378, modelData != NULL); for (int i = 0; i < 18; i++) { - i_this->field_0x828[i] = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); - if (i_this->field_0x828[i] == NULL) { + i_this->stemModelP[i] = mDoExt_J3DModel__create(modelData, J3DMdlFlag_DifferedDLBuffer, 0x11000084); + if (i_this->stemModelP[i] == NULL) { return 0; } - i_this->field_0x8b8[i] = 1.0f; + i_this->stemModelSize[i] = 1.0f; } if (strcmp(dComIfGp_getStartStageName(), "D_MN05") == 0) { - modelData = static_cast(dComIfG_getObjectRes("E_gb", 30)); + modelData = static_cast(dComIfG_getObjectRes("E_gb", dRes_INDEX_E_GB_BMD_GB_KEY_e)); JUT_ASSERT(3395, modelData != NULL); - i_this->field_0x66c = mDoExt_J3DModel__create(modelData, 0x80000, 0x11000084); - if (i_this->field_0x66c == NULL) { + i_this->keyModelP = mDoExt_J3DModel__create(modelData, J3DMdlFlag_DifferedDLBuffer, 0x11000084); + if (i_this->keyModelP == NULL) { return 0; } } @@ -1549,7 +1616,7 @@ static int useHeapInit(fopAc_ac_c* a_this) { return 1; } -static cPhs__Step daE_GB_Create(fopAc_ac_c* a_this) { +static cPhs__Step daE_GB_Create(fopAc_ac_c* actor) { static dCcD_SrcSph head_cc_sph_src = { { {0x0, {{AT_TYPE_CSTATUE_SWING, 0x2, 0xd}, {0xd8fbfdff, 0x3}, 0x75}}, // mObj @@ -1576,71 +1643,69 @@ static cPhs__Step daE_GB_Create(fopAc_ac_c* a_this) { } // mCyl }; - e_gb_class* i_this = (e_gb_class*)a_this; - fopAcM_ct(a_this, e_gb_class); + e_gb_class* i_this = (e_gb_class*)actor; + fopAcM_ct(&i_this->actor, e_gb_class); - cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&i_this->mPhase, "E_gb"); + cPhs__Step phase = (cPhs__Step)dComIfG_resLoad(&i_this->phase, "E_gb"); if (phase == cPhs_COMPLEATE_e) { - OS_REPORT("E_gb PARAM %x\n", fopAcM_GetParam(a_this)); - u8 swBit = fopAcM_GetParam(a_this) >> 16; - if (swBit != 0xFF) { - if (dComIfGs_isSwitch(swBit, fopAcM_GetRoomNo(a_this))) { + OS_REPORT("E_gb PARAM %x\n", fopAcM_GetParam(actor)); + u8 sw_bit = (fopAcM_GetParam(actor) & 0xFF0000) >> 16; + if (sw_bit != 0xFF) { + if (dComIfGs_isSwitch(sw_bit, fopAcM_GetRoomNo(actor))) { OS_REPORT("E_gb やられ後なので再セットしません\n"); return cPhs_ERROR_e; } } - i_this->field_0x5b4 = fopAcM_GetParam(a_this); - i_this->field_0x5b5 = fopAcM_GetParam(a_this) >> 8; - i_this->field_0x5b6 = fopAcM_GetParam(a_this) >> 16 & 15; - i_this->field_0x5b7 = fopAcM_GetParam(a_this) >> 20 & 15; + i_this->arg0 = fopAcM_GetParam(actor); + i_this->arg1 = (fopAcM_GetParam(actor) & 0xFF00) >> 8; + i_this->arg2 = (fopAcM_GetParam(actor) & 0xF0000) >> 16; + i_this->arg3 = (fopAcM_GetParam(actor) & 0xF00000) >> 20; OS_REPORT("E_gb //////////////E_GB SET 1 !!\n"); - if (!fopAcM_entrySolidHeap(a_this, useHeapInit, 0x4B000)) { + if (!fopAcM_entrySolidHeap(actor, useHeapInit, 0x4B000)) { OS_REPORT("//////////////E_GB SET NON !!\n"); return cPhs_ERROR_e; } OS_REPORT("//////////////E_GB SET 2 !!\n"); if (data_806C7928 == 0) { - i_this->field_0xef5 = 1; + i_this->hioInit = 1; data_806C7928 = 1; - l_HIO.field_0x4 = -1; + l_HIO.no = mDoHIO_CREATE_CHILD("デカババ", &l_HIO); } - a_this->attention_info.flags = fopAc_AttnFlag_BATTLE_e; - a_this->health = 90; - a_this->field_0x560 = 90; + actor->attention_info.flags = fopAc_AttnFlag_BATTLE_e; + actor->field_0x560 = actor->health = 90; - i_this->mStts.Init(253, 0, a_this); - i_this->mHeadSph.Set(head_cc_sph_src); - i_this->mHeadSph.SetStts(&i_this->mStts); - i_this->mBodyCyl.Set(body_cyl_src); - i_this->mBodyCyl.SetStts(&i_this->mStts); - i_this->mBodyCyl.OnTgNoHitMark(); + i_this->stts.Init(253, 0, actor); + i_this->headSph.Set(head_cc_sph_src); + i_this->headSph.SetStts(&i_this->stts); + i_this->bodyCyl.Set(body_cyl_src); + i_this->bodyCyl.SetStts(&i_this->stts); + i_this->bodyCyl.OnTgNoHitMark(); - i_this->mObjAcch.Set(fopAcM_GetPosition_p(a_this), fopAcM_GetOldPosition_p(a_this), a_this, 1, &i_this->mAcchCir, - fopAcM_GetSpeed_p(a_this), NULL, NULL); - i_this->mAcchCir.SetWall(150.0f, 150.0f); + i_this->objAcch.Set(fopAcM_GetPosition_p(actor), fopAcM_GetOldPosition_p(actor), actor, 1, &i_this->acchcir, + fopAcM_GetSpeed_p(actor), NULL, NULL); + i_this->acchcir.SetWall(150.0f, 150.0f); - i_this->mAtInfo.mpSound = &i_this->mSound; - i_this->mAtInfo.mPowerType = 8; + i_this->atInfo.mpSound = &i_this->sound; + i_this->atInfo.mPowerType = 8; - i_this->mSound.init(&a_this->current.pos, &a_this->eyePos, 3, 1); - i_this->mSound.setEnemyName("E_gb"); + i_this->sound.init(&actor->current.pos, &actor->eyePos, 3, 1); + i_this->sound.setEnemyName("E_gb"); - i_this->field_0x698 = cM_rndF(65535.0f); + i_this->frameCounter = cM_rndF(65535.0f); - u32 swBit2 = (fopAcM_GetParam(a_this) >> 8) & 0xff; - s16 roomNo = fopAcM_GetRoomNo(a_this); - if (roomNo == 7 && !dComIfGs_isSwitch(swBit2, roomNo)) { - i_this->field_0x69a = 10; + u32 sw_bit_2 = (fopAcM_GetParam(actor) & 0xFF00) >> 8; + if (fopAcM_GetRoomNo(actor) == 7 && !dComIfGs_isSwitch(sw_bit_2, fopAcM_GetRoomNo(actor))) { + i_this->headAction = HEAD_ACTION_START; } else { - i_this->field_0x69a = 0; + i_this->headAction = HEAD_ACTION_WAIT; } - i_this->field_0x968 = 1; - i_this->field_0x955 = 1; + i_this->status = 1; + i_this->keyStatus = 1; daE_GB_Execute(i_this); Z2GetAudioMgr()->muteSceneBgm(33, 0.0f); diff --git a/src/d/actor/d_a_player.cpp b/src/d/actor/d_a_player.cpp index 2f13d5978e..855ee03690 100644 --- a/src/d/actor/d_a_player.cpp +++ b/src/d/actor/d_a_player.cpp @@ -517,7 +517,7 @@ bool daPy_py_c::checkBoomerangCharge() { return daAlink_getAlinkActorClass()->checkBoomerangChargeEnd(); } -u8 daPy_py_c::checkBoomerangChargeTime() { +bool daPy_py_c::checkBoomerangChargeTime() { return 0; }