diff --git a/CMakeLists.txt b/CMakeLists.txt index 6496850a04..6318e778c5 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -575,768 +575,779 @@ set(JSYSTEM_FILES ) set(REL_FILES - src/f_pc/f_pc_profile_lst - src/d/actor/d_a_andsw - src/d/actor/d_a_bg - src/d/actor/d_a_bg_obj - src/d/actor/d_a_dmidna - src/d/actor/d_a_door_dbdoor00 - src/d/actor/d_a_door_knob00 - src/d/actor/d_a_door_shutter - src/d/actor/d_a_door_spiral - src/d/actor/d_a_dshutter - src/d/actor/d_a_ep - src/d/actor/d_a_hitobj - src/d/actor/d_a_kytag00 - src/d/actor/d_a_kytag04 - src/d/actor/d_a_kytag17 - src/d/actor/d_a_obj_brakeeff - src/d/actor/d_a_obj_burnbox - src/d/actor/d_a_obj_carry - src/d/actor/d_a_obj_ito - src/d/actor/d_a_obj_movebox - src/d/actor/d_a_obj_swpush - src/d/actor/d_a_obj_timer - src/d/actor/d_a_path_line - src/d/actor/d_a_scene_exit - src/d/actor/d_a_set_bgobj - src/d/actor/d_a_swhit0 - src/d/actor/d_a_tag_allmato - src/d/actor/d_a_tag_camera - src/d/actor/d_a_tag_chkpoint - src/d/actor/d_a_tag_event - src/d/actor/d_a_tag_evt - src/d/actor/d_a_tag_evtarea - src/d/actor/d_a_tag_evtmsg - src/d/actor/d_a_tag_howl - src/d/actor/d_a_tag_kmsg - src/d/actor/d_a_tag_lantern - src/d/actor/d_a_tag_mist - src/d/actor/d_a_tag_msg - src/d/actor/d_a_tag_push - src/d/actor/d_a_tag_telop - src/d/actor/d_a_tbox - src/d/actor/d_a_tbox2 - src/d/actor/d_a_vrbox - src/d/actor/d_a_vrbox2 - src/d/actor/d_a_arrow - src/d/actor/d_a_boomerang - src/d/actor/d_a_crod - src/d/actor/d_a_demo00 - src/d/actor/d_a_disappear - src/d/actor/d_a_mg_rod - src/d/actor/d_a_midna - src/d/actor/d_a_nbomb - src/d/actor/d_a_obj_life_container - src/d/actor/d_a_obj_yousei - src/d/actor/d_a_spinner - src/d/actor/d_a_suspend - src/d/actor/d_a_tag_attention - src/d/actor/d_a_alldie - src/d/actor/d_a_andsw2 - src/d/actor/d_a_bd - src/d/actor/d_a_canoe - src/d/actor/d_a_cstaF - src/d/actor/d_a_demo_item - src/d/actor/d_a_door_bossL1 - src/d/actor/d_a_e_dn - src/d/actor/d_a_e_fm - src/d/actor/d_a_e_ga - src/d/actor/d_a_e_hb - src/d/actor/d_a_e_nest - src/d/actor/d_a_e_rd - src/d/actor/d_a_econt - src/d/actor/d_a_fr - src/d/actor/d_a_grass - src/d/actor/d_a_kytag05 - src/d/actor/d_a_kytag10 - src/d/actor/d_a_kytag11 - src/d/actor/d_a_kytag14 - src/d/actor/d_a_mg_fish - src/d/actor/d_a_npc_besu - src/d/actor/d_a_npc_fairy_seirei - src/d/actor/d_a_npc_fish - src/d/actor/d_a_npc_henna - src/d/actor/d_a_npc_kakashi - src/d/actor/d_a_npc_kkri - src/d/actor/d_a_npc_kolin - src/d/actor/d_a_npc_maro - src/d/actor/d_a_npc_taro - src/d/actor/d_a_npc_tkj - src/d/actor/d_a_obj_bhashi - src/d/actor/d_a_obj_bkdoor - src/d/actor/d_a_obj_bosswarp - src/d/actor/d_a_obj_cboard - src/d/actor/d_a_obj_digplace - src/d/actor/d_a_obj_eff - src/d/actor/d_a_obj_fmobj - src/d/actor/d_a_obj_gpTaru - src/d/actor/d_a_obj_hhashi - src/d/actor/d_a_obj_kanban2 - src/d/actor/d_a_obj_kbacket - src/d/actor/d_a_obj_kgate - src/d/actor/d_a_obj_klift00 - src/d/actor/d_a_obj_ktOnFire - src/d/actor/d_a_obj_ladder - src/d/actor/d_a_obj_lv2Candle - src/d/actor/d_a_obj_magne_arm - src/d/actor/d_a_obj_metalbox - src/d/actor/d_a_obj_mgate - src/d/actor/d_a_obj_nameplate - src/d/actor/d_a_obj_ornament_cloth - src/d/actor/d_a_obj_rope_bridge - src/d/actor/d_a_obj_sWallShutter - src/d/actor/d_a_obj_stick - src/d/actor/d_a_obj_stoneMark - src/d/actor/d_a_obj_swpropeller - src/d/actor/d_a_obj_swpush5 - src/d/actor/d_a_obj_yobikusa - src/d/actor/d_a_scene_exit2 - src/d/actor/d_a_shop_item - src/d/actor/d_a_sq - src/d/actor/d_a_swc00 - src/d/actor/d_a_tag_CstaSw - src/d/actor/d_a_tag_ajnot - src/d/actor/d_a_tag_attack_item - src/d/actor/d_a_tag_gstart - src/d/actor/d_a_tag_hinit - src/d/actor/d_a_tag_hjump - src/d/actor/d_a_tag_hstop - src/d/actor/d_a_tag_lv2prchk - src/d/actor/d_a_tag_magne - src/d/actor/d_a_tag_mhint - src/d/actor/d_a_tag_mstop - src/d/actor/d_a_tag_spring - src/d/actor/d_a_tag_statue_evt - src/d/actor/d_a_ykgr - src/d/actor/d_a_L7demo_dr - src/d/actor/d_a_L7low_dr - src/d/actor/d_a_L7op_demo_dr - src/d/actor/d_a_b_bh - src/d/actor/d_a_b_bq - src/d/actor/d_a_b_dr - src/d/actor/d_a_b_dre - src/d/actor/d_a_b_ds - src/d/actor/d_a_b_gg - src/d/actor/d_a_b_gm - src/d/actor/d_a_b_gnd - src/d/actor/d_a_b_go - src/d/actor/d_a_b_gos - src/d/actor/d_a_b_mgn - src/d/actor/d_a_b_ob - src/d/actor/d_a_b_oh - src/d/actor/d_a_b_oh2 - src/d/actor/d_a_b_tn - src/d/actor/d_a_b_yo - src/d/actor/d_a_b_yo_ice - src/d/actor/d_a_b_zant - src/d/actor/d_a_b_zant_magic - src/d/actor/d_a_b_zant_mobile - src/d/actor/d_a_b_zant_sima - src/d/actor/d_a_balloon_2D - src/d/actor/d_a_bullet - src/d/actor/d_a_coach_2D - src/d/actor/d_a_coach_fire - src/d/actor/d_a_cow - src/d/actor/d_a_cstatue - src/d/actor/d_a_do - src/d/actor/d_a_door_boss - src/d/actor/d_a_door_bossL5 - src/d/actor/d_a_door_mbossL1 - src/d/actor/d_a_door_push - src/d/actor/d_a_e_ai - src/d/actor/d_a_e_arrow - src/d/actor/d_a_e_ba - src/d/actor/d_a_e_bee - src/d/actor/d_a_e_bg - src/d/actor/d_a_e_bi - src/d/actor/d_a_e_bi_leaf - src/d/actor/d_a_e_bs - src/d/actor/d_a_e_bu - src/d/actor/d_a_e_bug - src/d/actor/d_a_e_cr - src/d/actor/d_a_e_cr_egg - src/d/actor/d_a_e_db - src/d/actor/d_a_e_db_leaf - src/d/actor/d_a_e_dd - src/d/actor/d_a_e_df - src/d/actor/d_a_e_dk - src/d/actor/d_a_e_dt - src/d/actor/d_a_e_fb - src/d/actor/d_a_e_fk - src/d/actor/d_a_e_fs - src/d/actor/d_a_e_fz - src/d/actor/d_a_e_gb - src/d/actor/d_a_e_ge - src/d/actor/d_a_e_gi - src/d/actor/d_a_e_gm - src/d/actor/d_a_e_gob - src/d/actor/d_a_e_gs - src/d/actor/d_a_e_hb_leaf - src/d/actor/d_a_e_hm - src/d/actor/d_a_e_hp - src/d/actor/d_a_e_hz - src/d/actor/d_a_e_hzelda - src/d/actor/d_a_e_is - src/d/actor/d_a_e_kg - src/d/actor/d_a_e_kk - src/d/actor/d_a_e_kr - src/d/actor/d_a_e_mb - src/d/actor/d_a_e_md - src/d/actor/d_a_e_mf - src/d/actor/d_a_e_mk - src/d/actor/d_a_e_mk_bo - src/d/actor/d_a_e_mm - src/d/actor/d_a_e_mm_mt - src/d/actor/d_a_e_ms - src/d/actor/d_a_e_nz - src/d/actor/d_a_e_oc - src/d/actor/d_a_e_oct_bg - src/d/actor/d_a_e_ot - src/d/actor/d_a_e_ph - src/d/actor/d_a_e_pm - src/d/actor/d_a_e_po - src/d/actor/d_a_e_pz - src/d/actor/d_a_e_rb - src/d/actor/d_a_e_rdb - src/d/actor/d_a_e_rdy - src/d/actor/d_a_e_s1 - src/d/actor/d_a_e_sb - src/d/actor/d_a_e_sf - src/d/actor/d_a_e_sg - src/d/actor/d_a_e_sh - src/d/actor/d_a_e_sm - src/d/actor/d_a_e_sm2 - src/d/actor/d_a_e_st - src/d/actor/d_a_e_st_line - src/d/actor/d_a_e_sw - src/d/actor/d_a_e_th - src/d/actor/d_a_e_th_ball - src/d/actor/d_a_e_tk - src/d/actor/d_a_e_tk2 - src/d/actor/d_a_e_tk_ball - src/d/actor/d_a_e_tt - src/d/actor/d_a_e_vt - src/d/actor/d_a_e_warpappear - src/d/actor/d_a_e_wb - src/d/actor/d_a_e_ws - src/d/actor/d_a_e_ww - src/d/actor/d_a_e_yc - src/d/actor/d_a_e_yd - src/d/actor/d_a_e_yd_leaf - src/d/actor/d_a_e_yg - src/d/actor/d_a_e_yh - src/d/actor/d_a_e_yk - src/d/actor/d_a_e_ym - src/d/actor/d_a_e_ym_tag - src/d/actor/d_a_e_ymb - src/d/actor/d_a_e_yr - src/d/actor/d_a_e_zh - src/d/actor/d_a_e_zm - src/d/actor/d_a_e_zs - src/d/actor/d_a_formation_mng - src/d/actor/d_a_guard_mng - src/d/actor/d_a_horse - src/d/actor/d_a_hozelda - src/d/actor/d_a_izumi_gate - src/d/actor/d_a_kago - src/d/actor/d_a_kytag01 - src/d/actor/d_a_kytag02 - src/d/actor/d_a_kytag03 - src/d/actor/d_a_kytag06 - src/d/actor/d_a_kytag07 - src/d/actor/d_a_kytag08 - src/d/actor/d_a_kytag09 - src/d/actor/d_a_kytag12 - src/d/actor/d_a_kytag13 - src/d/actor/d_a_kytag15 - src/d/actor/d_a_kytag16 - src/d/actor/d_a_mant - src/d/actor/d_a_mg_fshop - src/d/actor/d_a_mirror - src/d/actor/d_a_movie_player - src/d/actor/d_a_myna - src/d/actor/d_a_ni - src/d/actor/d_a_npc_aru - src/d/actor/d_a_npc_ash - src/d/actor/d_a_npc_ashB - src/d/actor/d_a_npc_bans - src/d/actor/d_a_npc_blue_ns - src/d/actor/d_a_npc_bou - src/d/actor/d_a_npc_bouS - src/d/actor/d_a_npc_cdn3 - src/d/actor/d_a_npc_chat - src/d/actor/d_a_npc_chin - src/d/actor/d_a_npc_clerka - src/d/actor/d_a_npc_clerkb - src/d/actor/d_a_npc_clerkt - src/d/actor/d_a_npc_coach - src/d/actor/d_a_npc_df - src/d/actor/d_a_npc_doc - src/d/actor/d_a_npc_doorboy - src/d/actor/d_a_npc_drainSol - src/d/actor/d_a_npc_du - src/d/actor/d_a_npc_fairy - src/d/actor/d_a_npc_fguard - src/d/actor/d_a_npc_gnd - src/d/actor/d_a_npc_gra - src/d/actor/d_a_npc_grc - src/d/actor/d_a_npc_grd - src/d/actor/d_a_npc_grm - src/d/actor/d_a_npc_grmc - src/d/actor/d_a_npc_gro - src/d/actor/d_a_npc_grr - src/d/actor/d_a_npc_grs - src/d/actor/d_a_npc_grz - src/d/actor/d_a_npc_guard - src/d/actor/d_a_npc_gwolf - src/d/actor/d_a_npc_hanjo - src/d/actor/d_a_npc_henna0 - src/d/actor/d_a_npc_hoz - src/d/actor/d_a_npc_impal - src/d/actor/d_a_npc_inko - src/d/actor/d_a_npc_ins - src/d/actor/d_a_npc_jagar - src/d/actor/d_a_npc_kasi_hana - src/d/actor/d_a_npc_kasi_kyu - src/d/actor/d_a_npc_kasi_mich - src/d/actor/d_a_npc_kdk - src/d/actor/d_a_npc_kn - src/d/actor/d_a_npc_knj - src/d/actor/d_a_npc_kolinb - src/d/actor/d_a_npc_ks - src/d/actor/d_a_npc_kyury - src/d/actor/d_a_npc_len - src/d/actor/d_a_npc_lf - src/d/actor/d_a_npc_lud - src/d/actor/d_a_npc_midp - src/d/actor/d_a_npc_mk - src/d/actor/d_a_npc_moi - src/d/actor/d_a_npc_moir - src/d/actor/d_a_npc_myna2 - src/d/actor/d_a_npc_ne - src/d/actor/d_a_npc_p2 - src/d/actor/d_a_npc_pachi_besu - src/d/actor/d_a_npc_pachi_maro - src/d/actor/d_a_npc_pachi_taro - src/d/actor/d_a_npc_passer - src/d/actor/d_a_npc_passer2 - src/d/actor/d_a_npc_post - src/d/actor/d_a_npc_pouya - src/d/actor/d_a_npc_prayer - src/d/actor/d_a_npc_raca - src/d/actor/d_a_npc_rafrel - src/d/actor/d_a_npc_saru - src/d/actor/d_a_npc_seib - src/d/actor/d_a_npc_seic - src/d/actor/d_a_npc_seid - src/d/actor/d_a_npc_seira - src/d/actor/d_a_npc_seira2 - src/d/actor/d_a_npc_seirei - src/d/actor/d_a_npc_shad - src/d/actor/d_a_npc_shaman - src/d/actor/d_a_npc_shoe - src/d/actor/d_a_npc_shop0 - src/d/actor/d_a_npc_shop_maro - src/d/actor/d_a_npc_sola - src/d/actor/d_a_npc_soldierA - src/d/actor/d_a_npc_soldierB - src/d/actor/d_a_npc_sq - src/d/actor/d_a_npc_the - src/d/actor/d_a_npc_theB - src/d/actor/d_a_npc_tk - src/d/actor/d_a_npc_tkc - src/d/actor/d_a_npc_tkj2 - src/d/actor/d_a_npc_tks - src/d/actor/d_a_npc_toby - src/d/actor/d_a_npc_tr - src/d/actor/d_a_npc_uri - src/d/actor/d_a_npc_worm - src/d/actor/d_a_npc_wrestler - src/d/actor/d_a_npc_yamid - src/d/actor/d_a_npc_yamis - src/d/actor/d_a_npc_yamit - src/d/actor/d_a_npc_yelia - src/d/actor/d_a_npc_ykm - src/d/actor/d_a_npc_ykw - src/d/actor/d_a_npc_zanb - src/d/actor/d_a_npc_zant - src/d/actor/d_a_npc_zelR - src/d/actor/d_a_npc_zelRo - src/d/actor/d_a_npc_zelda - src/d/actor/d_a_npc_zra - src/d/actor/d_a_npc_zrc - src/d/actor/d_a_npc_zrz - src/d/actor/d_a_obj_Lv5Key - src/d/actor/d_a_obj_Turara - src/d/actor/d_a_obj_TvCdlst - src/d/actor/d_a_obj_Y_taihou - src/d/actor/d_a_obj_amiShutter - src/d/actor/d_a_obj_ari - src/d/actor/d_a_obj_automata - src/d/actor/d_a_obj_avalanche - src/d/actor/d_a_obj_balloon - src/d/actor/d_a_obj_barDesk - src/d/actor/d_a_obj_batta - src/d/actor/d_a_obj_bbox - src/d/actor/d_a_obj_bed - src/d/actor/d_a_obj_bemos - src/d/actor/d_a_obj_bhbridge - src/d/actor/d_a_obj_bk_leaf - src/d/actor/d_a_obj_bky_rock - src/d/actor/d_a_obj_bmWindow - src/d/actor/d_a_obj_bmshutter - src/d/actor/d_a_obj_bombf - src/d/actor/d_a_obj_boumato - src/d/actor/d_a_obj_brg - src/d/actor/d_a_obj_bsGate - src/d/actor/d_a_obj_bubblePilar - src/d/actor/d_a_obj_catdoor - src/d/actor/d_a_obj_cb - src/d/actor/d_a_obj_cblock - src/d/actor/d_a_obj_cdoor - src/d/actor/d_a_obj_chandelier - src/d/actor/d_a_obj_chest - src/d/actor/d_a_obj_cho - src/d/actor/d_a_obj_cowdoor - src/d/actor/d_a_obj_crope - src/d/actor/d_a_obj_crvfence - src/d/actor/d_a_obj_crvgate - src/d/actor/d_a_obj_crvhahen - src/d/actor/d_a_obj_crvlh_down - src/d/actor/d_a_obj_crvlh_up - src/d/actor/d_a_obj_crvsteel - src/d/actor/d_a_obj_crystal - src/d/actor/d_a_obj_cwall - src/d/actor/d_a_obj_damCps - src/d/actor/d_a_obj_dan - src/d/actor/d_a_obj_digholl - src/d/actor/d_a_obj_digsnow - src/d/actor/d_a_obj_dmelevator - src/d/actor/d_a_obj_drop - src/d/actor/d_a_obj_dust - src/d/actor/d_a_obj_enemy_create - src/d/actor/d_a_obj_fallobj - src/d/actor/d_a_obj_fan - src/d/actor/d_a_obj_fchain - src/d/actor/d_a_obj_fireWood - src/d/actor/d_a_obj_fireWood2 - src/d/actor/d_a_obj_firepillar - src/d/actor/d_a_obj_firepillar2 - src/d/actor/d_a_obj_flag - src/d/actor/d_a_obj_flag2 - src/d/actor/d_a_obj_flag3 - src/d/actor/d_a_obj_food - src/d/actor/d_a_obj_fw - src/d/actor/d_a_obj_gadget - src/d/actor/d_a_obj_ganonwall - src/d/actor/d_a_obj_ganonwall2 - src/d/actor/d_a_obj_gb - src/d/actor/d_a_obj_geyser - src/d/actor/d_a_obj_glowSphere - src/d/actor/d_a_obj_gm - src/d/actor/d_a_obj_goGate - src/d/actor/d_a_obj_gomikabe - src/d/actor/d_a_obj_gra2 - src/d/actor/d_a_obj_graWall - src/d/actor/d_a_obj_gra_rock - src/d/actor/d_a_obj_grave_stone - src/d/actor/d_a_obj_groundwater - src/d/actor/d_a_obj_grz_rock - src/d/actor/d_a_obj_h_saku - src/d/actor/d_a_obj_hakai_brl - src/d/actor/d_a_obj_hakai_ftr - src/d/actor/d_a_obj_hasu2 - src/d/actor/d_a_obj_hata - src/d/actor/d_a_obj_hb - src/d/actor/d_a_obj_hbombkoya - src/d/actor/d_a_obj_heavySw - src/d/actor/d_a_obj_hfuta - src/d/actor/d_a_obj_hsTarget - src/d/actor/d_a_obj_ice_l - src/d/actor/d_a_obj_ice_s - src/d/actor/d_a_obj_iceblock - src/d/actor/d_a_obj_iceleaf - src/d/actor/d_a_obj_ihasi - src/d/actor/d_a_obj_ikada - src/d/actor/d_a_obj_inobone - src/d/actor/d_a_obj_ita - src/d/actor/d_a_obj_itamato - src/d/actor/d_a_obj_kabuto - src/d/actor/d_a_obj_kag - src/d/actor/d_a_obj_kage - src/d/actor/d_a_obj_kago - src/d/actor/d_a_obj_kaisou - src/d/actor/d_a_obj_kamakiri - src/d/actor/d_a_obj_kantera - src/d/actor/d_a_obj_katatsumuri - src/d/actor/d_a_obj_kazeneko - src/d/actor/d_a_obj_kbox - src/d/actor/d_a_obj_key - src/d/actor/d_a_obj_keyhole - src/d/actor/d_a_obj_ki - src/d/actor/d_a_obj_kiPot - src/d/actor/d_a_obj_kita - src/d/actor/d_a_obj_kjgjs - src/d/actor/d_a_obj_kkanban - src/d/actor/d_a_obj_knBullet - src/d/actor/d_a_obj_kshutter - src/d/actor/d_a_obj_kuwagata - src/d/actor/d_a_obj_kwheel00 - src/d/actor/d_a_obj_kwheel01 - src/d/actor/d_a_obj_kznkarm - src/d/actor/d_a_obj_laundry - src/d/actor/d_a_obj_laundry_rope - src/d/actor/d_a_obj_lbox - src/d/actor/d_a_obj_lp - src/d/actor/d_a_obj_lv1Candle00 - src/d/actor/d_a_obj_lv1Candle01 - src/d/actor/d_a_obj_lv3Candle - src/d/actor/d_a_obj_lv3Water - src/d/actor/d_a_obj_lv3Water2 - src/d/actor/d_a_obj_lv3WaterB - src/d/actor/d_a_obj_lv3saka00 - src/d/actor/d_a_obj_lv3waterEff - src/d/actor/d_a_obj_lv4CandleDemoTag - src/d/actor/d_a_obj_lv4CandleTag - src/d/actor/d_a_obj_lv4EdShutter - src/d/actor/d_a_obj_lv4Gate - src/d/actor/d_a_obj_lv4HsTarget - src/d/actor/d_a_obj_lv4PoGate - src/d/actor/d_a_obj_lv4RailWall - src/d/actor/d_a_obj_lv4SlideWall - src/d/actor/d_a_obj_lv4bridge - src/d/actor/d_a_obj_lv4chandelier - src/d/actor/d_a_obj_lv4digsand - src/d/actor/d_a_obj_lv4floor - src/d/actor/d_a_obj_lv4gear - src/d/actor/d_a_obj_lv4prelvtr - src/d/actor/d_a_obj_lv4prwall - src/d/actor/d_a_obj_lv4sand - src/d/actor/d_a_obj_lv5FloorBoard - src/d/actor/d_a_obj_lv5IceWall - src/d/actor/d_a_obj_lv5SwIce - src/d/actor/d_a_obj_lv5ychndlr - src/d/actor/d_a_obj_lv5yiblltray - src/d/actor/d_a_obj_lv6ChangeGate - src/d/actor/d_a_obj_lv6FurikoTrap - src/d/actor/d_a_obj_lv6Lblock - src/d/actor/d_a_obj_lv6SwGate - src/d/actor/d_a_obj_lv6SzGate - src/d/actor/d_a_obj_lv6Tenbin - src/d/actor/d_a_obj_lv6TogeRoll - src/d/actor/d_a_obj_lv6TogeTrap - src/d/actor/d_a_obj_lv6bemos - src/d/actor/d_a_obj_lv6bemos2 - src/d/actor/d_a_obj_lv6egate - src/d/actor/d_a_obj_lv6elevta - src/d/actor/d_a_obj_lv6swturn - src/d/actor/d_a_obj_lv7BsGate - src/d/actor/d_a_obj_lv7PropellerY - src/d/actor/d_a_obj_lv7bridge - src/d/actor/d_a_obj_lv8KekkaiTrap - src/d/actor/d_a_obj_lv8Lift - src/d/actor/d_a_obj_lv8OptiLift - src/d/actor/d_a_obj_lv8UdFloor - src/d/actor/d_a_obj_lv9SwShutter - src/d/actor/d_a_obj_magLift - src/d/actor/d_a_obj_magLiftRot - src/d/actor/d_a_obj_maki - src/d/actor/d_a_obj_master_sword - src/d/actor/d_a_obj_mato - src/d/actor/d_a_obj_mhole - src/d/actor/d_a_obj_mie - src/d/actor/d_a_obj_mirror_6pole - src/d/actor/d_a_obj_mirror_chain - src/d/actor/d_a_obj_mirror_sand - src/d/actor/d_a_obj_mirror_screw - src/d/actor/d_a_obj_mirror_table - src/d/actor/d_a_obj_msima - src/d/actor/d_a_obj_mvstair - src/d/actor/d_a_obj_myogan - src/d/actor/d_a_obj_nagaisu - src/d/actor/d_a_obj_nan - src/d/actor/d_a_obj_ndoor - src/d/actor/d_a_obj_nougu - src/d/actor/d_a_obj_octhashi - src/d/actor/d_a_obj_oiltubo - src/d/actor/d_a_obj_onsen - src/d/actor/d_a_obj_onsenFire - src/d/actor/d_a_obj_onsenTaru - src/d/actor/d_a_obj_pdoor - src/d/actor/d_a_obj_pdtile - src/d/actor/d_a_obj_pdwall - src/d/actor/d_a_obj_picture - src/d/actor/d_a_obj_pillar - src/d/actor/d_a_obj_pleaf - src/d/actor/d_a_obj_poCandle - src/d/actor/d_a_obj_poFire - src/d/actor/d_a_obj_poTbox - src/d/actor/d_a_obj_prop - src/d/actor/d_a_obj_pumpkin - src/d/actor/d_a_obj_rcircle - src/d/actor/d_a_obj_rfHole - src/d/actor/d_a_obj_rgate - src/d/actor/d_a_obj_riverrock - src/d/actor/d_a_obj_rock - src/d/actor/d_a_obj_rotBridge - src/d/actor/d_a_obj_rotTrap - src/d/actor/d_a_obj_roten - src/d/actor/d_a_obj_rstair - src/d/actor/d_a_obj_rw - src/d/actor/d_a_obj_saidan - src/d/actor/d_a_obj_sakuita - src/d/actor/d_a_obj_sakuita_rope - src/d/actor/d_a_obj_scannon - src/d/actor/d_a_obj_scannon_crs - src/d/actor/d_a_obj_scannon_ten - src/d/actor/d_a_obj_sekidoor - src/d/actor/d_a_obj_sekizo - src/d/actor/d_a_obj_sekizoa - src/d/actor/d_a_obj_shield - src/d/actor/d_a_obj_sm_door - src/d/actor/d_a_obj_smallkey - src/d/actor/d_a_obj_smgdoor - src/d/actor/d_a_obj_smoke - src/d/actor/d_a_obj_smtile - src/d/actor/d_a_obj_smw_stone - src/d/actor/d_a_obj_snowEffTag - src/d/actor/d_a_obj_snow_soup - src/d/actor/d_a_obj_so - src/d/actor/d_a_obj_spinLift - src/d/actor/d_a_obj_ss_drink - src/d/actor/d_a_obj_ss_item - src/d/actor/d_a_obj_stairBlock - src/d/actor/d_a_obj_stone - src/d/actor/d_a_obj_stopper - src/d/actor/d_a_obj_stopper2 - src/d/actor/d_a_obj_suisya - src/d/actor/d_a_obj_sw - src/d/actor/d_a_obj_swBallA - src/d/actor/d_a_obj_swBallB - src/d/actor/d_a_obj_swBallC - src/d/actor/d_a_obj_swLight - src/d/actor/d_a_obj_swchain - src/d/actor/d_a_obj_swhang - src/d/actor/d_a_obj_sword - src/d/actor/d_a_obj_swpush2 - src/d/actor/d_a_obj_swspinner - src/d/actor/d_a_obj_swturn - src/d/actor/d_a_obj_syRock - src/d/actor/d_a_obj_szbridge - src/d/actor/d_a_obj_taFence - src/d/actor/d_a_obj_table - src/d/actor/d_a_obj_takaraDai - src/d/actor/d_a_obj_tatigi - src/d/actor/d_a_obj_ten - src/d/actor/d_a_obj_testcube - src/d/actor/d_a_obj_tgake - src/d/actor/d_a_obj_thashi - src/d/actor/d_a_obj_thdoor - src/d/actor/d_a_obj_timeFire - src/d/actor/d_a_obj_tks - src/d/actor/d_a_obj_tmoon - src/d/actor/d_a_obj_toaru_maki - src/d/actor/d_a_obj_toby - src/d/actor/d_a_obj_tobyhouse - src/d/actor/d_a_obj_togeTrap - src/d/actor/d_a_obj_tombo - src/d/actor/d_a_obj_tornado - src/d/actor/d_a_obj_tornado2 - src/d/actor/d_a_obj_tp - src/d/actor/d_a_obj_treesh - src/d/actor/d_a_obj_twGate - src/d/actor/d_a_obj_udoor - src/d/actor/d_a_obj_usaku - src/d/actor/d_a_obj_vground - src/d/actor/d_a_obj_volcball - src/d/actor/d_a_obj_volcbom - src/d/actor/d_a_obj_warp_kbrg - src/d/actor/d_a_obj_warp_obrg - src/d/actor/d_a_obj_waterGate - src/d/actor/d_a_obj_waterPillar - src/d/actor/d_a_obj_waterfall - src/d/actor/d_a_obj_wchain - src/d/actor/d_a_obj_wdStick - src/d/actor/d_a_obj_web0 - src/d/actor/d_a_obj_web1 - src/d/actor/d_a_obj_well_cover - src/d/actor/d_a_obj_wflag - src/d/actor/d_a_obj_wind_stone - src/d/actor/d_a_obj_window - src/d/actor/d_a_obj_wood_pendulum - src/d/actor/d_a_obj_wood_statue - src/d/actor/d_a_obj_wsword - src/d/actor/d_a_obj_yel_bag - src/d/actor/d_a_obj_ystone - src/d/actor/d_a_obj_zcloth - src/d/actor/d_a_obj_zdoor - src/d/actor/d_a_obj_zrTurara - src/d/actor/d_a_obj_zrTuraraRock - src/d/actor/d_a_obj_zraMark - src/d/actor/d_a_obj_zra_freeze - src/d/actor/d_a_obj_zra_rock - src/d/actor/d_a_passer_mng - src/d/actor/d_a_tag_arena - src/d/actor/d_a_peru - src/d/actor/d_a_ppolamp - src/d/actor/d_a_skip_2D - src/d/actor/d_a_startAndGoal - src/d/actor/d_a_swBall - src/d/actor/d_a_swLBall - src/d/actor/d_a_swTime - src/d/actor/d_a_tag_Lv6Gate - src/d/actor/d_a_tag_Lv7Gate - src/d/actor/d_a_tag_Lv8Gate - src/d/actor/d_a_tag_TWgate - src/d/actor/d_a_tag_lv6CstaSw - src/d/actor/d_a_tag_assistance - src/d/actor/d_a_tag_bottle_item - src/d/actor/d_a_tag_chgrestart - src/d/actor/d_a_tag_csw - src/d/actor/d_a_tag_escape - src/d/actor/d_a_tag_firewall - src/d/actor/d_a_tag_gra - src/d/actor/d_a_tag_guard - src/d/actor/d_a_tag_instruction - src/d/actor/d_a_tag_kago_fall - src/d/actor/d_a_tag_lightball - src/d/actor/d_a_tag_lv5soup - src/d/actor/d_a_tag_mmsg - src/d/actor/d_a_tag_mwait - src/d/actor/d_a_tag_myna2 - src/d/actor/d_a_tag_myna_light - src/d/actor/d_a_tag_pachi - src/d/actor/d_a_tag_poFire - src/d/actor/d_a_tag_qs - src/d/actor/d_a_tag_ret_room - src/d/actor/d_a_tag_river_back - src/d/actor/d_a_tag_rmbit_sw - src/d/actor/d_a_tag_schedule - src/d/actor/d_a_tag_setBall - src/d/actor/d_a_tag_setrestart - src/d/actor/d_a_tag_shop_camera - src/d/actor/d_a_tag_shop_item - src/d/actor/d_a_tag_smk_emt - src/d/actor/d_a_tag_spinner - src/d/actor/d_a_tag_sppath - src/d/actor/d_a_tag_ss_drink - src/d/actor/d_a_tag_stream - src/d/actor/d_a_tag_theB_hint - src/d/actor/d_a_tag_wara_howl - src/d/actor/d_a_tag_watchge - src/d/actor/d_a_tag_waterfall - src/d/actor/d_a_tag_wljump - src/d/actor/d_a_tag_yami - src/d/actor/d_a_talk - src/d/actor/d_a_tboxSw - src/d/actor/d_a_title - src/d/actor/d_a_warp_bug + src/f_pc/f_pc_profile_lst.cpp + src/d/actor/d_a_andsw.cpp + src/d/actor/d_a_bg.cpp + src/d/actor/d_a_bg_obj.cpp + src/d/actor/d_a_dmidna.cpp + src/d/actor/d_a_door_dbdoor00.cpp + src/d/actor/d_a_door_knob00.cpp + src/d/actor/d_a_door_shutter.cpp + src/d/actor/d_a_door_spiral.cpp + src/d/actor/d_a_dshutter.cpp + src/d/actor/d_a_ep.cpp + src/d/actor/d_a_hitobj.cpp + src/d/actor/d_a_kytag00.cpp + src/d/actor/d_a_kytag04.cpp + src/d/actor/d_a_kytag17.cpp + src/d/actor/d_a_obj_brakeeff.cpp + src/d/actor/d_a_obj_burnbox.cpp + src/d/actor/d_a_obj_carry.cpp + src/d/actor/d_a_obj_ito.cpp + src/d/actor/d_a_obj_movebox.cpp + src/d/actor/d_a_obj_swpush.cpp + src/d/actor/d_a_obj_timer.cpp + src/d/actor/d_a_path_line.cpp + src/d/actor/d_a_scene_exit.cpp + src/d/actor/d_a_set_bgobj.cpp + src/d/actor/d_a_swhit0.cpp + src/d/actor/d_a_tag_allmato.cpp + src/d/actor/d_a_tag_camera.cpp + src/d/actor/d_a_tag_chkpoint.cpp + src/d/actor/d_a_tag_event.cpp + src/d/actor/d_a_tag_evt.cpp + src/d/actor/d_a_tag_evtarea.cpp + src/d/actor/d_a_tag_evtmsg.cpp + src/d/actor/d_a_tag_howl.cpp + src/d/actor/d_a_tag_kmsg.cpp + src/d/actor/d_a_tag_lantern.cpp + src/d/actor/d_a_tag_mist.cpp + src/d/actor/d_a_tag_msg.cpp + src/d/actor/d_a_tag_push.cpp + src/d/actor/d_a_tag_telop.cpp + src/d/actor/d_a_tbox.cpp + src/d/actor/d_a_tbox2.cpp + src/d/actor/d_a_vrbox.cpp + src/d/actor/d_a_vrbox2.cpp + src/d/actor/d_a_arrow.cpp + src/d/actor/d_a_boomerang.cpp + src/d/actor/d_a_crod.cpp + src/d/actor/d_a_demo00.cpp + src/d/actor/d_a_disappear.cpp + src/d/actor/d_a_mg_rod.cpp + src/d/actor/d_a_midna.cpp + src/d/actor/d_a_nbomb.cpp + src/d/actor/d_a_obj_life_container.cpp + src/d/actor/d_a_obj_yousei.cpp + src/d/actor/d_a_spinner.cpp + src/d/actor/d_a_suspend.cpp + src/d/actor/d_a_tag_attention.cpp + src/d/actor/d_a_alldie.cpp + src/d/actor/d_a_andsw2.cpp + src/d/actor/d_a_bd.cpp + src/d/actor/d_a_canoe.cpp + src/d/actor/d_a_cstaF.cpp + src/d/actor/d_a_demo_item.cpp + src/d/actor/d_a_door_bossL1.cpp + src/d/actor/d_a_e_dn.cpp + src/d/actor/d_a_e_fm.cpp + src/d/actor/d_a_e_ga.cpp + src/d/actor/d_a_e_hb.cpp + src/d/actor/d_a_e_nest.cpp + src/d/actor/d_a_e_rd.cpp + src/d/actor/d_a_econt.cpp + src/d/actor/d_a_fr.cpp + src/d/actor/d_a_grass.cpp + src/d/actor/d_a_kytag05.cpp + src/d/actor/d_a_kytag10.cpp + src/d/actor/d_a_kytag11.cpp + src/d/actor/d_a_kytag14.cpp + src/d/actor/d_a_mg_fish.cpp + src/d/actor/d_a_npc_besu.cpp + src/d/actor/d_a_npc_fairy_seirei.cpp + src/d/actor/d_a_npc_fish.cpp + src/d/actor/d_a_npc_henna.cpp + src/d/actor/d_a_npc_kakashi.cpp + src/d/actor/d_a_npc_kkri.cpp + src/d/actor/d_a_npc_kolin.cpp + src/d/actor/d_a_npc_maro.cpp + src/d/actor/d_a_npc_taro.cpp + src/d/actor/d_a_npc_tkj.cpp + src/d/actor/d_a_obj_bhashi.cpp + src/d/actor/d_a_obj_bkdoor.cpp + src/d/actor/d_a_obj_bosswarp.cpp + src/d/actor/d_a_obj_cboard.cpp + src/d/actor/d_a_obj_digplace.cpp + src/d/actor/d_a_obj_eff.cpp + src/d/actor/d_a_obj_fmobj.cpp + src/d/actor/d_a_obj_gpTaru.cpp + src/d/actor/d_a_obj_hhashi.cpp + src/d/actor/d_a_obj_kanban2.cpp + src/d/actor/d_a_obj_kbacket.cpp + src/d/actor/d_a_obj_kgate.cpp + src/d/actor/d_a_obj_klift00.cpp + src/d/actor/d_a_obj_ktOnFire.cpp + src/d/actor/d_a_obj_ladder.cpp + src/d/actor/d_a_obj_lv2Candle.cpp + src/d/actor/d_a_obj_magne_arm.cpp + src/d/actor/d_a_obj_metalbox.cpp + src/d/actor/d_a_obj_mgate.cpp + src/d/actor/d_a_obj_nameplate.cpp + src/d/actor/d_a_obj_ornament_cloth.cpp + src/d/actor/d_a_obj_rope_bridge.cpp + src/d/actor/d_a_obj_sWallShutter.cpp + src/d/actor/d_a_obj_stick.cpp + src/d/actor/d_a_obj_stoneMark.cpp + src/d/actor/d_a_obj_swpropeller.cpp + src/d/actor/d_a_obj_swpush5.cpp + src/d/actor/d_a_obj_yobikusa.cpp + src/d/actor/d_a_scene_exit2.cpp + src/d/actor/d_a_shop_item.cpp + src/d/actor/d_a_sq.cpp + src/d/actor/d_a_swc00.cpp + src/d/actor/d_a_tag_CstaSw.cpp + src/d/actor/d_a_tag_ajnot.cpp + src/d/actor/d_a_tag_attack_item.cpp + src/d/actor/d_a_tag_gstart.cpp + src/d/actor/d_a_tag_hinit.cpp + src/d/actor/d_a_tag_hjump.cpp + src/d/actor/d_a_tag_hstop.cpp + src/d/actor/d_a_tag_lv2prchk.cpp + src/d/actor/d_a_tag_magne.cpp + src/d/actor/d_a_tag_mhint.cpp + src/d/actor/d_a_tag_mstop.cpp + src/d/actor/d_a_tag_spring.cpp + src/d/actor/d_a_tag_statue_evt.cpp + src/d/actor/d_a_ykgr.cpp + src/d/actor/d_a_L7demo_dr.cpp + src/d/actor/d_a_L7low_dr.cpp + src/d/actor/d_a_L7op_demo_dr.cpp + src/d/actor/d_a_b_bh.cpp + src/d/actor/d_a_b_bq.cpp + src/d/actor/d_a_b_dr.cpp + src/d/actor/d_a_b_dre.cpp + src/d/actor/d_a_b_ds.cpp + src/d/actor/d_a_b_gg.cpp + src/d/actor/d_a_b_gm.cpp + src/d/actor/d_a_b_gnd.cpp + src/d/actor/d_a_b_go.cpp + src/d/actor/d_a_b_gos.cpp + src/d/actor/d_a_b_mgn.cpp + src/d/actor/d_a_b_ob.cpp + src/d/actor/d_a_b_oh.cpp + src/d/actor/d_a_b_oh2.cpp + src/d/actor/d_a_b_tn.cpp + src/d/actor/d_a_b_yo.cpp + src/d/actor/d_a_b_yo_ice.cpp + src/d/actor/d_a_b_zant.cpp + src/d/actor/d_a_b_zant_magic.cpp + src/d/actor/d_a_b_zant_mobile.cpp + src/d/actor/d_a_b_zant_sima.cpp + src/d/actor/d_a_balloon_2D.cpp + src/d/actor/d_a_bullet.cpp + src/d/actor/d_a_coach_2D.cpp + src/d/actor/d_a_coach_fire.cpp + src/d/actor/d_a_cow.cpp + src/d/actor/d_a_cstatue.cpp + src/d/actor/d_a_do.cpp + src/d/actor/d_a_door_boss.cpp + src/d/actor/d_a_door_bossL5.cpp + src/d/actor/d_a_door_mbossL1.cpp + src/d/actor/d_a_door_push.cpp + src/d/actor/d_a_e_ai.cpp + src/d/actor/d_a_e_arrow.cpp + src/d/actor/d_a_e_ba.cpp + src/d/actor/d_a_e_bee.cpp + src/d/actor/d_a_e_bg.cpp + src/d/actor/d_a_e_bi.cpp + src/d/actor/d_a_e_bi_leaf.cpp + src/d/actor/d_a_e_bs.cpp + src/d/actor/d_a_e_bu.cpp + src/d/actor/d_a_e_bug.cpp + src/d/actor/d_a_e_cr.cpp + src/d/actor/d_a_e_cr_egg.cpp + src/d/actor/d_a_e_db.cpp + src/d/actor/d_a_e_db_leaf.cpp + src/d/actor/d_a_e_dd.cpp + src/d/actor/d_a_e_df.cpp + src/d/actor/d_a_e_dk.cpp + src/d/actor/d_a_e_dt.cpp + src/d/actor/d_a_e_fb.cpp + src/d/actor/d_a_e_fk.cpp + src/d/actor/d_a_e_fs.cpp + src/d/actor/d_a_e_fz.cpp + src/d/actor/d_a_e_gb.cpp + src/d/actor/d_a_e_ge.cpp + src/d/actor/d_a_e_gi.cpp + src/d/actor/d_a_e_gm.cpp + src/d/actor/d_a_e_gob.cpp + src/d/actor/d_a_e_gs.cpp + src/d/actor/d_a_e_hb_leaf.cpp + src/d/actor/d_a_e_hm.cpp + src/d/actor/d_a_e_hp.cpp + src/d/actor/d_a_e_hz.cpp + src/d/actor/d_a_e_hzelda.cpp + src/d/actor/d_a_e_is.cpp + src/d/actor/d_a_e_kg.cpp + src/d/actor/d_a_e_kk.cpp + src/d/actor/d_a_e_kr.cpp + src/d/actor/d_a_e_mb.cpp + src/d/actor/d_a_e_md.cpp + src/d/actor/d_a_e_mf.cpp + src/d/actor/d_a_e_mk.cpp + src/d/actor/d_a_e_mk_bo.cpp + src/d/actor/d_a_e_mm.cpp + src/d/actor/d_a_e_mm_mt.cpp + src/d/actor/d_a_e_ms.cpp + src/d/actor/d_a_e_nz.cpp + src/d/actor/d_a_e_oc.cpp + src/d/actor/d_a_e_oct_bg.cpp + src/d/actor/d_a_e_ot.cpp + src/d/actor/d_a_e_ph.cpp + src/d/actor/d_a_e_pm.cpp + src/d/actor/d_a_e_po.cpp + src/d/actor/d_a_e_pz.cpp + src/d/actor/d_a_e_rb.cpp + src/d/actor/d_a_e_rdb.cpp + src/d/actor/d_a_e_rdy.cpp + src/d/actor/d_a_e_s1.cpp + src/d/actor/d_a_e_sb.cpp + src/d/actor/d_a_e_sf.cpp + src/d/actor/d_a_e_sg.cpp + src/d/actor/d_a_e_sh.cpp + src/d/actor/d_a_e_sm.cpp + src/d/actor/d_a_e_sm2.cpp + src/d/actor/d_a_e_st.cpp + src/d/actor/d_a_e_st_line.cpp + src/d/actor/d_a_e_sw.cpp + src/d/actor/d_a_e_th.cpp + src/d/actor/d_a_e_th_ball.cpp + src/d/actor/d_a_e_tk.cpp + src/d/actor/d_a_e_tk2.cpp + src/d/actor/d_a_e_tk_ball.cpp + src/d/actor/d_a_e_tt.cpp + src/d/actor/d_a_e_vt.cpp + src/d/actor/d_a_e_warpappear.cpp + src/d/actor/d_a_e_wb.cpp + src/d/actor/d_a_e_ws.cpp + src/d/actor/d_a_e_ww.cpp + src/d/actor/d_a_e_yc.cpp + src/d/actor/d_a_e_yd.cpp + src/d/actor/d_a_e_yd_leaf.cpp + src/d/actor/d_a_e_yg.cpp + src/d/actor/d_a_e_yh.cpp + src/d/actor/d_a_e_yk.cpp + src/d/actor/d_a_e_ym.cpp + src/d/actor/d_a_e_ym_tag.cpp + src/d/actor/d_a_e_ymb.cpp + src/d/actor/d_a_e_yr.cpp + src/d/actor/d_a_e_zh.cpp + src/d/actor/d_a_e_zm.cpp + src/d/actor/d_a_e_zs.cpp + src/d/actor/d_a_formation_mng.cpp + src/d/actor/d_a_guard_mng.cpp + src/d/actor/d_a_horse.cpp + src/d/actor/d_a_hozelda.cpp + src/d/actor/d_a_izumi_gate.cpp + src/d/actor/d_a_kago.cpp + src/d/actor/d_a_kytag01.cpp + src/d/actor/d_a_kytag02.cpp + src/d/actor/d_a_kytag03.cpp + src/d/actor/d_a_kytag06.cpp + src/d/actor/d_a_kytag07.cpp + src/d/actor/d_a_kytag08.cpp + src/d/actor/d_a_kytag09.cpp + src/d/actor/d_a_kytag12.cpp + src/d/actor/d_a_kytag13.cpp + src/d/actor/d_a_kytag15.cpp + src/d/actor/d_a_kytag16.cpp + src/d/actor/d_a_mant.cpp + src/d/actor/d_a_mg_fshop.cpp + src/d/actor/d_a_mirror.cpp + src/d/actor/d_a_movie_player.cpp + src/d/actor/d_a_myna.cpp + src/d/actor/d_a_ni.cpp + src/d/actor/d_a_npc_aru.cpp + src/d/actor/d_a_npc_ash.cpp + src/d/actor/d_a_npc_ashB.cpp + src/d/actor/d_a_npc_bans.cpp + src/d/actor/d_a_npc_blue_ns.cpp + src/d/actor/d_a_npc_bou.cpp + src/d/actor/d_a_npc_bouS.cpp + src/d/actor/d_a_npc_cdn3.cpp + src/d/actor/d_a_npc_chat.cpp + src/d/actor/d_a_npc_chin.cpp + src/d/actor/d_a_npc_clerka.cpp + src/d/actor/d_a_npc_clerkb.cpp + src/d/actor/d_a_npc_clerkt.cpp + src/d/actor/d_a_npc_coach.cpp + src/d/actor/d_a_npc_df.cpp + src/d/actor/d_a_npc_doc.cpp + src/d/actor/d_a_npc_doorboy.cpp + src/d/actor/d_a_npc_drainSol.cpp + src/d/actor/d_a_npc_du.cpp + src/d/actor/d_a_npc_fairy.cpp + src/d/actor/d_a_npc_fguard.cpp + src/d/actor/d_a_npc_gnd.cpp + src/d/actor/d_a_npc_gra.cpp + src/d/actor/d_a_npc_grc.cpp + src/d/actor/d_a_npc_grd.cpp + src/d/actor/d_a_npc_grm.cpp + src/d/actor/d_a_npc_grmc.cpp + src/d/actor/d_a_npc_gro.cpp + src/d/actor/d_a_npc_grr.cpp + src/d/actor/d_a_npc_grs.cpp + src/d/actor/d_a_npc_grz.cpp + src/d/actor/d_a_npc_guard.cpp + src/d/actor/d_a_npc_gwolf.cpp + src/d/actor/d_a_npc_hanjo.cpp + src/d/actor/d_a_npc_henna0.cpp + src/d/actor/d_a_npc_hoz.cpp + src/d/actor/d_a_npc_impal.cpp + src/d/actor/d_a_npc_inko.cpp + src/d/actor/d_a_npc_ins.cpp + src/d/actor/d_a_npc_jagar.cpp + src/d/actor/d_a_npc_kasi_hana.cpp + src/d/actor/d_a_npc_kasi_kyu.cpp + src/d/actor/d_a_npc_kasi_mich.cpp + src/d/actor/d_a_npc_kdk.cpp + src/d/actor/d_a_npc_kn.cpp + src/d/actor/d_a_npc_knj.cpp + src/d/actor/d_a_npc_kolinb.cpp + src/d/actor/d_a_npc_ks.cpp + src/d/actor/d_a_npc_kyury.cpp + src/d/actor/d_a_npc_len.cpp + src/d/actor/d_a_npc_lf.cpp + src/d/actor/d_a_npc_lud.cpp + src/d/actor/d_a_npc_midp.cpp + src/d/actor/d_a_npc_mk.cpp + src/d/actor/d_a_npc_moi.cpp + src/d/actor/d_a_npc_moir.cpp + src/d/actor/d_a_npc_myna2.cpp + src/d/actor/d_a_npc_ne.cpp + src/d/actor/d_a_npc_p2.cpp + src/d/actor/d_a_npc_pachi_besu.cpp + src/d/actor/d_a_npc_pachi_maro.cpp + src/d/actor/d_a_npc_pachi_taro.cpp + src/d/actor/d_a_npc_passer.cpp + src/d/actor/d_a_npc_passer2.cpp + src/d/actor/d_a_npc_post.cpp + src/d/actor/d_a_npc_pouya.cpp + src/d/actor/d_a_npc_prayer.cpp + src/d/actor/d_a_npc_raca.cpp + src/d/actor/d_a_npc_rafrel.cpp + src/d/actor/d_a_npc_saru.cpp + src/d/actor/d_a_npc_seib.cpp + src/d/actor/d_a_npc_seic.cpp + src/d/actor/d_a_npc_seid.cpp + src/d/actor/d_a_npc_seira.cpp + src/d/actor/d_a_npc_seira2.cpp + src/d/actor/d_a_npc_seirei.cpp + src/d/actor/d_a_npc_shad.cpp + src/d/actor/d_a_npc_shaman.cpp + src/d/actor/d_a_npc_shoe.cpp + src/d/actor/d_a_npc_shop0.cpp + src/d/actor/d_a_npc_shop_maro.cpp + src/d/actor/d_a_npc_sola.cpp + src/d/actor/d_a_npc_soldierA.cpp + src/d/actor/d_a_npc_soldierB.cpp + src/d/actor/d_a_npc_sq.cpp + src/d/actor/d_a_npc_the.cpp + src/d/actor/d_a_npc_theB.cpp + src/d/actor/d_a_npc_tk.cpp + src/d/actor/d_a_npc_tkc.cpp + src/d/actor/d_a_npc_tkj2.cpp + src/d/actor/d_a_npc_tks.cpp + src/d/actor/d_a_npc_toby.cpp + src/d/actor/d_a_npc_tr.cpp + src/d/actor/d_a_npc_uri.cpp + src/d/actor/d_a_npc_worm.cpp + src/d/actor/d_a_npc_wrestler.cpp + src/d/actor/d_a_npc_yamid.cpp + src/d/actor/d_a_npc_yamis.cpp + src/d/actor/d_a_npc_yamit.cpp + src/d/actor/d_a_npc_yelia.cpp + src/d/actor/d_a_npc_ykm.cpp + src/d/actor/d_a_npc_ykw.cpp + src/d/actor/d_a_npc_zanb.cpp + src/d/actor/d_a_npc_zant.cpp + src/d/actor/d_a_npc_zelR.cpp + src/d/actor/d_a_npc_zelRo.cpp + src/d/actor/d_a_npc_zelda.cpp + src/d/actor/d_a_npc_zra.cpp + src/d/actor/d_a_npc_zrc.cpp + src/d/actor/d_a_npc_zrz.cpp + src/d/actor/d_a_obj_Lv5Key.cpp + src/d/actor/d_a_obj_Turara.cpp + src/d/actor/d_a_obj_TvCdlst.cpp + src/d/actor/d_a_obj_Y_taihou.cpp + src/d/actor/d_a_obj_amiShutter.cpp + src/d/actor/d_a_obj_ari.cpp + src/d/actor/d_a_obj_automata.cpp + src/d/actor/d_a_obj_avalanche.cpp + src/d/actor/d_a_obj_balloon.cpp + src/d/actor/d_a_obj_barDesk.cpp + src/d/actor/d_a_obj_batta.cpp + src/d/actor/d_a_obj_bbox.cpp + src/d/actor/d_a_obj_bed.cpp + src/d/actor/d_a_obj_bemos.cpp + src/d/actor/d_a_obj_bhbridge.cpp + src/d/actor/d_a_obj_bk_leaf.cpp + src/d/actor/d_a_obj_bky_rock.cpp + src/d/actor/d_a_obj_bmWindow.cpp + src/d/actor/d_a_obj_bmshutter.cpp + src/d/actor/d_a_obj_bombf.cpp + src/d/actor/d_a_obj_boumato.cpp + src/d/actor/d_a_obj_brg.cpp + src/d/actor/d_a_obj_bsGate.cpp + src/d/actor/d_a_obj_bubblePilar.cpp + src/d/actor/d_a_obj_catdoor.cpp + src/d/actor/d_a_obj_cb.cpp + src/d/actor/d_a_obj_cblock.cpp + src/d/actor/d_a_obj_cdoor.cpp + src/d/actor/d_a_obj_chandelier.cpp + src/d/actor/d_a_obj_chest.cpp + src/d/actor/d_a_obj_cho.cpp + src/d/actor/d_a_obj_cowdoor.cpp + src/d/actor/d_a_obj_crope.cpp + src/d/actor/d_a_obj_crvfence.cpp + src/d/actor/d_a_obj_crvgate.cpp + src/d/actor/d_a_obj_crvhahen.cpp + src/d/actor/d_a_obj_crvlh_down.cpp + src/d/actor/d_a_obj_crvlh_up.cpp + src/d/actor/d_a_obj_crvsteel.cpp + src/d/actor/d_a_obj_crystal.cpp + src/d/actor/d_a_obj_cwall.cpp + src/d/actor/d_a_obj_damCps.cpp + src/d/actor/d_a_obj_dan.cpp + src/d/actor/d_a_obj_digholl.cpp + src/d/actor/d_a_obj_digsnow.cpp + src/d/actor/d_a_obj_dmelevator.cpp + src/d/actor/d_a_obj_drop.cpp + src/d/actor/d_a_obj_dust.cpp + src/d/actor/d_a_obj_enemy_create.cpp + src/d/actor/d_a_obj_fallobj.cpp + src/d/actor/d_a_obj_fan.cpp + src/d/actor/d_a_obj_fchain.cpp + src/d/actor/d_a_obj_fireWood.cpp + src/d/actor/d_a_obj_fireWood2.cpp + src/d/actor/d_a_obj_firepillar.cpp + src/d/actor/d_a_obj_firepillar2.cpp + src/d/actor/d_a_obj_flag.cpp + src/d/actor/d_a_obj_flag2.cpp + src/d/actor/d_a_obj_flag3.cpp + src/d/actor/d_a_obj_food.cpp + src/d/actor/d_a_obj_fw.cpp + src/d/actor/d_a_obj_gadget.cpp + src/d/actor/d_a_obj_ganonwall.cpp + src/d/actor/d_a_obj_ganonwall2.cpp + src/d/actor/d_a_obj_gb.cpp + src/d/actor/d_a_obj_geyser.cpp + src/d/actor/d_a_obj_glowSphere.cpp + src/d/actor/d_a_obj_gm.cpp + src/d/actor/d_a_obj_goGate.cpp + src/d/actor/d_a_obj_gomikabe.cpp + src/d/actor/d_a_obj_gra2.cpp + src/d/actor/d_a_obj_graWall.cpp + src/d/actor/d_a_obj_gra_rock.cpp + src/d/actor/d_a_obj_grave_stone.cpp + src/d/actor/d_a_obj_groundwater.cpp + src/d/actor/d_a_obj_grz_rock.cpp + src/d/actor/d_a_obj_h_saku.cpp + src/d/actor/d_a_obj_hakai_brl.cpp + src/d/actor/d_a_obj_hakai_ftr.cpp + src/d/actor/d_a_obj_hasu2.cpp + src/d/actor/d_a_obj_hata.cpp + src/d/actor/d_a_obj_hb.cpp + src/d/actor/d_a_obj_hbombkoya.cpp + src/d/actor/d_a_obj_heavySw.cpp + src/d/actor/d_a_obj_hfuta.cpp + src/d/actor/d_a_obj_hsTarget.cpp + src/d/actor/d_a_obj_ice_l.cpp + src/d/actor/d_a_obj_ice_s.cpp + src/d/actor/d_a_obj_iceblock.cpp + src/d/actor/d_a_obj_iceleaf.cpp + src/d/actor/d_a_obj_ihasi.cpp + src/d/actor/d_a_obj_ikada.cpp + src/d/actor/d_a_obj_inobone.cpp + src/d/actor/d_a_obj_ita.cpp + src/d/actor/d_a_obj_itamato.cpp + src/d/actor/d_a_obj_kabuto.cpp + src/d/actor/d_a_obj_kag.cpp + src/d/actor/d_a_obj_kage.cpp + src/d/actor/d_a_obj_kago.cpp + src/d/actor/d_a_obj_kaisou.cpp + src/d/actor/d_a_obj_kamakiri.cpp + src/d/actor/d_a_obj_kantera.cpp + src/d/actor/d_a_obj_katatsumuri.cpp + src/d/actor/d_a_obj_kazeneko.cpp + src/d/actor/d_a_obj_kbox.cpp + src/d/actor/d_a_obj_key.cpp + src/d/actor/d_a_obj_keyhole.cpp + src/d/actor/d_a_obj_ki.cpp + src/d/actor/d_a_obj_kiPot.cpp + src/d/actor/d_a_obj_kita.cpp + src/d/actor/d_a_obj_kjgjs.cpp + src/d/actor/d_a_obj_kkanban.cpp + src/d/actor/d_a_obj_knBullet.cpp + src/d/actor/d_a_obj_kshutter.cpp + src/d/actor/d_a_obj_kuwagata.cpp + src/d/actor/d_a_obj_kwheel00.cpp + src/d/actor/d_a_obj_kwheel01.cpp + src/d/actor/d_a_obj_kznkarm.cpp + src/d/actor/d_a_obj_laundry.cpp + src/d/actor/d_a_obj_laundry_rope.cpp + src/d/actor/d_a_obj_lbox.cpp + src/d/actor/d_a_obj_lp.cpp + src/d/actor/d_a_obj_lv1Candle00.cpp + src/d/actor/d_a_obj_lv1Candle01.cpp + src/d/actor/d_a_obj_lv3Candle.cpp + src/d/actor/d_a_obj_lv3Water.cpp + src/d/actor/d_a_obj_lv3Water2.cpp + src/d/actor/d_a_obj_lv3WaterB.cpp + src/d/actor/d_a_obj_lv3saka00.cpp + src/d/actor/d_a_obj_lv3waterEff.cpp + src/d/actor/d_a_obj_lv4CandleDemoTag.cpp + src/d/actor/d_a_obj_lv4CandleTag.cpp + src/d/actor/d_a_obj_lv4EdShutter.cpp + src/d/actor/d_a_obj_lv4Gate.cpp + src/d/actor/d_a_obj_lv4HsTarget.cpp + src/d/actor/d_a_obj_lv4PoGate.cpp + src/d/actor/d_a_obj_lv4RailWall.cpp + src/d/actor/d_a_obj_lv4SlideWall.cpp + src/d/actor/d_a_obj_lv4bridge.cpp + src/d/actor/d_a_obj_lv4chandelier.cpp + src/d/actor/d_a_obj_lv4digsand.cpp + src/d/actor/d_a_obj_lv4floor.cpp + src/d/actor/d_a_obj_lv4gear.cpp + src/d/actor/d_a_obj_lv4prelvtr.cpp + src/d/actor/d_a_obj_lv4prwall.cpp + src/d/actor/d_a_obj_lv4sand.cpp + src/d/actor/d_a_obj_lv5FloorBoard.cpp + src/d/actor/d_a_obj_lv5IceWall.cpp + src/d/actor/d_a_obj_lv5SwIce.cpp + src/d/actor/d_a_obj_lv5ychndlr.cpp + src/d/actor/d_a_obj_lv5yiblltray.cpp + src/d/actor/d_a_obj_lv6ChangeGate.cpp + src/d/actor/d_a_obj_lv6FurikoTrap.cpp + src/d/actor/d_a_obj_lv6Lblock.cpp + src/d/actor/d_a_obj_lv6SwGate.cpp + src/d/actor/d_a_obj_lv6SzGate.cpp + src/d/actor/d_a_obj_lv6Tenbin.cpp + src/d/actor/d_a_obj_lv6TogeRoll.cpp + src/d/actor/d_a_obj_lv6TogeTrap.cpp + src/d/actor/d_a_obj_lv6bemos.cpp + src/d/actor/d_a_obj_lv6bemos2.cpp + src/d/actor/d_a_obj_lv6egate.cpp + src/d/actor/d_a_obj_lv6elevta.cpp + src/d/actor/d_a_obj_lv6swturn.cpp + src/d/actor/d_a_obj_lv7BsGate.cpp + src/d/actor/d_a_obj_lv7PropellerY.cpp + src/d/actor/d_a_obj_lv7bridge.cpp + src/d/actor/d_a_obj_lv8KekkaiTrap.cpp + src/d/actor/d_a_obj_lv8Lift.cpp + src/d/actor/d_a_obj_lv8OptiLift.cpp + src/d/actor/d_a_obj_lv8UdFloor.cpp + src/d/actor/d_a_obj_lv9SwShutter.cpp + src/d/actor/d_a_obj_magLift.cpp + src/d/actor/d_a_obj_magLiftRot.cpp + src/d/actor/d_a_obj_maki.cpp + src/d/actor/d_a_obj_master_sword.cpp + src/d/actor/d_a_obj_mato.cpp + src/d/actor/d_a_obj_mhole.cpp + src/d/actor/d_a_obj_mie.cpp + src/d/actor/d_a_obj_mirror_6pole.cpp + src/d/actor/d_a_obj_mirror_chain.cpp + src/d/actor/d_a_obj_mirror_sand.cpp + src/d/actor/d_a_obj_mirror_screw.cpp + src/d/actor/d_a_obj_mirror_table.cpp + src/d/actor/d_a_obj_msima.cpp + src/d/actor/d_a_obj_mvstair.cpp + src/d/actor/d_a_obj_myogan.cpp + src/d/actor/d_a_obj_nagaisu.cpp + src/d/actor/d_a_obj_nan.cpp + src/d/actor/d_a_obj_ndoor.cpp + src/d/actor/d_a_obj_nougu.cpp + src/d/actor/d_a_obj_octhashi.cpp + src/d/actor/d_a_obj_oiltubo.cpp + src/d/actor/d_a_obj_onsen.cpp + src/d/actor/d_a_obj_onsenFire.cpp + src/d/actor/d_a_obj_onsenTaru.cpp + src/d/actor/d_a_obj_pdoor.cpp + src/d/actor/d_a_obj_pdtile.cpp + src/d/actor/d_a_obj_pdwall.cpp + src/d/actor/d_a_obj_picture.cpp + src/d/actor/d_a_obj_pillar.cpp + src/d/actor/d_a_obj_pleaf.cpp + src/d/actor/d_a_obj_poCandle.cpp + src/d/actor/d_a_obj_poFire.cpp + src/d/actor/d_a_obj_poTbox.cpp + src/d/actor/d_a_obj_prop.cpp + src/d/actor/d_a_obj_pumpkin.cpp + src/d/actor/d_a_obj_rcircle.cpp + src/d/actor/d_a_obj_rfHole.cpp + src/d/actor/d_a_obj_rgate.cpp + src/d/actor/d_a_obj_riverrock.cpp + src/d/actor/d_a_obj_rock.cpp + src/d/actor/d_a_obj_rotBridge.cpp + src/d/actor/d_a_obj_rotTrap.cpp + src/d/actor/d_a_obj_roten.cpp + src/d/actor/d_a_obj_rstair.cpp + src/d/actor/d_a_obj_rw.cpp + src/d/actor/d_a_obj_saidan.cpp + src/d/actor/d_a_obj_sakuita.cpp + src/d/actor/d_a_obj_sakuita_rope.cpp + src/d/actor/d_a_obj_scannon.cpp + src/d/actor/d_a_obj_scannon_crs.cpp + src/d/actor/d_a_obj_scannon_ten.cpp + src/d/actor/d_a_obj_sekidoor.cpp + src/d/actor/d_a_obj_sekizo.cpp + src/d/actor/d_a_obj_sekizoa.cpp + src/d/actor/d_a_obj_shield.cpp + src/d/actor/d_a_obj_sm_door.cpp + src/d/actor/d_a_obj_smallkey.cpp + src/d/actor/d_a_obj_smgdoor.cpp + src/d/actor/d_a_obj_smoke.cpp + src/d/actor/d_a_obj_smtile.cpp + src/d/actor/d_a_obj_smw_stone.cpp + src/d/actor/d_a_obj_snowEffTag.cpp + src/d/actor/d_a_obj_snow_soup.cpp + src/d/actor/d_a_obj_so.cpp + src/d/actor/d_a_obj_spinLift.cpp + src/d/actor/d_a_obj_ss_drink.cpp + src/d/actor/d_a_obj_ss_item.cpp + src/d/actor/d_a_obj_stairBlock.cpp + src/d/actor/d_a_obj_stone.cpp + src/d/actor/d_a_obj_stopper.cpp + src/d/actor/d_a_obj_stopper2.cpp + src/d/actor/d_a_obj_suisya.cpp + src/d/actor/d_a_obj_sw.cpp + src/d/actor/d_a_obj_swBallA.cpp + src/d/actor/d_a_obj_swBallB.cpp + src/d/actor/d_a_obj_swBallC.cpp + src/d/actor/d_a_obj_swLight.cpp + src/d/actor/d_a_obj_swchain.cpp + src/d/actor/d_a_obj_swhang.cpp + src/d/actor/d_a_obj_sword.cpp + src/d/actor/d_a_obj_swpush2.cpp + src/d/actor/d_a_obj_swspinner.cpp + src/d/actor/d_a_obj_swturn.cpp + src/d/actor/d_a_obj_syRock.cpp + src/d/actor/d_a_obj_szbridge.cpp + src/d/actor/d_a_obj_taFence.cpp + src/d/actor/d_a_obj_table.cpp + src/d/actor/d_a_obj_takaraDai.cpp + src/d/actor/d_a_obj_tatigi.cpp + src/d/actor/d_a_obj_ten.cpp + src/d/actor/d_a_obj_testcube.cpp + src/d/actor/d_a_obj_tgake.cpp + src/d/actor/d_a_obj_thashi.cpp + src/d/actor/d_a_obj_thdoor.cpp + src/d/actor/d_a_obj_timeFire.cpp + src/d/actor/d_a_obj_tks.cpp + src/d/actor/d_a_obj_tmoon.cpp + src/d/actor/d_a_obj_toaru_maki.cpp + src/d/actor/d_a_obj_toby.cpp + src/d/actor/d_a_obj_tobyhouse.cpp + src/d/actor/d_a_obj_togeTrap.cpp + src/d/actor/d_a_obj_tombo.cpp + src/d/actor/d_a_obj_tornado.cpp + src/d/actor/d_a_obj_tornado2.cpp + src/d/actor/d_a_obj_tp.cpp + src/d/actor/d_a_obj_treesh.cpp + src/d/actor/d_a_obj_twGate.cpp + src/d/actor/d_a_obj_udoor.cpp + src/d/actor/d_a_obj_usaku.cpp + src/d/actor/d_a_obj_vground.cpp + src/d/actor/d_a_obj_volcball.cpp + src/d/actor/d_a_obj_volcbom.cpp + src/d/actor/d_a_obj_warp_kbrg.cpp + src/d/actor/d_a_obj_warp_obrg.cpp + src/d/actor/d_a_obj_waterGate.cpp + src/d/actor/d_a_obj_waterPillar.cpp + src/d/actor/d_a_obj_waterfall.cpp + src/d/actor/d_a_obj_wchain.cpp + src/d/actor/d_a_obj_wdStick.cpp + src/d/actor/d_a_obj_web0.cpp + src/d/actor/d_a_obj_web1.cpp + src/d/actor/d_a_obj_well_cover.cpp + src/d/actor/d_a_obj_wflag.cpp + src/d/actor/d_a_obj_wind_stone.cpp + src/d/actor/d_a_obj_window.cpp + src/d/actor/d_a_obj_wood_pendulum.cpp + src/d/actor/d_a_obj_wood_statue.cpp + src/d/actor/d_a_obj_wsword.cpp + src/d/actor/d_a_obj_yel_bag.cpp + src/d/actor/d_a_obj_ystone.cpp + src/d/actor/d_a_obj_zcloth.cpp + src/d/actor/d_a_obj_zdoor.cpp + src/d/actor/d_a_obj_zrTurara.cpp + src/d/actor/d_a_obj_zrTuraraRock.cpp + src/d/actor/d_a_obj_zraMark.cpp + src/d/actor/d_a_obj_zra_freeze.cpp + src/d/actor/d_a_obj_zra_rock.cpp + src/d/actor/d_a_passer_mng.cpp + src/d/actor/d_a_tag_arena.cpp + src/d/actor/d_a_peru.cpp + src/d/actor/d_a_ppolamp.cpp + src/d/actor/d_a_skip_2D.cpp + src/d/actor/d_a_startAndGoal.cpp + src/d/actor/d_a_swBall.cpp + src/d/actor/d_a_swLBall.cpp + src/d/actor/d_a_swTime.cpp + src/d/actor/d_a_tag_Lv6Gate.cpp + src/d/actor/d_a_tag_Lv7Gate.cpp + src/d/actor/d_a_tag_Lv8Gate.cpp + src/d/actor/d_a_tag_TWgate.cpp + src/d/actor/d_a_tag_lv6CstaSw.cpp + src/d/actor/d_a_tag_assistance.cpp + src/d/actor/d_a_tag_bottle_item.cpp + src/d/actor/d_a_tag_chgrestart.cpp + src/d/actor/d_a_tag_csw.cpp + src/d/actor/d_a_tag_escape.cpp + src/d/actor/d_a_tag_firewall.cpp + src/d/actor/d_a_tag_gra.cpp + src/d/actor/d_a_tag_guard.cpp + src/d/actor/d_a_tag_instruction.cpp + src/d/actor/d_a_tag_kago_fall.cpp + src/d/actor/d_a_tag_lightball.cpp + src/d/actor/d_a_tag_lv5soup.cpp + src/d/actor/d_a_tag_mmsg.cpp + src/d/actor/d_a_tag_mwait.cpp + src/d/actor/d_a_tag_myna2.cpp + src/d/actor/d_a_tag_myna_light.cpp + src/d/actor/d_a_tag_pachi.cpp + src/d/actor/d_a_tag_poFire.cpp + src/d/actor/d_a_tag_qs.cpp + src/d/actor/d_a_tag_ret_room.cpp + src/d/actor/d_a_tag_river_back.cpp + src/d/actor/d_a_tag_rmbit_sw.cpp + src/d/actor/d_a_tag_schedule.cpp + src/d/actor/d_a_tag_setBall.cpp + src/d/actor/d_a_tag_setrestart.cpp + src/d/actor/d_a_tag_shop_camera.cpp + src/d/actor/d_a_tag_shop_item.cpp + src/d/actor/d_a_tag_smk_emt.cpp + src/d/actor/d_a_tag_spinner.cpp + src/d/actor/d_a_tag_sppath.cpp + src/d/actor/d_a_tag_ss_drink.cpp + src/d/actor/d_a_tag_stream.cpp + src/d/actor/d_a_tag_theB_hint.cpp + src/d/actor/d_a_tag_wara_howl.cpp + src/d/actor/d_a_tag_watchge.cpp + src/d/actor/d_a_tag_waterfall.cpp + src/d/actor/d_a_tag_wljump.cpp + src/d/actor/d_a_tag_yami.cpp + src/d/actor/d_a_talk.cpp + src/d/actor/d_a_tboxSw.cpp + src/d/actor/d_a_title.cpp + src/d/actor/d_a_warp_bug.cpp + ) + +set(DUSK_FILES + src/dusk/imgui.cpp + src/dusk/stubs.c ) source_group("dolzel" FILES ${DOLZEL_FILES} ${Z2AUDIOLIB_FILES} ${SSYSTEM_FILES} ${JSYSTEM_FILES} ${REL_FILES}) +source_group("dusk" FILES ${DUSK_FILES}) -add_executable(dusk ${DOLZEL_FILES} ${Z2AUDIOLIB_FILES} ${SSYSTEM_FILES} ${JSYSTEM_FILES} ${REL_FILES}) +add_library(game SHARED ${DOLZEL_FILES} ${Z2AUDIOLIB_FILES} ${SSYSTEM_FILES} ${JSYSTEM_FILES} ${REL_FILES} ${DUSK_FILES}) +target_compile_definitions(game PRIVATE TARGET_PC VERSION=0) +target_include_directories(game PRIVATE include) +target_link_libraries(game PRIVATE aurora::core aurora::gx aurora::si aurora::vi aurora::pad) + +add_executable(dusk src/dusk/main.cpp) target_compile_definitions(dusk PRIVATE TARGET_PC VERSION=0) target_include_directories(dusk PRIVATE include) -target_link_libraries(dusk PRIVATE aurora::main aurora::core aurora::gx aurora::si aurora::vi aurora::pad) +target_link_libraries(dusk PRIVATE game aurora::main) diff --git a/include/dusk/imgui.h b/include/dusk/imgui.h new file mode 100644 index 0000000000..5c761fb026 --- /dev/null +++ b/include/dusk/imgui.h @@ -0,0 +1,18 @@ +#ifndef _SRC_IMGUI_H_ +#define _SRC_IMGUI_H_ + +#include + +#ifdef __cplusplus +extern "C" +{ +#endif + + void imgui_main(const AuroraInfo* info); + void frame_limiter(); + +#ifdef __cplusplus +} +#endif + +#endif diff --git a/src/dusk/imgui.cpp b/src/dusk/imgui.cpp new file mode 100644 index 0000000000..0a42e87191 --- /dev/null +++ b/src/dusk/imgui.cpp @@ -0,0 +1,268 @@ +#include "dusk/imgui.h" + +#include +#include +#include +#include +#include +#include +#include +#include + +#if _WIN32 +#include "Windows.h" +#endif + +static bool m_frameRate = true; +static bool m_pipelineInfo = true; +static bool m_graphicsBackend = true; +static int m_debugOverlayCorner = 0; // top-left + +using namespace std::string_literals; +using namespace std::string_view_literals; + +namespace aurora::gfx +{ +extern std::atomic_uint32_t queuedPipelines; +extern std::atomic_uint32_t createdPipelines; + +extern size_t g_drawCallCount; +extern size_t g_mergedDrawCallCount; +extern size_t g_lastVertSize; +extern size_t g_lastUniformSize; +extern size_t g_lastIndexSize; +extern size_t g_lastStorageSize; +} // namespace aurora::gfx + +static void SetOverlayWindowLocation(int corner) +{ + const ImGuiViewport *viewport = ImGui::GetMainViewport(); + ImVec2 workPos = viewport->WorkPos; // Use work area to avoid menu-bar/task-bar, if any! + ImVec2 workSize = viewport->WorkSize; + ImVec2 windowPos; + ImVec2 windowPosPivot; + constexpr float padding = 10.0f; + windowPos.x = (corner & 1) != 0 ? (workPos.x + workSize.x - padding) : (workPos.x + padding); + windowPos.y = (corner & 2) != 0 ? (workPos.y + workSize.y - padding) : (workPos.y + padding); + windowPosPivot.x = (corner & 1) != 0 ? 1.0f : 0.0f; + windowPosPivot.y = (corner & 2) != 0 ? 1.0f : 0.0f; + ImGui::SetNextWindowPos(windowPos, ImGuiCond_Always, windowPosPivot); +} + +static void ImGuiStringViewText(std::string_view text) +{ + // begin()/end() do not work on MSVC + ImGui::TextUnformatted(text.data(), text.data() + text.size()); +} + +static std::string BytesToString(size_t bytes) +{ + constexpr std::array suffixes{"B"sv, "KB"sv, "MB"sv, "GB"sv, "TB"sv, "PB"sv, "EB"sv}; + uint32_t s = 0; + auto count = static_cast(bytes); + while (count >= 1024.0 && s < 7) + { + s++; + count /= 1024.0; + } + if (count - floor(count) == 0.0) + { + return fmt::format(FMT_STRING("{}{}"), static_cast(count), suffixes[s]); + } + return fmt::format(FMT_STRING("{:.1f}{}"), count, suffixes[s]); +} + +void imgui_main(const AuroraInfo *info) +{ + + ImGuiIO &io = ImGui::GetIO(); + ImGuiWindowFlags windowFlags = ImGuiWindowFlags_NoDecoration | + ImGuiWindowFlags_AlwaysAutoResize | + ImGuiWindowFlags_NoFocusOnAppearing | ImGuiWindowFlags_NoNav; + if (m_debugOverlayCorner != -1) + { + SetOverlayWindowLocation(m_debugOverlayCorner); + windowFlags |= ImGuiWindowFlags_NoMove; + } + ImGui::SetNextWindowBgAlpha(0.65f); + if (ImGui::Begin("Debug Overlay", nullptr, windowFlags)) + { + bool hasPrevious = false; + if (m_frameRate) + { + if (hasPrevious) + { + ImGui::Separator(); + } + hasPrevious = true; + + ImGuiStringViewText(fmt::format(FMT_STRING("FPS: {:.1f}\n"), io.Framerate)); + } + if (m_graphicsBackend) + { + if (hasPrevious) + { + ImGui::Separator(); + } + hasPrevious = true; + + std::string_view backendString = "Unknown"sv; + switch (info->backend) + { + case BACKEND_D3D12: + backendString = "D3D12"sv; + break; + case BACKEND_METAL: + backendString = "Metal"sv; + break; + case BACKEND_VULKAN: + backendString = "Vulkan"sv; + break; + case BACKEND_OPENGL: + backendString = "OpenGL"sv; + break; + case BACKEND_OPENGLES: + backendString = "OpenGL ES"sv; + break; + case BACKEND_WEBGPU: + backendString = "WebGPU"sv; + break; + case BACKEND_NULL: + backendString = "Null"sv; + break; + } + ImGuiStringViewText(fmt::format(FMT_STRING("Backend: {}\n"), backendString)); + } + if (m_pipelineInfo) + { + if (hasPrevious) + { + ImGui::Separator(); + } + hasPrevious = true; + + ImGuiStringViewText( + fmt::format(FMT_STRING("Queued pipelines: {}\n"), aurora::gfx::queuedPipelines.load())); + ImGuiStringViewText( + fmt::format(FMT_STRING("Done pipelines: {}\n"), aurora::gfx::createdPipelines.load())); + ImGuiStringViewText( + fmt::format(FMT_STRING("Draw call count: {}\n"), aurora::gfx::g_drawCallCount)); + ImGuiStringViewText(fmt::format(FMT_STRING("Merged draw calls: {}\n"), + aurora::gfx::g_mergedDrawCallCount)); + ImGuiStringViewText(fmt::format(FMT_STRING("Vertex size: {}\n"), + BytesToString(aurora::gfx::g_lastVertSize))); + ImGuiStringViewText(fmt::format(FMT_STRING("Uniform size: {}\n"), + BytesToString(aurora::gfx::g_lastUniformSize))); + ImGuiStringViewText(fmt::format(FMT_STRING("Index size: {}\n"), + BytesToString(aurora::gfx::g_lastIndexSize))); + ImGuiStringViewText(fmt::format(FMT_STRING("Storage size: {}\n"), + BytesToString(aurora::gfx::g_lastStorageSize))); + ImGuiStringViewText(fmt::format( + FMT_STRING("Total: {}\n"), + BytesToString(aurora::gfx::g_lastVertSize + aurora::gfx::g_lastUniformSize + + aurora::gfx::g_lastIndexSize + aurora::gfx::g_lastStorageSize))); + } + } + ImGui::End(); +} + +class Limiter +{ + using delta_clock = std::chrono::high_resolution_clock; + using duration_t = std::chrono::nanoseconds; + + public: + void Reset() + { + m_oldTime = delta_clock::now(); + } + + void Sleep(duration_t targetFrameTime) + { + if (targetFrameTime.count() == 0) + { + return; + } + + auto start = delta_clock::now(); + duration_t adjustedSleepTime = SleepTime(targetFrameTime); + if (adjustedSleepTime.count() > 0) + { + NanoSleep(adjustedSleepTime); + duration_t overslept = TimeSince(start) - adjustedSleepTime; + if (overslept < duration_t{targetFrameTime}) + { + m_overheadTimes[m_overheadTimeIdx] = overslept; + m_overheadTimeIdx = (m_overheadTimeIdx + 1) % m_overheadTimes.size(); + } + } + Reset(); + } + + duration_t SleepTime(duration_t targetFrameTime) + { + const auto sleepTime = duration_t{targetFrameTime} - TimeSince(m_oldTime); + m_overhead = std::accumulate(m_overheadTimes.begin(), m_overheadTimes.end(), duration_t{}) / + m_overheadTimes.size(); + if (sleepTime > m_overhead) + { + return sleepTime - m_overhead; + } + return duration_t{0}; + } + + private: + delta_clock::time_point m_oldTime; + std::array m_overheadTimes{}; + size_t m_overheadTimeIdx = 0; + duration_t m_overhead = duration_t{0}; + + duration_t TimeSince(delta_clock::time_point start) + { + return std::chrono::duration_cast(delta_clock::now() - start); + } + +#if _WIN32 + bool m_initialized; + double m_countPerNs; + + void NanoSleep(const duration_t duration) + { + if (!m_initialized) + { + LARGE_INTEGER freq; + QueryPerformanceFrequency(&freq); + m_countPerNs = static_cast(freq.QuadPart) / 1000000000.0; + m_initialized = true; + } + + DWORD ms = std::chrono::duration_cast(duration).count(); + auto tickCount = + static_cast(static_cast(duration.count()) * m_countPerNs); + LARGE_INTEGER count; + QueryPerformanceCounter(&count); + if (ms > 10) + { + // Adjust for Sleep overhead + ::Sleep(ms - 10); + } + auto end = count.QuadPart + tickCount; + do + { + QueryPerformanceCounter(&count); + } while (count.QuadPart < end); + } +#else + void NanoSleep(const duration_t duration) + { + std::this_thread::sleep_for(duration); + } +#endif +}; + +static Limiter g_frameLimiter; +void frame_limiter() +{ + g_frameLimiter.Sleep( + std::chrono::duration_cast(std::chrono::seconds{1}) / 60); +} diff --git a/src/dusk/main.cpp b/src/dusk/main.cpp new file mode 100644 index 0000000000..f8475c1e68 --- /dev/null +++ b/src/dusk/main.cpp @@ -0,0 +1,5 @@ +extern "C" void game_main(int argc, char* argv[]); + +int main(int argc, char* argv[]) { + game_main(argc, argv); +} diff --git a/src/dusk/stubs.c b/src/dusk/stubs.c new file mode 100644 index 0000000000..f31a522eb7 --- /dev/null +++ b/src/dusk/stubs.c @@ -0,0 +1,517 @@ +#include +#include +#include +#include + +// Credits: Super Monkey Ball + +static VIRetraceCallback sVIRetraceCallback = NULL; + +void OSReport(const char *msg, ...) { + va_list args; + va_start(args, msg); + vprintf(msg, args); + va_end(args); +} + +u32 OSGetConsoleType() { return OS_CONSOLE_RETAIL1; } + +u32 OSGetSoundMode() { return 2; } + +s32 CARDCancel(CARDFileInfo *fileInfo) { + puts("CARDCancel is a stub"); + return 0; +} + +s32 CARDCheck(s32 chan) { + puts("CARDCheck is a stub"); + return 0; +} + +s32 CARDCheckAsync(s32 chan, CARDCallback callback) { + puts("CARDCheckAsync is a stub"); + return 0; +} + +s32 CARDClose(CARDFileInfo *fileInfo) { + puts("CARDClose is a stub"); + return 0; +} + +s32 CARDCreate(s32 chan, const char *fileName, u32 size, + CARDFileInfo *fileInfo) { + puts("CARDCreate is a stub"); + return 0; +} + +s32 CARDCreateAsync(s32 chan, const char *fileName, u32 size, + CARDFileInfo *fileInfo, CARDCallback callback) { + puts("CARDCreateAsync is a stub"); + return 0; +} + +s32 CARDDelete(s32 chan, const char *fileName) { + puts("CARDDelete is a stub"); + return 0; +} + +s32 CARDDeleteAsync(s32 chan, const char *fileName, CARDCallback callback) { + puts("CARDDeleteAsync is a stub"); + return 0; +} + +s32 CARDFastDeleteAsync(s32 chan, s32 fileNo, CARDCallback callback) { + puts("CARDFastDeleteAsync is a stub"); + return 0; +} + +s32 CARDFastOpen(s32 chan, s32 fileNo, CARDFileInfo *fileInfo) { + puts("CARDFastOpen is a stub"); + return 0; +} + +s32 CARDFormat(s32 chan) { + puts("CARDFormat is a stub"); + return 0; +} + +s32 CARDFreeBlocks(s32 chan, s32 *byteNotUsed, s32 *filesNotUsed) { + puts("CARDFreeBlocks is a stub"); + return 0; +} + +s32 CARDGetResultCode(s32 chan) { + puts("CARDGetResultCode is a stub"); + return 0; +} + +s32 CARDGetStatus(s32 chan, s32 fileNo, CARDStat *stat) { + puts("CARDGetStatus is a stub"); + return 0; +} + +s32 CARDGetSectorSize(s32 chan, u32 *size) { + puts("CARDGetSectorSize is a stub"); + return 0; +} + +void CARDInit() { puts("CARDInit is a stub"); } + +s32 CARDMount(s32 chan, void *workArea, CARDCallback detachCallback) { + puts("CARDMount is a stub"); + return 0; +} + +s32 CARDMountAsync(s32 chan, void *workArea, CARDCallback detachCallback, + CARDCallback attachCallback) { + puts("CARDMountAsync is a stub"); + return 0; +} + +s32 CARDOpen(s32 chan, const char *fileName, CARDFileInfo *fileInfo) { + puts("CARDOpen is a stub"); + return 0; +} + +s32 CARDProbeEx(s32 chan, s32 *memSize, s32 *sectorSize) { + puts("CARDProbeEx is a stub"); + return 0; +} + +s32 CARDRead(CARDFileInfo *fileInfo, void *addr, s32 length, s32 offset) { + puts("CARDRead is a stub"); + return 0; +} + +s32 CARDReadAsync(CARDFileInfo *fileInfo, void *addr, s32 length, s32 offset, + CARDCallback callback) { + puts("CARDReadAsync is a stub"); + return 0; +} + +s32 CARDRename(s32 chan, const char *oldName, const char *newName) { + puts("CARDRename is a stub"); + return 0; +} + +s32 CARDRenameAsync(s32 chan, const char *oldName, const char *newName, + CARDCallback callback) { + puts("CARDRenameAsync is a stub"); + return 0; +} + +s32 CARDSetStatusAsync(s32 chan, s32 fileNo, CARDStat *stat, + CARDCallback callback) { + puts("CARDSetStatusAsync is a stub"); + return 0; +} + +s32 CARDUnmount(s32 chan) { + puts("CARDUnmount is a stub"); + return 0; +} + +s32 CARDWrite(CARDFileInfo *fileInfo, const void *addr, s32 length, + s32 offset) { + puts("CARDWrite is a stub"); + return 0; +} + +s32 CARDWriteAsync(CARDFileInfo *fileInfo, const void *addr, s32 length, + s32 offset, CARDCallback callback) { + puts("CARDWriteAsync is a stub"); + return 0; +} + +s32 CARDGetSerialNo(s32 chan, u64 *serialNo) { return 0; } + +s32 CARDSetStatus(s32 chan, s32 fileNo, CARDStat *stat) { return 0; } + +void DCFlushRange(void *addr, u32 nBytes) { + // puts("DCFlushRange is a stub"); +} + +void DCFlushRangeNoSync(void *addr, u32 nBytes) { + // puts("DCFlushRangeNoSync is a stub"); +} + +void DCInvalidateRange(void *addr, u32 nBytes) { + // puts("DCInvalidateRange is a stub"); +} + +void DCStoreRange(void *addr, u32 nBytes) { + // puts("DCStoreRange is a stub"); +} + +void DCStoreRangeNoSync(void *addr, u32 nBytes) { + // puts("DCStoreRangeNoSync is a stub"); +} + +s32 DVDCancel(DVDCommandBlock *block) { + puts("DVDCancel is a stub"); + return 0; +} + +void DVDReadAbsAsyncForBS(void *a, struct bb2struct *b, int c, int d, + void (*e)()) { + puts("DVDReadAbsAsyncForBS is a stub"); +} + +void DVDReadDiskID(void *a, DVDDiskID *b, void (*c)()) { + puts("DVDReadDiskID is a stub"); +} + +void DVDReset() { puts("DVDReset is a stub"); } + +BOOL EXIDeselect(int chan) { + puts("EXIDeselect is a stub"); + return FALSE; +} + +BOOL EXIDma(int chan, void *buffer, s32 size, int d, int e) { + puts("EXIDma is a stub"); + return FALSE; +} + +BOOL EXIImm(int chan, u32 *b, int c, int d, int e) { + puts("EXIImm is a stub"); + return FALSE; +} + +BOOL EXILock(int chan, int b, int c) { + puts("EXILock is a stub"); + return FALSE; +} + +BOOL EXISelect(int chan, int b, int c) { + puts("EXISelect is a stub"); + return FALSE; +} + +BOOL EXISync(int chan) { + puts("EXISync is a stub"); + return FALSE; +} + +BOOL EXIUnlock(int chan) { + puts("EXIUnlock is a stub"); + return FALSE; +} + +void LCEnable() { puts("LCEnable is a stub"); } + +void OSClearContext(OSContext *context) { puts("OSClearContext is a stub"); } + +BOOL OSDisableInterrupts() { + puts("OSDisableInterrupts is a stub"); + return FALSE; +} + +void OSDumpContext(OSContext *context) { puts("OSDumpContext is a stub"); } + +OSThread *OSGetCurrentThread() { + puts("OSGetCurrentThread is a stub"); + return 0; +} + +u16 OSGetFontEncode() { + puts("OSGetFontEncode is a stub"); + return 0; +} + +char *OSGetFontTexture(char *string, void **image, s32 *x, s32 *y, s32 *width) { + puts("OSGetFontTexture is a stub"); + return 0; +} + +char *OSGetFontWidth(char *string, s32 *width) { + puts("OSGetFontWidth is a stub"); + return 0; +} + +BOOL OSGetResetButtonState() { + puts("OSGetResetButtonState is a stub"); + return FALSE; +} + +u32 OSGetStackPointer() { + puts("OSGetStackPointer is a stub"); + return 0; +} + +BOOL OSInitFont(OSFontHeader *fontData) { + puts("OSInitFont is a stub"); + return FALSE; +} + +BOOL OSLink(OSModuleInfo *newModule, void *bss) { + puts("OSLink is a stub"); + return TRUE; +} + +void OSLoadContext(OSContext *context) { puts("OSLoadContext is a stub"); } + +void OSResetSystem(int reset, u32 resetCode, BOOL forceMenu) { + puts("OSResetSystem is a stub"); +} + +BOOL OSRestoreInterrupts(BOOL level) { + puts("OSRestoreInterrupts is a stub"); + return FALSE; +} + +s32 OSResumeThread(OSThread *thread) { + puts("OSResumeThread is a stub"); + return 0; +} + +void OSSetCurrentContext(OSContext *context) { + puts("OSSetCurrentContext is a stub"); +} + +void OSSetStringTable(const void *stringTable) { + puts("OSSetStringTable is a stub"); +} + +s32 OSSuspendThread(OSThread *thread) { + puts("OSSuspendThread is a stub"); + return 0; +} + +void OSTicksToCalendarTime(OSTime ticks, OSCalendarTime *td) { + puts("OSTicksToCalendarTime is a stub"); +} + +BOOL OSUnlink(OSModuleInfo *oldModule) { + puts("OSUnlink is a stub"); + return FALSE; +} + +void OSWakeupThread(OSThreadQueue *queue) { puts("OSWakeupThread is a stub"); } + +void PPCHalt() { puts("PPCHalt is a stub"); } + +void SoundChoID(int a, int b) { puts("SoundChoID is a stub"); } + +void SoundPan(int a, int b, int c) { puts("SoundPan is a stub"); } + +void SoundPitch(u16 a, int b) { puts("SoundPitch is a stub"); } + +void SoundRevID(int a, int b) { puts("SoundRevID is a stub"); } + +void VIConfigure(const GXRenderModeObj *rm) { puts("VIConfigure is a stub"); } + +void VIConfigurePan(u16 xOrg, u16 yOrg, u16 width, u16 height) { + puts("VIConfigurePan is a stub"); +} + +u32 VIGetRetraceCount() { + // puts("VIGetRetraceCount is a stub"); + return 0; // TODO this might be important +} + +u32 VIGetNextField() { + puts("VIGetNextField is a stub"); + return 0; +} + +void VISetBlack(BOOL black) { puts("VISetBlack is a stub"); } + +void VISetNextFrameBuffer(void *fb) { + // puts("VISetNextFrameBuffer is a stub"); +} + +void VIWaitForRetrace() { + if (sVIRetraceCallback) { + sVIRetraceCallback(0); + } +} + +s32 __CARDFormatRegionAsync(int a, int b) { + puts("__CARDFormatRegionAsync is a stub"); + return 0; +} + +void __GXSetSUTexSize() { puts("__GXSetSUTexSize is a stub"); } + +void __GXSetVAT() { puts("__GXSetVAT is a stub"); } + +void __GXSetVCD() { puts("__GXSetVCD is a stub"); } + +void __GXUpdateBPMask() { puts("__GXUpdateBPMask is a stub"); } + +u32 __OSGetDIConfig() { + puts("__OSGetDIConfig is a stub"); + return 0; +} + +__OSInterruptHandler __OSSetInterruptHandler(__OSInterrupt interrupt, + __OSInterruptHandler handler) { + puts("__OSSetInterruptHandler is a stub"); + return 0; +} + +OSInterruptMask __OSUnmaskInterrupts(OSInterruptMask mask) { + puts("__OSUnmaskInterrupts is a stub"); + return 0; +} + +void SISetSamplingRate(u32 msec) { + // Maybe we could include SI later + puts("SISetSamplingRate is a stub"); +} + +VIRetraceCallback VISetPostRetraceCallback(VIRetraceCallback callback) { + sVIRetraceCallback = callback; + return callback; +} + +void GXSetGPMetric(GXPerf0 perf0, GXPerf1 perf1) { + // puts("GXSetGPMetric is a stub"); +} + +void GXReadGPMetric(u32 *cnt0, u32 *cnt1) { + // puts("GXReadGPMetric is a stub"); +} + +void GXClearGPMetric(void) { + // puts("GXClearGPMetric is a stub"); +} + +void GXReadMemMetric(u32 *cp_req, u32 *tc_req, u32 *cpu_rd_req, u32 *cpu_wr_req, + u32 *dsp_req, u32 *io_req, u32 *vi_req, u32 *pe_req, + u32 *rf_req, u32 *fi_req) { + // puts("GXReadMemMetric is a stub"); +} + +void GXClearMemMetric(void) { + // puts("GXClearMemMetric is a stub"); +} + +void GXClearVCacheMetric(void) { + // puts("GXClearVCacheMetric is a stub"); +} + +void GXReadPixMetric(u32 *top_pixels_in, u32 *top_pixels_out, + u32 *bot_pixels_in, u32 *bot_pixels_out, + u32 *clr_pixels_in, u32 *copy_clks) { + // puts("GXReadPixMetric is a stub"); +} + +void GXClearPixMetric(void) { + // puts("GXClearPixMetric is a stub"); +} + +void GXSetVCacheMetric(GXVCachePerf attr) { + // puts("GXSetVCacheMetric is a stub"); +} + +void GXReadVCacheMetric(u32 *check, u32 *miss, u32 *stall) { + // puts("GXReadVCacheMetric is a stub"); +} + +void GXSetDrawSync(u16 token) { + // puts("GXSetDrawSync is a stub"); +} + +GXDrawSyncCallback GXSetDrawSyncCallback(GXDrawSyncCallback cb) { + puts("GXSetDrawSyncCallback is a stub"); + // TODO + return cb; +} + +void PPCSync(void) { + // puts("PPCSync is a stub"); +} + +void GXWaitDrawDone(void) { + // puts("GXWaitDrawDone is a stub"); +} + +void GXSetTevIndTile(GXTevStageID tev_stage, GXIndTexStageID ind_stage, + u16 tilesize_s, u16 tilesize_t, u16 tilespacing_s, + u16 tilespacing_t, GXIndTexFormat format, + GXIndTexMtxID matrix_sel, GXIndTexBiasSel bias_sel, + GXIndTexAlphaSel alpha_sel) { + // TODO + // puts("GXSetTevIndTile is a stub"); +} + +void GXResetWriteGatherPipe(void) { + // puts("GXResetWriteGatherPipe is a stub"); +} + +void ARQInit(void) { puts("ARQInit is a stub"); } + +void GXProject(f32 x, f32 y, f32 z, const f32 mtx[3][4], const f32 *pm, + const f32 *vp, f32 *sx, f32 *sy, f32 *sz) { + Vec peye; + f32 xc; + f32 yc; + f32 zc; + f32 wc; + + peye.x = mtx[0][3] + ((mtx[0][2] * z) + ((mtx[0][0] * x) + (mtx[0][1] * y))); + peye.y = mtx[1][3] + ((mtx[1][2] * z) + ((mtx[1][0] * x) + (mtx[1][1] * y))); + peye.z = mtx[2][3] + ((mtx[2][2] * z) + ((mtx[2][0] * x) + (mtx[2][1] * y))); + if (pm[0] == 0.0f) { + xc = (peye.x * pm[1]) + (peye.z * pm[2]); + yc = (peye.y * pm[3]) + (peye.z * pm[4]); + zc = pm[6] + (peye.z * pm[5]); + wc = 1.0f / -peye.z; + } else { + xc = pm[2] + (peye.x * pm[1]); + yc = pm[4] + (peye.y * pm[3]); + zc = pm[6] + (peye.z * pm[5]); + wc = 1.0f; + } + *sx = (vp[2] / 2.0f) + (vp[0] + (wc * (xc * vp[2] / 2.0f))); + *sy = (vp[3] / 2.0f) + (vp[1] + (wc * (-yc * vp[3] / 2.0f))); + *sz = vp[5] + (wc * (zc * (vp[5] - vp[4]))); +} + +void GXGetViewportv(f32 *vp) { + // TODO +} + +void OSSetSoundMode(u32 mode) {} diff --git a/src/m_Do/m_Do_main.cpp b/src/m_Do/m_Do_main.cpp index bcb4f604df..cef0922472 100644 --- a/src/m_Do/m_Do_main.cpp +++ b/src/m_Do/m_Do_main.cpp @@ -898,7 +898,7 @@ static u8 mainThreadStack[32768]; static OSThread mainThread; /* 80006454-800065D8 000D94 0184+00 0/0 1/1 0/0 .text main */ -void main(int argc, const char* argv[]) { +void game_main(int argc, const char* argv[]) { OSThread* current_thread = OSGetCurrentThread(); u8* stack = mainThreadStack; mDoMain::sPowerOnTime = OSGetTime();