From 04a9d51e90bd87acf7205462b7206dd91ddb139c Mon Sep 17 00:00:00 2001 From: Tharo <17233964+Thar0@users.noreply.github.com> Date: Tue, 30 Nov 2021 23:29:09 +0000 Subject: [PATCH] Rework handling of dmadata (#1036) * Generate dmadata * Remove tab indentations in mkdmadata.c and mkldscript.c * Fix * Review suggestions * Hopefully fix * Fix index Co-authored-by: Dragorn421 Co-authored-by: Dragorn421 --- Makefile | 15 +- asm/dmadata.s | 1545 -------------------------- include/tables/dmadata_table.h | 9 + include/tables/dmadata_table_mqdbg.h | 1535 +++++++++++++++++++++++++ spec | 2 +- src/boot/z_std_dma.c | 1540 +------------------------ src/dmadata/dmadata.c | 24 + tools/.gitignore | 5 +- tools/Makefile | 9 +- tools/mkdmadata.c | 55 + tools/mkldscript.c | 391 +------ tools/spec.c | 284 +++++ tools/spec.h | 58 + 13 files changed, 2034 insertions(+), 3438 deletions(-) delete mode 100644 asm/dmadata.s create mode 100644 include/tables/dmadata_table.h create mode 100644 include/tables/dmadata_table_mqdbg.h create mode 100644 src/dmadata/dmadata.c create mode 100644 tools/mkdmadata.c create mode 100644 tools/spec.c create mode 100644 tools/spec.h diff --git a/Makefile b/Makefile index 1954b43e21..c48e9855b4 100644 --- a/Makefile +++ b/Makefile @@ -71,6 +71,7 @@ CC_CHECK := gcc -fno-builtin -fsyntax-only -fsigned-char -std=gnu90 -D _LANGUA CPP := cpp MKLDSCRIPT := tools/mkldscript +MKDMADATA := tools/mkdmadata ELF2ROM := tools/elf2rom ZAPD := tools/ZAPD/ZAPD.out @@ -172,9 +173,11 @@ $(ROM): $(ELF) $(ELF): $(TEXTURE_FILES_OUT) $(ASSET_FILES_OUT) $(O_FILES) build/ldscript.txt build/undefined_syms.txt $(LD) -T build/undefined_syms.txt -T build/ldscript.txt --no-check-sections --accept-unknown-input-arch --emit-relocs -Map build/z64.map -o $@ -build/ldscript.txt: $(SPEC) - $(CPP) $(CPPFLAGS) $< > build/spec - $(MKLDSCRIPT) build/spec $@ +build/$(SPEC): $(SPEC) + $(CPP) $(CPPFLAGS) $< > $@ + +build/ldscript.txt: build/$(SPEC) + $(MKLDSCRIPT) $< $@ build/undefined_syms.txt: undefined_syms.txt $(CPP) $(CPPFLAGS) $< > build/undefined_syms.txt @@ -227,6 +230,12 @@ build/assets/%.o: assets/%.c $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< $(OBJCOPY) -O binary $@ $@.bin +build/dmadata_table_spec.h: build/$(SPEC) + $(MKDMADATA) $< $@ + +build/src/boot/z_std_dma.o: build/dmadata_table_spec.h +build/src/dmadata/dmadata.o: build/dmadata_table_spec.h + build/src/overlays/%.o: src/overlays/%.c $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< $(CC_CHECK) $< diff --git a/asm/dmadata.s b/asm/dmadata.s deleted file mode 100644 index aa97847800..0000000000 --- a/asm/dmadata.s +++ /dev/null @@ -1,1545 +0,0 @@ -.include "macro.inc" - -.macro DMA_TABLE_ENTRY segment - .4byte _\segment\()SegmentRomStart - .4byte _\segment\()SegmentRomEnd - .4byte _\segment\()SegmentRomStart - .4byte 0 -.endm - -glabel gDmaDataTable -DMA_TABLE_ENTRY makerom -DMA_TABLE_ENTRY boot -DMA_TABLE_ENTRY dmadata -DMA_TABLE_ENTRY Audiobank -DMA_TABLE_ENTRY Audioseq -DMA_TABLE_ENTRY Audiotable -DMA_TABLE_ENTRY link_animetion -DMA_TABLE_ENTRY icon_item_static -DMA_TABLE_ENTRY icon_item_24_static -DMA_TABLE_ENTRY icon_item_field_static -DMA_TABLE_ENTRY icon_item_dungeon_static -DMA_TABLE_ENTRY icon_item_gameover_static -DMA_TABLE_ENTRY icon_item_nes_static -DMA_TABLE_ENTRY icon_item_ger_static -DMA_TABLE_ENTRY icon_item_fra_static -DMA_TABLE_ENTRY item_name_static -DMA_TABLE_ENTRY map_name_static -DMA_TABLE_ENTRY do_action_static -DMA_TABLE_ENTRY message_static -DMA_TABLE_ENTRY message_texture_static -DMA_TABLE_ENTRY nes_font_static -DMA_TABLE_ENTRY nes_message_data_static -DMA_TABLE_ENTRY ger_message_data_static -DMA_TABLE_ENTRY fra_message_data_static -DMA_TABLE_ENTRY staff_message_data_static -DMA_TABLE_ENTRY map_grand_static -DMA_TABLE_ENTRY map_i_static -DMA_TABLE_ENTRY map_48x85_static -DMA_TABLE_ENTRY code -DMA_TABLE_ENTRY ovl_title -DMA_TABLE_ENTRY ovl_select -DMA_TABLE_ENTRY ovl_opening -DMA_TABLE_ENTRY ovl_file_choose -DMA_TABLE_ENTRY ovl_kaleido_scope -DMA_TABLE_ENTRY ovl_player_actor -DMA_TABLE_ENTRY ovl_map_mark_data -DMA_TABLE_ENTRY ovl_En_Test -DMA_TABLE_ENTRY ovl_Arms_Hook -DMA_TABLE_ENTRY ovl_Arrow_Fire -DMA_TABLE_ENTRY ovl_Arrow_Ice -DMA_TABLE_ENTRY ovl_Arrow_Light -DMA_TABLE_ENTRY ovl_Bg_Bdan_Objects -DMA_TABLE_ENTRY ovl_Bg_Bdan_Switch -DMA_TABLE_ENTRY ovl_Bg_Bom_Guard -DMA_TABLE_ENTRY ovl_Bg_Bombwall -DMA_TABLE_ENTRY ovl_Bg_Bowl_Wall -DMA_TABLE_ENTRY ovl_Bg_Breakwall -DMA_TABLE_ENTRY ovl_Bg_Ddan_Jd -DMA_TABLE_ENTRY ovl_Bg_Ddan_Kd -DMA_TABLE_ENTRY ovl_Bg_Dodoago -DMA_TABLE_ENTRY ovl_Bg_Dy_Yoseizo -DMA_TABLE_ENTRY ovl_Bg_Ganon_Otyuka -DMA_TABLE_ENTRY ovl_Bg_Gate_Shutter -DMA_TABLE_ENTRY ovl_Bg_Gjyo_Bridge -DMA_TABLE_ENTRY ovl_Bg_Gnd_Darkmeiro -DMA_TABLE_ENTRY ovl_Bg_Gnd_Firemeiro -DMA_TABLE_ENTRY ovl_Bg_Gnd_Iceblock -DMA_TABLE_ENTRY ovl_Bg_Gnd_Nisekabe -DMA_TABLE_ENTRY ovl_Bg_Gnd_Soulmeiro -DMA_TABLE_ENTRY ovl_Bg_Haka -DMA_TABLE_ENTRY ovl_Bg_Haka_Gate -DMA_TABLE_ENTRY ovl_Bg_Haka_Huta -DMA_TABLE_ENTRY ovl_Bg_Haka_Megane -DMA_TABLE_ENTRY ovl_Bg_Haka_MeganeBG -DMA_TABLE_ENTRY ovl_Bg_Haka_Sgami -DMA_TABLE_ENTRY ovl_Bg_Haka_Ship -DMA_TABLE_ENTRY ovl_Bg_Haka_Trap -DMA_TABLE_ENTRY ovl_Bg_Haka_Tubo -DMA_TABLE_ENTRY ovl_Bg_Haka_Water -DMA_TABLE_ENTRY ovl_Bg_Haka_Zou -DMA_TABLE_ENTRY ovl_Bg_Heavy_Block -DMA_TABLE_ENTRY ovl_Bg_Hidan_Curtain -DMA_TABLE_ENTRY ovl_Bg_Hidan_Dalm -DMA_TABLE_ENTRY ovl_Bg_Hidan_Firewall -DMA_TABLE_ENTRY ovl_Bg_Hidan_Fslift -DMA_TABLE_ENTRY ovl_Bg_Hidan_Fwbig -DMA_TABLE_ENTRY ovl_Bg_Hidan_Hamstep -DMA_TABLE_ENTRY ovl_Bg_Hidan_Hrock -DMA_TABLE_ENTRY ovl_Bg_Hidan_Kousi -DMA_TABLE_ENTRY ovl_Bg_Hidan_Kowarerukabe -DMA_TABLE_ENTRY ovl_Bg_Hidan_Rock -DMA_TABLE_ENTRY ovl_Bg_Hidan_Rsekizou -DMA_TABLE_ENTRY ovl_Bg_Hidan_Sekizou -DMA_TABLE_ENTRY ovl_Bg_Hidan_Sima -DMA_TABLE_ENTRY ovl_Bg_Hidan_Syoku -DMA_TABLE_ENTRY ovl_Bg_Ice_Objects -DMA_TABLE_ENTRY ovl_Bg_Ice_Shelter -DMA_TABLE_ENTRY ovl_Bg_Ice_Shutter -DMA_TABLE_ENTRY ovl_Bg_Ice_Turara -DMA_TABLE_ENTRY ovl_Bg_Ingate -DMA_TABLE_ENTRY ovl_Bg_Jya_1flift -DMA_TABLE_ENTRY ovl_Bg_Jya_Amishutter -DMA_TABLE_ENTRY ovl_Bg_Jya_Bigmirror -DMA_TABLE_ENTRY ovl_Bg_Jya_Block -DMA_TABLE_ENTRY ovl_Bg_Jya_Bombchuiwa -DMA_TABLE_ENTRY ovl_Bg_Jya_Bombiwa -DMA_TABLE_ENTRY ovl_Bg_Jya_Cobra -DMA_TABLE_ENTRY ovl_Bg_Jya_Goroiwa -DMA_TABLE_ENTRY ovl_Bg_Jya_Haheniron -DMA_TABLE_ENTRY ovl_Bg_Jya_Ironobj -DMA_TABLE_ENTRY ovl_Bg_Jya_Kanaami -DMA_TABLE_ENTRY ovl_Bg_Jya_Lift -DMA_TABLE_ENTRY ovl_Bg_Jya_Megami -DMA_TABLE_ENTRY ovl_Bg_Jya_Zurerukabe -DMA_TABLE_ENTRY ovl_Bg_Menkuri_Eye -DMA_TABLE_ENTRY ovl_Bg_Menkuri_Kaiten -DMA_TABLE_ENTRY ovl_Bg_Menkuri_Nisekabe -DMA_TABLE_ENTRY ovl_Bg_Mizu_Bwall -DMA_TABLE_ENTRY ovl_Bg_Mizu_Movebg -DMA_TABLE_ENTRY ovl_Bg_Mizu_Shutter -DMA_TABLE_ENTRY ovl_Bg_Mizu_Uzu -DMA_TABLE_ENTRY ovl_Bg_Mizu_Water -DMA_TABLE_ENTRY ovl_Bg_Mjin -DMA_TABLE_ENTRY ovl_Bg_Mori_Bigst -DMA_TABLE_ENTRY ovl_Bg_Mori_Elevator -DMA_TABLE_ENTRY ovl_Bg_Mori_Hashigo -DMA_TABLE_ENTRY ovl_Bg_Mori_Hashira4 -DMA_TABLE_ENTRY ovl_Bg_Mori_Hineri -DMA_TABLE_ENTRY ovl_Bg_Mori_Idomizu -DMA_TABLE_ENTRY ovl_Bg_Mori_Kaitenkabe -DMA_TABLE_ENTRY ovl_Bg_Mori_Rakkatenjo -DMA_TABLE_ENTRY ovl_Bg_Po_Event -DMA_TABLE_ENTRY ovl_Bg_Po_Syokudai -DMA_TABLE_ENTRY ovl_Bg_Pushbox -DMA_TABLE_ENTRY ovl_Bg_Relay_Objects -DMA_TABLE_ENTRY ovl_Bg_Spot00_Break -DMA_TABLE_ENTRY ovl_Bg_Spot00_Hanebasi -DMA_TABLE_ENTRY ovl_Bg_Spot01_Fusya -DMA_TABLE_ENTRY ovl_Bg_Spot01_Idohashira -DMA_TABLE_ENTRY ovl_Bg_Spot01_Idomizu -DMA_TABLE_ENTRY ovl_Bg_Spot01_Idosoko -DMA_TABLE_ENTRY ovl_Bg_Spot01_Objects2 -DMA_TABLE_ENTRY ovl_Bg_Spot02_Objects -DMA_TABLE_ENTRY ovl_Bg_Spot03_Taki -DMA_TABLE_ENTRY ovl_Bg_Spot05_Soko -DMA_TABLE_ENTRY ovl_Bg_Spot06_Objects -DMA_TABLE_ENTRY ovl_Bg_Spot07_Taki -DMA_TABLE_ENTRY ovl_Bg_Spot08_Bakudankabe -DMA_TABLE_ENTRY ovl_Bg_Spot08_Iceblock -DMA_TABLE_ENTRY ovl_Bg_Spot09_Obj -DMA_TABLE_ENTRY ovl_Bg_Spot11_Bakudankabe -DMA_TABLE_ENTRY ovl_Bg_Spot11_Oasis -DMA_TABLE_ENTRY ovl_Bg_Spot12_Gate -DMA_TABLE_ENTRY ovl_Bg_Spot12_Saku -DMA_TABLE_ENTRY ovl_Bg_Spot15_Rrbox -DMA_TABLE_ENTRY ovl_Bg_Spot15_Saku -DMA_TABLE_ENTRY ovl_Bg_Spot16_Bombstone -DMA_TABLE_ENTRY ovl_Bg_Spot16_Doughnut -DMA_TABLE_ENTRY ovl_Bg_Spot17_Bakudankabe -DMA_TABLE_ENTRY ovl_Bg_Spot17_Funen -DMA_TABLE_ENTRY ovl_Bg_Spot18_Basket -DMA_TABLE_ENTRY ovl_Bg_Spot18_Futa -DMA_TABLE_ENTRY ovl_Bg_Spot18_Obj -DMA_TABLE_ENTRY ovl_Bg_Spot18_Shutter -DMA_TABLE_ENTRY ovl_Bg_Sst_Floor -DMA_TABLE_ENTRY ovl_Bg_Toki_Hikari -DMA_TABLE_ENTRY ovl_Bg_Toki_Swd -DMA_TABLE_ENTRY ovl_Bg_Treemouth -DMA_TABLE_ENTRY ovl_Bg_Umajump -DMA_TABLE_ENTRY ovl_Bg_Vb_Sima -DMA_TABLE_ENTRY ovl_Bg_Ydan_Hasi -DMA_TABLE_ENTRY ovl_Bg_Ydan_Maruta -DMA_TABLE_ENTRY ovl_Bg_Ydan_Sp -DMA_TABLE_ENTRY ovl_Bg_Zg -DMA_TABLE_ENTRY ovl_Boss_Dodongo -DMA_TABLE_ENTRY ovl_Boss_Fd -DMA_TABLE_ENTRY ovl_Boss_Fd2 -DMA_TABLE_ENTRY ovl_Boss_Ganon -DMA_TABLE_ENTRY ovl_Boss_Ganon2 -DMA_TABLE_ENTRY ovl_Boss_Ganondrof -DMA_TABLE_ENTRY ovl_Boss_Goma -DMA_TABLE_ENTRY ovl_Boss_Mo -DMA_TABLE_ENTRY ovl_Boss_Sst -DMA_TABLE_ENTRY ovl_Boss_Tw -DMA_TABLE_ENTRY ovl_Boss_Va -DMA_TABLE_ENTRY ovl_Demo_6K -DMA_TABLE_ENTRY ovl_Demo_Du -DMA_TABLE_ENTRY ovl_Demo_Ec -DMA_TABLE_ENTRY ovl_Demo_Effect -DMA_TABLE_ENTRY ovl_Demo_Ext -DMA_TABLE_ENTRY ovl_Demo_Geff -DMA_TABLE_ENTRY ovl_Demo_Gj -DMA_TABLE_ENTRY ovl_Demo_Go -DMA_TABLE_ENTRY ovl_Demo_Gt -DMA_TABLE_ENTRY ovl_Demo_Ik -DMA_TABLE_ENTRY ovl_Demo_Im -DMA_TABLE_ENTRY ovl_Demo_Kankyo -DMA_TABLE_ENTRY ovl_Demo_Kekkai -DMA_TABLE_ENTRY ovl_Demo_Sa -DMA_TABLE_ENTRY ovl_Demo_Shd -DMA_TABLE_ENTRY ovl_Demo_Tre_Lgt -DMA_TABLE_ENTRY ovl_Door_Ana -DMA_TABLE_ENTRY ovl_Door_Gerudo -DMA_TABLE_ENTRY ovl_Door_Killer -DMA_TABLE_ENTRY ovl_Door_Shutter -DMA_TABLE_ENTRY ovl_Door_Toki -DMA_TABLE_ENTRY ovl_Door_Warp1 -DMA_TABLE_ENTRY ovl_Efc_Erupc -DMA_TABLE_ENTRY ovl_Eff_Dust -DMA_TABLE_ENTRY ovl_Effect_Ss_Blast -DMA_TABLE_ENTRY ovl_Effect_Ss_Bomb -DMA_TABLE_ENTRY ovl_Effect_Ss_Bomb2 -DMA_TABLE_ENTRY ovl_Effect_Ss_Bubble -DMA_TABLE_ENTRY ovl_Effect_Ss_D_Fire -DMA_TABLE_ENTRY ovl_Effect_Ss_Dead_Db -DMA_TABLE_ENTRY ovl_Effect_Ss_Dead_Dd -DMA_TABLE_ENTRY ovl_Effect_Ss_Dead_Ds -DMA_TABLE_ENTRY ovl_Effect_Ss_Dead_Sound -DMA_TABLE_ENTRY ovl_Effect_Ss_Dt_Bubble -DMA_TABLE_ENTRY ovl_Effect_Ss_Dust -DMA_TABLE_ENTRY ovl_Effect_Ss_En_Fire -DMA_TABLE_ENTRY ovl_Effect_Ss_En_Ice -DMA_TABLE_ENTRY ovl_Effect_Ss_Extra -DMA_TABLE_ENTRY ovl_Effect_Ss_Fcircle -DMA_TABLE_ENTRY ovl_Effect_Ss_Fhg_Flash -DMA_TABLE_ENTRY ovl_Effect_Ss_Fire_Tail -DMA_TABLE_ENTRY ovl_Effect_Ss_G_Fire -DMA_TABLE_ENTRY ovl_Effect_Ss_G_Magma -DMA_TABLE_ENTRY ovl_Effect_Ss_G_Magma2 -DMA_TABLE_ENTRY ovl_Effect_Ss_G_Ripple -DMA_TABLE_ENTRY ovl_Effect_Ss_G_Spk -DMA_TABLE_ENTRY ovl_Effect_Ss_G_Splash -DMA_TABLE_ENTRY ovl_Effect_Ss_Hahen -DMA_TABLE_ENTRY ovl_Effect_Ss_HitMark -DMA_TABLE_ENTRY ovl_Effect_Ss_Ice_Piece -DMA_TABLE_ENTRY ovl_Effect_Ss_Ice_Smoke -DMA_TABLE_ENTRY ovl_Effect_Ss_K_Fire -DMA_TABLE_ENTRY ovl_Effect_Ss_Kakera -DMA_TABLE_ENTRY ovl_Effect_Ss_KiraKira -DMA_TABLE_ENTRY ovl_Effect_Ss_Lightning -DMA_TABLE_ENTRY ovl_Effect_Ss_Sibuki -DMA_TABLE_ENTRY ovl_Effect_Ss_Sibuki2 -DMA_TABLE_ENTRY ovl_Effect_Ss_Solder_Srch_Ball -DMA_TABLE_ENTRY ovl_Effect_Ss_Stick -DMA_TABLE_ENTRY ovl_Effect_Ss_Stone1 -DMA_TABLE_ENTRY ovl_Elf_Msg -DMA_TABLE_ENTRY ovl_Elf_Msg2 -DMA_TABLE_ENTRY ovl_En_Am -DMA_TABLE_ENTRY ovl_En_Ani -DMA_TABLE_ENTRY ovl_En_Anubice -DMA_TABLE_ENTRY ovl_En_Anubice_Fire -DMA_TABLE_ENTRY ovl_En_Anubice_Tag -DMA_TABLE_ENTRY ovl_En_Arow_Trap -DMA_TABLE_ENTRY ovl_En_Arrow -DMA_TABLE_ENTRY ovl_En_Attack_Niw -DMA_TABLE_ENTRY ovl_En_Ba -DMA_TABLE_ENTRY ovl_En_Bb -DMA_TABLE_ENTRY ovl_En_Bdfire -DMA_TABLE_ENTRY ovl_En_Bigokuta -DMA_TABLE_ENTRY ovl_En_Bili -DMA_TABLE_ENTRY ovl_En_Bird -DMA_TABLE_ENTRY ovl_En_Blkobj -DMA_TABLE_ENTRY ovl_En_Bom -DMA_TABLE_ENTRY ovl_En_Bom_Bowl_Man -DMA_TABLE_ENTRY ovl_En_Bom_Bowl_Pit -DMA_TABLE_ENTRY ovl_En_Bom_Chu -DMA_TABLE_ENTRY ovl_En_Bombf -DMA_TABLE_ENTRY ovl_En_Boom -DMA_TABLE_ENTRY ovl_En_Box -DMA_TABLE_ENTRY ovl_En_Brob -DMA_TABLE_ENTRY ovl_En_Bubble -DMA_TABLE_ENTRY ovl_En_Butte -DMA_TABLE_ENTRY ovl_En_Bw -DMA_TABLE_ENTRY ovl_En_Bx -DMA_TABLE_ENTRY ovl_En_Changer -DMA_TABLE_ENTRY ovl_En_Clear_Tag -DMA_TABLE_ENTRY ovl_En_Cow -DMA_TABLE_ENTRY ovl_En_Crow -DMA_TABLE_ENTRY ovl_En_Cs -DMA_TABLE_ENTRY ovl_En_Daiku -DMA_TABLE_ENTRY ovl_En_Daiku_Kakariko -DMA_TABLE_ENTRY ovl_En_Dekubaba -DMA_TABLE_ENTRY ovl_En_Dekunuts -DMA_TABLE_ENTRY ovl_En_Dh -DMA_TABLE_ENTRY ovl_En_Dha -DMA_TABLE_ENTRY ovl_En_Diving_Game -DMA_TABLE_ENTRY ovl_En_Dns -DMA_TABLE_ENTRY ovl_En_Dnt_Demo -DMA_TABLE_ENTRY ovl_En_Dnt_Jiji -DMA_TABLE_ENTRY ovl_En_Dnt_Nomal -DMA_TABLE_ENTRY ovl_En_Dodojr -DMA_TABLE_ENTRY ovl_En_Dodongo -DMA_TABLE_ENTRY ovl_En_Dog -DMA_TABLE_ENTRY ovl_En_Door -DMA_TABLE_ENTRY ovl_En_Ds -DMA_TABLE_ENTRY ovl_En_Du -DMA_TABLE_ENTRY ovl_En_Dy_Extra -DMA_TABLE_ENTRY ovl_En_Eg -DMA_TABLE_ENTRY ovl_En_Eiyer -DMA_TABLE_ENTRY ovl_En_Elf -DMA_TABLE_ENTRY ovl_En_Encount1 -DMA_TABLE_ENTRY ovl_En_Encount2 -DMA_TABLE_ENTRY ovl_En_Ex_Item -DMA_TABLE_ENTRY ovl_En_Ex_Ruppy -DMA_TABLE_ENTRY ovl_En_Fd -DMA_TABLE_ENTRY ovl_En_Fd_Fire -DMA_TABLE_ENTRY ovl_En_Fhg_Fire -DMA_TABLE_ENTRY ovl_En_Fire_Rock -DMA_TABLE_ENTRY ovl_En_Firefly -DMA_TABLE_ENTRY ovl_En_Fish -DMA_TABLE_ENTRY ovl_En_Floormas -DMA_TABLE_ENTRY ovl_En_Fr -DMA_TABLE_ENTRY ovl_En_Fu -DMA_TABLE_ENTRY ovl_En_Fw -DMA_TABLE_ENTRY ovl_En_Fz -DMA_TABLE_ENTRY ovl_En_G_Switch -DMA_TABLE_ENTRY ovl_En_Ganon_Mant -DMA_TABLE_ENTRY ovl_En_Ganon_Organ -DMA_TABLE_ENTRY ovl_En_Gb -DMA_TABLE_ENTRY ovl_En_Ge1 -DMA_TABLE_ENTRY ovl_En_Ge2 -DMA_TABLE_ENTRY ovl_En_Ge3 -DMA_TABLE_ENTRY ovl_En_GeldB -DMA_TABLE_ENTRY ovl_En_GirlA -DMA_TABLE_ENTRY ovl_En_Gm -DMA_TABLE_ENTRY ovl_En_Go -DMA_TABLE_ENTRY ovl_En_Go2 -DMA_TABLE_ENTRY ovl_En_Goma -DMA_TABLE_ENTRY ovl_En_Goroiwa -DMA_TABLE_ENTRY ovl_En_Gs -DMA_TABLE_ENTRY ovl_En_Guest -DMA_TABLE_ENTRY ovl_En_Hata -DMA_TABLE_ENTRY ovl_En_Heishi1 -DMA_TABLE_ENTRY ovl_En_Heishi2 -DMA_TABLE_ENTRY ovl_En_Heishi3 -DMA_TABLE_ENTRY ovl_En_Heishi4 -DMA_TABLE_ENTRY ovl_En_Hintnuts -DMA_TABLE_ENTRY ovl_En_Holl -DMA_TABLE_ENTRY ovl_En_Honotrap -DMA_TABLE_ENTRY ovl_En_Horse -DMA_TABLE_ENTRY ovl_En_Horse_Game_Check -DMA_TABLE_ENTRY ovl_En_Horse_Ganon -DMA_TABLE_ENTRY ovl_En_Horse_Link_Child -DMA_TABLE_ENTRY ovl_En_Horse_Normal -DMA_TABLE_ENTRY ovl_En_Horse_Zelda -DMA_TABLE_ENTRY ovl_En_Hs -DMA_TABLE_ENTRY ovl_En_Hs2 -DMA_TABLE_ENTRY ovl_En_Hy -DMA_TABLE_ENTRY ovl_En_Ice_Hono -DMA_TABLE_ENTRY ovl_En_Ik -DMA_TABLE_ENTRY ovl_En_In -DMA_TABLE_ENTRY ovl_En_Insect -DMA_TABLE_ENTRY ovl_En_Ishi -DMA_TABLE_ENTRY ovl_En_It -DMA_TABLE_ENTRY ovl_En_Jj -DMA_TABLE_ENTRY ovl_En_Js -DMA_TABLE_ENTRY ovl_En_Jsjutan -DMA_TABLE_ENTRY ovl_En_Kakasi -DMA_TABLE_ENTRY ovl_En_Kakasi2 -DMA_TABLE_ENTRY ovl_En_Kakasi3 -DMA_TABLE_ENTRY ovl_En_Kanban -DMA_TABLE_ENTRY ovl_En_Karebaba -DMA_TABLE_ENTRY ovl_En_Ko -DMA_TABLE_ENTRY ovl_En_Kusa -DMA_TABLE_ENTRY ovl_En_Kz -DMA_TABLE_ENTRY ovl_En_Light -DMA_TABLE_ENTRY ovl_En_Lightbox -DMA_TABLE_ENTRY ovl_En_M_Fire1 -DMA_TABLE_ENTRY ovl_En_M_Thunder -DMA_TABLE_ENTRY ovl_En_Ma1 -DMA_TABLE_ENTRY ovl_En_Ma2 -DMA_TABLE_ENTRY ovl_En_Ma3 -DMA_TABLE_ENTRY ovl_En_Mag -DMA_TABLE_ENTRY ovl_En_Mb -DMA_TABLE_ENTRY ovl_En_Md -DMA_TABLE_ENTRY ovl_En_Mk -DMA_TABLE_ENTRY ovl_En_Mm -DMA_TABLE_ENTRY ovl_En_Mm2 -DMA_TABLE_ENTRY ovl_En_Ms -DMA_TABLE_ENTRY ovl_En_Mu -DMA_TABLE_ENTRY ovl_En_Nb -DMA_TABLE_ENTRY ovl_En_Niw -DMA_TABLE_ENTRY ovl_En_Niw_Girl -DMA_TABLE_ENTRY ovl_En_Niw_Lady -DMA_TABLE_ENTRY ovl_En_Nutsball -DMA_TABLE_ENTRY ovl_En_Nwc -DMA_TABLE_ENTRY ovl_En_Ny -DMA_TABLE_ENTRY ovl_En_OE2 -DMA_TABLE_ENTRY ovl_En_Okarina_Effect -DMA_TABLE_ENTRY ovl_En_Okarina_Tag -DMA_TABLE_ENTRY ovl_En_Okuta -DMA_TABLE_ENTRY ovl_En_Ossan -DMA_TABLE_ENTRY ovl_En_Owl -DMA_TABLE_ENTRY ovl_En_Part -DMA_TABLE_ENTRY ovl_En_Peehat -DMA_TABLE_ENTRY ovl_En_Po_Desert -DMA_TABLE_ENTRY ovl_En_Po_Field -DMA_TABLE_ENTRY ovl_En_Po_Relay -DMA_TABLE_ENTRY ovl_En_Po_Sisters -DMA_TABLE_ENTRY ovl_En_Poh -DMA_TABLE_ENTRY ovl_En_Pu_box -DMA_TABLE_ENTRY ovl_En_Rd -DMA_TABLE_ENTRY ovl_En_Reeba -DMA_TABLE_ENTRY ovl_En_River_Sound -DMA_TABLE_ENTRY ovl_En_Rl -DMA_TABLE_ENTRY ovl_En_Rr -DMA_TABLE_ENTRY ovl_En_Ru1 -DMA_TABLE_ENTRY ovl_En_Ru2 -DMA_TABLE_ENTRY ovl_En_Sa -DMA_TABLE_ENTRY ovl_En_Sb -DMA_TABLE_ENTRY ovl_En_Scene_Change -DMA_TABLE_ENTRY ovl_En_Sda -DMA_TABLE_ENTRY ovl_En_Shopnuts -DMA_TABLE_ENTRY ovl_En_Si -DMA_TABLE_ENTRY ovl_En_Siofuki -DMA_TABLE_ENTRY ovl_En_Skb -DMA_TABLE_ENTRY ovl_En_Skj -DMA_TABLE_ENTRY ovl_En_Skjneedle -DMA_TABLE_ENTRY ovl_En_Ssh -DMA_TABLE_ENTRY ovl_En_St -DMA_TABLE_ENTRY ovl_En_Sth -DMA_TABLE_ENTRY ovl_En_Stream -DMA_TABLE_ENTRY ovl_En_Sw -DMA_TABLE_ENTRY ovl_En_Syateki_Itm -DMA_TABLE_ENTRY ovl_En_Syateki_Man -DMA_TABLE_ENTRY ovl_En_Syateki_Niw -DMA_TABLE_ENTRY ovl_En_Ta -DMA_TABLE_ENTRY ovl_En_Takara_Man -DMA_TABLE_ENTRY ovl_En_Tana -DMA_TABLE_ENTRY ovl_En_Tg -DMA_TABLE_ENTRY ovl_En_Tite -DMA_TABLE_ENTRY ovl_En_Tk -DMA_TABLE_ENTRY ovl_En_Torch -DMA_TABLE_ENTRY ovl_En_Torch2 -DMA_TABLE_ENTRY ovl_En_Toryo -DMA_TABLE_ENTRY ovl_En_Tp -DMA_TABLE_ENTRY ovl_En_Tr -DMA_TABLE_ENTRY ovl_En_Trap -DMA_TABLE_ENTRY ovl_En_Tubo_Trap -DMA_TABLE_ENTRY ovl_En_Vali -DMA_TABLE_ENTRY ovl_En_Vase -DMA_TABLE_ENTRY ovl_En_Vb_Ball -DMA_TABLE_ENTRY ovl_En_Viewer -DMA_TABLE_ENTRY ovl_En_Vm -DMA_TABLE_ENTRY ovl_En_Wall_Tubo -DMA_TABLE_ENTRY ovl_En_Wallmas -DMA_TABLE_ENTRY ovl_En_Weather_Tag -DMA_TABLE_ENTRY ovl_En_Weiyer -DMA_TABLE_ENTRY ovl_En_Wf -DMA_TABLE_ENTRY ovl_En_Wonder_Item -DMA_TABLE_ENTRY ovl_En_Wonder_Talk -DMA_TABLE_ENTRY ovl_En_Wonder_Talk2 -DMA_TABLE_ENTRY ovl_En_Wood02 -DMA_TABLE_ENTRY ovl_En_Xc -DMA_TABLE_ENTRY ovl_En_Yabusame_Mark -DMA_TABLE_ENTRY ovl_En_Yukabyun -DMA_TABLE_ENTRY ovl_En_Zf -DMA_TABLE_ENTRY ovl_En_Zl1 -DMA_TABLE_ENTRY ovl_En_Zl2 -DMA_TABLE_ENTRY ovl_En_Zl3 -DMA_TABLE_ENTRY ovl_En_Zl4 -DMA_TABLE_ENTRY ovl_En_Zo -DMA_TABLE_ENTRY ovl_En_fHG -DMA_TABLE_ENTRY ovl_End_Title -DMA_TABLE_ENTRY ovl_Fishing -DMA_TABLE_ENTRY ovl_Item_B_Heart -DMA_TABLE_ENTRY ovl_Item_Etcetera -DMA_TABLE_ENTRY ovl_Item_Inbox -DMA_TABLE_ENTRY ovl_Item_Ocarina -DMA_TABLE_ENTRY ovl_Item_Shield -DMA_TABLE_ENTRY ovl_Magic_Dark -DMA_TABLE_ENTRY ovl_Magic_Fire -DMA_TABLE_ENTRY ovl_Magic_Wind -DMA_TABLE_ENTRY ovl_Mir_Ray -DMA_TABLE_ENTRY ovl_Obj_Bean -DMA_TABLE_ENTRY ovl_Obj_Blockstop -DMA_TABLE_ENTRY ovl_Obj_Bombiwa -DMA_TABLE_ENTRY ovl_Obj_Comb -DMA_TABLE_ENTRY ovl_Obj_Dekujr -DMA_TABLE_ENTRY ovl_Obj_Elevator -DMA_TABLE_ENTRY ovl_Obj_Hamishi -DMA_TABLE_ENTRY ovl_Obj_Hana -DMA_TABLE_ENTRY ovl_Obj_Hsblock -DMA_TABLE_ENTRY ovl_Obj_Ice_Poly -DMA_TABLE_ENTRY ovl_Obj_Kibako -DMA_TABLE_ENTRY ovl_Obj_Kibako2 -DMA_TABLE_ENTRY ovl_Obj_Lift -DMA_TABLE_ENTRY ovl_Obj_Lightswitch -DMA_TABLE_ENTRY ovl_Obj_Makekinsuta -DMA_TABLE_ENTRY ovl_Obj_Makeoshihiki -DMA_TABLE_ENTRY ovl_Obj_Mure -DMA_TABLE_ENTRY ovl_Obj_Mure2 -DMA_TABLE_ENTRY ovl_Obj_Mure3 -DMA_TABLE_ENTRY ovl_Obj_Oshihiki -DMA_TABLE_ENTRY ovl_Obj_Roomtimer -DMA_TABLE_ENTRY ovl_Obj_Switch -DMA_TABLE_ENTRY ovl_Obj_Syokudai -DMA_TABLE_ENTRY ovl_Obj_Timeblock -DMA_TABLE_ENTRY ovl_Obj_Tsubo -DMA_TABLE_ENTRY ovl_Obj_Warp2block -DMA_TABLE_ENTRY ovl_Object_Kankyo -DMA_TABLE_ENTRY ovl_Oceff_Spot -DMA_TABLE_ENTRY ovl_Oceff_Storm -DMA_TABLE_ENTRY ovl_Oceff_Wipe -DMA_TABLE_ENTRY ovl_Oceff_Wipe2 -DMA_TABLE_ENTRY ovl_Oceff_Wipe3 -DMA_TABLE_ENTRY ovl_Oceff_Wipe4 -DMA_TABLE_ENTRY ovl_Shot_Sun -DMA_TABLE_ENTRY gameplay_keep -DMA_TABLE_ENTRY gameplay_field_keep -DMA_TABLE_ENTRY gameplay_dangeon_keep -DMA_TABLE_ENTRY gameplay_object_exchange_static -DMA_TABLE_ENTRY object_link_boy -DMA_TABLE_ENTRY object_link_child -DMA_TABLE_ENTRY object_box -DMA_TABLE_ENTRY object_human -DMA_TABLE_ENTRY object_okuta -DMA_TABLE_ENTRY object_poh -DMA_TABLE_ENTRY object_wallmaster -DMA_TABLE_ENTRY object_dy_obj -DMA_TABLE_ENTRY object_firefly -DMA_TABLE_ENTRY object_dodongo -DMA_TABLE_ENTRY object_fire -DMA_TABLE_ENTRY object_niw -DMA_TABLE_ENTRY object_tite -DMA_TABLE_ENTRY object_reeba -DMA_TABLE_ENTRY object_peehat -DMA_TABLE_ENTRY object_kingdodongo -DMA_TABLE_ENTRY object_horse -DMA_TABLE_ENTRY object_zf -DMA_TABLE_ENTRY object_goma -DMA_TABLE_ENTRY object_zl1 -DMA_TABLE_ENTRY object_gol -DMA_TABLE_ENTRY object_bubble -DMA_TABLE_ENTRY object_dodojr -DMA_TABLE_ENTRY object_torch2 -DMA_TABLE_ENTRY object_bl -DMA_TABLE_ENTRY object_tp -DMA_TABLE_ENTRY object_oA1 -DMA_TABLE_ENTRY object_st -DMA_TABLE_ENTRY object_bw -DMA_TABLE_ENTRY object_ei -DMA_TABLE_ENTRY object_horse_normal -DMA_TABLE_ENTRY object_oB1 -DMA_TABLE_ENTRY object_o_anime -DMA_TABLE_ENTRY object_spot04_objects -DMA_TABLE_ENTRY object_ddan_objects -DMA_TABLE_ENTRY object_hidan_objects -DMA_TABLE_ENTRY object_horse_ganon -DMA_TABLE_ENTRY object_oA2 -DMA_TABLE_ENTRY object_spot00_objects -DMA_TABLE_ENTRY object_mb -DMA_TABLE_ENTRY object_bombf -DMA_TABLE_ENTRY object_sk2 -DMA_TABLE_ENTRY object_oE1 -DMA_TABLE_ENTRY object_oE_anime -DMA_TABLE_ENTRY object_oE2 -DMA_TABLE_ENTRY object_ydan_objects -DMA_TABLE_ENTRY object_gnd -DMA_TABLE_ENTRY object_am -DMA_TABLE_ENTRY object_dekubaba -DMA_TABLE_ENTRY object_oA3 -DMA_TABLE_ENTRY object_oA4 -DMA_TABLE_ENTRY object_oA5 -DMA_TABLE_ENTRY object_oA6 -DMA_TABLE_ENTRY object_oA7 -DMA_TABLE_ENTRY object_jj -DMA_TABLE_ENTRY object_oA8 -DMA_TABLE_ENTRY object_oA9 -DMA_TABLE_ENTRY object_oB2 -DMA_TABLE_ENTRY object_oB3 -DMA_TABLE_ENTRY object_oB4 -DMA_TABLE_ENTRY object_horse_zelda -DMA_TABLE_ENTRY object_opening_demo1 -DMA_TABLE_ENTRY object_warp1 -DMA_TABLE_ENTRY object_b_heart -DMA_TABLE_ENTRY object_dekunuts -DMA_TABLE_ENTRY object_oE3 -DMA_TABLE_ENTRY object_oE4 -DMA_TABLE_ENTRY object_menkuri_objects -DMA_TABLE_ENTRY object_oE5 -DMA_TABLE_ENTRY object_oE6 -DMA_TABLE_ENTRY object_oE7 -DMA_TABLE_ENTRY object_oE8 -DMA_TABLE_ENTRY object_oE9 -DMA_TABLE_ENTRY object_oE10 -DMA_TABLE_ENTRY object_oE11 -DMA_TABLE_ENTRY object_oE12 -DMA_TABLE_ENTRY object_vali -DMA_TABLE_ENTRY object_oA10 -DMA_TABLE_ENTRY object_oA11 -DMA_TABLE_ENTRY object_mizu_objects -DMA_TABLE_ENTRY object_fhg -DMA_TABLE_ENTRY object_ossan -DMA_TABLE_ENTRY object_mori_hineri1 -DMA_TABLE_ENTRY object_Bb -DMA_TABLE_ENTRY object_toki_objects -DMA_TABLE_ENTRY object_yukabyun -DMA_TABLE_ENTRY object_zl2 -DMA_TABLE_ENTRY object_mjin -DMA_TABLE_ENTRY object_mjin_flash -DMA_TABLE_ENTRY object_mjin_dark -DMA_TABLE_ENTRY object_mjin_flame -DMA_TABLE_ENTRY object_mjin_ice -DMA_TABLE_ENTRY object_mjin_soul -DMA_TABLE_ENTRY object_mjin_wind -DMA_TABLE_ENTRY object_mjin_oka -DMA_TABLE_ENTRY object_haka_objects -DMA_TABLE_ENTRY object_spot06_objects -DMA_TABLE_ENTRY object_ice_objects -DMA_TABLE_ENTRY object_relay_objects -DMA_TABLE_ENTRY object_mori_hineri1a -DMA_TABLE_ENTRY object_mori_hineri2 -DMA_TABLE_ENTRY object_mori_hineri2a -DMA_TABLE_ENTRY object_mori_objects -DMA_TABLE_ENTRY object_mori_tex -DMA_TABLE_ENTRY object_spot08_obj -DMA_TABLE_ENTRY object_warp2 -DMA_TABLE_ENTRY object_hata -DMA_TABLE_ENTRY object_bird -DMA_TABLE_ENTRY object_wood02 -DMA_TABLE_ENTRY object_lightbox -DMA_TABLE_ENTRY object_pu_box -DMA_TABLE_ENTRY object_trap -DMA_TABLE_ENTRY object_vase -DMA_TABLE_ENTRY object_im -DMA_TABLE_ENTRY object_ta -DMA_TABLE_ENTRY object_tk -DMA_TABLE_ENTRY object_xc -DMA_TABLE_ENTRY object_vm -DMA_TABLE_ENTRY object_bv -DMA_TABLE_ENTRY object_hakach_objects -DMA_TABLE_ENTRY object_efc_crystal_light -DMA_TABLE_ENTRY object_efc_fire_ball -DMA_TABLE_ENTRY object_efc_flash -DMA_TABLE_ENTRY object_efc_lgt_shower -DMA_TABLE_ENTRY object_efc_star_field -DMA_TABLE_ENTRY object_god_lgt -DMA_TABLE_ENTRY object_light_ring -DMA_TABLE_ENTRY object_triforce_spot -DMA_TABLE_ENTRY object_medal -DMA_TABLE_ENTRY object_bdan_objects -DMA_TABLE_ENTRY object_sd -DMA_TABLE_ENTRY object_rd -DMA_TABLE_ENTRY object_po_sisters -DMA_TABLE_ENTRY object_heavy_object -DMA_TABLE_ENTRY object_gndd -DMA_TABLE_ENTRY object_fd -DMA_TABLE_ENTRY object_du -DMA_TABLE_ENTRY object_fw -DMA_TABLE_ENTRY object_horse_link_child -DMA_TABLE_ENTRY object_spot02_objects -DMA_TABLE_ENTRY object_haka -DMA_TABLE_ENTRY object_ru1 -DMA_TABLE_ENTRY object_syokudai -DMA_TABLE_ENTRY object_fd2 -DMA_TABLE_ENTRY object_dh -DMA_TABLE_ENTRY object_rl -DMA_TABLE_ENTRY object_efc_tw -DMA_TABLE_ENTRY object_demo_tre_lgt -DMA_TABLE_ENTRY object_gi_key -DMA_TABLE_ENTRY object_mir_ray -DMA_TABLE_ENTRY object_brob -DMA_TABLE_ENTRY object_gi_jewel -DMA_TABLE_ENTRY object_spot09_obj -DMA_TABLE_ENTRY object_spot18_obj -DMA_TABLE_ENTRY object_bdoor -DMA_TABLE_ENTRY object_spot17_obj -DMA_TABLE_ENTRY object_shop_dungen -DMA_TABLE_ENTRY object_nb -DMA_TABLE_ENTRY object_mo -DMA_TABLE_ENTRY object_sb -DMA_TABLE_ENTRY object_gi_melody -DMA_TABLE_ENTRY object_gi_heart -DMA_TABLE_ENTRY object_gi_compass -DMA_TABLE_ENTRY object_gi_bosskey -DMA_TABLE_ENTRY object_gi_medal -DMA_TABLE_ENTRY object_gi_nuts -DMA_TABLE_ENTRY object_sa -DMA_TABLE_ENTRY object_gi_hearts -DMA_TABLE_ENTRY object_gi_arrowcase -DMA_TABLE_ENTRY object_gi_bombpouch -DMA_TABLE_ENTRY object_in -DMA_TABLE_ENTRY object_tr -DMA_TABLE_ENTRY object_spot16_obj -DMA_TABLE_ENTRY object_oE1s -DMA_TABLE_ENTRY object_oE4s -DMA_TABLE_ENTRY object_os_anime -DMA_TABLE_ENTRY object_gi_bottle -DMA_TABLE_ENTRY object_gi_stick -DMA_TABLE_ENTRY object_gi_map -DMA_TABLE_ENTRY object_oF1d_map -DMA_TABLE_ENTRY object_ru2 -DMA_TABLE_ENTRY object_gi_shield_1 -DMA_TABLE_ENTRY object_dekujr -DMA_TABLE_ENTRY object_gi_magicpot -DMA_TABLE_ENTRY object_gi_bomb_1 -DMA_TABLE_ENTRY object_oF1s -DMA_TABLE_ENTRY object_ma2 -DMA_TABLE_ENTRY object_gi_purse -DMA_TABLE_ENTRY object_hni -DMA_TABLE_ENTRY object_tw -DMA_TABLE_ENTRY object_rr -DMA_TABLE_ENTRY object_bxa -DMA_TABLE_ENTRY object_anubice -DMA_TABLE_ENTRY object_gi_gerudo -DMA_TABLE_ENTRY object_gi_arrow -DMA_TABLE_ENTRY object_gi_bomb_2 -DMA_TABLE_ENTRY object_gi_egg -DMA_TABLE_ENTRY object_gi_scale -DMA_TABLE_ENTRY object_gi_shield_2 -DMA_TABLE_ENTRY object_gi_hookshot -DMA_TABLE_ENTRY object_gi_ocarina -DMA_TABLE_ENTRY object_gi_milk -DMA_TABLE_ENTRY object_ma1 -DMA_TABLE_ENTRY object_ganon -DMA_TABLE_ENTRY object_sst -DMA_TABLE_ENTRY object_ny -DMA_TABLE_ENTRY object_fr -DMA_TABLE_ENTRY object_gi_pachinko -DMA_TABLE_ENTRY object_gi_boomerang -DMA_TABLE_ENTRY object_gi_bow -DMA_TABLE_ENTRY object_gi_glasses -DMA_TABLE_ENTRY object_gi_liquid -DMA_TABLE_ENTRY object_ani -DMA_TABLE_ENTRY object_demo_6k -DMA_TABLE_ENTRY object_gi_shield_3 -DMA_TABLE_ENTRY object_gi_letter -DMA_TABLE_ENTRY object_spot15_obj -DMA_TABLE_ENTRY object_jya_obj -DMA_TABLE_ENTRY object_gi_clothes -DMA_TABLE_ENTRY object_gi_bean -DMA_TABLE_ENTRY object_gi_fish -DMA_TABLE_ENTRY object_gi_saw -DMA_TABLE_ENTRY object_gi_hammer -DMA_TABLE_ENTRY object_gi_grass -DMA_TABLE_ENTRY object_gi_longsword -DMA_TABLE_ENTRY object_spot01_objects -DMA_TABLE_ENTRY object_md -DMA_TABLE_ENTRY object_km1 -DMA_TABLE_ENTRY object_kw1 -DMA_TABLE_ENTRY object_zo -DMA_TABLE_ENTRY object_kz -DMA_TABLE_ENTRY object_umajump -DMA_TABLE_ENTRY object_masterkokiri -DMA_TABLE_ENTRY object_masterkokirihead -DMA_TABLE_ENTRY object_mastergolon -DMA_TABLE_ENTRY object_masterzoora -DMA_TABLE_ENTRY object_aob -DMA_TABLE_ENTRY object_ik -DMA_TABLE_ENTRY object_ahg -DMA_TABLE_ENTRY object_cne -DMA_TABLE_ENTRY object_gi_niwatori -DMA_TABLE_ENTRY object_skj -DMA_TABLE_ENTRY object_gi_bottle_letter -DMA_TABLE_ENTRY object_bji -DMA_TABLE_ENTRY object_bba -DMA_TABLE_ENTRY object_gi_ocarina_0 -DMA_TABLE_ENTRY object_ds -DMA_TABLE_ENTRY object_ane -DMA_TABLE_ENTRY object_boj -DMA_TABLE_ENTRY object_spot03_object -DMA_TABLE_ENTRY object_spot07_object -DMA_TABLE_ENTRY object_fz -DMA_TABLE_ENTRY object_bob -DMA_TABLE_ENTRY object_ge1 -DMA_TABLE_ENTRY object_yabusame_point -DMA_TABLE_ENTRY object_gi_boots_2 -DMA_TABLE_ENTRY object_gi_seed -DMA_TABLE_ENTRY object_gnd_magic -DMA_TABLE_ENTRY object_d_elevator -DMA_TABLE_ENTRY object_d_hsblock -DMA_TABLE_ENTRY object_d_lift -DMA_TABLE_ENTRY object_mamenoki -DMA_TABLE_ENTRY object_goroiwa -DMA_TABLE_ENTRY object_toryo -DMA_TABLE_ENTRY object_daiku -DMA_TABLE_ENTRY object_nwc -DMA_TABLE_ENTRY object_blkobj -DMA_TABLE_ENTRY object_gm -DMA_TABLE_ENTRY object_ms -DMA_TABLE_ENTRY object_hs -DMA_TABLE_ENTRY object_ingate -DMA_TABLE_ENTRY object_lightswitch -DMA_TABLE_ENTRY object_kusa -DMA_TABLE_ENTRY object_tsubo -DMA_TABLE_ENTRY object_gi_gloves -DMA_TABLE_ENTRY object_gi_coin -DMA_TABLE_ENTRY object_kanban -DMA_TABLE_ENTRY object_gjyo_objects -DMA_TABLE_ENTRY object_owl -DMA_TABLE_ENTRY object_mk -DMA_TABLE_ENTRY object_fu -DMA_TABLE_ENTRY object_gi_ki_tan_mask -DMA_TABLE_ENTRY object_gi_redead_mask -DMA_TABLE_ENTRY object_gi_skj_mask -DMA_TABLE_ENTRY object_gi_rabit_mask -DMA_TABLE_ENTRY object_gi_truth_mask -DMA_TABLE_ENTRY object_ganon_objects -DMA_TABLE_ENTRY object_siofuki -DMA_TABLE_ENTRY object_stream -DMA_TABLE_ENTRY object_mm -DMA_TABLE_ENTRY object_fa -DMA_TABLE_ENTRY object_os -DMA_TABLE_ENTRY object_gi_eye_lotion -DMA_TABLE_ENTRY object_gi_powder -DMA_TABLE_ENTRY object_gi_mushroom -DMA_TABLE_ENTRY object_gi_ticketstone -DMA_TABLE_ENTRY object_gi_brokensword -DMA_TABLE_ENTRY object_js -DMA_TABLE_ENTRY object_cs -DMA_TABLE_ENTRY object_gi_prescription -DMA_TABLE_ENTRY object_gi_bracelet -DMA_TABLE_ENTRY object_gi_soldout -DMA_TABLE_ENTRY object_gi_frog -DMA_TABLE_ENTRY object_mag -DMA_TABLE_ENTRY object_door_gerudo -DMA_TABLE_ENTRY object_gt -DMA_TABLE_ENTRY object_efc_erupc -DMA_TABLE_ENTRY object_zl2_anime1 -DMA_TABLE_ENTRY object_zl2_anime2 -DMA_TABLE_ENTRY object_gi_golonmask -DMA_TABLE_ENTRY object_gi_zoramask -DMA_TABLE_ENTRY object_gi_gerudomask -DMA_TABLE_ENTRY object_ganon2 -DMA_TABLE_ENTRY object_ka -DMA_TABLE_ENTRY object_ts -DMA_TABLE_ENTRY object_zg -DMA_TABLE_ENTRY object_gi_hoverboots -DMA_TABLE_ENTRY object_gi_m_arrow -DMA_TABLE_ENTRY object_ds2 -DMA_TABLE_ENTRY object_ec -DMA_TABLE_ENTRY object_fish -DMA_TABLE_ENTRY object_gi_sutaru -DMA_TABLE_ENTRY object_gi_goddess -DMA_TABLE_ENTRY object_ssh -DMA_TABLE_ENTRY object_bigokuta -DMA_TABLE_ENTRY object_bg -DMA_TABLE_ENTRY object_spot05_objects -DMA_TABLE_ENTRY object_spot12_obj -DMA_TABLE_ENTRY object_bombiwa -DMA_TABLE_ENTRY object_hintnuts -DMA_TABLE_ENTRY object_rs -DMA_TABLE_ENTRY object_spot00_break -DMA_TABLE_ENTRY object_gla -DMA_TABLE_ENTRY object_shopnuts -DMA_TABLE_ENTRY object_geldb -DMA_TABLE_ENTRY object_gr -DMA_TABLE_ENTRY object_dog -DMA_TABLE_ENTRY object_jya_iron -DMA_TABLE_ENTRY object_jya_door -DMA_TABLE_ENTRY object_spot01_objects2 -DMA_TABLE_ENTRY object_spot11_obj -DMA_TABLE_ENTRY object_kibako2 -DMA_TABLE_ENTRY object_dns -DMA_TABLE_ENTRY object_dnk -DMA_TABLE_ENTRY object_gi_fire -DMA_TABLE_ENTRY object_gi_insect -DMA_TABLE_ENTRY object_gi_butterfly -DMA_TABLE_ENTRY object_gi_ghost -DMA_TABLE_ENTRY object_gi_soul -DMA_TABLE_ENTRY object_bowl -DMA_TABLE_ENTRY object_po_field -DMA_TABLE_ENTRY object_demo_kekkai -DMA_TABLE_ENTRY object_efc_doughnut -DMA_TABLE_ENTRY object_gi_dekupouch -DMA_TABLE_ENTRY object_ganon_anime1 -DMA_TABLE_ENTRY object_ganon_anime2 -DMA_TABLE_ENTRY object_ganon_anime3 -DMA_TABLE_ENTRY object_gi_rupy -DMA_TABLE_ENTRY object_spot01_matoya -DMA_TABLE_ENTRY object_spot01_matoyab -DMA_TABLE_ENTRY object_po_composer -DMA_TABLE_ENTRY object_mu -DMA_TABLE_ENTRY object_wf -DMA_TABLE_ENTRY object_skb -DMA_TABLE_ENTRY object_gj -DMA_TABLE_ENTRY object_geff -DMA_TABLE_ENTRY object_haka_door -DMA_TABLE_ENTRY object_gs -DMA_TABLE_ENTRY object_ps -DMA_TABLE_ENTRY object_bwall -DMA_TABLE_ENTRY object_crow -DMA_TABLE_ENTRY object_cow -DMA_TABLE_ENTRY object_cob -DMA_TABLE_ENTRY object_gi_sword_1 -DMA_TABLE_ENTRY object_door_killer -DMA_TABLE_ENTRY object_ouke_haka -DMA_TABLE_ENTRY object_timeblock -DMA_TABLE_ENTRY object_zl4 -DMA_TABLE_ENTRY g_pn_01 -DMA_TABLE_ENTRY g_pn_02 -DMA_TABLE_ENTRY g_pn_03 -DMA_TABLE_ENTRY g_pn_04 -DMA_TABLE_ENTRY g_pn_05 -DMA_TABLE_ENTRY g_pn_06 -DMA_TABLE_ENTRY g_pn_07 -DMA_TABLE_ENTRY g_pn_08 -DMA_TABLE_ENTRY g_pn_09 -DMA_TABLE_ENTRY g_pn_10 -DMA_TABLE_ENTRY g_pn_11 -DMA_TABLE_ENTRY g_pn_12 -DMA_TABLE_ENTRY g_pn_13 -DMA_TABLE_ENTRY g_pn_14 -DMA_TABLE_ENTRY g_pn_15 -DMA_TABLE_ENTRY g_pn_16 -DMA_TABLE_ENTRY g_pn_17 -DMA_TABLE_ENTRY g_pn_18 -DMA_TABLE_ENTRY g_pn_19 -DMA_TABLE_ENTRY g_pn_20 -DMA_TABLE_ENTRY g_pn_21 -DMA_TABLE_ENTRY g_pn_22 -DMA_TABLE_ENTRY g_pn_23 -DMA_TABLE_ENTRY g_pn_24 -DMA_TABLE_ENTRY g_pn_25 -DMA_TABLE_ENTRY g_pn_26 -DMA_TABLE_ENTRY g_pn_27 -DMA_TABLE_ENTRY g_pn_28 -DMA_TABLE_ENTRY g_pn_29 -DMA_TABLE_ENTRY g_pn_30 -DMA_TABLE_ENTRY g_pn_31 -DMA_TABLE_ENTRY g_pn_32 -DMA_TABLE_ENTRY g_pn_33 -DMA_TABLE_ENTRY g_pn_34 -DMA_TABLE_ENTRY g_pn_35 -DMA_TABLE_ENTRY g_pn_36 -DMA_TABLE_ENTRY g_pn_37 -DMA_TABLE_ENTRY g_pn_38 -DMA_TABLE_ENTRY g_pn_39 -DMA_TABLE_ENTRY g_pn_40 -DMA_TABLE_ENTRY g_pn_41 -DMA_TABLE_ENTRY g_pn_42 -DMA_TABLE_ENTRY g_pn_43 -DMA_TABLE_ENTRY g_pn_44 -DMA_TABLE_ENTRY g_pn_45 -DMA_TABLE_ENTRY g_pn_46 -DMA_TABLE_ENTRY g_pn_47 -DMA_TABLE_ENTRY g_pn_48 -DMA_TABLE_ENTRY g_pn_49 -DMA_TABLE_ENTRY g_pn_50 -DMA_TABLE_ENTRY g_pn_51 -DMA_TABLE_ENTRY g_pn_52 -DMA_TABLE_ENTRY g_pn_53 -DMA_TABLE_ENTRY g_pn_54 -DMA_TABLE_ENTRY g_pn_55 -DMA_TABLE_ENTRY g_pn_56 -DMA_TABLE_ENTRY g_pn_57 -DMA_TABLE_ENTRY z_select_static -DMA_TABLE_ENTRY nintendo_rogo_static -DMA_TABLE_ENTRY title_static -DMA_TABLE_ENTRY parameter_static -DMA_TABLE_ENTRY vr_fine0_static -DMA_TABLE_ENTRY vr_fine0_pal_static -DMA_TABLE_ENTRY vr_fine1_static -DMA_TABLE_ENTRY vr_fine1_pal_static -DMA_TABLE_ENTRY vr_fine2_static -DMA_TABLE_ENTRY vr_fine2_pal_static -DMA_TABLE_ENTRY vr_fine3_static -DMA_TABLE_ENTRY vr_fine3_pal_static -DMA_TABLE_ENTRY vr_cloud0_static -DMA_TABLE_ENTRY vr_cloud0_pal_static -DMA_TABLE_ENTRY vr_cloud1_static -DMA_TABLE_ENTRY vr_cloud1_pal_static -DMA_TABLE_ENTRY vr_cloud2_static -DMA_TABLE_ENTRY vr_cloud2_pal_static -DMA_TABLE_ENTRY vr_cloud3_static -DMA_TABLE_ENTRY vr_cloud3_pal_static -DMA_TABLE_ENTRY vr_holy0_static -DMA_TABLE_ENTRY vr_holy0_pal_static -DMA_TABLE_ENTRY vr_holy1_static -DMA_TABLE_ENTRY vr_holy1_pal_static -DMA_TABLE_ENTRY vr_MDVR_static -DMA_TABLE_ENTRY vr_MDVR_pal_static -DMA_TABLE_ENTRY vr_MNVR_static -DMA_TABLE_ENTRY vr_MNVR_pal_static -DMA_TABLE_ENTRY vr_RUVR_static -DMA_TABLE_ENTRY vr_RUVR_pal_static -DMA_TABLE_ENTRY vr_LHVR_static -DMA_TABLE_ENTRY vr_LHVR_pal_static -DMA_TABLE_ENTRY vr_KHVR_static -DMA_TABLE_ENTRY vr_KHVR_pal_static -DMA_TABLE_ENTRY vr_K3VR_static -DMA_TABLE_ENTRY vr_K3VR_pal_static -DMA_TABLE_ENTRY vr_K4VR_static -DMA_TABLE_ENTRY vr_K4VR_pal_static -DMA_TABLE_ENTRY vr_K5VR_static -DMA_TABLE_ENTRY vr_K5VR_pal_static -DMA_TABLE_ENTRY vr_SP1a_static -DMA_TABLE_ENTRY vr_SP1a_pal_static -DMA_TABLE_ENTRY vr_MLVR_static -DMA_TABLE_ENTRY vr_MLVR_pal_static -DMA_TABLE_ENTRY vr_KKRVR_static -DMA_TABLE_ENTRY vr_KKRVR_pal_static -DMA_TABLE_ENTRY vr_KR3VR_static -DMA_TABLE_ENTRY vr_KR3VR_pal_static -DMA_TABLE_ENTRY vr_IPVR_static -DMA_TABLE_ENTRY vr_IPVR_pal_static -DMA_TABLE_ENTRY vr_KSVR_static -DMA_TABLE_ENTRY vr_KSVR_pal_static -DMA_TABLE_ENTRY vr_GLVR_static -DMA_TABLE_ENTRY vr_GLVR_pal_static -DMA_TABLE_ENTRY vr_ZRVR_static -DMA_TABLE_ENTRY vr_ZRVR_pal_static -DMA_TABLE_ENTRY vr_DGVR_static -DMA_TABLE_ENTRY vr_DGVR_pal_static -DMA_TABLE_ENTRY vr_ALVR_static -DMA_TABLE_ENTRY vr_ALVR_pal_static -DMA_TABLE_ENTRY vr_NSVR_static -DMA_TABLE_ENTRY vr_NSVR_pal_static -DMA_TABLE_ENTRY vr_LBVR_static -DMA_TABLE_ENTRY vr_LBVR_pal_static -DMA_TABLE_ENTRY vr_TTVR_static -DMA_TABLE_ENTRY vr_TTVR_pal_static -DMA_TABLE_ENTRY vr_FCVR_static -DMA_TABLE_ENTRY vr_FCVR_pal_static -DMA_TABLE_ENTRY elf_message_field -DMA_TABLE_ENTRY elf_message_ydan -DMA_TABLE_ENTRY syotes_scene -DMA_TABLE_ENTRY syotes_room_0 -DMA_TABLE_ENTRY syotes2_scene -DMA_TABLE_ENTRY syotes2_room_0 -DMA_TABLE_ENTRY depth_test_scene -DMA_TABLE_ENTRY depth_test_room_0 -DMA_TABLE_ENTRY spot00_scene -DMA_TABLE_ENTRY spot00_room_0 -DMA_TABLE_ENTRY spot01_scene -DMA_TABLE_ENTRY spot01_room_0 -DMA_TABLE_ENTRY spot02_scene -DMA_TABLE_ENTRY spot02_room_0 -DMA_TABLE_ENTRY spot02_room_1 -DMA_TABLE_ENTRY spot03_scene -DMA_TABLE_ENTRY spot03_room_0 -DMA_TABLE_ENTRY spot03_room_1 -DMA_TABLE_ENTRY spot04_scene -DMA_TABLE_ENTRY spot04_room_0 -DMA_TABLE_ENTRY spot04_room_1 -DMA_TABLE_ENTRY spot04_room_2 -DMA_TABLE_ENTRY spot05_scene -DMA_TABLE_ENTRY spot05_room_0 -DMA_TABLE_ENTRY spot06_scene -DMA_TABLE_ENTRY spot06_room_0 -DMA_TABLE_ENTRY spot07_scene -DMA_TABLE_ENTRY spot07_room_0 -DMA_TABLE_ENTRY spot07_room_1 -DMA_TABLE_ENTRY spot08_scene -DMA_TABLE_ENTRY spot08_room_0 -DMA_TABLE_ENTRY spot09_scene -DMA_TABLE_ENTRY spot09_room_0 -DMA_TABLE_ENTRY spot10_scene -DMA_TABLE_ENTRY spot10_room_0 -DMA_TABLE_ENTRY spot10_room_1 -DMA_TABLE_ENTRY spot10_room_2 -DMA_TABLE_ENTRY spot10_room_3 -DMA_TABLE_ENTRY spot10_room_4 -DMA_TABLE_ENTRY spot10_room_5 -DMA_TABLE_ENTRY spot10_room_6 -DMA_TABLE_ENTRY spot10_room_7 -DMA_TABLE_ENTRY spot10_room_8 -DMA_TABLE_ENTRY spot10_room_9 -DMA_TABLE_ENTRY spot11_scene -DMA_TABLE_ENTRY spot11_room_0 -DMA_TABLE_ENTRY spot12_scene -DMA_TABLE_ENTRY spot12_room_0 -DMA_TABLE_ENTRY spot12_room_1 -DMA_TABLE_ENTRY spot13_scene -DMA_TABLE_ENTRY spot13_room_0 -DMA_TABLE_ENTRY spot13_room_1 -DMA_TABLE_ENTRY spot15_scene -DMA_TABLE_ENTRY spot15_room_0 -DMA_TABLE_ENTRY spot16_scene -DMA_TABLE_ENTRY spot16_room_0 -DMA_TABLE_ENTRY spot17_scene -DMA_TABLE_ENTRY spot17_room_0 -DMA_TABLE_ENTRY spot17_room_1 -DMA_TABLE_ENTRY spot18_scene -DMA_TABLE_ENTRY spot18_room_0 -DMA_TABLE_ENTRY spot18_room_1 -DMA_TABLE_ENTRY spot18_room_2 -DMA_TABLE_ENTRY spot18_room_3 -DMA_TABLE_ENTRY ydan_scene -DMA_TABLE_ENTRY ydan_room_0 -DMA_TABLE_ENTRY ydan_room_1 -DMA_TABLE_ENTRY ydan_room_2 -DMA_TABLE_ENTRY ydan_room_3 -DMA_TABLE_ENTRY ydan_room_4 -DMA_TABLE_ENTRY ydan_room_5 -DMA_TABLE_ENTRY ydan_room_6 -DMA_TABLE_ENTRY ydan_room_7 -DMA_TABLE_ENTRY ydan_room_8 -DMA_TABLE_ENTRY ydan_room_9 -DMA_TABLE_ENTRY ydan_room_10 -DMA_TABLE_ENTRY ydan_room_11 -DMA_TABLE_ENTRY ddan_scene -DMA_TABLE_ENTRY ddan_room_0 -DMA_TABLE_ENTRY ddan_room_1 -DMA_TABLE_ENTRY ddan_room_2 -DMA_TABLE_ENTRY ddan_room_3 -DMA_TABLE_ENTRY ddan_room_4 -DMA_TABLE_ENTRY ddan_room_5 -DMA_TABLE_ENTRY ddan_room_6 -DMA_TABLE_ENTRY ddan_room_7 -DMA_TABLE_ENTRY ddan_room_8 -DMA_TABLE_ENTRY ddan_room_9 -DMA_TABLE_ENTRY ddan_room_10 -DMA_TABLE_ENTRY ddan_room_11 -DMA_TABLE_ENTRY ddan_room_12 -DMA_TABLE_ENTRY ddan_room_13 -DMA_TABLE_ENTRY ddan_room_14 -DMA_TABLE_ENTRY ddan_room_15 -DMA_TABLE_ENTRY ddan_room_16 -DMA_TABLE_ENTRY bdan_scene -DMA_TABLE_ENTRY bdan_room_0 -DMA_TABLE_ENTRY bdan_room_1 -DMA_TABLE_ENTRY bdan_room_2 -DMA_TABLE_ENTRY bdan_room_3 -DMA_TABLE_ENTRY bdan_room_4 -DMA_TABLE_ENTRY bdan_room_5 -DMA_TABLE_ENTRY bdan_room_6 -DMA_TABLE_ENTRY bdan_room_7 -DMA_TABLE_ENTRY bdan_room_8 -DMA_TABLE_ENTRY bdan_room_9 -DMA_TABLE_ENTRY bdan_room_10 -DMA_TABLE_ENTRY bdan_room_11 -DMA_TABLE_ENTRY bdan_room_12 -DMA_TABLE_ENTRY bdan_room_13 -DMA_TABLE_ENTRY bdan_room_14 -DMA_TABLE_ENTRY bdan_room_15 -DMA_TABLE_ENTRY Bmori1_scene -DMA_TABLE_ENTRY Bmori1_room_0 -DMA_TABLE_ENTRY Bmori1_room_1 -DMA_TABLE_ENTRY Bmori1_room_2 -DMA_TABLE_ENTRY Bmori1_room_3 -DMA_TABLE_ENTRY Bmori1_room_4 -DMA_TABLE_ENTRY Bmori1_room_5 -DMA_TABLE_ENTRY Bmori1_room_6 -DMA_TABLE_ENTRY Bmori1_room_7 -DMA_TABLE_ENTRY Bmori1_room_8 -DMA_TABLE_ENTRY Bmori1_room_9 -DMA_TABLE_ENTRY Bmori1_room_10 -DMA_TABLE_ENTRY Bmori1_room_11 -DMA_TABLE_ENTRY Bmori1_room_12 -DMA_TABLE_ENTRY Bmori1_room_13 -DMA_TABLE_ENTRY Bmori1_room_14 -DMA_TABLE_ENTRY Bmori1_room_15 -DMA_TABLE_ENTRY Bmori1_room_16 -DMA_TABLE_ENTRY Bmori1_room_17 -DMA_TABLE_ENTRY Bmori1_room_18 -DMA_TABLE_ENTRY Bmori1_room_19 -DMA_TABLE_ENTRY Bmori1_room_20 -DMA_TABLE_ENTRY Bmori1_room_21 -DMA_TABLE_ENTRY Bmori1_room_22 -DMA_TABLE_ENTRY HIDAN_scene -DMA_TABLE_ENTRY HIDAN_room_0 -DMA_TABLE_ENTRY HIDAN_room_1 -DMA_TABLE_ENTRY HIDAN_room_2 -DMA_TABLE_ENTRY HIDAN_room_3 -DMA_TABLE_ENTRY HIDAN_room_4 -DMA_TABLE_ENTRY HIDAN_room_5 -DMA_TABLE_ENTRY HIDAN_room_6 -DMA_TABLE_ENTRY HIDAN_room_7 -DMA_TABLE_ENTRY HIDAN_room_8 -DMA_TABLE_ENTRY HIDAN_room_9 -DMA_TABLE_ENTRY HIDAN_room_10 -DMA_TABLE_ENTRY HIDAN_room_11 -DMA_TABLE_ENTRY HIDAN_room_12 -DMA_TABLE_ENTRY HIDAN_room_13 -DMA_TABLE_ENTRY HIDAN_room_14 -DMA_TABLE_ENTRY HIDAN_room_15 -DMA_TABLE_ENTRY HIDAN_room_16 -DMA_TABLE_ENTRY HIDAN_room_17 -DMA_TABLE_ENTRY HIDAN_room_18 -DMA_TABLE_ENTRY HIDAN_room_19 -DMA_TABLE_ENTRY HIDAN_room_20 -DMA_TABLE_ENTRY HIDAN_room_21 -DMA_TABLE_ENTRY HIDAN_room_22 -DMA_TABLE_ENTRY HIDAN_room_23 -DMA_TABLE_ENTRY HIDAN_room_24 -DMA_TABLE_ENTRY HIDAN_room_25 -DMA_TABLE_ENTRY HIDAN_room_26 -DMA_TABLE_ENTRY MIZUsin_scene -DMA_TABLE_ENTRY MIZUsin_room_0 -DMA_TABLE_ENTRY MIZUsin_room_1 -DMA_TABLE_ENTRY MIZUsin_room_2 -DMA_TABLE_ENTRY MIZUsin_room_3 -DMA_TABLE_ENTRY MIZUsin_room_4 -DMA_TABLE_ENTRY MIZUsin_room_5 -DMA_TABLE_ENTRY MIZUsin_room_6 -DMA_TABLE_ENTRY MIZUsin_room_7 -DMA_TABLE_ENTRY MIZUsin_room_8 -DMA_TABLE_ENTRY MIZUsin_room_9 -DMA_TABLE_ENTRY MIZUsin_room_10 -DMA_TABLE_ENTRY MIZUsin_room_11 -DMA_TABLE_ENTRY MIZUsin_room_12 -DMA_TABLE_ENTRY MIZUsin_room_13 -DMA_TABLE_ENTRY MIZUsin_room_14 -DMA_TABLE_ENTRY MIZUsin_room_15 -DMA_TABLE_ENTRY MIZUsin_room_16 -DMA_TABLE_ENTRY MIZUsin_room_17 -DMA_TABLE_ENTRY MIZUsin_room_18 -DMA_TABLE_ENTRY MIZUsin_room_19 -DMA_TABLE_ENTRY MIZUsin_room_20 -DMA_TABLE_ENTRY MIZUsin_room_21 -DMA_TABLE_ENTRY MIZUsin_room_22 -DMA_TABLE_ENTRY jyasinzou_scene -DMA_TABLE_ENTRY jyasinzou_room_0 -DMA_TABLE_ENTRY jyasinzou_room_1 -DMA_TABLE_ENTRY jyasinzou_room_2 -DMA_TABLE_ENTRY jyasinzou_room_3 -DMA_TABLE_ENTRY jyasinzou_room_4 -DMA_TABLE_ENTRY jyasinzou_room_5 -DMA_TABLE_ENTRY jyasinzou_room_6 -DMA_TABLE_ENTRY jyasinzou_room_7 -DMA_TABLE_ENTRY jyasinzou_room_8 -DMA_TABLE_ENTRY jyasinzou_room_9 -DMA_TABLE_ENTRY jyasinzou_room_10 -DMA_TABLE_ENTRY jyasinzou_room_11 -DMA_TABLE_ENTRY jyasinzou_room_12 -DMA_TABLE_ENTRY jyasinzou_room_13 -DMA_TABLE_ENTRY jyasinzou_room_14 -DMA_TABLE_ENTRY jyasinzou_room_15 -DMA_TABLE_ENTRY jyasinzou_room_16 -DMA_TABLE_ENTRY jyasinzou_room_17 -DMA_TABLE_ENTRY jyasinzou_room_18 -DMA_TABLE_ENTRY jyasinzou_room_19 -DMA_TABLE_ENTRY jyasinzou_room_20 -DMA_TABLE_ENTRY jyasinzou_room_21 -DMA_TABLE_ENTRY jyasinzou_room_22 -DMA_TABLE_ENTRY jyasinzou_room_23 -DMA_TABLE_ENTRY jyasinzou_room_24 -DMA_TABLE_ENTRY jyasinzou_room_25 -DMA_TABLE_ENTRY jyasinzou_room_26 -DMA_TABLE_ENTRY jyasinzou_room_27 -DMA_TABLE_ENTRY jyasinzou_room_28 -DMA_TABLE_ENTRY HAKAdan_scene -DMA_TABLE_ENTRY HAKAdan_room_0 -DMA_TABLE_ENTRY HAKAdan_room_1 -DMA_TABLE_ENTRY HAKAdan_room_2 -DMA_TABLE_ENTRY HAKAdan_room_3 -DMA_TABLE_ENTRY HAKAdan_room_4 -DMA_TABLE_ENTRY HAKAdan_room_5 -DMA_TABLE_ENTRY HAKAdan_room_6 -DMA_TABLE_ENTRY HAKAdan_room_7 -DMA_TABLE_ENTRY HAKAdan_room_8 -DMA_TABLE_ENTRY HAKAdan_room_9 -DMA_TABLE_ENTRY HAKAdan_room_10 -DMA_TABLE_ENTRY HAKAdan_room_11 -DMA_TABLE_ENTRY HAKAdan_room_12 -DMA_TABLE_ENTRY HAKAdan_room_13 -DMA_TABLE_ENTRY HAKAdan_room_14 -DMA_TABLE_ENTRY HAKAdan_room_15 -DMA_TABLE_ENTRY HAKAdan_room_16 -DMA_TABLE_ENTRY HAKAdan_room_17 -DMA_TABLE_ENTRY HAKAdan_room_18 -DMA_TABLE_ENTRY HAKAdan_room_19 -DMA_TABLE_ENTRY HAKAdan_room_20 -DMA_TABLE_ENTRY HAKAdan_room_21 -DMA_TABLE_ENTRY HAKAdan_room_22 -DMA_TABLE_ENTRY HAKAdanCH_scene -DMA_TABLE_ENTRY HAKAdanCH_room_0 -DMA_TABLE_ENTRY HAKAdanCH_room_1 -DMA_TABLE_ENTRY HAKAdanCH_room_2 -DMA_TABLE_ENTRY HAKAdanCH_room_3 -DMA_TABLE_ENTRY HAKAdanCH_room_4 -DMA_TABLE_ENTRY HAKAdanCH_room_5 -DMA_TABLE_ENTRY HAKAdanCH_room_6 -DMA_TABLE_ENTRY ice_doukutu_scene -DMA_TABLE_ENTRY ice_doukutu_room_0 -DMA_TABLE_ENTRY ice_doukutu_room_1 -DMA_TABLE_ENTRY ice_doukutu_room_2 -DMA_TABLE_ENTRY ice_doukutu_room_3 -DMA_TABLE_ENTRY ice_doukutu_room_4 -DMA_TABLE_ENTRY ice_doukutu_room_5 -DMA_TABLE_ENTRY ice_doukutu_room_6 -DMA_TABLE_ENTRY ice_doukutu_room_7 -DMA_TABLE_ENTRY ice_doukutu_room_8 -DMA_TABLE_ENTRY ice_doukutu_room_9 -DMA_TABLE_ENTRY ice_doukutu_room_10 -DMA_TABLE_ENTRY ice_doukutu_room_11 -DMA_TABLE_ENTRY men_scene -DMA_TABLE_ENTRY men_room_0 -DMA_TABLE_ENTRY men_room_1 -DMA_TABLE_ENTRY men_room_2 -DMA_TABLE_ENTRY men_room_3 -DMA_TABLE_ENTRY men_room_4 -DMA_TABLE_ENTRY men_room_5 -DMA_TABLE_ENTRY men_room_6 -DMA_TABLE_ENTRY men_room_7 -DMA_TABLE_ENTRY men_room_8 -DMA_TABLE_ENTRY men_room_9 -DMA_TABLE_ENTRY men_room_10 -DMA_TABLE_ENTRY ganontika_scene -DMA_TABLE_ENTRY ganontika_room_0 -DMA_TABLE_ENTRY ganontika_room_1 -DMA_TABLE_ENTRY ganontika_room_2 -DMA_TABLE_ENTRY ganontika_room_3 -DMA_TABLE_ENTRY ganontika_room_4 -DMA_TABLE_ENTRY ganontika_room_5 -DMA_TABLE_ENTRY ganontika_room_6 -DMA_TABLE_ENTRY ganontika_room_7 -DMA_TABLE_ENTRY ganontika_room_8 -DMA_TABLE_ENTRY ganontika_room_9 -DMA_TABLE_ENTRY ganontika_room_10 -DMA_TABLE_ENTRY ganontika_room_11 -DMA_TABLE_ENTRY ganontika_room_12 -DMA_TABLE_ENTRY ganontika_room_13 -DMA_TABLE_ENTRY ganontika_room_14 -DMA_TABLE_ENTRY ganontika_room_15 -DMA_TABLE_ENTRY ganontika_room_16 -DMA_TABLE_ENTRY ganontika_room_17 -DMA_TABLE_ENTRY ganontika_room_18 -DMA_TABLE_ENTRY ganontika_room_19 -DMA_TABLE_ENTRY market_day_scene -DMA_TABLE_ENTRY market_day_room_0 -DMA_TABLE_ENTRY market_night_scene -DMA_TABLE_ENTRY market_night_room_0 -DMA_TABLE_ENTRY testroom_scene -DMA_TABLE_ENTRY testroom_room_0 -DMA_TABLE_ENTRY testroom_room_1 -DMA_TABLE_ENTRY testroom_room_2 -DMA_TABLE_ENTRY testroom_room_3 -DMA_TABLE_ENTRY testroom_room_4 -DMA_TABLE_ENTRY kenjyanoma_scene -DMA_TABLE_ENTRY kenjyanoma_room_0 -DMA_TABLE_ENTRY tokinoma_scene -DMA_TABLE_ENTRY tokinoma_room_0 -DMA_TABLE_ENTRY tokinoma_room_1 -DMA_TABLE_ENTRY sutaru_scene -DMA_TABLE_ENTRY sutaru_room_0 -DMA_TABLE_ENTRY link_home_scene -DMA_TABLE_ENTRY link_home_room_0 -DMA_TABLE_ENTRY kokiri_shop_scene -DMA_TABLE_ENTRY kokiri_shop_room_0 -DMA_TABLE_ENTRY kokiri_home_scene -DMA_TABLE_ENTRY kokiri_home_room_0 -DMA_TABLE_ENTRY kakusiana_scene -DMA_TABLE_ENTRY kakusiana_room_0 -DMA_TABLE_ENTRY kakusiana_room_1 -DMA_TABLE_ENTRY kakusiana_room_2 -DMA_TABLE_ENTRY kakusiana_room_3 -DMA_TABLE_ENTRY kakusiana_room_4 -DMA_TABLE_ENTRY kakusiana_room_5 -DMA_TABLE_ENTRY kakusiana_room_6 -DMA_TABLE_ENTRY kakusiana_room_7 -DMA_TABLE_ENTRY kakusiana_room_8 -DMA_TABLE_ENTRY kakusiana_room_9 -DMA_TABLE_ENTRY kakusiana_room_10 -DMA_TABLE_ENTRY kakusiana_room_11 -DMA_TABLE_ENTRY kakusiana_room_12 -DMA_TABLE_ENTRY kakusiana_room_13 -DMA_TABLE_ENTRY entra_scene -DMA_TABLE_ENTRY entra_room_0 -DMA_TABLE_ENTRY moribossroom_scene -DMA_TABLE_ENTRY moribossroom_room_0 -DMA_TABLE_ENTRY moribossroom_room_1 -DMA_TABLE_ENTRY syatekijyou_scene -DMA_TABLE_ENTRY syatekijyou_room_0 -DMA_TABLE_ENTRY shop1_scene -DMA_TABLE_ENTRY shop1_room_0 -DMA_TABLE_ENTRY hairal_niwa_scene -DMA_TABLE_ENTRY hairal_niwa_room_0 -DMA_TABLE_ENTRY ganon_tou_scene -DMA_TABLE_ENTRY ganon_tou_room_0 -DMA_TABLE_ENTRY sasatest_scene -DMA_TABLE_ENTRY sasatest_room_0 -DMA_TABLE_ENTRY market_alley_scene -DMA_TABLE_ENTRY market_alley_room_0 -DMA_TABLE_ENTRY spot20_scene -DMA_TABLE_ENTRY spot20_room_0 -DMA_TABLE_ENTRY market_ruins_scene -DMA_TABLE_ENTRY market_ruins_room_0 -DMA_TABLE_ENTRY entra_n_scene -DMA_TABLE_ENTRY entra_n_room_0 -DMA_TABLE_ENTRY enrui_scene -DMA_TABLE_ENTRY enrui_room_0 -DMA_TABLE_ENTRY market_alley_n_scene -DMA_TABLE_ENTRY market_alley_n_room_0 -DMA_TABLE_ENTRY hiral_demo_scene -DMA_TABLE_ENTRY hiral_demo_room_0 -DMA_TABLE_ENTRY kokiri_home3_scene -DMA_TABLE_ENTRY kokiri_home3_room_0 -DMA_TABLE_ENTRY malon_stable_scene -DMA_TABLE_ENTRY malon_stable_room_0 -DMA_TABLE_ENTRY kakariko_scene -DMA_TABLE_ENTRY kakariko_room_0 -DMA_TABLE_ENTRY bdan_boss_scene -DMA_TABLE_ENTRY bdan_boss_room_0 -DMA_TABLE_ENTRY bdan_boss_room_1 -DMA_TABLE_ENTRY FIRE_bs_scene -DMA_TABLE_ENTRY FIRE_bs_room_0 -DMA_TABLE_ENTRY FIRE_bs_room_1 -DMA_TABLE_ENTRY hut_scene -DMA_TABLE_ENTRY hut_room_0 -DMA_TABLE_ENTRY daiyousei_izumi_scene -DMA_TABLE_ENTRY daiyousei_izumi_room_0 -DMA_TABLE_ENTRY hakaana_scene -DMA_TABLE_ENTRY hakaana_room_0 -DMA_TABLE_ENTRY yousei_izumi_tate_scene -DMA_TABLE_ENTRY yousei_izumi_tate_room_0 -DMA_TABLE_ENTRY yousei_izumi_yoko_scene -DMA_TABLE_ENTRY yousei_izumi_yoko_room_0 -DMA_TABLE_ENTRY golon_scene -DMA_TABLE_ENTRY golon_room_0 -DMA_TABLE_ENTRY zoora_scene -DMA_TABLE_ENTRY zoora_room_0 -DMA_TABLE_ENTRY drag_scene -DMA_TABLE_ENTRY drag_room_0 -DMA_TABLE_ENTRY alley_shop_scene -DMA_TABLE_ENTRY alley_shop_room_0 -DMA_TABLE_ENTRY night_shop_scene -DMA_TABLE_ENTRY night_shop_room_0 -DMA_TABLE_ENTRY impa_scene -DMA_TABLE_ENTRY impa_room_0 -DMA_TABLE_ENTRY labo_scene -DMA_TABLE_ENTRY labo_room_0 -DMA_TABLE_ENTRY tent_scene -DMA_TABLE_ENTRY tent_room_0 -DMA_TABLE_ENTRY nakaniwa_scene -DMA_TABLE_ENTRY nakaniwa_room_0 -DMA_TABLE_ENTRY ddan_boss_scene -DMA_TABLE_ENTRY ddan_boss_room_0 -DMA_TABLE_ENTRY ddan_boss_room_1 -DMA_TABLE_ENTRY ydan_boss_scene -DMA_TABLE_ENTRY ydan_boss_room_0 -DMA_TABLE_ENTRY ydan_boss_room_1 -DMA_TABLE_ENTRY HAKAdan_bs_scene -DMA_TABLE_ENTRY HAKAdan_bs_room_0 -DMA_TABLE_ENTRY HAKAdan_bs_room_1 -DMA_TABLE_ENTRY MIZUsin_bs_scene -DMA_TABLE_ENTRY MIZUsin_bs_room_0 -DMA_TABLE_ENTRY MIZUsin_bs_room_1 -DMA_TABLE_ENTRY ganon_scene -DMA_TABLE_ENTRY ganon_room_0 -DMA_TABLE_ENTRY ganon_room_1 -DMA_TABLE_ENTRY ganon_room_2 -DMA_TABLE_ENTRY ganon_room_3 -DMA_TABLE_ENTRY ganon_room_4 -DMA_TABLE_ENTRY ganon_room_5 -DMA_TABLE_ENTRY ganon_room_6 -DMA_TABLE_ENTRY ganon_room_7 -DMA_TABLE_ENTRY ganon_room_8 -DMA_TABLE_ENTRY ganon_room_9 -DMA_TABLE_ENTRY ganon_boss_scene -DMA_TABLE_ENTRY ganon_boss_room_0 -DMA_TABLE_ENTRY jyasinboss_scene -DMA_TABLE_ENTRY jyasinboss_room_0 -DMA_TABLE_ENTRY jyasinboss_room_1 -DMA_TABLE_ENTRY jyasinboss_room_2 -DMA_TABLE_ENTRY jyasinboss_room_3 -DMA_TABLE_ENTRY kokiri_home4_scene -DMA_TABLE_ENTRY kokiri_home4_room_0 -DMA_TABLE_ENTRY kokiri_home5_scene -DMA_TABLE_ENTRY kokiri_home5_room_0 -DMA_TABLE_ENTRY ganon_final_scene -DMA_TABLE_ENTRY ganon_final_room_0 -DMA_TABLE_ENTRY kakariko3_scene -DMA_TABLE_ENTRY kakariko3_room_0 -DMA_TABLE_ENTRY hairal_niwa2_scene -DMA_TABLE_ENTRY hairal_niwa2_room_0 -DMA_TABLE_ENTRY hakasitarelay_scene -DMA_TABLE_ENTRY hakasitarelay_room_0 -DMA_TABLE_ENTRY hakasitarelay_room_1 -DMA_TABLE_ENTRY hakasitarelay_room_2 -DMA_TABLE_ENTRY hakasitarelay_room_3 -DMA_TABLE_ENTRY hakasitarelay_room_4 -DMA_TABLE_ENTRY hakasitarelay_room_5 -DMA_TABLE_ENTRY hakasitarelay_room_6 -DMA_TABLE_ENTRY shrine_scene -DMA_TABLE_ENTRY shrine_room_0 -DMA_TABLE_ENTRY turibori_scene -DMA_TABLE_ENTRY turibori_room_0 -DMA_TABLE_ENTRY shrine_n_scene -DMA_TABLE_ENTRY shrine_n_room_0 -DMA_TABLE_ENTRY shrine_r_scene -DMA_TABLE_ENTRY shrine_r_room_0 -DMA_TABLE_ENTRY hakaana2_scene -DMA_TABLE_ENTRY hakaana2_room_0 -DMA_TABLE_ENTRY gerudoway_scene -DMA_TABLE_ENTRY gerudoway_room_0 -DMA_TABLE_ENTRY gerudoway_room_1 -DMA_TABLE_ENTRY gerudoway_room_2 -DMA_TABLE_ENTRY gerudoway_room_3 -DMA_TABLE_ENTRY gerudoway_room_4 -DMA_TABLE_ENTRY gerudoway_room_5 -DMA_TABLE_ENTRY hairal_niwa_n_scene -DMA_TABLE_ENTRY hairal_niwa_n_room_0 -DMA_TABLE_ENTRY bowling_scene -DMA_TABLE_ENTRY bowling_room_0 -DMA_TABLE_ENTRY hakaana_ouke_scene -DMA_TABLE_ENTRY hakaana_ouke_room_0 -DMA_TABLE_ENTRY hakaana_ouke_room_1 -DMA_TABLE_ENTRY hakaana_ouke_room_2 -DMA_TABLE_ENTRY hylia_labo_scene -DMA_TABLE_ENTRY hylia_labo_room_0 -DMA_TABLE_ENTRY souko_scene -DMA_TABLE_ENTRY souko_room_0 -DMA_TABLE_ENTRY souko_room_1 -DMA_TABLE_ENTRY souko_room_2 -DMA_TABLE_ENTRY miharigoya_scene -DMA_TABLE_ENTRY miharigoya_room_0 -DMA_TABLE_ENTRY mahouya_scene -DMA_TABLE_ENTRY mahouya_room_0 -DMA_TABLE_ENTRY takaraya_scene -DMA_TABLE_ENTRY takaraya_room_0 -DMA_TABLE_ENTRY takaraya_room_1 -DMA_TABLE_ENTRY takaraya_room_2 -DMA_TABLE_ENTRY takaraya_room_3 -DMA_TABLE_ENTRY takaraya_room_4 -DMA_TABLE_ENTRY takaraya_room_5 -DMA_TABLE_ENTRY takaraya_room_6 -DMA_TABLE_ENTRY ganon_sonogo_scene -DMA_TABLE_ENTRY ganon_sonogo_room_0 -DMA_TABLE_ENTRY ganon_sonogo_room_1 -DMA_TABLE_ENTRY ganon_sonogo_room_2 -DMA_TABLE_ENTRY ganon_sonogo_room_3 -DMA_TABLE_ENTRY ganon_sonogo_room_4 -DMA_TABLE_ENTRY ganon_demo_scene -DMA_TABLE_ENTRY ganon_demo_room_0 -DMA_TABLE_ENTRY besitu_scene -DMA_TABLE_ENTRY besitu_room_0 -DMA_TABLE_ENTRY face_shop_scene -DMA_TABLE_ENTRY face_shop_room_0 -DMA_TABLE_ENTRY kinsuta_scene -DMA_TABLE_ENTRY kinsuta_room_0 -DMA_TABLE_ENTRY ganontikasonogo_scene -DMA_TABLE_ENTRY ganontikasonogo_room_0 -DMA_TABLE_ENTRY ganontikasonogo_room_1 -DMA_TABLE_ENTRY test01_scene -DMA_TABLE_ENTRY test01_room_0 -DMA_TABLE_ENTRY bump_texture_static -DMA_TABLE_ENTRY anime_model_1_static -DMA_TABLE_ENTRY anime_model_2_static -DMA_TABLE_ENTRY anime_model_3_static -DMA_TABLE_ENTRY anime_model_4_static -DMA_TABLE_ENTRY anime_model_5_static -DMA_TABLE_ENTRY anime_model_6_static -DMA_TABLE_ENTRY anime_texture_1_static -DMA_TABLE_ENTRY anime_texture_2_static -DMA_TABLE_ENTRY anime_texture_3_static -DMA_TABLE_ENTRY anime_texture_4_static -DMA_TABLE_ENTRY anime_texture_5_static -DMA_TABLE_ENTRY anime_texture_6_static -DMA_TABLE_ENTRY softsprite_matrix_static - -# Why the empty space? -.space 0x100 diff --git a/include/tables/dmadata_table.h b/include/tables/dmadata_table.h new file mode 100644 index 0000000000..09ba92c000 --- /dev/null +++ b/include/tables/dmadata_table.h @@ -0,0 +1,9 @@ +/** + * Select dmadata table for version + */ +#ifdef NON_MATCHING +// For non-matching builds, dmadata is generated from the specfile segments +#include "dmadata_table_spec.h" +#else +#include "tables/dmadata_table_mqdbg.h" +#endif diff --git a/include/tables/dmadata_table_mqdbg.h b/include/tables/dmadata_table_mqdbg.h new file mode 100644 index 0000000000..a2c5279be9 --- /dev/null +++ b/include/tables/dmadata_table_mqdbg.h @@ -0,0 +1,1535 @@ +/** + * Matching dmadata layout for PAL MQ Debug + */ +DEFINE_DMA_ENTRY(makerom) +DEFINE_DMA_ENTRY(boot) +DEFINE_DMA_ENTRY(dmadata) +DEFINE_DMA_ENTRY(Audiobank) +DEFINE_DMA_ENTRY(Audioseq) +DEFINE_DMA_ENTRY(Audiotable) +DEFINE_DMA_ENTRY(link_animetion) +DEFINE_DMA_ENTRY(icon_item_static) +DEFINE_DMA_ENTRY(icon_item_24_static) +DEFINE_DMA_ENTRY(icon_item_field_static) +DEFINE_DMA_ENTRY(icon_item_dungeon_static) +DEFINE_DMA_ENTRY(icon_item_gameover_static) +DEFINE_DMA_ENTRY(icon_item_nes_static) +DEFINE_DMA_ENTRY(icon_item_ger_static) +DEFINE_DMA_ENTRY(icon_item_fra_static) +DEFINE_DMA_ENTRY(item_name_static) +DEFINE_DMA_ENTRY(map_name_static) +DEFINE_DMA_ENTRY(do_action_static) +DEFINE_DMA_ENTRY(message_static) +DEFINE_DMA_ENTRY(message_texture_static) +DEFINE_DMA_ENTRY(nes_font_static) +DEFINE_DMA_ENTRY(nes_message_data_static) +DEFINE_DMA_ENTRY(ger_message_data_static) +DEFINE_DMA_ENTRY(fra_message_data_static) +DEFINE_DMA_ENTRY(staff_message_data_static) +DEFINE_DMA_ENTRY(map_grand_static) +DEFINE_DMA_ENTRY(map_i_static) +DEFINE_DMA_ENTRY(map_48x85_static) +DEFINE_DMA_ENTRY(code) +DEFINE_DMA_ENTRY(ovl_title) +DEFINE_DMA_ENTRY(ovl_select) +DEFINE_DMA_ENTRY(ovl_opening) +DEFINE_DMA_ENTRY(ovl_file_choose) +DEFINE_DMA_ENTRY(ovl_kaleido_scope) +DEFINE_DMA_ENTRY(ovl_player_actor) +DEFINE_DMA_ENTRY(ovl_map_mark_data) +DEFINE_DMA_ENTRY(ovl_En_Test) +DEFINE_DMA_ENTRY(ovl_Arms_Hook) +DEFINE_DMA_ENTRY(ovl_Arrow_Fire) +DEFINE_DMA_ENTRY(ovl_Arrow_Ice) +DEFINE_DMA_ENTRY(ovl_Arrow_Light) +DEFINE_DMA_ENTRY(ovl_Bg_Bdan_Objects) +DEFINE_DMA_ENTRY(ovl_Bg_Bdan_Switch) +DEFINE_DMA_ENTRY(ovl_Bg_Bom_Guard) +DEFINE_DMA_ENTRY(ovl_Bg_Bombwall) +DEFINE_DMA_ENTRY(ovl_Bg_Bowl_Wall) +DEFINE_DMA_ENTRY(ovl_Bg_Breakwall) +DEFINE_DMA_ENTRY(ovl_Bg_Ddan_Jd) +DEFINE_DMA_ENTRY(ovl_Bg_Ddan_Kd) +DEFINE_DMA_ENTRY(ovl_Bg_Dodoago) +DEFINE_DMA_ENTRY(ovl_Bg_Dy_Yoseizo) +DEFINE_DMA_ENTRY(ovl_Bg_Ganon_Otyuka) +DEFINE_DMA_ENTRY(ovl_Bg_Gate_Shutter) +DEFINE_DMA_ENTRY(ovl_Bg_Gjyo_Bridge) +DEFINE_DMA_ENTRY(ovl_Bg_Gnd_Darkmeiro) +DEFINE_DMA_ENTRY(ovl_Bg_Gnd_Firemeiro) +DEFINE_DMA_ENTRY(ovl_Bg_Gnd_Iceblock) +DEFINE_DMA_ENTRY(ovl_Bg_Gnd_Nisekabe) +DEFINE_DMA_ENTRY(ovl_Bg_Gnd_Soulmeiro) +DEFINE_DMA_ENTRY(ovl_Bg_Haka) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Gate) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Huta) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Megane) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_MeganeBG) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Sgami) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Ship) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Trap) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Tubo) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Water) +DEFINE_DMA_ENTRY(ovl_Bg_Haka_Zou) +DEFINE_DMA_ENTRY(ovl_Bg_Heavy_Block) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Curtain) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Dalm) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Firewall) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Fslift) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Fwbig) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Hamstep) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Hrock) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Kousi) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Kowarerukabe) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Rock) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Rsekizou) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Sekizou) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Sima) +DEFINE_DMA_ENTRY(ovl_Bg_Hidan_Syoku) +DEFINE_DMA_ENTRY(ovl_Bg_Ice_Objects) +DEFINE_DMA_ENTRY(ovl_Bg_Ice_Shelter) +DEFINE_DMA_ENTRY(ovl_Bg_Ice_Shutter) +DEFINE_DMA_ENTRY(ovl_Bg_Ice_Turara) +DEFINE_DMA_ENTRY(ovl_Bg_Ingate) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_1flift) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Amishutter) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Bigmirror) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Block) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Bombchuiwa) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Bombiwa) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Cobra) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Goroiwa) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Haheniron) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Ironobj) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Kanaami) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Lift) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Megami) +DEFINE_DMA_ENTRY(ovl_Bg_Jya_Zurerukabe) +DEFINE_DMA_ENTRY(ovl_Bg_Menkuri_Eye) +DEFINE_DMA_ENTRY(ovl_Bg_Menkuri_Kaiten) +DEFINE_DMA_ENTRY(ovl_Bg_Menkuri_Nisekabe) +DEFINE_DMA_ENTRY(ovl_Bg_Mizu_Bwall) +DEFINE_DMA_ENTRY(ovl_Bg_Mizu_Movebg) +DEFINE_DMA_ENTRY(ovl_Bg_Mizu_Shutter) +DEFINE_DMA_ENTRY(ovl_Bg_Mizu_Uzu) +DEFINE_DMA_ENTRY(ovl_Bg_Mizu_Water) +DEFINE_DMA_ENTRY(ovl_Bg_Mjin) +DEFINE_DMA_ENTRY(ovl_Bg_Mori_Bigst) +DEFINE_DMA_ENTRY(ovl_Bg_Mori_Elevator) +DEFINE_DMA_ENTRY(ovl_Bg_Mori_Hashigo) +DEFINE_DMA_ENTRY(ovl_Bg_Mori_Hashira4) +DEFINE_DMA_ENTRY(ovl_Bg_Mori_Hineri) +DEFINE_DMA_ENTRY(ovl_Bg_Mori_Idomizu) +DEFINE_DMA_ENTRY(ovl_Bg_Mori_Kaitenkabe) +DEFINE_DMA_ENTRY(ovl_Bg_Mori_Rakkatenjo) +DEFINE_DMA_ENTRY(ovl_Bg_Po_Event) +DEFINE_DMA_ENTRY(ovl_Bg_Po_Syokudai) +DEFINE_DMA_ENTRY(ovl_Bg_Pushbox) +DEFINE_DMA_ENTRY(ovl_Bg_Relay_Objects) +DEFINE_DMA_ENTRY(ovl_Bg_Spot00_Break) +DEFINE_DMA_ENTRY(ovl_Bg_Spot00_Hanebasi) +DEFINE_DMA_ENTRY(ovl_Bg_Spot01_Fusya) +DEFINE_DMA_ENTRY(ovl_Bg_Spot01_Idohashira) +DEFINE_DMA_ENTRY(ovl_Bg_Spot01_Idomizu) +DEFINE_DMA_ENTRY(ovl_Bg_Spot01_Idosoko) +DEFINE_DMA_ENTRY(ovl_Bg_Spot01_Objects2) +DEFINE_DMA_ENTRY(ovl_Bg_Spot02_Objects) +DEFINE_DMA_ENTRY(ovl_Bg_Spot03_Taki) +DEFINE_DMA_ENTRY(ovl_Bg_Spot05_Soko) +DEFINE_DMA_ENTRY(ovl_Bg_Spot06_Objects) +DEFINE_DMA_ENTRY(ovl_Bg_Spot07_Taki) +DEFINE_DMA_ENTRY(ovl_Bg_Spot08_Bakudankabe) +DEFINE_DMA_ENTRY(ovl_Bg_Spot08_Iceblock) +DEFINE_DMA_ENTRY(ovl_Bg_Spot09_Obj) +DEFINE_DMA_ENTRY(ovl_Bg_Spot11_Bakudankabe) +DEFINE_DMA_ENTRY(ovl_Bg_Spot11_Oasis) +DEFINE_DMA_ENTRY(ovl_Bg_Spot12_Gate) +DEFINE_DMA_ENTRY(ovl_Bg_Spot12_Saku) +DEFINE_DMA_ENTRY(ovl_Bg_Spot15_Rrbox) +DEFINE_DMA_ENTRY(ovl_Bg_Spot15_Saku) +DEFINE_DMA_ENTRY(ovl_Bg_Spot16_Bombstone) +DEFINE_DMA_ENTRY(ovl_Bg_Spot16_Doughnut) +DEFINE_DMA_ENTRY(ovl_Bg_Spot17_Bakudankabe) +DEFINE_DMA_ENTRY(ovl_Bg_Spot17_Funen) +DEFINE_DMA_ENTRY(ovl_Bg_Spot18_Basket) +DEFINE_DMA_ENTRY(ovl_Bg_Spot18_Futa) +DEFINE_DMA_ENTRY(ovl_Bg_Spot18_Obj) +DEFINE_DMA_ENTRY(ovl_Bg_Spot18_Shutter) +DEFINE_DMA_ENTRY(ovl_Bg_Sst_Floor) +DEFINE_DMA_ENTRY(ovl_Bg_Toki_Hikari) +DEFINE_DMA_ENTRY(ovl_Bg_Toki_Swd) +DEFINE_DMA_ENTRY(ovl_Bg_Treemouth) +DEFINE_DMA_ENTRY(ovl_Bg_Umajump) +DEFINE_DMA_ENTRY(ovl_Bg_Vb_Sima) +DEFINE_DMA_ENTRY(ovl_Bg_Ydan_Hasi) +DEFINE_DMA_ENTRY(ovl_Bg_Ydan_Maruta) +DEFINE_DMA_ENTRY(ovl_Bg_Ydan_Sp) +DEFINE_DMA_ENTRY(ovl_Bg_Zg) +DEFINE_DMA_ENTRY(ovl_Boss_Dodongo) +DEFINE_DMA_ENTRY(ovl_Boss_Fd) +DEFINE_DMA_ENTRY(ovl_Boss_Fd2) +DEFINE_DMA_ENTRY(ovl_Boss_Ganon) +DEFINE_DMA_ENTRY(ovl_Boss_Ganon2) +DEFINE_DMA_ENTRY(ovl_Boss_Ganondrof) +DEFINE_DMA_ENTRY(ovl_Boss_Goma) +DEFINE_DMA_ENTRY(ovl_Boss_Mo) +DEFINE_DMA_ENTRY(ovl_Boss_Sst) +DEFINE_DMA_ENTRY(ovl_Boss_Tw) +DEFINE_DMA_ENTRY(ovl_Boss_Va) +DEFINE_DMA_ENTRY(ovl_Demo_6K) +DEFINE_DMA_ENTRY(ovl_Demo_Du) +DEFINE_DMA_ENTRY(ovl_Demo_Ec) +DEFINE_DMA_ENTRY(ovl_Demo_Effect) +DEFINE_DMA_ENTRY(ovl_Demo_Ext) +DEFINE_DMA_ENTRY(ovl_Demo_Geff) +DEFINE_DMA_ENTRY(ovl_Demo_Gj) +DEFINE_DMA_ENTRY(ovl_Demo_Go) +DEFINE_DMA_ENTRY(ovl_Demo_Gt) +DEFINE_DMA_ENTRY(ovl_Demo_Ik) +DEFINE_DMA_ENTRY(ovl_Demo_Im) +DEFINE_DMA_ENTRY(ovl_Demo_Kankyo) +DEFINE_DMA_ENTRY(ovl_Demo_Kekkai) +DEFINE_DMA_ENTRY(ovl_Demo_Sa) +DEFINE_DMA_ENTRY(ovl_Demo_Shd) +DEFINE_DMA_ENTRY(ovl_Demo_Tre_Lgt) +DEFINE_DMA_ENTRY(ovl_Door_Ana) +DEFINE_DMA_ENTRY(ovl_Door_Gerudo) +DEFINE_DMA_ENTRY(ovl_Door_Killer) +DEFINE_DMA_ENTRY(ovl_Door_Shutter) +DEFINE_DMA_ENTRY(ovl_Door_Toki) +DEFINE_DMA_ENTRY(ovl_Door_Warp1) +DEFINE_DMA_ENTRY(ovl_Efc_Erupc) +DEFINE_DMA_ENTRY(ovl_Eff_Dust) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Blast) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Bomb) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Bomb2) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Bubble) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_D_Fire) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Dead_Db) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Dead_Dd) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Dead_Ds) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Dead_Sound) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Dt_Bubble) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Dust) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_En_Fire) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_En_Ice) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Extra) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Fcircle) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Fhg_Flash) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Fire_Tail) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_G_Fire) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_G_Magma) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_G_Magma2) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_G_Ripple) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_G_Spk) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_G_Splash) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Hahen) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_HitMark) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Ice_Piece) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Ice_Smoke) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_K_Fire) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Kakera) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_KiraKira) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Lightning) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Sibuki) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Sibuki2) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Solder_Srch_Ball) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Stick) +DEFINE_DMA_ENTRY(ovl_Effect_Ss_Stone1) +DEFINE_DMA_ENTRY(ovl_Elf_Msg) +DEFINE_DMA_ENTRY(ovl_Elf_Msg2) +DEFINE_DMA_ENTRY(ovl_En_Am) +DEFINE_DMA_ENTRY(ovl_En_Ani) +DEFINE_DMA_ENTRY(ovl_En_Anubice) +DEFINE_DMA_ENTRY(ovl_En_Anubice_Fire) +DEFINE_DMA_ENTRY(ovl_En_Anubice_Tag) +DEFINE_DMA_ENTRY(ovl_En_Arow_Trap) +DEFINE_DMA_ENTRY(ovl_En_Arrow) +DEFINE_DMA_ENTRY(ovl_En_Attack_Niw) +DEFINE_DMA_ENTRY(ovl_En_Ba) +DEFINE_DMA_ENTRY(ovl_En_Bb) +DEFINE_DMA_ENTRY(ovl_En_Bdfire) +DEFINE_DMA_ENTRY(ovl_En_Bigokuta) +DEFINE_DMA_ENTRY(ovl_En_Bili) +DEFINE_DMA_ENTRY(ovl_En_Bird) +DEFINE_DMA_ENTRY(ovl_En_Blkobj) +DEFINE_DMA_ENTRY(ovl_En_Bom) +DEFINE_DMA_ENTRY(ovl_En_Bom_Bowl_Man) +DEFINE_DMA_ENTRY(ovl_En_Bom_Bowl_Pit) +DEFINE_DMA_ENTRY(ovl_En_Bom_Chu) +DEFINE_DMA_ENTRY(ovl_En_Bombf) +DEFINE_DMA_ENTRY(ovl_En_Boom) +DEFINE_DMA_ENTRY(ovl_En_Box) +DEFINE_DMA_ENTRY(ovl_En_Brob) +DEFINE_DMA_ENTRY(ovl_En_Bubble) +DEFINE_DMA_ENTRY(ovl_En_Butte) +DEFINE_DMA_ENTRY(ovl_En_Bw) +DEFINE_DMA_ENTRY(ovl_En_Bx) +DEFINE_DMA_ENTRY(ovl_En_Changer) +DEFINE_DMA_ENTRY(ovl_En_Clear_Tag) +DEFINE_DMA_ENTRY(ovl_En_Cow) +DEFINE_DMA_ENTRY(ovl_En_Crow) +DEFINE_DMA_ENTRY(ovl_En_Cs) +DEFINE_DMA_ENTRY(ovl_En_Daiku) +DEFINE_DMA_ENTRY(ovl_En_Daiku_Kakariko) +DEFINE_DMA_ENTRY(ovl_En_Dekubaba) +DEFINE_DMA_ENTRY(ovl_En_Dekunuts) +DEFINE_DMA_ENTRY(ovl_En_Dh) +DEFINE_DMA_ENTRY(ovl_En_Dha) +DEFINE_DMA_ENTRY(ovl_En_Diving_Game) +DEFINE_DMA_ENTRY(ovl_En_Dns) +DEFINE_DMA_ENTRY(ovl_En_Dnt_Demo) +DEFINE_DMA_ENTRY(ovl_En_Dnt_Jiji) +DEFINE_DMA_ENTRY(ovl_En_Dnt_Nomal) +DEFINE_DMA_ENTRY(ovl_En_Dodojr) +DEFINE_DMA_ENTRY(ovl_En_Dodongo) +DEFINE_DMA_ENTRY(ovl_En_Dog) +DEFINE_DMA_ENTRY(ovl_En_Door) +DEFINE_DMA_ENTRY(ovl_En_Ds) +DEFINE_DMA_ENTRY(ovl_En_Du) +DEFINE_DMA_ENTRY(ovl_En_Dy_Extra) +DEFINE_DMA_ENTRY(ovl_En_Eg) +DEFINE_DMA_ENTRY(ovl_En_Eiyer) +DEFINE_DMA_ENTRY(ovl_En_Elf) +DEFINE_DMA_ENTRY(ovl_En_Encount1) +DEFINE_DMA_ENTRY(ovl_En_Encount2) +DEFINE_DMA_ENTRY(ovl_En_Ex_Item) +DEFINE_DMA_ENTRY(ovl_En_Ex_Ruppy) +DEFINE_DMA_ENTRY(ovl_En_Fd) +DEFINE_DMA_ENTRY(ovl_En_Fd_Fire) +DEFINE_DMA_ENTRY(ovl_En_Fhg_Fire) +DEFINE_DMA_ENTRY(ovl_En_Fire_Rock) +DEFINE_DMA_ENTRY(ovl_En_Firefly) +DEFINE_DMA_ENTRY(ovl_En_Fish) +DEFINE_DMA_ENTRY(ovl_En_Floormas) +DEFINE_DMA_ENTRY(ovl_En_Fr) +DEFINE_DMA_ENTRY(ovl_En_Fu) +DEFINE_DMA_ENTRY(ovl_En_Fw) +DEFINE_DMA_ENTRY(ovl_En_Fz) +DEFINE_DMA_ENTRY(ovl_En_G_Switch) +DEFINE_DMA_ENTRY(ovl_En_Ganon_Mant) +DEFINE_DMA_ENTRY(ovl_En_Ganon_Organ) +DEFINE_DMA_ENTRY(ovl_En_Gb) +DEFINE_DMA_ENTRY(ovl_En_Ge1) +DEFINE_DMA_ENTRY(ovl_En_Ge2) +DEFINE_DMA_ENTRY(ovl_En_Ge3) +DEFINE_DMA_ENTRY(ovl_En_GeldB) +DEFINE_DMA_ENTRY(ovl_En_GirlA) +DEFINE_DMA_ENTRY(ovl_En_Gm) +DEFINE_DMA_ENTRY(ovl_En_Go) +DEFINE_DMA_ENTRY(ovl_En_Go2) +DEFINE_DMA_ENTRY(ovl_En_Goma) +DEFINE_DMA_ENTRY(ovl_En_Goroiwa) +DEFINE_DMA_ENTRY(ovl_En_Gs) +DEFINE_DMA_ENTRY(ovl_En_Guest) +DEFINE_DMA_ENTRY(ovl_En_Hata) +DEFINE_DMA_ENTRY(ovl_En_Heishi1) +DEFINE_DMA_ENTRY(ovl_En_Heishi2) +DEFINE_DMA_ENTRY(ovl_En_Heishi3) +DEFINE_DMA_ENTRY(ovl_En_Heishi4) +DEFINE_DMA_ENTRY(ovl_En_Hintnuts) +DEFINE_DMA_ENTRY(ovl_En_Holl) +DEFINE_DMA_ENTRY(ovl_En_Honotrap) +DEFINE_DMA_ENTRY(ovl_En_Horse) +DEFINE_DMA_ENTRY(ovl_En_Horse_Game_Check) +DEFINE_DMA_ENTRY(ovl_En_Horse_Ganon) +DEFINE_DMA_ENTRY(ovl_En_Horse_Link_Child) +DEFINE_DMA_ENTRY(ovl_En_Horse_Normal) +DEFINE_DMA_ENTRY(ovl_En_Horse_Zelda) +DEFINE_DMA_ENTRY(ovl_En_Hs) +DEFINE_DMA_ENTRY(ovl_En_Hs2) +DEFINE_DMA_ENTRY(ovl_En_Hy) +DEFINE_DMA_ENTRY(ovl_En_Ice_Hono) +DEFINE_DMA_ENTRY(ovl_En_Ik) +DEFINE_DMA_ENTRY(ovl_En_In) +DEFINE_DMA_ENTRY(ovl_En_Insect) +DEFINE_DMA_ENTRY(ovl_En_Ishi) +DEFINE_DMA_ENTRY(ovl_En_It) +DEFINE_DMA_ENTRY(ovl_En_Jj) +DEFINE_DMA_ENTRY(ovl_En_Js) +DEFINE_DMA_ENTRY(ovl_En_Jsjutan) +DEFINE_DMA_ENTRY(ovl_En_Kakasi) +DEFINE_DMA_ENTRY(ovl_En_Kakasi2) +DEFINE_DMA_ENTRY(ovl_En_Kakasi3) +DEFINE_DMA_ENTRY(ovl_En_Kanban) +DEFINE_DMA_ENTRY(ovl_En_Karebaba) +DEFINE_DMA_ENTRY(ovl_En_Ko) +DEFINE_DMA_ENTRY(ovl_En_Kusa) +DEFINE_DMA_ENTRY(ovl_En_Kz) +DEFINE_DMA_ENTRY(ovl_En_Light) +DEFINE_DMA_ENTRY(ovl_En_Lightbox) +DEFINE_DMA_ENTRY(ovl_En_M_Fire1) +DEFINE_DMA_ENTRY(ovl_En_M_Thunder) +DEFINE_DMA_ENTRY(ovl_En_Ma1) +DEFINE_DMA_ENTRY(ovl_En_Ma2) +DEFINE_DMA_ENTRY(ovl_En_Ma3) +DEFINE_DMA_ENTRY(ovl_En_Mag) +DEFINE_DMA_ENTRY(ovl_En_Mb) +DEFINE_DMA_ENTRY(ovl_En_Md) +DEFINE_DMA_ENTRY(ovl_En_Mk) +DEFINE_DMA_ENTRY(ovl_En_Mm) +DEFINE_DMA_ENTRY(ovl_En_Mm2) +DEFINE_DMA_ENTRY(ovl_En_Ms) +DEFINE_DMA_ENTRY(ovl_En_Mu) +DEFINE_DMA_ENTRY(ovl_En_Nb) +DEFINE_DMA_ENTRY(ovl_En_Niw) +DEFINE_DMA_ENTRY(ovl_En_Niw_Girl) +DEFINE_DMA_ENTRY(ovl_En_Niw_Lady) +DEFINE_DMA_ENTRY(ovl_En_Nutsball) +DEFINE_DMA_ENTRY(ovl_En_Nwc) +DEFINE_DMA_ENTRY(ovl_En_Ny) +DEFINE_DMA_ENTRY(ovl_En_OE2) +DEFINE_DMA_ENTRY(ovl_En_Okarina_Effect) +DEFINE_DMA_ENTRY(ovl_En_Okarina_Tag) +DEFINE_DMA_ENTRY(ovl_En_Okuta) +DEFINE_DMA_ENTRY(ovl_En_Ossan) +DEFINE_DMA_ENTRY(ovl_En_Owl) +DEFINE_DMA_ENTRY(ovl_En_Part) +DEFINE_DMA_ENTRY(ovl_En_Peehat) +DEFINE_DMA_ENTRY(ovl_En_Po_Desert) +DEFINE_DMA_ENTRY(ovl_En_Po_Field) +DEFINE_DMA_ENTRY(ovl_En_Po_Relay) +DEFINE_DMA_ENTRY(ovl_En_Po_Sisters) +DEFINE_DMA_ENTRY(ovl_En_Poh) +DEFINE_DMA_ENTRY(ovl_En_Pu_box) +DEFINE_DMA_ENTRY(ovl_En_Rd) +DEFINE_DMA_ENTRY(ovl_En_Reeba) +DEFINE_DMA_ENTRY(ovl_En_River_Sound) +DEFINE_DMA_ENTRY(ovl_En_Rl) +DEFINE_DMA_ENTRY(ovl_En_Rr) +DEFINE_DMA_ENTRY(ovl_En_Ru1) +DEFINE_DMA_ENTRY(ovl_En_Ru2) +DEFINE_DMA_ENTRY(ovl_En_Sa) +DEFINE_DMA_ENTRY(ovl_En_Sb) +DEFINE_DMA_ENTRY(ovl_En_Scene_Change) +DEFINE_DMA_ENTRY(ovl_En_Sda) +DEFINE_DMA_ENTRY(ovl_En_Shopnuts) +DEFINE_DMA_ENTRY(ovl_En_Si) +DEFINE_DMA_ENTRY(ovl_En_Siofuki) +DEFINE_DMA_ENTRY(ovl_En_Skb) +DEFINE_DMA_ENTRY(ovl_En_Skj) +DEFINE_DMA_ENTRY(ovl_En_Skjneedle) +DEFINE_DMA_ENTRY(ovl_En_Ssh) +DEFINE_DMA_ENTRY(ovl_En_St) +DEFINE_DMA_ENTRY(ovl_En_Sth) +DEFINE_DMA_ENTRY(ovl_En_Stream) +DEFINE_DMA_ENTRY(ovl_En_Sw) +DEFINE_DMA_ENTRY(ovl_En_Syateki_Itm) +DEFINE_DMA_ENTRY(ovl_En_Syateki_Man) +DEFINE_DMA_ENTRY(ovl_En_Syateki_Niw) +DEFINE_DMA_ENTRY(ovl_En_Ta) +DEFINE_DMA_ENTRY(ovl_En_Takara_Man) +DEFINE_DMA_ENTRY(ovl_En_Tana) +DEFINE_DMA_ENTRY(ovl_En_Tg) +DEFINE_DMA_ENTRY(ovl_En_Tite) +DEFINE_DMA_ENTRY(ovl_En_Tk) +DEFINE_DMA_ENTRY(ovl_En_Torch) +DEFINE_DMA_ENTRY(ovl_En_Torch2) +DEFINE_DMA_ENTRY(ovl_En_Toryo) +DEFINE_DMA_ENTRY(ovl_En_Tp) +DEFINE_DMA_ENTRY(ovl_En_Tr) +DEFINE_DMA_ENTRY(ovl_En_Trap) +DEFINE_DMA_ENTRY(ovl_En_Tubo_Trap) +DEFINE_DMA_ENTRY(ovl_En_Vali) +DEFINE_DMA_ENTRY(ovl_En_Vase) +DEFINE_DMA_ENTRY(ovl_En_Vb_Ball) +DEFINE_DMA_ENTRY(ovl_En_Viewer) +DEFINE_DMA_ENTRY(ovl_En_Vm) +DEFINE_DMA_ENTRY(ovl_En_Wall_Tubo) +DEFINE_DMA_ENTRY(ovl_En_Wallmas) +DEFINE_DMA_ENTRY(ovl_En_Weather_Tag) +DEFINE_DMA_ENTRY(ovl_En_Weiyer) +DEFINE_DMA_ENTRY(ovl_En_Wf) +DEFINE_DMA_ENTRY(ovl_En_Wonder_Item) +DEFINE_DMA_ENTRY(ovl_En_Wonder_Talk) +DEFINE_DMA_ENTRY(ovl_En_Wonder_Talk2) +DEFINE_DMA_ENTRY(ovl_En_Wood02) +DEFINE_DMA_ENTRY(ovl_En_Xc) +DEFINE_DMA_ENTRY(ovl_En_Yabusame_Mark) +DEFINE_DMA_ENTRY(ovl_En_Yukabyun) +DEFINE_DMA_ENTRY(ovl_En_Zf) +DEFINE_DMA_ENTRY(ovl_En_Zl1) +DEFINE_DMA_ENTRY(ovl_En_Zl2) +DEFINE_DMA_ENTRY(ovl_En_Zl3) +DEFINE_DMA_ENTRY(ovl_En_Zl4) +DEFINE_DMA_ENTRY(ovl_En_Zo) +DEFINE_DMA_ENTRY(ovl_En_fHG) +DEFINE_DMA_ENTRY(ovl_End_Title) +DEFINE_DMA_ENTRY(ovl_Fishing) +DEFINE_DMA_ENTRY(ovl_Item_B_Heart) +DEFINE_DMA_ENTRY(ovl_Item_Etcetera) +DEFINE_DMA_ENTRY(ovl_Item_Inbox) +DEFINE_DMA_ENTRY(ovl_Item_Ocarina) +DEFINE_DMA_ENTRY(ovl_Item_Shield) +DEFINE_DMA_ENTRY(ovl_Magic_Dark) +DEFINE_DMA_ENTRY(ovl_Magic_Fire) +DEFINE_DMA_ENTRY(ovl_Magic_Wind) +DEFINE_DMA_ENTRY(ovl_Mir_Ray) +DEFINE_DMA_ENTRY(ovl_Obj_Bean) +DEFINE_DMA_ENTRY(ovl_Obj_Blockstop) +DEFINE_DMA_ENTRY(ovl_Obj_Bombiwa) +DEFINE_DMA_ENTRY(ovl_Obj_Comb) +DEFINE_DMA_ENTRY(ovl_Obj_Dekujr) +DEFINE_DMA_ENTRY(ovl_Obj_Elevator) +DEFINE_DMA_ENTRY(ovl_Obj_Hamishi) +DEFINE_DMA_ENTRY(ovl_Obj_Hana) +DEFINE_DMA_ENTRY(ovl_Obj_Hsblock) +DEFINE_DMA_ENTRY(ovl_Obj_Ice_Poly) +DEFINE_DMA_ENTRY(ovl_Obj_Kibako) +DEFINE_DMA_ENTRY(ovl_Obj_Kibako2) +DEFINE_DMA_ENTRY(ovl_Obj_Lift) +DEFINE_DMA_ENTRY(ovl_Obj_Lightswitch) +DEFINE_DMA_ENTRY(ovl_Obj_Makekinsuta) +DEFINE_DMA_ENTRY(ovl_Obj_Makeoshihiki) +DEFINE_DMA_ENTRY(ovl_Obj_Mure) +DEFINE_DMA_ENTRY(ovl_Obj_Mure2) +DEFINE_DMA_ENTRY(ovl_Obj_Mure3) +DEFINE_DMA_ENTRY(ovl_Obj_Oshihiki) +DEFINE_DMA_ENTRY(ovl_Obj_Roomtimer) +DEFINE_DMA_ENTRY(ovl_Obj_Switch) +DEFINE_DMA_ENTRY(ovl_Obj_Syokudai) +DEFINE_DMA_ENTRY(ovl_Obj_Timeblock) +DEFINE_DMA_ENTRY(ovl_Obj_Tsubo) +DEFINE_DMA_ENTRY(ovl_Obj_Warp2block) +DEFINE_DMA_ENTRY(ovl_Object_Kankyo) +DEFINE_DMA_ENTRY(ovl_Oceff_Spot) +DEFINE_DMA_ENTRY(ovl_Oceff_Storm) +DEFINE_DMA_ENTRY(ovl_Oceff_Wipe) +DEFINE_DMA_ENTRY(ovl_Oceff_Wipe2) +DEFINE_DMA_ENTRY(ovl_Oceff_Wipe3) +DEFINE_DMA_ENTRY(ovl_Oceff_Wipe4) +DEFINE_DMA_ENTRY(ovl_Shot_Sun) +DEFINE_DMA_ENTRY(gameplay_keep) +DEFINE_DMA_ENTRY(gameplay_field_keep) +DEFINE_DMA_ENTRY(gameplay_dangeon_keep) +DEFINE_DMA_ENTRY(gameplay_object_exchange_static) +DEFINE_DMA_ENTRY(object_link_boy) +DEFINE_DMA_ENTRY(object_link_child) +DEFINE_DMA_ENTRY(object_box) +DEFINE_DMA_ENTRY(object_human) +DEFINE_DMA_ENTRY(object_okuta) +DEFINE_DMA_ENTRY(object_poh) +DEFINE_DMA_ENTRY(object_wallmaster) +DEFINE_DMA_ENTRY(object_dy_obj) +DEFINE_DMA_ENTRY(object_firefly) +DEFINE_DMA_ENTRY(object_dodongo) +DEFINE_DMA_ENTRY(object_fire) +DEFINE_DMA_ENTRY(object_niw) +DEFINE_DMA_ENTRY(object_tite) +DEFINE_DMA_ENTRY(object_reeba) +DEFINE_DMA_ENTRY(object_peehat) +DEFINE_DMA_ENTRY(object_kingdodongo) +DEFINE_DMA_ENTRY(object_horse) +DEFINE_DMA_ENTRY(object_zf) +DEFINE_DMA_ENTRY(object_goma) +DEFINE_DMA_ENTRY(object_zl1) +DEFINE_DMA_ENTRY(object_gol) +DEFINE_DMA_ENTRY(object_bubble) +DEFINE_DMA_ENTRY(object_dodojr) +DEFINE_DMA_ENTRY(object_torch2) +DEFINE_DMA_ENTRY(object_bl) +DEFINE_DMA_ENTRY(object_tp) +DEFINE_DMA_ENTRY(object_oA1) +DEFINE_DMA_ENTRY(object_st) +DEFINE_DMA_ENTRY(object_bw) +DEFINE_DMA_ENTRY(object_ei) +DEFINE_DMA_ENTRY(object_horse_normal) +DEFINE_DMA_ENTRY(object_oB1) +DEFINE_DMA_ENTRY(object_o_anime) +DEFINE_DMA_ENTRY(object_spot04_objects) +DEFINE_DMA_ENTRY(object_ddan_objects) +DEFINE_DMA_ENTRY(object_hidan_objects) +DEFINE_DMA_ENTRY(object_horse_ganon) +DEFINE_DMA_ENTRY(object_oA2) +DEFINE_DMA_ENTRY(object_spot00_objects) +DEFINE_DMA_ENTRY(object_mb) +DEFINE_DMA_ENTRY(object_bombf) +DEFINE_DMA_ENTRY(object_sk2) +DEFINE_DMA_ENTRY(object_oE1) +DEFINE_DMA_ENTRY(object_oE_anime) +DEFINE_DMA_ENTRY(object_oE2) +DEFINE_DMA_ENTRY(object_ydan_objects) +DEFINE_DMA_ENTRY(object_gnd) +DEFINE_DMA_ENTRY(object_am) +DEFINE_DMA_ENTRY(object_dekubaba) +DEFINE_DMA_ENTRY(object_oA3) +DEFINE_DMA_ENTRY(object_oA4) +DEFINE_DMA_ENTRY(object_oA5) +DEFINE_DMA_ENTRY(object_oA6) +DEFINE_DMA_ENTRY(object_oA7) +DEFINE_DMA_ENTRY(object_jj) +DEFINE_DMA_ENTRY(object_oA8) +DEFINE_DMA_ENTRY(object_oA9) +DEFINE_DMA_ENTRY(object_oB2) +DEFINE_DMA_ENTRY(object_oB3) +DEFINE_DMA_ENTRY(object_oB4) +DEFINE_DMA_ENTRY(object_horse_zelda) +DEFINE_DMA_ENTRY(object_opening_demo1) +DEFINE_DMA_ENTRY(object_warp1) +DEFINE_DMA_ENTRY(object_b_heart) +DEFINE_DMA_ENTRY(object_dekunuts) +DEFINE_DMA_ENTRY(object_oE3) +DEFINE_DMA_ENTRY(object_oE4) +DEFINE_DMA_ENTRY(object_menkuri_objects) +DEFINE_DMA_ENTRY(object_oE5) +DEFINE_DMA_ENTRY(object_oE6) +DEFINE_DMA_ENTRY(object_oE7) +DEFINE_DMA_ENTRY(object_oE8) +DEFINE_DMA_ENTRY(object_oE9) +DEFINE_DMA_ENTRY(object_oE10) +DEFINE_DMA_ENTRY(object_oE11) +DEFINE_DMA_ENTRY(object_oE12) +DEFINE_DMA_ENTRY(object_vali) +DEFINE_DMA_ENTRY(object_oA10) +DEFINE_DMA_ENTRY(object_oA11) +DEFINE_DMA_ENTRY(object_mizu_objects) +DEFINE_DMA_ENTRY(object_fhg) +DEFINE_DMA_ENTRY(object_ossan) +DEFINE_DMA_ENTRY(object_mori_hineri1) +DEFINE_DMA_ENTRY(object_Bb) +DEFINE_DMA_ENTRY(object_toki_objects) +DEFINE_DMA_ENTRY(object_yukabyun) +DEFINE_DMA_ENTRY(object_zl2) +DEFINE_DMA_ENTRY(object_mjin) +DEFINE_DMA_ENTRY(object_mjin_flash) +DEFINE_DMA_ENTRY(object_mjin_dark) +DEFINE_DMA_ENTRY(object_mjin_flame) +DEFINE_DMA_ENTRY(object_mjin_ice) +DEFINE_DMA_ENTRY(object_mjin_soul) +DEFINE_DMA_ENTRY(object_mjin_wind) +DEFINE_DMA_ENTRY(object_mjin_oka) +DEFINE_DMA_ENTRY(object_haka_objects) +DEFINE_DMA_ENTRY(object_spot06_objects) +DEFINE_DMA_ENTRY(object_ice_objects) +DEFINE_DMA_ENTRY(object_relay_objects) +DEFINE_DMA_ENTRY(object_mori_hineri1a) +DEFINE_DMA_ENTRY(object_mori_hineri2) +DEFINE_DMA_ENTRY(object_mori_hineri2a) +DEFINE_DMA_ENTRY(object_mori_objects) +DEFINE_DMA_ENTRY(object_mori_tex) +DEFINE_DMA_ENTRY(object_spot08_obj) +DEFINE_DMA_ENTRY(object_warp2) +DEFINE_DMA_ENTRY(object_hata) +DEFINE_DMA_ENTRY(object_bird) +DEFINE_DMA_ENTRY(object_wood02) +DEFINE_DMA_ENTRY(object_lightbox) +DEFINE_DMA_ENTRY(object_pu_box) +DEFINE_DMA_ENTRY(object_trap) +DEFINE_DMA_ENTRY(object_vase) +DEFINE_DMA_ENTRY(object_im) +DEFINE_DMA_ENTRY(object_ta) +DEFINE_DMA_ENTRY(object_tk) +DEFINE_DMA_ENTRY(object_xc) +DEFINE_DMA_ENTRY(object_vm) +DEFINE_DMA_ENTRY(object_bv) +DEFINE_DMA_ENTRY(object_hakach_objects) +DEFINE_DMA_ENTRY(object_efc_crystal_light) +DEFINE_DMA_ENTRY(object_efc_fire_ball) +DEFINE_DMA_ENTRY(object_efc_flash) +DEFINE_DMA_ENTRY(object_efc_lgt_shower) +DEFINE_DMA_ENTRY(object_efc_star_field) +DEFINE_DMA_ENTRY(object_god_lgt) +DEFINE_DMA_ENTRY(object_light_ring) +DEFINE_DMA_ENTRY(object_triforce_spot) +DEFINE_DMA_ENTRY(object_medal) +DEFINE_DMA_ENTRY(object_bdan_objects) +DEFINE_DMA_ENTRY(object_sd) +DEFINE_DMA_ENTRY(object_rd) +DEFINE_DMA_ENTRY(object_po_sisters) +DEFINE_DMA_ENTRY(object_heavy_object) +DEFINE_DMA_ENTRY(object_gndd) +DEFINE_DMA_ENTRY(object_fd) +DEFINE_DMA_ENTRY(object_du) +DEFINE_DMA_ENTRY(object_fw) +DEFINE_DMA_ENTRY(object_horse_link_child) +DEFINE_DMA_ENTRY(object_spot02_objects) +DEFINE_DMA_ENTRY(object_haka) +DEFINE_DMA_ENTRY(object_ru1) +DEFINE_DMA_ENTRY(object_syokudai) +DEFINE_DMA_ENTRY(object_fd2) +DEFINE_DMA_ENTRY(object_dh) +DEFINE_DMA_ENTRY(object_rl) +DEFINE_DMA_ENTRY(object_efc_tw) +DEFINE_DMA_ENTRY(object_demo_tre_lgt) +DEFINE_DMA_ENTRY(object_gi_key) +DEFINE_DMA_ENTRY(object_mir_ray) +DEFINE_DMA_ENTRY(object_brob) +DEFINE_DMA_ENTRY(object_gi_jewel) +DEFINE_DMA_ENTRY(object_spot09_obj) +DEFINE_DMA_ENTRY(object_spot18_obj) +DEFINE_DMA_ENTRY(object_bdoor) +DEFINE_DMA_ENTRY(object_spot17_obj) +DEFINE_DMA_ENTRY(object_shop_dungen) +DEFINE_DMA_ENTRY(object_nb) +DEFINE_DMA_ENTRY(object_mo) +DEFINE_DMA_ENTRY(object_sb) +DEFINE_DMA_ENTRY(object_gi_melody) +DEFINE_DMA_ENTRY(object_gi_heart) +DEFINE_DMA_ENTRY(object_gi_compass) +DEFINE_DMA_ENTRY(object_gi_bosskey) +DEFINE_DMA_ENTRY(object_gi_medal) +DEFINE_DMA_ENTRY(object_gi_nuts) +DEFINE_DMA_ENTRY(object_sa) +DEFINE_DMA_ENTRY(object_gi_hearts) +DEFINE_DMA_ENTRY(object_gi_arrowcase) +DEFINE_DMA_ENTRY(object_gi_bombpouch) +DEFINE_DMA_ENTRY(object_in) +DEFINE_DMA_ENTRY(object_tr) +DEFINE_DMA_ENTRY(object_spot16_obj) +DEFINE_DMA_ENTRY(object_oE1s) +DEFINE_DMA_ENTRY(object_oE4s) +DEFINE_DMA_ENTRY(object_os_anime) +DEFINE_DMA_ENTRY(object_gi_bottle) +DEFINE_DMA_ENTRY(object_gi_stick) +DEFINE_DMA_ENTRY(object_gi_map) +DEFINE_DMA_ENTRY(object_oF1d_map) +DEFINE_DMA_ENTRY(object_ru2) +DEFINE_DMA_ENTRY(object_gi_shield_1) +DEFINE_DMA_ENTRY(object_dekujr) +DEFINE_DMA_ENTRY(object_gi_magicpot) +DEFINE_DMA_ENTRY(object_gi_bomb_1) +DEFINE_DMA_ENTRY(object_oF1s) +DEFINE_DMA_ENTRY(object_ma2) +DEFINE_DMA_ENTRY(object_gi_purse) +DEFINE_DMA_ENTRY(object_hni) +DEFINE_DMA_ENTRY(object_tw) +DEFINE_DMA_ENTRY(object_rr) +DEFINE_DMA_ENTRY(object_bxa) +DEFINE_DMA_ENTRY(object_anubice) +DEFINE_DMA_ENTRY(object_gi_gerudo) +DEFINE_DMA_ENTRY(object_gi_arrow) +DEFINE_DMA_ENTRY(object_gi_bomb_2) +DEFINE_DMA_ENTRY(object_gi_egg) +DEFINE_DMA_ENTRY(object_gi_scale) +DEFINE_DMA_ENTRY(object_gi_shield_2) +DEFINE_DMA_ENTRY(object_gi_hookshot) +DEFINE_DMA_ENTRY(object_gi_ocarina) +DEFINE_DMA_ENTRY(object_gi_milk) +DEFINE_DMA_ENTRY(object_ma1) +DEFINE_DMA_ENTRY(object_ganon) +DEFINE_DMA_ENTRY(object_sst) +DEFINE_DMA_ENTRY(object_ny) +DEFINE_DMA_ENTRY(object_fr) +DEFINE_DMA_ENTRY(object_gi_pachinko) +DEFINE_DMA_ENTRY(object_gi_boomerang) +DEFINE_DMA_ENTRY(object_gi_bow) +DEFINE_DMA_ENTRY(object_gi_glasses) +DEFINE_DMA_ENTRY(object_gi_liquid) +DEFINE_DMA_ENTRY(object_ani) +DEFINE_DMA_ENTRY(object_demo_6k) +DEFINE_DMA_ENTRY(object_gi_shield_3) +DEFINE_DMA_ENTRY(object_gi_letter) +DEFINE_DMA_ENTRY(object_spot15_obj) +DEFINE_DMA_ENTRY(object_jya_obj) +DEFINE_DMA_ENTRY(object_gi_clothes) +DEFINE_DMA_ENTRY(object_gi_bean) +DEFINE_DMA_ENTRY(object_gi_fish) +DEFINE_DMA_ENTRY(object_gi_saw) +DEFINE_DMA_ENTRY(object_gi_hammer) +DEFINE_DMA_ENTRY(object_gi_grass) +DEFINE_DMA_ENTRY(object_gi_longsword) +DEFINE_DMA_ENTRY(object_spot01_objects) +DEFINE_DMA_ENTRY(object_md) +DEFINE_DMA_ENTRY(object_km1) +DEFINE_DMA_ENTRY(object_kw1) +DEFINE_DMA_ENTRY(object_zo) +DEFINE_DMA_ENTRY(object_kz) +DEFINE_DMA_ENTRY(object_umajump) +DEFINE_DMA_ENTRY(object_masterkokiri) +DEFINE_DMA_ENTRY(object_masterkokirihead) +DEFINE_DMA_ENTRY(object_mastergolon) +DEFINE_DMA_ENTRY(object_masterzoora) +DEFINE_DMA_ENTRY(object_aob) +DEFINE_DMA_ENTRY(object_ik) +DEFINE_DMA_ENTRY(object_ahg) +DEFINE_DMA_ENTRY(object_cne) +DEFINE_DMA_ENTRY(object_gi_niwatori) +DEFINE_DMA_ENTRY(object_skj) +DEFINE_DMA_ENTRY(object_gi_bottle_letter) +DEFINE_DMA_ENTRY(object_bji) +DEFINE_DMA_ENTRY(object_bba) +DEFINE_DMA_ENTRY(object_gi_ocarina_0) +DEFINE_DMA_ENTRY(object_ds) +DEFINE_DMA_ENTRY(object_ane) +DEFINE_DMA_ENTRY(object_boj) +DEFINE_DMA_ENTRY(object_spot03_object) +DEFINE_DMA_ENTRY(object_spot07_object) +DEFINE_DMA_ENTRY(object_fz) +DEFINE_DMA_ENTRY(object_bob) +DEFINE_DMA_ENTRY(object_ge1) +DEFINE_DMA_ENTRY(object_yabusame_point) +DEFINE_DMA_ENTRY(object_gi_boots_2) +DEFINE_DMA_ENTRY(object_gi_seed) +DEFINE_DMA_ENTRY(object_gnd_magic) +DEFINE_DMA_ENTRY(object_d_elevator) +DEFINE_DMA_ENTRY(object_d_hsblock) +DEFINE_DMA_ENTRY(object_d_lift) +DEFINE_DMA_ENTRY(object_mamenoki) +DEFINE_DMA_ENTRY(object_goroiwa) +DEFINE_DMA_ENTRY(object_toryo) +DEFINE_DMA_ENTRY(object_daiku) +DEFINE_DMA_ENTRY(object_nwc) +DEFINE_DMA_ENTRY(object_blkobj) +DEFINE_DMA_ENTRY(object_gm) +DEFINE_DMA_ENTRY(object_ms) +DEFINE_DMA_ENTRY(object_hs) +DEFINE_DMA_ENTRY(object_ingate) +DEFINE_DMA_ENTRY(object_lightswitch) +DEFINE_DMA_ENTRY(object_kusa) +DEFINE_DMA_ENTRY(object_tsubo) +DEFINE_DMA_ENTRY(object_gi_gloves) +DEFINE_DMA_ENTRY(object_gi_coin) +DEFINE_DMA_ENTRY(object_kanban) +DEFINE_DMA_ENTRY(object_gjyo_objects) +DEFINE_DMA_ENTRY(object_owl) +DEFINE_DMA_ENTRY(object_mk) +DEFINE_DMA_ENTRY(object_fu) +DEFINE_DMA_ENTRY(object_gi_ki_tan_mask) +DEFINE_DMA_ENTRY(object_gi_redead_mask) +DEFINE_DMA_ENTRY(object_gi_skj_mask) +DEFINE_DMA_ENTRY(object_gi_rabit_mask) +DEFINE_DMA_ENTRY(object_gi_truth_mask) +DEFINE_DMA_ENTRY(object_ganon_objects) +DEFINE_DMA_ENTRY(object_siofuki) +DEFINE_DMA_ENTRY(object_stream) +DEFINE_DMA_ENTRY(object_mm) +DEFINE_DMA_ENTRY(object_fa) +DEFINE_DMA_ENTRY(object_os) +DEFINE_DMA_ENTRY(object_gi_eye_lotion) +DEFINE_DMA_ENTRY(object_gi_powder) +DEFINE_DMA_ENTRY(object_gi_mushroom) +DEFINE_DMA_ENTRY(object_gi_ticketstone) +DEFINE_DMA_ENTRY(object_gi_brokensword) +DEFINE_DMA_ENTRY(object_js) +DEFINE_DMA_ENTRY(object_cs) +DEFINE_DMA_ENTRY(object_gi_prescription) +DEFINE_DMA_ENTRY(object_gi_bracelet) +DEFINE_DMA_ENTRY(object_gi_soldout) +DEFINE_DMA_ENTRY(object_gi_frog) +DEFINE_DMA_ENTRY(object_mag) +DEFINE_DMA_ENTRY(object_door_gerudo) +DEFINE_DMA_ENTRY(object_gt) +DEFINE_DMA_ENTRY(object_efc_erupc) +DEFINE_DMA_ENTRY(object_zl2_anime1) +DEFINE_DMA_ENTRY(object_zl2_anime2) +DEFINE_DMA_ENTRY(object_gi_golonmask) +DEFINE_DMA_ENTRY(object_gi_zoramask) +DEFINE_DMA_ENTRY(object_gi_gerudomask) +DEFINE_DMA_ENTRY(object_ganon2) +DEFINE_DMA_ENTRY(object_ka) +DEFINE_DMA_ENTRY(object_ts) +DEFINE_DMA_ENTRY(object_zg) +DEFINE_DMA_ENTRY(object_gi_hoverboots) +DEFINE_DMA_ENTRY(object_gi_m_arrow) +DEFINE_DMA_ENTRY(object_ds2) +DEFINE_DMA_ENTRY(object_ec) +DEFINE_DMA_ENTRY(object_fish) +DEFINE_DMA_ENTRY(object_gi_sutaru) +DEFINE_DMA_ENTRY(object_gi_goddess) +DEFINE_DMA_ENTRY(object_ssh) +DEFINE_DMA_ENTRY(object_bigokuta) +DEFINE_DMA_ENTRY(object_bg) +DEFINE_DMA_ENTRY(object_spot05_objects) +DEFINE_DMA_ENTRY(object_spot12_obj) +DEFINE_DMA_ENTRY(object_bombiwa) +DEFINE_DMA_ENTRY(object_hintnuts) +DEFINE_DMA_ENTRY(object_rs) +DEFINE_DMA_ENTRY(object_spot00_break) +DEFINE_DMA_ENTRY(object_gla) +DEFINE_DMA_ENTRY(object_shopnuts) +DEFINE_DMA_ENTRY(object_geldb) +DEFINE_DMA_ENTRY(object_gr) +DEFINE_DMA_ENTRY(object_dog) +DEFINE_DMA_ENTRY(object_jya_iron) +DEFINE_DMA_ENTRY(object_jya_door) +DEFINE_DMA_ENTRY(object_spot01_objects2) +DEFINE_DMA_ENTRY(object_spot11_obj) +DEFINE_DMA_ENTRY(object_kibako2) +DEFINE_DMA_ENTRY(object_dns) +DEFINE_DMA_ENTRY(object_dnk) +DEFINE_DMA_ENTRY(object_gi_fire) +DEFINE_DMA_ENTRY(object_gi_insect) +DEFINE_DMA_ENTRY(object_gi_butterfly) +DEFINE_DMA_ENTRY(object_gi_ghost) +DEFINE_DMA_ENTRY(object_gi_soul) +DEFINE_DMA_ENTRY(object_bowl) +DEFINE_DMA_ENTRY(object_po_field) +DEFINE_DMA_ENTRY(object_demo_kekkai) +DEFINE_DMA_ENTRY(object_efc_doughnut) +DEFINE_DMA_ENTRY(object_gi_dekupouch) +DEFINE_DMA_ENTRY(object_ganon_anime1) +DEFINE_DMA_ENTRY(object_ganon_anime2) +DEFINE_DMA_ENTRY(object_ganon_anime3) +DEFINE_DMA_ENTRY(object_gi_rupy) +DEFINE_DMA_ENTRY(object_spot01_matoya) +DEFINE_DMA_ENTRY(object_spot01_matoyab) +DEFINE_DMA_ENTRY(object_po_composer) +DEFINE_DMA_ENTRY(object_mu) +DEFINE_DMA_ENTRY(object_wf) +DEFINE_DMA_ENTRY(object_skb) +DEFINE_DMA_ENTRY(object_gj) +DEFINE_DMA_ENTRY(object_geff) +DEFINE_DMA_ENTRY(object_haka_door) +DEFINE_DMA_ENTRY(object_gs) +DEFINE_DMA_ENTRY(object_ps) +DEFINE_DMA_ENTRY(object_bwall) +DEFINE_DMA_ENTRY(object_crow) +DEFINE_DMA_ENTRY(object_cow) +DEFINE_DMA_ENTRY(object_cob) +DEFINE_DMA_ENTRY(object_gi_sword_1) +DEFINE_DMA_ENTRY(object_door_killer) +DEFINE_DMA_ENTRY(object_ouke_haka) +DEFINE_DMA_ENTRY(object_timeblock) +DEFINE_DMA_ENTRY(object_zl4) +DEFINE_DMA_ENTRY(g_pn_01) +DEFINE_DMA_ENTRY(g_pn_02) +DEFINE_DMA_ENTRY(g_pn_03) +DEFINE_DMA_ENTRY(g_pn_04) +DEFINE_DMA_ENTRY(g_pn_05) +DEFINE_DMA_ENTRY(g_pn_06) +DEFINE_DMA_ENTRY(g_pn_07) +DEFINE_DMA_ENTRY(g_pn_08) +DEFINE_DMA_ENTRY(g_pn_09) +DEFINE_DMA_ENTRY(g_pn_10) +DEFINE_DMA_ENTRY(g_pn_11) +DEFINE_DMA_ENTRY(g_pn_12) +DEFINE_DMA_ENTRY(g_pn_13) +DEFINE_DMA_ENTRY(g_pn_14) +DEFINE_DMA_ENTRY(g_pn_15) +DEFINE_DMA_ENTRY(g_pn_16) +DEFINE_DMA_ENTRY(g_pn_17) +DEFINE_DMA_ENTRY(g_pn_18) +DEFINE_DMA_ENTRY(g_pn_19) +DEFINE_DMA_ENTRY(g_pn_20) +DEFINE_DMA_ENTRY(g_pn_21) +DEFINE_DMA_ENTRY(g_pn_22) +DEFINE_DMA_ENTRY(g_pn_23) +DEFINE_DMA_ENTRY(g_pn_24) +DEFINE_DMA_ENTRY(g_pn_25) +DEFINE_DMA_ENTRY(g_pn_26) +DEFINE_DMA_ENTRY(g_pn_27) +DEFINE_DMA_ENTRY(g_pn_28) +DEFINE_DMA_ENTRY(g_pn_29) +DEFINE_DMA_ENTRY(g_pn_30) +DEFINE_DMA_ENTRY(g_pn_31) +DEFINE_DMA_ENTRY(g_pn_32) +DEFINE_DMA_ENTRY(g_pn_33) +DEFINE_DMA_ENTRY(g_pn_34) +DEFINE_DMA_ENTRY(g_pn_35) +DEFINE_DMA_ENTRY(g_pn_36) +DEFINE_DMA_ENTRY(g_pn_37) +DEFINE_DMA_ENTRY(g_pn_38) +DEFINE_DMA_ENTRY(g_pn_39) +DEFINE_DMA_ENTRY(g_pn_40) +DEFINE_DMA_ENTRY(g_pn_41) +DEFINE_DMA_ENTRY(g_pn_42) +DEFINE_DMA_ENTRY(g_pn_43) +DEFINE_DMA_ENTRY(g_pn_44) +DEFINE_DMA_ENTRY(g_pn_45) +DEFINE_DMA_ENTRY(g_pn_46) +DEFINE_DMA_ENTRY(g_pn_47) +DEFINE_DMA_ENTRY(g_pn_48) +DEFINE_DMA_ENTRY(g_pn_49) +DEFINE_DMA_ENTRY(g_pn_50) +DEFINE_DMA_ENTRY(g_pn_51) +DEFINE_DMA_ENTRY(g_pn_52) +DEFINE_DMA_ENTRY(g_pn_53) +DEFINE_DMA_ENTRY(g_pn_54) +DEFINE_DMA_ENTRY(g_pn_55) +DEFINE_DMA_ENTRY(g_pn_56) +DEFINE_DMA_ENTRY(g_pn_57) +DEFINE_DMA_ENTRY(z_select_static) +DEFINE_DMA_ENTRY(nintendo_rogo_static) +DEFINE_DMA_ENTRY(title_static) +DEFINE_DMA_ENTRY(parameter_static) +DEFINE_DMA_ENTRY(vr_fine0_static) +DEFINE_DMA_ENTRY(vr_fine0_pal_static) +DEFINE_DMA_ENTRY(vr_fine1_static) +DEFINE_DMA_ENTRY(vr_fine1_pal_static) +DEFINE_DMA_ENTRY(vr_fine2_static) +DEFINE_DMA_ENTRY(vr_fine2_pal_static) +DEFINE_DMA_ENTRY(vr_fine3_static) +DEFINE_DMA_ENTRY(vr_fine3_pal_static) +DEFINE_DMA_ENTRY(vr_cloud0_static) +DEFINE_DMA_ENTRY(vr_cloud0_pal_static) +DEFINE_DMA_ENTRY(vr_cloud1_static) +DEFINE_DMA_ENTRY(vr_cloud1_pal_static) +DEFINE_DMA_ENTRY(vr_cloud2_static) +DEFINE_DMA_ENTRY(vr_cloud2_pal_static) +DEFINE_DMA_ENTRY(vr_cloud3_static) +DEFINE_DMA_ENTRY(vr_cloud3_pal_static) +DEFINE_DMA_ENTRY(vr_holy0_static) +DEFINE_DMA_ENTRY(vr_holy0_pal_static) +DEFINE_DMA_ENTRY(vr_holy1_static) +DEFINE_DMA_ENTRY(vr_holy1_pal_static) +DEFINE_DMA_ENTRY(vr_MDVR_static) +DEFINE_DMA_ENTRY(vr_MDVR_pal_static) +DEFINE_DMA_ENTRY(vr_MNVR_static) +DEFINE_DMA_ENTRY(vr_MNVR_pal_static) +DEFINE_DMA_ENTRY(vr_RUVR_static) +DEFINE_DMA_ENTRY(vr_RUVR_pal_static) +DEFINE_DMA_ENTRY(vr_LHVR_static) +DEFINE_DMA_ENTRY(vr_LHVR_pal_static) +DEFINE_DMA_ENTRY(vr_KHVR_static) +DEFINE_DMA_ENTRY(vr_KHVR_pal_static) +DEFINE_DMA_ENTRY(vr_K3VR_static) +DEFINE_DMA_ENTRY(vr_K3VR_pal_static) +DEFINE_DMA_ENTRY(vr_K4VR_static) +DEFINE_DMA_ENTRY(vr_K4VR_pal_static) +DEFINE_DMA_ENTRY(vr_K5VR_static) +DEFINE_DMA_ENTRY(vr_K5VR_pal_static) +DEFINE_DMA_ENTRY(vr_SP1a_static) +DEFINE_DMA_ENTRY(vr_SP1a_pal_static) +DEFINE_DMA_ENTRY(vr_MLVR_static) +DEFINE_DMA_ENTRY(vr_MLVR_pal_static) +DEFINE_DMA_ENTRY(vr_KKRVR_static) +DEFINE_DMA_ENTRY(vr_KKRVR_pal_static) +DEFINE_DMA_ENTRY(vr_KR3VR_static) +DEFINE_DMA_ENTRY(vr_KR3VR_pal_static) +DEFINE_DMA_ENTRY(vr_IPVR_static) +DEFINE_DMA_ENTRY(vr_IPVR_pal_static) +DEFINE_DMA_ENTRY(vr_KSVR_static) +DEFINE_DMA_ENTRY(vr_KSVR_pal_static) +DEFINE_DMA_ENTRY(vr_GLVR_static) +DEFINE_DMA_ENTRY(vr_GLVR_pal_static) +DEFINE_DMA_ENTRY(vr_ZRVR_static) +DEFINE_DMA_ENTRY(vr_ZRVR_pal_static) +DEFINE_DMA_ENTRY(vr_DGVR_static) +DEFINE_DMA_ENTRY(vr_DGVR_pal_static) +DEFINE_DMA_ENTRY(vr_ALVR_static) +DEFINE_DMA_ENTRY(vr_ALVR_pal_static) +DEFINE_DMA_ENTRY(vr_NSVR_static) +DEFINE_DMA_ENTRY(vr_NSVR_pal_static) +DEFINE_DMA_ENTRY(vr_LBVR_static) +DEFINE_DMA_ENTRY(vr_LBVR_pal_static) +DEFINE_DMA_ENTRY(vr_TTVR_static) +DEFINE_DMA_ENTRY(vr_TTVR_pal_static) +DEFINE_DMA_ENTRY(vr_FCVR_static) +DEFINE_DMA_ENTRY(vr_FCVR_pal_static) +DEFINE_DMA_ENTRY(elf_message_field) +DEFINE_DMA_ENTRY(elf_message_ydan) +DEFINE_DMA_ENTRY(syotes_scene) +DEFINE_DMA_ENTRY(syotes_room_0) +DEFINE_DMA_ENTRY(syotes2_scene) +DEFINE_DMA_ENTRY(syotes2_room_0) +DEFINE_DMA_ENTRY(depth_test_scene) +DEFINE_DMA_ENTRY(depth_test_room_0) +DEFINE_DMA_ENTRY(spot00_scene) +DEFINE_DMA_ENTRY(spot00_room_0) +DEFINE_DMA_ENTRY(spot01_scene) +DEFINE_DMA_ENTRY(spot01_room_0) +DEFINE_DMA_ENTRY(spot02_scene) +DEFINE_DMA_ENTRY(spot02_room_0) +DEFINE_DMA_ENTRY(spot02_room_1) +DEFINE_DMA_ENTRY(spot03_scene) +DEFINE_DMA_ENTRY(spot03_room_0) +DEFINE_DMA_ENTRY(spot03_room_1) +DEFINE_DMA_ENTRY(spot04_scene) +DEFINE_DMA_ENTRY(spot04_room_0) +DEFINE_DMA_ENTRY(spot04_room_1) +DEFINE_DMA_ENTRY(spot04_room_2) +DEFINE_DMA_ENTRY(spot05_scene) +DEFINE_DMA_ENTRY(spot05_room_0) +DEFINE_DMA_ENTRY(spot06_scene) +DEFINE_DMA_ENTRY(spot06_room_0) +DEFINE_DMA_ENTRY(spot07_scene) +DEFINE_DMA_ENTRY(spot07_room_0) +DEFINE_DMA_ENTRY(spot07_room_1) +DEFINE_DMA_ENTRY(spot08_scene) +DEFINE_DMA_ENTRY(spot08_room_0) +DEFINE_DMA_ENTRY(spot09_scene) +DEFINE_DMA_ENTRY(spot09_room_0) +DEFINE_DMA_ENTRY(spot10_scene) +DEFINE_DMA_ENTRY(spot10_room_0) +DEFINE_DMA_ENTRY(spot10_room_1) +DEFINE_DMA_ENTRY(spot10_room_2) +DEFINE_DMA_ENTRY(spot10_room_3) +DEFINE_DMA_ENTRY(spot10_room_4) +DEFINE_DMA_ENTRY(spot10_room_5) +DEFINE_DMA_ENTRY(spot10_room_6) +DEFINE_DMA_ENTRY(spot10_room_7) +DEFINE_DMA_ENTRY(spot10_room_8) +DEFINE_DMA_ENTRY(spot10_room_9) +DEFINE_DMA_ENTRY(spot11_scene) +DEFINE_DMA_ENTRY(spot11_room_0) +DEFINE_DMA_ENTRY(spot12_scene) +DEFINE_DMA_ENTRY(spot12_room_0) +DEFINE_DMA_ENTRY(spot12_room_1) +DEFINE_DMA_ENTRY(spot13_scene) +DEFINE_DMA_ENTRY(spot13_room_0) +DEFINE_DMA_ENTRY(spot13_room_1) +DEFINE_DMA_ENTRY(spot15_scene) +DEFINE_DMA_ENTRY(spot15_room_0) +DEFINE_DMA_ENTRY(spot16_scene) +DEFINE_DMA_ENTRY(spot16_room_0) +DEFINE_DMA_ENTRY(spot17_scene) +DEFINE_DMA_ENTRY(spot17_room_0) +DEFINE_DMA_ENTRY(spot17_room_1) +DEFINE_DMA_ENTRY(spot18_scene) +DEFINE_DMA_ENTRY(spot18_room_0) +DEFINE_DMA_ENTRY(spot18_room_1) +DEFINE_DMA_ENTRY(spot18_room_2) +DEFINE_DMA_ENTRY(spot18_room_3) +DEFINE_DMA_ENTRY(ydan_scene) +DEFINE_DMA_ENTRY(ydan_room_0) +DEFINE_DMA_ENTRY(ydan_room_1) +DEFINE_DMA_ENTRY(ydan_room_2) +DEFINE_DMA_ENTRY(ydan_room_3) +DEFINE_DMA_ENTRY(ydan_room_4) +DEFINE_DMA_ENTRY(ydan_room_5) +DEFINE_DMA_ENTRY(ydan_room_6) +DEFINE_DMA_ENTRY(ydan_room_7) +DEFINE_DMA_ENTRY(ydan_room_8) +DEFINE_DMA_ENTRY(ydan_room_9) +DEFINE_DMA_ENTRY(ydan_room_10) +DEFINE_DMA_ENTRY(ydan_room_11) +DEFINE_DMA_ENTRY(ddan_scene) +DEFINE_DMA_ENTRY(ddan_room_0) +DEFINE_DMA_ENTRY(ddan_room_1) +DEFINE_DMA_ENTRY(ddan_room_2) +DEFINE_DMA_ENTRY(ddan_room_3) +DEFINE_DMA_ENTRY(ddan_room_4) +DEFINE_DMA_ENTRY(ddan_room_5) +DEFINE_DMA_ENTRY(ddan_room_6) +DEFINE_DMA_ENTRY(ddan_room_7) +DEFINE_DMA_ENTRY(ddan_room_8) +DEFINE_DMA_ENTRY(ddan_room_9) +DEFINE_DMA_ENTRY(ddan_room_10) +DEFINE_DMA_ENTRY(ddan_room_11) +DEFINE_DMA_ENTRY(ddan_room_12) +DEFINE_DMA_ENTRY(ddan_room_13) +DEFINE_DMA_ENTRY(ddan_room_14) +DEFINE_DMA_ENTRY(ddan_room_15) +DEFINE_DMA_ENTRY(ddan_room_16) +DEFINE_DMA_ENTRY(bdan_scene) +DEFINE_DMA_ENTRY(bdan_room_0) +DEFINE_DMA_ENTRY(bdan_room_1) +DEFINE_DMA_ENTRY(bdan_room_2) +DEFINE_DMA_ENTRY(bdan_room_3) +DEFINE_DMA_ENTRY(bdan_room_4) +DEFINE_DMA_ENTRY(bdan_room_5) +DEFINE_DMA_ENTRY(bdan_room_6) +DEFINE_DMA_ENTRY(bdan_room_7) +DEFINE_DMA_ENTRY(bdan_room_8) +DEFINE_DMA_ENTRY(bdan_room_9) +DEFINE_DMA_ENTRY(bdan_room_10) +DEFINE_DMA_ENTRY(bdan_room_11) +DEFINE_DMA_ENTRY(bdan_room_12) +DEFINE_DMA_ENTRY(bdan_room_13) +DEFINE_DMA_ENTRY(bdan_room_14) +DEFINE_DMA_ENTRY(bdan_room_15) +DEFINE_DMA_ENTRY(Bmori1_scene) +DEFINE_DMA_ENTRY(Bmori1_room_0) +DEFINE_DMA_ENTRY(Bmori1_room_1) +DEFINE_DMA_ENTRY(Bmori1_room_2) +DEFINE_DMA_ENTRY(Bmori1_room_3) +DEFINE_DMA_ENTRY(Bmori1_room_4) +DEFINE_DMA_ENTRY(Bmori1_room_5) +DEFINE_DMA_ENTRY(Bmori1_room_6) +DEFINE_DMA_ENTRY(Bmori1_room_7) +DEFINE_DMA_ENTRY(Bmori1_room_8) +DEFINE_DMA_ENTRY(Bmori1_room_9) +DEFINE_DMA_ENTRY(Bmori1_room_10) +DEFINE_DMA_ENTRY(Bmori1_room_11) +DEFINE_DMA_ENTRY(Bmori1_room_12) +DEFINE_DMA_ENTRY(Bmori1_room_13) +DEFINE_DMA_ENTRY(Bmori1_room_14) +DEFINE_DMA_ENTRY(Bmori1_room_15) +DEFINE_DMA_ENTRY(Bmori1_room_16) +DEFINE_DMA_ENTRY(Bmori1_room_17) +DEFINE_DMA_ENTRY(Bmori1_room_18) +DEFINE_DMA_ENTRY(Bmori1_room_19) +DEFINE_DMA_ENTRY(Bmori1_room_20) +DEFINE_DMA_ENTRY(Bmori1_room_21) +DEFINE_DMA_ENTRY(Bmori1_room_22) +DEFINE_DMA_ENTRY(HIDAN_scene) +DEFINE_DMA_ENTRY(HIDAN_room_0) +DEFINE_DMA_ENTRY(HIDAN_room_1) +DEFINE_DMA_ENTRY(HIDAN_room_2) +DEFINE_DMA_ENTRY(HIDAN_room_3) +DEFINE_DMA_ENTRY(HIDAN_room_4) +DEFINE_DMA_ENTRY(HIDAN_room_5) +DEFINE_DMA_ENTRY(HIDAN_room_6) +DEFINE_DMA_ENTRY(HIDAN_room_7) +DEFINE_DMA_ENTRY(HIDAN_room_8) +DEFINE_DMA_ENTRY(HIDAN_room_9) +DEFINE_DMA_ENTRY(HIDAN_room_10) +DEFINE_DMA_ENTRY(HIDAN_room_11) +DEFINE_DMA_ENTRY(HIDAN_room_12) +DEFINE_DMA_ENTRY(HIDAN_room_13) +DEFINE_DMA_ENTRY(HIDAN_room_14) +DEFINE_DMA_ENTRY(HIDAN_room_15) +DEFINE_DMA_ENTRY(HIDAN_room_16) +DEFINE_DMA_ENTRY(HIDAN_room_17) +DEFINE_DMA_ENTRY(HIDAN_room_18) +DEFINE_DMA_ENTRY(HIDAN_room_19) +DEFINE_DMA_ENTRY(HIDAN_room_20) +DEFINE_DMA_ENTRY(HIDAN_room_21) +DEFINE_DMA_ENTRY(HIDAN_room_22) +DEFINE_DMA_ENTRY(HIDAN_room_23) +DEFINE_DMA_ENTRY(HIDAN_room_24) +DEFINE_DMA_ENTRY(HIDAN_room_25) +DEFINE_DMA_ENTRY(HIDAN_room_26) +DEFINE_DMA_ENTRY(MIZUsin_scene) +DEFINE_DMA_ENTRY(MIZUsin_room_0) +DEFINE_DMA_ENTRY(MIZUsin_room_1) +DEFINE_DMA_ENTRY(MIZUsin_room_2) +DEFINE_DMA_ENTRY(MIZUsin_room_3) +DEFINE_DMA_ENTRY(MIZUsin_room_4) +DEFINE_DMA_ENTRY(MIZUsin_room_5) +DEFINE_DMA_ENTRY(MIZUsin_room_6) +DEFINE_DMA_ENTRY(MIZUsin_room_7) +DEFINE_DMA_ENTRY(MIZUsin_room_8) +DEFINE_DMA_ENTRY(MIZUsin_room_9) +DEFINE_DMA_ENTRY(MIZUsin_room_10) +DEFINE_DMA_ENTRY(MIZUsin_room_11) +DEFINE_DMA_ENTRY(MIZUsin_room_12) +DEFINE_DMA_ENTRY(MIZUsin_room_13) +DEFINE_DMA_ENTRY(MIZUsin_room_14) +DEFINE_DMA_ENTRY(MIZUsin_room_15) +DEFINE_DMA_ENTRY(MIZUsin_room_16) +DEFINE_DMA_ENTRY(MIZUsin_room_17) +DEFINE_DMA_ENTRY(MIZUsin_room_18) +DEFINE_DMA_ENTRY(MIZUsin_room_19) +DEFINE_DMA_ENTRY(MIZUsin_room_20) +DEFINE_DMA_ENTRY(MIZUsin_room_21) +DEFINE_DMA_ENTRY(MIZUsin_room_22) +DEFINE_DMA_ENTRY(jyasinzou_scene) +DEFINE_DMA_ENTRY(jyasinzou_room_0) +DEFINE_DMA_ENTRY(jyasinzou_room_1) +DEFINE_DMA_ENTRY(jyasinzou_room_2) +DEFINE_DMA_ENTRY(jyasinzou_room_3) +DEFINE_DMA_ENTRY(jyasinzou_room_4) +DEFINE_DMA_ENTRY(jyasinzou_room_5) +DEFINE_DMA_ENTRY(jyasinzou_room_6) +DEFINE_DMA_ENTRY(jyasinzou_room_7) +DEFINE_DMA_ENTRY(jyasinzou_room_8) +DEFINE_DMA_ENTRY(jyasinzou_room_9) +DEFINE_DMA_ENTRY(jyasinzou_room_10) +DEFINE_DMA_ENTRY(jyasinzou_room_11) +DEFINE_DMA_ENTRY(jyasinzou_room_12) +DEFINE_DMA_ENTRY(jyasinzou_room_13) +DEFINE_DMA_ENTRY(jyasinzou_room_14) +DEFINE_DMA_ENTRY(jyasinzou_room_15) +DEFINE_DMA_ENTRY(jyasinzou_room_16) +DEFINE_DMA_ENTRY(jyasinzou_room_17) +DEFINE_DMA_ENTRY(jyasinzou_room_18) +DEFINE_DMA_ENTRY(jyasinzou_room_19) +DEFINE_DMA_ENTRY(jyasinzou_room_20) +DEFINE_DMA_ENTRY(jyasinzou_room_21) +DEFINE_DMA_ENTRY(jyasinzou_room_22) +DEFINE_DMA_ENTRY(jyasinzou_room_23) +DEFINE_DMA_ENTRY(jyasinzou_room_24) +DEFINE_DMA_ENTRY(jyasinzou_room_25) +DEFINE_DMA_ENTRY(jyasinzou_room_26) +DEFINE_DMA_ENTRY(jyasinzou_room_27) +DEFINE_DMA_ENTRY(jyasinzou_room_28) +DEFINE_DMA_ENTRY(HAKAdan_scene) +DEFINE_DMA_ENTRY(HAKAdan_room_0) +DEFINE_DMA_ENTRY(HAKAdan_room_1) +DEFINE_DMA_ENTRY(HAKAdan_room_2) +DEFINE_DMA_ENTRY(HAKAdan_room_3) +DEFINE_DMA_ENTRY(HAKAdan_room_4) +DEFINE_DMA_ENTRY(HAKAdan_room_5) +DEFINE_DMA_ENTRY(HAKAdan_room_6) +DEFINE_DMA_ENTRY(HAKAdan_room_7) +DEFINE_DMA_ENTRY(HAKAdan_room_8) +DEFINE_DMA_ENTRY(HAKAdan_room_9) +DEFINE_DMA_ENTRY(HAKAdan_room_10) +DEFINE_DMA_ENTRY(HAKAdan_room_11) +DEFINE_DMA_ENTRY(HAKAdan_room_12) +DEFINE_DMA_ENTRY(HAKAdan_room_13) +DEFINE_DMA_ENTRY(HAKAdan_room_14) +DEFINE_DMA_ENTRY(HAKAdan_room_15) +DEFINE_DMA_ENTRY(HAKAdan_room_16) +DEFINE_DMA_ENTRY(HAKAdan_room_17) +DEFINE_DMA_ENTRY(HAKAdan_room_18) +DEFINE_DMA_ENTRY(HAKAdan_room_19) +DEFINE_DMA_ENTRY(HAKAdan_room_20) +DEFINE_DMA_ENTRY(HAKAdan_room_21) +DEFINE_DMA_ENTRY(HAKAdan_room_22) +DEFINE_DMA_ENTRY(HAKAdanCH_scene) +DEFINE_DMA_ENTRY(HAKAdanCH_room_0) +DEFINE_DMA_ENTRY(HAKAdanCH_room_1) +DEFINE_DMA_ENTRY(HAKAdanCH_room_2) +DEFINE_DMA_ENTRY(HAKAdanCH_room_3) +DEFINE_DMA_ENTRY(HAKAdanCH_room_4) +DEFINE_DMA_ENTRY(HAKAdanCH_room_5) +DEFINE_DMA_ENTRY(HAKAdanCH_room_6) +DEFINE_DMA_ENTRY(ice_doukutu_scene) +DEFINE_DMA_ENTRY(ice_doukutu_room_0) +DEFINE_DMA_ENTRY(ice_doukutu_room_1) +DEFINE_DMA_ENTRY(ice_doukutu_room_2) +DEFINE_DMA_ENTRY(ice_doukutu_room_3) +DEFINE_DMA_ENTRY(ice_doukutu_room_4) +DEFINE_DMA_ENTRY(ice_doukutu_room_5) +DEFINE_DMA_ENTRY(ice_doukutu_room_6) +DEFINE_DMA_ENTRY(ice_doukutu_room_7) +DEFINE_DMA_ENTRY(ice_doukutu_room_8) +DEFINE_DMA_ENTRY(ice_doukutu_room_9) +DEFINE_DMA_ENTRY(ice_doukutu_room_10) +DEFINE_DMA_ENTRY(ice_doukutu_room_11) +DEFINE_DMA_ENTRY(men_scene) +DEFINE_DMA_ENTRY(men_room_0) +DEFINE_DMA_ENTRY(men_room_1) +DEFINE_DMA_ENTRY(men_room_2) +DEFINE_DMA_ENTRY(men_room_3) +DEFINE_DMA_ENTRY(men_room_4) +DEFINE_DMA_ENTRY(men_room_5) +DEFINE_DMA_ENTRY(men_room_6) +DEFINE_DMA_ENTRY(men_room_7) +DEFINE_DMA_ENTRY(men_room_8) +DEFINE_DMA_ENTRY(men_room_9) +DEFINE_DMA_ENTRY(men_room_10) +DEFINE_DMA_ENTRY(ganontika_scene) +DEFINE_DMA_ENTRY(ganontika_room_0) +DEFINE_DMA_ENTRY(ganontika_room_1) +DEFINE_DMA_ENTRY(ganontika_room_2) +DEFINE_DMA_ENTRY(ganontika_room_3) +DEFINE_DMA_ENTRY(ganontika_room_4) +DEFINE_DMA_ENTRY(ganontika_room_5) +DEFINE_DMA_ENTRY(ganontika_room_6) +DEFINE_DMA_ENTRY(ganontika_room_7) +DEFINE_DMA_ENTRY(ganontika_room_8) +DEFINE_DMA_ENTRY(ganontika_room_9) +DEFINE_DMA_ENTRY(ganontika_room_10) +DEFINE_DMA_ENTRY(ganontika_room_11) +DEFINE_DMA_ENTRY(ganontika_room_12) +DEFINE_DMA_ENTRY(ganontika_room_13) +DEFINE_DMA_ENTRY(ganontika_room_14) +DEFINE_DMA_ENTRY(ganontika_room_15) +DEFINE_DMA_ENTRY(ganontika_room_16) +DEFINE_DMA_ENTRY(ganontika_room_17) +DEFINE_DMA_ENTRY(ganontika_room_18) +DEFINE_DMA_ENTRY(ganontika_room_19) +DEFINE_DMA_ENTRY(market_day_scene) +DEFINE_DMA_ENTRY(market_day_room_0) +DEFINE_DMA_ENTRY(market_night_scene) +DEFINE_DMA_ENTRY(market_night_room_0) +DEFINE_DMA_ENTRY(testroom_scene) +DEFINE_DMA_ENTRY(testroom_room_0) +DEFINE_DMA_ENTRY(testroom_room_1) +DEFINE_DMA_ENTRY(testroom_room_2) +DEFINE_DMA_ENTRY(testroom_room_3) +DEFINE_DMA_ENTRY(testroom_room_4) +DEFINE_DMA_ENTRY(kenjyanoma_scene) +DEFINE_DMA_ENTRY(kenjyanoma_room_0) +DEFINE_DMA_ENTRY(tokinoma_scene) +DEFINE_DMA_ENTRY(tokinoma_room_0) +DEFINE_DMA_ENTRY(tokinoma_room_1) +DEFINE_DMA_ENTRY(sutaru_scene) +DEFINE_DMA_ENTRY(sutaru_room_0) +DEFINE_DMA_ENTRY(link_home_scene) +DEFINE_DMA_ENTRY(link_home_room_0) +DEFINE_DMA_ENTRY(kokiri_shop_scene) +DEFINE_DMA_ENTRY(kokiri_shop_room_0) +DEFINE_DMA_ENTRY(kokiri_home_scene) +DEFINE_DMA_ENTRY(kokiri_home_room_0) +DEFINE_DMA_ENTRY(kakusiana_scene) +DEFINE_DMA_ENTRY(kakusiana_room_0) +DEFINE_DMA_ENTRY(kakusiana_room_1) +DEFINE_DMA_ENTRY(kakusiana_room_2) +DEFINE_DMA_ENTRY(kakusiana_room_3) +DEFINE_DMA_ENTRY(kakusiana_room_4) +DEFINE_DMA_ENTRY(kakusiana_room_5) +DEFINE_DMA_ENTRY(kakusiana_room_6) +DEFINE_DMA_ENTRY(kakusiana_room_7) +DEFINE_DMA_ENTRY(kakusiana_room_8) +DEFINE_DMA_ENTRY(kakusiana_room_9) +DEFINE_DMA_ENTRY(kakusiana_room_10) +DEFINE_DMA_ENTRY(kakusiana_room_11) +DEFINE_DMA_ENTRY(kakusiana_room_12) +DEFINE_DMA_ENTRY(kakusiana_room_13) +DEFINE_DMA_ENTRY(entra_scene) +DEFINE_DMA_ENTRY(entra_room_0) +DEFINE_DMA_ENTRY(moribossroom_scene) +DEFINE_DMA_ENTRY(moribossroom_room_0) +DEFINE_DMA_ENTRY(moribossroom_room_1) +DEFINE_DMA_ENTRY(syatekijyou_scene) +DEFINE_DMA_ENTRY(syatekijyou_room_0) +DEFINE_DMA_ENTRY(shop1_scene) +DEFINE_DMA_ENTRY(shop1_room_0) +DEFINE_DMA_ENTRY(hairal_niwa_scene) +DEFINE_DMA_ENTRY(hairal_niwa_room_0) +DEFINE_DMA_ENTRY(ganon_tou_scene) +DEFINE_DMA_ENTRY(ganon_tou_room_0) +DEFINE_DMA_ENTRY(sasatest_scene) +DEFINE_DMA_ENTRY(sasatest_room_0) +DEFINE_DMA_ENTRY(market_alley_scene) +DEFINE_DMA_ENTRY(market_alley_room_0) +DEFINE_DMA_ENTRY(spot20_scene) +DEFINE_DMA_ENTRY(spot20_room_0) +DEFINE_DMA_ENTRY(market_ruins_scene) +DEFINE_DMA_ENTRY(market_ruins_room_0) +DEFINE_DMA_ENTRY(entra_n_scene) +DEFINE_DMA_ENTRY(entra_n_room_0) +DEFINE_DMA_ENTRY(enrui_scene) +DEFINE_DMA_ENTRY(enrui_room_0) +DEFINE_DMA_ENTRY(market_alley_n_scene) +DEFINE_DMA_ENTRY(market_alley_n_room_0) +DEFINE_DMA_ENTRY(hiral_demo_scene) +DEFINE_DMA_ENTRY(hiral_demo_room_0) +DEFINE_DMA_ENTRY(kokiri_home3_scene) +DEFINE_DMA_ENTRY(kokiri_home3_room_0) +DEFINE_DMA_ENTRY(malon_stable_scene) +DEFINE_DMA_ENTRY(malon_stable_room_0) +DEFINE_DMA_ENTRY(kakariko_scene) +DEFINE_DMA_ENTRY(kakariko_room_0) +DEFINE_DMA_ENTRY(bdan_boss_scene) +DEFINE_DMA_ENTRY(bdan_boss_room_0) +DEFINE_DMA_ENTRY(bdan_boss_room_1) +DEFINE_DMA_ENTRY(FIRE_bs_scene) +DEFINE_DMA_ENTRY(FIRE_bs_room_0) +DEFINE_DMA_ENTRY(FIRE_bs_room_1) +DEFINE_DMA_ENTRY(hut_scene) +DEFINE_DMA_ENTRY(hut_room_0) +DEFINE_DMA_ENTRY(daiyousei_izumi_scene) +DEFINE_DMA_ENTRY(daiyousei_izumi_room_0) +DEFINE_DMA_ENTRY(hakaana_scene) +DEFINE_DMA_ENTRY(hakaana_room_0) +DEFINE_DMA_ENTRY(yousei_izumi_tate_scene) +DEFINE_DMA_ENTRY(yousei_izumi_tate_room_0) +DEFINE_DMA_ENTRY(yousei_izumi_yoko_scene) +DEFINE_DMA_ENTRY(yousei_izumi_yoko_room_0) +DEFINE_DMA_ENTRY(golon_scene) +DEFINE_DMA_ENTRY(golon_room_0) +DEFINE_DMA_ENTRY(zoora_scene) +DEFINE_DMA_ENTRY(zoora_room_0) +DEFINE_DMA_ENTRY(drag_scene) +DEFINE_DMA_ENTRY(drag_room_0) +DEFINE_DMA_ENTRY(alley_shop_scene) +DEFINE_DMA_ENTRY(alley_shop_room_0) +DEFINE_DMA_ENTRY(night_shop_scene) +DEFINE_DMA_ENTRY(night_shop_room_0) +DEFINE_DMA_ENTRY(impa_scene) +DEFINE_DMA_ENTRY(impa_room_0) +DEFINE_DMA_ENTRY(labo_scene) +DEFINE_DMA_ENTRY(labo_room_0) +DEFINE_DMA_ENTRY(tent_scene) +DEFINE_DMA_ENTRY(tent_room_0) +DEFINE_DMA_ENTRY(nakaniwa_scene) +DEFINE_DMA_ENTRY(nakaniwa_room_0) +DEFINE_DMA_ENTRY(ddan_boss_scene) +DEFINE_DMA_ENTRY(ddan_boss_room_0) +DEFINE_DMA_ENTRY(ddan_boss_room_1) +DEFINE_DMA_ENTRY(ydan_boss_scene) +DEFINE_DMA_ENTRY(ydan_boss_room_0) +DEFINE_DMA_ENTRY(ydan_boss_room_1) +DEFINE_DMA_ENTRY(HAKAdan_bs_scene) +DEFINE_DMA_ENTRY(HAKAdan_bs_room_0) +DEFINE_DMA_ENTRY(HAKAdan_bs_room_1) +DEFINE_DMA_ENTRY(MIZUsin_bs_scene) +DEFINE_DMA_ENTRY(MIZUsin_bs_room_0) +DEFINE_DMA_ENTRY(MIZUsin_bs_room_1) +DEFINE_DMA_ENTRY(ganon_scene) +DEFINE_DMA_ENTRY(ganon_room_0) +DEFINE_DMA_ENTRY(ganon_room_1) +DEFINE_DMA_ENTRY(ganon_room_2) +DEFINE_DMA_ENTRY(ganon_room_3) +DEFINE_DMA_ENTRY(ganon_room_4) +DEFINE_DMA_ENTRY(ganon_room_5) +DEFINE_DMA_ENTRY(ganon_room_6) +DEFINE_DMA_ENTRY(ganon_room_7) +DEFINE_DMA_ENTRY(ganon_room_8) +DEFINE_DMA_ENTRY(ganon_room_9) +DEFINE_DMA_ENTRY(ganon_boss_scene) +DEFINE_DMA_ENTRY(ganon_boss_room_0) +DEFINE_DMA_ENTRY(jyasinboss_scene) +DEFINE_DMA_ENTRY(jyasinboss_room_0) +DEFINE_DMA_ENTRY(jyasinboss_room_1) +DEFINE_DMA_ENTRY(jyasinboss_room_2) +DEFINE_DMA_ENTRY(jyasinboss_room_3) +DEFINE_DMA_ENTRY(kokiri_home4_scene) +DEFINE_DMA_ENTRY(kokiri_home4_room_0) +DEFINE_DMA_ENTRY(kokiri_home5_scene) +DEFINE_DMA_ENTRY(kokiri_home5_room_0) +DEFINE_DMA_ENTRY(ganon_final_scene) +DEFINE_DMA_ENTRY(ganon_final_room_0) +DEFINE_DMA_ENTRY(kakariko3_scene) +DEFINE_DMA_ENTRY(kakariko3_room_0) +DEFINE_DMA_ENTRY(hairal_niwa2_scene) +DEFINE_DMA_ENTRY(hairal_niwa2_room_0) +DEFINE_DMA_ENTRY(hakasitarelay_scene) +DEFINE_DMA_ENTRY(hakasitarelay_room_0) +DEFINE_DMA_ENTRY(hakasitarelay_room_1) +DEFINE_DMA_ENTRY(hakasitarelay_room_2) +DEFINE_DMA_ENTRY(hakasitarelay_room_3) +DEFINE_DMA_ENTRY(hakasitarelay_room_4) +DEFINE_DMA_ENTRY(hakasitarelay_room_5) +DEFINE_DMA_ENTRY(hakasitarelay_room_6) +DEFINE_DMA_ENTRY(shrine_scene) +DEFINE_DMA_ENTRY(shrine_room_0) +DEFINE_DMA_ENTRY(turibori_scene) +DEFINE_DMA_ENTRY(turibori_room_0) +DEFINE_DMA_ENTRY(shrine_n_scene) +DEFINE_DMA_ENTRY(shrine_n_room_0) +DEFINE_DMA_ENTRY(shrine_r_scene) +DEFINE_DMA_ENTRY(shrine_r_room_0) +DEFINE_DMA_ENTRY(hakaana2_scene) +DEFINE_DMA_ENTRY(hakaana2_room_0) +DEFINE_DMA_ENTRY(gerudoway_scene) +DEFINE_DMA_ENTRY(gerudoway_room_0) +DEFINE_DMA_ENTRY(gerudoway_room_1) +DEFINE_DMA_ENTRY(gerudoway_room_2) +DEFINE_DMA_ENTRY(gerudoway_room_3) +DEFINE_DMA_ENTRY(gerudoway_room_4) +DEFINE_DMA_ENTRY(gerudoway_room_5) +DEFINE_DMA_ENTRY(hairal_niwa_n_scene) +DEFINE_DMA_ENTRY(hairal_niwa_n_room_0) +DEFINE_DMA_ENTRY(bowling_scene) +DEFINE_DMA_ENTRY(bowling_room_0) +DEFINE_DMA_ENTRY(hakaana_ouke_scene) +DEFINE_DMA_ENTRY(hakaana_ouke_room_0) +DEFINE_DMA_ENTRY(hakaana_ouke_room_1) +DEFINE_DMA_ENTRY(hakaana_ouke_room_2) +DEFINE_DMA_ENTRY(hylia_labo_scene) +DEFINE_DMA_ENTRY(hylia_labo_room_0) +DEFINE_DMA_ENTRY(souko_scene) +DEFINE_DMA_ENTRY(souko_room_0) +DEFINE_DMA_ENTRY(souko_room_1) +DEFINE_DMA_ENTRY(souko_room_2) +DEFINE_DMA_ENTRY(miharigoya_scene) +DEFINE_DMA_ENTRY(miharigoya_room_0) +DEFINE_DMA_ENTRY(mahouya_scene) +DEFINE_DMA_ENTRY(mahouya_room_0) +DEFINE_DMA_ENTRY(takaraya_scene) +DEFINE_DMA_ENTRY(takaraya_room_0) +DEFINE_DMA_ENTRY(takaraya_room_1) +DEFINE_DMA_ENTRY(takaraya_room_2) +DEFINE_DMA_ENTRY(takaraya_room_3) +DEFINE_DMA_ENTRY(takaraya_room_4) +DEFINE_DMA_ENTRY(takaraya_room_5) +DEFINE_DMA_ENTRY(takaraya_room_6) +DEFINE_DMA_ENTRY(ganon_sonogo_scene) +DEFINE_DMA_ENTRY(ganon_sonogo_room_0) +DEFINE_DMA_ENTRY(ganon_sonogo_room_1) +DEFINE_DMA_ENTRY(ganon_sonogo_room_2) +DEFINE_DMA_ENTRY(ganon_sonogo_room_3) +DEFINE_DMA_ENTRY(ganon_sonogo_room_4) +DEFINE_DMA_ENTRY(ganon_demo_scene) +DEFINE_DMA_ENTRY(ganon_demo_room_0) +DEFINE_DMA_ENTRY(besitu_scene) +DEFINE_DMA_ENTRY(besitu_room_0) +DEFINE_DMA_ENTRY(face_shop_scene) +DEFINE_DMA_ENTRY(face_shop_room_0) +DEFINE_DMA_ENTRY(kinsuta_scene) +DEFINE_DMA_ENTRY(kinsuta_room_0) +DEFINE_DMA_ENTRY(ganontikasonogo_scene) +DEFINE_DMA_ENTRY(ganontikasonogo_room_0) +DEFINE_DMA_ENTRY(ganontikasonogo_room_1) +DEFINE_DMA_ENTRY(test01_scene) +DEFINE_DMA_ENTRY(test01_room_0) +DEFINE_DMA_ENTRY(bump_texture_static) +DEFINE_DMA_ENTRY(anime_model_1_static) +DEFINE_DMA_ENTRY(anime_model_2_static) +DEFINE_DMA_ENTRY(anime_model_3_static) +DEFINE_DMA_ENTRY(anime_model_4_static) +DEFINE_DMA_ENTRY(anime_model_5_static) +DEFINE_DMA_ENTRY(anime_model_6_static) +DEFINE_DMA_ENTRY(anime_texture_1_static) +DEFINE_DMA_ENTRY(anime_texture_2_static) +DEFINE_DMA_ENTRY(anime_texture_3_static) +DEFINE_DMA_ENTRY(anime_texture_4_static) +DEFINE_DMA_ENTRY(anime_texture_5_static) +DEFINE_DMA_ENTRY(anime_texture_6_static) +DEFINE_DMA_ENTRY(softsprite_matrix_static) diff --git a/spec b/spec index 4b4521d2a3..d2190e6c64 100644 --- a/spec +++ b/spec @@ -113,7 +113,7 @@ endseg beginseg name "dmadata" - include "build/asm/dmadata.o" + include "build/src/dmadata/dmadata.o" endseg beginseg diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c index 46dc9a0d78..a1f42d4c37 100644 --- a/src/boot/z_std_dma.c +++ b/src/boot/z_std_dma.c @@ -13,1541 +13,15 @@ u32 D_80009460 = 0; u32 gDmaMgrDmaBuffSize = 0x2000; u32 sDmaMgrDataExistError = 0; -const char* sDmaMgrFileNames[0x5FC] = { - "makerom", - "boot", - "dmadata", - "Audiobank", - "Audioseq", - "Audiotable", - "link_animetion", - "icon_item_static", - "icon_item_24_static", - "icon_item_field_static", - "icon_item_dungeon_static", - "icon_item_gameover_static", - "icon_item_nes_static", - "icon_item_ger_static", - "icon_item_fra_static", - "item_name_static", - "map_name_static", - "do_action_static", - "message_static", - "message_texture_static", - "nes_font_static", - "nes_message_data_static", - "ger_message_data_static", - "fra_message_data_static", - "staff_message_data_static", - "map_grand_static", - "map_i_static", - "map_48x85_static", - "code", - "ovl_title", - "ovl_select", - "ovl_opening", - "ovl_file_choose", - "ovl_kaleido_scope", - "ovl_player_actor", - "ovl_map_mark_data", - "ovl_En_Test", - "ovl_Arms_Hook", - "ovl_Arrow_Fire", - "ovl_Arrow_Ice", - "ovl_Arrow_Light", - "ovl_Bg_Bdan_Objects", - "ovl_Bg_Bdan_Switch", - "ovl_Bg_Bom_Guard", - "ovl_Bg_Bombwall", - "ovl_Bg_Bowl_Wall", - "ovl_Bg_Breakwall", - "ovl_Bg_Ddan_Jd", - "ovl_Bg_Ddan_Kd", - "ovl_Bg_Dodoago", - "ovl_Bg_Dy_Yoseizo", - "ovl_Bg_Ganon_Otyuka", - "ovl_Bg_Gate_Shutter", - "ovl_Bg_Gjyo_Bridge", - "ovl_Bg_Gnd_Darkmeiro", - "ovl_Bg_Gnd_Firemeiro", - "ovl_Bg_Gnd_Iceblock", - "ovl_Bg_Gnd_Nisekabe", - "ovl_Bg_Gnd_Soulmeiro", - "ovl_Bg_Haka", - "ovl_Bg_Haka_Gate", - "ovl_Bg_Haka_Huta", - "ovl_Bg_Haka_Megane", - "ovl_Bg_Haka_MeganeBG", - "ovl_Bg_Haka_Sgami", - "ovl_Bg_Haka_Ship", - "ovl_Bg_Haka_Trap", - "ovl_Bg_Haka_Tubo", - "ovl_Bg_Haka_Water", - "ovl_Bg_Haka_Zou", - "ovl_Bg_Heavy_Block", - "ovl_Bg_Hidan_Curtain", - "ovl_Bg_Hidan_Dalm", - "ovl_Bg_Hidan_Firewall", - "ovl_Bg_Hidan_Fslift", - "ovl_Bg_Hidan_Fwbig", - "ovl_Bg_Hidan_Hamstep", - "ovl_Bg_Hidan_Hrock", - "ovl_Bg_Hidan_Kousi", - "ovl_Bg_Hidan_Kowarerukabe", - "ovl_Bg_Hidan_Rock", - "ovl_Bg_Hidan_Rsekizou", - "ovl_Bg_Hidan_Sekizou", - "ovl_Bg_Hidan_Sima", - "ovl_Bg_Hidan_Syoku", - "ovl_Bg_Ice_Objects", - "ovl_Bg_Ice_Shelter", - "ovl_Bg_Ice_Shutter", - "ovl_Bg_Ice_Turara", - "ovl_Bg_Ingate", - "ovl_Bg_Jya_1flift", - "ovl_Bg_Jya_Amishutter", - "ovl_Bg_Jya_Bigmirror", - "ovl_Bg_Jya_Block", - "ovl_Bg_Jya_Bombchuiwa", - "ovl_Bg_Jya_Bombiwa", - "ovl_Bg_Jya_Cobra", - "ovl_Bg_Jya_Goroiwa", - "ovl_Bg_Jya_Haheniron", - "ovl_Bg_Jya_Ironobj", - "ovl_Bg_Jya_Kanaami", - "ovl_Bg_Jya_Lift", - "ovl_Bg_Jya_Megami", - "ovl_Bg_Jya_Zurerukabe", - "ovl_Bg_Menkuri_Eye", - "ovl_Bg_Menkuri_Kaiten", - "ovl_Bg_Menkuri_Nisekabe", - "ovl_Bg_Mizu_Bwall", - "ovl_Bg_Mizu_Movebg", - "ovl_Bg_Mizu_Shutter", - "ovl_Bg_Mizu_Uzu", - "ovl_Bg_Mizu_Water", - "ovl_Bg_Mjin", - "ovl_Bg_Mori_Bigst", - "ovl_Bg_Mori_Elevator", - "ovl_Bg_Mori_Hashigo", - "ovl_Bg_Mori_Hashira4", - "ovl_Bg_Mori_Hineri", - "ovl_Bg_Mori_Idomizu", - "ovl_Bg_Mori_Kaitenkabe", - "ovl_Bg_Mori_Rakkatenjo", - "ovl_Bg_Po_Event", - "ovl_Bg_Po_Syokudai", - "ovl_Bg_Pushbox", - "ovl_Bg_Relay_Objects", - "ovl_Bg_Spot00_Break", - "ovl_Bg_Spot00_Hanebasi", - "ovl_Bg_Spot01_Fusya", - "ovl_Bg_Spot01_Idohashira", - "ovl_Bg_Spot01_Idomizu", - "ovl_Bg_Spot01_Idosoko", - "ovl_Bg_Spot01_Objects2", - "ovl_Bg_Spot02_Objects", - "ovl_Bg_Spot03_Taki", - "ovl_Bg_Spot05_Soko", - "ovl_Bg_Spot06_Objects", - "ovl_Bg_Spot07_Taki", - "ovl_Bg_Spot08_Bakudankabe", - "ovl_Bg_Spot08_Iceblock", - "ovl_Bg_Spot09_Obj", - "ovl_Bg_Spot11_Bakudankabe", - "ovl_Bg_Spot11_Oasis", - "ovl_Bg_Spot12_Gate", - "ovl_Bg_Spot12_Saku", - "ovl_Bg_Spot15_Rrbox", - "ovl_Bg_Spot15_Saku", - "ovl_Bg_Spot16_Bombstone", - "ovl_Bg_Spot16_Doughnut", - "ovl_Bg_Spot17_Bakudankabe", - "ovl_Bg_Spot17_Funen", - "ovl_Bg_Spot18_Basket", - "ovl_Bg_Spot18_Futa", - "ovl_Bg_Spot18_Obj", - "ovl_Bg_Spot18_Shutter", - "ovl_Bg_Sst_Floor", - "ovl_Bg_Toki_Hikari", - "ovl_Bg_Toki_Swd", - "ovl_Bg_Treemouth", - "ovl_Bg_Umajump", - "ovl_Bg_Vb_Sima", - "ovl_Bg_Ydan_Hasi", - "ovl_Bg_Ydan_Maruta", - "ovl_Bg_Ydan_Sp", - "ovl_Bg_Zg", - "ovl_Boss_Dodongo", - "ovl_Boss_Fd", - "ovl_Boss_Fd2", - "ovl_Boss_Ganon", - "ovl_Boss_Ganon2", - "ovl_Boss_Ganondrof", - "ovl_Boss_Goma", - "ovl_Boss_Mo", - "ovl_Boss_Sst", - "ovl_Boss_Tw", - "ovl_Boss_Va", - "ovl_Demo_6K", - "ovl_Demo_Du", - "ovl_Demo_Ec", - "ovl_Demo_Effect", - "ovl_Demo_Ext", - "ovl_Demo_Geff", - "ovl_Demo_Gj", - "ovl_Demo_Go", - "ovl_Demo_Gt", - "ovl_Demo_Ik", - "ovl_Demo_Im", - "ovl_Demo_Kankyo", - "ovl_Demo_Kekkai", - "ovl_Demo_Sa", - "ovl_Demo_Shd", - "ovl_Demo_Tre_Lgt", - "ovl_Door_Ana", - "ovl_Door_Gerudo", - "ovl_Door_Killer", - "ovl_Door_Shutter", - "ovl_Door_Toki", - "ovl_Door_Warp1", - "ovl_Efc_Erupc", - "ovl_Eff_Dust", - "ovl_Effect_Ss_Blast", - "ovl_Effect_Ss_Bomb", - "ovl_Effect_Ss_Bomb2", - "ovl_Effect_Ss_Bubble", - "ovl_Effect_Ss_D_Fire", - "ovl_Effect_Ss_Dead_Db", - "ovl_Effect_Ss_Dead_Dd", - "ovl_Effect_Ss_Dead_Ds", - "ovl_Effect_Ss_Dead_Sound", - "ovl_Effect_Ss_Dt_Bubble", - "ovl_Effect_Ss_Dust", - "ovl_Effect_Ss_En_Fire", - "ovl_Effect_Ss_En_Ice", - "ovl_Effect_Ss_Extra", - "ovl_Effect_Ss_Fcircle", - "ovl_Effect_Ss_Fhg_Flash", - "ovl_Effect_Ss_Fire_Tail", - "ovl_Effect_Ss_G_Fire", - "ovl_Effect_Ss_G_Magma", - "ovl_Effect_Ss_G_Magma2", - "ovl_Effect_Ss_G_Ripple", - "ovl_Effect_Ss_G_Spk", - "ovl_Effect_Ss_G_Splash", - "ovl_Effect_Ss_Hahen", - "ovl_Effect_Ss_HitMark", - "ovl_Effect_Ss_Ice_Piece", - "ovl_Effect_Ss_Ice_Smoke", - "ovl_Effect_Ss_K_Fire", - "ovl_Effect_Ss_Kakera", - "ovl_Effect_Ss_KiraKira", - "ovl_Effect_Ss_Lightning", - "ovl_Effect_Ss_Sibuki", - "ovl_Effect_Ss_Sibuki2", - "ovl_Effect_Ss_Solder_Srch_Ball", - "ovl_Effect_Ss_Stick", - "ovl_Effect_Ss_Stone1", - "ovl_Elf_Msg", - "ovl_Elf_Msg2", - "ovl_En_Am", - "ovl_En_Ani", - "ovl_En_Anubice", - "ovl_En_Anubice_Fire", - "ovl_En_Anubice_Tag", - "ovl_En_Arow_Trap", - "ovl_En_Arrow", - "ovl_En_Attack_Niw", - "ovl_En_Ba", - "ovl_En_Bb", - "ovl_En_Bdfire", - "ovl_En_Bigokuta", - "ovl_En_Bili", - "ovl_En_Bird", - "ovl_En_Blkobj", - "ovl_En_Bom", - "ovl_En_Bom_Bowl_Man", - "ovl_En_Bom_Bowl_Pit", - "ovl_En_Bom_Chu", - "ovl_En_Bombf", - "ovl_En_Boom", - "ovl_En_Box", - "ovl_En_Brob", - "ovl_En_Bubble", - "ovl_En_Butte", - "ovl_En_Bw", - "ovl_En_Bx", - "ovl_En_Changer", - "ovl_En_Clear_Tag", - "ovl_En_Cow", - "ovl_En_Crow", - "ovl_En_Cs", - "ovl_En_Daiku", - "ovl_En_Daiku_Kakariko", - "ovl_En_Dekubaba", - "ovl_En_Dekunuts", - "ovl_En_Dh", - "ovl_En_Dha", - "ovl_En_Diving_Game", - "ovl_En_Dns", - "ovl_En_Dnt_Demo", - "ovl_En_Dnt_Jiji", - "ovl_En_Dnt_Nomal", - "ovl_En_Dodojr", - "ovl_En_Dodongo", - "ovl_En_Dog", - "ovl_En_Door", - "ovl_En_Ds", - "ovl_En_Du", - "ovl_En_Dy_Extra", - "ovl_En_Eg", - "ovl_En_Eiyer", - "ovl_En_Elf", - "ovl_En_Encount1", - "ovl_En_Encount2", - "ovl_En_Ex_Item", - "ovl_En_Ex_Ruppy", - "ovl_En_Fd", - "ovl_En_Fd_Fire", - "ovl_En_Fhg_Fire", - "ovl_En_Fire_Rock", - "ovl_En_Firefly", - "ovl_En_Fish", - "ovl_En_Floormas", - "ovl_En_Fr", - "ovl_En_Fu", - "ovl_En_Fw", - "ovl_En_Fz", - "ovl_En_G_Switch", - "ovl_En_Ganon_Mant", - "ovl_En_Ganon_Organ", - "ovl_En_Gb", - "ovl_En_Ge1", - "ovl_En_Ge2", - "ovl_En_Ge3", - "ovl_En_GeldB", - "ovl_En_GirlA", - "ovl_En_Gm", - "ovl_En_Go", - "ovl_En_Go2", - "ovl_En_Goma", - "ovl_En_Goroiwa", - "ovl_En_Gs", - "ovl_En_Guest", - "ovl_En_Hata", - "ovl_En_Heishi1", - "ovl_En_Heishi2", - "ovl_En_Heishi3", - "ovl_En_Heishi4", - "ovl_En_Hintnuts", - "ovl_En_Holl", - "ovl_En_Honotrap", - "ovl_En_Horse", - "ovl_En_Horse_Game_Check", - "ovl_En_Horse_Ganon", - "ovl_En_Horse_Link_Child", - "ovl_En_Horse_Normal", - "ovl_En_Horse_Zelda", - "ovl_En_Hs", - "ovl_En_Hs2", - "ovl_En_Hy", - "ovl_En_Ice_Hono", - "ovl_En_Ik", - "ovl_En_In", - "ovl_En_Insect", - "ovl_En_Ishi", - "ovl_En_It", - "ovl_En_Jj", - "ovl_En_Js", - "ovl_En_Jsjutan", - "ovl_En_Kakasi", - "ovl_En_Kakasi2", - "ovl_En_Kakasi3", - "ovl_En_Kanban", - "ovl_En_Karebaba", - "ovl_En_Ko", - "ovl_En_Kusa", - "ovl_En_Kz", - "ovl_En_Light", - "ovl_En_Lightbox", - "ovl_En_M_Fire1", - "ovl_En_M_Thunder", - "ovl_En_Ma1", - "ovl_En_Ma2", - "ovl_En_Ma3", - "ovl_En_Mag", - "ovl_En_Mb", - "ovl_En_Md", - "ovl_En_Mk", - "ovl_En_Mm", - "ovl_En_Mm2", - "ovl_En_Ms", - "ovl_En_Mu", - "ovl_En_Nb", - "ovl_En_Niw", - "ovl_En_Niw_Girl", - "ovl_En_Niw_Lady", - "ovl_En_Nutsball", - "ovl_En_Nwc", - "ovl_En_Ny", - "ovl_En_OE2", - "ovl_En_Okarina_Effect", - "ovl_En_Okarina_Tag", - "ovl_En_Okuta", - "ovl_En_Ossan", - "ovl_En_Owl", - "ovl_En_Part", - "ovl_En_Peehat", - "ovl_En_Po_Desert", - "ovl_En_Po_Field", - "ovl_En_Po_Relay", - "ovl_En_Po_Sisters", - "ovl_En_Poh", - "ovl_En_Pu_box", - "ovl_En_Rd", - "ovl_En_Reeba", - "ovl_En_River_Sound", - "ovl_En_Rl", - "ovl_En_Rr", - "ovl_En_Ru1", - "ovl_En_Ru2", - "ovl_En_Sa", - "ovl_En_Sb", - "ovl_En_Scene_Change", - "ovl_En_Sda", - "ovl_En_Shopnuts", - "ovl_En_Si", - "ovl_En_Siofuki", - "ovl_En_Skb", - "ovl_En_Skj", - "ovl_En_Skjneedle", - "ovl_En_Ssh", - "ovl_En_St", - "ovl_En_Sth", - "ovl_En_Stream", - "ovl_En_Sw", - "ovl_En_Syateki_Itm", - "ovl_En_Syateki_Man", - "ovl_En_Syateki_Niw", - "ovl_En_Ta", - "ovl_En_Takara_Man", - "ovl_En_Tana", - "ovl_En_Tg", - "ovl_En_Tite", - "ovl_En_Tk", - "ovl_En_Torch", - "ovl_En_Torch2", - "ovl_En_Toryo", - "ovl_En_Tp", - "ovl_En_Tr", - "ovl_En_Trap", - "ovl_En_Tubo_Trap", - "ovl_En_Vali", - "ovl_En_Vase", - "ovl_En_Vb_Ball", - "ovl_En_Viewer", - "ovl_En_Vm", - "ovl_En_Wall_Tubo", - "ovl_En_Wallmas", - "ovl_En_Weather_Tag", - "ovl_En_Weiyer", - "ovl_En_Wf", - "ovl_En_Wonder_Item", - "ovl_En_Wonder_Talk", - "ovl_En_Wonder_Talk2", - "ovl_En_Wood02", - "ovl_En_Xc", - "ovl_En_Yabusame_Mark", - "ovl_En_Yukabyun", - "ovl_En_Zf", - "ovl_En_Zl1", - "ovl_En_Zl2", - "ovl_En_Zl3", - "ovl_En_Zl4", - "ovl_En_Zo", - "ovl_En_fHG", - "ovl_End_Title", - "ovl_Fishing", - "ovl_Item_B_Heart", - "ovl_Item_Etcetera", - "ovl_Item_Inbox", - "ovl_Item_Ocarina", - "ovl_Item_Shield", - "ovl_Magic_Dark", - "ovl_Magic_Fire", - "ovl_Magic_Wind", - "ovl_Mir_Ray", - "ovl_Obj_Bean", - "ovl_Obj_Blockstop", - "ovl_Obj_Bombiwa", - "ovl_Obj_Comb", - "ovl_Obj_Dekujr", - "ovl_Obj_Elevator", - "ovl_Obj_Hamishi", - "ovl_Obj_Hana", - "ovl_Obj_Hsblock", - "ovl_Obj_Ice_Poly", - "ovl_Obj_Kibako", - "ovl_Obj_Kibako2", - "ovl_Obj_Lift", - "ovl_Obj_Lightswitch", - "ovl_Obj_Makekinsuta", - "ovl_Obj_Makeoshihiki", - "ovl_Obj_Mure", - "ovl_Obj_Mure2", - "ovl_Obj_Mure3", - "ovl_Obj_Oshihiki", - "ovl_Obj_Roomtimer", - "ovl_Obj_Switch", - "ovl_Obj_Syokudai", - "ovl_Obj_Timeblock", - "ovl_Obj_Tsubo", - "ovl_Obj_Warp2block", - "ovl_Object_Kankyo", - "ovl_Oceff_Spot", - "ovl_Oceff_Storm", - "ovl_Oceff_Wipe", - "ovl_Oceff_Wipe2", - "ovl_Oceff_Wipe3", - "ovl_Oceff_Wipe4", - "ovl_Shot_Sun", - "gameplay_keep", - "gameplay_field_keep", - "gameplay_dangeon_keep", - "gameplay_object_exchange_static", - "object_link_boy", - "object_link_child", - "object_box", - "object_human", - "object_okuta", - "object_poh", - "object_wallmaster", - "object_dy_obj", - "object_firefly", - "object_dodongo", - "object_fire", - "object_niw", - "object_tite", - "object_reeba", - "object_peehat", - "object_kingdodongo", - "object_horse", - "object_zf", - "object_goma", - "object_zl1", - "object_gol", - "object_bubble", - "object_dodojr", - "object_torch2", - "object_bl", - "object_tp", - "object_oA1", - "object_st", - "object_bw", - "object_ei", - "object_horse_normal", - "object_oB1", - "object_o_anime", - "object_spot04_objects", - "object_ddan_objects", - "object_hidan_objects", - "object_horse_ganon", - "object_oA2", - "object_spot00_objects", - "object_mb", - "object_bombf", - "object_sk2", - "object_oE1", - "object_oE_anime", - "object_oE2", - "object_ydan_objects", - "object_gnd", - "object_am", - "object_dekubaba", - "object_oA3", - "object_oA4", - "object_oA5", - "object_oA6", - "object_oA7", - "object_jj", - "object_oA8", - "object_oA9", - "object_oB2", - "object_oB3", - "object_oB4", - "object_horse_zelda", - "object_opening_demo1", - "object_warp1", - "object_b_heart", - "object_dekunuts", - "object_oE3", - "object_oE4", - "object_menkuri_objects", - "object_oE5", - "object_oE6", - "object_oE7", - "object_oE8", - "object_oE9", - "object_oE10", - "object_oE11", - "object_oE12", - "object_vali", - "object_oA10", - "object_oA11", - "object_mizu_objects", - "object_fhg", - "object_ossan", - "object_mori_hineri1", - "object_Bb", - "object_toki_objects", - "object_yukabyun", - "object_zl2", - "object_mjin", - "object_mjin_flash", - "object_mjin_dark", - "object_mjin_flame", - "object_mjin_ice", - "object_mjin_soul", - "object_mjin_wind", - "object_mjin_oka", - "object_haka_objects", - "object_spot06_objects", - "object_ice_objects", - "object_relay_objects", - "object_mori_hineri1a", - "object_mori_hineri2", - "object_mori_hineri2a", - "object_mori_objects", - "object_mori_tex", - "object_spot08_obj", - "object_warp2", - "object_hata", - "object_bird", - "object_wood02", - "object_lightbox", - "object_pu_box", - "object_trap", - "object_vase", - "object_im", - "object_ta", - "object_tk", - "object_xc", - "object_vm", - "object_bv", - "object_hakach_objects", - "object_efc_crystal_light", - "object_efc_fire_ball", - "object_efc_flash", - "object_efc_lgt_shower", - "object_efc_star_field", - "object_god_lgt", - "object_light_ring", - "object_triforce_spot", - "object_medal", - "object_bdan_objects", - "object_sd", - "object_rd", - "object_po_sisters", - "object_heavy_object", - "object_gndd", - "object_fd", - "object_du", - "object_fw", - "object_horse_link_child", - "object_spot02_objects", - "object_haka", - "object_ru1", - "object_syokudai", - "object_fd2", - "object_dh", - "object_rl", - "object_efc_tw", - "object_demo_tre_lgt", - "object_gi_key", - "object_mir_ray", - "object_brob", - "object_gi_jewel", - "object_spot09_obj", - "object_spot18_obj", - "object_bdoor", - "object_spot17_obj", - "object_shop_dungen", - "object_nb", - "object_mo", - "object_sb", - "object_gi_melody", - "object_gi_heart", - "object_gi_compass", - "object_gi_bosskey", - "object_gi_medal", - "object_gi_nuts", - "object_sa", - "object_gi_hearts", - "object_gi_arrowcase", - "object_gi_bombpouch", - "object_in", - "object_tr", - "object_spot16_obj", - "object_oE1s", - "object_oE4s", - "object_os_anime", - "object_gi_bottle", - "object_gi_stick", - "object_gi_map", - "object_oF1d_map", - "object_ru2", - "object_gi_shield_1", - "object_dekujr", - "object_gi_magicpot", - "object_gi_bomb_1", - "object_oF1s", - "object_ma2", - "object_gi_purse", - "object_hni", - "object_tw", - "object_rr", - "object_bxa", - "object_anubice", - "object_gi_gerudo", - "object_gi_arrow", - "object_gi_bomb_2", - "object_gi_egg", - "object_gi_scale", - "object_gi_shield_2", - "object_gi_hookshot", - "object_gi_ocarina", - "object_gi_milk", - "object_ma1", - "object_ganon", - "object_sst", - "object_ny", - "object_fr", - "object_gi_pachinko", - "object_gi_boomerang", - "object_gi_bow", - "object_gi_glasses", - "object_gi_liquid", - "object_ani", - "object_demo_6k", - "object_gi_shield_3", - "object_gi_letter", - "object_spot15_obj", - "object_jya_obj", - "object_gi_clothes", - "object_gi_bean", - "object_gi_fish", - "object_gi_saw", - "object_gi_hammer", - "object_gi_grass", - "object_gi_longsword", - "object_spot01_objects", - "object_md", - "object_km1", - "object_kw1", - "object_zo", - "object_kz", - "object_umajump", - "object_masterkokiri", - "object_masterkokirihead", - "object_mastergolon", - "object_masterzoora", - "object_aob", - "object_ik", - "object_ahg", - "object_cne", - "object_gi_niwatori", - "object_skj", - "object_gi_bottle_letter", - "object_bji", - "object_bba", - "object_gi_ocarina_0", - "object_ds", - "object_ane", - "object_boj", - "object_spot03_object", - "object_spot07_object", - "object_fz", - "object_bob", - "object_ge1", - "object_yabusame_point", - "object_gi_boots_2", - "object_gi_seed", - "object_gnd_magic", - "object_d_elevator", - "object_d_hsblock", - "object_d_lift", - "object_mamenoki", - "object_goroiwa", - "object_toryo", - "object_daiku", - "object_nwc", - "object_blkobj", - "object_gm", - "object_ms", - "object_hs", - "object_ingate", - "object_lightswitch", - "object_kusa", - "object_tsubo", - "object_gi_gloves", - "object_gi_coin", - "object_kanban", - "object_gjyo_objects", - "object_owl", - "object_mk", - "object_fu", - "object_gi_ki_tan_mask", - "object_gi_redead_mask", - "object_gi_skj_mask", - "object_gi_rabit_mask", - "object_gi_truth_mask", - "object_ganon_objects", - "object_siofuki", - "object_stream", - "object_mm", - "object_fa", - "object_os", - "object_gi_eye_lotion", - "object_gi_powder", - "object_gi_mushroom", - "object_gi_ticketstone", - "object_gi_brokensword", - "object_js", - "object_cs", - "object_gi_prescription", - "object_gi_bracelet", - "object_gi_soldout", - "object_gi_frog", - "object_mag", - "object_door_gerudo", - "object_gt", - "object_efc_erupc", - "object_zl2_anime1", - "object_zl2_anime2", - "object_gi_golonmask", - "object_gi_zoramask", - "object_gi_gerudomask", - "object_ganon2", - "object_ka", - "object_ts", - "object_zg", - "object_gi_hoverboots", - "object_gi_m_arrow", - "object_ds2", - "object_ec", - "object_fish", - "object_gi_sutaru", - "object_gi_goddess", - "object_ssh", - "object_bigokuta", - "object_bg", - "object_spot05_objects", - "object_spot12_obj", - "object_bombiwa", - "object_hintnuts", - "object_rs", - "object_spot00_break", - "object_gla", - "object_shopnuts", - "object_geldb", - "object_gr", - "object_dog", - "object_jya_iron", - "object_jya_door", - "object_spot01_objects2", - "object_spot11_obj", - "object_kibako2", - "object_dns", - "object_dnk", - "object_gi_fire", - "object_gi_insect", - "object_gi_butterfly", - "object_gi_ghost", - "object_gi_soul", - "object_bowl", - "object_po_field", - "object_demo_kekkai", - "object_efc_doughnut", - "object_gi_dekupouch", - "object_ganon_anime1", - "object_ganon_anime2", - "object_ganon_anime3", - "object_gi_rupy", - "object_spot01_matoya", - "object_spot01_matoyab", - "object_po_composer", - "object_mu", - "object_wf", - "object_skb", - "object_gj", - "object_geff", - "object_haka_door", - "object_gs", - "object_ps", - "object_bwall", - "object_crow", - "object_cow", - "object_cob", - "object_gi_sword_1", - "object_door_killer", - "object_ouke_haka", - "object_timeblock", - "object_zl4", - "g_pn_01", - "g_pn_02", - "g_pn_03", - "g_pn_04", - "g_pn_05", - "g_pn_06", - "g_pn_07", - "g_pn_08", - "g_pn_09", - "g_pn_10", - "g_pn_11", - "g_pn_12", - "g_pn_13", - "g_pn_14", - "g_pn_15", - "g_pn_16", - "g_pn_17", - "g_pn_18", - "g_pn_19", - "g_pn_20", - "g_pn_21", - "g_pn_22", - "g_pn_23", - "g_pn_24", - "g_pn_25", - "g_pn_26", - "g_pn_27", - "g_pn_28", - "g_pn_29", - "g_pn_30", - "g_pn_31", - "g_pn_32", - "g_pn_33", - "g_pn_34", - "g_pn_35", - "g_pn_36", - "g_pn_37", - "g_pn_38", - "g_pn_39", - "g_pn_40", - "g_pn_41", - "g_pn_42", - "g_pn_43", - "g_pn_44", - "g_pn_45", - "g_pn_46", - "g_pn_47", - "g_pn_48", - "g_pn_49", - "g_pn_50", - "g_pn_51", - "g_pn_52", - "g_pn_53", - "g_pn_54", - "g_pn_55", - "g_pn_56", - "g_pn_57", - "z_select_static", - "nintendo_rogo_static", - "title_static", - "parameter_static", - "vr_fine0_static", - "vr_fine0_pal_static", - "vr_fine1_static", - "vr_fine1_pal_static", - "vr_fine2_static", - "vr_fine2_pal_static", - "vr_fine3_static", - "vr_fine3_pal_static", - "vr_cloud0_static", - "vr_cloud0_pal_static", - "vr_cloud1_static", - "vr_cloud1_pal_static", - "vr_cloud2_static", - "vr_cloud2_pal_static", - "vr_cloud3_static", - "vr_cloud3_pal_static", - "vr_holy0_static", - "vr_holy0_pal_static", - "vr_holy1_static", - "vr_holy1_pal_static", - "vr_MDVR_static", - "vr_MDVR_pal_static", - "vr_MNVR_static", - "vr_MNVR_pal_static", - "vr_RUVR_static", - "vr_RUVR_pal_static", - "vr_LHVR_static", - "vr_LHVR_pal_static", - "vr_KHVR_static", - "vr_KHVR_pal_static", - "vr_K3VR_static", - "vr_K3VR_pal_static", - "vr_K4VR_static", - "vr_K4VR_pal_static", - "vr_K5VR_static", - "vr_K5VR_pal_static", - "vr_SP1a_static", - "vr_SP1a_pal_static", - "vr_MLVR_static", - "vr_MLVR_pal_static", - "vr_KKRVR_static", - "vr_KKRVR_pal_static", - "vr_KR3VR_static", - "vr_KR3VR_pal_static", - "vr_IPVR_static", - "vr_IPVR_pal_static", - "vr_KSVR_static", - "vr_KSVR_pal_static", - "vr_GLVR_static", - "vr_GLVR_pal_static", - "vr_ZRVR_static", - "vr_ZRVR_pal_static", - "vr_DGVR_static", - "vr_DGVR_pal_static", - "vr_ALVR_static", - "vr_ALVR_pal_static", - "vr_NSVR_static", - "vr_NSVR_pal_static", - "vr_LBVR_static", - "vr_LBVR_pal_static", - "vr_TTVR_static", - "vr_TTVR_pal_static", - "vr_FCVR_static", - "vr_FCVR_pal_static", - "elf_message_field", - "elf_message_ydan", - "syotes_scene", - "syotes_room_0", - "syotes2_scene", - "syotes2_room_0", - "depth_test_scene", - "depth_test_room_0", - "spot00_scene", - "spot00_room_0", - "spot01_scene", - "spot01_room_0", - "spot02_scene", - "spot02_room_0", - "spot02_room_1", - "spot03_scene", - "spot03_room_0", - "spot03_room_1", - "spot04_scene", - "spot04_room_0", - "spot04_room_1", - "spot04_room_2", - "spot05_scene", - "spot05_room_0", - "spot06_scene", - "spot06_room_0", - "spot07_scene", - "spot07_room_0", - "spot07_room_1", - "spot08_scene", - "spot08_room_0", - "spot09_scene", - "spot09_room_0", - "spot10_scene", - "spot10_room_0", - "spot10_room_1", - "spot10_room_2", - "spot10_room_3", - "spot10_room_4", - "spot10_room_5", - "spot10_room_6", - "spot10_room_7", - "spot10_room_8", - "spot10_room_9", - "spot11_scene", - "spot11_room_0", - "spot12_scene", - "spot12_room_0", - "spot12_room_1", - "spot13_scene", - "spot13_room_0", - "spot13_room_1", - "spot15_scene", - "spot15_room_0", - "spot16_scene", - "spot16_room_0", - "spot17_scene", - "spot17_room_0", - "spot17_room_1", - "spot18_scene", - "spot18_room_0", - "spot18_room_1", - "spot18_room_2", - "spot18_room_3", - "ydan_scene", - "ydan_room_0", - "ydan_room_1", - "ydan_room_2", - "ydan_room_3", - "ydan_room_4", - "ydan_room_5", - "ydan_room_6", - "ydan_room_7", - "ydan_room_8", - "ydan_room_9", - "ydan_room_10", - "ydan_room_11", - "ddan_scene", - "ddan_room_0", - "ddan_room_1", - "ddan_room_2", - "ddan_room_3", - "ddan_room_4", - "ddan_room_5", - "ddan_room_6", - "ddan_room_7", - "ddan_room_8", - "ddan_room_9", - "ddan_room_10", - "ddan_room_11", - "ddan_room_12", - "ddan_room_13", - "ddan_room_14", - "ddan_room_15", - "ddan_room_16", - "bdan_scene", - "bdan_room_0", - "bdan_room_1", - "bdan_room_2", - "bdan_room_3", - "bdan_room_4", - "bdan_room_5", - "bdan_room_6", - "bdan_room_7", - "bdan_room_8", - "bdan_room_9", - "bdan_room_10", - "bdan_room_11", - "bdan_room_12", - "bdan_room_13", - "bdan_room_14", - "bdan_room_15", - "Bmori1_scene", - "Bmori1_room_0", - "Bmori1_room_1", - "Bmori1_room_2", - "Bmori1_room_3", - "Bmori1_room_4", - "Bmori1_room_5", - "Bmori1_room_6", - "Bmori1_room_7", - "Bmori1_room_8", - "Bmori1_room_9", - "Bmori1_room_10", - "Bmori1_room_11", - "Bmori1_room_12", - "Bmori1_room_13", - "Bmori1_room_14", - "Bmori1_room_15", - "Bmori1_room_16", - "Bmori1_room_17", - "Bmori1_room_18", - "Bmori1_room_19", - "Bmori1_room_20", - "Bmori1_room_21", - "Bmori1_room_22", - "HIDAN_scene", - "HIDAN_room_0", - "HIDAN_room_1", - "HIDAN_room_2", - "HIDAN_room_3", - "HIDAN_room_4", - "HIDAN_room_5", - "HIDAN_room_6", - "HIDAN_room_7", - "HIDAN_room_8", - "HIDAN_room_9", - "HIDAN_room_10", - "HIDAN_room_11", - "HIDAN_room_12", - "HIDAN_room_13", - "HIDAN_room_14", - "HIDAN_room_15", - "HIDAN_room_16", - "HIDAN_room_17", - "HIDAN_room_18", - "HIDAN_room_19", - "HIDAN_room_20", - "HIDAN_room_21", - "HIDAN_room_22", - "HIDAN_room_23", - "HIDAN_room_24", - "HIDAN_room_25", - "HIDAN_room_26", - "MIZUsin_scene", - "MIZUsin_room_0", - "MIZUsin_room_1", - "MIZUsin_room_2", - "MIZUsin_room_3", - "MIZUsin_room_4", - "MIZUsin_room_5", - "MIZUsin_room_6", - "MIZUsin_room_7", - "MIZUsin_room_8", - "MIZUsin_room_9", - "MIZUsin_room_10", - "MIZUsin_room_11", - "MIZUsin_room_12", - "MIZUsin_room_13", - "MIZUsin_room_14", - "MIZUsin_room_15", - "MIZUsin_room_16", - "MIZUsin_room_17", - "MIZUsin_room_18", - "MIZUsin_room_19", - "MIZUsin_room_20", - "MIZUsin_room_21", - "MIZUsin_room_22", - "jyasinzou_scene", - "jyasinzou_room_0", - "jyasinzou_room_1", - "jyasinzou_room_2", - "jyasinzou_room_3", - "jyasinzou_room_4", - "jyasinzou_room_5", - "jyasinzou_room_6", - "jyasinzou_room_7", - "jyasinzou_room_8", - "jyasinzou_room_9", - "jyasinzou_room_10", - "jyasinzou_room_11", - "jyasinzou_room_12", - "jyasinzou_room_13", - "jyasinzou_room_14", - "jyasinzou_room_15", - "jyasinzou_room_16", - "jyasinzou_room_17", - "jyasinzou_room_18", - "jyasinzou_room_19", - "jyasinzou_room_20", - "jyasinzou_room_21", - "jyasinzou_room_22", - "jyasinzou_room_23", - "jyasinzou_room_24", - "jyasinzou_room_25", - "jyasinzou_room_26", - "jyasinzou_room_27", - "jyasinzou_room_28", - "HAKAdan_scene", - "HAKAdan_room_0", - "HAKAdan_room_1", - "HAKAdan_room_2", - "HAKAdan_room_3", - "HAKAdan_room_4", - "HAKAdan_room_5", - "HAKAdan_room_6", - "HAKAdan_room_7", - "HAKAdan_room_8", - "HAKAdan_room_9", - "HAKAdan_room_10", - "HAKAdan_room_11", - "HAKAdan_room_12", - "HAKAdan_room_13", - "HAKAdan_room_14", - "HAKAdan_room_15", - "HAKAdan_room_16", - "HAKAdan_room_17", - "HAKAdan_room_18", - "HAKAdan_room_19", - "HAKAdan_room_20", - "HAKAdan_room_21", - "HAKAdan_room_22", - "HAKAdanCH_scene", - "HAKAdanCH_room_0", - "HAKAdanCH_room_1", - "HAKAdanCH_room_2", - "HAKAdanCH_room_3", - "HAKAdanCH_room_4", - "HAKAdanCH_room_5", - "HAKAdanCH_room_6", - "ice_doukutu_scene", - "ice_doukutu_room_0", - "ice_doukutu_room_1", - "ice_doukutu_room_2", - "ice_doukutu_room_3", - "ice_doukutu_room_4", - "ice_doukutu_room_5", - "ice_doukutu_room_6", - "ice_doukutu_room_7", - "ice_doukutu_room_8", - "ice_doukutu_room_9", - "ice_doukutu_room_10", - "ice_doukutu_room_11", - "men_scene", - "men_room_0", - "men_room_1", - "men_room_2", - "men_room_3", - "men_room_4", - "men_room_5", - "men_room_6", - "men_room_7", - "men_room_8", - "men_room_9", - "men_room_10", - "ganontika_scene", - "ganontika_room_0", - "ganontika_room_1", - "ganontika_room_2", - "ganontika_room_3", - "ganontika_room_4", - "ganontika_room_5", - "ganontika_room_6", - "ganontika_room_7", - "ganontika_room_8", - "ganontika_room_9", - "ganontika_room_10", - "ganontika_room_11", - "ganontika_room_12", - "ganontika_room_13", - "ganontika_room_14", - "ganontika_room_15", - "ganontika_room_16", - "ganontika_room_17", - "ganontika_room_18", - "ganontika_room_19", - "market_day_scene", - "market_day_room_0", - "market_night_scene", - "market_night_room_0", - "testroom_scene", - "testroom_room_0", - "testroom_room_1", - "testroom_room_2", - "testroom_room_3", - "testroom_room_4", - "kenjyanoma_scene", - "kenjyanoma_room_0", - "tokinoma_scene", - "tokinoma_room_0", - "tokinoma_room_1", - "sutaru_scene", - "sutaru_room_0", - "link_home_scene", - "link_home_room_0", - "kokiri_shop_scene", - "kokiri_shop_room_0", - "kokiri_home_scene", - "kokiri_home_room_0", - "kakusiana_scene", - "kakusiana_room_0", - "kakusiana_room_1", - "kakusiana_room_2", - "kakusiana_room_3", - "kakusiana_room_4", - "kakusiana_room_5", - "kakusiana_room_6", - "kakusiana_room_7", - "kakusiana_room_8", - "kakusiana_room_9", - "kakusiana_room_10", - "kakusiana_room_11", - "kakusiana_room_12", - "kakusiana_room_13", - "entra_scene", - "entra_room_0", - "moribossroom_scene", - "moribossroom_room_0", - "moribossroom_room_1", - "syatekijyou_scene", - "syatekijyou_room_0", - "shop1_scene", - "shop1_room_0", - "hairal_niwa_scene", - "hairal_niwa_room_0", - "ganon_tou_scene", - "ganon_tou_room_0", - "sasatest_scene", - "sasatest_room_0", - "market_alley_scene", - "market_alley_room_0", - "spot20_scene", - "spot20_room_0", - "market_ruins_scene", - "market_ruins_room_0", - "entra_n_scene", - "entra_n_room_0", - "enrui_scene", - "enrui_room_0", - "market_alley_n_scene", - "market_alley_n_room_0", - "hiral_demo_scene", - "hiral_demo_room_0", - "kokiri_home3_scene", - "kokiri_home3_room_0", - "malon_stable_scene", - "malon_stable_room_0", - "kakariko_scene", - "kakariko_room_0", - "bdan_boss_scene", - "bdan_boss_room_0", - "bdan_boss_room_1", - "FIRE_bs_scene", - "FIRE_bs_room_0", - "FIRE_bs_room_1", - "hut_scene", - "hut_room_0", - "daiyousei_izumi_scene", - "daiyousei_izumi_room_0", - "hakaana_scene", - "hakaana_room_0", - "yousei_izumi_tate_scene", - "yousei_izumi_tate_room_0", - "yousei_izumi_yoko_scene", - "yousei_izumi_yoko_room_0", - "golon_scene", - "golon_room_0", - "zoora_scene", - "zoora_room_0", - "drag_scene", - "drag_room_0", - "alley_shop_scene", - "alley_shop_room_0", - "night_shop_scene", - "night_shop_room_0", - "impa_scene", - "impa_room_0", - "labo_scene", - "labo_room_0", - "tent_scene", - "tent_room_0", - "nakaniwa_scene", - "nakaniwa_room_0", - "ddan_boss_scene", - "ddan_boss_room_0", - "ddan_boss_room_1", - "ydan_boss_scene", - "ydan_boss_room_0", - "ydan_boss_room_1", - "HAKAdan_bs_scene", - "HAKAdan_bs_room_0", - "HAKAdan_bs_room_1", - "MIZUsin_bs_scene", - "MIZUsin_bs_room_0", - "MIZUsin_bs_room_1", - "ganon_scene", - "ganon_room_0", - "ganon_room_1", - "ganon_room_2", - "ganon_room_3", - "ganon_room_4", - "ganon_room_5", - "ganon_room_6", - "ganon_room_7", - "ganon_room_8", - "ganon_room_9", - "ganon_boss_scene", - "ganon_boss_room_0", - "jyasinboss_scene", - "jyasinboss_room_0", - "jyasinboss_room_1", - "jyasinboss_room_2", - "jyasinboss_room_3", - "kokiri_home4_scene", - "kokiri_home4_room_0", - "kokiri_home5_scene", - "kokiri_home5_room_0", - "ganon_final_scene", - "ganon_final_room_0", - "kakariko3_scene", - "kakariko3_room_0", - "hairal_niwa2_scene", - "hairal_niwa2_room_0", - "hakasitarelay_scene", - "hakasitarelay_room_0", - "hakasitarelay_room_1", - "hakasitarelay_room_2", - "hakasitarelay_room_3", - "hakasitarelay_room_4", - "hakasitarelay_room_5", - "hakasitarelay_room_6", - "shrine_scene", - "shrine_room_0", - "turibori_scene", - "turibori_room_0", - "shrine_n_scene", - "shrine_n_room_0", - "shrine_r_scene", - "shrine_r_room_0", - "hakaana2_scene", - "hakaana2_room_0", - "gerudoway_scene", - "gerudoway_room_0", - "gerudoway_room_1", - "gerudoway_room_2", - "gerudoway_room_3", - "gerudoway_room_4", - "gerudoway_room_5", - "hairal_niwa_n_scene", - "hairal_niwa_n_room_0", - "bowling_scene", - "bowling_room_0", - "hakaana_ouke_scene", - "hakaana_ouke_room_0", - "hakaana_ouke_room_1", - "hakaana_ouke_room_2", - "hylia_labo_scene", - "hylia_labo_room_0", - "souko_scene", - "souko_room_0", - "souko_room_1", - "souko_room_2", - "miharigoya_scene", - "miharigoya_room_0", - "mahouya_scene", - "mahouya_room_0", - "takaraya_scene", - "takaraya_room_0", - "takaraya_room_1", - "takaraya_room_2", - "takaraya_room_3", - "takaraya_room_4", - "takaraya_room_5", - "takaraya_room_6", - "ganon_sonogo_scene", - "ganon_sonogo_room_0", - "ganon_sonogo_room_1", - "ganon_sonogo_room_2", - "ganon_sonogo_room_3", - "ganon_sonogo_room_4", - "ganon_demo_scene", - "ganon_demo_room_0", - "besitu_scene", - "besitu_room_0", - "face_shop_scene", - "face_shop_room_0", - "kinsuta_scene", - "kinsuta_room_0", - "ganontikasonogo_scene", - "ganontikasonogo_room_0", - "ganontikasonogo_room_1", - "test01_scene", - "test01_room_0", - "bump_texture_static", - "anime_model_1_static", - "anime_model_2_static", - "anime_model_3_static", - "anime_model_4_static", - "anime_model_5_static", - "anime_model_6_static", - "anime_texture_1_static", - "anime_texture_2_static", - "anime_texture_3_static", - "anime_texture_4_static", - "anime_texture_5_static", - "anime_texture_6_static", - "softsprite_matrix_static", +// dmadata filenames +#define DEFINE_DMA_ENTRY(name) #name, + +const char* sDmaMgrFileNames[] = { +#include "tables/dmadata_table.h" }; +#undef DEFINE_DMA_ENTRY + s32 DmaMgr_CompareName(const char* name1, const char* name2) { while (*name1 != 0u) { if (*name1 > *name2) { diff --git a/src/dmadata/dmadata.c b/src/dmadata/dmadata.c new file mode 100644 index 0000000000..1db30b385a --- /dev/null +++ b/src/dmadata/dmadata.c @@ -0,0 +1,24 @@ +#include "z64dma.h" + +// Linker symbol declarations (used in the table below) +#define DEFINE_DMA_ENTRY(name) \ + extern u8 _##name##SegmentRomStart[]; \ + extern u8 _##name##SegmentRomEnd[]; + +#include "tables/dmadata_table.h" + +#undef DEFINE_DMA_ENTRY + +// dmadata Table definition +#define DEFINE_DMA_ENTRY(name) \ + { (u32)_##name##SegmentRomStart, (u32)_##name##SegmentRomEnd, (u32)_##name##SegmentRomStart, 0 }, + +DmaEntry gDmaDataTable[] = { +#include "tables/dmadata_table.h" + { 0 }, +}; + +#undef DEFINE_DMA_ENTRY + +// Additional padding? +u8 sDmaDataPadding[0xF0] = { 0 }; diff --git a/tools/.gitignore b/tools/.gitignore index 3900e427a4..e656d33ec0 100644 --- a/tools/.gitignore +++ b/tools/.gitignore @@ -1,9 +1,10 @@ # Output files *.exe -yaz0 -makeromfs elf2rom +makeromfs +mkdmadata mkldscript vtxdis +yaz0 graphovl/ diff --git a/tools/Makefile b/tools/Makefile index d0af5c3715..5356fd8909 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -1,5 +1,5 @@ CFLAGS := -Wall -Wextra -pedantic -std=c99 -g -O2 -PROGRAMS := yaz0 makeromfs elf2rom mkldscript vtxdis +PROGRAMS := elf2rom makeromfs mkdmadata mkldscript vtxdis yaz0 ifeq ($(shell command -v clang >/dev/null 2>&1; echo $$?),0) CC := clang @@ -28,11 +28,12 @@ distclean: clean .PHONY: all clean distclean -mkldscript_SOURCES := mkldscript.c util.c elf2rom_SOURCES := elf2rom.c elf32.c n64chksum.c util.c -yaz0_SOURCES := yaz0tool.c yaz0.c util.c makeromfs_SOURCES := makeromfs.c n64chksum.c util.c -vtxdis_SOURCES := vtxdis.c +mkdmadata_SOURCES := mkdmadata.c spec.c util.c +mkldscript_SOURCES := mkldscript.c spec.c util.c +vtxdis_SOURCES := vtxdis.c +yaz0_SOURCES := yaz0tool.c yaz0.c util.c define COMPILE = $(1): $($1_SOURCES) diff --git a/tools/mkdmadata.c b/tools/mkdmadata.c new file mode 100644 index 0000000000..134cdd316a --- /dev/null +++ b/tools/mkdmadata.c @@ -0,0 +1,55 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "spec.h" +#include "util.h" + +struct Segment* g_segments; +int g_segmentsCount; + +static void write_dmadata_table(FILE *fout) +{ + int i; + + for (i = 0; i < g_segmentsCount; i++) + fprintf(fout, "DEFINE_DMA_ENTRY(%s)\n", g_segments[i].name); +} + +static void usage(const char *execname) +{ + fprintf(stderr, "zelda64 dmadata generation tool v0.01\n" + "usage: %s SPEC_FILE DMADATA_TABLE\n" + "SPEC_FILE file describing the organization of object files into segments\n" + "DMADATA_TABLE filename of output dmadata table header\n", + execname); +} + +int main(int argc, char **argv) +{ + FILE *dmaout; + void *spec; + size_t size; + + if (argc != 3) + { + usage(argv[0]); + return 1; + } + + spec = util_read_whole_file(argv[1], &size); + parse_rom_spec(spec, &g_segments, &g_segmentsCount); + + dmaout = fopen(argv[2], "w"); + if (dmaout == NULL) + util_fatal_error("failed to open file '%s' for writing", argv[2]); + write_dmadata_table(dmaout); + fclose(dmaout); + free(spec); + + return 0; +} diff --git a/tools/mkldscript.c b/tools/mkldscript.c index 54278fd6c1..c8424f8223 100644 --- a/tools/mkldscript.c +++ b/tools/mkldscript.c @@ -6,325 +6,13 @@ #include #include +#include "spec.h" #include "util.h" -#define ARRAY_COUNT(arr) (sizeof(arr) / sizeof(arr[0])) +struct Segment *g_segments; +int g_segmentsCount; -static FILE *fout; - -enum -{ - STMT_address, - STMT_after, - STMT_align, - STMT_beginseg, - STMT_endseg, - STMT_entry, - STMT_flags, - STMT_include, - STMT_include_data_with_rodata, - STMT_name, - STMT_number, - STMT_romalign, - STMT_stack, - STMT_increment, - STMT_pad_text, -}; - -enum -{ - FLAG_BOOT = (1 << 0), - FLAG_OBJECT = (1 << 1), - FLAG_RAW = (1 << 2), -}; - -struct Include -{ - char *fpath; - int linkerPadding; - uint8_t dataWithRodata; -}; - -struct Segment -{ - uint32_t fields; - char *name; - char *after; - uint32_t flags; - uint32_t address; - uint32_t stack; - uint32_t align; - uint32_t romalign; - uint32_t increment; - uint32_t entry; - uint32_t number; - struct Include *includes; - int includesCount; -}; - -static struct Segment *g_segments = NULL; -static int g_segmentsCount = 0; - -static struct Segment *add_segment(void) -{ - struct Segment *seg; - - g_segmentsCount++; - g_segments = realloc(g_segments, g_segmentsCount * sizeof(*g_segments)); - - seg = &g_segments[g_segmentsCount - 1]; - memset(seg, 0, sizeof(*seg)); - - seg->align = 16; - - return seg; -} - -static char *skip_whitespace(char *str) -{ - while (isspace(*str)) - str++; - return str; -} - -// null terminates the current token and returns a pointer to the next token -static char *token_split(char *str) -{ - while (!isspace(*str)) - { - if (*str == 0) - return str; // end of string - str++; - } - *str = 0; // terminate token - str++; - - return skip_whitespace(str); -} - -// null terminates the current line and returns a pointer to the next line -static char *line_split(char *str) -{ - while (*str != '\n') - { - if (*str == 0) - return str; // end of string - str++; - } - *str = 0; // terminate line - return str + 1; -} - -static bool parse_number(const char *str, unsigned int *num) -{ - char *endptr; - long int n = strtol(str, &endptr, 0); - *num = n; - return endptr > str; -} - -static bool parse_flags(char *str, unsigned int *flags) -{ - unsigned int f = 0; - - while (str[0] != 0) - { - char *next = token_split(str); - - if (strcmp(str, "BOOT") == 0) - f |= FLAG_BOOT; - else if (strcmp(str, "OBJECT") == 0) - f |= FLAG_OBJECT; - else if (strcmp(str, "RAW") == 0) - f |= FLAG_RAW; - else - return false; - - str = next; - } - *flags = f; - return true; -} - -static bool parse_quoted_string(char *str, char **out) -{ - if (*str != '"') - return false; - - str++; - *out = str; - - while (*str != '"') - { - if (*str == 0) - return false; // unterminated quote - str++; - } - *str = 0; - str++; - - str = skip_whitespace(str); - if (*str != 0) - return false; // garbage after filename - - return true; -} - -static bool is_pow_of_2(unsigned int n) -{ - return (n & (n - 1)) == 0; -} - -static const char *const stmtNames[] = -{ - [STMT_address] = "address", - [STMT_after] = "after", - [STMT_align] = "align", - [STMT_beginseg] = "beginseg", - [STMT_endseg] = "endseg", - [STMT_entry] = "entry", - [STMT_flags] = "flags", - [STMT_include] = "include", - [STMT_include_data_with_rodata] = "include_data_with_rodata", - [STMT_name] = "name", - [STMT_number] = "number", - [STMT_romalign] = "romalign", - [STMT_stack] = "stack", - [STMT_increment] = "increment", - [STMT_pad_text] = "pad_text", -}; - -static void parse_rom_spec(char *spec) -{ - int lineNum = 1; - char *line = spec; - - struct Segment *currSeg = NULL; - - // iterate over lines - while (line[0] != 0) - { - char *nextLine = line_split(line); - char* stmtName; - - if (line[0] != 0) - { - stmtName = skip_whitespace(line); - } - - if (line[0] != 0 && stmtName[0] != 0) - { - char *args = token_split(stmtName); - unsigned int stmt; - - for (stmt = 0; stmt < ARRAY_COUNT(stmtNames); stmt++) - if (strcmp(stmtName, stmtNames[stmt]) == 0) - goto got_stmt; - util_fatal_error("line %i: unknown statement '%s'", lineNum, stmtName); - got_stmt: - - if (currSeg != NULL) - { - // ensure no duplicates (except for 'include' or 'pad_text') - if (stmt != STMT_include && stmt != STMT_include_data_with_rodata && stmt != STMT_pad_text && - (currSeg->fields & (1 << stmt))) - util_fatal_error("line %i: duplicate '%s' statement", lineNum, stmtName); - - currSeg->fields |= 1 << stmt; - - // statements valid within a segment definition - switch (stmt) - { - case STMT_beginseg: - util_fatal_error("line %i: '%s' inside of a segment definition", lineNum, stmtName); - break; - case STMT_endseg: - // verify segment data - if (currSeg->name == NULL) - util_fatal_error("line %i: no name specified for segment", lineNum); - if (currSeg->includesCount == 0) - util_fatal_error("line %i: no includes specified for segment", lineNum); - currSeg = NULL; - break; - case STMT_name: - if (!parse_quoted_string(args, &currSeg->name)) - util_fatal_error("line %i: invalid name", lineNum); - break; - case STMT_after: - if (!parse_quoted_string(args, &currSeg->after)) - util_fatal_error("line %i: invalid name for 'after'", lineNum); - break; - case STMT_address: - if (!parse_number(args, &currSeg->address)) - util_fatal_error("line %i: expected number after 'address'", lineNum); - break; - case STMT_number: - if (!parse_number(args, &currSeg->number)) - util_fatal_error("line %i: expected number after 'number'", lineNum); - break; - case STMT_flags: - if (!parse_flags(args, &currSeg->flags)) - util_fatal_error("line %i: invalid flags", lineNum); - break; - case STMT_align: - if (!parse_number(args, &currSeg->align)) - util_fatal_error("line %i: expected number after 'align'", lineNum); - if (!is_pow_of_2(currSeg->align)) - util_fatal_error("line %i: alignment is not a power of two", lineNum); - break; - case STMT_romalign: - if (!parse_number(args, &currSeg->romalign)) - util_fatal_error("line %i: expected number after 'romalign'", lineNum); - if (!is_pow_of_2(currSeg->romalign)) - util_fatal_error("line %i: alignment is not a power of two", lineNum); - break; - case STMT_include: - case STMT_include_data_with_rodata: - currSeg->includesCount++; - currSeg->includes = realloc(currSeg->includes, currSeg->includesCount * sizeof(*currSeg->includes)); - - if (!parse_quoted_string(args, &currSeg->includes[currSeg->includesCount - 1].fpath)) - util_fatal_error("line %i: invalid filename", lineNum); - - currSeg->includes[currSeg->includesCount - 1].linkerPadding = 0; - currSeg->includes[currSeg->includesCount - 1].dataWithRodata = (stmt == STMT_include_data_with_rodata); - break; - case STMT_increment: - if (!parse_number(args, &currSeg->increment)) - util_fatal_error("line %i: expected number after 'increment'", lineNum); - break; - case STMT_pad_text: - currSeg->includes[currSeg->includesCount - 1].linkerPadding += 0x10; - break; - default: - fprintf(stderr, "warning: '%s' is not implemented\n", stmtName); - break; - } - } - else - { - // commands valid outside a segment definition - switch (stmt) - { - case STMT_beginseg: - currSeg = add_segment(); - break; - case STMT_endseg: - util_fatal_error("line %i: '%s' outside of a segment definition", lineNum, stmtName); - break; - default: - fprintf(stderr, "warning: '%s' is not implemented\n", stmtName); - break; - } - } - } - - line = nextLine; - lineNum++; - } -} - -static void write_ld_script(void) +static void write_ld_script(FILE *fout) { int i; int j; @@ -436,14 +124,14 @@ static void write_ld_script(void) fprintf(fout, " _%sSegmentSDataEnd = .;\n", seg->name); - fprintf(fout, " _%sSegmentOvlStart = .;\n", seg->name); + fprintf(fout, " _%sSegmentOvlStart = .;\n", seg->name); - for (j = 0; j < seg->includesCount; j++) - fprintf(fout, " %s (.ovl)\n", seg->includes[j].fpath); + for (j = 0; j < seg->includesCount; j++) + fprintf(fout, " %s (.ovl)\n", seg->includes[j].fpath); - fprintf(fout, " . = ALIGN(0x10);\n"); + fprintf(fout, " . = ALIGN(0x10);\n"); - fprintf(fout, " _%sSegmentOvlEnd = .;\n", seg->name); + fprintf(fout, " _%sSegmentOvlEnd = .;\n", seg->name); if (seg->fields & (1 << STMT_increment)) fprintf(fout, " . += 0x%08X;\n", seg->increment); @@ -489,20 +177,20 @@ static void write_ld_script(void) //if (seg->fields & (1 << STMT_increment)) //fprintf(fout, " . += 0x%08X;\n", seg->increment); - //fprintf(fout, " ..%s.ovl ADDR(..%s) + SIZEOF(..%s) :\n" - // /*" ..%s.bss :\n"*/ - // " {\n", - // seg->name, seg->name, seg->name); - //fprintf(fout, " _%sSegmentOvlStart = .;\n", seg->name); + //fprintf(fout, " ..%s.ovl ADDR(..%s) + SIZEOF(..%s) :\n" + // /*" ..%s.bss :\n"*/ + // " {\n", + // seg->name, seg->name, seg->name); + //fprintf(fout, " _%sSegmentOvlStart = .;\n", seg->name); - //for (j = 0; j < seg->includesCount; j++) - // fprintf(fout, " %s (.ovl)\n", seg->includes[j].fpath); + //for (j = 0; j < seg->includesCount; j++) + // fprintf(fout, " %s (.ovl)\n", seg->includes[j].fpath); - ////fprintf(fout, " . = ALIGN(0x10);\n"); + ////fprintf(fout, " . = ALIGN(0x10);\n"); - //fprintf(fout, " _%sSegmentOvlEnd = .;\n", seg->name); + //fprintf(fout, " _%sSegmentOvlEnd = .;\n", seg->name); - //fprintf(fout, "\n }\n"); + //fprintf(fout, "\n }\n"); } @@ -511,32 +199,35 @@ static void write_ld_script(void) static void usage(const char *execname) { - fprintf(stderr, "Nintendo 64 linker script generation tool v0.01\n" + fprintf(stderr, "Nintendo 64 linker script generation tool v0.02\n" "usage: %s SPEC_FILE LD_SCRIPT\n" - "SPEC_FILE file describing the organization of object files into segments\n" - "LD_SCRIPT filename of output linker script\n", + "SPEC_FILE file describing the organization of object files into segments\n" + "LD_SCRIPT filename of output linker script\n", execname); } int main(int argc, char **argv) { - void *spec; - size_t size; + FILE *ldout; + void *spec; + size_t size; - if (argc != 3) - { - usage(argv[0]); - return 1; - } + if (argc != 3) + { + usage(argv[0]); + return 1; + } - spec = util_read_whole_file(argv[1], &size); - parse_rom_spec(spec); - fout = fopen(argv[2], "w"); - if (fout == NULL) - util_fatal_error("failed to open file '%s' for writing", argv[2]); - write_ld_script(); - free(spec); - fclose(fout); + spec = util_read_whole_file(argv[1], &size); + parse_rom_spec(spec, &g_segments, &g_segmentsCount); - return 0; + ldout = fopen(argv[2], "w"); + if (ldout == NULL) + util_fatal_error("failed to open file '%s' for writing", argv[2]); + write_ld_script(ldout); + fclose(ldout); + + free(spec); + + return 0; } diff --git a/tools/spec.c b/tools/spec.c new file mode 100644 index 0000000000..06e0f6a808 --- /dev/null +++ b/tools/spec.c @@ -0,0 +1,284 @@ +#include +#include +#include +#include +#include +#include +#include + +#include "util.h" +#include "spec.h" + +#define ARRAY_COUNT(arr) (sizeof(arr) / sizeof(arr[0])) + +static struct Segment *add_segment(struct Segment **segments, int *segments_count) +{ + struct Segment *seg; + + (*segments_count)++; + *segments = realloc(*segments, *segments_count * sizeof(**segments)); + + seg = &(*segments)[*segments_count - 1]; + memset(seg, 0, sizeof(*seg)); + + seg->align = 16; + + return seg; +} + +static char *skip_whitespace(char *str) +{ + while (isspace(*str)) + str++; + return str; +} + +// null terminates the current token and returns a pointer to the next token +static char *token_split(char *str) +{ + while (!isspace(*str)) + { + if (*str == 0) + return str; // end of string + str++; + } + *str = 0; // terminate token + str++; + + return skip_whitespace(str); +} + +// null terminates the current line and returns a pointer to the next line +static char *line_split(char *str) +{ + while (*str != '\n') + { + if (*str == 0) + return str; // end of string + str++; + } + *str = 0; // terminate line + return str + 1; +} + +static bool parse_number(const char *str, unsigned int *num) +{ + char *endptr; + long int n = strtol(str, &endptr, 0); + *num = n; + return endptr > str; +} + +static bool parse_flags(char *str, unsigned int *flags) +{ + unsigned int f = 0; + + while (str[0] != 0) + { + char *next = token_split(str); + + if (strcmp(str, "BOOT") == 0) + f |= FLAG_BOOT; + else if (strcmp(str, "OBJECT") == 0) + f |= FLAG_OBJECT; + else if (strcmp(str, "RAW") == 0) + f |= FLAG_RAW; + else + return false; + + str = next; + } + *flags = f; + return true; +} + +static bool parse_quoted_string(char *str, char **out) +{ + if (*str != '"') + return false; + + str++; + *out = str; + + while (*str != '"') + { + if (*str == 0) + return false; // unterminated quote + str++; + } + *str = 0; + str++; + + str = skip_whitespace(str); + if (*str != 0) + return false; // garbage after filename + + return true; +} + +static bool is_pow_of_2(unsigned int n) +{ + return (n & (n - 1)) == 0; +} + +static const char *const stmtNames[] = +{ + [STMT_address] = "address", + [STMT_after] = "after", + [STMT_align] = "align", + [STMT_beginseg] = "beginseg", + [STMT_endseg] = "endseg", + [STMT_entry] = "entry", + [STMT_flags] = "flags", + [STMT_include] = "include", + [STMT_include_data_with_rodata] = "include_data_with_rodata", + [STMT_name] = "name", + [STMT_number] = "number", + [STMT_romalign] = "romalign", + [STMT_stack] = "stack", + [STMT_increment] = "increment", + [STMT_pad_text] = "pad_text", +}; + +void parse_rom_spec(char *spec, struct Segment **segments, int *segment_count) +{ + int lineNum = 1; + char *line = spec; + + struct Segment *currSeg = NULL; + + // iterate over lines + while (line[0] != 0) + { + char *nextLine = line_split(line); + char* stmtName; + + if (line[0] != 0) + { + stmtName = skip_whitespace(line); + } + + if (line[0] != 0 && stmtName[0] != 0) + { + char *args = token_split(stmtName); + unsigned int stmt; + + for (stmt = 0; stmt < ARRAY_COUNT(stmtNames); stmt++) + if (strcmp(stmtName, stmtNames[stmt]) == 0) + goto got_stmt; + util_fatal_error("line %i: unknown statement '%s'", lineNum, stmtName); + got_stmt: + + if (currSeg != NULL) + { + // ensure no duplicates (except for 'include' or 'pad_text') + if (stmt != STMT_include && stmt != STMT_include_data_with_rodata && stmt != STMT_pad_text && + (currSeg->fields & (1 << stmt))) + util_fatal_error("line %i: duplicate '%s' statement", lineNum, stmtName); + + currSeg->fields |= 1 << stmt; + + // statements valid within a segment definition + switch (stmt) + { + case STMT_beginseg: + util_fatal_error("line %i: '%s' inside of a segment definition", lineNum, stmtName); + break; + case STMT_endseg: + // verify segment data + if (currSeg->name == NULL) + util_fatal_error("line %i: no name specified for segment", lineNum); + if (currSeg->includesCount == 0) + util_fatal_error("line %i: no includes specified for segment", lineNum); + currSeg = NULL; + break; + case STMT_name: + if (!parse_quoted_string(args, &currSeg->name)) + util_fatal_error("line %i: invalid name", lineNum); + break; + case STMT_after: + if (!parse_quoted_string(args, &currSeg->after)) + util_fatal_error("line %i: invalid name for 'after'", lineNum); + break; + case STMT_address: + if (!parse_number(args, &currSeg->address)) + util_fatal_error("line %i: expected number after 'address'", lineNum); + break; + case STMT_number: + if (!parse_number(args, &currSeg->number)) + util_fatal_error("line %i: expected number after 'number'", lineNum); + break; + case STMT_flags: + if (!parse_flags(args, &currSeg->flags)) + util_fatal_error("line %i: invalid flags", lineNum); + break; + case STMT_align: + if (!parse_number(args, &currSeg->align)) + util_fatal_error("line %i: expected number after 'align'", lineNum); + if (!is_pow_of_2(currSeg->align)) + util_fatal_error("line %i: alignment is not a power of two", lineNum); + break; + case STMT_romalign: + if (!parse_number(args, &currSeg->romalign)) + util_fatal_error("line %i: expected number after 'romalign'", lineNum); + if (!is_pow_of_2(currSeg->romalign)) + util_fatal_error("line %i: alignment is not a power of two", lineNum); + break; + case STMT_include: + case STMT_include_data_with_rodata: + currSeg->includesCount++; + currSeg->includes = realloc(currSeg->includes, currSeg->includesCount * sizeof(*currSeg->includes)); + + if (!parse_quoted_string(args, &currSeg->includes[currSeg->includesCount - 1].fpath)) + util_fatal_error("line %i: invalid filename", lineNum); + + currSeg->includes[currSeg->includesCount - 1].linkerPadding = 0; + currSeg->includes[currSeg->includesCount - 1].dataWithRodata = (stmt == STMT_include_data_with_rodata); + break; + case STMT_increment: + if (!parse_number(args, &currSeg->increment)) + util_fatal_error("line %i: expected number after 'increment'", lineNum); + break; + case STMT_pad_text: + currSeg->includes[currSeg->includesCount - 1].linkerPadding += 0x10; + break; + default: + fprintf(stderr, "warning: '%s' is not implemented\n", stmtName); + break; + } + } + else + { + // commands valid outside a segment definition + switch (stmt) + { + case STMT_beginseg: + currSeg = add_segment(segments, segment_count); + currSeg->includes = NULL; + break; + case STMT_endseg: + util_fatal_error("line %i: '%s' outside of a segment definition", lineNum, stmtName); + break; + default: + fprintf(stderr, "warning: '%s' is not implemented\n", stmtName); + break; + } + } + } + + line = nextLine; + lineNum++; + } +} + +void free_rom_spec(struct Segment *segments, int segment_count) +{ + int i; + + for (i = 0; i < segment_count; i++) + { + if (segments[i].includes != NULL) + free(segments[i].includes); + } + free(segments); +} diff --git a/tools/spec.h b/tools/spec.h new file mode 100644 index 0000000000..9f2164fd7b --- /dev/null +++ b/tools/spec.h @@ -0,0 +1,58 @@ +#ifndef _SPEC_H_ +#define _SPEC_H_ + +enum +{ + STMT_address, + STMT_after, + STMT_align, + STMT_beginseg, + STMT_endseg, + STMT_entry, + STMT_flags, + STMT_include, + STMT_include_data_with_rodata, + STMT_name, + STMT_number, + STMT_romalign, + STMT_stack, + STMT_increment, + STMT_pad_text, +}; + +enum +{ + FLAG_BOOT = (1 << 0), + FLAG_OBJECT = (1 << 1), + FLAG_RAW = (1 << 2), +}; + +struct Include +{ + char *fpath; + int linkerPadding; + uint8_t dataWithRodata; +}; + +struct Segment +{ + uint32_t fields; + char *name; + char *after; + uint32_t flags; + uint32_t address; + uint32_t stack; + uint32_t align; + uint32_t romalign; + uint32_t increment; + uint32_t entry; + uint32_t number; + struct Include *includes; + int includesCount; +}; + +void parse_rom_spec(char *spec, struct Segment **segments, int *segment_count); + +void free_rom_spec(struct Segment *segments, int segment_count); + +#endif