diff --git a/Makefile b/Makefile index 85362880d5..0cb078697a 100644 --- a/Makefile +++ b/Makefile @@ -1,4 +1,15 @@ -# TODO think about how to split this up +# If COMPARE is 1, check the output md5sum after building +COMPARE ?= 1 +# If NON_MATCHING is 1, define the NON_MATCHING C flag when building +NON_MATCHING ?= 0 +# If ORIG_COMPILER is 1, compile with QEMU_IRIX and the original compiler +# TODO we do not support static recomp, so force this to 1 +ORIG_COMPILER = 1 + +ifeq ($(NON_MATCHING),1) + CFLAGS := -DNON_MATCHING + COMPARE := 0 +endif #### Tools #### ifeq ($(shell type mips-linux-gnu-ld >/dev/null 2>/dev/null; echo $$?), 0) @@ -7,47 +18,41 @@ else MIPS_BINUTILS_PREFIX := mips64-elf- endif -AS := $(MIPS_BINUTILS_PREFIX)as -LD := $(MIPS_BINUTILS_PREFIX)ld +CC := tools/ido_recomp/linux/7.1/cc +CC_OLD := tools/ido_recomp/linux/5.3/cc +QEMU_IRIX ?= ./tools/qemu-mips -QEMU_IRIX ?= ./tools/qemu-mips -IRIX_71_ROOT := ./tools/ido7.1_compiler/ -IRIX_53_ROOT := ./tools/ido5.3_compiler/ +# if ORIG_COMPILER is 1, check that either QEMU_IRIX is set or qemu-irix package installed +ifeq ($(ORIG_COMPILER),1) + ifndef QEMU_IRIX + QEMU_IRIX := $(shell which qemu-irix) + ifeq (, $(QEMU_IRIX)) + $(error Please install qemu-irix package or set QEMU_IRIX env var to the full qemu-irix binary path) + endif + endif + CC = $(QEMU_IRIX) -L tools/ido7.1_compiler tools/ido7.1_compiler/usr/bin/cc + CC_OLD = $(QEMU_IRIX) -L tools/ido5.3_compiler tools/ido5.3_compiler/usr/bin/cc +endif -CFLAGS := -G 0 -non_shared -Xfullwarn -Xcpluscomm +AS := $(MIPS_BINUTILS_PREFIX)as +LD := $(MIPS_BINUTILS_PREFIX)ld +OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy +OBJDUMP := $(MIPS_BINUTILS_PREFIX)objdump + +OPTFLAGS := -O2 -g3 ASFLAGS := -march=vr4300 -32 - MIPS_VERSION := -mips2 -OPTIMIZATION := -O2 -g3 -build/src/libultra/os/%: OPTIMIZATION := -O1 -build/src/libultra/io/%: OPTIMIZATION := -O2 -build/src/libultra/libc/%: OPTIMIZATION := -O2 -build/src/libultra/libc/ll%: OPTIMIZATION := -O1 -build/src/libultra/libc/ll%: MIPS_VERSION := -mips3 -32 -build/src/libultra/gu/%: OPTIMIZATION := -O2 -build/src/libultra/rmon/%: OPTIMIZATION := -O2 -build/src/libultra/%: CC := $(QEMU_IRIX) -L $(IRIX_53_ROOT) $(IRIX_53_ROOT)/usr/bin/cc -build/src/libultra/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul -build/src/boot_O1/%: OPTIMIZATION := -O1 -build/src/boot_O2/%: OPTIMIZATION := -O2 -build/src/boot_O2_g3/%: OPTIMIZATION := -O2 -g3 -build/src/boot_O2_g3_trapuv/%: OPTIMIZATION := -O2 -g3 -build/src/code/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul -build/src/actors/%: CFLAGS := $(CFLAGS) -Wab,-r4300_mul -build/src/boot_O2_g3_trapuv/%: CFLAGS := $(CFLAGS) -trapuv -test.txt: OPTIMIZATION := -O2 -g3 -test.txt: CC := $(QEMU_IRIX) -L $(IRIX_71_ROOT) $(IRIX_71_ROOT)/usr/bin/cc -test.txt: CFLAGS := $(CFLAGS) -Wab,-r4300_mul +# we support Microsoft extensions such as anonymous structs, which the compiler does support but warns for their usage. Surpress the warnings with -woff. +CFLAGS += -G 0 -non_shared -Xfullwarn -Xcpluscomm -Iinclude -Isrc -Wab,-r4300_mul -woff 649,838 -CC := $(QEMU_IRIX) -L $(IRIX_71_ROOT) $(IRIX_71_ROOT)/usr/bin/cc +#### Files #### -test.txt: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- -build/src/boot_O2/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- -build/src/boot_O2_g3/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- -build/src/boot_O2_g3_trapuv/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- -build/src/code/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- -build/src/actors/%: CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- +# ROM image +ROM_NAME := rom +ROM := $(ROM_NAME).z64 +UNCOMPRESSED_ROM := $(ROM_NAME)_uncompressed.z64 +ELF := $(ROM_NAME).elf BASEROM_FILES := $(wildcard baserom/*) # Exclude dmadata, it will be generated right before packing the rom @@ -69,51 +74,67 @@ SRC_DIRS := $(shell find src -type d) # Because we may not have disassembled the code files yet, there might not be any assembly files. # Instead, generate a list of assembly files based on what's listed in the linker script. S_FILES := $(shell grep build/asm ./linker_scripts/code_script.txt | sed 's/\s*build\///g; s/\.o(\..*)/\.asm/g') -S_O_FILES = $(S_FILES:asm/%.asm=build/asm/%.o) C_FILES := $(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)) -C_O_FILES = $(C_FILES:src/%.c=build/src/%.o) +O_FILES := $(C_FILES:src/%.c=build/src/%.o) \ + $(S_FILES:asm/%.asm=build/asm/%.o) ROM_FILES := $(shell cat ./tables/makerom_files.txt) +UNCOMPRESSED_ROM_FILES := $(shell cat ./tables/makerom_uncompressed_files.txt) +# create build directories +$(shell mkdir -p build/asm build/baserom build/comp build/decomp $(foreach dir,$(SRC_DIRS),$(shell mkdir -p build/$(dir)))) -ROM := rom.z64 +build/src/libultra/os/%: OPTFLAGS := -O1 +build/src/libultra/io/%: OPTFLAGS := -O2 +build/src/libultra/libc/%: OPTFLAGS := -O2 +build/src/libultra/libc/ll%: OPTFLAGS := -O1 +build/src/libultra/libc/ll%: MIPS_VERSION := -mips3 -32 +build/src/libultra/gu/%: OPTFLAGS := -O2 +build/src/libultra/rmon/%: OPTFLAGS := -O2 +build/src/boot_O1/%: OPTFLAGS := -O1 +build/src/boot_O2/%: OPTFLAGS := -O2 +build/src/boot_O2_g3/%: OPTFLAGS := -O2 -g3 +build/src/boot_O2_g3_trapuv/%: OPTFLAGS := -O2 -g3 +build/src/boot_O2_g3_trapuv/%: CFLAGS := $(CFLAGS) -trapuv -BUILD_DIR := ./build +build/src/libultra/%: CC := $(CC_OLD) -# make build directories -$(shell mkdir -p $(BUILD_DIR)/asm) -$(shell mkdir -p $(BUILD_DIR)/baserom) -$(shell mkdir -p $(BUILD_DIR)/comp) -$(shell mkdir -p $(BUILD_DIR)/decomp) -$(foreach dir,$(SRC_DIRS),$(shell mkdir -p build/$(dir))) +CC := ./tools/preprocess.py $(CC) -- $(AS) $(ASFLAGS) -- -.PHONY: check +.PHONY: all clean setup diff-init init # disasm is not a file so we must tell make not to check it when evaluating timestamps .INTERMEDIATE: disasm -check: $(ROM) - @md5sum -c checksum.md5 +all: $(ROM) $(UNCOMPRESSED_ROM) $(ROM): $(ROM_FILES) + ./tools/makerom.py ./tables/dmadata_table.txt $@ -c +ifeq ($(COMPARE),1) + @md5sum $(ROM) + @md5sum -c checksum.md5 +endif + +$(UNCOMPRESSED_ROM): $(UNCOMPRESSED_ROM_FILES) ./tools/makerom.py ./tables/dmadata_table.txt $@ +ifeq ($(COMPARE),1) + @md5sum $(UNCOMPRESSED_ROM) + @md5sum -c checksum_uncompressed.md5 +endif -build/code_pre_dmadata.elf: $(S_O_FILES) $(C_O_FILES) linker_scripts/code_script.txt undef.txt linker_scripts/object_script.txt - $(LD) -r -T linker_scripts/code_script.txt -T undef.txt -T linker_scripts/object_script.txt --no-check-sections --accept-unknown-input-arch -N -o $@ - -build/code.elf: $(S_O_FILES) $(C_O_FILES) linker_scripts/code_script.txt undef.txt linker_scripts/object_script.txt linker_scripts/dmadata_script.txt +build/code.elf: $(O_FILES) linker_scripts/code_script.txt undef.txt linker_scripts/object_script.txt linker_scripts/dmadata_script.txt $(LD) -T linker_scripts/code_script.txt -T undef.txt -T linker_scripts/object_script.txt -T linker_scripts/dmadata_script.txt --no-check-sections --accept-unknown-input-arch -Map build/mm.map -N -o $@ +build/code_pre_dmadata.elf: $(O_FILES) linker_scripts/code_script.txt undef.txt linker_scripts/object_script.txt + $(LD) -r -T linker_scripts/code_script.txt -T undef.txt -T linker_scripts/object_script.txt --no-check-sections --accept-unknown-input-arch -N -o $@ + linker_scripts/dmadata_script.txt: $(DMADATA_FILES) build/code_pre_dmadata.elf ./tools/dmadata.py ./tables/dmadata_table.txt /dev/null -u -l linker_scripts/dmadata_script.txt -e build/code_pre_dmadata.elf -test.txt: build/src/test.o - $(MIPS_BINUTILS_PREFIX)objdump -d -z --adjust-vma=0x80080790 $< > test.txt - -clean: - rm -f $(ROM) -r build - -build/baserom/dmadata: $(COMP_FILES) $(DECOMP_FILES) $(BASEROM_BUILD_FILES) +build/dmadata: $(COMP_FILES) $(DECOMP_FILES) $(BASEROM_BUILD_FILES) ./tools/dmadata.py ./tables/dmadata_table.txt $@ +build/uncompressed_dmadata: $(DECOMP_FILES) $(BASEROM_BUILD_FILES) + ./tools/dmadata.py ./tables/dmadata_table.txt $@ -u + build/baserom/boot: build/boot.bin cp $< $@ @@ -121,7 +142,7 @@ build/decomp/code: build/code.bin cp $< $@ build/decomp/ovl_%: build/code.elf - $(MIPS_BINUTILS_PREFIX)objcopy --dump-section ovl_$*=$@ $< /dev/null + $(OBJCOPY) --dump-section ovl_$*=$@ $< /dev/null $(S_FILES): disasm @@ -131,10 +152,24 @@ disasm: tables/files.txt tables/functions.txt tables/objects.txt tables/variable ./tools/split_asm.py ./asm/$$file.asm ./asm/non_matchings/$$file; \ done < ./tables/files_with_nonmatching.txt +clean: + rm -f $(ROM) $(UNCOMPRESSED_ROM) -r build asm + +setup: + git submodule update --init --recursive + python3 -m pip install -r requirements.txt + +diff-init: all + rm -rf expected/ + mkdir -p expected/ + cp -r build expected/build + +init: setup all diff-init + # Recipes build/%.bin: build/code.elf - $(MIPS_BINUTILS_PREFIX)objcopy --dump-section $*=$@ $< /dev/null + $(OBJCOPY) --dump-section $*=$@ $< /dev/null build/baserom/%: baserom/% cp $< $@ @@ -142,20 +177,20 @@ build/baserom/%: baserom/% build/asm/%.o: asm/%.asm $(AS) $(ASFLAGS) $^ -o $@ -build/src/actors/%.o: src/actors/%.c include/* disasm - $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTIMIZATION) -Iinclude -o $@ $< +build/src/actors/%.o: src/actors/%.c include/* $(S_FILES) + $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< ./tools/overlay.py $@ build/src/actors/$*_overlay.s $(AS) $(ASFLAGS) build/src/actors/$*_overlay.s -o build/src/actors/$*_overlay.o -build/src/%.o: src/%.c include/* disasm - $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTIMIZATION) -Iinclude -o $@ $< +build/src/%.o: src/%.c include/* $(S_FILES) + $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< build/src/libultra/libc/ll.o: src/libultra/libc/ll.c include/* - $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTIMIZATION) -Iinclude -o $@ $< + $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< ./tools/set_o32abi_bit.py $@ build/src/libultra/libc/llcvt.o: src/libultra/libc/llcvt.c include/* - $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTIMIZATION) -Iinclude -o $@ $< + $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< ./tools/set_o32abi_bit.py $@ build/decomp/%: decomp/% diff --git a/checksum.md5 b/checksum.md5 index 7a3bb20c68..d9f35ff587 100644 --- a/checksum.md5 +++ b/checksum.md5 @@ -1,3 +1 @@ 2a0a8acb61538235bc1094d297fb6556 rom.z64 -4e8afbb44e6a4b9bc00eaa318bb1650c build/code.bin -b0145fad4be13d63d5d7aa75062db400 build/boot.bin diff --git a/checksum_uncompressed.md5 b/checksum_uncompressed.md5 new file mode 100644 index 0000000000..9f5df2931e --- /dev/null +++ b/checksum_uncompressed.md5 @@ -0,0 +1 @@ +7c6bfd6daf33ebfc0145a97c611cb3d8 rom_uncompressed.z64 diff --git a/diff.sh b/diff.sh new file mode 100644 index 0000000000..deded7daa9 --- /dev/null +++ b/diff.sh @@ -0,0 +1,9 @@ +#!/bin/bash + +if [ "$#" -ne "1" ]; +then + echo "usage: $0 func_name" + exit 1 +fi + +tools/asm-differ/diff.py -mwo $1 diff --git a/file_setup.sh b/file_setup.sh index deba14b72f..eaa661ff02 100644 --- a/file_setup.sh +++ b/file_setup.sh @@ -15,8 +15,4 @@ echo "$1" >> tables/files_with_nonmatching.txt sed -i "s/asm\/$1.o/src\/${2//\//\\\/}\/$1.o/g" linker_scripts/code_script.txt # Build with new file -make build/code.elf - -# Copy newly-built .o file to expected/ for use by the diff script -mkdir -p "expected/build/src/$2/" -cp "build/src/$2/$1.o" "expected/build/src/$2/$1.o" \ No newline at end of file +make diff-init \ No newline at end of file diff --git a/tables/dmadata_table.txt b/tables/dmadata_table.txt index 8c39dec669..e9b7f213ee 100644 --- a/tables/dmadata_table.txt +++ b/tables/dmadata_table.txt @@ -2,7 +2,7 @@ [ ('build/baserom/makerom', '', 0x10, 0), ('build/baserom/boot', '', 0x10, 0), - ('build/baserom/dmadata', '', 0x10, 0), + ('build/uncompressed_dmadata', 'build/dmadata', 0x10, 0), ('build/baserom/Audiobank', '', 0x10, 0), ('build/baserom/Audioseq', '', 0x10, 0), ('build/baserom/Audiotable', '', 0x10, 0), diff --git a/tables/makerom_files.txt b/tables/makerom_files.txt index fa54de8460..b40a66934f 100644 --- a/tables/makerom_files.txt +++ b/tables/makerom_files.txt @@ -1,6 +1,6 @@ build/baserom/makerom build/baserom/boot -build/baserom/dmadata +build/dmadata build/baserom/Audiobank build/baserom/Audioseq build/baserom/Audiotable diff --git a/tables/makerom_uncompressed_files.txt b/tables/makerom_uncompressed_files.txt new file mode 100644 index 0000000000..d4ad89f26b --- /dev/null +++ b/tables/makerom_uncompressed_files.txt @@ -0,0 +1,1535 @@ +build/baserom/makerom +build/baserom/boot +build/uncompressed_dmadata +build/baserom/Audiobank +build/baserom/Audioseq +build/baserom/Audiotable +build/baserom/jpn_font_static +build/baserom/link_animetion +build/decomp/icon_item_field_static +build/decomp/icon_item_dungeon_static +build/decomp/icon_item_gameover_static +build/decomp/013_0x00963540 +build/decomp/014_0x00967260 +build/baserom/map_i_static +build/baserom/map_grand_static +build/baserom/item_name_static +build/baserom/map_name_static +build/baserom/019_0x00980f60 +build/baserom/020_0x009c6230 +build/baserom/022_0x009caaf0 +build/decomp/023_0x009d1500 +build/decomp/024_0x009d3760 +build/baserom/do_action_static +build/baserom/message_static +build/baserom/message_texture_static +build/baserom/nes_font_static +build/baserom/en_message_data_static +build/baserom/staff_message_data_static +build/decomp/code +build/decomp/ovl_title +build/decomp/ovl_select +build/decomp/ovl_opening +build/decomp/ovl_file_choose +build/decomp/ovl_daytelop +build/decomp/ovl_kaleido_scope +build/decomp/ovl_Player_Actor +build/decomp/ovl_En_Test +build/decomp/ovl_En_GirlA +build/decomp/ovl_En_Part +build/decomp/ovl_En_Light +build/decomp/ovl_En_Door +build/decomp/ovl_En_Box +build/decomp/ovl_En_Pametfrog +build/decomp/ovl_En_Okuta +build/decomp/ovl_En_Bom +build/decomp/ovl_En_Wallmas +build/decomp/ovl_En_Dodongo +build/decomp/ovl_En_Firefly +build/decomp/ovl_En_Horse +build/decomp/ovl_En_Arrow +build/decomp/ovl_En_Elf +build/decomp/ovl_En_Niw +build/decomp/ovl_En_Tite +build/decomp/ovl_En_Peehat +build/decomp/ovl_En_Holl +build/decomp/ovl_En_Dinofos +build/decomp/ovl_En_Hata +build/decomp/ovl_En_Zl1 +build/decomp/ovl_En_Viewer +build/decomp/ovl_En_Bubble +build/decomp/ovl_Door_Shutter +build/decomp/ovl_En_Boom +build/decomp/ovl_En_Torch2 +build/decomp/ovl_En_Minifrog +build/decomp/ovl_En_St +build/decomp/ovl_Obj_Wturn +build/decomp/ovl_En_River_Sound +build/decomp/ovl_En_Ossan +build/decomp/ovl_En_Famos +build/decomp/ovl_En_Bombf +build/decomp/ovl_En_Am +build/decomp/ovl_En_Dekubaba +build/decomp/ovl_En_M_Fire1 +build/decomp/ovl_En_M_Thunder +build/decomp/ovl_Bg_Breakwall +build/decomp/ovl_Door_Warp1 +build/decomp/ovl_Obj_Syokudai +build/decomp/ovl_Item_B_Heart +build/decomp/ovl_En_Dekunuts +build/decomp/ovl_En_Bbfall +build/decomp/ovl_Arms_Hook +build/decomp/ovl_En_Bb +build/decomp/ovl_Bg_Keikoku_Spr +build/decomp/ovl_En_Wood02 +build/decomp/ovl_En_Death +build/decomp/ovl_En_Minideath +build/decomp/ovl_En_Vm +build/decomp/ovl_Demo_Effect +build/decomp/ovl_Demo_Kankyo +build/decomp/ovl_En_Floormas +build/decomp/ovl_En_Rd +build/decomp/ovl_Bg_F40_Flift +build/decomp/ovl_Obj_Mure +build/decomp/ovl_En_Sw +build/decomp/ovl_Object_Kankyo +build/decomp/ovl_En_Horse_Link_Child +build/decomp/ovl_Door_Ana +build/decomp/ovl_En_Encount1 +build/decomp/ovl_Demo_Tre_Lgt +build/decomp/ovl_En_Encount2 +build/decomp/ovl_En_Fire_Rock +build/decomp/ovl_Bg_Ctower_Rot +build/decomp/ovl_Mir_Ray +build/decomp/ovl_En_Sb +build/decomp/ovl_En_Bigslime +build/decomp/ovl_En_Karebaba +build/decomp/ovl_En_In +build/decomp/ovl_En_Bom_Chu +build/decomp/ovl_En_Horse_Game_Check +build/decomp/ovl_En_Rr +build/decomp/ovl_En_Fr +build/decomp/ovl_En_Fishing +build/decomp/ovl_Obj_Oshihiki +build/decomp/ovl_Eff_Dust +build/decomp/ovl_Bg_Umajump +build/decomp/ovl_En_Insect +build/decomp/ovl_En_Butte +build/decomp/ovl_En_Fish +build/decomp/ovl_Item_Etcetera +build/decomp/ovl_Arrow_Fire +build/decomp/ovl_Arrow_Ice +build/decomp/ovl_Arrow_Light +build/decomp/ovl_Obj_Kibako +build/decomp/ovl_Obj_Tsubo +build/decomp/ovl_En_Ik +build/decomp/ovl_Demo_Shd +build/decomp/ovl_En_Dns +build/decomp/ovl_Elf_Msg +build/decomp/ovl_En_Honotrap +build/decomp/ovl_En_Tubo_Trap +build/decomp/ovl_Obj_Ice_Poly +build/decomp/ovl_En_Fz +build/decomp/ovl_En_Kusa +build/decomp/ovl_Obj_Bean +build/decomp/ovl_Obj_Bombiwa +build/decomp/ovl_Obj_Switch +build/decomp/ovl_Obj_Lift +build/decomp/ovl_Obj_Hsblock +build/decomp/ovl_En_Okarina_Tag +build/decomp/ovl_En_Goroiwa +build/decomp/ovl_En_Daiku +build/decomp/ovl_En_Nwc +build/decomp/ovl_Item_Inbox +build/decomp/ovl_En_Ge1 +build/decomp/ovl_Obj_Blockstop +build/decomp/ovl_En_Sda +build/decomp/ovl_En_Clear_Tag +build/decomp/ovl_En_Gm +build/decomp/ovl_En_Ms +build/decomp/ovl_En_Hs +build/decomp/ovl_Bg_Ingate +build/decomp/ovl_En_Kanban +build/decomp/ovl_En_Attack_Niw +build/decomp/ovl_En_Mk +build/decomp/ovl_En_Owl +build/decomp/ovl_En_Ishi +build/decomp/ovl_Obj_Hana +build/decomp/ovl_Obj_Lightswitch +build/decomp/ovl_Obj_Mure2 +build/decomp/ovl_En_Fu +build/decomp/ovl_En_Stream +build/decomp/ovl_En_Mm +build/decomp/ovl_En_Weather_Tag +build/decomp/ovl_En_Ani +build/decomp/ovl_En_Js +build/decomp/ovl_En_Okarina_Effect +build/decomp/ovl_En_Mag +build/decomp/ovl_Elf_Msg2 +build/decomp/ovl_Bg_F40_Swlift +build/decomp/ovl_En_Kakasi +build/decomp/ovl_Obj_Makeoshihiki +build/decomp/ovl_Oceff_Spot +build/decomp/ovl_En_Torch +build/decomp/ovl_Shot_Sun +build/decomp/ovl_Obj_Roomtimer +build/decomp/ovl_En_Ssh +build/decomp/ovl_Oceff_Wipe +build/decomp/ovl_Effect_Ss_Dust +build/decomp/ovl_Effect_Ss_Kirakira +build/decomp/ovl_Effect_Ss_Bomb2 +build/decomp/ovl_Effect_Ss_Blast +build/decomp/ovl_Effect_Ss_G_Spk +build/decomp/ovl_Effect_Ss_D_Fire +build/decomp/ovl_Effect_Ss_Bubble +build/decomp/ovl_Effect_Ss_G_Ripple +build/decomp/ovl_Effect_Ss_G_Splash +build/decomp/ovl_Effect_Ss_G_Fire +build/decomp/ovl_Effect_Ss_Lightning +build/decomp/ovl_Effect_Ss_Dt_Bubble +build/decomp/ovl_Effect_Ss_Hahen +build/decomp/ovl_Effect_Ss_Stick +build/decomp/ovl_Effect_Ss_Sibuki +build/decomp/ovl_Effect_Ss_Stone1 +build/decomp/ovl_Effect_Ss_Hitmark +build/decomp/ovl_Effect_Ss_Fhg_Flash +build/decomp/ovl_Effect_Ss_K_Fire +build/decomp/ovl_Effect_Ss_Solder_Srch_Ball +build/decomp/ovl_Effect_Ss_Kakera +build/decomp/ovl_Effect_Ss_Ice_Piece +build/decomp/ovl_Effect_Ss_En_Ice +build/decomp/ovl_Effect_Ss_Fire_Tail +build/decomp/ovl_Effect_Ss_En_Fire +build/decomp/ovl_Effect_Ss_Extra +build/decomp/ovl_Effect_Ss_Dead_Db +build/decomp/ovl_Effect_Ss_Dead_Dd +build/decomp/ovl_Effect_Ss_Dead_Ds +build/decomp/ovl_Oceff_Storm +build/decomp/ovl_Obj_Demo +build/decomp/ovl_En_Minislime +build/decomp/ovl_En_Nutsball +build/decomp/ovl_Oceff_Wipe2 +build/decomp/ovl_Oceff_Wipe3 +build/decomp/ovl_En_Dg +build/decomp/ovl_En_Si +build/decomp/ovl_Obj_Comb +build/decomp/ovl_Obj_Kibako2 +build/decomp/ovl_En_Hs2 +build/decomp/ovl_Obj_Mure3 +build/decomp/ovl_En_Tg +build/decomp/ovl_En_Wf +build/decomp/ovl_En_Skb +build/decomp/ovl_En_Gs +build/decomp/ovl_Obj_Sound +build/decomp/ovl_En_Crow +build/decomp/ovl_En_Cow +build/decomp/ovl_Oceff_Wipe4 +build/decomp/ovl_En_Zo +build/decomp/ovl_Effect_Ss_Ice_Smoke +build/decomp/ovl_Obj_Makekinsuta +build/decomp/ovl_En_Ge3 +build/decomp/ovl_Obj_Hamishi +build/decomp/ovl_En_Zl4 +build/decomp/ovl_En_Mm2 +build/decomp/ovl_Door_Spiral +build/decomp/ovl_Obj_Pzlblock +build/decomp/ovl_Obj_Toge +build/decomp/ovl_Obj_Armos +build/decomp/ovl_Obj_Boyo +build/decomp/ovl_En_Grasshopper +build/decomp/ovl_Obj_Grass +build/decomp/ovl_Obj_Grass_Carry +build/decomp/ovl_Obj_Grass_Unit +build/decomp/ovl_Bg_Fire_Wall +build/decomp/ovl_En_Bu +build/decomp/ovl_En_Encount3 +build/decomp/ovl_En_Jso +build/decomp/ovl_Obj_Chikuwa +build/decomp/ovl_En_Knight +build/decomp/ovl_En_Warp_tag +build/decomp/ovl_En_Aob_01 +build/decomp/ovl_En_Boj_01 +build/decomp/ovl_En_Boj_02 +build/decomp/ovl_En_Boj_03 +build/decomp/ovl_En_Encount4 +build/decomp/ovl_En_Bom_Bowl_Man +build/decomp/ovl_En_Syateki_Man +build/decomp/ovl_Bg_Icicle +build/decomp/ovl_En_Syateki_Crow +build/decomp/ovl_En_Boj_04 +build/decomp/ovl_En_Cne_01 +build/decomp/ovl_En_Bba_01 +build/decomp/ovl_En_Bji_01 +build/decomp/ovl_Bg_Spdweb +build/decomp/ovl_En_Mt_tag +build/decomp/ovl_Boss_01 +build/decomp/ovl_Boss_02 +build/decomp/ovl_Boss_03 +build/decomp/ovl_Boss_04 +build/decomp/ovl_Boss_05 +build/decomp/ovl_Boss_06 +build/decomp/ovl_Boss_07 +build/decomp/ovl_Bg_Dy_Yoseizo +build/decomp/ovl_En_Boj_05 +build/decomp/ovl_En_Sob1 +build/decomp/ovl_En_Go +build/decomp/ovl_En_Raf +build/decomp/ovl_Obj_Funen +build/decomp/ovl_Obj_Raillift +build/decomp/ovl_Bg_Numa_Hana +build/decomp/ovl_Obj_Flowerpot +build/decomp/ovl_Obj_Spinyroll +build/decomp/ovl_Dm_Hina +build/decomp/ovl_En_Syateki_Wf +build/decomp/ovl_Obj_Skateblock +build/decomp/ovl_Effect_En_Ice_Block +build/decomp/ovl_Obj_Iceblock +build/decomp/ovl_En_Bigpamet +build/decomp/ovl_Bg_Dblue_Movebg +build/decomp/ovl_En_Syateki_Dekunuts +build/decomp/ovl_Elf_Msg3 +build/decomp/ovl_En_Fg +build/decomp/ovl_Dm_Ravine +build/decomp/ovl_Dm_Sa +build/decomp/ovl_En_Slime +build/decomp/ovl_En_Pr +build/decomp/ovl_Obj_Toudai +build/decomp/ovl_Obj_Entotu +build/decomp/ovl_Obj_Bell +build/decomp/ovl_En_Syateki_Okuta +build/decomp/ovl_Obj_Shutter +build/decomp/ovl_Dm_Zl +build/decomp/ovl_En_Ru +build/decomp/ovl_En_Elfgrp +build/decomp/ovl_Dm_Tsg +build/decomp/ovl_En_Baguo +build/decomp/ovl_Obj_Vspinyroll +build/decomp/ovl_Obj_Smork +build/decomp/ovl_En_Test2 +build/decomp/ovl_En_Test3 +build/decomp/ovl_En_Test4 +build/decomp/ovl_En_Bat +build/decomp/ovl_En_Sekihi +build/decomp/ovl_En_Wiz +build/decomp/ovl_En_Wiz_Brock +build/decomp/ovl_En_Wiz_Fire +build/decomp/ovl_Eff_Change +build/decomp/ovl_Dm_Statue +build/decomp/ovl_Obj_Fireshield +build/decomp/ovl_Bg_Ladder +build/decomp/ovl_En_Mkk +build/decomp/ovl_Demo_Getitem +build/decomp/ovl_En_Dnb +build/decomp/ovl_En_Dnh +build/decomp/ovl_En_Dnk +build/decomp/ovl_En_Dnq +build/decomp/ovl_Bg_Keikoku_Saku +build/decomp/ovl_Obj_Hugebombiwa +build/decomp/ovl_En_Firefly2 +build/decomp/ovl_En_Rat +build/decomp/ovl_En_Water_Effect +build/decomp/ovl_En_Kusa2 +build/decomp/ovl_Bg_Spout_Fire +build/decomp/ovl_En_Dy_Extra +build/decomp/ovl_En_Bal +build/decomp/ovl_En_Ginko_Man +build/decomp/ovl_En_Warp_Uzu +build/decomp/ovl_Obj_Driftice +build/decomp/ovl_En_Look_Nuts +build/decomp/ovl_En_Mushi2 +build/decomp/ovl_En_Fall +build/decomp/ovl_En_Mm3 +build/decomp/ovl_Bg_Crace_Movebg +build/decomp/ovl_En_Dno +build/decomp/ovl_En_Pr2 +build/decomp/ovl_En_Prz +build/decomp/ovl_En_Jso2 +build/decomp/ovl_Obj_Etcetera +build/decomp/ovl_En_Egol +build/decomp/ovl_Obj_Mine +build/decomp/ovl_Obj_Purify +build/decomp/ovl_En_Tru +build/decomp/ovl_En_Trt +build/decomp/ovl_En_Test5 +build/decomp/ovl_En_Test6 +build/decomp/ovl_En_Az +build/decomp/ovl_En_Estone +build/decomp/ovl_Bg_Hakugin_Post +build/decomp/ovl_Dm_Opstage +build/decomp/ovl_Dm_Stk +build/decomp/ovl_Dm_Char00 +build/decomp/ovl_Dm_Char01 +build/decomp/ovl_Dm_Char02 +build/decomp/ovl_Dm_Char03 +build/decomp/ovl_Dm_Char04 +build/decomp/ovl_Dm_Char05 +build/decomp/ovl_Dm_Char06 +build/decomp/ovl_Dm_Char07 +build/decomp/ovl_Dm_Char08 +build/decomp/ovl_Dm_Char09 +build/decomp/ovl_Obj_Tokeidai +build/decomp/ovl_En_Mnk +build/decomp/ovl_En_Egblock +build/decomp/ovl_En_Guard_Nuts +build/decomp/ovl_Bg_Hakugin_Bombwall +build/decomp/ovl_Obj_Tokei_Tobira +build/decomp/ovl_Bg_Hakugin_Elvpole +build/decomp/ovl_En_Ma4 +build/decomp/ovl_En_Twig +build/decomp/ovl_En_Po_Fusen +build/decomp/ovl_En_Door_Etc +build/decomp/ovl_En_Bigokuta +build/decomp/ovl_Bg_Icefloe +build/decomp/385_0x00cfc450 +build/decomp/386_0x00cfc970 +build/decomp/387_0x00cfd400 +build/decomp/388_0x00cfdf10 +build/decomp/389_0x00cfe150 +build/decomp/ovl_Effect_Ss_Sbn +build/decomp/ovl_Obj_Ocarinalift +build/decomp/ovl_En_Time_Tag +build/decomp/ovl_Bg_Open_Shutter +build/decomp/ovl_Bg_Open_Spot +build/decomp/ovl_Bg_Fu_Kaiten +build/decomp/ovl_Obj_Aqua +build/decomp/ovl_En_Elforg +build/decomp/ovl_En_Elfbub +build/decomp/ovl_En_Fu_Mato +build/decomp/ovl_En_Fu_Kago +build/decomp/ovl_En_Osn +build/decomp/ovl_Bg_Ctower_Gear +build/decomp/ovl_En_Trt2 +build/decomp/ovl_Obj_Tokei_Step +build/decomp/ovl_Bg_Lotus +build/decomp/ovl_En_Kame +build/decomp/ovl_Obj_Takaraya_Wall +build/decomp/ovl_Bg_Fu_Mizu +build/decomp/ovl_En_Sellnuts +build/decomp/ovl_Bg_Dkjail_Ivy +build/decomp/ovl_Obj_Visiblock +build/decomp/ovl_En_Takaraya +build/decomp/ovl_En_Tsn +build/decomp/ovl_En_Ds2n +build/decomp/ovl_En_Fsn +build/decomp/ovl_En_Shn +build/decomp/ovl_En_Stop_heishi +build/decomp/ovl_Obj_Bigicicle +build/decomp/ovl_En_Lift_Nuts +build/decomp/ovl_En_Tk +build/decomp/ovl_Bg_Market_Step +build/decomp/ovl_Obj_Lupygamelift +build/decomp/ovl_En_Test7 +build/decomp/ovl_Obj_Lightblock +build/decomp/ovl_Mir_Ray2 +build/decomp/ovl_En_Wdhand +build/decomp/ovl_En_Gamelupy +build/decomp/ovl_Bg_Danpei_Movebg +build/decomp/ovl_En_Snowwd +build/decomp/ovl_En_Pm +build/decomp/ovl_En_Gakufu +build/decomp/ovl_Elf_Msg4 +build/decomp/ovl_Elf_Msg5 +build/decomp/ovl_En_Col_Man +build/decomp/ovl_En_Talk_Gibud +build/decomp/ovl_En_Giant +build/decomp/ovl_Obj_Snowball +build/decomp/ovl_Boss_Hakugin +build/decomp/ovl_En_Gb2 +build/decomp/ovl_En_Onpuman +build/decomp/ovl_Bg_Tobira01 +build/decomp/ovl_En_Tag_Obj +build/decomp/ovl_Obj_Dhouse +build/decomp/ovl_Obj_Hakaisi +build/decomp/ovl_Bg_Hakugin_Switch +build/decomp/ovl_En_Snowman +build/decomp/ovl_TG_Sw +build/decomp/ovl_En_Po_Sisters +build/decomp/ovl_En_Pp +build/decomp/ovl_En_Hakurock +build/decomp/ovl_En_Hanabi +build/decomp/ovl_Obj_Dowsing +build/decomp/ovl_Obj_Wind +build/decomp/ovl_En_Racedog +build/decomp/ovl_En_Kendo_Js +build/decomp/ovl_Bg_Botihasira +build/decomp/ovl_En_Fish2 +build/decomp/ovl_En_Pst +build/decomp/ovl_En_Poh +build/decomp/ovl_Obj_Spidertent +build/decomp/ovl_En_Zoraegg +build/decomp/ovl_En_Kbt +build/decomp/ovl_En_Gg +build/decomp/ovl_En_Maruta +build/decomp/ovl_Obj_Snowball2 +build/decomp/ovl_En_Gg2 +build/decomp/ovl_Obj_Ghaka +build/decomp/ovl_En_Dnp +build/decomp/ovl_En_Dai +build/decomp/ovl_Bg_Goron_Oyu +build/decomp/ovl_En_Kgy +build/decomp/ovl_En_Invadepoh +build/decomp/ovl_En_Gk +build/decomp/ovl_En_An +build/decomp/ovl_En_Bee +build/decomp/ovl_En_Ot +build/decomp/ovl_En_Dragon +build/decomp/ovl_Obj_Dora +build/decomp/ovl_En_Bigpo +build/decomp/ovl_Obj_Kendo_Kanban +build/decomp/ovl_Obj_Hariko +build/decomp/ovl_En_Sth +build/decomp/ovl_Bg_Sinkai_Kabe +build/decomp/ovl_Bg_Haka_Curtain +build/decomp/ovl_Bg_Kin2_Bombwall +build/decomp/ovl_Bg_Kin2_Fence +build/decomp/ovl_Bg_Kin2_Picture +build/decomp/ovl_Bg_Kin2_Shelf +build/decomp/ovl_En_Rail_Skb +build/decomp/ovl_En_Jg +build/decomp/ovl_En_Tru_Mt +build/decomp/ovl_Obj_Um +build/decomp/ovl_En_Neo_Reeba +build/decomp/ovl_Bg_Mbar_Chair +build/decomp/ovl_Bg_Ikana_Block +build/decomp/ovl_Bg_Ikana_Mirror +build/decomp/ovl_Bg_Ikana_Rotaryroom +build/decomp/ovl_Bg_Dblue_Balance +build/decomp/ovl_Bg_Dblue_Waterfall +build/decomp/ovl_En_Kaizoku +build/decomp/ovl_En_Ge2 +build/decomp/ovl_En_Ma_Yts +build/decomp/ovl_En_Ma_Yto +build/decomp/ovl_Obj_Tokei_Turret +build/decomp/ovl_Bg_Dblue_Elevator +build/decomp/ovl_Obj_Warpstone +build/decomp/ovl_En_Zog +build/decomp/ovl_Obj_Rotlift +build/decomp/ovl_Obj_Jg_Gakki +build/decomp/ovl_Bg_Inibs_Movebg +build/decomp/ovl_En_Zot +build/decomp/ovl_Obj_Tree +build/decomp/ovl_Obj_Y2lift +build/decomp/ovl_Obj_Y2shutter +build/decomp/ovl_Obj_Boat +build/decomp/ovl_Obj_Taru +build/decomp/ovl_Obj_Hunsui +build/decomp/ovl_En_Jc_Mato +build/decomp/ovl_Mir_Ray3 +build/decomp/ovl_En_Zob +build/decomp/ovl_Elf_Msg6 +build/decomp/ovl_Obj_Nozoki +build/decomp/ovl_En_Toto +build/decomp/ovl_En_Railgibud +build/decomp/ovl_En_Baba +build/decomp/ovl_En_Suttari +build/decomp/ovl_En_Zod +build/decomp/ovl_En_Kujiya +build/decomp/ovl_En_Geg +build/decomp/ovl_Obj_Kinoko +build/decomp/ovl_Obj_Yasi +build/decomp/ovl_En_Tanron1 +build/decomp/ovl_En_Tanron2 +build/decomp/ovl_En_Tanron3 +build/decomp/ovl_Obj_Chan +build/decomp/ovl_En_Zos +build/decomp/ovl_En_S_Goro +build/decomp/ovl_En_Nb +build/decomp/ovl_En_Ja +build/decomp/ovl_Bg_F40_Block +build/decomp/ovl_Bg_F40_Switch +build/decomp/ovl_En_Po_Composer +build/decomp/ovl_En_Guruguru +build/decomp/ovl_Oceff_Wipe5 +build/decomp/ovl_En_Stone_heishi +build/decomp/ovl_Oceff_Wipe6 +build/decomp/ovl_En_Scopenuts +build/decomp/ovl_En_Scopecrow +build/decomp/ovl_Oceff_Wipe7 +build/decomp/ovl_Eff_Kamejima_Wave +build/decomp/ovl_En_Hg +build/decomp/ovl_En_Hgo +build/decomp/ovl_En_Zov +build/decomp/ovl_En_Ah +build/decomp/ovl_Obj_Hgdoor +build/decomp/ovl_Bg_Ikana_Bombwall +build/decomp/ovl_Bg_Ikana_Ray +build/decomp/ovl_Bg_Ikana_Shutter +build/decomp/ovl_Bg_Haka_Bombwall +build/decomp/ovl_Bg_Haka_Tomb +build/decomp/ovl_En_Sc_Ruppe +build/decomp/ovl_Bg_Iknv_Doukutu +build/decomp/ovl_Bg_Iknv_Obj +build/decomp/ovl_En_Pamera +build/decomp/ovl_Obj_HsStump +build/decomp/ovl_En_Hidden_Nuts +build/decomp/ovl_En_Zow +build/decomp/ovl_En_Talk +build/decomp/ovl_En_Al +build/decomp/ovl_En_Tab +build/decomp/ovl_En_Nimotsu +build/decomp/ovl_En_Hit_Tag +build/decomp/ovl_En_Ruppecrow +build/decomp/ovl_En_Tanron4 +build/decomp/ovl_En_Tanron5 +build/decomp/ovl_En_Tanron6 +build/decomp/ovl_En_Daiku2 +build/decomp/ovl_En_Muto +build/decomp/ovl_En_Baisen +build/decomp/ovl_En_Heishi +build/decomp/ovl_En_Demo_heishi +build/decomp/ovl_En_Dt +build/decomp/ovl_En_Cha +build/decomp/ovl_Obj_Dinner +build/decomp/ovl_Eff_Lastday +build/decomp/ovl_Bg_Ikana_Dharma +build/decomp/ovl_En_Akindonuts +build/decomp/ovl_Eff_Stk +build/decomp/ovl_En_Ig +build/decomp/ovl_En_Rg +build/decomp/ovl_En_Osk +build/decomp/ovl_En_Sth2 +build/decomp/ovl_En_Yb +build/decomp/ovl_En_Rz +build/decomp/ovl_En_Scopecoin +build/decomp/ovl_En_Bjt +build/decomp/ovl_En_Bomjima +build/decomp/ovl_En_Bomjimb +build/decomp/ovl_En_Bombers +build/decomp/ovl_En_Bombers2 +build/decomp/ovl_En_Bombal +build/decomp/ovl_Obj_Moon_Stone +build/decomp/ovl_Obj_Mu_Pict +build/decomp/ovl_Bg_Ikninside +build/decomp/ovl_Eff_Zoraband +build/decomp/ovl_Obj_Kepn_Koya +build/decomp/ovl_Obj_Usiyane +build/decomp/ovl_En_Nnh +build/decomp/ovl_Obj_Kzsaku +build/decomp/ovl_Obj_Milk_Bin +build/decomp/ovl_En_Kitan +build/decomp/ovl_Bg_Astr_Bombwall +build/decomp/ovl_Bg_Iknin_Susceil +build/decomp/ovl_En_Bsb +build/decomp/ovl_En_Recepgirl +build/decomp/ovl_En_Thiefbird +build/decomp/ovl_En_Jgame_Tsn +build/decomp/ovl_Obj_Jgame_Light +build/decomp/ovl_Obj_Yado +build/decomp/ovl_Demo_Syoten +build/decomp/ovl_Demo_Moonend +build/decomp/ovl_Bg_Lbfshot +build/decomp/ovl_Bg_Last_Bwall +build/decomp/ovl_En_And +build/decomp/ovl_En_Invadepoh_Demo +build/decomp/ovl_Obj_Danpeilift +build/decomp/ovl_En_Fall2 +build/decomp/ovl_Dm_Al +build/decomp/ovl_Dm_An +build/decomp/ovl_Dm_Ah +build/decomp/ovl_Dm_Nb +build/decomp/ovl_En_Drs +build/decomp/ovl_En_Ending_Hero +build/decomp/ovl_Dm_Bal +build/decomp/ovl_En_Paper +build/decomp/ovl_En_Hint_Skb +build/decomp/ovl_Dm_Tag +build/decomp/ovl_En_Bh +build/decomp/ovl_En_Ending_Hero2 +build/decomp/ovl_En_Ending_Hero3 +build/decomp/ovl_En_Ending_Hero4 +build/decomp/ovl_En_Ending_Hero5 +build/decomp/ovl_En_Ending_Hero6 +build/decomp/ovl_Dm_Gm +build/decomp/ovl_Obj_Swprize +build/decomp/ovl_En_Invisible_Ruppe +build/decomp/ovl_Obj_Ending +build/decomp/ovl_En_Rsn +build/decomp/gameplay_keep +build/decomp/gameplay_field_keep +build/decomp/gameplay_dangeon_keep +build/decomp/object_link_boy +build/decomp/object_link_child +build/decomp/object_link_goron +build/decomp/object_link_zora +build/decomp/object_link_nuts +build/decomp/object_mask_ki_tan +build/decomp/object_mask_rabit +build/decomp/object_mask_skj +build/decomp/object_mask_truth +build/decomp/object_mask_gibudo +build/decomp/object_mask_json +build/decomp/object_mask_kerfay +build/decomp/object_mask_bigelf +build/decomp/object_mask_kyojin +build/decomp/object_mask_romerny +build/decomp/object_mask_posthat +build/decomp/object_mask_zacho +build/decomp/object_mask_stone +build/decomp/object_mask_bree +build/decomp/object_mask_gero +build/decomp/object_mask_yofukasi +build/decomp/object_mask_meoto +build/decomp/object_mask_dancer +build/decomp/object_mask_bakuretu +build/decomp/object_mask_bu_san +build/decomp/object_mask_goron +build/decomp/object_mask_zora +build/decomp/object_mask_nuts +build/decomp/object_mask_boy +build/decomp/object_box +build/decomp/object_okuta +build/decomp/object_wallmaster +build/decomp/object_dy_obj +build/decomp/object_firefly +build/decomp/object_dodongo +build/decomp/object_niw +build/decomp/object_tite +build/decomp/object_ph +build/decomp/object_dinofos +build/decomp/object_zl1 +build/decomp/object_bubble +build/decomp/object_test3 +build/decomp/object_famos +build/decomp/object_st +build/decomp/object_thiefbird +build/decomp/object_bombf +build/decomp/object_am +build/decomp/object_dekubaba +build/decomp/object_warp1 +build/decomp/object_b_heart +build/decomp/object_dekunuts +build/decomp/object_bb +build/decomp/object_death +build/decomp/object_hata +build/decomp/object_wood02 +build/decomp/object_trap +build/decomp/object_vm +build/decomp/object_efc_star_field +build/decomp/object_rd +build/decomp/object_yukimura_obj +build/decomp/object_horse_link_child +build/decomp/object_syokudai +build/decomp/object_efc_tw +build/decomp/object_gi_key +build/decomp/object_mir_ray +build/decomp/object_ctower_rot +build/decomp/object_bdoor +build/decomp/object_sb +build/decomp/object_gi_melody +build/decomp/object_gi_heart +build/decomp/object_gi_compass +build/decomp/object_gi_bosskey +build/decomp/object_gi_nuts +build/decomp/object_gi_hearts +build/decomp/object_gi_arrowcase +build/decomp/object_gi_bombpouch +build/decomp/object_in +build/decomp/object_os_anime +build/decomp/object_gi_bottle +build/decomp/object_gi_stick +build/decomp/object_gi_map +build/decomp/object_oF1d_map +build/decomp/object_ru2 +build/decomp/object_gi_magicpot +build/decomp/object_gi_bomb_1 +build/decomp/object_ma2 +build/decomp/object_gi_purse +build/decomp/object_rr +build/decomp/object_gi_arrow +build/decomp/object_gi_bomb_2 +build/decomp/object_gi_shield_2 +build/decomp/object_gi_hookshot +build/decomp/object_gi_ocarina +build/decomp/object_gi_milk +build/decomp/object_ma1 +build/decomp/object_ny +build/decomp/object_fr +build/decomp/object_gi_bow +build/decomp/object_gi_glasses +build/decomp/object_gi_liquid +build/decomp/object_ani +build/decomp/object_gi_shield_3 +build/decomp/object_gi_bean +build/decomp/object_gi_fish +build/decomp/object_gi_longsword +build/decomp/object_zo +build/decomp/object_umajump +build/decomp/object_mastergolon +build/decomp/object_masterzoora +build/decomp/object_aob +build/decomp/object_ik +build/decomp/object_ahg +build/decomp/object_cne +build/decomp/object_bji +build/decomp/object_bba +build/decomp/object_an1 +build/decomp/object_boj +build/decomp/object_fz +build/decomp/object_bob +build/decomp/object_ge1 +build/decomp/object_yabusame_point +build/decomp/object_d_hsblock +build/decomp/object_d_lift +build/decomp/object_mamenoki +build/decomp/object_goroiwa +build/decomp/object_toryo +build/decomp/object_daiku +build/decomp/object_nwc +build/decomp/object_gm +build/decomp/object_ms +build/decomp/object_hs +build/decomp/object_lightswitch +build/decomp/object_kusa +build/decomp/object_tsubo +build/decomp/object_kanban +build/decomp/object_owl +build/decomp/object_mk +build/decomp/object_fu +build/decomp/object_gi_ki_tan_mask +build/decomp/object_gi_mask18 +build/decomp/object_gi_rabit_mask +build/decomp/object_gi_truth_mask +build/decomp/object_stream +build/decomp/object_mm +build/decomp/object_js +build/decomp/object_cs +build/decomp/object_gi_soldout +build/decomp/object_mag +build/decomp/object_gi_golonmask +build/decomp/object_gi_zoramask +build/decomp/object_ka +build/decomp/object_zg +build/decomp/object_gi_m_arrow +build/decomp/object_ds2 +build/decomp/object_fish +build/decomp/object_gi_sutaru +build/decomp/object_ssh +build/decomp/object_bigslime +build/decomp/object_bg +build/decomp/object_bombiwa +build/decomp/object_hintnuts +build/decomp/object_rs +build/decomp/object_gla +build/decomp/object_geldb +build/decomp/object_dog +build/decomp/object_kibako2 +build/decomp/object_dns +build/decomp/object_dnk +build/decomp/object_gi_insect +build/decomp/object_gi_ghost +build/decomp/object_gi_soul +build/decomp/object_f40_obj +build/decomp/object_gi_rupy +build/decomp/object_po_composer +build/decomp/object_mu +build/decomp/object_wf +build/decomp/object_skb +build/decomp/object_gs +build/decomp/object_ps +build/decomp/object_omoya_obj +build/decomp/object_crow +build/decomp/object_cow +build/decomp/object_gi_sword_1 +build/decomp/object_zl4 +build/decomp/object_grasshopper +build/decomp/object_boyo +build/decomp/object_fwall +build/decomp/object_jso +build/decomp/object_knight +build/decomp/object_icicle +build/decomp/object_spdweb +build/decomp/object_boss01 +build/decomp/object_boss02 +build/decomp/object_boss03 +build/decomp/object_boss04 +build/decomp/object_boss05 +build/decomp/object_boss07 +build/decomp/object_raf +build/decomp/object_funen +build/decomp/object_raillift +build/decomp/object_numa_obj +build/decomp/object_flowerpot +build/decomp/object_spinyroll +build/decomp/object_ice_block +build/decomp/object_keikoku_demo +build/decomp/object_slime +build/decomp/object_pr +build/decomp/object_f52_obj +build/decomp/object_f53_obj +build/decomp/object_kibako +build/decomp/object_sek +build/decomp/object_gmo +build/decomp/object_bat +build/decomp/object_sekihil +build/decomp/object_sekihig +build/decomp/object_sekihin +build/decomp/object_sekihiz +build/decomp/object_wiz +build/decomp/object_ladder +build/decomp/object_mkk +build/decomp/object_keikoku_obj +build/decomp/object_sichitai_obj +build/decomp/object_dekucity_ana_obj +build/decomp/object_rat +build/decomp/object_water_effect +build/decomp/object_dblue_object +build/decomp/object_bal +build/decomp/object_warp_uzu +build/decomp/object_driftice +build/decomp/object_fall +build/decomp/object_hanareyama_obj +build/decomp/object_crace_object +build/decomp/object_dnq +build/decomp/object_obj_tokeidai +build/decomp/object_eg +build/decomp/object_tru +build/decomp/object_trt +build/decomp/object_hakugin_obj +build/decomp/object_horse_game_check +build/decomp/object_stk +build/decomp/object_mnk +build/decomp/object_gi_bottle_red +build/decomp/object_tokei_tobira +build/decomp/object_az +build/decomp/object_twig +build/decomp/object_dekucity_obj +build/decomp/object_po_fusen +build/decomp/object_racetsubo +build/decomp/object_ha +build/decomp/object_bigokuta +build/decomp/object_open_obj +build/decomp/object_fu_kaiten +build/decomp/object_fu_mato +build/decomp/object_mtoride +build/decomp/object_osn +build/decomp/object_tokei_step +build/decomp/object_lotus +build/decomp/object_tl +build/decomp/object_dkjail_obj +build/decomp/object_visiblock +build/decomp/object_tsn +build/decomp/object_ds2n +build/decomp/object_fsn +build/decomp/object_shn +build/decomp/object_bigicicle +build/decomp/object_gi_bottle_15 +build/decomp/object_tk +build/decomp/object_market_obj +build/decomp/object_gi_reserve00 +build/decomp/object_gi_reserve01 +build/decomp/object_lightblock +build/decomp/object_takaraya_objects +build/decomp/object_wdhand +build/decomp/object_sdn +build/decomp/object_snowwd +build/decomp/object_giant +build/decomp/object_comb +build/decomp/object_hana +build/decomp/object_boss_hakugin +build/decomp/object_meganeana_obj +build/decomp/object_gi_nutsmask +build/decomp/object_stk2 +build/decomp/object_spot11_obj +build/decomp/object_danpei_object +build/decomp/object_dhouse +build/decomp/object_hakaisi +build/decomp/object_po +build/decomp/object_snowman +build/decomp/object_po_sisters +build/decomp/object_pp +build/decomp/object_goronswitch +build/decomp/object_delf +build/decomp/object_botihasira +build/decomp/object_gi_bigbomb +build/decomp/object_pst +build/decomp/object_bsmask +build/decomp/object_spidertent +build/decomp/object_zoraegg +build/decomp/object_kbt +build/decomp/object_gg +build/decomp/object_maruta +build/decomp/object_ghaka +build/decomp/object_oyu +build/decomp/object_dnp +build/decomp/object_dai +build/decomp/object_kgy +build/decomp/object_fb +build/decomp/object_taisou +build/decomp/object_gk +build/decomp/object_haka_obj +build/decomp/object_dnt +build/decomp/object_yukiyama +build/decomp/object_icefloe +build/decomp/object_gi_gold_dust +build/decomp/object_gi_bottle_16 +build/decomp/object_gi_bottle_22 +build/decomp/object_bee +build/decomp/object_ot +build/decomp/object_utubo +build/decomp/object_dora +build/decomp/object_gi_loach +build/decomp/object_gi_seahorse +build/decomp/object_bigpo +build/decomp/object_hariko +build/decomp/object_dno +build/decomp/object_sinkai_kabe +build/decomp/object_kin2_obj +build/decomp/object_ishi +build/decomp/object_hakugin_demo +build/decomp/object_jg +build/decomp/object_gi_sword_2 +build/decomp/object_gi_sword_3 +build/decomp/object_gi_sword_4 +build/decomp/object_um +build/decomp/object_rb +build/decomp/object_mbar_obj +build/decomp/object_ikana_obj +build/decomp/object_kz +build/decomp/object_tokei_turret +build/decomp/object_zog +build/decomp/object_rotlift +build/decomp/object_posthouse_obj +build/decomp/object_gi_mask09 +build/decomp/object_gi_mask14 +build/decomp/object_gi_mask15 +build/decomp/object_inibs_object +build/decomp/object_tree +build/decomp/object_kaizoku_obj +build/decomp/object_gi_reserve_b_00 +build/decomp/object_gi_reserve_c_00 +build/decomp/object_zob +build/decomp/object_milkbar +build/decomp/object_dmask +build/decomp/object_gi_reserve_c_01 +build/decomp/object_zod +build/decomp/object_kumo30 +build/decomp/object_obj_yasi +build/decomp/object_tanron1 +build/decomp/object_tanron2 +build/decomp/object_tanron3 +build/decomp/object_gi_magicmushroom +build/decomp/object_obj_chan +build/decomp/object_gi_mask10 +build/decomp/object_zos +build/decomp/object_an2 +build/decomp/object_an3 +build/decomp/object_f40_switch +build/decomp/object_lodmoon +build/decomp/object_tro +build/decomp/object_gi_mask12 +build/decomp/object_gi_mask23 +build/decomp/object_gi_bottle_21 +build/decomp/object_gi_camera +build/decomp/object_kamejima +build/decomp/object_nb +build/decomp/object_harfgibud +build/decomp/object_zov +build/decomp/object_ah +build/decomp/object_hgdoor +build/decomp/object_dor01 +build/decomp/object_dor02 +build/decomp/object_dor03 +build/decomp/object_dor04 +build/decomp/object_last_obj +build/decomp/object_redead_obj +build/decomp/object_ikninside_obj +build/decomp/object_iknv_obj +build/decomp/object_pamera +build/decomp/object_hsstump +build/decomp/object_zm +build/decomp/object_al +build/decomp/object_tab +build/decomp/object_secom_obj +build/decomp/object_dt +build/decomp/object_gi_mask03 +build/decomp/object_cha +build/decomp/object_obj_dinner +build/decomp/object_gi_reserve_b_01 +build/decomp/object_lastday +build/decomp/object_bai +build/decomp/object_ikn_demo +build/decomp/object_gi_fieldmap +build/decomp/object_big_fwall +build/decomp/object_hunsui +build/decomp/object_uch +build/decomp/object_tanron4 +build/decomp/object_tanron5 +build/decomp/object_in2 +build/decomp/object_yb +build/decomp/object_rz +build/decomp/object_bjt +build/decomp/object_taru +build/decomp/object_moonston +build/decomp/object_gi_schedule +build/decomp/object_gi_stonemask +build/decomp/object_zoraband +build/decomp/object_kepn_koya +build/decomp/object_obj_usiyane +build/decomp/object_gi_mask05 +build/decomp/object_gi_mask11 +build/decomp/object_gi_mask20 +build/decomp/object_nnh +build/decomp/object_kzsaku +build/decomp/object_obj_milk_bin +build/decomp/object_random_obj +build/decomp/object_kujiya +build/decomp/object_kitan +build/decomp/object_gi_mask06 +build/decomp/object_gi_mask16 +build/decomp/object_astr_obj +build/decomp/object_bsb +build/decomp/object_fall2 +build/decomp/object_sth +build/decomp/object_gi_mssa +build/decomp/object_smtower +build/decomp/object_gi_mask21 +build/decomp/object_yado_obj +build/decomp/object_syoten +build/decomp/object_moonend +build/decomp/object_ob +build/decomp/object_gi_bottle_04 +build/decomp/object_and +build/decomp/object_obj_danpeilift +build/decomp/object_drs +build/decomp/object_msmo +build/decomp/object_an4 +build/decomp/object_wdor01 +build/decomp/object_wdor02 +build/decomp/object_wdor03 +build/decomp/object_wdor04 +build/decomp/object_wdor05 +build/decomp/object_stk3 +build/decomp/object_kinsta1_obj +build/decomp/object_kinsta2_obj +build/decomp/object_bh +build/decomp/object_gi_mask17 +build/decomp/object_gi_mask22 +build/decomp/object_lbfshot +build/decomp/object_fusen +build/decomp/object_ending_obj +build/decomp/object_gi_mask13 +build/decomp/1114_0x01607b40 +build/decomp/1115_0x0160b1d0 +build/decomp/1116_0x0160c540 +build/decomp/1117_0x0160ed50 +build/decomp/1118_0x01611e20 +build/decomp/1119_0x01615e00 +build/decomp/1120_0x01619170 +build/decomp/1121_0x01619190 +build/decomp/nintendo_rogo_static +build/decomp/title_static +build/decomp/1124_0x0163f490 +build/decomp/1125_0x0163fc10 +build/decomp/1126_0x0163ffc0 +build/baserom/1127_0x01643d50 +build/decomp/1128_0x01644c80 +build/decomp/1129_0x01646b60 +build/decomp/1130_0x01649020 +build/decomp/1131_0x0164ad90 +build/decomp/vr_fine_static +build/decomp/vr_cloud_static +build/decomp/vr_pal_static +build/decomp/elf_message_field +build/decomp/elf_message_ydan +build/decomp/Z2_20SICHITAI2 +build/decomp/Z2_20SICHITAI2_room_00 +build/decomp/Z2_20SICHITAI2_room_01 +build/decomp/Z2_20SICHITAI2_room_02 +build/decomp/Z2_WITCH_SHOP +build/decomp/Z2_WITCH_SHOP_room_00 +build/decomp/Z2_LAST_BS +build/decomp/Z2_LAST_BS_room_00 +build/decomp/Z2_HAKASHITA +build/decomp/Z2_HAKASHITA_room_00 +build/decomp/Z2_HAKASHITA_room_01 +build/decomp/Z2_HAKASHITA_room_02 +build/decomp/Z2_HAKASHITA_room_03 +build/decomp/Z2_HAKASHITA_room_04 +build/decomp/Z2_AYASHIISHOP +build/decomp/Z2_AYASHIISHOP_room_00 +build/decomp/Z2_AYASHIISHOP_room_01 +build/decomp/Z2_OMOYA +build/decomp/Z2_OMOYA_room_00 +build/decomp/Z2_OMOYA_room_01 +build/decomp/Z2_OMOYA_room_02 +build/decomp/Z2_BOWLING +build/decomp/Z2_BOWLING_room_00 +build/decomp/Z2_SONCHONOIE +build/decomp/Z2_SONCHONOIE_room_00 +build/decomp/Z2_SONCHONOIE_room_01 +build/decomp/Z2_SONCHONOIE_room_02 +build/decomp/Z2_SONCHONOIE_room_03 +build/decomp/Z2_IKANA +build/decomp/Z2_IKANA_room_00 +build/decomp/Z2_IKANA_room_01 +build/decomp/Z2_IKANA_room_02 +build/decomp/Z2_IKANA_room_03 +build/decomp/Z2_IKANA_room_04 +build/decomp/Z2_KAIZOKU +build/decomp/Z2_KAIZOKU_room_00 +build/decomp/Z2_MILK_BAR +build/decomp/Z2_MILK_BAR_room_00 +build/decomp/Z2_INISIE_N +build/decomp/Z2_INISIE_N_room_00 +build/decomp/Z2_INISIE_N_room_01 +build/decomp/Z2_INISIE_N_room_02 +build/decomp/Z2_INISIE_N_room_03 +build/decomp/Z2_INISIE_N_room_04 +build/decomp/Z2_INISIE_N_room_05 +build/decomp/Z2_INISIE_N_room_06 +build/decomp/Z2_INISIE_N_room_07 +build/decomp/Z2_INISIE_N_room_08 +build/decomp/Z2_INISIE_N_room_09 +build/decomp/Z2_INISIE_N_room_10 +build/decomp/Z2_INISIE_N_room_11 +build/decomp/Z2_TAKARAYA +build/decomp/Z2_TAKARAYA_room_00 +build/decomp/Z2_INISIE_R +build/decomp/Z2_INISIE_R_room_00 +build/decomp/Z2_INISIE_R_room_01 +build/decomp/Z2_INISIE_R_room_02 +build/decomp/Z2_INISIE_R_room_03 +build/decomp/Z2_INISIE_R_room_04 +build/decomp/Z2_INISIE_R_room_05 +build/decomp/Z2_INISIE_R_room_06 +build/decomp/Z2_INISIE_R_room_07 +build/decomp/Z2_INISIE_R_room_08 +build/decomp/Z2_INISIE_R_room_09 +build/decomp/Z2_INISIE_R_room_10 +build/decomp/Z2_INISIE_R_room_11 +build/decomp/Z2_OKUJOU +build/decomp/Z2_OKUJOU_room_00 +build/decomp/Z2_OPENINGDAN +build/decomp/Z2_OPENINGDAN_room_00 +build/decomp/Z2_OPENINGDAN_room_01 +build/decomp/Z2_MITURIN +build/decomp/Z2_MITURIN_room_00 +build/decomp/Z2_MITURIN_room_01 +build/decomp/Z2_MITURIN_room_02 +build/decomp/Z2_MITURIN_room_03 +build/decomp/Z2_MITURIN_room_04 +build/decomp/Z2_MITURIN_room_05 +build/decomp/Z2_MITURIN_room_06 +build/decomp/Z2_MITURIN_room_07 +build/decomp/Z2_MITURIN_room_08 +build/decomp/Z2_MITURIN_room_09 +build/decomp/Z2_MITURIN_room_10 +build/decomp/Z2_MITURIN_room_11 +build/decomp/Z2_MITURIN_room_12 +build/decomp/Z2_13HUBUKINOMITI +build/decomp/Z2_13HUBUKINOMITI_room_00 +build/decomp/Z2_CASTLE +build/decomp/Z2_CASTLE_room_00 +build/decomp/Z2_CASTLE_room_01 +build/decomp/Z2_CASTLE_room_02 +build/decomp/Z2_CASTLE_room_03 +build/decomp/Z2_CASTLE_room_04 +build/decomp/Z2_CASTLE_room_05 +build/decomp/Z2_CASTLE_room_06 +build/decomp/Z2_CASTLE_room_07 +build/decomp/Z2_CASTLE_room_08 +build/decomp/Z2_CASTLE_room_09 +build/decomp/Z2_DEKUTES +build/decomp/Z2_DEKUTES_room_00 +build/decomp/Z2_MITURIN_BS +build/decomp/Z2_MITURIN_BS_room_00 +build/decomp/Z2_SYATEKI_MIZU +build/decomp/Z2_SYATEKI_MIZU_room_00 +build/decomp/Z2_HAKUGIN +build/decomp/Z2_HAKUGIN_room_00 +build/decomp/Z2_HAKUGIN_room_01 +build/decomp/Z2_HAKUGIN_room_02 +build/decomp/Z2_HAKUGIN_room_03 +build/decomp/Z2_HAKUGIN_room_04 +build/decomp/Z2_HAKUGIN_room_05 +build/decomp/Z2_HAKUGIN_room_06 +build/decomp/Z2_HAKUGIN_room_07 +build/decomp/Z2_HAKUGIN_room_08 +build/decomp/Z2_HAKUGIN_room_09 +build/decomp/Z2_HAKUGIN_room_10 +build/decomp/Z2_HAKUGIN_room_11 +build/decomp/Z2_HAKUGIN_room_12 +build/decomp/Z2_HAKUGIN_room_13 +build/decomp/Z2_ROMANYMAE +build/decomp/Z2_ROMANYMAE_room_00 +build/decomp/Z2_PIRATE +build/decomp/Z2_PIRATE_room_00 +build/decomp/Z2_PIRATE_room_01 +build/decomp/Z2_PIRATE_room_02 +build/decomp/Z2_PIRATE_room_03 +build/decomp/Z2_PIRATE_room_04 +build/decomp/Z2_PIRATE_room_05 +build/decomp/Z2_PIRATE_room_06 +build/decomp/Z2_PIRATE_room_07 +build/decomp/Z2_PIRATE_room_08 +build/decomp/Z2_PIRATE_room_09 +build/decomp/Z2_PIRATE_room_10 +build/decomp/Z2_PIRATE_room_11 +build/decomp/Z2_PIRATE_room_12 +build/decomp/Z2_PIRATE_room_13 +build/decomp/Z2_PIRATE_room_14 +build/decomp/Z2_SYATEKI_MORI +build/decomp/Z2_SYATEKI_MORI_room_00 +build/decomp/Z2_SINKAI +build/decomp/Z2_SINKAI_room_00 +build/decomp/Z2_YOUSEI_IZUMI +build/decomp/Z2_YOUSEI_IZUMI_room_00 +build/decomp/Z2_YOUSEI_IZUMI_room_01 +build/decomp/Z2_YOUSEI_IZUMI_room_02 +build/decomp/Z2_YOUSEI_IZUMI_room_03 +build/decomp/Z2_YOUSEI_IZUMI_room_04 +build/decomp/Z2_KINSTA1 +build/decomp/Z2_KINSTA1_room_00 +build/decomp/Z2_KINSTA1_room_01 +build/decomp/Z2_KINSTA1_room_02 +build/decomp/Z2_KINSTA1_room_03 +build/decomp/Z2_KINSTA1_room_04 +build/decomp/Z2_KINSTA1_room_05 +build/decomp/Z2_KINDAN2 +build/decomp/Z2_KINDAN2_room_00 +build/decomp/Z2_KINDAN2_room_01 +build/decomp/Z2_KINDAN2_room_02 +build/decomp/Z2_KINDAN2_room_03 +build/decomp/Z2_KINDAN2_room_04 +build/decomp/Z2_KINDAN2_room_05 +build/decomp/Z2_TENMON_DAI +build/decomp/Z2_TENMON_DAI_room_00 +build/decomp/Z2_TENMON_DAI_room_01 +build/decomp/Z2_LAST_DEKU +build/decomp/Z2_LAST_DEKU_room_00 +build/decomp/Z2_LAST_DEKU_room_01 +build/decomp/Z2_22DEKUCITY +build/decomp/Z2_22DEKUCITY_room_00 +build/decomp/Z2_22DEKUCITY_room_01 +build/decomp/Z2_22DEKUCITY_room_02 +build/decomp/Z2_KAJIYA +build/decomp/Z2_KAJIYA_room_00 +build/decomp/Z2_00KEIKOKU +build/decomp/Z2_00KEIKOKU_room_00 +build/decomp/Z2_POSTHOUSE +build/decomp/Z2_POSTHOUSE_room_00 +build/decomp/Z2_LABO +build/decomp/Z2_LABO_room_00 +build/decomp/Z2_DANPEI2TEST +build/decomp/Z2_DANPEI2TEST_room_00 +build/decomp/Z2_DANPEI2TEST_room_01 +build/decomp/Z2_16GORON_HOUSE +build/decomp/Z2_16GORON_HOUSE_room_00 +build/decomp/Z2_16GORON_HOUSE_room_01 +build/decomp/Z2_33ZORACITY +build/decomp/Z2_33ZORACITY_room_00 +build/decomp/Z2_8ITEMSHOP +build/decomp/Z2_8ITEMSHOP_room_00 +build/decomp/Z2_F01 +build/decomp/Z2_F01_room_00 +build/decomp/Z2_INISIE_BS +build/decomp/Z2_INISIE_BS_room_00 +build/decomp/Z2_30GYOSON +build/decomp/Z2_30GYOSON_room_00 +build/decomp/Z2_31MISAKI +build/decomp/Z2_31MISAKI_room_00 +build/decomp/Z2_TAKARAKUJI +build/decomp/Z2_TAKARAKUJI_room_00 +build/decomp/Z2_TORIDE +build/decomp/Z2_TORIDE_room_00 +build/decomp/Z2_FISHERMAN +build/decomp/Z2_FISHERMAN_room_00 +build/decomp/Z2_GORONSHOP +build/decomp/Z2_GORONSHOP_room_00 +build/decomp/Z2_DEKU_KING +build/decomp/Z2_DEKU_KING_room_00 +build/decomp/Z2_LAST_GORON +build/decomp/Z2_LAST_GORON_room_00 +build/decomp/Z2_LAST_GORON_room_01 +build/decomp/Z2_24KEMONOMITI +build/decomp/Z2_24KEMONOMITI_room_00 +build/decomp/Z2_F01_B +build/decomp/Z2_F01_B_room_00 +build/decomp/Z2_F01C +build/decomp/Z2_F01C_room_00 +build/decomp/Z2_BOTI +build/decomp/Z2_BOTI_room_00 +build/decomp/Z2_BOTI_room_01 +build/decomp/Z2_HAKUGIN_BS +build/decomp/Z2_HAKUGIN_BS_room_00 +build/decomp/Z2_20SICHITAI +build/decomp/Z2_20SICHITAI_room_00 +build/decomp/Z2_20SICHITAI_room_01 +build/decomp/Z2_20SICHITAI_room_02 +build/decomp/Z2_21MITURINMAE +build/decomp/Z2_21MITURINMAE_room_00 +build/decomp/Z2_LAST_ZORA +build/decomp/Z2_LAST_ZORA_room_00 +build/decomp/Z2_11GORONNOSATO2 +build/decomp/Z2_11GORONNOSATO2_room_00 +build/decomp/Z2_11GORONNOSATO2_room_01 +build/decomp/Z2_SEA +build/decomp/Z2_SEA_room_00 +build/decomp/Z2_SEA_room_01 +build/decomp/Z2_SEA_room_02 +build/decomp/Z2_SEA_room_03 +build/decomp/Z2_SEA_room_04 +build/decomp/Z2_SEA_room_05 +build/decomp/Z2_SEA_room_06 +build/decomp/Z2_SEA_room_07 +build/decomp/Z2_SEA_room_08 +build/decomp/Z2_SEA_room_09 +build/decomp/Z2_SEA_room_10 +build/decomp/Z2_SEA_room_11 +build/decomp/Z2_SEA_room_12 +build/decomp/Z2_SEA_room_13 +build/decomp/Z2_SEA_room_14 +build/decomp/Z2_SEA_room_15 +build/decomp/Z2_35TAKI +build/decomp/Z2_35TAKI_room_00 +build/decomp/Z2_REDEAD +build/decomp/Z2_REDEAD_room_00 +build/decomp/Z2_REDEAD_room_01 +build/decomp/Z2_REDEAD_room_02 +build/decomp/Z2_REDEAD_room_03 +build/decomp/Z2_REDEAD_room_04 +build/decomp/Z2_REDEAD_room_05 +build/decomp/Z2_REDEAD_room_06 +build/decomp/Z2_REDEAD_room_07 +build/decomp/Z2_REDEAD_room_08 +build/decomp/Z2_REDEAD_room_09 +build/decomp/Z2_REDEAD_room_10 +build/decomp/Z2_REDEAD_room_11 +build/decomp/Z2_REDEAD_room_12 +build/decomp/Z2_REDEAD_room_13 +build/decomp/Z2_BANDROOM +build/decomp/Z2_BANDROOM_room_00 +build/decomp/Z2_BANDROOM_room_01 +build/decomp/Z2_BANDROOM_room_02 +build/decomp/Z2_BANDROOM_room_03 +build/decomp/Z2_BANDROOM_room_04 +build/decomp/Z2_11GORONNOSATO +build/decomp/Z2_11GORONNOSATO_room_00 +build/decomp/Z2_11GORONNOSATO_room_01 +build/decomp/Z2_GORON_HAKA +build/decomp/Z2_GORON_HAKA_room_00 +build/decomp/Z2_SECOM +build/decomp/Z2_SECOM_room_00 +build/decomp/Z2_SECOM_room_01 +build/decomp/Z2_10YUKIYAMANOMURA +build/decomp/Z2_10YUKIYAMANOMURA_room_00 +build/decomp/Z2_TOUGITES +build/decomp/Z2_TOUGITES_room_00 +build/decomp/Z2_DANPEI +build/decomp/Z2_DANPEI_room_00 +build/decomp/Z2_DANPEI_room_01 +build/decomp/Z2_DANPEI_room_02 +build/decomp/Z2_DANPEI_room_03 +build/decomp/Z2_DANPEI_room_04 +build/decomp/Z2_DANPEI_room_05 +build/decomp/Z2_DANPEI_room_06 +build/decomp/Z2_DANPEI_room_07 +build/decomp/Z2_DANPEI_room_08 +build/decomp/Z2_IKANAMAE +build/decomp/Z2_IKANAMAE_room_00 +build/decomp/Z2_DOUJOU +build/decomp/Z2_DOUJOU_room_00 +build/decomp/Z2_MUSICHOUSE +build/decomp/Z2_MUSICHOUSE_room_00 +build/decomp/Z2_IKNINSIDE +build/decomp/Z2_IKNINSIDE_room_00 +build/decomp/Z2_IKNINSIDE_room_01 +build/decomp/Z2_MAP_SHOP +build/decomp/Z2_MAP_SHOP_room_00 +build/decomp/Z2_F40 +build/decomp/Z2_F40_room_00 +build/decomp/Z2_F41 +build/decomp/Z2_F41_room_00 +build/decomp/Z2_10YUKIYAMANOMURA2 +build/decomp/Z2_10YUKIYAMANOMURA2_room_00 +build/decomp/Z2_10YUKIYAMANOMURA2_room_01 +build/decomp/Z2_14YUKIDAMANOMITI +build/decomp/Z2_14YUKIDAMANOMITI_room_00 +build/decomp/Z2_12HAKUGINMAE +build/decomp/Z2_12HAKUGINMAE_room_00 +build/decomp/Z2_17SETUGEN +build/decomp/Z2_17SETUGEN_room_00 +build/decomp/1455_0x01d35b80 +build/decomp/Z2_17SETUGEN2_room_00 +build/decomp/Z2_SEA_BS +build/decomp/Z2_SEA_BS_room_00 +build/decomp/Z2_RANDOM +build/decomp/Z2_RANDOM_room_00 +build/decomp/Z2_RANDOM_room_01 +build/decomp/Z2_RANDOM_room_02 +build/decomp/Z2_RANDOM_room_03 +build/decomp/Z2_RANDOM_room_04 +build/decomp/Z2_RANDOM_room_05 +build/decomp/Z2_YADOYA +build/decomp/Z2_YADOYA_room_00 +build/decomp/Z2_YADOYA_room_01 +build/decomp/Z2_YADOYA_room_02 +build/decomp/Z2_YADOYA_room_03 +build/decomp/Z2_YADOYA_room_04 +build/decomp/Z2_KONPEKI_ENT +build/decomp/Z2_KONPEKI_ENT_room_00 +build/decomp/Z2_INSIDETOWER +build/decomp/Z2_INSIDETOWER_room_00 +build/decomp/Z2_INSIDETOWER_room_01 +build/decomp/Z2_26SARUNOMORI +build/decomp/Z2_26SARUNOMORI_room_00 +build/decomp/Z2_26SARUNOMORI_room_01 +build/decomp/Z2_26SARUNOMORI_room_02 +build/decomp/Z2_26SARUNOMORI_room_03 +build/decomp/Z2_26SARUNOMORI_room_04 +build/decomp/Z2_26SARUNOMORI_room_05 +build/decomp/Z2_26SARUNOMORI_room_06 +build/decomp/Z2_26SARUNOMORI_room_07 +build/decomp/Z2_26SARUNOMORI_room_08 +build/decomp/Z2_LOST_WOODS +build/decomp/Z2_LOST_WOODS_room_00 +build/decomp/Z2_LOST_WOODS_room_01 +build/decomp/Z2_LOST_WOODS_room_02 +build/decomp/Z2_LAST_LINK +build/decomp/Z2_LAST_LINK_room_00 +build/decomp/Z2_LAST_LINK_room_01 +build/decomp/Z2_LAST_LINK_room_02 +build/decomp/Z2_LAST_LINK_room_03 +build/decomp/Z2_LAST_LINK_room_04 +build/decomp/Z2_LAST_LINK_room_05 +build/decomp/Z2_LAST_LINK_room_06 +build/decomp/Z2_LAST_LINK_room_07 +build/decomp/Z2_SOUGEN +build/decomp/Z2_SOUGEN_room_00 +build/decomp/Z2_BOMYA +build/decomp/Z2_BOMYA_room_00 +build/decomp/Z2_KYOJINNOMA +build/decomp/Z2_KYOJINNOMA_room_00 +build/decomp/Z2_KOEPONARACE +build/decomp/Z2_KOEPONARACE_room_00 +build/decomp/Z2_GORONRACE +build/decomp/Z2_GORONRACE_room_00 +build/decomp/Z2_TOWN +build/decomp/Z2_TOWN_room_00 +build/decomp/Z2_ICHIBA +build/decomp/Z2_ICHIBA_room_00 +build/decomp/Z2_BACKTOWN +build/decomp/Z2_BACKTOWN_room_00 +build/decomp/Z2_CLOCKTOWER +build/decomp/Z2_CLOCKTOWER_room_00 +build/decomp/Z2_ALLEY +build/decomp/Z2_ALLEY_room_00 +build/decomp/SPOT00 +build/decomp/SPOT00_room_00 +build/decomp/KAKUSIANA +build/decomp/KAKUSIANA_room_00 +build/decomp/KAKUSIANA_room_01 +build/decomp/KAKUSIANA_room_02 +build/decomp/KAKUSIANA_room_03 +build/decomp/KAKUSIANA_room_04 +build/decomp/KAKUSIANA_room_05 +build/decomp/KAKUSIANA_room_06 +build/decomp/KAKUSIANA_room_07 +build/decomp/KAKUSIANA_room_08 +build/decomp/KAKUSIANA_room_09 +build/decomp/KAKUSIANA_room_10 +build/decomp/KAKUSIANA_room_11 +build/decomp/KAKUSIANA_room_12 +build/decomp/KAKUSIANA_room_13 +build/decomp/KAKUSIANA_room_14 +build/decomp/bump_texture_static \ No newline at end of file diff --git a/tools/dmadata.py b/tools/dmadata.py index e219ef7ba8..26213527aa 100644 --- a/tools/dmadata.py +++ b/tools/dmadata.py @@ -29,7 +29,7 @@ if __name__ == "__main__": for base_file, comp_file, alignment, size_if_missing in dmadata_table: try: file_name = base_file.split('/')[-1] - uncompressed = comp_file == '' + uncompressed = comp_file == '' or args.uncompressed missing = base_file == '' and comp_file == '' blank = missing and size_if_missing == 0 is_dmadata = base_file.endswith('dmadata') @@ -48,7 +48,7 @@ if __name__ == "__main__": phys_size = vrom_size else: vrom_size = os.path.getsize(base_file) - if uncompressed or args.uncompressed: + if uncompressed: phys_size = vrom_size else: phys_size = os.path.getsize(comp_file) @@ -68,7 +68,7 @@ if __name__ == "__main__": phys_end = 0xFFFFFFFF else: phys_start = align_up(curr_phys, 0x10) - phys_end = 0 if uncompressed else phys_start + phys_size + phys_end = 0 if uncompressed or is_dmadata else phys_start + phys_size curr_vrom = align_up(curr_vrom, alignment) + vrom_size curr_phys = align_up(curr_phys, 0x10) + phys_size @@ -79,7 +79,8 @@ if __name__ == "__main__": dmadata.write(phys_end.to_bytes(4, 'big')) if base_file != '': - linker_info.append((os.path.basename(base_file), vrom_start, vrom_end)) + file_name = 'dmadata' if is_dmadata else base_file + linker_info.append((os.path.basename(file_name), vrom_start, vrom_end)) except: print('Error when processing entry ' + base_file) sys.exit(1) diff --git a/tools/makerom.py b/tools/makerom.py index d88cf2fc77..3c5993c89a 100644 --- a/tools/makerom.py +++ b/tools/makerom.py @@ -38,6 +38,7 @@ if __name__ == "__main__": parser = argparse.ArgumentParser() parser.add_argument('files', help='file list') parser.add_argument('out', help='output file') + parser.add_argument('-c', '--compress', help='decompress file, otherwise compress it', action='store_true', default=False) args = parser.parse_args() outputBuffer = bytearray() @@ -47,23 +48,20 @@ if __name__ == "__main__": dmadata_table = ast.literal_eval(f.read()) for base_file, comp_file, _, _ in dmadata_table: - if base_file.endswith('dmadata'): - dma_file_name = base_file - break + if args.compress: + if comp_file.endswith('dmadata'): + dma_file_name = comp_file + break + else: + if base_file.endswith('dmadata'): + dma_file_name = base_file + break else: print('Could not find dmadata') sys.exit(1) - has_compressed_files = False - with open(dma_file_name, 'rb') as dma_file: - dma_data = dma_file.read() - for i in range(0xC, len(dma_data), 0x10): - if read_uint32_be(dma_data, i) != 0: - has_compressed_files = True - break - for base_file, comp_file, _, _ in dmadata_table: - file_name = base_file if not has_compressed_files or comp_file == '' else comp_file + file_name = comp_file if args.compress and comp_file != '' else base_file if file_name != '': try: with open(file_name, 'rb') as current_file: