CXX := g++ CC := gcc LD := lld AR := ar FORMAT := clang-format-11 ZAPD := ../ZAPDTR/ZAPD.out LIBULTRASHIP := ../libultraship/libultraship.a ZAPDUTILS := ../ZAPDTR/ZAPDUtils/ZAPDUtils.a ROM_DEBUG ?= 0 EXTRACT_BASEROM := ../OTRExporter/extract_baserom_gc.py ifneq ($(ROM_DEBUG), 0) EXTRACT_BASEROM := ../OTRExporter/extract_baserom_debug.py endif ASAN ?= 0 DEBUG ?= 1 OPTFLAGS ?= -O0 LTO ?= 0 WARN := \ -Wno-return-type \ -funsigned-char \ -m32 -mhard-float -fno-stack-protector -fno-common -fno-zero-initialized-in-bss -fno-strict-aliasing -fno-inline-functions -fno-inline-small-functions -fno-toplevel-reorder -ffreestanding -fwrapv \ CXXFLAGS := $(WARN) -std=c++20 -D_GNU_SOURCE -fpermissive -no-pie -nostdlib -march=i386 CFLAGS := $(WARN) -std=c99 -D_GNU_SOURCE -no-pie -nostdlib -march=i386 LDFLAGS := -m32 CPPFLAGS := -MMD ifneq ($(DEBUG),0) CXXFLAGS += -g CFLAGS += -g endif ifneq ($(ASAN),0) CXXFLAGS += -fsanitize=address LDFLAGS += -fsanitize=address endif ifneq ($(LTO),0) CXXFLAGS += -flto LDFLAGS += -flto endif TARGET := soh.elf INC_DIRS := $(addprefix -I, \ . \ assets \ build \ include \ src \ ../ZAPDTR/ZAPDUtils \ ../libultraship/libultraship \ ../libultraship/libultraship/Lib/spdlog/include \ ../libultraship/libultraship/Lib/Fast3D/U64 \ ../libultraship/libultraship/Lib/Fast3D/U64/PR \ ) LDDIRS := $(addprefix -L, \ ../external \ ../libultraship/ \ ) LDLIBS := \ $(ZAPDUTILS) \ $(addprefix -l, \ X11 \ dl \ bz2 \ z \ pthread \ atomic \ SDL2 \ GL \ GLEW \ storm \ ultraship \ ) \ ASSET_BIN_DIRS := $(shell find assets/* -type d -not -path "assets/xml*") ASSET_FILES_XML := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.xml)) ASSET_FILES_BIN := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.bin)) ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_XML:.xml=.c),$f) \ $(foreach f,$(ASSET_FILES_BIN:.bin=.bin.inc.c),build/$f) TEXTURE_FILES_PNG := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.png)) TEXTURE_FILES_JPG := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.jpg)) TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),build/$f) \ $(foreach f,$(TEXTURE_FILES_JPG:.jpg=.jpg.inc.c),build/$f) \ CXX_FILES := \ soh/Enhancements/debugconsole.cpp \ soh/GbiWrap.cpp \ soh/OTRGlobals.cpp \ soh/z_message_OTR.cpp \ soh/z_play_otr.cpp \ soh/z_scene_otr.cpp \ soh/Enhancements/debugger/debugger.cpp \ soh/Enhancements/debugger/debugSaveEditor.cpp \ soh/util.cpp C_FILES := \ soh/Enhancements/bootcommands.c \ soh/Enhancements/gameconsole.c \ soh/gu_pc.c \ soh/stubs.c \ src/boot/assert.c \ src/boot/boot_main.c \ src/boot/build.c \ src/boot/idle.c \ src/boot/is_debug.c \ src/boot/logutils.c \ src/boot/missing_gcc_functions.c \ src/boot/stackcheck.c \ src/boot/viconfig.c \ src/boot/yaz0.c \ src/boot/z_locale.c \ src/boot/z_std_dma.c \ src/buffers/gfxbuffers.c \ src/buffers/heaps.c \ src/buffers/zbuffer.c \ src/code/audioMgr.c \ src/code/audio_data.c \ src/code/audio_effects.c \ src/code/audio_heap.c \ src/code/audio_init_params.c \ src/code/audio_load.c \ src/code/audio_playback.c \ src/code/audio_seqplayer.c \ src/code/audio_sound_params.c \ src/code/audio_synthesis.c \ src/code/code_800430A0.c \ src/code/code_80043480.c \ src/code/code_8006C3A0.c \ src/code/code_8006C510.c \ src/code/code_80097A00.c \ src/code/code_800A9F30.c \ src/code/code_800ACE70.c \ src/code/code_800AD920.c \ src/code/code_800BB0A0.c \ src/code/code_800C3C20.c \ src/code/code_800D2E30.c \ src/code/code_800D31A0.c \ src/code/code_800E4FE0.c \ src/code/code_800E6840.c \ src/code/code_800EC960.c \ src/code/code_800F7260.c \ src/code/code_800F9280.c \ src/code/code_800FBCE0.c \ src/code/code_800FC620.c \ src/code/code_800FCE80.c \ src/code/code_800FD970.c \ src/code/code_801067F0.c \ src/code/code_801068B0.c \ src/code/db_camera.c \ src/code/debug_malloc.c \ src/code/fault.c \ src/code/fault_drawer.c \ src/code/flg_set.c \ src/code/game.c \ src/code/gamealloc.c \ src/code/gfxprint.c \ src/code/graph.c \ src/code/irqmgr.c \ src/code/jpegdecoder.c \ src/code/jpegutils.c \ src/code/listalloc.c \ src/code/loadfragment2.c \ src/code/logseverity.c \ src/code/main.c \ src/code/mempak.c \ src/code/mtxuty-cvt.c \ src/code/padmgr.c \ src/code/padsetup.c \ src/code/padutils.c \ src/code/PreRender.c \ src/code/printutils.c \ src/code/relocation.c \ src/code/sched.c \ src/code/shrink_window.c \ src/code/sleep.c \ src/code/speed_meter.c \ src/code/system_malloc.c \ src/code/sys_cfb.c \ src/code/sys_math.c \ src/code/sys_math3d.c \ src/code/sys_math_atan.c \ src/code/sys_matrix.c \ src/code/sys_ucode.c \ src/code/title_setup.c \ src/code/TwoHeadArena.c \ src/code/ucode_disas.c \ src/code/z_actor.c \ src/code/z_actor_dlftbls.c \ src/code/z_bgcheck.c \ src/code/z_camera.c \ src/code/z_collision_btltbls.c \ src/code/z_collision_check.c \ src/code/z_common_data.c \ src/code/z_construct.c \ src/code/z_debug.c \ src/code/z_debug_display.c \ src/code/z_demo.c \ src/code/z_DLF.c \ src/code/z_draw.c \ src/code/z_effect.c \ src/code/z_effect_soft_sprite.c \ src/code/z_effect_soft_sprite_dlftbls.c \ src/code/z_effect_soft_sprite_old_init.c \ src/code/z_eff_blure.c \ src/code/z_eff_shield_particle.c \ src/code/z_eff_spark.c \ src/code/z_eff_ss_dead.c \ src/code/z_elf_message.c \ src/code/z_en_a_keep.c \ src/code/z_en_item00.c \ src/code/z_face_reaction.c \ src/code/z_fbdemo.c \ src/code/z_fbdemo_circle.c \ src/code/z_fbdemo_fade.c \ src/code/z_fbdemo_triforce.c \ src/code/z_fbdemo_wipe1.c \ src/code/z_fcurve_data_skelanime.c \ src/code/z_frame_advance.c \ src/code/z_game_dlftbls.c \ src/code/z_game_over.c \ src/code/z_horse.c \ src/code/z_jpeg.c \ src/code/z_kaleido_manager.c \ src/code/z_kaleido_scope_call.c \ src/code/z_kaleido_setup.c \ src/code/z_kanfont.c \ src/code/z_kankyo.c \ src/code/z_lib.c \ src/code/z_lifemeter.c \ src/code/z_lights.c \ src/code/z_malloc.c \ src/code/z_map_data.c \ src/code/z_map_exp.c \ src/code/z_map_mark.c \ src/code/z_message_PAL.c \ src/code/z_moji.c \ src/code/z_msgevent.c \ src/code/z_olib.c \ src/code/z_onepointdemo.c \ src/code/z_onepointdemo_data.c \ src/code/z_parameter.c \ src/code/z_path.c \ src/code/z_play.c \ src/code/z_player_call.c \ src/code/z_player_lib.c \ src/code/z_prenmi.c \ src/code/z_prenmi_buff.c \ src/code/z_quake.c \ src/code/z_rcp.c \ src/code/z_room.c \ src/code/z_sample.c \ src/code/z_scene.c \ src/code/z_scene_table.c \ src/code/z_skelanime.c \ src/code/z_skin.c \ src/code/z_skin_awb.c \ src/code/z_skin_matrix.c \ src/code/z_sound_source.c \ src/code/z_sram.c \ src/code/z_ss_sram.c \ src/code/z_view.c \ src/code/z_vimode.c \ src/code/z_vismono.c \ src/code/z_vr_box.c \ src/code/z_vr_box_draw.c \ src/code/__osMalloc.c \ src/libultra/gu/coss.c \ src/libultra/gu/guLookAt.c \ src/libultra/gu/guLookAtHilite.c \ src/libultra/gu/guPerspectiveF.c \ src/libultra/gu/guPosition.c \ src/libultra/gu/guS2DInitBg.c \ src/libultra/gu/ortho.c \ src/libultra/gu/rotate.c \ src/libultra/gu/sins.c \ src/libultra/gu/sintable.c \ src/libultra/libc/sprintf.c \ src/overlays/actors/ovl_Arms_Hook/z_arms_hook.c \ src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.c \ src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.c \ src/overlays/actors/ovl_Arrow_Light/z_arrow_light.c \ src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.c \ src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.c \ src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.c \ src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.c \ src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.c \ src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.c \ src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.c \ src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.c \ src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.c \ src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.c \ src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c \ src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.c \ src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.c \ src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.c \ src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.c \ src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.c \ src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.c \ src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.c \ src/overlays/actors/ovl_Bg_Haka/z_bg_haka.c \ src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.c \ src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.c \ src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.c \ src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.c \ src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.c \ src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.c \ src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.c \ src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.c \ src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.c \ src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.c \ src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.c \ src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.c \ src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.c \ src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.c \ src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.c \ src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.c \ src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.c \ src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.c \ src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.c \ src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.c \ src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.c \ src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.c \ src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.c \ src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.c \ src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.c \ src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.c \ src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.c \ src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.c \ src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.c \ src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.c \ src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.c \ src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.c \ src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.c \ src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.c \ src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.c \ src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c \ src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c \ src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.c \ src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.c \ src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.c \ src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.c \ src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.c \ src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.c \ src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c \ src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.c \ src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.c \ src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.c \ src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.c \ src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.c \ src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.c \ src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.c \ src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.c \ src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.c \ src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.c \ src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.c \ src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.c \ src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.c \ src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.c \ src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.c \ src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.c \ src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.c \ src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.c \ src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.c \ src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.c \ src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.c \ src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.c \ src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.c \ src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.c \ src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.c \ src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.c \ src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.c \ src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.c \ src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.c \ src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.c \ src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.c \ src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.c \ src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.c \ src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.c \ src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.c \ src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.c \ src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.c \ src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.c \ src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.c \ src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.c \ src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.c \ src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.c \ src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.c \ src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.c \ src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.c \ src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.c \ src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c \ src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.c \ src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.c \ src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.c \ src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.c \ src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.c \ src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.c \ src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.c \ src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.c \ src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.c \ src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.c \ src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.c \ src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.c \ src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.c \ src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.c \ src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.c \ src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.c \ src/overlays/actors/ovl_Bg_Zg/z_bg_zg.c \ src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.c \ src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo_data.c \ src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c \ src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2_colchk.c \ src/overlays/actors/ovl_Boss_Fd/z_boss_fd.c \ src/overlays/actors/ovl_Boss_Fd/z_boss_fd_colchk.c \ src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.c \ src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2_data.c \ src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.c \ src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.c \ src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c \ src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c \ src/overlays/actors/ovl_Boss_Mo/z_boss_mo_colchk.c \ src/overlays/actors/ovl_Boss_Sst/z_boss_sst.c \ src/overlays/actors/ovl_Boss_Sst/z_boss_sst_colchk.c \ src/overlays/actors/ovl_Boss_Tw/z_boss_tw.c \ src/overlays/actors/ovl_Boss_Va/z_boss_va.c \ src/overlays/actors/ovl_Demo_6K/z_demo_6k.c \ src/overlays/actors/ovl_Demo_Du/z_demo_du.c \ src/overlays/actors/ovl_Demo_Du/z_demo_du_cutscene_data.c \ src/overlays/actors/ovl_Demo_Ec/z_demo_ec.c \ src/overlays/actors/ovl_Demo_Effect/z_demo_effect.c \ src/overlays/actors/ovl_Demo_Ext/z_demo_ext.c \ src/overlays/actors/ovl_Demo_Geff/z_demo_geff.c \ src/overlays/actors/ovl_Demo_Gj/z_demo_gj.c \ src/overlays/actors/ovl_Demo_Go/z_demo_go.c \ src/overlays/actors/ovl_Demo_Gt/z_demo_gt.c \ src/overlays/actors/ovl_Demo_Ik/z_demo_ik.c \ src/overlays/actors/ovl_Demo_Im/z_demo_im.c \ src/overlays/actors/ovl_Demo_Im/z_demo_im_cutscene_data.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.c \ src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.c \ src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.c \ src/overlays/actors/ovl_Demo_Sa/z_demo_sa.c \ src/overlays/actors/ovl_Demo_Sa/z_demo_sa_cutscene_data.c \ src/overlays/actors/ovl_Demo_Shd/z_demo_shd.c \ src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.c \ src/overlays/actors/ovl_Door_Ana/z_door_ana.c \ src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.c \ src/overlays/actors/ovl_Door_Killer/z_door_killer.c \ src/overlays/actors/ovl_Door_Shutter/z_door_shutter.c \ src/overlays/actors/ovl_Door_Toki/z_door_toki.c \ src/overlays/actors/ovl_Door_Warp1/z_door_warp1.c \ src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.c \ src/overlays/actors/ovl_Eff_Dust/z_eff_dust.c \ src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.c \ src/overlays/actors/ovl_Elf_Msg/z_elf_msg.c \ src/overlays/actors/ovl_End_Title/z_end_title.c \ src/overlays/actors/ovl_En_Am/z_en_am.c \ src/overlays/actors/ovl_En_Ani/z_en_ani.c \ src/overlays/actors/ovl_En_Anubice/z_en_anubice.c \ src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.c \ src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.c \ src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.c \ src/overlays/actors/ovl_En_Arrow/z_en_arrow.c \ src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.c \ src/overlays/actors/ovl_En_Ba/z_en_ba.c \ src/overlays/actors/ovl_En_Bb/z_en_bb.c \ src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.c \ src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.c \ src/overlays/actors/ovl_En_Bili/z_en_bili.c \ src/overlays/actors/ovl_En_Bird/z_en_bird.c \ src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.c \ src/overlays/actors/ovl_En_Bombf/z_en_bombf.c \ src/overlays/actors/ovl_En_Bom/z_en_bom.c \ src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.c \ src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.c \ src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.c \ src/overlays/actors/ovl_En_Boom/z_en_boom.c \ src/overlays/actors/ovl_En_Box/z_en_box.c \ src/overlays/actors/ovl_En_Brob/z_en_brob.c \ src/overlays/actors/ovl_En_Bubble/z_en_bubble.c \ src/overlays/actors/ovl_En_Butte/z_en_butte.c \ src/overlays/actors/ovl_En_Bw/z_en_bw.c \ src/overlays/actors/ovl_En_Bx/z_en_bx.c \ src/overlays/actors/ovl_En_Changer/z_en_changer.c \ src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.c \ src/overlays/actors/ovl_En_Cow/z_en_cow.c \ src/overlays/actors/ovl_En_Crow/z_en_crow.c \ src/overlays/actors/ovl_En_Cs/z_en_cs.c \ src/overlays/actors/ovl_En_Daiku/z_en_daiku.c \ src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.c \ src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.c \ src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.c \ src/overlays/actors/ovl_En_Dha/z_en_dha.c \ src/overlays/actors/ovl_En_Dh/z_en_dh.c \ src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.c \ src/overlays/actors/ovl_En_Dns/z_en_dns.c \ src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.c \ src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.c \ src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.c \ src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.c \ src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.c \ src/overlays/actors/ovl_En_Dog/z_en_dog.c \ src/overlays/actors/ovl_En_Door/z_en_door.c \ src/overlays/actors/ovl_En_Ds/z_en_ds.c \ src/overlays/actors/ovl_En_Du/z_en_du.c \ src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.c \ src/overlays/actors/ovl_En_Eg/z_en_eg.c \ src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.c \ src/overlays/actors/ovl_En_Elf/z_en_elf.c \ src/overlays/actors/ovl_En_Encount1/z_en_encount1.c \ src/overlays/actors/ovl_En_Encount2/z_en_encount2.c \ src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.c \ src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.c \ src/overlays/actors/ovl_En_Fd/z_en_fd.c \ src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.c \ src/overlays/actors/ovl_En_fHG/z_en_fhg.c \ src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.c \ src/overlays/actors/ovl_En_Firefly/z_en_firefly.c \ src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.c \ src/overlays/actors/ovl_En_Fish/z_en_fish.c \ src/overlays/actors/ovl_En_Floormas/z_en_floormas.c \ src/overlays/actors/ovl_En_Fr/z_en_fr.c \ src/overlays/actors/ovl_En_Fu/z_en_fu.c \ src/overlays/actors/ovl_En_Fw/z_en_fw.c \ src/overlays/actors/ovl_En_Fz/z_en_fz.c \ src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.c \ src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.c \ src/overlays/actors/ovl_En_Gb/z_en_gb.c \ src/overlays/actors/ovl_En_Ge1/z_en_ge1.c \ src/overlays/actors/ovl_En_Ge2/z_en_ge2.c \ src/overlays/actors/ovl_En_Ge3/z_en_ge3.c \ src/overlays/actors/ovl_En_GeldB/z_en_geldb.c \ src/overlays/actors/ovl_En_GirlA/z_en_girla.c \ src/overlays/actors/ovl_En_Gm/z_en_gm.c \ src/overlays/actors/ovl_En_Go2/z_en_go2.c \ src/overlays/actors/ovl_En_Goma/z_en_goma.c \ src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c \ src/overlays/actors/ovl_En_Go/z_en_go.c \ src/overlays/actors/ovl_En_Gs/z_en_gs.c \ src/overlays/actors/ovl_En_Guest/z_en_guest.c \ src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.c \ src/overlays/actors/ovl_En_Hata/z_en_hata.c \ src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.c \ src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.c \ src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.c \ src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.c \ src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.c \ src/overlays/actors/ovl_En_Holl/z_en_holl.c \ src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.c \ src/overlays/actors/ovl_En_Horse/z_en_horse.c \ src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.c \ src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.c \ src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.c \ src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.c \ src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.c \ src/overlays/actors/ovl_En_Hs2/z_en_hs2.c \ src/overlays/actors/ovl_En_Hs/z_en_hs.c \ src/overlays/actors/ovl_En_Hy/z_en_hy.c \ src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.c \ src/overlays/actors/ovl_En_Ik/z_en_ik.c \ src/overlays/actors/ovl_En_Insect/z_en_insect.c \ src/overlays/actors/ovl_En_In/z_en_in.c \ src/overlays/actors/ovl_En_Ishi/z_en_ishi.c \ src/overlays/actors/ovl_En_It/z_en_it.c \ src/overlays/actors/ovl_En_Jj/z_en_jj.c \ src/overlays/actors/ovl_En_Jj/z_en_jj_cutscene_data.c \ src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.c \ src/overlays/actors/ovl_En_Js/z_en_js.c \ src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.c \ src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.c \ src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.c \ src/overlays/actors/ovl_En_Kanban/z_en_kanban.c \ src/overlays/actors/ovl_En_Kanban/z_en_kanban_gfx.c \ src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.c \ src/overlays/actors/ovl_En_Ko/z_en_ko.c \ src/overlays/actors/ovl_En_Kusa/z_en_kusa.c \ src/overlays/actors/ovl_En_Kz/z_en_kz.c \ src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.c \ src/overlays/actors/ovl_En_Light/z_en_light.c \ src/overlays/actors/ovl_En_Ma1/z_en_ma1.c \ src/overlays/actors/ovl_En_Ma2/z_en_ma2.c \ src/overlays/actors/ovl_En_Ma3/z_en_ma3.c \ src/overlays/actors/ovl_En_Mag/z_en_mag.c \ src/overlays/actors/ovl_En_Mb/z_en_mb.c \ src/overlays/actors/ovl_En_Md/z_en_md.c \ src/overlays/actors/ovl_En_Mk/z_en_mk.c \ src/overlays/actors/ovl_En_Mm2/z_en_mm2.c \ src/overlays/actors/ovl_En_Mm/z_en_mm.c \ src/overlays/actors/ovl_En_Ms/z_en_ms.c \ src/overlays/actors/ovl_En_Mu/z_en_mu.c \ src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.c \ src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.c \ src/overlays/actors/ovl_En_Nb/z_en_nb.c \ src/overlays/actors/ovl_En_Nb/z_en_nb_cutscene_data.c \ src/overlays/actors/ovl_En_Niw/z_en_niw.c \ src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.c \ src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.c \ src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.c \ src/overlays/actors/ovl_En_Nwc/z_en_nwc.c \ src/overlays/actors/ovl_En_Ny/z_en_ny.c \ src/overlays/actors/ovl_En_OE2/z_en_oe2.c \ src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.c \ src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.c \ src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.c \ src/overlays/actors/ovl_En_Okuta/z_en_okuta.c \ src/overlays/actors/ovl_En_Ossan/z_en_ossan.c \ src/overlays/actors/ovl_En_Owl/z_en_owl.c \ src/overlays/actors/ovl_En_Part/z_en_part.c \ src/overlays/actors/ovl_En_Peehat/z_en_peehat.c \ src/overlays/actors/ovl_En_Poh/z_en_poh.c \ src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.c \ src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c \ src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.c \ src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.c \ src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.c \ src/overlays/actors/ovl_En_Rd/z_en_rd.c \ src/overlays/actors/ovl_En_Reeba/z_en_reeba.c \ src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.c \ src/overlays/actors/ovl_En_Rl/z_en_rl.c \ src/overlays/actors/ovl_En_Rr/z_en_rr.c \ src/overlays/actors/ovl_En_Ru1/z_en_ru1.c \ src/overlays/actors/ovl_En_Ru1/z_en_ru1_cutscene_data.c \ src/overlays/actors/ovl_En_Ru2/z_en_ru2.c \ src/overlays/actors/ovl_En_Ru2/z_en_ru2_cutscene_data.c \ src/overlays/actors/ovl_En_Sa/z_en_sa.c \ src/overlays/actors/ovl_En_Sb/z_en_sb.c \ src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.c \ src/overlays/actors/ovl_En_Sda/z_en_sda.c \ src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.c \ src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.c \ src/overlays/actors/ovl_En_Si/z_en_si.c \ src/overlays/actors/ovl_En_Skb/z_en_skb.c \ src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.c \ src/overlays/actors/ovl_En_Skj/z_en_skj.c \ src/overlays/actors/ovl_En_Ssh/z_en_ssh.c \ src/overlays/actors/ovl_En_Sth/z_en_sth.c \ src/overlays/actors/ovl_En_Stream/z_en_stream.c \ src/overlays/actors/ovl_En_St/z_en_st.c \ src/overlays/actors/ovl_En_Sw/z_en_sw.c \ src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.c \ src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.c \ src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.c \ src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.c \ src/overlays/actors/ovl_En_Tana/z_en_tana.c \ src/overlays/actors/ovl_En_Ta/z_en_ta.c \ src/overlays/actors/ovl_En_Test/z_en_test.c \ src/overlays/actors/ovl_En_Tg/z_en_tg.c \ src/overlays/actors/ovl_En_Tite/z_en_tite.c \ src/overlays/actors/ovl_En_Tk/z_en_tk.c \ src/overlays/actors/ovl_En_Torch2/z_en_torch2.c \ src/overlays/actors/ovl_En_Torch/z_en_torch.c \ src/overlays/actors/ovl_En_Toryo/z_en_toryo.c \ src/overlays/actors/ovl_En_Tp/z_en_tp.c \ src/overlays/actors/ovl_En_Trap/z_en_trap.c \ src/overlays/actors/ovl_En_Tr/z_en_tr.c \ src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.c \ src/overlays/actors/ovl_En_Vali/z_en_vali.c \ src/overlays/actors/ovl_En_Vase/z_en_vase.c \ src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.c \ src/overlays/actors/ovl_En_Viewer/z_en_viewer.c \ src/overlays/actors/ovl_En_Vm/z_en_vm.c \ src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.c \ src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.c \ src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.c \ src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.c \ src/overlays/actors/ovl_En_Wf/z_en_wf.c \ src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.c \ src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.c \ src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.c \ src/overlays/actors/ovl_En_Wood02/z_en_wood02.c \ src/overlays/actors/ovl_En_Xc/z_en_xc.c \ src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.c \ src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.c \ src/overlays/actors/ovl_En_Zf/z_en_zf.c \ src/overlays/actors/ovl_En_Zl1/z_en_zl1.c \ src/overlays/actors/ovl_En_Zl1/z_en_zl1_camera_data.c \ src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.c \ src/overlays/actors/ovl_En_Zl2/z_en_zl2.c \ src/overlays/actors/ovl_En_Zl3/z_en_zl3.c \ src/overlays/actors/ovl_En_Zl4/z_en_zl4.c \ src/overlays/actors/ovl_En_Zl4/z_en_zl4_cutscene_data.c \ src/overlays/actors/ovl_En_Zo/z_en_zo.c \ src/overlays/actors/ovl_Fishing/z_fishing.c \ src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.c \ src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.c \ src/overlays/actors/ovl_Item_Inbox/z_item_inbox.c \ src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.c \ src/overlays/actors/ovl_Item_Shield/z_item_shield.c \ src/overlays/actors/ovl_Magic_Dark/z_magic_dark.c \ src/overlays/actors/ovl_Magic_Fire/z_magic_fire.c \ src/overlays/actors/ovl_Magic_Wind/z_magic_wind.c \ src/overlays/actors/ovl_Mir_Ray/z_mir_ray.c \ src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.c \ src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c \ src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.c \ src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.c \ src/overlays/actors/ovl_Obj_Comb/z_obj_comb.c \ src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.c \ src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.c \ src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.c \ src/overlays/actors/ovl_Obj_Hana/z_obj_hana.c \ src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.c \ src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.c \ src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.c \ src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.c \ src/overlays/actors/ovl_Obj_Lift/z_obj_lift.c \ src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c \ src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c \ src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c \ src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.c \ src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.c \ src/overlays/actors/ovl_Obj_Mure/z_obj_mure.c \ src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.c \ src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.c \ src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c \ src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.c \ src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.c \ src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.c \ src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c \ src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c \ src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.c \ src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.c \ src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.c \ src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.c \ src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.c \ src/overlays/actors/ovl_player_actor/z_player.c \ src/overlays/actors/ovl_Shot_Sun/z_shot_sun.c \ src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.c \ src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.c \ src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.c \ src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.c \ src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.c \ src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.c \ src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.c \ src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.c \ src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.c \ src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.c \ src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.c \ src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.c \ src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.c \ src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.c \ src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.c \ src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.c \ src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.c \ src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.c \ src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.c \ src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.c \ src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.c \ src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.c \ src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.c \ src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.c \ src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.c \ src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.c \ src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.c \ src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.c \ src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.c \ src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.c \ src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.c \ src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.c \ src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.c \ src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.c \ src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.c \ src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.c \ src/overlays/gamestates/ovl_file_choose/z_file_choose.c \ src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.c \ src/overlays/gamestates/ovl_file_choose/z_file_nameset_data.c \ src/overlays/gamestates/ovl_file_choose/z_file_nameset_PAL.c \ src/overlays/gamestates/ovl_opening/z_opening.c \ src/overlays/gamestates/ovl_select/z_select.c \ src/overlays/gamestates/ovl_title/z_title.c \ src/overlays/misc/ovl_kaleido_scope/z_kaleido_collect.c \ src/overlays/misc/ovl_kaleido_scope/z_kaleido_debug.c \ src/overlays/misc/ovl_kaleido_scope/z_kaleido_equipment.c \ src/overlays/misc/ovl_kaleido_scope/z_kaleido_item.c \ src/overlays/misc/ovl_kaleido_scope/z_kaleido_map_PAL.c \ src/overlays/misc/ovl_kaleido_scope/z_kaleido_prompt.c \ src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope_PAL.c \ src/overlays/misc/ovl_kaleido_scope/z_lmap_mark.c \ src/overlays/misc/ovl_kaleido_scope/z_lmap_mark_data.c \ src/overlays/misc/ovl_map_mark_data/z_map_mark_data.c O_FILES := \ $(C_FILES:%.c=build/%.o) \ $(CXX_FILES:%.cpp=build/%.o) D_FILES := $(O_FILES:%.o=%.d) # create build directory SRC_DIRS := $(shell find . -type d -a -not -path "*build*") $(shell mkdir -p $(SRC_DIRS:%=build/%)) all: $(MAKE) -C ../libultraship $(MAKE) $(TARGET) setup: python3 $(EXTRACT_BASEROM) $(MAKE) mpq mpq: $(MAKE) -C ../libultraship $(MAKE) -C ../OTRExporter/OTRExporter $(MAKE) -C ../ZAPDTR rm -rf ../OTRExporter/oot.otr cd ../OTRExporter && python3 extract_assets.py cp ../OTRExporter/oot.otr . distclean: clean $(RM) -r baserom/ clean: rm -rf build $(TARGET) .PHONY: all clean distclean setup mpq build/%.o: %.cpp $(CXX) -c $(CXXFLAGS) $(CPPFLAGS) $(OPTFLAGS) $(INC_DIRS) $< -o $@ build/%.o: %.c $(CC) -c $(CFLAGS) $(CPPFLAGS) $(OPTFLAGS) $(INC_DIRS) $< -o $@ # make soh depend on libultraship $(TARGET): $(LIBULTRASHIP) $(TARGET): $(O_FILES) $(CXX) $^ -o $@ $(LDFLAGS) -fuse-ld=$(LD) $(LDDIRS) $(LDLIBS) -include $(D_FILES)