Files
tp/src/c/c_dylink.cpp
T
TakaRikka 2e1be6224f jdflyer's work
Co-Authored-By: jdflyer <jdflyer10@gmail.com>
2022-02-07 17:47:45 -08:00

1025 lines
31 KiB
C++

//
// Generated By: dol2asm
// Translation Unit: c/c_dylink
//
#include "c/c_dylink.h"
#include "DynamicLink.h"
#include "JSystem/JKernel/JKRArchive.h"
#include "JSystem/JKernel/JKRSolidHeap.h"
#include "MSL_C.PPCEABI.bare.H/MSL_Common/Src/string.h"
#include "d/com/d_com_inf_game.h"
#include "dol2asm.h"
#include "dolphin/types.h"
#include "m_Do/m_Do_ext.h"
//
// Forward References:
//
extern "C" static void cCc_Init__Fv();
extern "C" void cDyl_IsLinked__Fs();
extern "C" void cDyl_Unlink__Fs();
extern "C" void cDyl_LinkASync__Fs();
extern "C" static void cDyl_InitCallback__FPv();
extern "C" void cDyl_InitAsync__Fv();
extern "C" void cDyl_InitAsyncIsDone__Fv();
extern "C" s32 phase_01__7cDylPhsFPv();
extern "C" void phase_02__7cDylPhsFPs();
extern "C" bool phase_03__7cDylPhsFPv();
extern "C" void Link__7cDylPhsFP30request_of_phase_process_classs();
extern "C" void Unlink__7cDylPhsFP30request_of_phase_process_classs();
extern "C" bool getModuleName__24DynamicModuleControlBaseCFv();
extern "C" void __dt__20DynamicModuleControlFv();
extern "C" extern char const* const c_c_dylink__stringBase0;
//
// External References:
//
extern "C" void mDoExt_getArchiveHeap__Fv();
extern "C" void create__20mDoDvdThd_callback_cFPFPv_PvPv();
extern "C" void fopScnM_CreateReq__FssUsUl();
extern "C" void dComLbG_PhaseHandler__FP30request_of_phase_process_classPPFPv_iPv();
extern "C" void __dt__24DynamicModuleControlBaseFv();
extern "C" void link__24DynamicModuleControlBaseFv();
extern "C" void unlink__24DynamicModuleControlBaseFv();
extern "C" void load_async__24DynamicModuleControlBaseFv();
extern "C" void __ct__20DynamicModuleControlFPCc();
extern "C" void initialize__20DynamicModuleControlFv();
extern "C" void becomeCurrentHeap__7JKRHeapFv();
extern "C" void* __nw__FUl();
extern "C" void __dl__FPv();
extern "C" void create__12JKRSolidHeapFUlP7JKRHeapb();
extern "C" void adjustSize__12JKRSolidHeapFv();
extern "C" void getGlbResource__13JKRFileLoaderFPCc();
extern "C" void detachResource__13JKRFileLoaderFPvP13JKRFileLoader();
extern "C" void mount__12JKRFileCacheFPCcP7JKRHeapPCc();
extern "C" void OSSetStringTable(void*);
extern "C" void _savegpr_23();
extern "C" void _restgpr_23();
extern "C" extern void* __vt__20DynamicModuleControl[13];
//
// Declarations:
//
/* 80374640-80375DE8 -00001 17A8+00 1/1 0/0 0/0 .rodata DynamicNameTable */
static DynamicNameTableEntry const DynamicNameTable[757] = {
{0x014, "d_a_alldie"},
{0x016, "d_a_obj_swpush"},
{0x017, "d_a_obj_swpush2"},
{0x018, "d_a_obj_swpush5"},
{0x019, "d_a_tag_gstart"},
{0x01B, "d_a_obj_lv6elevta"},
{0x01C, "d_a_obj_so"},
{0x01D, "d_a_obj_movebox"},
{0x01E, "d_a_obj_swturn"},
{0x01F, "d_a_obj_lv6swturn"},
{0x020, "d_a_obj_sekizoa"},
{0x021, "d_a_obj_gra2"},
{0x022, "d_a_tag_gra"},
{0x023, "d_a_tag_yami"},
{0x024, "d_a_obj_ladder"},
{0x025, "d_a_obj_brakeeff"},
{0x026, "d_a_obj_fmobj"},
{0x027, "d_a_obj_lbox"},
{0x028, "d_a_obj_web0"},
{0x029, "d_a_obj_web1"},
{0x02A, "d_a_obj_cb"},
{0x02B, "d_a_obj_maki"},
{0x02C, "d_a_obj_brg"},
{0x02D, "d_a_obj_gb"},
{0x02E, "d_a_obj_gm"},
{0x02F, "d_a_obj_toby"},
{0x030, "d_a_obj_tp"},
{0x031, "d_a_obj_treesh"},
{0x032, "d_a_obj_zdoor"},
{0x033, "d_a_obj_pillar"},
{0x034, "d_a_obj_cdoor"},
{0x035, "d_a_obj_groundwater"},
{0x036, "d_a_obj_rotBridge"},
{0x037, "d_a_obj_magLift"},
{0x038, "d_a_obj_magLiftRot"},
{0x039, "d_a_obj_lv1Candle00"},
{0x03A, "d_a_obj_lv1Candle01"},
{0x03B, "d_a_obj_TvCdlst"},
{0x03C, "d_a_obj_hsTarget"},
{0x03D, "d_a_obj_heavySw"},
{0x03E, "d_a_obj_goGate"},
{0x03F, "d_a_obj_taFence"},
{0x040, "d_a_obj_saidan"},
{0x041, "d_a_obj_spinLift"},
{0x042, "d_a_obj_bmWindow"},
{0x043, "d_a_obj_rfHole"},
{0x044, "d_a_obj_waterPillar"},
{0x045, "d_a_obj_syRock"},
{0x046, "d_a_obj_bsGate"},
{0x047, "d_a_obj_amiShutter"},
{0x048, "d_a_obj_waterGate"},
{0x049, "d_a_obj_lv2Candle"},
{0x04A, "d_a_obj_togeTrap"},
{0x04B, "d_a_obj_rotTrap"},
{0x04C, "d_a_obj_sWallShutter"},
{0x04D, "d_a_obj_lv5IceWall"},
{0x04E, "d_a_obj_lv5SwIce"},
{0x04F, "d_a_obj_lv5FloorBoard"},
{0x050, "d_a_obj_Turara"},
{0x051, "d_a_obj_twGate"},
{0x052, "d_a_obj_digholl"},
{0x053, "d_a_obj_digplace"},
{0x054, "d_a_obj_testcube"},
{0x055, "d_a_obj_kshutter"},
{0x056, "d_a_npc_coach"},
{0x057, "d_a_npc_theB"},
{0x058, "d_a_coach_fire"},
{0x059, "d_a_coach_2D"},
{0x05A, "d_a_balloon_2D"},
{0x05B, "d_a_skip_2D"},
{0x05C, "d_a_obj_mvstair"},
{0x05D, "d_a_obj_cowdoor"},
{0x05E, "d_a_obj_swpropeller"},
{0x05F, "d_a_obj_bmshutter"},
{0x060, "d_a_npc_ks"},
{0x061, "d_a_obj_hfuta"},
{0x062, "d_a_obj_bkdoor"},
{0x063, "d_a_obj_cboard"},
{0x064, "d_a_obj_mgate"},
{0x065, "d_a_obj_ikada"},
{0x066, "d_a_obj_ice_l"},
{0x067, "d_a_obj_ice_s"},
{0x068, "d_a_obj_enemy_create"},
{0x069, "d_a_obj_bhbridge"},
{0x06A, "d_a_obj_kaisou"},
{0x06B, "d_a_obj_hhashi"},
{0x06C, "d_a_obj_bhashi"},
{0x06D, "d_a_obj_octhashi"},
{0x06E, "d_a_obj_thashi"},
{0x06F, "d_a_obj_crvgate"},
{0x070, "d_a_obj_crvfence"},
{0x071, "d_a_obj_crvhahen"},
{0x072, "d_a_obj_crvsteel"},
{0x073, "d_a_obj_crvlh_up"},
{0x074, "d_a_obj_crvlh_down"},
{0x075, "d_a_obj_riverrock"},
{0x076, "d_a_obj_dust"},
{0x077, "d_a_obj_ita"},
{0x078, "d_a_obj_window"},
{0x079, "d_a_obj_metalbox"},
{0x07A, "d_a_obj_bbox"},
{0x07B, "d_a_obj_msima"},
{0x07C, "d_a_obj_myogan"},
{0x07D, "d_a_b_zant_sima"},
{0x07E, "d_a_obj_cblock"},
{0x07F, "d_a_obj_cwall"},
{0x080, "d_a_obj_kgate"},
{0x081, "d_a_obj_rgate"},
{0x082, "d_a_obj_onsen"},
{0x083, "d_a_obj_chest"},
{0x084, "d_a_obj_bemos"},
{0x085, "d_a_obj_rope_bridge"},
{0x086, "d_a_obj_well_cover"},
{0x087, "d_a_obj_grave_stone"},
{0x088, "d_a_obj_zra_rock"},
{0x089, "d_a_obj_gra_rock"},
{0x08A, "d_a_obj_grz_rock"},
{0x08B, "d_a_obj_graWall"},
{0x08C, "d_a_obj_onsenFire"},
{0x08D, "d_a_obj_lv6bemos"},
{0x08E, "d_a_obj_lv6bemos2"},
{0x08F, "d_a_obj_barDesk"},
{0x090, "d_a_obj_digsnow"},
{0x091, "d_a_obj_Y_taihou"},
{0x092, "d_a_obj_dmelevator"},
{0x093, "d_a_obj_lv6TogeRoll"},
{0x094, "d_a_obj_lv6TogeTrap"},
{0x095, "d_a_obj_lv6Tenbin"},
{0x096, "d_a_obj_lv6SwGate"},
{0x097, "d_a_obj_lv6Lblock"},
{0x098, "d_a_obj_lv6ChangeGate"},
{0x099, "d_a_obj_lv6FurikoTrap"},
{0x09A, "d_a_obj_lv6SzGate"},
{0x09B, "d_a_obj_lv4EdShutter"},
{0x09C, "d_a_obj_lv4Gate"},
{0x09D, "d_a_obj_lv4PoGate"},
{0x09E, "d_a_obj_lv4SlideWall"},
{0x09F, "d_a_obj_lv4HsTarget"},
{0x0A0, "d_a_obj_lv7PropellerY"},
{0x0A1, "d_a_obj_lv7BsGate"},
{0x0A2, "d_a_obj_lv8OptiLift"},
{0x0A3, "d_a_obj_lv8KekkaiTrap"},
{0x0A4, "d_a_obj_lv8Lift"},
{0x0A5, "d_a_obj_lv8UdFloor"},
{0x0A6, "d_a_obj_lv9SwShutter"},
{0x0A7, "d_a_obj_tobyhouse"},
{0x0A8, "d_a_obj_poCandle"},
{0x0A9, "d_a_obj_lv4digsand"},
{0x0AA, "d_a_obj_fallobj"},
{0x0AB, "d_a_obj_smgdoor"},
{0x0AC, "d_a_obj_swLight"},
{0x0AD, "d_a_obj_avalanche"},
{0x0AE, "d_a_obj_mirror_screw"},
{0x0AF, "d_a_obj_mirror_sand"},
{0x0B0, "d_a_obj_mirror_table"},
{0x0B1, "d_a_obj_mirror_chain"},
{0x0B2, "d_a_obj_mirror_6pole"},
{0x0B3, "d_a_obj_swspinner"},
{0x0B4, "d_a_obj_thdoor"},
{0x0B5, "d_a_obj_lv7bridge"},
{0x0B6, "d_a_obj_zrTurara"},
{0x0B7, "d_a_obj_takaraDai"},
{0x0B8, "d_a_obj_table"},
{0x0B9, "d_a_obj_catdoor"},
{0x0BA, "d_a_obj_tgake"},
{0x0BB, "d_a_cstaF"},
{0x0BC, "d_a_obj_lv4RailWall"},
{0x0BD, "d_a_obj_lv4sand"},
{0x0BE, "d_a_obj_pdoor"},
{0x0BF, "d_a_door_push"},
{0x0C0, "d_a_obj_ganonwall2"},
{0x0C1, "d_a_obj_lv4bridge"},
{0x0C2, "d_a_obj_lv4floor"},
{0x0C3, "d_a_tag_spinner"},
{0x0C4, "d_a_obj_swhang"},
{0x0C5, "d_a_obj_rstair"},
{0x0C6, "d_a_obj_magne_arm"},
{0x0C7, "d_a_obj_kwheel00"},
{0x0C8, "d_a_obj_kwheel01"},
{0x0C9, "d_a_obj_lv5ychndlr"},
{0x0CA, "d_a_obj_lv4prelvtr"},
{0x0CB, "d_a_obj_hasu2"},
{0x0CC, "d_a_obj_lv5yiblltray"},
{0x0CD, "d_a_obj_lv6egate"},
{0x0CE, "d_a_obj_pdtile"},
{0x0CF, "d_a_obj_pdwall"},
{0x0D0, "d_a_obj_lv4prwall"},
{0x0D1, "d_a_obj_klift00"},
{0x0D2, "d_a_b_oh"},
{0x0D3, "d_a_obj_lv4chandelier"},
{0x0D4, "d_a_obj_lv3saka00"},
{0x0D5, "d_a_obj_lv3Water"},
{0x0D6, "d_a_obj_lv3Water2"},
{0x0D7, "d_a_obj_lv3WaterB"},
{0x0D8, "d_a_obj_hbombkoya"},
{0x0D9, "d_a_obj_szbridge"},
{0x0DA, "d_a_obj_warp_kbrg"},
{0x0DB, "d_a_obj_warp_obrg"},
{0x0DC, "d_a_obj_burnbox"},
{0x0DD, "d_a_obj_kjgjs"},
{0x0DE, "d_a_obj_ihasi"},
{0x0DF, "d_a_obj_iceblock"},
{0x0E0, "d_a_obj_volcball"},
{0x0E1, "d_a_obj_volcbom"},
{0x0E2, "d_a_obj_vground"},
{0x0E3, "d_a_obj_kkanban"},
{0x0E4, "d_a_e_ph"},
{0x0E5, "d_a_npc_zra"},
{0x0E6, "d_a_obj_chandelier"},
{0x0E7, "d_a_obj_stopper2"},
{0x0E8, "d_a_door_shutter"},
{0x0E9, "d_a_tag_hinit"},
{0x0EA, "d_a_tag_hjump"},
{0x0EB, "d_a_tag_ajnot"},
{0x0EC, "d_a_tag_hstop"},
{0x0ED, "d_a_canoe"},
{0x0EE, "d_a_horse"},
{0x0EF, "d_a_e_wb"},
{0x0F0, "d_a_obj_ito"},
{0x0F1, "d_a_obj_sw"},
{0x0F2, "d_a_spinner"},
{0x0F3, "d_a_b_ob"},
{0x0F4, "d_a_kago"},
{0x0F5, "d_a_e_yc"},
{0x0F6, "d_a_b_ds"},
{0x0F7, "d_a_b_dr"},
{0x0F8, "d_a_b_zant_mobile"},
{0x0F9, "d_a_b_zant"},
{0x0FA, "d_a_b_zant_magic"},
{0x0FB, "d_a_tbox"},
{0x0FC, "d_a_tbox2"},
{0x0FE, "d_a_boomerang"},
{0x0FF, "d_a_midna"},
{0x100, "d_a_npc_tk"},
{0x101, "d_a_npc_worm"},
{0x102, "d_a_ppolamp"},
{0x103, "d_a_obj_bky_rock"},
{0x104, "d_a_hitobj"},
{0x105, "d_a_ep"},
{0x106, "d_a_cow"},
{0x107, "d_a_peru"},
{0x108, "d_a_ni"},
{0x109, "d_a_npc_tkj2"},
{0x10A, "d_a_sq"},
{0x10B, "d_a_npc_sq"},
{0x10C, "d_a_do"},
{0x10D, "d_a_npc_ne"},
{0x10E, "d_a_npc_tr"},
{0x10F, "d_a_npc_lf"},
{0x110, "d_a_obj_food"},
{0x111, "d_a_obj_ki"},
{0x112, "d_a_obj_kita"},
{0x113, "d_a_obj_key"},
{0x114, "d_a_obj_keyhole"},
{0x115, "d_a_obj_Lv5Key"},
{0x116, "d_a_obj_lp"},
{0x117, "d_a_obj_tatigi"},
{0x118, "d_a_obj_rock"},
{0x119, "d_a_obj_wflag"},
{0x11A, "d_a_obj_kage"},
{0x11B, "d_a_obj_kanban2"},
{0x11C, "d_a_obj_balloon"},
{0x11D, "d_a_obj_suisya"},
{0x11E, "d_a_obj_oiltubo"},
{0x11F, "d_a_obj_roten"},
{0x120, "d_a_obj_ss_drink"},
{0x121, "d_a_obj_ss_item"},
{0x122, "d_a_tag_ss_drink"},
{0x123, "d_a_tag_bottle_item"},
{0x124, "d_a_tag_lv5soup"},
{0x125, "d_a_tag_myna_light"},
{0x126, "d_a_tag_shop_camera"},
{0x127, "d_a_tag_shop_item"},
{0x128, "d_a_obj_ndoor"},
{0x129, "d_a_obj_udoor"},
{0x12A, "d_a_obj_usaku"},
{0x12B, "d_a_obj_sm_door"},
{0x12C, "d_a_obj_bed"},
{0x12D, "d_a_obj_boumato"},
{0x12E, "d_a_obj_itamato"},
{0x12F, "d_a_obj_nougu"},
{0x130, "d_a_obj_stick"},
{0x131, "d_a_obj_mie"},
{0x132, "d_a_obj_sekidoor"},
{0x133, "d_a_obj_sekizo"},
{0x134, "d_a_obj_smtile"},
{0x135, "d_a_npc_fish"},
{0x136, "d_a_mg_fish"},
{0x137, "d_a_mg_fshop"},
{0x138, "d_a_npc_du"},
{0x139, "d_a_disappear"},
{0x13A, "d_a_obj_mato"},
{0x13B, "d_a_obj_flag"},
{0x13C, "d_a_obj_flag2"},
{0x13D, "d_a_obj_flag3"},
{0x13E, "d_a_obj_gomikabe"},
{0x13F, "d_a_obj_yousei"},
{0x140, "d_a_obj_kabuto"},
{0x141, "d_a_obj_cho"},
{0x142, "d_a_obj_kuwagata"},
{0x143, "d_a_obj_nan"},
{0x144, "d_a_obj_dan"},
{0x145, "d_a_obj_kamakiri"},
{0x146, "d_a_obj_ten"},
{0x147, "d_a_obj_ari"},
{0x148, "d_a_obj_kag"},
{0x149, "d_a_obj_batta"},
{0x14A, "d_a_obj_tombo"},
{0x14B, "d_a_obj_katatsumuri"},
{0x14C, "d_a_obj_h_saku"},
{0x14D, "d_a_obj_yobikusa"},
{0x14E, "d_a_obj_kazeneko"},
{0x14F, "d_a_obj_kznkarm"},
{0x150, "d_a_obj_nameplate"},
{0x151, "d_a_obj_ornament_cloth"},
{0x152, "d_a_obj_laundry_rope"},
{0x153, "d_a_obj_sakuita_rope"},
{0x154, "d_a_obj_sakuita"},
{0x155, "d_a_obj_laundry"},
{0x156, "d_a_warp_bug"},
{0x157, "d_a_izumi_gate"},
{0x158, "d_a_obj_fchain"},
{0x159, "d_a_obj_wchain"},
{0x15A, "d_a_tag_attention"},
{0x15B, "d_a_obj_tornado"},
{0x15C, "d_a_obj_tornado2"},
{0x15D, "d_a_obj_firepillar"},
{0x15E, "d_a_obj_firepillar2"},
{0x15F, "d_a_obj_inobone"},
{0x160, "d_a_obj_stopper"},
{0x161, "d_a_obj_mhole"},
{0x162, "d_a_tag_magne"},
{0x163, "d_a_obj_bosswarp"},
{0x164, "d_a_obj_wood_pendulum"},
{0x165, "d_a_obj_wdStick"},
{0x166, "d_a_obj_stairBlock"},
{0x167, "d_a_obj_geyser"},
{0x168, "d_a_obj_ktOnFire"},
{0x169, "d_a_obj_fireWood"},
{0x16A, "d_a_obj_fireWood2"},
{0x16B, "d_a_obj_gpTaru"},
{0x16C, "d_a_obj_onsenTaru"},
{0x16D, "d_a_obj_kiPot"},
{0x16E, "d_a_tboxSw"},
{0x16F, "d_a_obj_swchain"},
{0x170, "d_a_obj_wsword"},
{0x171, "d_a_obj_stoneMark"},
{0x172, "d_a_obj_lv3Candle"},
{0x173, "d_a_obj_lv4CandleTag"},
{0x174, "d_a_obj_lv4CandleDemoTag"},
{0x175, "d_a_obj_damCps"},
{0x176, "d_a_obj_smoke"},
{0x177, "d_a_obj_waterfall"},
{0x178, "d_a_obj_zcloth"},
{0x179, "d_a_obj_poFire"},
{0x17A, "d_a_tag_poFire"},
{0x17B, "d_a_obj_glowSphere"},
{0x17C, "d_a_tag_lightball"},
{0x17D, "d_a_swLBall"},
{0x17E, "d_a_swBall"},
{0x17F, "d_a_obj_lv3waterEff"},
{0x180, "d_a_tag_river_back"},
{0x181, "d_a_tag_kago_fall"},
{0x182, "d_a_tag_lv2prchk"},
{0x183, "d_a_obj_lv4gear"},
{0x184, "d_a_obj_master_sword"},
{0x185, "d_a_obj_wood_statue"},
{0x186, "d_a_obj_fan"},
{0x187, "d_a_obj_iceleaf"},
{0x188, "d_a_obj_zrTuraraRock"},
{0x189, "d_a_tag_ret_room"},
{0x18A, "d_a_obj_wind_stone"},
{0x18B, "d_a_tag_wara_howl"},
{0x18C, "d_a_obj_scannon"},
{0x18D, "d_a_obj_smw_stone"},
{0x18E, "d_a_obj_scannon_crs"},
{0x18F, "d_a_obj_snowEffTag"},
{0x190, "d_a_tag_CstaSw"},
{0x191, "d_a_tag_lv6CstaSw"},
{0x192, "d_a_obj_bubblePilar"},
{0x193, "d_a_obj_poTbox"},
{0x194, "d_a_obj_timeFire"},
{0x195, "d_a_obj_tmoon"},
{0x196, "d_a_obj_ganonwall"},
{0x197, "d_a_obj_prop"},
{0x198, "d_a_cstatue"},
{0x199, "d_a_obj_swBallA"},
{0x19A, "d_a_obj_swBallB"},
{0x19B, "d_a_obj_snow_soup"},
{0x19C, "d_a_obj_nagaisu"},
{0x19D, "d_a_obj_rcircle"},
{0x19E, "d_a_obj_picture"},
{0x19F, "d_a_tag_setBall"},
{0x1A0, "d_a_tag_smk_emt"},
{0x1A1, "d_a_swTime"},
{0x1A2, "d_a_obj_hakai_ftr"},
{0x1A3, "d_a_obj_hakai_brl"},
{0x1A4, "d_a_obj_crystal"},
{0x1A5, "d_a_obj_scannon_ten"},
{0x1A6, "d_a_obj_swBallC"},
{0x1A7, "d_a_scene_exit2"},
{0x1A8, "d_a_obj_hata"},
{0x1A9, "d_a_obj_toaru_maki"},
{0x1AA, "d_a_tag_attack_item"},
{0x1AB, "d_a_tag_rmbit_sw"},
{0x1AC, "d_a_obj_sword"},
{0x1AD, "d_a_tag_spring"},
{0x1AE, "d_a_tag_statue_evt"},
{0x1AF, "d_a_e_ai"},
{0x1B0, "d_a_e_gs"},
{0x1B1, "d_a_e_gob"},
{0x1B2, "d_a_e_dd"},
{0x1B3, "d_a_e_dn"},
{0x1B4, "d_a_e_s1"},
{0x1B5, "d_a_e_mf"},
{0x1B6, "d_a_e_sg"},
{0x1B7, "d_a_e_bs"},
{0x1B8, "d_a_e_sf"},
{0x1B9, "d_a_e_sh"},
{0x1BA, "d_a_e_df"},
{0x1BB, "d_a_e_gm"},
{0x1BC, "d_a_e_md"},
{0x1BD, "d_a_e_sm"},
{0x1BE, "d_a_e_sm2"},
{0x1BF, "d_a_e_st"},
{0x1C0, "d_a_e_st_line"},
{0x1C1, "d_a_e_sb"},
{0x1C2, "d_a_e_th"},
{0x1C3, "d_a_e_cr"},
{0x1C4, "d_a_e_cr_egg"},
{0x1C5, "d_a_e_db"},
{0x1C6, "d_a_e_db_leaf"},
{0x1C7, "d_a_e_ga"},
{0x1C8, "d_a_e_gb"},
{0x1C9, "d_a_e_hb"},
{0x1CA, "d_a_e_hb_leaf"},
{0x1CB, "d_a_e_hzelda"},
{0x1CC, "d_a_e_yd"},
{0x1CD, "d_a_e_yh"},
{0x1CE, "d_a_e_yd_leaf"},
{0x1CF, "d_a_e_hm"},
{0x1D0, "d_a_e_tk"},
{0x1D1, "d_a_e_tk2"},
{0x1D2, "d_a_e_tk_ball"},
{0x1D3, "d_a_e_rb"},
{0x1D4, "d_a_e_rd"},
{0x1D5, "d_a_e_rdb"},
{0x1D6, "d_a_e_rdy"},
{0x1D7, "d_a_e_fm"},
{0x1D8, "d_a_e_fs"},
{0x1D9, "d_a_e_pm"},
{0x1DA, "d_a_e_po"},
{0x1DB, "d_a_e_mb"},
{0x1DC, "d_a_e_mk"},
{0x1DD, "d_a_e_mm"},
{0x1DE, "d_a_e_fz"},
{0x1DF, "d_a_e_zs"},
{0x1E0, "d_a_e_kk"},
{0x1E1, "d_a_e_hp"},
{0x1E2, "d_a_e_zh"},
{0x1E3, "d_a_e_zm"},
{0x1E4, "d_a_e_pz"},
{0x1E5, "d_a_e_fb"},
{0x1E6, "d_a_e_fk"},
{0x1E7, "d_a_e_ms"},
{0x1E8, "d_a_e_nest"},
{0x1E9, "d_a_e_nz"},
{0x1EA, "d_a_e_ba"},
{0x1EB, "d_a_e_bu"},
{0x1EC, "d_a_e_bug"},
{0x1ED, "d_a_e_bee"},
{0x1EE, "d_a_e_is"},
{0x1EF, "d_a_e_kg"},
{0x1F0, "d_a_e_kr"},
{0x1F1, "d_a_e_sw"},
{0x1F2, "d_a_e_ge"},
{0x1F3, "d_a_tag_watchge"},
{0x1F4, "d_a_e_ym"},
{0x1F5, "d_a_e_ym_tag"},
{0x1F6, "d_a_e_ymb"},
{0x1F7, "d_a_tag_firewall"},
{0x1F8, "d_a_tag_waterfall"},
{0x1F9, "d_a_e_yk"},
{0x1FA, "d_a_e_yr"},
{0x1FB, "d_a_e_yg"},
{0x1FC, "d_a_e_hz"},
{0x1FD, "d_a_e_ws"},
{0x1FE, "d_a_e_oc"},
{0x1FF, "d_a_e_ot"},
{0x200, "d_a_e_dt"},
{0x201, "d_a_e_bg"},
{0x202, "d_a_e_oct_bg"},
{0x203, "d_a_L7demo_dr"},
{0x204, "d_a_L7low_dr"},
{0x205, "d_a_L7op_demo_dr"},
{0x206, "d_a_e_tt"},
{0x207, "d_a_e_dk"},
{0x208, "d_a_e_vt"},
{0x209, "d_a_e_ww"},
{0x20A, "d_a_e_gi"},
{0x20B, "d_a_b_bh"},
{0x20C, "d_a_b_bq"},
{0x20D, "d_a_b_gm"},
{0x20E, "d_a_b_gnd"},
{0x20F, "d_a_b_go"},
{0x210, "d_a_b_oh2"},
{0x211, "d_a_b_yo"},
{0x212, "d_a_b_yo_ice"},
{0x213, "d_a_b_tn"},
{0x214, "d_a_b_gg"},
{0x215, "d_a_b_dre"},
{0x216, "d_a_b_mgn"},
{0x217, "d_a_e_warpappear"},
{0x219, "d_a_obj_smallkey"},
{0x21A, "d_a_obj_kantera"},
{0x21B, "d_a_obj_life_container"},
{0x21C, "d_a_obj_shield"},
{0x21D, "d_a_demo_item"},
{0x21E, "d_a_shop_item"},
{0x21F, "d_a_obj_drop"},
{0x220, "d_a_obj_rw"},
{0x221, "d_a_nbomb"},
{0x222, "d_a_tag_csw"},
{0x223, "d_a_tag_qs"},
{0x224, "d_a_hozelda"},
{0x225, "d_a_swc00"},
{0x226, "d_a_door_knob00"},
{0x227, "d_a_door_dbdoor00"},
{0x228, "d_a_door_boss"},
{0x229, "d_a_door_bossL1"},
{0x22A, "d_a_door_mbossL1"},
{0x22B, "d_a_door_bossL5"},
{0x22C, "d_a_dshutter"},
{0x22D, "d_a_door_spiral"},
{0x22E, "d_a_tag_chgrestart"},
{0x22F, "d_a_tag_setrestart"},
{0x230, "d_a_andsw"},
{0x231, "d_a_andsw2"},
{0x232, "d_a_myna"},
{0x233, "d_a_npc_gnd"},
{0x234, "d_a_npc_gra"},
{0x235, "d_a_npc_grc"},
{0x236, "d_a_npc_grd"},
{0x237, "d_a_npc_grm"},
{0x238, "d_a_npc_grmc"},
{0x239, "d_a_npc_gro"},
{0x23A, "d_a_npc_grr"},
{0x23B, "d_a_npc_grs"},
{0x23C, "d_a_npc_grz"},
{0x23D, "d_a_npc_yamid"},
{0x23E, "d_a_npc_yamit"},
{0x23F, "d_a_npc_yamis"},
{0x240, "d_a_npc_blue_ns"},
{0x241, "d_a_npc_kakashi"},
{0x242, "d_a_npc_kdk"},
{0x243, "d_a_npc_aru"},
{0x244, "d_a_npc_bans"},
{0x245, "d_a_npc_besu"},
{0x246, "d_a_npc_bou"},
{0x247, "d_a_npc_bouS"},
{0x248, "d_a_npc_clerka"},
{0x249, "d_a_npc_clerkb"},
{0x24A, "d_a_npc_clerkt"},
{0x24B, "d_a_npc_wrestler"},
{0x24C, "d_a_tag_arena"},
{0x24D, "d_a_tag_instruction"},
{0x24E, "d_a_npc_doc"},
{0x24F, "d_a_npc_gwolf"},
{0x250, "d_a_npc_len"},
{0x251, "d_a_npc_lud"},
{0x252, "d_a_npc_fairy_seirei"},
{0x253, "d_a_npc_fairy"},
{0x254, "d_a_npc_hanjo"},
{0x255, "d_a_npc_henna"},
{0x256, "d_a_npc_henna0"},
{0x257, "d_a_npc_hoz"},
{0x258, "d_a_npc_jagar"},
{0x259, "d_a_npc_kkri"},
{0x25A, "d_a_npc_kn"},
{0x25B, "d_a_obj_knBullet"},
{0x25C, "d_a_npc_knj"},
{0x25D, "d_a_npc_kolin"},
{0x25E, "d_a_npc_kolinb"},
{0x25F, "d_a_npc_kyury"},
{0x260, "d_a_npc_maro"},
{0x261, "d_a_npc_midp"},
{0x262, "d_a_npc_moi"},
{0x263, "d_a_npc_raca"},
{0x264, "d_a_npc_saru"},
{0x265, "d_a_npc_seib"},
{0x266, "d_a_npc_seic"},
{0x267, "d_a_npc_seid"},
{0x268, "d_a_npc_seira"},
{0x269, "d_a_npc_seira2"},
{0x26A, "d_a_npc_seirei"},
{0x26B, "d_a_npc_shaman"},
{0x26C, "d_a_npc_shop_maro"},
{0x26D, "d_a_npc_sola"},
{0x26E, "d_a_npc_taro"},
{0x26F, "d_a_npc_pachi_besu"},
{0x270, "d_a_npc_pachi_taro"},
{0x271, "d_a_npc_pachi_maro"},
{0x272, "d_a_tag_pachi"},
{0x273, "d_a_npc_the"},
{0x274, "d_a_npc_tkj"},
{0x275, "d_a_npc_tks"},
{0x276, "d_a_npc_tkc"},
{0x277, "d_a_obj_tks"},
{0x278, "d_a_npc_toby"},
{0x279, "d_a_npc_uri"},
{0x27A, "d_a_npc_yelia"},
{0x27B, "d_a_npc_ykm"},
{0x27C, "d_a_npc_ykw"},
{0x27D, "d_a_npc_zanb"},
{0x27E, "d_a_npc_zant"},
{0x27F, "d_a_npc_zelda"},
{0x280, "d_a_npc_zelR"},
{0x281, "d_a_npc_zelRo"},
{0x282, "d_a_obj_zra_freeze"},
{0x283, "d_a_npc_zrc"},
{0x284, "d_a_npc_zrz"},
{0x285, "d_a_obj_zraMark"},
{0x286, "d_a_npc_myna2"},
{0x287, "d_a_tag_myna2"},
{0x288, "d_a_npc_cdn3"},
{0x289, "d_a_tag_schedule"},
{0x28A, "d_a_tag_escape"},
{0x28B, "d_a_npc_chat"},
{0x28C, "d_a_npc_soldierA"},
{0x28D, "d_a_npc_soldierB"},
{0x28E, "d_a_passer_mng"},
{0x28F, "d_a_npc_passer"},
{0x290, "d_a_npc_passer2"},
{0x291, "d_a_npc_post"},
{0x292, "d_a_npc_pouya"},
{0x293, "d_a_formation_mng"},
{0x294, "d_a_npc_fguard"},
{0x295, "d_a_guard_mng"},
{0x296, "d_a_tag_guard"},
{0x297, "d_a_npc_guard"},
{0x298, "d_a_npc_ash"},
{0x299, "d_a_npc_ashB"},
{0x29A, "d_a_npc_shad"},
{0x29B, "d_a_npc_rafrel"},
{0x29C, "d_a_npc_moir"},
{0x29D, "d_a_npc_impal"},
{0x29E, "d_a_npc_shoe"},
{0x29F, "d_a_npc_doorboy"},
{0x2A0, "d_a_npc_prayer"},
{0x2A1, "d_a_npc_kasi_hana"},
{0x2A2, "d_a_npc_kasi_kyu"},
{0x2A3, "d_a_npc_kasi_mich"},
{0x2A4, "d_a_npc_drainSol"},
{0x2A5, "d_a_npc_chin"},
{0x2A6, "d_a_npc_ins"},
{0x2A7, "d_a_npc_shop0"},
{0x2A8, "d_a_npc_mk"},
{0x2A9, "d_a_npc_p2"},
{0x2AA, "d_a_kytag00"},
{0x2AB, "d_a_kytag01"},
{0x2AC, "d_a_kytag02"},
{0x2AD, "d_a_kytag03"},
{0x2AE, "d_a_kytag04"},
{0x2AF, "d_a_kytag05"},
{0x2B0, "d_a_kytag06"},
{0x2B1, "d_a_kytag07"},
{0x2B2, "d_a_kytag08"},
{0x2B3, "d_a_kytag09"},
{0x2B4, "d_a_kytag10"},
{0x2B5, "d_a_kytag11"},
{0x2B6, "d_a_kytag12"},
{0x2B7, "d_a_kytag13"},
{0x2B8, "d_a_kytag14"},
{0x2B9, "d_a_kytag15"},
{0x2BA, "d_a_kytag16"},
{0x2BB, "d_a_kytag17"},
{0x2BC, "d_a_ykgr"},
{0x2BD, "d_a_talk"},
{0x2BE, "d_a_obj_crope"},
{0x2BF, "d_a_obj_bombf"},
{0x2C0, "d_a_obj_bk_leaf"},
{0x2C1, "d_a_tag_mhint"},
{0x2C2, "d_a_tag_mmsg"},
{0x2C3, "d_a_tag_mwait"},
{0x2C4, "d_a_tag_mstop"},
{0x2C5, "d_a_tag_stream"},
{0x2C6, "d_a_tag_sppath"},
{0x2C7, "d_a_tag_wljump"},
{0x2C8, "d_a_tag_TWgate"},
{0x2C9, "d_a_tag_Lv6Gate"},
{0x2CA, "d_a_tag_Lv7Gate"},
{0x2CB, "d_a_tag_Lv8Gate"},
{0x2CC, "d_a_tag_theB_hint"},
{0x2CD, "d_a_tag_assistance"},
{0x2CE, "d_a_demo00"},
{0x2CF, "d_a_tag_camera"},
{0x2D0, "d_a_tag_chkpoint"},
{0x2D1, "d_a_tag_event"},
{0x2D2, "d_a_tag_evt"},
{0x2D3, "d_a_tag_telop"},
{0x2D4, "d_a_tag_howl"},
{0x2D5, "d_a_tag_msg"},
{0x2D6, "d_a_tag_lantern"},
{0x2D7, "d_a_tag_mist"},
{0x2D8, "d_a_dmidna"},
{0x2DA, "d_a_vrbox"},
{0x2DB, "d_a_vrbox2"},
{0x2DC, "d_a_bg"},
{0x2DD, "d_a_set_bgobj"},
{0x2DE, "d_a_bg_obj"},
{0x2DF, "d_a_mirror"},
{0x2E0, "d_a_movie_player"},
{0x2E1, "d_a_title"},
{0x2E2, "d_a_fr"},
{0x2E3, "d_a_econt"},
{0x2E4, "d_a_mg_rod"},
{0x2E5, "d_a_e_arrow"},
{0x2E6, "d_a_bullet"},
{0x2E7, "d_a_swhit0"},
{0x2E8, "d_a_e_th_ball"},
{0x2E9, "d_a_tag_evtarea"},
{0x2EA, "d_a_tag_evtmsg"},
{0x2EB, "d_a_tag_kmsg"},
{0x2EC, "d_a_tag_push"},
{0x2ED, "d_a_e_mk_bo"},
{0x2EE, "d_a_e_mm_mt"},
{0x2EF, "d_a_obj_kbox"},
{0x2F0, "d_a_obj_fw"},
{0x2F1, "d_a_b_gos"},
{0x2F2, "d_a_obj_ystone"},
{0x2F3, "d_a_mant"},
{0x2F4, "d_a_crod"},
{0x2F5, "d_a_obj_pleaf"},
{0x2F6, "d_a_obj_kbacket"},
{0x2F7, "d_a_obj_yel_bag"},
{0x2F8, "d_a_obj_pumpkin"},
{0x2F9, "d_a_obj_automata"},
{0x2FA, "d_a_obj_gadget"},
{0x2FB, "d_a_obj_kago"},
{0x2FC, "d_a_obj_carry"},
{0x2FD, "d_a_obj_stone"},
{0x2FE, "d_a_obj_hb"},
{0x2FF, "d_a_npc_inko"},
{0x300, "d_a_bd"},
{0x301, "d_a_obj_eff"},
{0x304, "d_a_e_bi"},
{0x305, "d_a_e_bi_leaf"},
{0x306, "d_a_startAndGoal"},
{0x307, "d_a_npc_df"},
{0x308, "d_a_arrow"},
{0x309, "d_a_path_line"},
{0x30A, "d_a_tag_allmato"},
{0x30B, "d_a_obj_timer"},
{0x30C, "d_a_scene_exit"},
{0x30F, "d_a_suspend"},
{0x310, "d_a_grass"},
{0xFFFF, NULL},
};
/* 803F0F50-803F1BB0 01DC70 0C60+00 4/4 0/0 0/0 .bss DMC */
static DynamicModuleControl* DMC[0x318];
/* 80450CA8-80450CAC 0001A8 0004+00 1/1 0/0 0/0 .sbss None */
static bool DMC_initialized;
/* 800183DC-80018544 012D1C 0168+00 1/1 0/0 0/0 .text cCc_Init__Fv */
static int cCc_Init() {
JKRHeap* arcHeap = mDoExt_getArchiveHeap();
JKRSolidHeap* heap = JKRSolidHeap::create(0x8820, arcHeap, false);
JKRHeap* prev = heap->becomeCurrentHeap();
memset(&DMC, 0, sizeof(DMC));
for (int i = 0; i < ARRAY_SIZE(DynamicNameTable); i++) {
const DynamicNameTableEntry* d = &DynamicNameTable[i];
if (d->name != NULL) {
for (int j = 0; j < ARRAY_SIZE(DMC); j++) {
if (DMC[j] != NULL) {
if (!strcmp(d->name, DMC[j]->getModuleName())) {
DMC[d->mKey] = DMC[j];
break;
}
}
}
if (DMC[d->mKey] == NULL) {
DMC[d->mKey] = new DynamicModuleControl(d->name);
}
}
}
heap->adjustSize();
prev->becomeCurrentHeap();
DMC_initialized = true;
return 1;
}
/* 80018544-8001857C 012E84 0038+00 0/0 1/1 0/0 .text cDyl_IsLinked__Fs */
BOOL cDyl_IsLinked(s16 i_ProfName) {
if (DMC[i_ProfName] != NULL) {
return DMC[i_ProfName]->isLinked();
}
return true;
}
/* 8001857C-800185C0 012EBC 0044+00 1/1 1/1 0/0 .text cDyl_Unlink__Fs */
BOOL cDyl_Unlink(s16 i_ProfName) {
if (DMC[i_ProfName] != NULL) {
return DMC[i_ProfName]->unlink();
}
return false;
}
/* 80450CAC-80450CB0 0001AC 0004+00 2/2 0/0 0/0 .sbss cDyl_Initialized */
static BOOL cDyl_Initialized;
/* 800185C0-80018688 012F00 00C8+00 1/1 1/1 0/0 .text cDyl_LinkASync__Fs */
int cDyl_LinkASync(s16 i_ProfName) {
if (cDyl_Initialized == false) {
return 0;
}
if (i_ProfName >= ARRAY_SIZE(DMC)) {
OSReport_Error("cDyl_Link i_ProfName=%d\n", i_ProfName);
return 5;
}
DynamicModuleControl* d = DMC[i_ProfName];
if (d != NULL) {
if (d->load_async()) {
if (d->link()) {
return 4;
} else {
// "cDyl_LinkASync: Link failed. Returning\n"
OSReport_Error("cDyl_LinkASync: リンクに失敗しました。諦めます\n");
return 5;
}
} else {
return 0;
}
}
return 4;
}
/* 80018688-80018764 012FC8 00DC+00 1/1 0/0 0/0 .text cDyl_InitCallback__FPv */
static int cDyl_InitCallback(void* param_0) {
JKRExpHeap* heap = mDoExt_getArchiveHeap();
JKRFileLoader* loader = JKRFileCache::mount("/", heap, NULL);
DynamicModuleControl::initialize();
void* strTbl = JKRFileLoader::getGlbResource("/dvd/str/Final/Release/frameworkF.str");
JKRFileLoader::detachResource(strTbl, loader);
loader->unmount();
OSSetStringTable(strTbl);
DynamicModuleControl dmc("f_pc_profile_lst");
dmc.link();
cDyl_Initialized = true;
fopScnM_CreateReq(9, 0x7FFF, 0, 0);
return 1;
}
/* ############################################################################################## */
/* 80450CB0-80450CB8 0001B0 0004+04 2/2 0/0 0/0 .sbss cDyl_DVD */
static mDoDvdThd_callback_c* cDyl_DVD;
/* 80018764-80018798 0130A4 0034+00 0/0 1/1 0/0 .text cDyl_InitAsync__Fv */
void cDyl_InitAsync() {
cCc_Init();
cDyl_DVD = mDoDvdThd_callback_c::create((mDoDvdThd_callback_func)cDyl_InitCallback, NULL);
}
/* 80018798-80018804 0130D8 006C+00 0/0 2/1 0/0 .text cDyl_InitAsyncIsDone__Fv */
int cDyl_InitAsyncIsDone() {
if (cDyl_DVD == NULL) {
return 1;
}
if (cDyl_DVD->sync()) {
cDyl_DVD->destroy();
cDyl_DVD = NULL;
return 1;
}
return 0;
}
/* 80018804-8001880C 013144 0008+00 1/0 0/0 0/0 .text phase_01__7cDylPhsFPv */
int cDylPhs::phase_01(void* param_0) {
return 2;
}
/* 8001880C-80018844 01314C 0038+00 1/0 0/0 0/0 .text phase_02__7cDylPhsFPs */
int cDylPhs::phase_02(s16* p_profName) {
int ret = cDyl_LinkASync(*p_profName);
if (ret != 4) {
return ret;
}
return 2;
}
/* 80018844-8001884C 013184 0008+00 1/0 0/0 0/0 .text phase_03__7cDylPhsFPv */
int cDylPhs::phase_03(void* param_0) {
return 0;
}
/* 8001884C-80018890 01318C 0044+00 0/0 2/2 0/0 .text
* Link__7cDylPhsFP30request_of_phase_process_classs */
int cDylPhs::Link(request_of_phase_process_class* i_phase, s16 param_1) {
static int (*l_method[3])(void*) = {cDylPhs::phase_01, (int (*)(void*))cDylPhs::phase_02,
cDylPhs::phase_03};
if (i_phase->mPhaseStep == 2) {
return 4;
}
return dComLbG_PhaseHandler(i_phase, l_method, &param_1);
}
/* 80018890-800188DC 0131D0 004C+00 0/0 1/1 0/0 .text
* Unlink__7cDylPhsFP30request_of_phase_process_classs */
int cDylPhs::Unlink(request_of_phase_process_class* i_phase, s16 i_ProfName) {
int ret;
if (i_phase->mPhaseStep == 2) {
ret = cDyl_Unlink(i_ProfName);
i_phase->mPhaseStep = 0;
} else {
ret = 0;
}
return ret;
}
/* 800188DC-800188E4 01321C 0008+00 0/0 1/0 0/0 .text getModuleName__24DynamicModuleControlBaseCFv
*/
// const char* DynamicModuleControlBase::getModuleName() const {
extern "C" bool getModuleName__24DynamicModuleControlBaseCFv() {
return false;
}
/* 800188E4-80018944 013224 0060+00 0/0 1/0 0/0 .text __dt__20DynamicModuleControlFv */
#pragma push
#pragma optimization_level 0
#pragma optimizewithasm off
// asm DynamicModuleControl::~DynamicModuleControl() {
extern "C" asm void __dt__20DynamicModuleControlFv() {
nofralloc
#include "asm/c/c_dylink/__dt__20DynamicModuleControlFv.s"
}
#pragma pop
/* 80375DE8-80375DE8 002448 0000+00 0/0 0/0 0/0 .rodata @stringBase0 */