diff --git a/.clang-tidy b/.clang-tidy index caf62ab7f8..a56f7b17c9 100644 --- a/.clang-tidy +++ b/.clang-tidy @@ -1,6 +1,6 @@ Checks: '-*,readability-braces-around-statements,readability-inconsistent-declaration-parameter-name' WarningsAsErrors: '' -HeaderFilterRegex: '(src|include)\/.*\.h$' +HeaderFilterRegex: '(src|include)\/.*(\.h|\.inc\.c)$' FormatStyle: 'file' CheckOptions: # Require argument names to match exactly (instead of allowing a name to be a prefix/suffix of another) diff --git a/Makefile b/Makefile index f805b08be1..d40b7b4845 100644 --- a/Makefile +++ b/Makefile @@ -57,11 +57,6 @@ N64_EMULATOR ?= # This may also be used to disable debug features on debug ROMs by setting DEBUG_FEATURES to 0 # DEBUG_FEATURES ?= 1 -CFLAGS ?= -CCASFLAGS ?= -CPPFLAGS ?= -CPP_DEFINES ?= - # Version-specific settings REGIONAL_CHECKSUM := 0 ifeq ($(VERSION),ntsc-1.0) @@ -209,7 +204,6 @@ EXTRACTED_DIR := extracted/$(VERSION) VENV := .venv MAKE = make -CPPFLAGS += -P -xc -fno-dollars-in-identifiers ifeq ($(PLATFORM),N64) CPP_DEFINES += -DPLATFORM_N64=1 -DPLATFORM_GC=0 -DPLATFORM_IQUE=0 @@ -231,9 +225,11 @@ endif VERSION_MACRO := $(shell echo $(VERSION) | tr a-z-. A-Z__) CPP_DEFINES += -DOOT_VERSION=$(VERSION_MACRO) -DOOT_REVISION=$(REVISION) CPP_DEFINES += -DOOT_REGION=REGION_$(REGION) -CPP_DEFINES += -DBUILD_CREATOR="\"$(BUILD_CREATOR)\"" -DBUILD_DATE="\"$(BUILD_DATE)\"" -DBUILD_TIME="\"$(BUILD_TIME)\"" CPP_DEFINES += -DLIBULTRA_VERSION=LIBULTRA_VERSION_$(LIBULTRA_VERSION) CPP_DEFINES += -DLIBULTRA_PATCH=$(LIBULTRA_PATCH) +ifeq ($(PLATFORM),IQUE) + CPP_DEFINES += -DBBPLAYER +endif ifeq ($(DEBUG_FEATURES),1) CPP_DEFINES += -DDEBUG_FEATURES=1 @@ -287,6 +283,11 @@ ifeq ($(ORIG_COMPILER),1) CCAS := $(CC) endif +# EGCS Compiler +EGCS_PREFIX := tools/egcs/$(DETECTED_OS)/ +EGCS_CC := $(EGCS_PREFIX)gcc -B $(EGCS_PREFIX) +EGCS_CCAS := $(EGCS_CC) -x assembler-with-cpp + AS := $(MIPS_BINUTILS_PREFIX)as LD := $(MIPS_BINUTILS_PREFIX)ld OBJCOPY := $(MIPS_BINUTILS_PREFIX)objcopy @@ -294,6 +295,12 @@ OBJDUMP := $(MIPS_BINUTILS_PREFIX)objdump NM := $(MIPS_BINUTILS_PREFIX)nm STRIP := $(MIPS_BINUTILS_PREFIX)strip +# Command prefix to preprocess a file before running the compiler +PREPROCESS := + +# Command to patch certain object files after they are built +POSTPROCESS_OBJ := @: + # The default iconv on macOS has some differences from GNU iconv, so we use the Homebrew version instead ifeq ($(UNAME_S),Darwin) ICONV := $(shell brew --prefix)/opt/libiconv/bin/iconv @@ -335,10 +342,6 @@ SEQ_CPPFLAGS := -D_LANGUAGE_ASEQ -DMML_VERSION=MML_VERSION_OOT $(CPP_DEFINES) - SBCFLAGS := --matching SFCFLAGS := --matching -CFLAGS += $(CPP_DEFINES) -CCASFLAGS := $(CPP_DEFINES) -CPPFLAGS += $(CPP_DEFINES) - # Extra debugging steps ifeq ($(DEBUG_OBJECTS),1) OBJDUMP_CMD = @$(OBJDUMP) $(OBJDUMP_FLAGS) $@ > $(@:.o=.s) @@ -360,21 +363,24 @@ ifeq ($(DEBUG_FEATURES),1) GBI_DEFINES += -DGBI_DEBUG endif -CFLAGS += $(GBI_DEFINES) - -ASFLAGS := -march=vr4300 -32 -no-pad-sections -Iinclude -I$(EXTRACTED_DIR) +CPPFLAGS += -P -xc -fno-dollars-in-identifiers $(CPP_DEFINES) +ASFLAGS += -march=vr4300 -32 -no-pad-sections -Iinclude -I$(EXTRACTED_DIR) ifeq ($(COMPILER),gcc) - CFLAGS += -G 0 -nostdinc $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -mdivide-breaks -fno-PIC -fno-common -ffreestanding -fbuiltin -fno-builtin-sinf -fno-builtin-cosf $(CHECK_WARNINGS) -funsigned-char - CCASFLAGS += -G 0 -nostdinc $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections + CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -mdivide-breaks -fno-PIC -fno-common -ffreestanding -funsigned-char -fbuiltin -fno-builtin-sinf -fno-builtin-cosf $(CHECK_WARNINGS) + CCASFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -nostdinc $(INC) -march=vr4300 -mfix4300 -mabi=32 -mno-abicalls -fno-PIC -fno-common -Wa,-no-pad-sections MIPS_VERSION := -mips3 else # Suppress warnings for wrong number of macro arguments (to fake variadic # macros) and Microsoft extensions such as anonymous structs (which the # compiler does support but warns for their usage). - CFLAGS += -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC) -Wab,-r4300_mul -woff 516,609,649,838,712,807 - CCASFLAGS += -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC) -Wab,-r4300_mul -woff 516,609,649,838,712,807 -o32 + CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC) -Wab,-r4300_mul -woff 516,609,649,838,712,807 + CCASFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -G 0 -non_shared -fullwarn -verbose -Xcpluscomm $(INC) -Wab,-r4300_mul -woff 516,609,649,838,712,807 -o32 MIPS_VERSION := -mips2 + + EGCS_CFLAGS += $(CPP_DEFINES) $(GBI_DEFINES) -DEGCS -G 0 -nostdinc $(INC) -mcpu=vr4300 -mabi=32 -mgp32 -mfp32 -fno-PIC + EGCS_CCASFLAGS := -Wall -nostdinc $(CPP_DEFINES) -DEGCS $(INC) -c -G 0 -Wa,-irix-symtab -D_ABIO32=1 -D_ABI64=3 -D_MIPS_SIM_ABI64=_ABI64 -D_MIPS_SIM_ABI32=_ABIO32 -DMIPSEB -D_LANGUAGE_ASSEMBLY -mabi=32 -fno-PIC -non_shared -mcpu=4300 -mfix4300 + EGCS_ASOPTFLAGS := endif ifeq ($(COMPILER),ido) @@ -402,14 +408,13 @@ ROMC := $(ROM:.z64=-compressed.z64) ELF := $(ROM:.z64=.elf) MAP := $(ROM:.z64=.map) LDSCRIPT := $(ROM:.z64=.ld) + # description of ROM segments SPEC := spec +SPEC_INCLUDES := $(wildcard spec_includes/*.inc) -ifeq ($(COMPILER),ido) -SRC_DIRS := $(shell find src -type d -not -path src/gcc_fix) -else SRC_DIRS := $(shell find src -type d) -endif +UNDECOMPILED_DATA_DIRS := $(shell find data -type d) ifneq ($(wildcard $(EXTRACTED_DIR)/assets/audio),) SAMPLE_EXTRACT_DIRS := $(shell find $(EXTRACTED_DIR)/assets/audio/samples -type d) @@ -485,33 +490,19 @@ ASSET_BIN_DIRS := $(ASSET_BIN_DIRS_EXTRACTED) $(ASSET_BIN_DIRS_COMMITTED) ASSET_FILES_BIN_EXTRACTED := $(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.bin)) ASSET_FILES_BIN_COMMITTED := $(foreach dir,$(ASSET_BIN_DIRS_COMMITTED),$(wildcard $(dir)/*.bin)) ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_BIN_EXTRACTED:.bin=.bin.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ - $(foreach f,$(ASSET_FILES_BIN_COMMITTED:.bin=.bin.inc.c),$(BUILD_DIR)/$f) \ - $(foreach f,$(wildcard assets/text/*.c),$(BUILD_DIR)/$(f:.c=.o)) + $(foreach f,$(ASSET_FILES_BIN_COMMITTED:.bin=.bin.inc.c),$(BUILD_DIR)/$f) -UNDECOMPILED_DATA_DIRS := $(shell find data -type d) +# Find all .o files included in the spec +SPEC_O_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | $(BUILD_DIR_REPLACE) | sed -n -E 's/^[ \t]*include[ \t]*"([a-zA-Z0-9/_.-]+\.o)"/\1/p') -BASEROM_BIN_FILES := $(wildcard $(EXTRACTED_DIR)/baserom/*) - -# source files -ASSET_C_FILES_EXTRACTED := $(filter-out %.inc.c,$(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.c))) -ASSET_C_FILES_COMMITTED := $(filter-out %.inc.c,$(foreach dir,$(ASSET_BIN_DIRS_COMMITTED),$(wildcard $(dir)/*.c))) -SRC_C_FILES := $(filter-out %.inc.c,$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c))) -S_FILES := $(foreach dir,$(SRC_DIRS) $(UNDECOMPILED_DATA_DIRS),$(wildcard $(dir)/*.s)) -O_FILES := $(foreach f,$(S_FILES:.s=.o),$(BUILD_DIR)/$f) \ - $(foreach f,$(SRC_C_FILES:.c=.o),$(BUILD_DIR)/$f) \ - $(foreach f,$(ASSET_C_FILES_EXTRACTED:.c=.o),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \ - $(foreach f,$(ASSET_C_FILES_COMMITTED:.c=.o),$(BUILD_DIR)/$f) \ - $(foreach f,$(BASEROM_BIN_FILES),$(BUILD_DIR)/baserom/$(notdir $f).o) \ - $(BUILD_DIR)/src/code/z_message_z_game_over.o \ - $(BUILD_DIR)/src/makerom/ipl3.o - -OVL_RELOC_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | $(BUILD_DIR_REPLACE) | grep -o '[^"]*_reloc.o' ) +# Split out reloc files +O_FILES := $(filter-out %_reloc.o,$(SPEC_O_FILES)) +OVL_RELOC_FILES := $(filter %_reloc.o,$(SPEC_O_FILES)) # Automatic dependency files # (Only asm_processor dependencies and reloc dependencies are handled for now) DEP_FILES := $(O_FILES:.o=.asmproc.d) $(OVL_RELOC_FILES:.o=.d) - TEXTURE_FILES_PNG_EXTRACTED := $(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.png)) TEXTURE_FILES_PNG_COMMITTED := $(foreach dir,$(ASSET_BIN_DIRS_COMMITTED),$(wildcard $(dir)/*.png)) TEXTURE_FILES_JPG_EXTRACTED := $(foreach dir,$(ASSET_BIN_DIRS_EXTRACTED),$(wildcard $(dir)/*.jpg)) @@ -523,7 +514,8 @@ TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG_EXTRACTED:.png=.inc.c),$(f: # create build directories $(shell mkdir -p $(BUILD_DIR)/baserom \ - $(BUILD_DIR)/assets/text) + $(BUILD_DIR)/assets/text \ + $(BUILD_DIR)/linker_scripts) $(shell mkdir -p $(foreach dir, \ $(SRC_DIRS) \ $(UNDECOMPILED_DATA_DIRS) \ @@ -543,9 +535,20 @@ $(shell mkdir -p $(foreach dir, \ $(dir:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%))) endif +$(BUILD_DIR)/src/boot/build.o: CPP_DEFINES += -DBUILD_CREATOR="\"$(BUILD_CREATOR)\"" -DBUILD_DATE="\"$(BUILD_DATE)\"" -DBUILD_TIME="\"$(BUILD_TIME)\"" + ifeq ($(COMPILER),ido) $(BUILD_DIR)/src/boot/driverominit.o: OPTFLAGS := -O2 +ifeq ($(PLATFORM),IQUE) +# iQue's driverominit.o seems to have been patched manually. For non-matching builds we edit the source code instead. +ifneq ($(NON_MATCHING),1) +$(BUILD_DIR)/src/boot/driverominit.o: POSTPROCESS_OBJ := $(PYTHON) tools/patch_ique_driverominit.py +endif + +$(BUILD_DIR)/src/boot/viconfig.o: OPTFLAGS := -O2 +endif + $(BUILD_DIR)/src/code/jpegutils.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/code/jpegdecoder.o: OPTFLAGS := -O2 @@ -564,7 +567,43 @@ endif $(BUILD_DIR)/src/code/jpegutils.o: CC := $(CC_OLD) $(BUILD_DIR)/src/code/jpegdecoder.o: CC := $(CC_OLD) -ifeq ($(DEBUG_FEATURES),1) +ifeq ($(PLATFORM),IQUE) +# Some files are compiled with EGCS on iQue +EGCS_O_FILES += $(BUILD_DIR)/src/boot/boot_main.o +EGCS_O_FILES += $(BUILD_DIR)/src/boot/idle.o +EGCS_O_FILES += $(BUILD_DIR)/src/boot/inflate.o +EGCS_O_FILES += $(BUILD_DIR)/src/boot/is_debug_ique.o +EGCS_O_FILES += $(BUILD_DIR)/src/boot/z_locale.o +EGCS_O_FILES += $(BUILD_DIR)/src/boot/z_std_dma.o +EGCS_O_FILES += $(BUILD_DIR)/src/code/z_actor.o +EGCS_O_FILES += $(BUILD_DIR)/src/code/z_common_data.o +EGCS_O_FILES += $(BUILD_DIR)/src/code/z_construct.o +EGCS_O_FILES += $(BUILD_DIR)/src/code/z_kanfont.o +# EGCS_O_FILES += $(BUILD_DIR)/src/code/z_message.o +EGCS_O_FILES += $(BUILD_DIR)/src/code/z_parameter.o +EGCS_O_FILES += $(BUILD_DIR)/src/code/z_sram.o +EGCS_O_FILES += $(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/z_en_mag.o +EGCS_O_FILES += $(BUILD_DIR)/src/overlays/actors/ovl_End_Title/z_end_title.o +EGCS_O_FILES += $(BUILD_DIR)/src/overlays/actors/ovl_Fishing/z_fishing.o +# EGCS_O_FILES += $(BUILD_DIR)/src/overlays/gamestates/ovl_file_choose/z_file_copy_erase.o +EGCS_O_FILES += $(BUILD_DIR)/src/overlays/gamestates/ovl_opening/z_opening.o +EGCS_O_FILES += $(BUILD_DIR)/src/overlays/gamestates/ovl_title/z_title.o +EGCS_O_FILES += $(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.o +EGCS_O_FILES += $(BUILD_DIR)/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.o + +$(EGCS_O_FILES): CC := $(EGCS_CC) +$(EGCS_O_FILES): CFLAGS := $(EGCS_CFLAGS) -mno-abicalls +$(EGCS_O_FILES): MIPS_VERSION := +endif + +ifeq ($(PLATFORM),IQUE) +$(BUILD_DIR)/src/libc/%.o: CC := $(EGCS_CC) +$(BUILD_DIR)/src/libc/%.o: CCAS := $(EGCS_CCAS) +$(BUILD_DIR)/src/libc/%.o: CFLAGS := $(EGCS_CFLAGS) -mno-abicalls +$(BUILD_DIR)/src/libc/%.o: CCASFLAGS := $(EGCS_CCASFLAGS) +$(BUILD_DIR)/src/libc/%.o: OPTFLAGS := -O1 +$(BUILD_DIR)/src/libc/%.o: MIPS_VERSION := +else ifeq ($(DEBUG_FEATURES),1) $(BUILD_DIR)/src/libc/%.o: OPTFLAGS := -g $(BUILD_DIR)/src/libc/%.o: ASOPTFLAGS := -g else @@ -589,14 +628,40 @@ endif $(BUILD_DIR)/src/audio/sfx.o: CFLAGS += -use_readwrite_const $(BUILD_DIR)/src/audio/sequence.o: CFLAGS += -use_readwrite_const +ifeq ($(PLATFORM),IQUE) +$(BUILD_DIR)/src/libultra/%.o: CC := $(EGCS_CC) +$(BUILD_DIR)/src/libultra/%.o: CCAS := $(EGCS_CCAS) +$(BUILD_DIR)/src/libultra/%.o: CFLAGS := $(EGCS_CFLAGS) -mno-abicalls +$(BUILD_DIR)/src/libultra/%.o: CCASFLAGS := $(EGCS_CCASFLAGS) +$(BUILD_DIR)/src/libultra/%.o: ASOPTFLAGS := $(EGCS_ASOPTFLAGS) + +$(BUILD_DIR)/src/libultra/reg/_%.o: OPTFLAGS := -O0 +$(BUILD_DIR)/src/libultra/reg/_%.o: MIPS_VERSION := -mgp64 -mfp64 -mips3 + +$(BUILD_DIR)/src/libultra/audio/%.o: OPTFLAGS := -O2 + +$(BUILD_DIR)/src/libultra/libc/ll.o: OPTFLAGS := -O0 +$(BUILD_DIR)/src/libultra/libc/llcvt.o: OPTFLAGS := -O0 + +$(BUILD_DIR)/src/libultra/os/exceptasm.o: MIPS_VERSION := -mips3 +$(BUILD_DIR)/src/libultra/os/invaldcache.o: MIPS_VERSION := -mips3 +$(BUILD_DIR)/src/libultra/os/invalicache.o: MIPS_VERSION := -mips3 +$(BUILD_DIR)/src/libultra/os/writebackdcache.o: MIPS_VERSION := -mips3 +$(BUILD_DIR)/src/libultra/os/writebackdcacheall.o: MIPS_VERSION := -mips3 +else $(BUILD_DIR)/src/libultra/%.o: CC := $(CC_OLD) $(BUILD_DIR)/src/libultra/libc/ll.o: OPTFLAGS := -O1 $(BUILD_DIR)/src/libultra/libc/ll.o: MIPS_VERSION := -mips3 -32 +$(BUILD_DIR)/src/libultra/libc/ll.o: POSTPROCESS_OBJ := $(PYTHON) tools/set_o32abi_bit.py + $(BUILD_DIR)/src/libultra/libc/llcvt.o: OPTFLAGS := -O1 $(BUILD_DIR)/src/libultra/libc/llcvt.o: MIPS_VERSION := -mips3 -32 +$(BUILD_DIR)/src/libultra/libc/llcvt.o: POSTPROCESS_OBJ := $(PYTHON) tools/set_o32abi_bit.py $(BUILD_DIR)/src/libultra/os/exceptasm.o: MIPS_VERSION := -mips3 -32 +$(BUILD_DIR)/src/libultra/os/exceptasm.o: POSTPROCESS_OBJ := $(PYTHON) tools/set_o32abi_bit.py +endif $(BUILD_DIR)/src/code/%.o: ASOPTFLAGS := -O2 $(BUILD_DIR)/src/libleo/%.o: ASOPTFLAGS := -O2 @@ -642,20 +707,32 @@ else $(BUILD_DIR)/src/libultra/gu/%.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/libultra/io/%.o: OPTFLAGS := -O2 $(BUILD_DIR)/src/libultra/libc/%.o: OPTFLAGS := -O2 +ifeq ($(PLATFORM),IQUE) +$(BUILD_DIR)/src/libultra/os/%.o: OPTFLAGS := -O0 +else $(BUILD_DIR)/src/libultra/os/%.o: OPTFLAGS := -O1 endif +endif $(BUILD_DIR)/src/libleo/%.o: CC := $(CC_OLD) $(BUILD_DIR)/src/libleo/%.o: OPTFLAGS := -O2 +ifeq ($(PLATFORM),IQUE) +$(BUILD_DIR)/src/libgcc/%.o: CC := $(EGCS_CC) +$(BUILD_DIR)/src/libgcc/%.o: CFLAGS := $(EGCS_CFLAGS) +endif + $(BUILD_DIR)/assets/misc/z_select_static/%.o: GBI_DEFINES := -DF3DEX_GBI -# For using asm_processor on some files: -#$(BUILD_DIR)/.../%.o: CC := $(PYTHON) tools/asm_processor/build.py $(CC) -- $(AS) $(ASFLAGS) -- +ifeq ($(PLATFORM),IQUE) +$(BUILD_DIR)/src/makerom/%.o: CCAS := $(EGCS_CCAS) +$(BUILD_DIR)/src/makerom/%.o: CCASFLAGS := $(EGCS_CCASFLAGS) +$(BUILD_DIR)/src/makerom/%.o: ASOPTFLAGS := $(EGCS_ASOPTFLAGS) +endif ifeq ($(PERMUTER),) # permuter + preprocess.py misbehaves, permuter doesn't care about rodata diffs or bss ordering so just don't use it in that case # Handle encoding (UTF-8 -> EUC-JP) and custom pragmas -$(BUILD_DIR)/src/%.o: CC := ./tools/preprocess.sh -v $(VERSION) -i $(ICONV) -- $(CC) +$(BUILD_DIR)/src/%.o: PREPROCESS := ./tools/preprocess.sh -v $(VERSION) -i $(ICONV) -- endif else @@ -666,11 +743,6 @@ $(BUILD_DIR)/src/libultra/libc/ll.o: OPTFLAGS := -Ofast $(BUILD_DIR)/src/overlays/%.o: CFLAGS += -fno-merge-constants -mno-explicit-relocs -mno-split-addresses endif -SET_ABI_BIT = @: -$(BUILD_DIR)/src/libultra/os/exceptasm.o: SET_ABI_BIT = $(PYTHON) tools/set_o32abi_bit.py $@ -$(BUILD_DIR)/src/libultra/libc/ll.o: SET_ABI_BIT = $(PYTHON) tools/set_o32abi_bit.py $@ -$(BUILD_DIR)/src/libultra/libc/llcvt.o: SET_ABI_BIT = $(PYTHON) tools/set_o32abi_bit.py $@ - #### Main Targets ### all: rom compress @@ -753,10 +825,13 @@ $(ROMC): $(ROM) $(ELF) $(BUILD_DIR)/compress_ranges.txt $(PYTHON) tools/compress.py --in $(ROM) --out $@ --dmadata-start `./tools/dmadata_start.sh $(NM) $(ELF)` --compress `cat $(BUILD_DIR)/compress_ranges.txt` --threads $(N_THREADS) $(COMPRESS_ARGS) $(PYTHON) -m ipl3checksum sum --cic $(CIC) --update $@ -$(ELF): $(TEXTURE_FILES_OUT) $(ASSET_FILES_OUT) $(O_FILES) $(OVL_RELOC_FILES) $(LDSCRIPT) $(BUILD_DIR)/undefined_syms.txt \ +$(ELF): $(TEXTURE_FILES_OUT) $(ASSET_FILES_OUT) $(O_FILES) $(OVL_RELOC_FILES) $(LDSCRIPT) $(BUILD_DIR)/linker_scripts/makerom.ld $(BUILD_DIR)/undefined_syms.txt \ $(SAMPLEBANK_O_FILES) $(SOUNDFONT_O_FILES) $(SEQUENCE_O_FILES) \ $(BUILD_DIR)/assets/audio/sequence_font_table.o $(BUILD_DIR)/assets/audio/audiobank_padding.o - $(LD) -T $(LDSCRIPT) -T $(BUILD_DIR)/undefined_syms.txt --no-check-sections --accept-unknown-input-arch --emit-relocs -Map $(MAP) -o $@ + $(LD) -T $(LDSCRIPT) -T $(BUILD_DIR)/linker_scripts/makerom.ld -T $(BUILD_DIR)/undefined_syms.txt --no-check-sections --accept-unknown-input-arch --emit-relocs -Map $(MAP) -o $@ + +$(BUILD_DIR)/linker_scripts/makerom.ld: linker_scripts/makerom.ld + $(CPP) -I include $(CPPFLAGS) $< > $@ ## Order-only prerequisites # These ensure e.g. the O_FILES are built before the OVL_RELOC_FILES. @@ -770,7 +845,7 @@ $(O_FILES): | asset_files .PHONY: o_files asset_files -$(BUILD_DIR)/$(SPEC): $(SPEC) +$(BUILD_DIR)/$(SPEC): $(SPEC) $(SPEC_INCLUDES) $(CPP) $(CPPFLAGS) $< | $(BUILD_DIR_REPLACE) > $@ $(LDSCRIPT): $(BUILD_DIR)/$(SPEC) @@ -844,10 +919,10 @@ ifeq ($(COMPILER),ido) # but strip doesn't know about file-relative offsets in .mdebug and doesn't relocate them, ld will # segfault unless .mdebug is removed $(OBJCOPY) --remove-section .mdebug $(@:.o=.tmp.o) $@ - $(SET_ABI_BIT) else $(CCAS) -c $(CCASFLAGS) $(MIPS_VERSION) $(ASOPTFLAGS) -o $@ $< endif + $(POSTPROCESS_OBJ) $@ $(OBJDUMP_CMD) # Incremental link to move z_message and z_game_over data into rodata @@ -877,8 +952,8 @@ $(BUILD_DIR)/src/%.o: src/%.c ifneq ($(RUN_CC_CHECK),0) $(CC_CHECK) $< endif - $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< - $(SET_ABI_BIT) + $(PREPROCESS) $(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $< + $(POSTPROCESS_OBJ) $@ $(OBJDUMP_CMD) $(BUILD_DIR)/src/audio/session_init.o: src/audio/session_init.c $(BUILD_DIR)/assets/audio/soundfont_sizes.h $(BUILD_DIR)/assets/audio/sequence_sizes.h diff --git a/baseroms/ique-cn/config.yml b/baseroms/ique-cn/config.yml index 02fcba20a4..86bceb7339 100644 --- a/baseroms/ique-cn/config.yml +++ b/baseroms/ique-cn/config.yml @@ -1,45 +1,45 @@ dmadata_start: 0xB7A0 text_lang: CN -incbins: # TODO: fix these +incbins: - name: ipl3 segment: makerom vram: 0x80000040 size: 0xFC0 - name: rspbootText segment: boot - vram: 0x800065C0 - size: 0x160 + vram: 0x80009C30 + size: 0xD0 - name: aspMainText segment: code - vram: 0x800E3600 + vram: 0x800EBF70 size: 0xFB0 - - name: gspF3DZEX2_NoN_PosLight_fifoText - segment: code - vram: 0x800E45B0 - size: 0x1390 - name: gspS2DEX2d_fifoText segment: code - vram: 0x800E5940 + vram: 0x800ECF20 size: 0x18C0 - name: njpgdspMainText segment: code - vram: 0x800E7200 + vram: 0x800EE7E0 size: 0xAF0 - name: aspMainData segment: code - vram: 0x80114990 + vram: 0x8011FE20 size: 0x2E0 + - name: gspF3DZEX2_NoN_PosLight_fifoText + segment: code + vram: 0x80120100 + size: 0x1630 - name: gspF3DZEX2_NoN_PosLight_fifoData segment: code - vram: 0x80114C70 + vram: 0x80121730 size: 0x420 - name: gspS2DEX2d_fifoData segment: code - vram: 0x80115090 + vram: 0x80121B50 size: 0x390 - name: njpgdspMainData segment: code - vram: 0x80115420 + vram: 0x80121EE0 size: 0x60 variables: gMtxClear: 0x80106980 diff --git a/docs/compilers.md b/docs/compilers.md new file mode 100644 index 0000000000..120aaf43c6 --- /dev/null +++ b/docs/compilers.md @@ -0,0 +1,63 @@ +# Compilers + +Ocarina of Time was written mostly in C, compiled to MIPS machine code. For the +N64 and GameCube versions, all code was compiled with the IDO compiler. For the +iQue Player versions, some of the code (namely libultra, and some game files +such as those related to Chinese text) was compiled with the EGCS compiler instead. + +## IDO + +Ocarina of Time was originally developed on +[Silicon Graphics "Indy"](https://en.wikipedia.org/wiki/SGI_Indy) workstations, +and IDO (IRIS Development Option) was the C compiler toolchain that shipped with +these. Two different versions of IDO were used for Ocarina of Time: IDO 5.3 was +used for some libraries (namely libultra, libleo, and the JPEG library) while +IDO 7.1 was used for the other libraries and all of the "main" game code. + +These Silicon Graphics workstations ran the MIPS-based IRIX operating system, so +the original compiler binaries can't run on modern systems. Originally this +project used [qemu-irix](https://github.com/n64decomp/qemu-irix) (now +unmaintained) to run emulate IRIX on modern systems, but nowadays we use the +more lightweight +[ido-static-recomp](https://github.com/decompals/ido-static-recomp) instead. + +## EGCS + +[EGCS (Experimental/Enhanced GNU Compiler System)](https://en.wikipedia.org/wiki/GNU_Compiler_Collection#EGCS_fork) +was a fork of the GCC compiler. The Linux-based iQue SDK included a patched +version of EGCS release 1.1.2. The original compiler can still run on modern Linux +systems, but we use a +[modified version](https://github.com/decompals/mips-gcc-egcs-2.91.66) +that includes Mac support and a few other minor improvements (such as anonymous +struct/union support). + +This version of the EGCS compiler has a bug where code that indexes into an array member can +fail to compile if the array member is at a large (>= 0x8000) offset in a struct. For +example, when run on the source code + +```c +struct Foo { + char a[0x8000]; + int b[1]; +}; + +int test(struct Foo* foo, int i) { + return foo->b[i]; +} +``` + +the compiler errors with + +``` +Compiler error: src.c: In function `test': +src.c:8: internal error--unrecognizable insn: +(insn 20 18 22 (set (reg:SI 85) + (plus:SI (reg:SI 81) + (const_int 32768))) -1 (nil) + (nil)) +../../gcc/toplev.c:1367: Internal compiler error in function fatal_insn +``` + +In some recompiled files, the game developers had to modify the code to work +around this bug, for example by storing a pointer to the array in a temporary +variable before indexing into it. diff --git a/format.py b/format.py index a5faa79c97..f95885344e 100755 --- a/format.py +++ b/format.py @@ -97,8 +97,7 @@ def run_clang_apply_replacements(tmp_dir: str): def cleanup_whitespace(file: str): """ - Remove whitespace at the end of lines, - ensure the file ends with an empty line. + Remove whitespace at the end of lines, and ensure all lines end with a newline. """ file_p = Path(file) contents = file_p.read_text(encoding="UTF-8") @@ -108,7 +107,7 @@ def cleanup_whitespace(file: str): if n_subst != 0: modified = True - if not contents.endswith("\n"): + if contents and not contents.endswith("\n"): contents += "\n" modified = True diff --git a/include/attributes.h b/include/attributes.h index c3154cac7b..3276c84325 100644 --- a/include/attributes.h +++ b/include/attributes.h @@ -8,12 +8,22 @@ #endif #define UNUSED __attribute__((unused)) -#define FALLTHROUGH __attribute__((fallthrough)) -#define NORETURN __attribute__((noreturn)) #define NO_REORDER __attribute__((no_reorder)) #define SECTION_DATA __attribute__((section(".data"))) -#ifdef __GNUC__ +#if __GNUC__ >= 7 +#define FALLTHROUGH __attribute__((fallthrough)) +#else +#define FALLTHROUGH +#endif + +#if defined(__GNUC__) && defined(NON_MATCHING) +#define NORETURN __attribute__((noreturn)) +#else +#define NORETURN +#endif + +#if defined(__GNUC__) && defined(NON_MATCHING) #define UNREACHABLE() __builtin_unreachable() #else #define UNREACHABLE() diff --git a/include/functions.h b/include/functions.h index 7a114f73c5..6984ea1634 100644 --- a/include/functions.h +++ b/include/functions.h @@ -9,10 +9,11 @@ void Main_ThreadEntry(void* arg); void Idle_ThreadEntry(void* arg); void ViConfig_UpdateVi(u32 black); void ViConfig_UpdateBlack(void); -void* Yaz0_FirstDMA(void); -void* Yaz0_NextDMA(u8* curSrcPos); -void Yaz0_DecompressImpl(u8* src, u8* dst); +#if !PLATFORM_IQUE void Yaz0_Decompress(uintptr_t romStart, u8* dst, size_t size); +#else +void gzip_decompress(uintptr_t romStart, u8* dst, size_t size); +#endif void Locale_Init(void); void Locale_ResetRegion(void); #if DEBUG_FEATURES @@ -73,6 +74,9 @@ void CutsceneFlags_Unset(PlayState* play, s16 flag); s32 CutsceneFlags_Get(PlayState* play, s16 flag); s32 Kanji_OffsetFromShiftJIS(s32 character); +#if PLATFORM_IQUE +void Font_LoadCharCHN(Font* font, u16 character, u16 codePointIndex); +#endif void Font_LoadCharWide(Font* font, u16 character, u16 codePointIndex); void Font_LoadChar(Font* font, u8 character, u16 codePointIndex); void Font_LoadMessageBoxIcon(Font* font, u16 icon); diff --git a/include/libc/assert.h b/include/libc/assert.h index dae8aeb651..de54b8a79c 100644 --- a/include/libc/assert.h +++ b/include/libc/assert.h @@ -29,7 +29,7 @@ __attribute__((noreturn)) void __assert(const char* assertion, const char* file, // Static/compile-time assertions -#if !defined(__sgi) && (defined(__GNUC__) || (__STDC_VERSION__ >= 201112L)) +#if !defined(__sgi) && (__GNUC__ >= 5 || __STDC_VERSION__ >= 201112L) # define static_assert(cond, msg) _Static_assert(cond, msg) #else # ifndef GLUE diff --git a/include/libc/stdarg.h b/include/libc/stdarg.h index 35ce4f944e..717299ccd6 100644 --- a/include/libc/stdarg.h +++ b/include/libc/stdarg.h @@ -1,16 +1,7 @@ #ifndef STDARG_H #define STDARG_H -// When building with GCC, use the official vaarg macros to avoid warnings and possibly bad codegen. - -#ifdef __GNUC__ - -#define va_list __builtin_va_list -#define va_start __builtin_va_start -#define va_arg __builtin_va_arg -#define va_end __builtin_va_end - -#else +#if defined(__sgi) /* IDO */ #ifndef _VA_LIST_ # define _VA_LIST_ @@ -52,6 +43,37 @@ typedef char* va_list; /* No cleanup processing is required for the end of a varargs list: */ #define va_end(__list) -#endif /* __GNUC__ */ +#elif defined(EGCS) /* EGCS */ + +typedef char * __gnuc_va_list; + +#define __va_rounded_size(__TYPE) \ + (((sizeof (__TYPE) + sizeof (int) - 1) / sizeof (int)) * sizeof (int)) + +#define va_start(__AP, __LASTARG) \ + (__AP = (__gnuc_va_list) __builtin_next_arg (__LASTARG)) + +#define va_end(__AP) ((void)0) + +/* We cast to void * and then to TYPE * because this avoids + a warning about increasing the alignment requirement. */ +#define va_arg(__AP, __type) \ + ((__type *) (void *) (__AP = (char *) ((__alignof__(__type) > 4 \ + ? ((__PTRDIFF_TYPE__)__AP + 8 - 1) & -8 \ + : ((__PTRDIFF_TYPE__)__AP + 4 - 1) & -4) \ + + __va_rounded_size (__type))), \ + *(__type *) (void *) (__AP - __va_rounded_size (__type))) + +typedef __gnuc_va_list va_list; + +#else /* Modern GCC */ + +// When building with modern GCC, use the official vaarg macros to avoid warnings and possibly bad codegen. +#define va_list __builtin_va_list +#define va_start __builtin_va_start +#define va_arg __builtin_va_arg +#define va_end __builtin_va_end + +#endif #endif diff --git a/include/libc/stddef.h b/include/libc/stddef.h index 45620895ee..0c0926ba6b 100644 --- a/include/libc/stddef.h +++ b/include/libc/stddef.h @@ -15,7 +15,7 @@ typedef unsigned long size_t; #endif -#ifdef __GNUC__ +#if __GNUC__ >= 4 #define offsetof(structure, member) __builtin_offsetof (structure, member) #else #define offsetof(structure, member) ((size_t)&(((structure*)0)->member)) diff --git a/include/libc64/os_malloc.h b/include/libc64/os_malloc.h index fcd4da1e14..c4942573c4 100644 --- a/include/libc64/os_malloc.h +++ b/include/libc64/os_malloc.h @@ -64,7 +64,7 @@ void __osFreeDebug(Arena* arena, void* ptr, const char* file, int line); void* __osReallocDebug(Arena* arena, void* ptr, u32 newSize, const char* file, int line); #endif -#if PLATFORM_GC && DEBUG_FEATURES +#if !PLATFORM_N64 && DEBUG_FEATURES void __osDisplayArena(Arena* arena); extern u32 __osMalloc_FreeBlockTest_Enable; #endif diff --git a/include/line_numbers.h b/include/line_numbers.h index f0d0ae5faa..bc11d555db 100644 --- a/include/line_numbers.h +++ b/include/line_numbers.h @@ -52,16 +52,16 @@ #define LN2(ntsc_1_0, ntsc_1_1, other) \ LN(ntsc_1_0, ntsc_1_1, other, other, other, other, other, other, other, other, other, other, other, other) -// NTSC 1.0, Gamecube, and all the other versions -#define LN3(ntsc_1_0, other, gc) \ - LN(ntsc_1_0, other, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, gc) +// NTSC 1.0, iQue, GameCube, and all the other versions +#define LN3(ntsc_1_0, other, ique, gc) \ + LN(ntsc_1_0, other, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, ique) -// NTSC 1.0, NTSC 1.1, Gamecube, and all the other versions -#define LN4(ntsc_1_0, ntsc_1_1, other, gc, ique) \ +// NTSC 1.0, NTSC 1.1, iQue, GameCube, and all the other versions +#define LN4(ntsc_1_0, ntsc_1_1, other, ique, gc) \ LN(ntsc_1_0, ntsc_1_1, other, other, other, gc, gc, gc, gc, gc, gc, gc, gc, ique) -// NTSC 1.0, NTSC 1.1, NTSC 1.2/PAL 1.0, Gamecube US/JP, Gamecube EU, and Gamecube CE -#define LN5(ntsc_1_0, ntsc_1_1, other, pal_1_1, gc_ntsc, gc_eu, gc_jp_ce) \ - LN(ntsc_1_0, ntsc_1_1, other, other, pal_1_1, gc_ntsc, gc_ntsc, gc_ntsc, gc_ntsc, gc_eu, gc_eu, gc_eu, gc_jp_ce, gc_jp_ce) +// NTSC 1.0, NTSC 1.1, NTSC 1.2/PAL 1.0, iQue, Gamecube US/JP, Gamecube EU, and Gamecube CE +#define LN5(ntsc_1_0, ntsc_1_1, other, pal_1_1, ique, gc_ntsc, gc_eu, gc_jp_ce) \ + LN(ntsc_1_0, ntsc_1_1, other, other, pal_1_1, gc_ntsc, gc_ntsc, gc_ntsc, gc_ntsc, gc_eu, gc_eu, gc_eu, gc_jp_ce, ique) #endif diff --git a/include/macros.h b/include/macros.h index 59360541d0..343484028d 100644 --- a/include/macros.h +++ b/include/macros.h @@ -1,6 +1,7 @@ #ifndef MACROS_H #define MACROS_H +#include "terminal.h" #include "versions.h" #ifndef AVOID_UB @@ -51,12 +52,40 @@ #if DEBUG_FEATURES #define PRINTF osSyncPrintf +#elif defined(EGCS) +#define PRINTF(format, args...) while (0) osSyncPrintf(format, ##args) #elif IDO_PRINTF_WORKAROUND #define PRINTF(args) (void)0 #else #define PRINTF(format, ...) (void)0 #endif +#if DEBUG_FEATURES +#define PRINTF_COLOR_BLACK() PRINTF(VT_FGCOL(BLACK)) +#define PRINTF_COLOR_RED() PRINTF(VT_FGCOL(RED)) +#define PRINTF_COLOR_GREEN() PRINTF(VT_FGCOL(GREEN)) +#define PRINTF_COLOR_YELLOW() PRINTF(VT_FGCOL(YELLOW)) +#define PRINTF_COLOR_BLUE() PRINTF(VT_FGCOL(BLUE)) +#define PRINTF_COLOR_MAGENTA() PRINTF(VT_FGCOL(MAGENTA)) +#define PRINTF_COLOR_CYAN() PRINTF(VT_FGCOL(CYAN)) +#define PRINTF_COLOR_WHITE() PRINTF(VT_FGCOL(WHITE)) +#define PRINTF_COLOR_WARNING() PRINTF(VT_COL(YELLOW, BLACK)) +#define PRINTF_COLOR_ERROR() PRINTF(VT_COL(RED, WHITE)) +#define PRINTF_RST() PRINTF(VT_RST) +#else +#define PRINTF_COLOR_BLACK() (void)0 +#define PRINTF_COLOR_RED() (void)0 +#define PRINTF_COLOR_GREEN() (void)0 +#define PRINTF_COLOR_YELLOW() (void)0 +#define PRINTF_COLOR_BLUE() (void)0 +#define PRINTF_COLOR_MAGENTA() (void)0 +#define PRINTF_COLOR_CYAN() (void)0 +#define PRINTF_COLOR_WHITE() (void)0 +#define PRINTF_COLOR_WARNING() (void)0 +#define PRINTF_COLOR_ERROR() (void)0 +#define PRINTF_RST() (void)0 +#endif + #if DEBUG_FEATURES #define LOG(exp, value, format, file, line) \ do { \ @@ -76,12 +105,12 @@ #define LOG_FLOAT(exp, value, file, line) LOG(exp, value, "%f", file, line) #define SET_NEXT_GAMESTATE(curState, newInit, newStruct) \ - do { \ + if (1) { \ GameState* state = curState; \ \ (state)->init = newInit; \ (state)->size = sizeof(newStruct); \ - } while (0) + } (void)0 #if DEBUG_FEATURES diff --git a/include/message_data_static.h b/include/message_data_static.h index 2b08302731..15e93ec475 100644 --- a/include/message_data_static.h +++ b/include/message_data_static.h @@ -47,9 +47,6 @@ typedef struct MessageTableEntry { #define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) - -#define FONT_MESSAGE_OFFSET (_message_0xFFFC_jpn - (const char*)_jpn_message_data_staticSegmentStart) -#define FONT_MESSAGE_LENGTH (_message_0xFFFD_jpn - _message_0xFFFC_jpn) #else #define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ extern const char _message_##textId##_nes[]; \ @@ -61,9 +58,6 @@ typedef struct MessageTableEntry { #define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) - -#define FONT_MESSAGE_OFFSET (_message_0xFFFC_nes - (const char*)_nes_message_data_staticSegmentStart) -#define FONT_MESSAGE_LENGTH (_message_0xFFFD_nes - _message_0xFFFC_nes) #endif #define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \ diff --git a/include/ultra64.h b/include/ultra64.h index e8a4bd0ca7..30e43563e9 100644 --- a/include/ultra64.h +++ b/include/ultra64.h @@ -70,7 +70,6 @@ void* osViGetNextFramebuffer(void); void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQueue, OSMesg* cmdBuf, s32 cmdMsgCnt); void __osDevMgrMain(void* arg); s32 __osPiRawStartDma(s32 dir, u32 cartAddr, void* dramAddr, size_t size); -u32 osVirtualToPhysical(void* vaddr); void osViBlack(u8 active); s32 __osSiRawReadIo(void* devAddr, u32* dst); OSId osGetThreadId(OSThread* thread); diff --git a/include/ultra64/R4300.h b/include/ultra64/R4300.h index be0dfab570..1c2da84f12 100644 --- a/include/ultra64/R4300.h +++ b/include/ultra64/R4300.h @@ -4,10 +4,8 @@ #ifdef _LANGUAGE_C #include "ultratypes.h" #define U32(x) ((u32)x) -#define C_REG(x) (x) #else #define U32(x) (x) -#define C_REG(x) $x #endif /* Segment base addresses and sizes */ @@ -312,33 +310,64 @@ #define WATCHHI_VALIDMASK 0x0000000F /* Coprocessor 0 registers */ -#define C0_INX C_REG(0) -#define C0_RAND C_REG(1) -#define C0_ENTRYLO0 C_REG(2) -#define C0_ENTRYLO1 C_REG(3) -#define C0_CONTEXT C_REG(4) -#define C0_PAGEMASK C_REG(5) /* page mask */ -#define C0_WIRED C_REG(6) /* # wired entries in tlb */ -#define C0_BADVADDR C_REG(8) -#define C0_COUNT C_REG(9) /* free-running counter */ -#define C0_ENTRYHI C_REG(10) -#define C0_COMPARE C_REG(11) /* counter comparison reg. */ -#define C0_SR C_REG(12) -#define C0_CAUSE C_REG(13) -#define C0_EPC C_REG(14) -#define C0_PRID C_REG(15) /* revision identifier */ -#define C0_CONFIG C_REG(16) /* hardware configuration */ -#define C0_LLADDR C_REG(17) /* load linked address */ -#define C0_WATCHLO C_REG(18) /* watchpoint */ -#define C0_WATCHHI C_REG(19) /* watchpoint */ -#define C0_ECC C_REG(26) /* S-cache ECC and primary parity */ -#define C0_CACHE_ERR C_REG(27) /* cache error status */ -#define C0_TAGLO C_REG(28) /* cache operations */ -#define C0_TAGHI C_REG(29) /* cache operations */ -#define C0_ERROR_EPC C_REG(30) /* ECC error prg. counter */ +#ifdef _LANGUAGE_C +#define C0_INX 0 +#define C0_RAND 1 +#define C0_ENTRYLO0 2 +#define C0_ENTRYLO1 3 +#define C0_CONTEXT 4 +#define C0_PAGEMASK 5 /* page mask */ +#define C0_WIRED 6 /* # wired entries in tlb */ +#define C0_BADVADDR 8 +#define C0_COUNT 9 /* free-running counter */ +#define C0_ENTRYHI 10 +#define C0_COMPARE 11 /* counter comparison reg. */ +#define C0_SR 12 +#define C0_CAUSE 13 +#define C0_EPC 14 +#define C0_PRID 15 /* revision identifier */ +#define C0_CONFIG 16 /* hardware configuration */ +#define C0_LLADDR 17 /* load linked address */ +#define C0_WATCHLO 18 /* watchpoint */ +#define C0_WATCHHI 19 /* watchpoint */ +#define C0_ECC 26 /* S-cache ECC and primary parity */ +#define C0_CACHE_ERR 27 /* cache error status */ +#define C0_TAGLO 28 /* cache operations */ +#define C0_TAGHI 29 /* cache operations */ +#define C0_ERROR_EPC 30 /* ECC error prg. counter */ +#else +#define C0_INX $0 +#define C0_RAND $1 +#define C0_ENTRYLO0 $2 +#define C0_ENTRYLO1 $3 +#define C0_CONTEXT $4 +#define C0_PAGEMASK $5 /* page mask */ +#define C0_WIRED $6 /* # wired entries in tlb */ +#define C0_BADVADDR $8 +#define C0_COUNT $9 /* free-running counter */ +#define C0_ENTRYHI $10 +#define C0_COMPARE $11 /* counter comparison reg. */ +#define C0_SR $12 +#define C0_CAUSE $13 +#define C0_EPC $14 +#define C0_PRID $15 /* revision identifier */ +#define C0_CONFIG $16 /* hardware configuration */ +#define C0_LLADDR $17 /* load linked address */ +#define C0_WATCHLO $18 /* watchpoint */ +#define C0_WATCHHI $19 /* watchpoint */ +#define C0_ECC $26 /* S-cache ECC and primary parity */ +#define C0_CACHE_ERR $27 /* cache error status */ +#define C0_TAGLO $28 /* cache operations */ +#define C0_TAGHI $29 /* cache operations */ +#define C0_ERROR_EPC $30 /* ECC error prg. counter */ +#endif /* floating-point status register */ -#define C1_FPCSR C_REG(31) +#ifdef _LANGUAGE_C +#define C1_FPCSR 31 +#else +#define C1_FPCSR $31 +#endif #define FPCSR_FS 0x01000000 /* flush denorm to zero */ #define FPCSR_C 0x00800000 /* condition bit */ diff --git a/include/ultra64/asm.h b/include/ultra64/asm.h index acf6b8f0a7..d887673fa6 100644 --- a/include/ultra64/asm.h +++ b/include/ultra64/asm.h @@ -78,6 +78,9 @@ #define MTC0(dst, src) \ .set noreorder; mtc0 dst, src; .set reorder +#define CACHE(op, base) \ + .set noreorder; cache op, base; .set reorder + #define CFC1(dst, src) \ .set noreorder; cfc1 dst, src; .set reorder #define CTC1(src, dst) \ @@ -95,7 +98,7 @@ #define TLBP \ .set noreorder; tlbp; .set reorder -#ifdef __sgi +#ifndef __GNUC__ #define ABS(x, y) \ .globl x; \ x = y diff --git a/include/ultra64/bbskapi.h b/include/ultra64/bbskapi.h new file mode 100644 index 0000000000..7918975475 --- /dev/null +++ b/include/ultra64/bbskapi.h @@ -0,0 +1,272 @@ +/** + * @file bbskapi.h + * + * This file contains the external API for the iQue Player's Secure Kernel Calls. + * + * Applications require permission to call particular Secure Kernel Calls, defined in the associated Ticket. + * Most are not callable by games. + */ +#ifndef BB_SKAPI_H +#define BB_SKAPI_H + +#include "ultratypes.h" + +#define SKC_OK 0 +#define SKC_RECRYPT_INVALID 1 +#define SKC_RECRYPT_2 2 // Complete? +#define SKC_RECRYPT_3 3 // Partial? +#define SKC_RECRYPT_4 4 // Beginning? +#define SKC_INVALID_ARGS -1 +#define SKC_INVALID_TSRL -2 +#define SKC_INVALID_CARL -3 +#define SKC_INVALID_CPRL -4 +#define SKC_INVALID_CERT -9 +#define SKC_NO_PERMISSION -11 + +typedef struct BbAppLaunchCrls BbAppLaunchCrls; +typedef struct BbCertBase BbCertBase; +typedef struct BbEccSig BbEccSig; +typedef struct BbRecryptList BbRecryptList; +typedef struct BbShaHash BbShaHash; +typedef struct BbTicketBundle BbTicketBundle; + +/** + * Retrieves the console's unique BBID. + * + * @param bbId Location to write the BBID to. Must be a pointer to cached DRAM with 4-byte alignment. + * @return + * SKC_NO_PERMISSION If called with insufficient permission. + * SKC_INVALID_ARGS If the supplied pointer is not valid. + * SKC_OK Otherwise. + */ +s32 skGetId(u32* bbId); + +/** + * Prepares to launch an application. + * The provided ticket bundle is verified and made the active ticket bundle. + * The AES decryption hardware is prepared. + * + * @param bundle Ticket Bundle associated with this application. + * @param crls Application Certificate Revocation Lists to check when verifying the ticket bundle. + * The ticket bundle must be signed by the Root signature without going through any + * revoked certificates. + * @param recryptList System Recrypt List (encrypted and digitally signed) + * @return + * SKC_INVALID_ARGS If any inputs are or contain invalid pointers, + * or the ticket is not for this console, + * or the ticket is for a trial that has expired. + * SKC_INVALID_TSRL If the provided TSRL revocation list is invalid. + * SKC_INVALID_CARL If the provided CARL revocation list is invalid. + * SKC_INVALID_CPRL If the provided CPRL revocation list is invalid. + * SKC_INVALID_CERT If a digital certificate was revoked by one of the revocation lists. + * SKC_RECRYPT_3 If the recrypt state for this app is not in an acceptable state to be launched. + * SKC_RECRYPT_4 If the recrypt state for this app is not in an acceptable state to be launched. + * SKC_NO_PERMISSION If called with insufficient permission. + * SKC_OK Otherwise. + */ +s32 skLaunchSetup(BbTicketBundle* bundle, BbAppLaunchCrls* crls, BbRecryptList* recryptList); + +/** + * Launches a prepared application that is assumed to have been loaded into memory at the entrypoint between calling + * skLaunchSetup and calling this. skLaunchSetup must have been called prior to set the active ticket bundle. + * + * @param entrypoint The entrypoint address of the app to launch. + * + * @return + * SKC_INVALID_ARGS If the entrypoint is an invalid pointer, + * or if content failed a hash check for non-recrypted apps, + * or if the content is an expired trial. + * SKC_NO_PERMISSION If called with insufficient permission. + * @note Does not return if the call is successful. + */ +s32 skLaunch(void* entrypoint); + +/** + * Verifies whether a provided Recrypt List is valid. + * + * @param recryptList Pointer to the (encrypted and digitally signed) recrypt list to verify. + * @return + * SKC_OK If the recrypt list is valid + * SKC_INVALID_ARGS If the recrypt list is invalid + * (e.g. contains invalid pointers or its ECDSA signature fails to verify) + * SKC_NO_PERMISSION If called with insufficient permission. + */ +s32 skRecryptListValid(BbRecryptList* recryptList); + +/** + * Begins a new recryption task. Content downloaded is initially encrypted with the Common Key but may be re-encrypted + * with a new randomly generated AES key if the recrypt flag is set in the content metadata. Like with skLaunchSetup, + * the provided ticket bundle is first verified before being made the active ticket bundle. + * + * @param bundle The ticket bundle associated with the content that will be recrypted. + * @param crls Application Certificate Revocation Lists to check when verifying the ticket bundle. + * The ticket bundle must be signed by the Root signature without going through any + * revoked certificates. + * @param recryptList The recrypt list that the AES key will be saved to, after being encrypted with the + * console-specific recrypt list key. + * @return + * SKC_RECRYPT_INVALID If called on a ticket bundle that does not have the recrypt flag set. + * SKC_INVALID_ARGS If any inputs are or contain invalid pointers, + * or the ticket is not for this console, + * or the ticket is for a trial that has expired. + * SKC_INVALID_TSRL If the provided TSRL revocation list is invalid. + * SKC_INVALID_CARL If the provided CARL revocation list is invalid. + * SKC_INVALID_CPRL If the provided CPRL revocation list is invalid. + * SKC_INVALID_CERT If a digital certificate was revoked by one of the revocation lists. + * SKC_NO_PERMISSION If called with insufficient permission. + * Otherwise, one of SKC_RECRYPT_* will be returned communicating the initial state of the recryption process. + */ +s32 skRecryptBegin(BbTicketBundle* bundle, BbAppLaunchCrls* crls, BbRecryptList* recryptList); + +/** + * Recrypts the provided data, using the previously set context. + * Must be called following skRecryptBegin. + * + * @param buf Pointer to app content to encrypt and hash. + * @param size Amount of data to process in this buffer. + * @return + * SKC_INVALID_ARGS If the provided buffer is not fully contained in RAM or is otherwise invalid. + * SKC_NO_PERMISSION If called with insufficient permission. + * SKC_OK Otherwise. + */ +s32 skRecryptData(u8* buf, u32 size); + +/** + * Resumes a partially-complete recryption. The last chunk of successfully-recrypted data must be provided in order to + * set the AES-128-CBC Initialization Vector to continue recryption of the next chunk. + * Must be called following skRecryptBegin. + * + * @param buf Pointer to last chunk of successfully-recrypted content. + * @param size Amount of data available. + * @return + * SKC_INVALID_ARGS If the provided buffer is not fully contained in RAM or is otherwise invalid. + * SKC_NO_PERMISSION If called with insufficient permission. + * SKC_OK Otherwise. + */ +s32 skRecryptComputeState(u8* buf, u32 size); + +/** + * Concludes the recryption process. The SHA-1 hash of the content, computed during recryption, is checked against the + * hash in the active ticket bundle; if it passes, the recrypt list entry for the active content is updated to indicate + * that recryption is complete and was successful. + * + * @param recryptList The (encrypted and digitally signed) recrypt list to update. + * @return + * SKC_OK If recryption succeeded. + * SKC_INVALID_ARGS If recryption failed (e.g. if the hash of the content did not match the hash in the ticket bundle) + * or if the provided recrypt list is invalid or cannot find the entry for the content. + * SKC_NO_PERMISSION If called with insufficient permission. + */ +s32 skRecryptEnd(BbRecryptList* recryptList); + +/** + * Generates a digital signature for the provided SHA-1 hash (treated as a message) using the Elliptic Curve Digital + * Signature Algorithm (ECDSA) on the curve sect233r1 with the console's ECDSA Private Key. Appends an identity of 1 to + * the end of the message prior to signing. + * + * @param hash The SHA-1 hash to sign. + * @param outSignature The resulting ECDSA digital signature. + * @return + * SKC_INVALID_ARGS If either of the arguments is an invalid pointer. + * SKC_NO_PERMISSION If called with insufficient permission. + * SKC_OK Otherwise. + */ +s32 skSignHash(BbShaHash* hash, BbEccSig* outSignature); + +/** + * Verifies a SHA-1 hash (treated as a message) against a digital signature using either the Elliptic Curve Digital + * Signature Algorithm (ECDSA) or the RSA Digital Signature Algorithm. For RSA, either 2048-bit or 4096-bit signatures + * can be recognized. + * + * For verifying self-signed (e.g. via skSignHash) ECDSA signatures the certificate chain and revocation lists are not + * required and may be passed as NULL, the public key is the console's own ECDSA public key. For verifying other types + * of signatures, a valid certificate chain and certificate revocation lists must be provided, in which case the + * signature must be signed by the Root certificate without going through any revoked certificates. + * + * This can only verify hashes signed with an identity of 1, such as those signed via skSignHash. + * + * @param hash The SHA-1 hash to check the signature of. + * @param signature The signature to compare against. May be an ECDSA, RSA2048 or RSA4096 signature. + * @param certChain Certificate Chain, NULL-terminated list of certificate pointers. + * Not required for self-signed ECDSA signatures and must be NULL in that case. + * Should not be more than 5 certificates long. + * Should end on the Root signature. + * @param crls Certificate Revocation Lists to check certificates against. Not required for self-signed ECDSA signatures. + * @return + * SKC_OK If the hash was successfully verified against the signature. + * SKC_INVALID_ARGS If any arguments are invalid pointers, + * or the hash could not be verified against the digital signature, + * or the certificate chain was invalid, + * or if any certificate revocation lists were invalid. + * SKC_INVALID_CERT If a digital certificate was revoked by one of the revocation lists. + * SKC_NO_PERMISSION If called with insufficient permission. + */ +s32 skVerifyHash(BbShaHash* hash, u32* signature, BbCertBase** certChain, BbAppLaunchCrls* crls); + +/** + * Retrieves the consumption counters for all currently-tracked applications and the Ticket ID (TID) Window. + * + * The TID Window determines the TID for the first counter (cc[0]), the other counters (cc[i]) are associated with + * tidWindow + i. + * + * The consumption counters track either the number of minutes that a trial app has been played for, or the number of + * times a trial app has been launched. + * + * @param tidWindow The location to save the TID window to. + * @param cc An array of 26 u16s to save the consumption counters into. + * @return + * SKC_INVALID_ARGS If either pointer is invalid or there is not enough room to save all the consumption counters. + * SKC_NO_PERMISSION If called with insufficient permission. + * SKC_OK Otherwise. + */ +s32 skGetConsumption(u16* tidWindow, u16 cc[26]); + +/** + * Increments the Ticket ID Window by 1 and moves all consumption counters down by 1 slot to match the new window. The + * counter previously at position 0 is forgotten. + * + * @return + * SKC_NO_PERMISSION If called with insufficient permission. + * SKC_INVALID_ARGS If the resulting state could not be saved internally. + * SKC_OK If success. + */ +s32 skAdvanceTicketWindow(void); + +/** + * Overrides the trial limit and trial type stored in the currently loaded ticket. + * + * @param limit The new trial limit. Either a length of time or the number of allowed launches, depending on trial type. + * @param code The new trial type + * 0 = Time-limited in minutes, call skKeepAlive periodically + * 1 = Limited by number of launches + * 2 = Time-limited in minutes, no need to call skKeepAlive (TOVERIFY) + * @return + * SKC_OK If success. + * SKC_INVALID_ARGS If no ticket is currently loaded. + * SKC_NO_PERMISSION If called with insufficient permission. + */ +s32 skSetLimit(u16 limit, u16 code); + +/** + * Returns to the system menu. + * + * @return + * SKC_NO_PERMISSION If called with insufficient permission. + * @note Does not return if called with permission. + */ +s32 skExit(void); + +/** + * Keeps trial applications alive. + * + * The hardware trial timer does not have a very long period so must be refreshed periodically by calling this function. + * This function updates the timer and checks for an expiry. + * + * @return + * SKC_NO_PERMISSION If called with insufficient permission. + * SKC_OK Otherwise. + * @note This function may not return if it detects the trial has expired. + */ +s32 skKeepAlive(void); + +#endif diff --git a/include/ultra64/bcp.h b/include/ultra64/bcp.h new file mode 100644 index 0000000000..f66fee2f02 --- /dev/null +++ b/include/ultra64/bcp.h @@ -0,0 +1,275 @@ +#ifndef BCP_H +#define BCP_H + +#include "rcp.h" + +/****************************************************************************** + * Additional MIPS Interface (MI) Registers + */ + +/** + * Accesses to this register outside of Secure Mode cause an NMI to transfer control + * to the Secure Kernel. + * + * [25] ?: System software writes to this bit when launching an app or game + * [24] SK RAM Access: Set to 1 to enable access to 0x8000 bytes at 0x1FC40000 + * [7] Secure Trap Cause: Memory card removed + * [6] Secure Trap Cause: Power button pressed + * [5] Secure Trap Cause: MI Error + * [4] Secure Trap Cause: PI Error + * [3] Secure Trap Cause: Timer expired + * [2] Secure Trap Cause: Syscall via read of this register outside of secure mode + * [1] Boot ROM Swap: 0 = SK mapped at 0x1FC00000, Boot ROM mapped at 0x1FC20000 + * 1 = Boot ROM mapped at 0x1FC00000, SK mapped at 0x1FC20000 + * [0] Secure Mode: 0 = not in secure mode + * 1 = in secure mode + */ +#define MI_SECURE_EXCEPTION_REG (MI_BASE_REG + 0x14) + +/** + * Read: + * [25] MD (active, 1 if card is currently disconnected else 0) + * [24] Power Button (active, 1 if button is currently pressed else 0) + * [13] MD (pending interrupt) + * [12] Power Button (pending interrupt) + * [11] USB1 + * [10] USB0 + * [ 9] PI_ERR + * [ 8] IDE + * [ 7] AES + * [ 6] FLASH + * [ 5] DP + * [ 4] PI + * [ 3] VI + * [ 2] AI + * [ 1] SI + * [ 0] SP + * + * Write: + * [13] Clear MD Interrupt + */ +#define MI_EX_INTR_REG (MI_BASE_REG + 0x38) + +/* + * MI_EX_INTR_REG: read bits + */ +#define MI_EX_INTR_SP (1 << 0) +#define MI_EX_INTR_SI (1 << 1) +#define MI_EX_INTR_AI (1 << 2) +#define MI_EX_INTR_VI (1 << 3) +#define MI_EX_INTR_PI (1 << 4) +#define MI_EX_INTR_DP (1 << 5) +#define MI_EX_INTR_FLASH (1 << 6) +#define MI_EX_INTR_AES (1 << 7) +#define MI_EX_INTR_IDE (1 << 8) +#define MI_EX_INTR_PI_ERR (1 << 9) +#define MI_EX_INTR_USB0 (1 << 10) +#define MI_EX_INTR_USB1 (1 << 11) +#define MI_EX_INTR_PWR_BTN (1 << 12) +#define MI_EX_INTR_MD (1 << 13) +#define MI_EX_INTR_PWR_BTN_PRESSED (1 << 24) /* updated in real-time, unrelated to interrupt */ +#define MI_EX_INTR_CARD_NOT_PRESENT (1 << 25) /* updated in real-time, unrelated to interrupt */ + +#define MI_EX_INTR_ALL \ + (MI_EX_INTR_FLASH | MI_EX_INTR_AES | MI_EX_INTR_IDE | MI_EX_INTR_PI_ERR | \ + MI_EX_INTR_USB0 | MI_EX_INTR_USB1 | MI_EX_INTR_PWR_BTN | MI_EX_INTR_MD) + +/* + * MI_EX_INTR_REG: write bits + */ +#define MI_EX_INTR_CLR_MD (1 << 13) + +/** + * Write: + * [27:26] Set/Clear MD + * [25:24] Set/Clear BUTTON + * [23:22] Set/Clear USB1 + * [21:20] Set/Clear USB0 + * [19:18] Set/Clear PI_ERR + * [17:16] Set/Clear IDE + * [15:14] Set/Clear AES + * [13:12] Set/Clear FLASH + * [11:10] Set/Clear DP + * [ 9: 8] Set/Clear PI + * [ 7: 6] Set/Clear VI + * [ 5: 4] Set/Clear AI + * [ 3: 2] Set/Clear SI + * [ 1: 0] Set/Clear SP + * + * Read: + * [13] MD + * [12] BUTTON + * [11] USB1 + * [10] USB0 + * [ 9] PI_ERR + * [ 8] IDE + * [ 7] AES + * [ 6] FLASH + * [ 5] DP + * [ 4] PI + * [ 3] VI + * [ 2] AI + * [ 1] SI + * [ 0] SP + */ +#define MI_EX_INTR_MASK_REG (MI_BASE_REG + 0x3C) + +/* + * MI_EX_INTR_MASK_REG: write bits + */ +#define MI_EX_INTR_MASK_CLR_SP (1 << 0) /* clear SP mask */ +#define MI_EX_INTR_MASK_SET_SP (1 << 1) /* set SP mask */ +#define MI_EX_INTR_MASK_CLR_SI (1 << 2) /* clear SI mask */ +#define MI_EX_INTR_MASK_SET_SI (1 << 3) /* set SI mask */ +#define MI_EX_INTR_MASK_CLR_AI (1 << 4) /* clear AI mask */ +#define MI_EX_INTR_MASK_SET_AI (1 << 5) /* set AI mask */ +#define MI_EX_INTR_MASK_CLR_VI (1 << 6) /* clear VI mask */ +#define MI_EX_INTR_MASK_SET_VI (1 << 7) /* set VI mask */ +#define MI_EX_INTR_MASK_CLR_PI (1 << 8) /* clear PI mask */ +#define MI_EX_INTR_MASK_SET_PI (1 << 9) /* set PI mask */ +#define MI_EX_INTR_MASK_CLR_DP (1 << 10) /* clear DP mask */ +#define MI_EX_INTR_MASK_SET_DP (1 << 11) /* set DP mask */ +#define MI_EX_INTR_MASK_CLR_FLASH (1 << 12) /* clear FLASH mask */ +#define MI_EX_INTR_MASK_SET_FLASH (1 << 13) /* set FLASH mask */ +#define MI_EX_INTR_MASK_CLR_AES (1 << 14) /* clear AES mask */ +#define MI_EX_INTR_MASK_SET_AES (1 << 15) /* set AES mask */ +#define MI_EX_INTR_MASK_CLR_IDE (1 << 16) /* clear IDE mask */ +#define MI_EX_INTR_MASK_SET_IDE (1 << 17) /* set IDE mask */ +#define MI_EX_INTR_MASK_CLR_PI_ERR (1 << 18) /* clear PI_ERR mask */ +#define MI_EX_INTR_MASK_SET_PI_ERR (1 << 19) /* set PI_ERR mask */ +#define MI_EX_INTR_MASK_CLR_USB0 (1 << 20) /* clear USB0 mask */ +#define MI_EX_INTR_MASK_SET_USB0 (1 << 21) /* set USB0 mask */ +#define MI_EX_INTR_MASK_CLR_USB1 (1 << 22) /* clear USB1 mask */ +#define MI_EX_INTR_MASK_SET_USB1 (1 << 23) /* set USB1 mask */ +#define MI_EX_INTR_MASK_CLR_PWR_BTN (1 << 24) /* clear PWR_BTN mask */ +#define MI_EX_INTR_MASK_SET_PWR_BTN (1 << 25) /* set PWR_BTN mask */ +#define MI_EX_INTR_MASK_CLR_MD (1 << 26) /* clear MD mask */ +#define MI_EX_INTR_MASK_SET_MD (1 << 27) /* set MD mask */ + +/* + * MI_EX_INTR_MASK_REG: read bits + */ +#define MI_EX_INTR_MASK_SP (1 << 0) /* SP intr mask */ +#define MI_EX_INTR_MASK_SI (1 << 1) /* SI intr mask */ +#define MI_EX_INTR_MASK_AI (1 << 2) /* AI intr mask */ +#define MI_EX_INTR_MASK_VI (1 << 3) /* VI intr mask */ +#define MI_EX_INTR_MASK_PI (1 << 4) /* PI intr mask */ +#define MI_EX_INTR_MASK_DP (1 << 5) /* DP intr mask */ +#define MI_EX_INTR_MASK_FLASH (1 << 6) /* FLASH intr mask */ +#define MI_EX_INTR_MASK_AES (1 << 7) /* AES intr mask */ +#define MI_EX_INTR_MASK_IDE (1 << 8) /* IDE intr mask */ +#define MI_EX_INTR_MASK_PI_ERR (1 << 9) /* PI_ERR intr mask */ +#define MI_EX_INTR_MASK_USB0 (1 << 10) /* USB0 intr mask */ +#define MI_EX_INTR_MASK_USB1 (1 << 11) /* USB1 intr mask */ +#define MI_EX_INTR_MASK_PWR_BTN (1 << 12) /* PWR_BTN intr mask */ +#define MI_EX_INTR_MASK_MD (1 << 13) /* MD intr mask */ + +/****************************************************************************** + * Additional Parallel Interface (PI) Registers + */ + +/** + * Write: + * [31] Execute command after write + * [30] Interrupt when done + * [29:24] ? + * [23:16] NAND Command + * [15] ? + * [14] Buffer Select + * [13:12] Device Select + * [11] Do Error Correction + * [10] NAND Command is Multi-Cycle + * [ 9: 0] Data Transfer Length in Bytes + * + * Writing 0 to this register clears the interrupt + * + * Read: + * [31] Busy + * [11] Single-Bit Error Corrected + * [10] Double-Bit Error Uncorrectable + */ +#define PI_NAND_CTRL_REG (PI_BASE_REG + 0x48) + +/** + * PI internal buffer DMA read length. Writes initiate a DMA from RDRAM to the PI buffer. + */ +#define PI_EX_RD_LEN_REG (PI_BASE_REG + 0x58) + +/** + * PI internal buffer DMA write length. Writes initiate a DMA from the PI buffer to RDRAM. + */ +#define PI_EX_WR_LEN_REG (PI_BASE_REG + 0x5C) + +/** + * [31:16] Box ID + * [31:30] Hardware Revision? (osInitialize checks this and sets __osBbIsBb to 2 if != 0) + * [29:27] ?? (not seen) + * [26:25] ?? (system clock speed identifier?) + * [24:22] ?? (bootrom, checked against MI_10_REG and copied there if mismatch) + * [21:16] ?? (not seen) + * [ 7: 4] GPIO direction control + * [7] RTC Data output enable + * [6] RTC Clock output enable + * [5] Error LED output enable + * [4] Power Control output enable + * [ 3: 0] GPIO in/out value + * [3] RTC Data output value (0=low, 1=high) + * [2] RTC Clock output value (0=low, 1=high) + * [1] Error LED (0=on, 1=off) + * [0] Power Control (0=off, 1=on) + */ +#define PI_GPIO_REG (PI_BASE_REG + 0x60) + +/* Box ID */ +#define PI_GPIO_GET_BOXID(reg) ((reg) >> 16) +#define PI_GPIO_IS_HW_V2(reg) ((reg) & (3 << 30)) + +/* GPIO: Input/Output enables */ +#define PI_GPIO_I_PWR ((0 << 0) << 4) +#define PI_GPIO_O_PWR ((1 << 0) << 4) +#define PI_GPIO_I_LED ((0 << 1) << 4) +#define PI_GPIO_O_LED ((1 << 1) << 4) +#define PI_GPIO_I_RTC_CLK ((0 << 2) << 4) +#define PI_GPIO_O_RTC_CLK ((1 << 2) << 4) +#define PI_GPIO_I_RTC_DAT ((0 << 3) << 4) +#define PI_GPIO_O_RTC_DAT ((1 << 3) << 4) + +/* GPIO: Output controls */ +/* Power */ +#define PI_GPIO_PWR_OFF (0 << 0) +#define PI_GPIO_PWR_ON (1 << 0) +/* LED */ +#define PI_GPIO_LED_ON (0 << 1) +#define PI_GPIO_LED_OFF (1 << 1) +/* RTC */ +#define PI_GPIO_RTC_CLK_LO (0 << 2) +#define PI_GPIO_RTC_CLK_HI (1 << 2) +#define PI_GPIO_RTC_DAT_LO (0 << 3) +#define PI_GPIO_RTC_DAT_HI (1 << 3) + +/* GPIO: Input getters */ +#define PI_GPIO_GET_PWR(reg) (((reg) >> 0) & 1) +#define PI_GPIO_GET_LED(reg) (((reg) >> 1) & 1) +#define PI_GPIO_GET_RTC_CLK(reg) (((reg) >> 2) & 1) +#define PI_GPIO_GET_RTC_DAT(reg) (((reg) >> 3) & 1) + +/** + * [31] ? + */ +#define PI_64_REG (PI_BASE_REG + 0x64) + +/****************************************************************************** + * Additional Serial Interface (SI) Registers + */ + +/** + * ? + */ +#define SI_0C_REG (SI_BASE_REG + 0x0C) + +/** + * ? + */ +#define SI_1C_REG (SI_BASE_REG + 0x1C) + +#endif diff --git a/include/ultra64/controller.h b/include/ultra64/controller.h index 4ce047a201..1b6d0cf323 100644 --- a/include/ultra64/controller.h +++ b/include/ultra64/controller.h @@ -17,6 +17,7 @@ #define CONT_CMD_WRITE_MEMPACK 3 #define CONT_CMD_READ_EEPROM 4 #define CONT_CMD_WRITE_EEPROM 5 +#define CONT_CMD_CHANNEL_RESET 0xFD #define CONT_CMD_RESET 0xFF #define CONT_CMD_REQUEST_STATUS_TX 1 diff --git a/include/ultra64/convert.h b/include/ultra64/convert.h index 13679fc5b0..771fad19cd 100644 --- a/include/ultra64/convert.h +++ b/include/ultra64/convert.h @@ -15,4 +15,6 @@ #define OS_PHYSICAL_TO_K0(x) (void*)(((u32)(x)+0x80000000)) #define OS_PHYSICAL_TO_K1(x) (void*)(((u32)(x)+0xA0000000)) +u32 osVirtualToPhysical(void* vaddr); + #endif diff --git a/include/ultra64/libc.h b/include/ultra64/libc.h index e71cb879d7..3480f101ad 100644 --- a/include/ultra64/libc.h +++ b/include/ultra64/libc.h @@ -5,7 +5,7 @@ void osSyncPrintf(const char* fmt, ...); -#ifdef __GNUC__ +#if defined(__GNUC__) && defined(NON_MATCHING) void bzero(void* __s, unsigned int __n); int bcmp(const void* __sl, const void* __s2, unsigned int __n); void bcopy(const void* __src, void* __dest, unsigned int __n); diff --git a/include/ultra64/message.h b/include/ultra64/message.h index 055c2e3249..dc89dc48ed 100644 --- a/include/ultra64/message.h +++ b/include/ultra64/message.h @@ -21,6 +21,16 @@ #define OS_EVENT_FAULT 12 /* CPU fault event: used by rmon */ #define OS_EVENT_THREADSTATUS 13 /* CPU thread status: used by rmon */ #define OS_EVENT_PRENMI 14 /* Pre NMI interrupt */ +#ifdef BBPLAYER +#define OS_EVENT_FLASH 23 /* NAND flash operation complete */ +#define OS_EVENT_AES 24 /* AES decryption complete */ +#define OS_EVENT_IDE 25 /* IDE transfer complete */ +#define OS_EVENT_PI_ERR 26 /* PI Error? */ +#define OS_EVENT_USB0 27 /* USB Controller 0 */ +#define OS_EVENT_USB1 28 /* USB Controller 1 */ +#define OS_EVENT_UNK_29 29 /* ? */ +#define OS_EVENT_MD 30 /* Memory card removed */ +#endif #ifdef _LANGUAGE_C diff --git a/include/ultra64/viint.h b/include/ultra64/viint.h index 6fbdb023df..2df9936405 100644 --- a/include/ultra64/viint.h +++ b/include/ultra64/viint.h @@ -35,5 +35,12 @@ #define ORIGIN(v) (v) #define VINTR(v) (v) #define HSTART(start, end) START(start, end) +#define VSTART(start, end) START(start, end) + +#ifdef BBPLAYER +#define VI_CTRL_PIXEL_ADV_DEFAULT VI_CTRL_PIXEL_ADV(1) +#else +#define VI_CTRL_PIXEL_ADV_DEFAULT VI_CTRL_PIXEL_ADV(3) +#endif #endif diff --git a/include/variables.h b/include/variables.h index c24ae4f643..f5f4599e7a 100644 --- a/include/variables.h +++ b/include/variables.h @@ -9,11 +9,24 @@ extern Mtx D_01000000; extern void* osRomBase; extern s32 osTvType; +extern u32 osRomType; +extern u32 osVersion; extern s32 osResetType; extern s32 osCicId; extern u32 osMemSize; extern u8 osAppNMIBuffer[0x40]; +extern u32 __osBbIsBb; +extern u32 __osBbEepromSize; +extern u32 __osBbPakSize; +extern u32 __osBbFlashSize; +extern u32 __osBbEepromAddress; +extern u32 __osBbPakAddress[4]; +extern u32 __osBbFlashAddress; +extern u32 __osBbSramSize; +extern u32 __osBbSramAddress; +extern u32 __osBbHackFlags; + extern s8 D_80009430; extern vu8 gViConfigBlack; extern u8 gViConfigAdditionalScanLines; diff --git a/include/z64actor.h b/include/z64actor.h index 6df2703455..cf93af0a96 100644 --- a/include/z64actor.h +++ b/include/z64actor.h @@ -971,7 +971,7 @@ void Flags_SetEventChkInf(s32 flag); s32 Flags_GetInfTable(s32 flag); void Flags_SetInfTable(s32 flag); u16 func_80037C30(struct PlayState* play, s16 arg1); -s32 func_80037D98(struct PlayState* play, Actor* actor, s16 arg2, s32* arg3); +s32 func_80037D98(struct PlayState* play, Actor* actor, s32 arg2, s32* arg3); s32 Actor_TrackPlayer(struct PlayState* play, Actor* actor, Vec3s* headRot, Vec3s* torsoRot, Vec3f focusPos); #endif diff --git a/include/z64audio.h b/include/z64audio.h index 86e2860db6..d60a6aaeb7 100644 --- a/include/z64audio.h +++ b/include/z64audio.h @@ -201,11 +201,9 @@ typedef struct AdpcmBookHeader { * The procedure used to design the codeBook is based on an adaptive clustering algorithm. * The size of the codeBook is (8 * order * numPredictors) and is 8-byte aligned */ -typedef s16 AdpcmBookData[]; - typedef struct AdpcmBook { /* 0x00 */ AdpcmBookHeader header; - /* 0x08 */ AdpcmBookData book; // size 8 * order * numPredictors. 8-byte aligned + /* 0x08 */ s16 book[1]; // size 8 * order * numPredictors. 8-byte aligned } AdpcmBook; // size >= 0x8 typedef struct Sample { diff --git a/include/z64play.h b/include/z64play.h index 224ca196d2..cb2e78edc4 100644 --- a/include/z64play.h +++ b/include/z64play.h @@ -130,7 +130,7 @@ f32 func_800BFCB8(PlayState* this, MtxF* mf, Vec3f* pos); void* Play_LoadFile(PlayState* this, RomFile* file); void Play_GetScreenPos(PlayState* this, Vec3f* src, Vec3f* dest); s16 Play_CreateSubCamera(PlayState* this); -s16 Play_GetActiveCamId(PlayState* this); +s32 Play_GetActiveCamId(PlayState* this); s16 Play_ChangeCameraStatus(PlayState* this, s16 camId, s16 status); void Play_ClearCamera(PlayState* this, s16 camId); void Play_ClearAllSubCameras(PlayState* this); diff --git a/include/z64save.h b/include/z64save.h index b1ac97cd44..a0d1c346f0 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -84,6 +84,10 @@ typedef struct Inventory { /* 0x5C */ s16 gsTokens; } Inventory; // size = 0x5E +typedef struct Checksum { + /* 0x00 */ u16 value; +} Checksum; // size = 0x02 + typedef struct SavedSceneFlags { /* 0x00 */ u32 chest; /* 0x04 */ u32 swch; @@ -254,7 +258,7 @@ typedef struct SaveInfo { /* 0x12AA 0x12C6 */ u8 scarecrowSpawnSong[0x80]; /* 0x132A 0x1346 */ char unk_1346[0x02]; /* 0x132C 0x1348 */ HorseData horseData; - /* 0x1336 0x1352 */ u16 checksum; // "check_sum" + /* 0x1336 0x1352 */ Checksum checksum; // "check_sum" } SaveInfo; typedef struct Save { @@ -420,8 +424,8 @@ typedef enum LinkAge { #define CUR_EQUIP_VALUE(equip) ((s32)(gSaveContext.save.info.equips.equipment & gEquipMasks[equip]) >> gEquipShifts[equip]) #define OWNED_EQUIP_FLAG(equip, value) (gBitFlags[value] << gEquipShifts[equip]) #define OWNED_EQUIP_FLAG_ALT(equip, value) ((1 << (value)) << gEquipShifts[equip]) -#define CHECK_OWNED_EQUIP(equip, value) (OWNED_EQUIP_FLAG(equip, value) & gSaveContext.save.info.inventory.equipment) -#define CHECK_OWNED_EQUIP_ALT(equip, value) (gBitFlags[(value) + (equip) * 4] & gSaveContext.save.info.inventory.equipment) +#define CHECK_OWNED_EQUIP(equip, value) (gSaveContext.save.info.inventory.equipment & OWNED_EQUIP_FLAG(equip, value)) +#define CHECK_OWNED_EQUIP_ALT(equip, value) (gSaveContext.save.info.inventory.equipment & gBitFlags[(value) + (equip) * 4]) #define SWORD_EQUIP_TO_PLAYER(swordEquip) (swordEquip) #define SHIELD_EQUIP_TO_PLAYER(shieldEquip) (shieldEquip) @@ -432,7 +436,7 @@ typedef enum LinkAge { #define CAPACITY(upg, value) gUpgradeCapacities[upg][value] #define CUR_CAPACITY(upg) CAPACITY(upg, CUR_UPG_VALUE(upg)) -#define CHECK_QUEST_ITEM(item) (gBitFlags[item] & gSaveContext.save.info.inventory.questItems) +#define CHECK_QUEST_ITEM(item) (gSaveContext.save.info.inventory.questItems & gBitFlags[item]) #define CHECK_DUNGEON_ITEM(item, dungeonIndex) (gSaveContext.save.info.inventory.dungeonItems[dungeonIndex] & gBitFlags[item]) #define GET_GS_FLAGS(index) \ @@ -1035,21 +1039,25 @@ typedef enum IngoRaceState { #define EVENTINF_MARATHON_ACTIVE 0x10 // EVENTINF 0x20-0x24 -#define EVENTINF_INDEX_HAGGLING_TOWNSFOLK (EVENTINF_20 >> 4) -#define EVENTINF_20 0x20 -#define EVENTINF_21 0x21 -#define EVENTINF_22 0x22 -#define EVENTINF_23 0x23 -#define EVENTINF_24 0x24 +#define EVENTINF_INDEX_HAGGLING_TOWNSFOLK 0x2 +#define EVENTINF_HAGGLING_TOWNSFOLK_MESG_0 0x20 +#define EVENTINF_HAGGLING_TOWNSFOLK_MESG_1 0x21 +#define EVENTINF_HAGGLING_TOWNSFOLK_MESG_2 0x22 +#define EVENTINF_HAGGLING_TOWNSFOLK_MESG_3 0x23 +#define EVENTINF_HAGGLING_TOWNSFOLK_MESG_4 0x24 -#define EVENTINF_HAGGLING_TOWNSFOLK_MASK \ - (EVENTINF_MASK(EVENTINF_20) | EVENTINF_MASK(EVENTINF_21) | EVENTINF_MASK(EVENTINF_22) | \ - EVENTINF_MASK(EVENTINF_23) | EVENTINF_MASK(EVENTINF_24)) +#define EVENTINF_HAGGLING_TOWNSFOLK_MASK \ + (EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_0) | EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_1) | \ + EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_2) | EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_3) | \ + EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_4)) -#define ENMU_GET_TALK_FLAGS() \ +#define GET_EVENTINF_ENMU_TALK_FLAGS() \ gSaveContext.eventInf[EVENTINF_INDEX_HAGGLING_TOWNSFOLK] & EVENTINF_HAGGLING_TOWNSFOLK_MASK -#define ENMU_RESET_TALK_FLAGS() \ +#define SET_EVENTINF_ENMU_TALK_FLAGS(talkFlags) \ + gSaveContext.eventInf[EVENTINF_INDEX_HAGGLING_TOWNSFOLK] |= (talkFlags); + +#define RESET_EVENTINF_ENMU_TALK_FLAGS() \ gSaveContext.eventInf[EVENTINF_INDEX_HAGGLING_TOWNSFOLK] &= ~(EVENTINF_HAGGLING_TOWNSFOLK_MASK); #define EVENTINF_30 0x30 diff --git a/include/z64sram.h b/include/z64sram.h index 36478c1716..3769f4419d 100644 --- a/include/z64sram.h +++ b/include/z64sram.h @@ -14,7 +14,7 @@ typedef enum SramHeaderField { /* 0x00 */ SRAM_HEADER_SOUND, /* 0x01 */ SRAM_HEADER_ZTARGET, /* 0x02 */ SRAM_HEADER_LANGUAGE, - /* 0x03 */ SRAM_HEADER_MAGIC // must be the value of `sZeldaMagic` for save to be considered valid + /* 0x03 */ SRAM_HEADER_MAGIC // must be the value in `sSramDefaultHeader` for save to be considered valid } SramHeaderField; #endif diff --git a/include/z64view.h b/include/z64view.h index 3eb3755a2c..5661a26402 100644 --- a/include/z64view.h +++ b/include/z64view.h @@ -15,10 +15,10 @@ typedef struct Viewport { #define SET_FULLSCREEN_VIEWPORT(view) \ { \ Viewport viewport; \ - viewport.bottomY = SCREEN_HEIGHT; \ - viewport.rightX = SCREEN_WIDTH; \ viewport.topY = 0; \ + viewport.bottomY = SCREEN_HEIGHT; \ viewport.leftX = 0; \ + viewport.rightX = SCREEN_WIDTH; \ View_SetViewport(view, &viewport); \ } \ (void)0 diff --git a/linker_scripts/makerom.ld b/linker_scripts/makerom.ld new file mode 100644 index 0000000000..a898c6b34f --- /dev/null +++ b/linker_scripts/makerom.ld @@ -0,0 +1,13 @@ +#include "boot.h" + +/* These are only here due to iQue entry.s using ori to load the lower halves of symbols + * rather than addiu, so the usual relocation operators %hi() and %lo() can't be used. */ + +_bootSegmentBssStart_HI = _bootSegmentBssStart >> 16; + +_bootSegmentBssSize_HI = _bootSegmentBssSize >> 16; + +bootproc_HI = bootproc >> 16; + +BOOT_STACK_TOP = (sBootThreadStack + BOOT_STACK_SIZE); +BOOT_STACK_TOP_HI = BOOT_STACK_TOP >> 16; diff --git a/spec b/spec index 8372b29ae8..ef63420f3d 100644 --- a/spec +++ b/spec @@ -6,6 +6,9 @@ beginseg name "makerom" + // We set the address of the makerom segment as 0x80000400 - 0x1000, since the ROM header and IPL3 together + // are 0x1000 bytes long and we want the entry code to end up at address 0x80000400. + address 0x7FFFF400 include "$(BUILD_DIR)/src/makerom/rom_header.o" include "$(BUILD_DIR)/src/makerom/ipl3.o" include "$(BUILD_DIR)/src/makerom/entry.o" @@ -13,7 +16,7 @@ endseg beginseg name "boot" - address 0x80000460 + include "$(BUILD_DIR)/src/boot/boot_main.o" include "$(BUILD_DIR)/src/boot/idle.o" #if OOT_VERSION >= PAL_1_0 @@ -21,7 +24,11 @@ beginseg #endif include "$(BUILD_DIR)/src/boot/carthandle.o" include "$(BUILD_DIR)/src/boot/z_std_dma.o" +#if !PLATFORM_IQUE include "$(BUILD_DIR)/src/boot/yaz0.o" +#else + include "$(BUILD_DIR)/src/boot/inflate.o" +#endif include "$(BUILD_DIR)/src/boot/z_locale.o" #if PLATFORM_N64 include "$(BUILD_DIR)/src/boot/cic6105.o" @@ -29,148 +36,79 @@ beginseg #if DEBUG_FEATURES include "$(BUILD_DIR)/src/boot/assert.o" #endif +#if !PLATFORM_IQUE include "$(BUILD_DIR)/src/boot/is_debug.o" +#else + include "$(BUILD_DIR)/src/boot/is_debug_ique.o" +#endif include "$(BUILD_DIR)/src/boot/driverominit.o" include "$(BUILD_DIR)/src/boot/mio0.o" + + // libu64 include "$(BUILD_DIR)/src/libu64/stackcheck.o" +#if !PLATFORM_IQUE include "$(BUILD_DIR)/src/libu64/debug.o" +#endif + + // libc64 #if PLATFORM_N64 include "$(BUILD_DIR)/src/libc64/sleep.o" #endif #if DEBUG_FEATURES include "$(BUILD_DIR)/src/libc64/sprintf.o" #endif - include "$(BUILD_DIR)/src/libultra/io/piacs.o" - include "$(BUILD_DIR)/src/libultra/os/sendmesg.o" - include "$(BUILD_DIR)/src/libultra/os/stopthread.o" -#if OOT_VERSION >= PAL_1_0 - include "$(BUILD_DIR)/src/libultra/io/viextendvstart.o" - include "$(BUILD_DIR)/src/libultra/io/vimodepallan1.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/recvmesg.o" -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/os/initialize.o" -#endif - include "$(BUILD_DIR)/src/libultra/libc/ll.o" - include "$(BUILD_DIR)/src/libultra/os/exceptasm.o" - include "$(BUILD_DIR)/src/libultra/os/thread.o" - include "$(BUILD_DIR)/src/libultra/os/destroythread.o" - include "$(BUILD_DIR)/src/libultra/libc/bzero.o" -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/os/parameters.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/createthread.o" + + // libultra #if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/os/initialize.o" - include "$(BUILD_DIR)/src/libultra/os/parameters.o" +#include "spec_includes/boot_libultra_n64.inc" +#elif PLATFORM_GC +#include "spec_includes/boot_libultra_gc.inc" +#elif PLATFORM_IQUE +#include "spec_includes/boot_libultra_ique.inc" #endif - include "$(BUILD_DIR)/src/libultra/os/setsr.o" - include "$(BUILD_DIR)/src/libultra/os/getsr.o" - include "$(BUILD_DIR)/src/libultra/os/writebackdcache.o" - include "$(BUILD_DIR)/src/libultra/io/vigetnextframebuf.o" - include "$(BUILD_DIR)/src/libultra/io/pimgr.o" - include "$(BUILD_DIR)/src/libultra/io/devmgr.o" - include "$(BUILD_DIR)/src/libultra/io/pirawdma.o" - include "$(BUILD_DIR)/src/libultra/os/virtualtophysical.o" - include "$(BUILD_DIR)/src/libultra/io/viblack.o" - include "$(BUILD_DIR)/src/libultra/io/sirawread.o" - include "$(BUILD_DIR)/src/libultra/os/getthreadid.o" - include "$(BUILD_DIR)/src/libultra/os/setintmask.o" - include "$(BUILD_DIR)/src/libultra/io/visetmode.o" - include "$(BUILD_DIR)/src/libultra/os/probetlb.o" - include "$(BUILD_DIR)/src/libultra/os/getmemsize.o" - include "$(BUILD_DIR)/src/libultra/os/seteventmesg.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/libc/xprintf.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/unmaptlball.o" - include "$(BUILD_DIR)/src/libultra/io/epidma.o" -#if DEBUG_FEATURES || defined(COMPILER_GCC) - include "$(BUILD_DIR)/src/libultra/libc/string.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/invalicache.o" - include "$(BUILD_DIR)/src/libultra/os/createmesgqueue.o" - include "$(BUILD_DIR)/src/libultra/os/invaldcache.o" - include "$(BUILD_DIR)/src/libultra/io/si.o" - include "$(BUILD_DIR)/src/libultra/os/jammesg.o" - include "$(BUILD_DIR)/src/libultra/os/setthreadpri.o" - include "$(BUILD_DIR)/src/libultra/os/getthreadpri.o" - include "$(BUILD_DIR)/src/libultra/io/epirawread.o" -#if OOT_VERSION >= PAL_1_0 - include "$(BUILD_DIR)/src/libultra/io/viswapbuf.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/epirawdma.o" -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/libc/bcmp.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/gettime.o" - include "$(BUILD_DIR)/src/libultra/os/timerintr.o" - include "$(BUILD_DIR)/src/libultra/os/getcount.o" - include "$(BUILD_DIR)/src/libultra/os/setglobalintmask.o" - include "$(BUILD_DIR)/src/libultra/os/setcompare.o" - include "$(BUILD_DIR)/src/libultra/libc/bcopy.o" - include "$(BUILD_DIR)/src/libultra/os/resetglobalintmask.o" - include "$(BUILD_DIR)/src/libultra/os/interrupt.o" -#if !OOT_PAL_N64 - include "$(BUILD_DIR)/src/libultra/io/vimodentsclan1.o" - include "$(BUILD_DIR)/src/libultra/io/vimodempallan1.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/vi.o" -#if OOT_PAL_N64 - include "$(BUILD_DIR)/src/libultra/io/vimodentsclan1.o" - include "$(BUILD_DIR)/src/libultra/io/vimodempallan1.o" -#endif -#if OOT_VERSION < PAL_1_0 - include "$(BUILD_DIR)/src/libultra/io/vimodepallan1.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/viswapcontext.o" - include "$(BUILD_DIR)/src/libultra/io/pigetcmdq.o" - include "$(BUILD_DIR)/src/libultra/io/epiread.o" -#if OOT_VERSION >= PAL_1_0 - include "$(BUILD_DIR)/src/libultra/io/visetspecial.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/cartrominit.o" -#if OOT_PAL_N64 || DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/setfpccsr.o" - include "$(BUILD_DIR)/src/libultra/os/getfpccsr.o" -#if PLATFORM_N64 || DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/epiwrite.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/maptlbrdb.o" - include "$(BUILD_DIR)/src/libultra/os/yieldthread.o" - include "$(BUILD_DIR)/src/libultra/os/getcause.o" - include "$(BUILD_DIR)/src/libultra/io/epirawwrite.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" - include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" - include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" -#endif -#if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/os/settimer.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/sirawwrite.o" - include "$(BUILD_DIR)/src/libultra/io/vimgr.o" - include "$(BUILD_DIR)/src/libultra/io/vigetcurrcontext.o" - include "$(BUILD_DIR)/src/libultra/os/startthread.o" -#if OOT_VERSION >= PAL_1_0 - include "$(BUILD_DIR)/src/libultra/io/visetyscale.o" - include "$(BUILD_DIR)/src/libultra/io/visetxscale.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/sethwintrroutine.o" - include "$(BUILD_DIR)/src/libultra/os/gethwintrroutine.o" -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/os/setwatchlo.o" + + // libgcc +#if PLATFORM_IQUE && !defined(COMPILER_GCC) + include "$(BUILD_DIR)/src/libgcc/__divdi3.o" + include "$(BUILD_DIR)/src/libgcc/__moddi3.o" + include "$(BUILD_DIR)/src/libgcc/__udivdi3.o" + include "$(BUILD_DIR)/src/libgcc/__umoddi3.o" + include "$(BUILD_DIR)/src/libgcc/__cmpdi2.o" + include "$(BUILD_DIR)/src/libgcc/__floatdidf.o" + include "$(BUILD_DIR)/src/libgcc/__floatdisf.o" + include "$(BUILD_DIR)/src/libgcc/__fixunsdfdi.o" + include "$(BUILD_DIR)/src/libgcc/__fixdfdi.o" + include "$(BUILD_DIR)/src/libgcc/__fixunssfdi.o" + include "$(BUILD_DIR)/src/libgcc/__fixsfdi.o" #endif + + // Build information include "$(BUILD_DIR)/src/boot/build.o" + + // RSP microcode include "$(BUILD_DIR)/data/rsp_boot.text.o" include "$(BUILD_DIR)/data/cic6105.text.o" + + // Extra files for non-matching debug builds +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libu64/debug.o" + include "$(BUILD_DIR)/src/libultra/io/epiwrite.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" + include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" + include "$(BUILD_DIR)/src/libultra/libc/string.o" + include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" + include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" + include "$(BUILD_DIR)/src/libultra/libc/xprintf.o" +#endif + + // Functions that GCC-compiled code may depend on, placed in boot so they will always be loaded #ifdef COMPILER_GCC + include "$(BUILD_DIR)/src/libultra/libc/string.o" include "$(BUILD_DIR)/src/libc/memset.o" include "$(BUILD_DIR)/src/libc/memmove.o" include "$(BUILD_DIR)/src/gcc_fix/missing_gcc_functions.o" #endif + endseg beginseg @@ -566,6 +504,7 @@ beginseg compress after "dmadata" align 0x20 + include "$(BUILD_DIR)/src/code/z_en_a_keep.o" include "$(BUILD_DIR)/src/code/z_en_item00.o" include "$(BUILD_DIR)/src/code/z_eff_blure.o" @@ -713,6 +652,8 @@ beginseg #if DEBUG_FEATURES include "$(BUILD_DIR)/src/code/ucode_disas.o" #endif + + // audio #if OOT_VERSION < NTSC_1_1 || PLATFORM_GC pad_text #endif @@ -732,7 +673,7 @@ beginseg include "$(BUILD_DIR)/src/audio/lib/effects.o" include "$(BUILD_DIR)/src/audio/lib/seqplayer.o" include "$(BUILD_DIR)/src/audio/general.o" -#if PLATFORM_GC && !DEBUG_FEATURES +#if !PLATFORM_N64 && !DEBUG_FEATURES pad_text #endif include "$(BUILD_DIR)/src/audio/sfx_params.o" @@ -741,19 +682,16 @@ beginseg include "$(BUILD_DIR)/src/audio/data.o" include "$(BUILD_DIR)/src/audio/session_config.o" include "$(BUILD_DIR)/src/audio/session_init.o" + + // libu64 #if PLATFORM_N64 include "$(BUILD_DIR)/src/libu64/gfxprint.o" include "$(BUILD_DIR)/src/libu64/rcp_utils.o" include "$(BUILD_DIR)/src/libu64/loadfragment2_n64.o" -#if DEBUG_FEATURES - // This is here only to allow N64 versions to compile with DEBUG_FEATURES. - // There is no N64 Debug ROM to prove this is correct. - include "$(BUILD_DIR)/src/libu64/mtxuty-cvt.o" -#endif include "$(BUILD_DIR)/src/libu64/pad.o" include "$(BUILD_DIR)/src/libu64/system_heap.o" include "$(BUILD_DIR)/src/libu64/padsetup.o" -#else +#elif PLATFORM_GC include "$(BUILD_DIR)/src/libu64/logseverity_gc.o" include "$(BUILD_DIR)/src/libu64/gfxprint.o" include "$(BUILD_DIR)/src/libu64/rcp_utils.o" @@ -766,190 +704,119 @@ beginseg include "$(BUILD_DIR)/src/libu64/system_heap.o" include "$(BUILD_DIR)/src/libu64/pad.o" include "$(BUILD_DIR)/src/libu64/padsetup.o" +#elif PLATFORM_IQUE + include "$(BUILD_DIR)/src/libu64/system_heap.o" + include "$(BUILD_DIR)/src/libu64/debug.o" + include "$(BUILD_DIR)/src/libu64/gfxprint.o" + include "$(BUILD_DIR)/src/libu64/logseverity_gc.o" + include "$(BUILD_DIR)/src/libu64/relocation_gc.o" + include "$(BUILD_DIR)/src/libu64/loadfragment2_gc.o" + include "$(BUILD_DIR)/src/libu64/load_gc.o" + include "$(BUILD_DIR)/src/libu64/padsetup.o" + include "$(BUILD_DIR)/src/libu64/pad.o" + include "$(BUILD_DIR)/src/libu64/rcp_utils.o" #endif + + // libc64 +#if PLATFORM_N64 include "$(BUILD_DIR)/src/libc64/math64.o" include "$(BUILD_DIR)/src/libc64/fp.o" include "$(BUILD_DIR)/src/libc64/malloc.o" include "$(BUILD_DIR)/src/libc64/qrand.o" -#if PLATFORM_N64 include "$(BUILD_DIR)/src/libc64/__osMalloc_n64.o" -#else + include "$(BUILD_DIR)/src/libc64/sprintf.o" + include "$(BUILD_DIR)/src/libc64/aprintf.o" +#elif PLATFORM_GC + include "$(BUILD_DIR)/src/libc64/math64.o" + include "$(BUILD_DIR)/src/libc64/fp.o" + include "$(BUILD_DIR)/src/libc64/malloc.o" + include "$(BUILD_DIR)/src/libc64/qrand.o" include "$(BUILD_DIR)/src/libc64/__osMalloc_gc.o" -#endif -#if !DEBUG_FEATURES + include "$(BUILD_DIR)/src/libc64/sprintf.o" + include "$(BUILD_DIR)/src/libc64/aprintf.o" + include "$(BUILD_DIR)/src/libc64/sleep.o" +#elif PLATFORM_IQUE + include "$(BUILD_DIR)/src/libc64/__osMalloc_gc.o" + include "$(BUILD_DIR)/src/libc64/aprintf.o" + include "$(BUILD_DIR)/src/libc64/malloc.o" + include "$(BUILD_DIR)/src/libc64/math64.o" + include "$(BUILD_DIR)/src/libc64/fp.o" + include "$(BUILD_DIR)/src/libc64/qrand.o" + include "$(BUILD_DIR)/src/libc64/sleep.o" include "$(BUILD_DIR)/src/libc64/sprintf.o" #endif - include "$(BUILD_DIR)/src/libc64/aprintf.o" -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libc64/sleep.o" -#endif + + // jpeg include "$(BUILD_DIR)/src/code/jpegutils.o" include "$(BUILD_DIR)/src/code/jpegdecoder.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/pfsfreeblocks.o" -#endif + + // libultra #if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/os/getintmask.o" +#include "spec_includes/code_libultra_n64.inc" +#elif PLATFORM_GC +#include "spec_includes/code_libultra_gc.inc" +#elif PLATFORM_IQUE +#include "spec_includes/code_libultra_ique.inc" #endif + + // libc #if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/gu/scale.o" -#else - include "$(BUILD_DIR)/src/libultra/mgu/scale.o" -#endif - include "$(BUILD_DIR)/src/libultra/gu/sinf.o" - include "$(BUILD_DIR)/src/libultra/gu/sins.o" - include "$(BUILD_DIR)/src/libultra/io/sptask.o" - include "$(BUILD_DIR)/src/libultra/io/motor.o" - include "$(BUILD_DIR)/src/libultra/io/siacs.o" - include "$(BUILD_DIR)/src/libultra/io/controller.o" - include "$(BUILD_DIR)/src/libultra/io/contreaddata.o" - include "$(BUILD_DIR)/src/libultra/gu/perspective.o" - include "$(BUILD_DIR)/src/libultra/io/sprawdma.o" - include "$(BUILD_DIR)/src/libultra/io/sirawdma.o" - include "$(BUILD_DIR)/src/libultra/io/sptaskyield.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/pfsreadwritefile.o" - include "$(BUILD_DIR)/src/libultra/io/pfsgetstatus.o" -#endif -#if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/gu/mtxutil.o" -#endif -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/mgu/mtxidentf.o" -#endif - include "$(BUILD_DIR)/src/libultra/gu/lookat.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/pfsallocatefile.o" -#endif - include "$(BUILD_DIR)/src/libultra/os/stoptimer.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/contpfs.o" -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/mgu/mtxl2f.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/pfsfindfile.o" -#endif - include "$(BUILD_DIR)/src/libultra/gu/sqrtf.o" - include "$(BUILD_DIR)/src/libultra/os/afterprenmi.o" - include "$(BUILD_DIR)/src/libultra/io/contquery.o" - include "$(BUILD_DIR)/src/libultra/gu/lookathil.o" -#if !DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/libc/xprintf.o" -#endif -#if !DEBUG_FEATURES && !defined(COMPILER_GCC) - include "$(BUILD_DIR)/src/libultra/libc/string.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/sp.o" -#if OOT_VERSION < PAL_1_0 - include "$(BUILD_DIR)/src/libultra/io/viswapbuf.o" -#endif -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/mgu/mtxident.o" -#endif - include "$(BUILD_DIR)/src/libultra/gu/position.o" - include "$(BUILD_DIR)/src/libultra/io/sptaskyielded.o" - include "$(BUILD_DIR)/src/libultra/gu/rotate.o" - include "$(BUILD_DIR)/src/libultra/io/aisetfreq.o" - include "$(BUILD_DIR)/src/libultra/os/getactivequeue.o" -#if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/gu/normalize.o" -#else - include "$(BUILD_DIR)/src/libultra/mgu/normalize.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/dpgetstat.o" - include "$(BUILD_DIR)/src/libultra/io/dpsetstat.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/pfsdeletefile.o" -#endif - include "$(BUILD_DIR)/src/libultra/gu/ortho.o" - include "$(BUILD_DIR)/src/libultra/gu/cosf.o" - include "$(BUILD_DIR)/src/libultra/gu/libm_vals.o" -#if OOT_VERSION < PAL_1_0 - include "$(BUILD_DIR)/src/libultra/io/visetspecial.o" -#endif - include "$(BUILD_DIR)/src/libultra/gu/coss.o" -#if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/os/settime.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/visetevent.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/pfsisplug.o" -#endif - include "$(BUILD_DIR)/src/libultra/gu/us2dex.o" - include "$(BUILD_DIR)/src/libultra/io/pfsselectbank.o" - include "$(BUILD_DIR)/src/libultra/io/contsetch.o" -#if DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/pfsfilestate.o" - include "$(BUILD_DIR)/src/libultra/io/pfsinitpak.o" - include "$(BUILD_DIR)/src/libultra/io/pfschecker.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/aigetlen.o" -#if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/gu/translate.o" -#else - include "$(BUILD_DIR)/src/libultra/mgu/translate.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/contramwrite.o" -#if OOT_VERSION >= PAL_1_0 && !(OOT_PAL_N64 || DEBUG_FEATURES) - include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" -#endif -#if !DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/pfsgetstatus.o" - include "$(BUILD_DIR)/src/libultra/io/contpfs.o" -#endif -#if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/libc/bcmp.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/contramread.o" - include "$(BUILD_DIR)/src/libultra/io/crc.o" -#if !DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/io/pfsisplug.o" -#endif -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/os/settimer.o" -#endif -#if PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" - include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" - include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" -#elif !DEBUG_FEATURES - include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" - include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" - include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/spgetstat.o" - include "$(BUILD_DIR)/src/libultra/io/spsetstat.o" - include "$(BUILD_DIR)/src/libultra/os/writebackdcacheall.o" - include "$(BUILD_DIR)/src/libultra/os/getcurrfaultedthread.o" -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libultra/mgu/mtxf2l.o" -#endif - include "$(BUILD_DIR)/src/libultra/libc/llcvt.o" -#if OOT_VERSION < PAL_1_0 - include "$(BUILD_DIR)/src/libultra/io/visetyscale.o" -#endif - include "$(BUILD_DIR)/src/libultra/io/vigetcurrframebuf.o" - include "$(BUILD_DIR)/src/libultra/io/spsetpc.o" include "$(BUILD_DIR)/src/libc/sqrt.o" -#if !PLATFORM_N64 - include "$(BUILD_DIR)/src/libc/absf.o" -#endif include "$(BUILD_DIR)/src/libc/fmodf.o" -#ifndef COMPILER_GCC include "$(BUILD_DIR)/src/libc/memset.o" include "$(BUILD_DIR)/src/libc/memmove.o" +#elif PLATFORM_GC + include "$(BUILD_DIR)/src/libc/sqrt.o" + include "$(BUILD_DIR)/src/libc/absf.o" + include "$(BUILD_DIR)/src/libc/fmodf.o" + include "$(BUILD_DIR)/src/libc/memset.o" + include "$(BUILD_DIR)/src/libc/memmove.o" +#elif PLATFORM_IQUE + include "$(BUILD_DIR)/src/libc/fmodf.o" + include "$(BUILD_DIR)/src/libc/memmove.o" + include "$(BUILD_DIR)/src/libc/absf.o" + include "$(BUILD_DIR)/src/libc/sqrt.o" #endif + // For some reason, the data sections of z_message and z_game_over are // placed near the rodata sections of other files, so we first build this // combined object before the final link. include "$(BUILD_DIR)/src/code/z_message_z_game_over.o" include "$(BUILD_DIR)/src/code/z_construct.o" + + // Audio tables include "$(BUILD_DIR)/src/audio/tables/soundfont_table.o" include "$(BUILD_DIR)/assets/audio/sequence_font_table.o" include "$(BUILD_DIR)/src/audio/tables/sequence_table.o" include "$(BUILD_DIR)/src/audio/tables/samplebank_table.o" + + // RSP microcode include "$(BUILD_DIR)/data/rsp.text.o" include "$(BUILD_DIR)/data/rsp.rodata.o" + + // Extra files for non-matching debug builds +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libu64/mtxuty-cvt.o" + include "$(BUILD_DIR)/src/libultra/io/contpfs.o" + include "$(BUILD_DIR)/src/libultra/io/contramread.o" + include "$(BUILD_DIR)/src/libultra/io/contramwrite.o" + include "$(BUILD_DIR)/src/libultra/io/crc.o" + include "$(BUILD_DIR)/src/libultra/io/pfsallocatefile.o" + include "$(BUILD_DIR)/src/libultra/io/pfschecker.o" + include "$(BUILD_DIR)/src/libultra/io/pfsdeletefile.o" + include "$(BUILD_DIR)/src/libultra/io/pfsfilestate.o" + include "$(BUILD_DIR)/src/libultra/io/pfsfindfile.o" + include "$(BUILD_DIR)/src/libultra/io/pfsfreeblocks.o" + include "$(BUILD_DIR)/src/libultra/io/pfsgetstatus.o" + include "$(BUILD_DIR)/src/libultra/io/pfsinitpak.o" + include "$(BUILD_DIR)/src/libultra/io/pfsisplug.o" + include "$(BUILD_DIR)/src/libultra/io/pfsreadwritefile.o" + include "$(BUILD_DIR)/src/libultra/io/pfsselectbank.o" +#if PLATFORM_IQUE + include "$(BUILD_DIR)/src/libultra/mgu/mtxl2f.o" +#endif +#endif + endseg beginseg @@ -1098,6491 +965,9 @@ endseg // Overlays for most actors and effects are reordered between versions. On N64 and iQue, // the overlays are in some arbitrary order, while on GameCube they are sorted alphabetically. #if !PLATFORM_GC - -beginseg - name "ovl_En_GirlA" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/z_en_girla.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/ovl_En_GirlA_reloc.o" -endseg - -beginseg - name "ovl_En_Part" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/z_en_part.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/ovl_En_Part_reloc.o" -endseg - -beginseg - name "ovl_En_Light" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/z_en_light.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/ovl_En_Light_reloc.o" -endseg - -beginseg - name "ovl_En_Door" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/z_en_door.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/ovl_En_Door_reloc.o" -endseg - -beginseg - name "ovl_En_Box" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/z_en_box.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/ovl_En_Box_reloc.o" -endseg - -beginseg - name "ovl_En_Poh" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/z_en_poh.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/ovl_En_Poh_reloc.o" -endseg - -beginseg - name "ovl_En_Okuta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/z_en_okuta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/ovl_En_Okuta_reloc.o" -endseg - -beginseg - name "ovl_En_Bom" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/z_en_bom.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/ovl_En_Bom_reloc.o" -endseg - -beginseg - name "ovl_En_Wallmas" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/ovl_En_Wallmas_reloc.o" -endseg - -beginseg - name "ovl_En_Dodongo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/ovl_En_Dodongo_reloc.o" -endseg - -beginseg - name "ovl_En_Firefly" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/z_en_firefly.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/ovl_En_Firefly_reloc.o" -endseg - -beginseg - name "ovl_En_Horse" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/z_en_horse.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/ovl_En_Horse_reloc.o" -endseg - -beginseg - name "ovl_En_Arrow" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/z_en_arrow.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/ovl_En_Arrow_reloc.o" -endseg - -beginseg - name "ovl_En_Elf" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/z_en_elf.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/ovl_En_Elf_reloc.o" -endseg - -beginseg - name "ovl_En_Niw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/z_en_niw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/ovl_En_Niw_reloc.o" -endseg - -beginseg - name "ovl_En_Tite" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/z_en_tite.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/ovl_En_Tite_reloc.o" -endseg - -beginseg - name "ovl_En_Reeba" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/z_en_reeba.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/ovl_En_Reeba_reloc.o" -endseg - -beginseg - name "ovl_En_Peehat" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/z_en_peehat.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/ovl_En_Peehat_reloc.o" -endseg - -beginseg - name "ovl_En_Holl" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/z_en_holl.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/ovl_En_Holl_reloc.o" -endseg - -beginseg - name "ovl_En_Scene_Change" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/ovl_En_Scene_Change_reloc.o" -endseg - -beginseg - name "ovl_En_Zf" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/z_en_zf.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/ovl_En_Zf_reloc.o" -endseg - -beginseg - name "ovl_En_Hata" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/z_en_hata.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/ovl_En_Hata_reloc.o" -endseg - -beginseg - name "ovl_Boss_Dodongo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/ovl_Boss_Dodongo_reloc.o" -endseg - -beginseg - name "ovl_Boss_Goma" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/ovl_Boss_Goma_reloc.o" -endseg - -beginseg - name "ovl_En_Zl1" - compress -include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/ovl_En_Zl1_reloc.o" -endseg - -beginseg - name "ovl_En_Viewer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/z_en_viewer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/ovl_En_Viewer_reloc.o" -endseg - -beginseg - name "ovl_En_Goma" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/z_en_goma.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/ovl_En_Goma_reloc.o" -endseg - -beginseg - name "ovl_Bg_Pushbox" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/ovl_Bg_Pushbox_reloc.o" -endseg - -beginseg - name "ovl_En_Bubble" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/z_en_bubble.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/ovl_En_Bubble_reloc.o" -endseg - -beginseg - name "ovl_Door_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/ovl_Door_Shutter_reloc.o" -endseg - -beginseg - name "ovl_En_Dodojr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/ovl_En_Dodojr_reloc.o" -endseg - -beginseg - name "ovl_En_Bdfire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/ovl_En_Bdfire_reloc.o" -endseg - -beginseg - name "ovl_En_Boom" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/z_en_boom.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/ovl_En_Boom_reloc.o" -endseg - -beginseg - name "ovl_En_Torch2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/z_en_torch2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/ovl_En_Torch2_reloc.o" -endseg - -beginseg - name "ovl_En_Bili" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/z_en_bili.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/ovl_En_Bili_reloc.o" -endseg - -beginseg - name "ovl_En_Tp" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/z_en_tp.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/ovl_En_Tp_reloc.o" -endseg - -beginseg - name "ovl_En_St" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/z_en_st.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/ovl_En_St_reloc.o" -endseg - -beginseg - name "ovl_En_Bw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/z_en_bw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/ovl_En_Bw_reloc.o" -endseg - -beginseg - name "ovl_En_Eiyer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/ovl_En_Eiyer_reloc.o" -endseg - -beginseg - name "ovl_En_River_Sound" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/ovl_En_River_Sound_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Normal" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/ovl_En_Horse_Normal_reloc.o" -endseg - -beginseg - name "ovl_En_Ossan" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/z_en_ossan.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/ovl_En_Ossan_reloc.o" -endseg - -beginseg - name "ovl_Bg_Treemouth" - compress -include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/ovl_Bg_Treemouth_reloc.o" -endseg - -beginseg - name "ovl_Bg_Dodoago" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/ovl_Bg_Dodoago_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Dalm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/ovl_Bg_Hidan_Dalm_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Hrock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/ovl_Bg_Hidan_Hrock_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Ganon" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/ovl_En_Horse_Ganon_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Rock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/ovl_Bg_Hidan_Rock_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Rsekizou" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/ovl_Bg_Hidan_Rsekizou_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Sekizou" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/ovl_Bg_Hidan_Sekizou_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Sima" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/ovl_Bg_Hidan_Sima_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Syoku" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/ovl_Bg_Hidan_Syoku_reloc.o" -endseg - -beginseg - name "ovl_En_Xc" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/z_en_xc.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/ovl_En_Xc_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Curtain" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/ovl_Bg_Hidan_Curtain_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot00_Hanebasi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/ovl_Bg_Spot00_Hanebasi_reloc.o" -endseg - -beginseg - name "ovl_En_Mb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/z_en_mb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/ovl_En_Mb_reloc.o" -endseg - -beginseg - name "ovl_En_Bombf" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/z_en_bombf.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/ovl_En_Bombf_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Firewall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/ovl_Bg_Hidan_Firewall_reloc.o" -endseg - -beginseg - name "ovl_Bg_Dy_Yoseizo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/ovl_Bg_Dy_Yoseizo_reloc.o" -endseg - -beginseg - name "ovl_En_Zl2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/z_en_zl2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/ovl_En_Zl2_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Fslift" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/ovl_Bg_Hidan_Fslift_reloc.o" -endseg - -beginseg - name "ovl_En_OE2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/z_en_oe2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/ovl_En_OE2_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ydan_Hasi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/ovl_Bg_Ydan_Hasi_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ydan_Maruta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/ovl_Bg_Ydan_Maruta_reloc.o" -endseg - -beginseg - name "ovl_Boss_Ganondrof" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/ovl_Boss_Ganondrof_reloc.o" -endseg - -beginseg - name "ovl_En_Am" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/z_en_am.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/ovl_En_Am_reloc.o" -endseg - -beginseg - name "ovl_En_Dekubaba" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/ovl_En_Dekubaba_reloc.o" -endseg - -beginseg - name "ovl_En_M_Fire1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/ovl_En_M_Fire1_reloc.o" -endseg - -beginseg - name "ovl_En_M_Thunder" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/ovl_En_M_Thunder_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ddan_Jd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/ovl_Bg_Ddan_Jd_reloc.o" -endseg - -beginseg - name "ovl_Bg_Breakwall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/ovl_Bg_Breakwall_reloc.o" -endseg - -beginseg - name "ovl_En_Jj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/ovl_En_Jj_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Zelda" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/ovl_En_Horse_Zelda_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ddan_Kd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/ovl_Bg_Ddan_Kd_reloc.o" -endseg - -beginseg - name "ovl_Door_Warp1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/ovl_Door_Warp1_reloc.o" -endseg - -beginseg - name "ovl_Obj_Syokudai" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/ovl_Obj_Syokudai_reloc.o" -endseg - -beginseg - name "ovl_Item_B_Heart" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/ovl_Item_B_Heart_reloc.o" -endseg - -beginseg - name "ovl_En_Dekunuts" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/ovl_En_Dekunuts_reloc.o" -endseg - -beginseg - name "ovl_Bg_Menkuri_Kaiten" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/ovl_Bg_Menkuri_Kaiten_reloc.o" -endseg - -beginseg - name "ovl_Bg_Menkuri_Eye" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/ovl_Bg_Menkuri_Eye_reloc.o" -endseg - -beginseg - name "ovl_En_Vali" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/z_en_vali.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/ovl_En_Vali_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Movebg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/ovl_Bg_Mizu_Movebg_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Water" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/ovl_Bg_Mizu_Water_reloc.o" -endseg - -beginseg - name "ovl_Arms_Hook" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/ovl_Arms_Hook_reloc.o" -endseg - -beginseg - name "ovl_En_fHG" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/z_en_fhg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/ovl_En_fHG_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Hineri" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/ovl_Bg_Mori_Hineri_reloc.o" -endseg - -beginseg - name "ovl_En_Bb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/z_en_bb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/ovl_En_Bb_reloc.o" -endseg - -beginseg - name "ovl_Bg_Toki_Hikari" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/ovl_Bg_Toki_Hikari_reloc.o" -endseg - -beginseg - name "ovl_En_Yukabyun" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/ovl_En_Yukabyun_reloc.o" -endseg - -beginseg - name "ovl_Bg_Toki_Swd" - compress -include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/ovl_Bg_Toki_Swd_reloc.o" -endseg - -beginseg - name "ovl_En_Fhg_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/ovl_En_Fhg_Fire_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mjin" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/ovl_Bg_Mjin_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Kousi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/ovl_Bg_Hidan_Kousi_reloc.o" -endseg - -beginseg - name "ovl_Door_Toki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/z_door_toki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/ovl_Door_Toki_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Hamstep" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/ovl_Bg_Hidan_Hamstep_reloc.o" -endseg - -beginseg - name "ovl_En_Bird" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/z_en_bird.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/ovl_En_Bird_reloc.o" -endseg - -beginseg - name "ovl_En_Wood02" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/z_en_wood02.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/ovl_En_Wood02_reloc.o" -endseg - -beginseg - name "ovl_En_Lightbox" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/ovl_En_Lightbox_reloc.o" -endseg - -beginseg - name "ovl_En_Pu_box" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/ovl_En_Pu_box_reloc.o" -endseg - -beginseg - name "ovl_En_Trap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/z_en_trap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/ovl_En_Trap_reloc.o" -endseg - -beginseg - name "ovl_En_Arow_Trap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/ovl_En_Arow_Trap_reloc.o" -endseg - -beginseg - name "ovl_En_Vase" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/z_en_vase.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/ovl_En_Vase_reloc.o" -endseg - -beginseg - name "ovl_En_Ta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/z_en_ta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/ovl_En_Ta_reloc.o" -endseg - -beginseg - name "ovl_En_Tk" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/z_en_tk.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/ovl_En_Tk_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Bigst" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/ovl_Bg_Mori_Bigst_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Elevator" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/ovl_Bg_Mori_Elevator_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Kaitenkabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/ovl_Bg_Mori_Kaitenkabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Rakkatenjo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/ovl_Bg_Mori_Rakkatenjo_reloc.o" -endseg - -beginseg - name "ovl_En_Vm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/z_en_vm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/ovl_En_Vm_reloc.o" -endseg - -beginseg - name "ovl_Demo_Effect" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/ovl_Demo_Effect_reloc.o" -endseg - -beginseg - name "ovl_Demo_Kankyo" - compress -include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.o" -include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/ovl_Demo_Kankyo_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Fwbig" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/ovl_Bg_Hidan_Fwbig_reloc.o" -endseg - -beginseg - name "ovl_En_Floormas" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/z_en_floormas.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/ovl_En_Floormas_reloc.o" -endseg - -beginseg - name "ovl_En_Heishi1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/ovl_En_Heishi1_reloc.o" -endseg - -beginseg - name "ovl_En_Rd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/z_en_rd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/ovl_En_Rd_reloc.o" -endseg - -beginseg - name "ovl_En_Po_Sisters" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/ovl_En_Po_Sisters_reloc.o" -endseg - -beginseg - name "ovl_Bg_Heavy_Block" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/ovl_Bg_Heavy_Block_reloc.o" -endseg - -beginseg - name "ovl_Bg_Po_Event" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/ovl_Bg_Po_Event_reloc.o" -endseg - -beginseg - name "ovl_Obj_Mure" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/ovl_Obj_Mure_reloc.o" -endseg - -beginseg - name "ovl_En_Sw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/z_en_sw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/ovl_En_Sw_reloc.o" -endseg - -beginseg - name "ovl_Boss_Fd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/ovl_Boss_Fd_reloc.o" -endseg - -beginseg - name "ovl_Object_Kankyo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/ovl_Object_Kankyo_reloc.o" -endseg - -beginseg - name "ovl_En_Du" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/z_en_du.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/ovl_En_Du_reloc.o" -endseg - -beginseg - name "ovl_En_Fd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/z_en_fd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/ovl_En_Fd_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Link_Child" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/ovl_En_Horse_Link_Child_reloc.o" -endseg - -beginseg - name "ovl_Door_Ana" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/z_door_ana.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/ovl_Door_Ana_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot02_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/ovl_Bg_Spot02_Objects_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/ovl_Bg_Haka_reloc.o" -endseg - -beginseg - name "ovl_Magic_Wind" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/ovl_Magic_Wind_reloc.o" -endseg - -beginseg - name "ovl_Magic_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/ovl_Magic_Fire_reloc.o" -endseg - -beginseg - name "ovl_En_Ru1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/z_en_ru1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/ovl_En_Ru1_reloc.o" -endseg - -beginseg - name "ovl_Boss_Fd2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/ovl_Boss_Fd2_reloc.o" -endseg - -beginseg - name "ovl_En_Fd_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/ovl_En_Fd_Fire_reloc.o" -endseg - -beginseg - name "ovl_En_Dh" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/z_en_dh.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/ovl_En_Dh_reloc.o" -endseg - -beginseg - name "ovl_En_Dha" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/z_en_dha.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/ovl_En_Dha_reloc.o" -endseg - -beginseg - name "ovl_En_Rl" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/z_en_rl.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/ovl_En_Rl_reloc.o" -endseg - -beginseg - name "ovl_En_Encount1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/z_en_encount1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/ovl_En_Encount1_reloc.o" -endseg - -beginseg - name "ovl_Demo_Du" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/z_demo_du.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/ovl_Demo_Du_reloc.o" -endseg - -beginseg - name "ovl_Demo_Im" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/z_demo_im.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/ovl_Demo_Im_reloc.o" -endseg - -beginseg - name "ovl_Demo_Tre_Lgt" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/ovl_Demo_Tre_Lgt_reloc.o" -endseg - -beginseg - name "ovl_En_Fw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/z_en_fw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/ovl_En_Fw_reloc.o" -endseg - -beginseg - name "ovl_Bg_Vb_Sima" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/ovl_Bg_Vb_Sima_reloc.o" -endseg - -beginseg - name "ovl_En_Vb_Ball" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/ovl_En_Vb_Ball_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Megane" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/ovl_Bg_Haka_Megane_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_MeganeBG" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/ovl_Bg_Haka_MeganeBG_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Ship" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/ovl_Bg_Haka_Ship_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Sgami" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/ovl_Bg_Haka_Sgami_reloc.o" -endseg - -beginseg - name "ovl_En_Heishi2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/ovl_En_Heishi2_reloc.o" -endseg - -beginseg - name "ovl_En_Encount2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/z_en_encount2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/ovl_En_Encount2_reloc.o" -endseg - -beginseg - name "ovl_En_Fire_Rock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/ovl_En_Fire_Rock_reloc.o" -endseg - -beginseg - name "ovl_En_Brob" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/z_en_brob.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/ovl_En_Brob_reloc.o" -endseg - -beginseg - name "ovl_Mir_Ray" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/ovl_Mir_Ray_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot09_Obj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/ovl_Bg_Spot09_Obj_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot18_Obj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/ovl_Bg_Spot18_Obj_reloc.o" -endseg - -beginseg - name "ovl_Boss_Va" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/z_boss_va.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/ovl_Boss_Va_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Tubo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/ovl_Bg_Haka_Tubo_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Trap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/ovl_Bg_Haka_Trap_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Huta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/ovl_Bg_Haka_Huta_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Zou" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/ovl_Bg_Haka_Zou_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot17_Funen" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/ovl_Bg_Spot17_Funen_reloc.o" -endseg - -beginseg - name "ovl_En_Syateki_Itm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/ovl_En_Syateki_Itm_reloc.o" -endseg - -beginseg - name "ovl_En_Syateki_Man" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/ovl_En_Syateki_Man_reloc.o" -endseg - -beginseg - name "ovl_En_Tana" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/z_en_tana.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/ovl_En_Tana_reloc.o" -endseg - -beginseg - name "ovl_En_Nb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/z_en_nb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/ovl_En_Nb_reloc.o" -endseg - -beginseg - name "ovl_Boss_Mo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/ovl_Boss_Mo_reloc.o" -endseg - -beginseg - name "ovl_En_Sb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/z_en_sb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/ovl_En_Sb_reloc.o" -endseg - -beginseg - name "ovl_En_Bigokuta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/ovl_En_Bigokuta_reloc.o" -endseg - -beginseg - name "ovl_En_Karebaba" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/ovl_En_Karebaba_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bdan_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/ovl_Bg_Bdan_Objects_reloc.o" -endseg - -beginseg - name "ovl_Demo_Sa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/ovl_Demo_Sa_reloc.o" -endseg - -beginseg - name "ovl_Demo_Go" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/z_demo_go.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/ovl_Demo_Go_reloc.o" -endseg - -beginseg - name "ovl_En_In" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/z_en_in.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/ovl_En_In_reloc.o" -endseg - -beginseg - name "ovl_En_Tr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/z_en_tr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/ovl_En_Tr_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot16_Bombstone" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/ovl_Bg_Spot16_Bombstone_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Kowarerukabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/ovl_Bg_Hidan_Kowarerukabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bombwall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/ovl_Bg_Bombwall_reloc.o" -endseg - -beginseg - name "ovl_En_Ru2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/z_en_ru2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/ovl_En_Ru2_reloc.o" -endseg - -beginseg - name "ovl_Obj_Dekujr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/ovl_Obj_Dekujr_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Uzu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/ovl_Bg_Mizu_Uzu_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot06_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/ovl_Bg_Spot06_Objects_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ice_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/ovl_Bg_Ice_Objects_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Water" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/ovl_Bg_Haka_Water_reloc.o" -endseg - -beginseg - name "ovl_En_Ma2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/z_en_ma2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/ovl_En_Ma2_reloc.o" -endseg - -beginseg - name "ovl_En_Bom_Chu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/ovl_En_Bom_Chu_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Game_Check" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/ovl_En_Horse_Game_Check_reloc.o" -endseg - -beginseg - name "ovl_Boss_Tw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/ovl_Boss_Tw_reloc.o" -endseg - -beginseg - name "ovl_En_Rr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/z_en_rr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/ovl_En_Rr_reloc.o" -endseg - -beginseg - name "ovl_En_Ba" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/z_en_ba.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/ovl_En_Ba_reloc.o" -endseg - -beginseg - name "ovl_En_Bx" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/z_en_bx.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/ovl_En_Bx_reloc.o" -endseg - -beginseg - name "ovl_En_Anubice" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/z_en_anubice.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/ovl_En_Anubice_reloc.o" -endseg - -beginseg - name "ovl_En_Anubice_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/ovl_En_Anubice_Fire_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Hashigo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/ovl_Bg_Mori_Hashigo_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Hashira4" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/ovl_Bg_Mori_Hashira4_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Idomizu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/ovl_Bg_Mori_Idomizu_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot16_Doughnut" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/ovl_Bg_Spot16_Doughnut_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bdan_Switch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/ovl_Bg_Bdan_Switch_reloc.o" -endseg - -beginseg - name "ovl_En_Ma1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/z_en_ma1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/ovl_En_Ma1_reloc.o" -endseg - -beginseg - name "ovl_Boss_Ganon" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/ovl_Boss_Ganon_reloc.o" -endseg - -beginseg - name "ovl_Boss_Sst" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/ovl_Boss_Sst_reloc.o" -endseg - -beginseg - name "ovl_En_Ny" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/z_en_ny.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/ovl_En_Ny_reloc.o" -endseg - -beginseg - name "ovl_En_Fr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/z_en_fr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/ovl_En_Fr_reloc.o" -endseg - -beginseg - name "ovl_Item_Shield" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/z_item_shield.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/ovl_Item_Shield_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ice_Shelter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/ovl_Bg_Ice_Shelter_reloc.o" -endseg - -beginseg - name "ovl_En_Ice_Hono" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/ovl_En_Ice_Hono_reloc.o" -endseg - -beginseg - name "ovl_Item_Ocarina" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/ovl_Item_Ocarina_reloc.o" -endseg - -beginseg - name "ovl_Magic_Dark" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/ovl_Magic_Dark_reloc.o" -endseg - -beginseg - name "ovl_Demo_6K" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/z_demo_6k.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/ovl_Demo_6K_reloc.o" -endseg - -beginseg - name "ovl_En_Anubice_Tag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/ovl_En_Anubice_Tag_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Gate" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/ovl_Bg_Haka_Gate_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot15_Saku" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/ovl_Bg_Spot15_Saku_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Goroiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/ovl_Bg_Jya_Goroiwa_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Zurerukabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/ovl_Bg_Jya_Zurerukabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Cobra" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/ovl_Bg_Jya_Cobra_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Kanaami" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/ovl_Bg_Jya_Kanaami_reloc.o" -endseg - -beginseg - name "ovl_Fishing" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/z_fishing.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/ovl_Fishing_reloc.o" -endseg - -beginseg - name "ovl_Obj_Oshihiki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/ovl_Obj_Oshihiki_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gate_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/ovl_Bg_Gate_Shutter_reloc.o" -endseg - -beginseg - name "ovl_Eff_Dust" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/ovl_Eff_Dust_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Fusya" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/ovl_Bg_Spot01_Fusya_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Idohashira" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/ovl_Bg_Spot01_Idohashira_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Idomizu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/ovl_Bg_Spot01_Idomizu_reloc.o" -endseg - -beginseg - name "ovl_Bg_Po_Syokudai" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/ovl_Bg_Po_Syokudai_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ganon_Otyuka" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/ovl_Bg_Ganon_Otyuka_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot15_Rrbox" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/ovl_Bg_Spot15_Rrbox_reloc.o" -endseg - -beginseg - name "ovl_Bg_Umajump" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/ovl_Bg_Umajump_reloc.o" -endseg - -beginseg - name "ovl_En_Insect" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/z_en_insect.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/ovl_En_Insect_reloc.o" -endseg - -beginseg - name "ovl_En_Butte" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/z_en_butte.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/ovl_En_Butte_reloc.o" -endseg - -beginseg - name "ovl_En_Fish" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/z_en_fish.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/ovl_En_Fish_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot08_Iceblock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/ovl_Bg_Spot08_Iceblock_reloc.o" -endseg - -beginseg - name "ovl_Item_Etcetera" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/ovl_Item_Etcetera_reloc.o" -endseg - -beginseg - name "ovl_Arrow_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/ovl_Arrow_Fire_reloc.o" -endseg - -beginseg - name "ovl_Arrow_Ice" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/ovl_Arrow_Ice_reloc.o" -endseg - -beginseg - name "ovl_Arrow_Light" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/ovl_Arrow_Light_reloc.o" -endseg - -beginseg - name "ovl_Obj_Kibako" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/ovl_Obj_Kibako_reloc.o" -endseg - -beginseg - name "ovl_Obj_Tsubo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/ovl_Obj_Tsubo_reloc.o" -endseg - -beginseg - name "ovl_En_Wonder_Item" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/ovl_En_Wonder_Item_reloc.o" -endseg - -beginseg - name "ovl_En_Ik" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/z_en_ik.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/ovl_En_Ik_reloc.o" -endseg - -beginseg - name "ovl_Demo_Ik" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/ovl_Demo_Ik_reloc.o" -endseg - -beginseg - name "ovl_En_Skj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/z_en_skj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/ovl_En_Skj_reloc.o" -endseg - -beginseg - name "ovl_En_Skjneedle" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/ovl_En_Skjneedle_reloc.o" -endseg - -beginseg - name "ovl_En_G_Switch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/ovl_En_G_Switch_reloc.o" -endseg - -beginseg - name "ovl_Demo_Ext" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/ovl_Demo_Ext_reloc.o" -endseg - -beginseg - name "ovl_Demo_Shd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/ovl_Demo_Shd_reloc.o" -endseg - -beginseg - name "ovl_En_Dns" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/z_en_dns.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/ovl_En_Dns_reloc.o" -endseg - -beginseg - name "ovl_Elf_Msg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/ovl_Elf_Msg_reloc.o" -endseg - -beginseg - name "ovl_En_Honotrap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/ovl_En_Honotrap_reloc.o" -endseg - -beginseg - name "ovl_En_Tubo_Trap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/ovl_En_Tubo_Trap_reloc.o" -endseg - -beginseg - name "ovl_Obj_Ice_Poly" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot03_Taki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/ovl_Bg_Spot03_Taki_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot07_Taki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/ovl_Bg_Spot07_Taki_reloc.o" -endseg - -beginseg - name "ovl_En_Fz" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/z_en_fz.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/ovl_En_Fz_reloc.o" -endseg - -beginseg - name "ovl_En_Po_Relay" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/ovl_En_Po_Relay_reloc.o" -endseg - -beginseg - name "ovl_Bg_Relay_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/ovl_Bg_Relay_Objects_reloc.o" -endseg - -beginseg - name "ovl_En_Diving_Game" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/ovl_En_Diving_Game_reloc.o" -endseg - -beginseg - name "ovl_En_Kusa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/z_en_kusa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/ovl_En_Kusa_reloc.o" -endseg - -beginseg - name "ovl_Obj_Bean" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/ovl_Obj_Bean_reloc.o" -endseg - -beginseg - name "ovl_Obj_Bombiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/ovl_Obj_Bombiwa_reloc.o" -endseg - -beginseg - name "ovl_Obj_Switch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/ovl_Obj_Switch_reloc.o" -endseg - -beginseg - name "ovl_Obj_Elevator" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/ovl_Obj_Elevator_reloc.o" -endseg - -beginseg - name "ovl_Obj_Lift" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/ovl_Obj_Lift_reloc.o" -endseg - -beginseg - name "ovl_Obj_Hsblock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/ovl_Obj_Hsblock_reloc.o" -endseg - -beginseg - name "ovl_En_Okarina_Tag" - compress -include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/ovl_En_Okarina_Tag_reloc.o" -endseg - -beginseg - name "ovl_En_Yabusame_Mark" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/ovl_En_Yabusame_Mark_reloc.o" -endseg - -beginseg - name "ovl_En_Goroiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/ovl_En_Goroiwa_reloc.o" -endseg - -beginseg - name "ovl_En_Ex_Ruppy" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/ovl_En_Ex_Ruppy_reloc.o" -endseg - -beginseg - name "ovl_En_Toryo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/z_en_toryo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/ovl_En_Toryo_reloc.o" -endseg - -beginseg - name "ovl_En_Daiku" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/z_en_daiku.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/ovl_En_Daiku_reloc.o" -endseg - -beginseg - name "ovl_En_Nwc" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/z_en_nwc.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/ovl_En_Nwc_reloc.o" -endseg - -beginseg - name "ovl_En_Blkobj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/ovl_En_Blkobj_reloc.o" -endseg - -beginseg - name "ovl_Item_Inbox" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/ovl_Item_Inbox_reloc.o" -endseg - -beginseg - name "ovl_En_Ge1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/z_en_ge1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/ovl_En_Ge1_reloc.o" -endseg - -beginseg - name "ovl_Obj_Blockstop" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/ovl_Obj_Blockstop_reloc.o" -endseg - -beginseg - name "ovl_En_Sda" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/z_en_sda.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/ovl_En_Sda_reloc.o" -endseg - -beginseg - name "ovl_En_Clear_Tag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/ovl_En_Clear_Tag_reloc.o" -endseg - -beginseg - name "ovl_En_Niw_Lady" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/ovl_En_Niw_Lady_reloc.o" -endseg - -beginseg - name "ovl_En_Gm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/z_en_gm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/ovl_En_Gm_reloc.o" -endseg - -beginseg - name "ovl_En_Ms" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/z_en_ms.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/ovl_En_Ms_reloc.o" -endseg - -beginseg - name "ovl_En_Hs" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/z_en_hs.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/ovl_En_Hs_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ingate" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/ovl_Bg_Ingate_reloc.o" -endseg - -beginseg - name "ovl_En_Kanban" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/z_en_kanban.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/ovl_En_Kanban_reloc.o" -endseg - -beginseg - name "ovl_En_Heishi3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/ovl_En_Heishi3_reloc.o" -endseg - -beginseg - name "ovl_En_Syateki_Niw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/ovl_En_Syateki_Niw_reloc.o" -endseg - -beginseg - name "ovl_En_Attack_Niw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/ovl_En_Attack_Niw_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Idosoko" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/ovl_Bg_Spot01_Idosoko_reloc.o" -endseg - -beginseg - name "ovl_En_Sa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/z_en_sa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/ovl_En_Sa_reloc.o" -endseg - -beginseg - name "ovl_En_Wonder_Talk" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/ovl_En_Wonder_Talk_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gjyo_Bridge" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/ovl_Bg_Gjyo_Bridge_reloc.o" -endseg - -beginseg - name "ovl_En_Ds" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/z_en_ds.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/ovl_En_Ds_reloc.o" -endseg - -beginseg - name "ovl_En_Mk" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/z_en_mk.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/ovl_En_Mk_reloc.o" -endseg - -beginseg - name "ovl_En_Bom_Bowl_Man" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/ovl_En_Bom_Bowl_Man_reloc.o" -endseg - -beginseg - name "ovl_En_Bom_Bowl_Pit" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/ovl_En_Bom_Bowl_Pit_reloc.o" -endseg - -beginseg - name "ovl_En_Owl" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/z_en_owl.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/ovl_En_Owl_reloc.o" -endseg - -beginseg - name "ovl_En_Ishi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/z_en_ishi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/ovl_En_Ishi_reloc.o" -endseg - -beginseg - name "ovl_Obj_Hana" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/ovl_Obj_Hana_reloc.o" -endseg - -beginseg - name "ovl_Obj_Lightswitch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/ovl_Obj_Lightswitch_reloc.o" -endseg - -beginseg - name "ovl_Obj_Mure2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/ovl_Obj_Mure2_reloc.o" -endseg - -beginseg - name "ovl_En_Go" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/z_en_go.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/ovl_En_Go_reloc.o" -endseg - -beginseg - name "ovl_En_Fu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/z_en_fu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/ovl_En_Fu_reloc.o" -endseg - -beginseg - name "ovl_En_Changer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/z_en_changer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/ovl_En_Changer_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Megami" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/ovl_Bg_Jya_Megami_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Lift" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/ovl_Bg_Jya_Lift_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Bigmirror" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/ovl_Bg_Jya_Bigmirror_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Bombchuiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/ovl_Bg_Jya_Bombchuiwa_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Amishutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/ovl_Bg_Jya_Amishutter_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Bombiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/ovl_Bg_Jya_Bombiwa_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot18_Basket" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/ovl_Bg_Spot18_Basket_reloc.o" -endseg - -beginseg - name "ovl_En_Ganon_Organ" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ_reloc.o" -endseg - -beginseg - name "ovl_En_Siofuki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/ovl_En_Siofuki_reloc.o" -endseg - -beginseg - name "ovl_En_Stream" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/z_en_stream.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/ovl_En_Stream_reloc.o" -endseg - -beginseg - name "ovl_En_Mm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/z_en_mm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/ovl_En_Mm_reloc.o" -endseg - -beginseg - name "ovl_En_Ko" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/z_en_ko.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/ovl_En_Ko_reloc.o" -endseg - -beginseg - name "ovl_En_Kz" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/z_en_kz.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/ovl_En_Kz_reloc.o" -endseg - -beginseg - name "ovl_En_Weather_Tag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/ovl_En_Weather_Tag_reloc.o" -endseg - -beginseg - name "ovl_Bg_Sst_Floor" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/ovl_Bg_Sst_Floor_reloc.o" -endseg - -beginseg - name "ovl_En_Ani" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/z_en_ani.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/ovl_En_Ani_reloc.o" -endseg - -beginseg - name "ovl_En_Ex_Item" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/ovl_En_Ex_Item_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Ironobj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/ovl_Bg_Jya_Ironobj_reloc.o" -endseg - -beginseg - name "ovl_En_Js" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/z_en_js.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/ovl_En_Js_reloc.o" -endseg - -beginseg - name "ovl_En_Jsjutan" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/ovl_En_Jsjutan_reloc.o" -endseg - -beginseg - name "ovl_En_Cs" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/z_en_cs.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/ovl_En_Cs_reloc.o" -endseg - -beginseg - name "ovl_En_Md" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/z_en_md.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/ovl_En_Md_reloc.o" -endseg - -beginseg - name "ovl_En_Hy" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/z_en_hy.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/ovl_En_Hy_reloc.o" -endseg - -beginseg - name "ovl_En_Ganon_Mant" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/ovl_En_Ganon_Mant_reloc.o" -endseg - -beginseg - name "ovl_En_Okarina_Effect" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/ovl_En_Okarina_Effect_reloc.o" -endseg - -beginseg - name "ovl_En_Mag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/z_en_mag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/ovl_En_Mag_reloc.o" -endseg - -beginseg - name "ovl_Door_Gerudo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/ovl_Door_Gerudo_reloc.o" -endseg - -beginseg - name "ovl_Elf_Msg2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/ovl_Elf_Msg2_reloc.o" -endseg - -beginseg - name "ovl_Demo_Gt" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/ovl_Demo_Gt_reloc.o" -endseg - -beginseg - name "ovl_En_Po_Field" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/ovl_En_Po_Field_reloc.o" -endseg - -beginseg - name "ovl_Efc_Erupc" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/ovl_Efc_Erupc_reloc.o" -endseg - -beginseg - name "ovl_Bg_Zg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/ovl_Bg_Zg_reloc.o" -endseg - -beginseg - name "ovl_En_Heishi4" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/ovl_En_Heishi4_reloc.o" -endseg - -beginseg - name "ovl_En_Zl3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/z_en_zl3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/ovl_En_Zl3_reloc.o" -endseg - -beginseg - name "ovl_Boss_Ganon2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/ovl_Boss_Ganon2_reloc.o" -endseg - -beginseg - name "ovl_En_Kakasi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/ovl_En_Kakasi_reloc.o" -endseg - -beginseg - name "ovl_En_Takara_Man" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/ovl_En_Takara_Man_reloc.o" -endseg - -beginseg - name "ovl_Obj_Makeoshihiki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/ovl_Obj_Makeoshihiki_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Spot" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/ovl_Oceff_Spot_reloc.o" -endseg - -beginseg - name "ovl_End_Title" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/z_end_title.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/ovl_End_Title_reloc.o" -endseg - -beginseg - name "ovl_En_Torch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/z_en_torch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/ovl_En_Torch_reloc.o" -endseg - -beginseg - name "ovl_Demo_Ec" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/ovl_Demo_Ec_reloc.o" -endseg - -beginseg - name "ovl_Shot_Sun" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/ovl_Shot_Sun_reloc.o" -endseg - -beginseg - name "ovl_En_Dy_Extra" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/ovl_En_Dy_Extra_reloc.o" -endseg - -beginseg - name "ovl_En_Wonder_Talk2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/ovl_En_Wonder_Talk2_reloc.o" -endseg - -beginseg - name "ovl_En_Ge2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/z_en_ge2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/ovl_En_Ge2_reloc.o" -endseg - -beginseg - name "ovl_Obj_Roomtimer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/ovl_Obj_Roomtimer_reloc.o" -endseg - -beginseg - name "ovl_En_Ssh" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/z_en_ssh.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/ovl_En_Ssh_reloc.o" -endseg - -beginseg - name "ovl_En_Sth" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/z_en_sth.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/ovl_En_Sth_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Wipe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/ovl_Oceff_Wipe_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dust" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/ovl_Effect_Ss_Dust_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_KiraKira" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/ovl_Effect_Ss_KiraKira_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Bomb" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/ovl_Effect_Ss_Bomb_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Bomb2" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/ovl_Effect_Ss_Bomb2_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Blast" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/ovl_Effect_Ss_Blast_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Spk" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/ovl_Effect_Ss_G_Spk_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_D_Fire" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/ovl_Effect_Ss_D_Fire_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Bubble" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/ovl_Effect_Ss_Bubble_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Ripple" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/ovl_Effect_Ss_G_Ripple_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Splash" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/ovl_Effect_Ss_G_Splash_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Magma" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/ovl_Effect_Ss_G_Magma_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Fire" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/ovl_Effect_Ss_G_Fire_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Lightning" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/ovl_Effect_Ss_Lightning_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dt_Bubble" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/ovl_Effect_Ss_Dt_Bubble_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Hahen" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/ovl_Effect_Ss_Hahen_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Stick" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/ovl_Effect_Ss_Stick_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Sibuki" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/ovl_Effect_Ss_Sibuki_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Sibuki2" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/ovl_Effect_Ss_Sibuki2_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Magma2" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/ovl_Effect_Ss_G_Magma2_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Stone1" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/ovl_Effect_Ss_Stone1_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_HitMark" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/ovl_Effect_Ss_HitMark_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Fhg_Flash" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/ovl_Effect_Ss_Fhg_Flash_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_K_Fire" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/ovl_Effect_Ss_K_Fire_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Solder_Srch_Ball" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/ovl_Effect_Ss_Solder_Srch_Ball_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Kakera" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/ovl_Effect_Ss_Kakera_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Ice_Piece" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/ovl_Effect_Ss_Ice_Piece_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_En_Ice" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/ovl_Effect_Ss_En_Ice_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Fire_Tail" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/ovl_Effect_Ss_Fire_Tail_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_En_Fire" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/ovl_Effect_Ss_En_Fire_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Extra" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/ovl_Effect_Ss_Extra_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Fcircle" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/ovl_Effect_Ss_Fcircle_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dead_Db" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/ovl_Effect_Ss_Dead_Db_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dead_Dd" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/ovl_Effect_Ss_Dead_Dd_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dead_Ds" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/ovl_Effect_Ss_Dead_Ds_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dead_Sound" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/ovl_Effect_Ss_Dead_Sound_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Storm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/ovl_Oceff_Storm_reloc.o" -endseg - -beginseg - name "ovl_En_Weiyer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/ovl_En_Weiyer_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot05_Soko" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/ovl_Bg_Spot05_Soko_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_1flift" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/ovl_Bg_Jya_1flift_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Haheniron" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/ovl_Bg_Jya_Haheniron_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot12_Gate" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/ovl_Bg_Spot12_Gate_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot12_Saku" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/ovl_Bg_Spot12_Saku_reloc.o" -endseg - -beginseg - name "ovl_En_Hintnuts" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/ovl_En_Hintnuts_reloc.o" -endseg - -beginseg - name "ovl_En_Nutsball" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/ovl_En_Nutsball_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot00_Break" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/ovl_Bg_Spot00_Break_reloc.o" -endseg - -beginseg - name "ovl_En_Shopnuts" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/ovl_En_Shopnuts_reloc.o" -endseg - -beginseg - name "ovl_En_It" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/z_en_it.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/ovl_En_It_reloc.o" -endseg - -beginseg - name "ovl_En_GeldB" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/z_en_geldb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/ovl_En_GeldB_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Wipe2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Wipe3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3_reloc.o" -endseg - -beginseg - name "ovl_En_Niw_Girl" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/ovl_En_Niw_Girl_reloc.o" -endseg - -beginseg - name "ovl_En_Dog" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/z_en_dog.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/ovl_En_Dog_reloc.o" -endseg - -beginseg - name "ovl_En_Si" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/z_en_si.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/ovl_En_Si_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Objects2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/ovl_Bg_Spot01_Objects2_reloc.o" -endseg - -beginseg - name "ovl_Obj_Comb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/ovl_Obj_Comb_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot11_Bakudankabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/ovl_Bg_Spot11_Bakudankabe_reloc.o" -endseg - -beginseg - name "ovl_Obj_Kibako2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/ovl_Obj_Kibako2_reloc.o" -endseg - -beginseg - name "ovl_En_Dnt_Demo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/ovl_En_Dnt_Demo_reloc.o" -endseg - -beginseg - name "ovl_En_Dnt_Jiji" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/ovl_En_Dnt_Jiji_reloc.o" -endseg - -beginseg - name "ovl_En_Dnt_Nomal" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/ovl_En_Dnt_Nomal_reloc.o" -endseg - -beginseg - name "ovl_En_Guest" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/z_en_guest.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/ovl_En_Guest_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bom_Guard" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/ovl_Bg_Bom_Guard_reloc.o" -endseg - -beginseg - name "ovl_En_Hs2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/z_en_hs2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/ovl_En_Hs2_reloc.o" -endseg - -beginseg - name "ovl_Demo_Kekkai" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/ovl_Demo_Kekkai_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot08_Bakudankabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/ovl_Bg_Spot08_Bakudankabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot17_Bakudankabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/ovl_Bg_Spot17_Bakudankabe_reloc.o" -endseg - -beginseg - name "ovl_Obj_Mure3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/ovl_Obj_Mure3_reloc.o" -endseg - -beginseg - name "ovl_En_Tg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/z_en_tg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/ovl_En_Tg_reloc.o" -endseg - -beginseg - name "ovl_En_Mu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/z_en_mu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/ovl_En_Mu_reloc.o" -endseg - -beginseg - name "ovl_En_Go2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/z_en_go2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/ovl_En_Go2_reloc.o" -endseg - -beginseg - name "ovl_En_Wf" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/z_en_wf.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/ovl_En_Wf_reloc.o" -endseg - -beginseg - name "ovl_En_Skb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/z_en_skb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/ovl_En_Skb_reloc.o" -endseg - -beginseg - name "ovl_Demo_Gj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/ovl_Demo_Gj_reloc.o" -endseg - -beginseg - name "ovl_Demo_Geff" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/ovl_Demo_Geff_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Firemeiro" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/ovl_Bg_Gnd_Firemeiro_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Darkmeiro" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/ovl_Bg_Gnd_Darkmeiro_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Soulmeiro" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/ovl_Bg_Gnd_Soulmeiro_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Nisekabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/ovl_Bg_Gnd_Nisekabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Iceblock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/ovl_Bg_Gnd_Iceblock_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ydan_Sp" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/ovl_Bg_Ydan_Sp_reloc.o" -endseg - -beginseg - name "ovl_En_Gb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/z_en_gb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/ovl_En_Gb_reloc.o" -endseg - -beginseg - name "ovl_En_Gs" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/z_en_gs.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/ovl_En_Gs_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Bwall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/ovl_Bg_Mizu_Bwall_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/ovl_Bg_Mizu_Shutter_reloc.o" -endseg - -beginseg - name "ovl_En_Daiku_Kakariko" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/ovl_En_Daiku_Kakariko_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bowl_Wall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/ovl_Bg_Bowl_Wall_reloc.o" -endseg - -beginseg - name "ovl_En_Wall_Tubo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/ovl_En_Wall_Tubo_reloc.o" -endseg - -beginseg - name "ovl_En_Po_Desert" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/ovl_En_Po_Desert_reloc.o" -endseg - -beginseg - name "ovl_En_Crow" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/z_en_crow.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/ovl_En_Crow_reloc.o" -endseg - -beginseg - name "ovl_Door_Killer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/z_door_killer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/ovl_Door_Killer_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot11_Oasis" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/ovl_Bg_Spot11_Oasis_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot18_Futa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/ovl_Bg_Spot18_Futa_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot18_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/ovl_Bg_Spot18_Shutter_reloc.o" -endseg - -beginseg - name "ovl_En_Ma3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/z_en_ma3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/ovl_En_Ma3_reloc.o" -endseg - -beginseg - name "ovl_En_Cow" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/z_en_cow.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/ovl_En_Cow_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ice_Turara" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/ovl_Bg_Ice_Turara_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ice_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/ovl_Bg_Ice_Shutter_reloc.o" -endseg - -beginseg - name "ovl_En_Kakasi2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/ovl_En_Kakasi2_reloc.o" -endseg - -beginseg - name "ovl_En_Kakasi3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/ovl_En_Kakasi3_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Wipe4" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4_reloc.o" -endseg - -beginseg - name "ovl_En_Eg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/z_en_eg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/ovl_En_Eg_reloc.o" -endseg - -beginseg - name "ovl_Bg_Menkuri_Nisekabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/ovl_Bg_Menkuri_Nisekabe_reloc.o" -endseg - -beginseg - name "ovl_En_Zo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/z_en_zo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/ovl_En_Zo_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Ice_Smoke" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/ovl_Effect_Ss_Ice_Smoke_reloc.o" -endseg - -beginseg - name "ovl_Obj_Makekinsuta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/ovl_Obj_Makekinsuta_reloc.o" -endseg - -beginseg - name "ovl_En_Ge3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/z_en_ge3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/ovl_En_Ge3_reloc.o" -endseg - -beginseg - name "ovl_Obj_Timeblock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/ovl_Obj_Timeblock_reloc.o" -endseg - -beginseg - name "ovl_Obj_Hamishi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/ovl_Obj_Hamishi_reloc.o" -endseg - -beginseg - name "ovl_En_Zl4" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/z_en_zl4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/ovl_En_Zl4_reloc.o" -endseg - -beginseg - name "ovl_En_Mm2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/z_en_mm2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/ovl_En_Mm2_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Block" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/ovl_Bg_Jya_Block_reloc.o" -endseg - -beginseg - name "ovl_Obj_Warp2block" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/ovl_Obj_Warp2block_reloc.o" -endseg - +#include "spec_includes/overlays_n64_ique.inc" #else - -beginseg - name "ovl_Arms_Hook" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/ovl_Arms_Hook_reloc.o" -endseg - -beginseg - name "ovl_Arrow_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/ovl_Arrow_Fire_reloc.o" -endseg - -beginseg - name "ovl_Arrow_Ice" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/ovl_Arrow_Ice_reloc.o" -endseg - -beginseg - name "ovl_Arrow_Light" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/ovl_Arrow_Light_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bdan_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/ovl_Bg_Bdan_Objects_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bdan_Switch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/ovl_Bg_Bdan_Switch_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bom_Guard" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/ovl_Bg_Bom_Guard_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bombwall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/ovl_Bg_Bombwall_reloc.o" -endseg - -beginseg - name "ovl_Bg_Bowl_Wall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/ovl_Bg_Bowl_Wall_reloc.o" -endseg - -beginseg - name "ovl_Bg_Breakwall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/ovl_Bg_Breakwall_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ddan_Jd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/ovl_Bg_Ddan_Jd_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ddan_Kd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/ovl_Bg_Ddan_Kd_reloc.o" -endseg - -beginseg - name "ovl_Bg_Dodoago" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/ovl_Bg_Dodoago_reloc.o" -endseg - -beginseg - name "ovl_Bg_Dy_Yoseizo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/ovl_Bg_Dy_Yoseizo_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ganon_Otyuka" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/ovl_Bg_Ganon_Otyuka_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gate_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/ovl_Bg_Gate_Shutter_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gjyo_Bridge" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/ovl_Bg_Gjyo_Bridge_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Darkmeiro" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/ovl_Bg_Gnd_Darkmeiro_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Firemeiro" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/ovl_Bg_Gnd_Firemeiro_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Iceblock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/ovl_Bg_Gnd_Iceblock_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Nisekabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/ovl_Bg_Gnd_Nisekabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Gnd_Soulmeiro" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/ovl_Bg_Gnd_Soulmeiro_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/ovl_Bg_Haka_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Gate" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/ovl_Bg_Haka_Gate_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Huta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/ovl_Bg_Haka_Huta_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Megane" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/ovl_Bg_Haka_Megane_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_MeganeBG" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/ovl_Bg_Haka_MeganeBG_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Sgami" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/ovl_Bg_Haka_Sgami_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Ship" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/ovl_Bg_Haka_Ship_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Trap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/ovl_Bg_Haka_Trap_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Tubo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/ovl_Bg_Haka_Tubo_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Water" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/ovl_Bg_Haka_Water_reloc.o" -endseg - -beginseg - name "ovl_Bg_Haka_Zou" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/ovl_Bg_Haka_Zou_reloc.o" -endseg - -beginseg - name "ovl_Bg_Heavy_Block" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/ovl_Bg_Heavy_Block_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Curtain" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/ovl_Bg_Hidan_Curtain_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Dalm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/ovl_Bg_Hidan_Dalm_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Firewall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/ovl_Bg_Hidan_Firewall_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Fslift" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/ovl_Bg_Hidan_Fslift_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Fwbig" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/ovl_Bg_Hidan_Fwbig_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Hamstep" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/ovl_Bg_Hidan_Hamstep_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Hrock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/ovl_Bg_Hidan_Hrock_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Kousi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/ovl_Bg_Hidan_Kousi_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Kowarerukabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/ovl_Bg_Hidan_Kowarerukabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Rock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/ovl_Bg_Hidan_Rock_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Rsekizou" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/ovl_Bg_Hidan_Rsekizou_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Sekizou" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/ovl_Bg_Hidan_Sekizou_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Sima" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/ovl_Bg_Hidan_Sima_reloc.o" -endseg - -beginseg - name "ovl_Bg_Hidan_Syoku" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/ovl_Bg_Hidan_Syoku_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ice_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/ovl_Bg_Ice_Objects_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ice_Shelter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/ovl_Bg_Ice_Shelter_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ice_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/ovl_Bg_Ice_Shutter_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ice_Turara" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/ovl_Bg_Ice_Turara_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ingate" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/ovl_Bg_Ingate_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_1flift" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/ovl_Bg_Jya_1flift_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Amishutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/ovl_Bg_Jya_Amishutter_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Bigmirror" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/ovl_Bg_Jya_Bigmirror_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Block" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/ovl_Bg_Jya_Block_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Bombchuiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/ovl_Bg_Jya_Bombchuiwa_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Bombiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/ovl_Bg_Jya_Bombiwa_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Cobra" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/ovl_Bg_Jya_Cobra_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Goroiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/ovl_Bg_Jya_Goroiwa_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Haheniron" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/ovl_Bg_Jya_Haheniron_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Ironobj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/ovl_Bg_Jya_Ironobj_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Kanaami" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/ovl_Bg_Jya_Kanaami_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Lift" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/ovl_Bg_Jya_Lift_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Megami" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/ovl_Bg_Jya_Megami_reloc.o" -endseg - -beginseg - name "ovl_Bg_Jya_Zurerukabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/ovl_Bg_Jya_Zurerukabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Menkuri_Eye" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/ovl_Bg_Menkuri_Eye_reloc.o" -endseg - -beginseg - name "ovl_Bg_Menkuri_Kaiten" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/ovl_Bg_Menkuri_Kaiten_reloc.o" -endseg - -beginseg - name "ovl_Bg_Menkuri_Nisekabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/ovl_Bg_Menkuri_Nisekabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Bwall" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/ovl_Bg_Mizu_Bwall_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Movebg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/ovl_Bg_Mizu_Movebg_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/ovl_Bg_Mizu_Shutter_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Uzu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/ovl_Bg_Mizu_Uzu_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mizu_Water" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/ovl_Bg_Mizu_Water_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mjin" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/ovl_Bg_Mjin_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Bigst" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/ovl_Bg_Mori_Bigst_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Elevator" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/ovl_Bg_Mori_Elevator_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Hashigo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/ovl_Bg_Mori_Hashigo_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Hashira4" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/ovl_Bg_Mori_Hashira4_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Hineri" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/ovl_Bg_Mori_Hineri_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Idomizu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/ovl_Bg_Mori_Idomizu_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Kaitenkabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/ovl_Bg_Mori_Kaitenkabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Mori_Rakkatenjo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/ovl_Bg_Mori_Rakkatenjo_reloc.o" -endseg - -beginseg - name "ovl_Bg_Po_Event" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/ovl_Bg_Po_Event_reloc.o" -endseg - -beginseg - name "ovl_Bg_Po_Syokudai" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/ovl_Bg_Po_Syokudai_reloc.o" -endseg - -beginseg - name "ovl_Bg_Pushbox" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/ovl_Bg_Pushbox_reloc.o" -endseg - -beginseg - name "ovl_Bg_Relay_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/ovl_Bg_Relay_Objects_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot00_Break" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/ovl_Bg_Spot00_Break_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot00_Hanebasi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/ovl_Bg_Spot00_Hanebasi_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Fusya" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/ovl_Bg_Spot01_Fusya_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Idohashira" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/ovl_Bg_Spot01_Idohashira_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Idomizu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/ovl_Bg_Spot01_Idomizu_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Idosoko" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/ovl_Bg_Spot01_Idosoko_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot01_Objects2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/ovl_Bg_Spot01_Objects2_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot02_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/ovl_Bg_Spot02_Objects_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot03_Taki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/ovl_Bg_Spot03_Taki_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot05_Soko" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/ovl_Bg_Spot05_Soko_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot06_Objects" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/ovl_Bg_Spot06_Objects_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot07_Taki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/ovl_Bg_Spot07_Taki_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot08_Bakudankabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/ovl_Bg_Spot08_Bakudankabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot08_Iceblock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/ovl_Bg_Spot08_Iceblock_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot09_Obj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/ovl_Bg_Spot09_Obj_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot11_Bakudankabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/ovl_Bg_Spot11_Bakudankabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot11_Oasis" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/ovl_Bg_Spot11_Oasis_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot12_Gate" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/ovl_Bg_Spot12_Gate_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot12_Saku" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/ovl_Bg_Spot12_Saku_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot15_Rrbox" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/ovl_Bg_Spot15_Rrbox_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot15_Saku" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/ovl_Bg_Spot15_Saku_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot16_Bombstone" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/ovl_Bg_Spot16_Bombstone_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot16_Doughnut" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/ovl_Bg_Spot16_Doughnut_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot17_Bakudankabe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/ovl_Bg_Spot17_Bakudankabe_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot17_Funen" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/ovl_Bg_Spot17_Funen_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot18_Basket" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/ovl_Bg_Spot18_Basket_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot18_Futa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/ovl_Bg_Spot18_Futa_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot18_Obj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/ovl_Bg_Spot18_Obj_reloc.o" -endseg - -beginseg - name "ovl_Bg_Spot18_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/ovl_Bg_Spot18_Shutter_reloc.o" -endseg - -beginseg - name "ovl_Bg_Sst_Floor" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/ovl_Bg_Sst_Floor_reloc.o" -endseg - -beginseg - name "ovl_Bg_Toki_Hikari" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/ovl_Bg_Toki_Hikari_reloc.o" -endseg - -beginseg - name "ovl_Bg_Toki_Swd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/ovl_Bg_Toki_Swd_reloc.o" -endseg - -beginseg - name "ovl_Bg_Treemouth" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/ovl_Bg_Treemouth_reloc.o" -endseg - -beginseg - name "ovl_Bg_Umajump" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/ovl_Bg_Umajump_reloc.o" -endseg - -beginseg - name "ovl_Bg_Vb_Sima" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/ovl_Bg_Vb_Sima_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ydan_Hasi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/ovl_Bg_Ydan_Hasi_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ydan_Maruta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/ovl_Bg_Ydan_Maruta_reloc.o" -endseg - -beginseg - name "ovl_Bg_Ydan_Sp" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/ovl_Bg_Ydan_Sp_reloc.o" -endseg - -beginseg - name "ovl_Bg_Zg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/ovl_Bg_Zg_reloc.o" -endseg - -beginseg - name "ovl_Boss_Dodongo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/ovl_Boss_Dodongo_reloc.o" -endseg - -beginseg - name "ovl_Boss_Fd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/ovl_Boss_Fd_reloc.o" -endseg - -beginseg - name "ovl_Boss_Fd2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/ovl_Boss_Fd2_reloc.o" -endseg - -beginseg - name "ovl_Boss_Ganon" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/ovl_Boss_Ganon_reloc.o" -endseg - -beginseg - name "ovl_Boss_Ganon2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/ovl_Boss_Ganon2_reloc.o" -endseg - -beginseg - name "ovl_Boss_Ganondrof" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/ovl_Boss_Ganondrof_reloc.o" -endseg - -beginseg - name "ovl_Boss_Goma" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/ovl_Boss_Goma_reloc.o" -endseg - -beginseg - name "ovl_Boss_Mo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/ovl_Boss_Mo_reloc.o" -endseg - -beginseg - name "ovl_Boss_Sst" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/ovl_Boss_Sst_reloc.o" -endseg - -beginseg - name "ovl_Boss_Tw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/ovl_Boss_Tw_reloc.o" -endseg - -beginseg - name "ovl_Boss_Va" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/z_boss_va.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/ovl_Boss_Va_reloc.o" -endseg - -beginseg - name "ovl_Demo_6K" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/z_demo_6k.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/ovl_Demo_6K_reloc.o" -endseg - -beginseg - name "ovl_Demo_Du" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/z_demo_du.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/ovl_Demo_Du_reloc.o" -endseg - -beginseg - name "ovl_Demo_Ec" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/ovl_Demo_Ec_reloc.o" -endseg - -beginseg - name "ovl_Demo_Effect" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/ovl_Demo_Effect_reloc.o" -endseg - -beginseg - name "ovl_Demo_Ext" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/ovl_Demo_Ext_reloc.o" -endseg - -beginseg - name "ovl_Demo_Geff" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/ovl_Demo_Geff_reloc.o" -endseg - -beginseg - name "ovl_Demo_Gj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/ovl_Demo_Gj_reloc.o" -endseg - -beginseg - name "ovl_Demo_Go" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/z_demo_go.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/ovl_Demo_Go_reloc.o" -endseg - -beginseg - name "ovl_Demo_Gt" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/ovl_Demo_Gt_reloc.o" -endseg - -beginseg - name "ovl_Demo_Ik" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/ovl_Demo_Ik_reloc.o" -endseg - -beginseg - name "ovl_Demo_Im" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/z_demo_im.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/ovl_Demo_Im_reloc.o" -endseg - -beginseg - name "ovl_Demo_Kankyo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/ovl_Demo_Kankyo_reloc.o" -endseg - -beginseg - name "ovl_Demo_Kekkai" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/ovl_Demo_Kekkai_reloc.o" -endseg - -beginseg - name "ovl_Demo_Sa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/ovl_Demo_Sa_reloc.o" -endseg - -beginseg - name "ovl_Demo_Shd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/ovl_Demo_Shd_reloc.o" -endseg - -beginseg - name "ovl_Demo_Tre_Lgt" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/ovl_Demo_Tre_Lgt_reloc.o" -endseg - -beginseg - name "ovl_Door_Ana" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/z_door_ana.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/ovl_Door_Ana_reloc.o" -endseg - -beginseg - name "ovl_Door_Gerudo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/ovl_Door_Gerudo_reloc.o" -endseg - -beginseg - name "ovl_Door_Killer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/z_door_killer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/ovl_Door_Killer_reloc.o" -endseg - -beginseg - name "ovl_Door_Shutter" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/ovl_Door_Shutter_reloc.o" -endseg - -beginseg - name "ovl_Door_Toki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/z_door_toki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/ovl_Door_Toki_reloc.o" -endseg - -beginseg - name "ovl_Door_Warp1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/ovl_Door_Warp1_reloc.o" -endseg - -beginseg - name "ovl_Efc_Erupc" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/ovl_Efc_Erupc_reloc.o" -endseg - -beginseg - name "ovl_Eff_Dust" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/ovl_Eff_Dust_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Blast" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/ovl_Effect_Ss_Blast_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Bomb" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/ovl_Effect_Ss_Bomb_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Bomb2" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/ovl_Effect_Ss_Bomb2_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Bubble" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/ovl_Effect_Ss_Bubble_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_D_Fire" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/ovl_Effect_Ss_D_Fire_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dead_Db" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/ovl_Effect_Ss_Dead_Db_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dead_Dd" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/ovl_Effect_Ss_Dead_Dd_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dead_Ds" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/ovl_Effect_Ss_Dead_Ds_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dead_Sound" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/ovl_Effect_Ss_Dead_Sound_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dt_Bubble" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/ovl_Effect_Ss_Dt_Bubble_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Dust" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/ovl_Effect_Ss_Dust_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_En_Fire" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/ovl_Effect_Ss_En_Fire_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_En_Ice" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/ovl_Effect_Ss_En_Ice_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Extra" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/ovl_Effect_Ss_Extra_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Fcircle" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/ovl_Effect_Ss_Fcircle_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Fhg_Flash" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/ovl_Effect_Ss_Fhg_Flash_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Fire_Tail" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/ovl_Effect_Ss_Fire_Tail_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Fire" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/ovl_Effect_Ss_G_Fire_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Magma" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/ovl_Effect_Ss_G_Magma_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Magma2" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/ovl_Effect_Ss_G_Magma2_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Ripple" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/ovl_Effect_Ss_G_Ripple_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Spk" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/ovl_Effect_Ss_G_Spk_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_G_Splash" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/ovl_Effect_Ss_G_Splash_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Hahen" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/ovl_Effect_Ss_Hahen_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_HitMark" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/ovl_Effect_Ss_HitMark_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Ice_Piece" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/ovl_Effect_Ss_Ice_Piece_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Ice_Smoke" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/ovl_Effect_Ss_Ice_Smoke_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_K_Fire" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/ovl_Effect_Ss_K_Fire_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Kakera" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/ovl_Effect_Ss_Kakera_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_KiraKira" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/ovl_Effect_Ss_KiraKira_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Lightning" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/ovl_Effect_Ss_Lightning_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Sibuki" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/ovl_Effect_Ss_Sibuki_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Sibuki2" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/ovl_Effect_Ss_Sibuki2_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Solder_Srch_Ball" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/ovl_Effect_Ss_Solder_Srch_Ball_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Stick" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/ovl_Effect_Ss_Stick_reloc.o" -endseg - -beginseg - name "ovl_Effect_Ss_Stone1" - compress - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.o" - include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/ovl_Effect_Ss_Stone1_reloc.o" -endseg - -beginseg - name "ovl_Elf_Msg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/ovl_Elf_Msg_reloc.o" -endseg - -beginseg - name "ovl_Elf_Msg2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/ovl_Elf_Msg2_reloc.o" -endseg - -beginseg - name "ovl_En_Am" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/z_en_am.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/ovl_En_Am_reloc.o" -endseg - -beginseg - name "ovl_En_Ani" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/z_en_ani.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/ovl_En_Ani_reloc.o" -endseg - -beginseg - name "ovl_En_Anubice" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/z_en_anubice.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/ovl_En_Anubice_reloc.o" -endseg - -beginseg - name "ovl_En_Anubice_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/ovl_En_Anubice_Fire_reloc.o" -endseg - -beginseg - name "ovl_En_Anubice_Tag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/ovl_En_Anubice_Tag_reloc.o" -endseg - -beginseg - name "ovl_En_Arow_Trap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/ovl_En_Arow_Trap_reloc.o" -endseg - -beginseg - name "ovl_En_Arrow" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/z_en_arrow.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/ovl_En_Arrow_reloc.o" -endseg - -beginseg - name "ovl_En_Attack_Niw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/ovl_En_Attack_Niw_reloc.o" -endseg - -beginseg - name "ovl_En_Ba" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/z_en_ba.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/ovl_En_Ba_reloc.o" -endseg - -beginseg - name "ovl_En_Bb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/z_en_bb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/ovl_En_Bb_reloc.o" -endseg - -beginseg - name "ovl_En_Bdfire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/ovl_En_Bdfire_reloc.o" -endseg - -beginseg - name "ovl_En_Bigokuta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/ovl_En_Bigokuta_reloc.o" -endseg - -beginseg - name "ovl_En_Bili" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/z_en_bili.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/ovl_En_Bili_reloc.o" -endseg - -beginseg - name "ovl_En_Bird" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/z_en_bird.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/ovl_En_Bird_reloc.o" -endseg - -beginseg - name "ovl_En_Blkobj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/ovl_En_Blkobj_reloc.o" -endseg - -beginseg - name "ovl_En_Bom" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/z_en_bom.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/ovl_En_Bom_reloc.o" -endseg - -beginseg - name "ovl_En_Bom_Bowl_Man" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/ovl_En_Bom_Bowl_Man_reloc.o" -endseg - -beginseg - name "ovl_En_Bom_Bowl_Pit" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/ovl_En_Bom_Bowl_Pit_reloc.o" -endseg - -beginseg - name "ovl_En_Bom_Chu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/ovl_En_Bom_Chu_reloc.o" -endseg - -beginseg - name "ovl_En_Bombf" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/z_en_bombf.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/ovl_En_Bombf_reloc.o" -endseg - -beginseg - name "ovl_En_Boom" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/z_en_boom.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/ovl_En_Boom_reloc.o" -endseg - -beginseg - name "ovl_En_Box" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/z_en_box.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/ovl_En_Box_reloc.o" -endseg - -beginseg - name "ovl_En_Brob" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/z_en_brob.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/ovl_En_Brob_reloc.o" -endseg - -beginseg - name "ovl_En_Bubble" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/z_en_bubble.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/ovl_En_Bubble_reloc.o" -endseg - -beginseg - name "ovl_En_Butte" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/z_en_butte.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/ovl_En_Butte_reloc.o" -endseg - -beginseg - name "ovl_En_Bw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/z_en_bw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/ovl_En_Bw_reloc.o" -endseg - -beginseg - name "ovl_En_Bx" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/z_en_bx.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/ovl_En_Bx_reloc.o" -endseg - -beginseg - name "ovl_En_Changer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/z_en_changer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/ovl_En_Changer_reloc.o" -endseg - -beginseg - name "ovl_En_Clear_Tag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/ovl_En_Clear_Tag_reloc.o" -endseg - -beginseg - name "ovl_En_Cow" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/z_en_cow.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/ovl_En_Cow_reloc.o" -endseg - -beginseg - name "ovl_En_Crow" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/z_en_crow.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/ovl_En_Crow_reloc.o" -endseg - -beginseg - name "ovl_En_Cs" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/z_en_cs.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/ovl_En_Cs_reloc.o" -endseg - -beginseg - name "ovl_En_Daiku" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/z_en_daiku.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/ovl_En_Daiku_reloc.o" -endseg - -beginseg - name "ovl_En_Daiku_Kakariko" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/ovl_En_Daiku_Kakariko_reloc.o" -endseg - -beginseg - name "ovl_En_Dekubaba" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/ovl_En_Dekubaba_reloc.o" -endseg - -beginseg - name "ovl_En_Dekunuts" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/ovl_En_Dekunuts_reloc.o" -endseg - -beginseg - name "ovl_En_Dh" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/z_en_dh.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/ovl_En_Dh_reloc.o" -endseg - -beginseg - name "ovl_En_Dha" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/z_en_dha.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/ovl_En_Dha_reloc.o" -endseg - -beginseg - name "ovl_En_Diving_Game" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/ovl_En_Diving_Game_reloc.o" -endseg - -beginseg - name "ovl_En_Dns" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/z_en_dns.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/ovl_En_Dns_reloc.o" -endseg - -beginseg - name "ovl_En_Dnt_Demo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/ovl_En_Dnt_Demo_reloc.o" -endseg - -beginseg - name "ovl_En_Dnt_Jiji" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/ovl_En_Dnt_Jiji_reloc.o" -endseg - -beginseg - name "ovl_En_Dnt_Nomal" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/ovl_En_Dnt_Nomal_reloc.o" -endseg - -beginseg - name "ovl_En_Dodojr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/ovl_En_Dodojr_reloc.o" -endseg - -beginseg - name "ovl_En_Dodongo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/ovl_En_Dodongo_reloc.o" -endseg - -beginseg - name "ovl_En_Dog" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/z_en_dog.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/ovl_En_Dog_reloc.o" -endseg - -beginseg - name "ovl_En_Door" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/z_en_door.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/ovl_En_Door_reloc.o" -endseg - -beginseg - name "ovl_En_Ds" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/z_en_ds.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/ovl_En_Ds_reloc.o" -endseg - -beginseg - name "ovl_En_Du" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/z_en_du.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/ovl_En_Du_reloc.o" -endseg - -beginseg - name "ovl_En_Dy_Extra" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/ovl_En_Dy_Extra_reloc.o" -endseg - -beginseg - name "ovl_En_Eg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/z_en_eg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/ovl_En_Eg_reloc.o" -endseg - -beginseg - name "ovl_En_Eiyer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/ovl_En_Eiyer_reloc.o" -endseg - -beginseg - name "ovl_En_Elf" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/z_en_elf.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/ovl_En_Elf_reloc.o" -endseg - -beginseg - name "ovl_En_Encount1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/z_en_encount1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/ovl_En_Encount1_reloc.o" -endseg - -beginseg - name "ovl_En_Encount2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/z_en_encount2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/ovl_En_Encount2_reloc.o" -endseg - -beginseg - name "ovl_En_Ex_Item" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/ovl_En_Ex_Item_reloc.o" -endseg - -beginseg - name "ovl_En_Ex_Ruppy" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/ovl_En_Ex_Ruppy_reloc.o" -endseg - -beginseg - name "ovl_En_Fd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/z_en_fd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/ovl_En_Fd_reloc.o" -endseg - -beginseg - name "ovl_En_Fd_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/ovl_En_Fd_Fire_reloc.o" -endseg - -beginseg - name "ovl_En_Fhg_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/ovl_En_Fhg_Fire_reloc.o" -endseg - -beginseg - name "ovl_En_Fire_Rock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/ovl_En_Fire_Rock_reloc.o" -endseg - -beginseg - name "ovl_En_Firefly" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/z_en_firefly.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/ovl_En_Firefly_reloc.o" -endseg - -beginseg - name "ovl_En_Fish" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/z_en_fish.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/ovl_En_Fish_reloc.o" -endseg - -beginseg - name "ovl_En_Floormas" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/z_en_floormas.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/ovl_En_Floormas_reloc.o" -endseg - -beginseg - name "ovl_En_Fr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/z_en_fr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/ovl_En_Fr_reloc.o" -endseg - -beginseg - name "ovl_En_Fu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/z_en_fu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/ovl_En_Fu_reloc.o" -endseg - -beginseg - name "ovl_En_Fw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/z_en_fw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/ovl_En_Fw_reloc.o" -endseg - -beginseg - name "ovl_En_Fz" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/z_en_fz.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/ovl_En_Fz_reloc.o" -endseg - -beginseg - name "ovl_En_G_Switch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/ovl_En_G_Switch_reloc.o" -endseg - -beginseg - name "ovl_En_Ganon_Mant" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/ovl_En_Ganon_Mant_reloc.o" -endseg - -beginseg - name "ovl_En_Ganon_Organ" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ_reloc.o" -endseg - -beginseg - name "ovl_En_Gb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/z_en_gb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/ovl_En_Gb_reloc.o" -endseg - -beginseg - name "ovl_En_Ge1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/z_en_ge1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/ovl_En_Ge1_reloc.o" -endseg - -beginseg - name "ovl_En_Ge2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/z_en_ge2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/ovl_En_Ge2_reloc.o" -endseg - -beginseg - name "ovl_En_Ge3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/z_en_ge3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/ovl_En_Ge3_reloc.o" -endseg - -beginseg - name "ovl_En_GeldB" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/z_en_geldb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/ovl_En_GeldB_reloc.o" -endseg - -beginseg - name "ovl_En_GirlA" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/z_en_girla.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/ovl_En_GirlA_reloc.o" -endseg - -beginseg - name "ovl_En_Gm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/z_en_gm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/ovl_En_Gm_reloc.o" -endseg - -beginseg - name "ovl_En_Go" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/z_en_go.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/ovl_En_Go_reloc.o" -endseg - -beginseg - name "ovl_En_Go2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/z_en_go2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/ovl_En_Go2_reloc.o" -endseg - -beginseg - name "ovl_En_Goma" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/z_en_goma.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/ovl_En_Goma_reloc.o" -endseg - -beginseg - name "ovl_En_Goroiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/ovl_En_Goroiwa_reloc.o" -endseg - -beginseg - name "ovl_En_Gs" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/z_en_gs.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/ovl_En_Gs_reloc.o" -endseg - -beginseg - name "ovl_En_Guest" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/z_en_guest.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/ovl_En_Guest_reloc.o" -endseg - -beginseg - name "ovl_En_Hata" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/z_en_hata.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/ovl_En_Hata_reloc.o" -endseg - -beginseg - name "ovl_En_Heishi1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/ovl_En_Heishi1_reloc.o" -endseg - -beginseg - name "ovl_En_Heishi2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/ovl_En_Heishi2_reloc.o" -endseg - -beginseg - name "ovl_En_Heishi3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/ovl_En_Heishi3_reloc.o" -endseg - -beginseg - name "ovl_En_Heishi4" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/ovl_En_Heishi4_reloc.o" -endseg - -beginseg - name "ovl_En_Hintnuts" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/ovl_En_Hintnuts_reloc.o" -endseg - -beginseg - name "ovl_En_Holl" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/z_en_holl.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/ovl_En_Holl_reloc.o" -endseg - -beginseg - name "ovl_En_Honotrap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/ovl_En_Honotrap_reloc.o" -endseg - -beginseg - name "ovl_En_Horse" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/z_en_horse.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/ovl_En_Horse_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Game_Check" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/ovl_En_Horse_Game_Check_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Ganon" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/ovl_En_Horse_Ganon_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Link_Child" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/ovl_En_Horse_Link_Child_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Normal" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/ovl_En_Horse_Normal_reloc.o" -endseg - -beginseg - name "ovl_En_Horse_Zelda" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/ovl_En_Horse_Zelda_reloc.o" -endseg - -beginseg - name "ovl_En_Hs" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/z_en_hs.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/ovl_En_Hs_reloc.o" -endseg - -beginseg - name "ovl_En_Hs2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/z_en_hs2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/ovl_En_Hs2_reloc.o" -endseg - -beginseg - name "ovl_En_Hy" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/z_en_hy.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/ovl_En_Hy_reloc.o" -endseg - -beginseg - name "ovl_En_Ice_Hono" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/ovl_En_Ice_Hono_reloc.o" -endseg - -beginseg - name "ovl_En_Ik" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/z_en_ik.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/ovl_En_Ik_reloc.o" -endseg - -beginseg - name "ovl_En_In" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/z_en_in.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/ovl_En_In_reloc.o" -endseg - -beginseg - name "ovl_En_Insect" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/z_en_insect.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/ovl_En_Insect_reloc.o" -endseg - -beginseg - name "ovl_En_Ishi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/z_en_ishi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/ovl_En_Ishi_reloc.o" -endseg - -beginseg - name "ovl_En_It" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/z_en_it.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/ovl_En_It_reloc.o" -endseg - -beginseg - name "ovl_En_Jj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/ovl_En_Jj_reloc.o" -endseg - -beginseg - name "ovl_En_Js" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/z_en_js.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/ovl_En_Js_reloc.o" -endseg - -beginseg - name "ovl_En_Jsjutan" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/ovl_En_Jsjutan_reloc.o" -endseg - -beginseg - name "ovl_En_Kakasi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/ovl_En_Kakasi_reloc.o" -endseg - -beginseg - name "ovl_En_Kakasi2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/ovl_En_Kakasi2_reloc.o" -endseg - -beginseg - name "ovl_En_Kakasi3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/ovl_En_Kakasi3_reloc.o" -endseg - -beginseg - name "ovl_En_Kanban" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/z_en_kanban.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/ovl_En_Kanban_reloc.o" -endseg - -beginseg - name "ovl_En_Karebaba" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/ovl_En_Karebaba_reloc.o" -endseg - -beginseg - name "ovl_En_Ko" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/z_en_ko.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/ovl_En_Ko_reloc.o" -endseg - -beginseg - name "ovl_En_Kusa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/z_en_kusa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/ovl_En_Kusa_reloc.o" -endseg - -beginseg - name "ovl_En_Kz" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/z_en_kz.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/ovl_En_Kz_reloc.o" -endseg - -beginseg - name "ovl_En_Light" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/z_en_light.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/ovl_En_Light_reloc.o" -endseg - -beginseg - name "ovl_En_Lightbox" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/ovl_En_Lightbox_reloc.o" -endseg - -beginseg - name "ovl_En_M_Fire1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/ovl_En_M_Fire1_reloc.o" -endseg - -beginseg - name "ovl_En_M_Thunder" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/ovl_En_M_Thunder_reloc.o" -endseg - -beginseg - name "ovl_En_Ma1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/z_en_ma1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/ovl_En_Ma1_reloc.o" -endseg - -beginseg - name "ovl_En_Ma2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/z_en_ma2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/ovl_En_Ma2_reloc.o" -endseg - -beginseg - name "ovl_En_Ma3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/z_en_ma3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/ovl_En_Ma3_reloc.o" -endseg - -beginseg - name "ovl_En_Mag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/z_en_mag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/ovl_En_Mag_reloc.o" -endseg - -beginseg - name "ovl_En_Mb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/z_en_mb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/ovl_En_Mb_reloc.o" -endseg - -beginseg - name "ovl_En_Md" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/z_en_md.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/ovl_En_Md_reloc.o" -endseg - -beginseg - name "ovl_En_Mk" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/z_en_mk.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/ovl_En_Mk_reloc.o" -endseg - -beginseg - name "ovl_En_Mm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/z_en_mm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/ovl_En_Mm_reloc.o" -endseg - -beginseg - name "ovl_En_Mm2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/z_en_mm2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/ovl_En_Mm2_reloc.o" -endseg - -beginseg - name "ovl_En_Ms" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/z_en_ms.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/ovl_En_Ms_reloc.o" -endseg - -beginseg - name "ovl_En_Mu" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/z_en_mu.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/ovl_En_Mu_reloc.o" -endseg - -beginseg - name "ovl_En_Nb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/z_en_nb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/ovl_En_Nb_reloc.o" -endseg - -beginseg - name "ovl_En_Niw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/z_en_niw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/ovl_En_Niw_reloc.o" -endseg - -beginseg - name "ovl_En_Niw_Girl" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/ovl_En_Niw_Girl_reloc.o" -endseg - -beginseg - name "ovl_En_Niw_Lady" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/ovl_En_Niw_Lady_reloc.o" -endseg - -beginseg - name "ovl_En_Nutsball" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/ovl_En_Nutsball_reloc.o" -endseg - -beginseg - name "ovl_En_Nwc" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/z_en_nwc.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/ovl_En_Nwc_reloc.o" -endseg - -beginseg - name "ovl_En_Ny" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/z_en_ny.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/ovl_En_Ny_reloc.o" -endseg - -beginseg - name "ovl_En_OE2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/z_en_oe2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/ovl_En_OE2_reloc.o" -endseg - -beginseg - name "ovl_En_Okarina_Effect" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/ovl_En_Okarina_Effect_reloc.o" -endseg - -beginseg - name "ovl_En_Okarina_Tag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/ovl_En_Okarina_Tag_reloc.o" -endseg - -beginseg - name "ovl_En_Okuta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/z_en_okuta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/ovl_En_Okuta_reloc.o" -endseg - -beginseg - name "ovl_En_Ossan" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/z_en_ossan.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/ovl_En_Ossan_reloc.o" -endseg - -beginseg - name "ovl_En_Owl" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/z_en_owl.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/ovl_En_Owl_reloc.o" -endseg - -beginseg - name "ovl_En_Part" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/z_en_part.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/ovl_En_Part_reloc.o" -endseg - -beginseg - name "ovl_En_Peehat" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/z_en_peehat.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/ovl_En_Peehat_reloc.o" -endseg - -beginseg - name "ovl_En_Po_Desert" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/ovl_En_Po_Desert_reloc.o" -endseg - -beginseg - name "ovl_En_Po_Field" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/ovl_En_Po_Field_reloc.o" -endseg - -beginseg - name "ovl_En_Po_Relay" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/ovl_En_Po_Relay_reloc.o" -endseg - -beginseg - name "ovl_En_Po_Sisters" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/ovl_En_Po_Sisters_reloc.o" -endseg - -beginseg - name "ovl_En_Poh" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/z_en_poh.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/ovl_En_Poh_reloc.o" -endseg - -beginseg - name "ovl_En_Pu_box" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/ovl_En_Pu_box_reloc.o" -endseg - -beginseg - name "ovl_En_Rd" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/z_en_rd.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/ovl_En_Rd_reloc.o" -endseg - -beginseg - name "ovl_En_Reeba" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/z_en_reeba.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/ovl_En_Reeba_reloc.o" -endseg - -beginseg - name "ovl_En_River_Sound" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/ovl_En_River_Sound_reloc.o" -endseg - -beginseg - name "ovl_En_Rl" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/z_en_rl.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/ovl_En_Rl_reloc.o" -endseg - -beginseg - name "ovl_En_Rr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/z_en_rr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/ovl_En_Rr_reloc.o" -endseg - -beginseg - name "ovl_En_Ru1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/z_en_ru1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/ovl_En_Ru1_reloc.o" -endseg - -beginseg - name "ovl_En_Ru2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/z_en_ru2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/ovl_En_Ru2_reloc.o" -endseg - -beginseg - name "ovl_En_Sa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/z_en_sa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/ovl_En_Sa_reloc.o" -endseg - -beginseg - name "ovl_En_Sb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/z_en_sb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/ovl_En_Sb_reloc.o" -endseg - -beginseg - name "ovl_En_Scene_Change" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/ovl_En_Scene_Change_reloc.o" -endseg - -beginseg - name "ovl_En_Sda" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/z_en_sda.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/ovl_En_Sda_reloc.o" -endseg - -beginseg - name "ovl_En_Shopnuts" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/ovl_En_Shopnuts_reloc.o" -endseg - -beginseg - name "ovl_En_Si" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/z_en_si.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/ovl_En_Si_reloc.o" -endseg - -beginseg - name "ovl_En_Siofuki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/ovl_En_Siofuki_reloc.o" -endseg - -beginseg - name "ovl_En_Skb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/z_en_skb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/ovl_En_Skb_reloc.o" -endseg - -beginseg - name "ovl_En_Skj" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/z_en_skj.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/ovl_En_Skj_reloc.o" -endseg - -beginseg - name "ovl_En_Skjneedle" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/ovl_En_Skjneedle_reloc.o" -endseg - -beginseg - name "ovl_En_Ssh" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/z_en_ssh.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/ovl_En_Ssh_reloc.o" -endseg - -beginseg - name "ovl_En_St" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/z_en_st.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/ovl_En_St_reloc.o" -endseg - -beginseg - name "ovl_En_Sth" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/z_en_sth.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/ovl_En_Sth_reloc.o" -endseg - -beginseg - name "ovl_En_Stream" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/z_en_stream.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/ovl_En_Stream_reloc.o" -endseg - -beginseg - name "ovl_En_Sw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/z_en_sw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/ovl_En_Sw_reloc.o" -endseg - -beginseg - name "ovl_En_Syateki_Itm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/ovl_En_Syateki_Itm_reloc.o" -endseg - -beginseg - name "ovl_En_Syateki_Man" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/ovl_En_Syateki_Man_reloc.o" -endseg - -beginseg - name "ovl_En_Syateki_Niw" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/ovl_En_Syateki_Niw_reloc.o" -endseg - -beginseg - name "ovl_En_Ta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/z_en_ta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/ovl_En_Ta_reloc.o" -endseg - -beginseg - name "ovl_En_Takara_Man" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/ovl_En_Takara_Man_reloc.o" -endseg - -beginseg - name "ovl_En_Tana" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/z_en_tana.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/ovl_En_Tana_reloc.o" -endseg - -beginseg - name "ovl_En_Tg" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/z_en_tg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/ovl_En_Tg_reloc.o" -endseg - -beginseg - name "ovl_En_Tite" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/z_en_tite.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/ovl_En_Tite_reloc.o" -endseg - -beginseg - name "ovl_En_Tk" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/z_en_tk.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/ovl_En_Tk_reloc.o" -endseg - -beginseg - name "ovl_En_Torch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/z_en_torch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/ovl_En_Torch_reloc.o" -endseg - -beginseg - name "ovl_En_Torch2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/z_en_torch2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/ovl_En_Torch2_reloc.o" -endseg - -beginseg - name "ovl_En_Toryo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/z_en_toryo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/ovl_En_Toryo_reloc.o" -endseg - -beginseg - name "ovl_En_Tp" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/z_en_tp.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/ovl_En_Tp_reloc.o" -endseg - -beginseg - name "ovl_En_Tr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/z_en_tr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/ovl_En_Tr_reloc.o" -endseg - -beginseg - name "ovl_En_Trap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/z_en_trap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/ovl_En_Trap_reloc.o" -endseg - -beginseg - name "ovl_En_Tubo_Trap" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/ovl_En_Tubo_Trap_reloc.o" -endseg - -beginseg - name "ovl_En_Vali" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/z_en_vali.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/ovl_En_Vali_reloc.o" -endseg - -beginseg - name "ovl_En_Vase" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/z_en_vase.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/ovl_En_Vase_reloc.o" -endseg - -beginseg - name "ovl_En_Vb_Ball" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/ovl_En_Vb_Ball_reloc.o" -endseg - -beginseg - name "ovl_En_Viewer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/z_en_viewer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/ovl_En_Viewer_reloc.o" -endseg - -beginseg - name "ovl_En_Vm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/z_en_vm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/ovl_En_Vm_reloc.o" -endseg - -beginseg - name "ovl_En_Wall_Tubo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/ovl_En_Wall_Tubo_reloc.o" -endseg - -beginseg - name "ovl_En_Wallmas" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/ovl_En_Wallmas_reloc.o" -endseg - -beginseg - name "ovl_En_Weather_Tag" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/ovl_En_Weather_Tag_reloc.o" -endseg - -beginseg - name "ovl_En_Weiyer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/ovl_En_Weiyer_reloc.o" -endseg - -beginseg - name "ovl_En_Wf" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/z_en_wf.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/ovl_En_Wf_reloc.o" -endseg - -beginseg - name "ovl_En_Wonder_Item" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/ovl_En_Wonder_Item_reloc.o" -endseg - -beginseg - name "ovl_En_Wonder_Talk" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/ovl_En_Wonder_Talk_reloc.o" -endseg - -beginseg - name "ovl_En_Wonder_Talk2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/ovl_En_Wonder_Talk2_reloc.o" -endseg - -beginseg - name "ovl_En_Wood02" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/z_en_wood02.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/ovl_En_Wood02_reloc.o" -endseg - -beginseg - name "ovl_En_Xc" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/z_en_xc.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/ovl_En_Xc_reloc.o" -endseg - -beginseg - name "ovl_En_Yabusame_Mark" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/ovl_En_Yabusame_Mark_reloc.o" -endseg - -beginseg - name "ovl_En_Yukabyun" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/ovl_En_Yukabyun_reloc.o" -endseg - -beginseg - name "ovl_En_Zf" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/z_en_zf.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/ovl_En_Zf_reloc.o" -endseg - -beginseg - name "ovl_En_Zl1" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/ovl_En_Zl1_reloc.o" -endseg - -beginseg - name "ovl_En_Zl2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/z_en_zl2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/ovl_En_Zl2_reloc.o" -endseg - -beginseg - name "ovl_En_Zl3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/z_en_zl3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/ovl_En_Zl3_reloc.o" -endseg - -beginseg - name "ovl_En_Zl4" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/z_en_zl4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/ovl_En_Zl4_reloc.o" -endseg - -beginseg - name "ovl_En_Zo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/z_en_zo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/ovl_En_Zo_reloc.o" -endseg - -beginseg - name "ovl_En_fHG" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/z_en_fhg.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/ovl_En_fHG_reloc.o" -endseg - -beginseg - name "ovl_End_Title" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/z_end_title.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/ovl_End_Title_reloc.o" -endseg - -beginseg - name "ovl_Fishing" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/z_fishing.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/ovl_Fishing_reloc.o" -endseg - -beginseg - name "ovl_Item_B_Heart" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/ovl_Item_B_Heart_reloc.o" -endseg - -beginseg - name "ovl_Item_Etcetera" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/ovl_Item_Etcetera_reloc.o" -endseg - -beginseg - name "ovl_Item_Inbox" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/ovl_Item_Inbox_reloc.o" -endseg - -beginseg - name "ovl_Item_Ocarina" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/ovl_Item_Ocarina_reloc.o" -endseg - -beginseg - name "ovl_Item_Shield" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/z_item_shield.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/ovl_Item_Shield_reloc.o" -endseg - -beginseg - name "ovl_Magic_Dark" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/ovl_Magic_Dark_reloc.o" -endseg - -beginseg - name "ovl_Magic_Fire" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/ovl_Magic_Fire_reloc.o" -endseg - -beginseg - name "ovl_Magic_Wind" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/ovl_Magic_Wind_reloc.o" -endseg - -beginseg - name "ovl_Mir_Ray" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/ovl_Mir_Ray_reloc.o" -endseg - -beginseg - name "ovl_Obj_Bean" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/ovl_Obj_Bean_reloc.o" -endseg - -beginseg - name "ovl_Obj_Blockstop" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/ovl_Obj_Blockstop_reloc.o" -endseg - -beginseg - name "ovl_Obj_Bombiwa" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/ovl_Obj_Bombiwa_reloc.o" -endseg - -beginseg - name "ovl_Obj_Comb" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/ovl_Obj_Comb_reloc.o" -endseg - -beginseg - name "ovl_Obj_Dekujr" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/ovl_Obj_Dekujr_reloc.o" -endseg - -beginseg - name "ovl_Obj_Elevator" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/ovl_Obj_Elevator_reloc.o" -endseg - -beginseg - name "ovl_Obj_Hamishi" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/ovl_Obj_Hamishi_reloc.o" -endseg - -beginseg - name "ovl_Obj_Hana" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/ovl_Obj_Hana_reloc.o" -endseg - -beginseg - name "ovl_Obj_Hsblock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/ovl_Obj_Hsblock_reloc.o" -endseg - -beginseg - name "ovl_Obj_Ice_Poly" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly_reloc.o" -endseg - -beginseg - name "ovl_Obj_Kibako" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/ovl_Obj_Kibako_reloc.o" -endseg - -beginseg - name "ovl_Obj_Kibako2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/ovl_Obj_Kibako2_reloc.o" -endseg - -beginseg - name "ovl_Obj_Lift" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/ovl_Obj_Lift_reloc.o" -endseg - -beginseg - name "ovl_Obj_Lightswitch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/ovl_Obj_Lightswitch_reloc.o" -endseg - -beginseg - name "ovl_Obj_Makekinsuta" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/ovl_Obj_Makekinsuta_reloc.o" -endseg - -beginseg - name "ovl_Obj_Makeoshihiki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/ovl_Obj_Makeoshihiki_reloc.o" -endseg - -beginseg - name "ovl_Obj_Mure" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/ovl_Obj_Mure_reloc.o" -endseg - -beginseg - name "ovl_Obj_Mure2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/ovl_Obj_Mure2_reloc.o" -endseg - -beginseg - name "ovl_Obj_Mure3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/ovl_Obj_Mure3_reloc.o" -endseg - -beginseg - name "ovl_Obj_Oshihiki" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/ovl_Obj_Oshihiki_reloc.o" -endseg - -beginseg - name "ovl_Obj_Roomtimer" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/ovl_Obj_Roomtimer_reloc.o" -endseg - -beginseg - name "ovl_Obj_Switch" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/ovl_Obj_Switch_reloc.o" -endseg - -beginseg - name "ovl_Obj_Syokudai" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/ovl_Obj_Syokudai_reloc.o" -endseg - -beginseg - name "ovl_Obj_Timeblock" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/ovl_Obj_Timeblock_reloc.o" -endseg - -beginseg - name "ovl_Obj_Tsubo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/ovl_Obj_Tsubo_reloc.o" -endseg - -beginseg - name "ovl_Obj_Warp2block" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/ovl_Obj_Warp2block_reloc.o" -endseg - -beginseg - name "ovl_Object_Kankyo" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/ovl_Object_Kankyo_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Spot" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/ovl_Oceff_Spot_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Storm" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/ovl_Oceff_Storm_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Wipe" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/ovl_Oceff_Wipe_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Wipe2" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Wipe3" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3_reloc.o" -endseg - -beginseg - name "ovl_Oceff_Wipe4" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4_reloc.o" -endseg - -beginseg - name "ovl_Shot_Sun" - compress - include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.o" - include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/ovl_Shot_Sun_reloc.o" -endseg - +#include "spec_includes/overlays_gc.inc" #endif beginseg @@ -11506,8001 +4891,9 @@ endseg // Scene files are reordered between versions. On GameCube and iQue, dungeon scenes // have been moved to the beginning. #if PLATFORM_N64 - -beginseg - name "ddan_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_scene.o" - number 2 -endseg - -beginseg - name "ddan_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_0.o" - number 3 -endseg - -beginseg - name "ddan_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_1.o" - number 3 -endseg - -beginseg - name "ddan_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_2.o" - number 3 -endseg - -beginseg - name "ddan_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_3.o" - number 3 -endseg - -beginseg - name "ddan_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_4.o" - number 3 -endseg - -beginseg - name "ddan_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_5.o" - number 3 -endseg - -beginseg - name "ddan_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_6.o" - number 3 -endseg - -beginseg - name "ddan_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_7.o" - number 3 -endseg - -beginseg - name "ddan_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_8.o" - number 3 -endseg - -beginseg - name "ddan_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_9.o" - number 3 -endseg - -beginseg - name "ddan_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_10.o" - number 3 -endseg - -beginseg - name "ddan_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_11.o" - number 3 -endseg - -beginseg - name "ddan_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_12.o" - number 3 -endseg - -beginseg - name "ddan_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_13.o" - number 3 -endseg - -beginseg - name "ddan_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_14.o" - number 3 -endseg - -beginseg - name "ddan_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_15.o" - number 3 -endseg - -beginseg - name "ddan_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_16.o" - number 3 -endseg - -beginseg - name "spot00_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_scene.o" - number 2 -endseg - -beginseg - name "spot00_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_room_0.o" - number 3 -endseg - -beginseg - name "spot01_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_scene.o" - number 2 -endseg - -beginseg - name "spot01_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_room_0.o" - number 3 -endseg - -beginseg - name "spot02_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_scene.o" - number 2 -endseg - -beginseg - name "spot02_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_0.o" - number 3 -endseg - -beginseg - name "spot02_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_1.o" - number 3 -endseg - -beginseg - name "spot03_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_scene.o" - number 2 -endseg - -beginseg - name "spot03_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_0.o" - number 3 -endseg - -beginseg - name "spot03_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_1.o" - number 3 -endseg - -beginseg - name "spot04_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_scene.o" - number 2 -endseg - -beginseg - name "spot04_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_0.o" - number 3 -endseg - -beginseg - name "spot04_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_1.o" - number 3 -endseg - -beginseg - name "spot04_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_2.o" - number 3 -endseg - -beginseg - name "spot05_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_scene.o" - number 2 -endseg - -beginseg - name "spot05_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_room_0.o" - number 3 -endseg - -beginseg - name "spot06_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_scene.o" - number 2 -endseg - -beginseg - name "spot06_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_room_0.o" - number 3 -endseg - -beginseg - name "spot07_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_scene.o" - number 2 -endseg - -beginseg - name "spot07_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_0.o" - number 3 -endseg - -beginseg - name "spot07_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_1.o" - number 3 -endseg - -beginseg - name "spot08_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_scene.o" - number 2 -endseg - -beginseg - name "spot08_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_room_0.o" - number 3 -endseg - -beginseg - name "spot09_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_scene.o" - number 2 -endseg - -beginseg - name "spot09_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_room_0.o" - number 3 -endseg - -beginseg - name "spot10_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_scene.o" - number 2 -endseg - -beginseg - name "spot10_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_0.o" - number 3 -endseg - -beginseg - name "spot10_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_1.o" - number 3 -endseg - -beginseg - name "spot10_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_2.o" - number 3 -endseg - -beginseg - name "spot10_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_3.o" - number 3 -endseg - -beginseg - name "spot10_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_4.o" - number 3 -endseg - -beginseg - name "spot10_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_5.o" - number 3 -endseg - -beginseg - name "spot10_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_6.o" - number 3 -endseg - -beginseg - name "spot10_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_7.o" - number 3 -endseg - -beginseg - name "spot10_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_8.o" - number 3 -endseg - -beginseg - name "spot10_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_9.o" - number 3 -endseg - -beginseg - name "spot11_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_scene.o" - number 2 -endseg - -beginseg - name "spot11_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_room_0.o" - number 3 -endseg - -beginseg - name "spot12_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_scene.o" - number 2 -endseg - -beginseg - name "spot12_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_0.o" - number 3 -endseg - -beginseg - name "spot12_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_1.o" - number 3 -endseg - -beginseg - name "spot13_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_scene.o" - number 2 -endseg - -beginseg - name "spot13_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_0.o" - number 3 -endseg - -beginseg - name "spot13_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_1.o" - number 3 -endseg - -beginseg - name "spot15_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_scene.o" - number 2 -endseg - -beginseg - name "spot15_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_room_0.o" - number 3 -endseg - -beginseg - name "spot16_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_scene.o" - number 2 -endseg - -beginseg - name "spot16_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_room_0.o" - number 3 -endseg - -beginseg - name "spot17_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_scene.o" - number 2 -endseg - -beginseg - name "spot17_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_0.o" - number 3 -endseg - -beginseg - name "spot17_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_1.o" - number 3 -endseg - -beginseg - name "spot18_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_scene.o" - number 2 -endseg - -beginseg - name "spot18_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_0.o" - number 3 -endseg - -beginseg - name "spot18_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_1.o" - number 3 -endseg - -beginseg - name "spot18_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_2.o" - number 3 -endseg - -beginseg - name "spot18_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_3.o" - number 3 -endseg - -beginseg - name "market_day_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_scene.o" - number 2 -endseg - -beginseg - name "market_day_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_room_0.o" - number 3 -endseg - -beginseg - name "market_night_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_scene.o" - number 2 -endseg - -beginseg - name "market_night_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_room_0.o" - number 3 -endseg - -beginseg - name "HIDAN_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_scene.o" - number 2 -endseg - -beginseg - name "HIDAN_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_0.o" - number 3 -endseg - -beginseg - name "HIDAN_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_1.o" - number 3 -endseg - -beginseg - name "HIDAN_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_2.o" - number 3 -endseg - -beginseg - name "HIDAN_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_3.o" - number 3 -endseg - -beginseg - name "HIDAN_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_4.o" - number 3 -endseg - -beginseg - name "HIDAN_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_5.o" - number 3 -endseg - -beginseg - name "HIDAN_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_6.o" - number 3 -endseg - -beginseg - name "HIDAN_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_7.o" - number 3 -endseg - -beginseg - name "HIDAN_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_8.o" - number 3 -endseg - -beginseg - name "HIDAN_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_9.o" - number 3 -endseg - -beginseg - name "HIDAN_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_10.o" - number 3 -endseg - -beginseg - name "HIDAN_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_11.o" - number 3 -endseg - -beginseg - name "HIDAN_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_12.o" - number 3 -endseg - -beginseg - name "HIDAN_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_13.o" - number 3 -endseg - -beginseg - name "HIDAN_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_14.o" - number 3 -endseg - -beginseg - name "HIDAN_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_15.o" - number 3 -endseg - -beginseg - name "HIDAN_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_16.o" - number 3 -endseg - -beginseg - name "HIDAN_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_17.o" - number 3 -endseg - -beginseg - name "HIDAN_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_18.o" - number 3 -endseg - -beginseg - name "HIDAN_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_19.o" - number 3 -endseg - -beginseg - name "HIDAN_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_20.o" - number 3 -endseg - -beginseg - name "HIDAN_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_21.o" - number 3 -endseg - -beginseg - name "HIDAN_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_22.o" - number 3 -endseg - -beginseg - name "HIDAN_room_23" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_23.o" - number 3 -endseg - -beginseg - name "HIDAN_room_24" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_24.o" - number 3 -endseg - -beginseg - name "HIDAN_room_25" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_25.o" - number 3 -endseg - -beginseg - name "HIDAN_room_26" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_26.o" - number 3 -endseg - -beginseg - name "Bmori1_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_scene.o" - number 2 -endseg - -beginseg - name "Bmori1_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_0.o" - number 3 -endseg - -beginseg - name "Bmori1_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_1.o" - number 3 -endseg - -beginseg - name "Bmori1_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_2.o" - number 3 -endseg - -beginseg - name "Bmori1_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_3.o" - number 3 -endseg - -beginseg - name "Bmori1_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_4.o" - number 3 -endseg - -beginseg - name "Bmori1_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_5.o" - number 3 -endseg - -beginseg - name "Bmori1_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_6.o" - number 3 -endseg - -beginseg - name "Bmori1_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_7.o" - number 3 -endseg - -beginseg - name "Bmori1_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_8.o" - number 3 -endseg - -beginseg - name "Bmori1_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_9.o" - number 3 -endseg - -beginseg - name "Bmori1_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_10.o" - number 3 -endseg - -beginseg - name "Bmori1_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_11.o" - number 3 -endseg - -beginseg - name "Bmori1_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_12.o" - number 3 -endseg - -beginseg - name "Bmori1_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_13.o" - number 3 -endseg - -beginseg - name "Bmori1_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_14.o" - number 3 -endseg - -beginseg - name "Bmori1_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_15.o" - number 3 -endseg - -beginseg - name "Bmori1_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_16.o" - number 3 -endseg - -beginseg - name "Bmori1_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_17.o" - number 3 -endseg - -beginseg - name "Bmori1_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_18.o" - number 3 -endseg - -beginseg - name "Bmori1_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_19.o" - number 3 -endseg - -beginseg - name "Bmori1_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_20.o" - number 3 -endseg - -beginseg - name "Bmori1_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_21.o" - number 3 -endseg - -beginseg - name "Bmori1_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_22.o" - number 3 -endseg - -beginseg - name "ydan_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_scene.o" - number 2 -endseg - -beginseg - name "ydan_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_0.o" - number 3 -endseg - -beginseg - name "ydan_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_1.o" - number 3 -endseg - -beginseg - name "ydan_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_2.o" - number 3 -endseg - -beginseg - name "ydan_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_3.o" - number 3 -endseg - -beginseg - name "ydan_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_4.o" - number 3 -endseg - -beginseg - name "ydan_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_5.o" - number 3 -endseg - -beginseg - name "ydan_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_6.o" - number 3 -endseg - -beginseg - name "ydan_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_7.o" - number 3 -endseg - -beginseg - name "ydan_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_8.o" - number 3 -endseg - -beginseg - name "ydan_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_9.o" - number 3 -endseg - -beginseg - name "ydan_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_10.o" - number 3 -endseg - -beginseg - name "ydan_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_11.o" - number 3 -endseg - -beginseg - name "kenjyanoma_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_scene.o" - number 2 -endseg - -beginseg - name "kenjyanoma_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_room_0.o" - number 3 -endseg - -beginseg - name "tokinoma_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_scene.o" - number 2 -endseg - -beginseg - name "tokinoma_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_0.o" - number 3 -endseg - -beginseg - name "tokinoma_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_1.o" - number 3 -endseg - -beginseg - name "link_home_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_scene.o" - number 2 -endseg - -beginseg - name "link_home_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_room_0.o" - number 3 -endseg - -beginseg - name "kokiri_shop_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_scene.o" - number 2 -endseg - -beginseg - name "kokiri_shop_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_room_0.o" - number 3 -endseg - -beginseg - name "MIZUsin_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_scene.o" - number 2 -endseg - -beginseg - name "MIZUsin_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_0.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_1.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_2.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_3.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_4.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_5.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_6.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_7.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_8.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_9.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_10.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_11.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_12.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_13.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_14.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_15.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_16.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_17.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_18.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_19.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_20.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_21.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_22.o" - number 3 -endseg - -beginseg - name "kokiri_home_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_scene.o" - number 2 -endseg - -beginseg - name "kokiri_home_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_room_0.o" - number 3 -endseg - -beginseg - name "kakusiana_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_scene.o" - number 2 -endseg - -beginseg - name "kakusiana_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_0.o" - number 3 -endseg - -beginseg - name "kakusiana_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_1.o" - number 3 -endseg - -beginseg - name "kakusiana_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_2.o" - number 3 -endseg - -beginseg - name "kakusiana_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_3.o" - number 3 -endseg - -beginseg - name "kakusiana_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_4.o" - number 3 -endseg - -beginseg - name "kakusiana_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_5.o" - number 3 -endseg - -beginseg - name "kakusiana_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_6.o" - number 3 -endseg - -beginseg - name "kakusiana_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_7.o" - number 3 -endseg - -beginseg - name "kakusiana_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_8.o" - number 3 -endseg - -beginseg - name "kakusiana_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_9.o" - number 3 -endseg - -beginseg - name "kakusiana_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_10.o" - number 3 -endseg - -beginseg - name "kakusiana_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_11.o" - number 3 -endseg - -beginseg - name "kakusiana_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_12.o" - number 3 -endseg - -beginseg - name "kakusiana_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_13.o" - number 3 -endseg - -beginseg - name "entra_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_scene.o" - number 2 -endseg - -beginseg - name "entra_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_room_0.o" - number 3 -endseg - -beginseg - name "bdan_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_scene.o" - number 2 -endseg - -beginseg - name "bdan_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_0.o" - number 3 -endseg - -beginseg - name "bdan_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_1.o" - number 3 -endseg - -beginseg - name "bdan_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_2.o" - number 3 -endseg - -beginseg - name "bdan_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_3.o" - number 3 -endseg - -beginseg - name "bdan_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_4.o" - number 3 -endseg - -beginseg - name "bdan_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_5.o" - number 3 -endseg - -beginseg - name "bdan_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_6.o" - number 3 -endseg - -beginseg - name "bdan_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_7.o" - number 3 -endseg - -beginseg - name "bdan_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_8.o" - number 3 -endseg - -beginseg - name "bdan_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_9.o" - number 3 -endseg - -beginseg - name "bdan_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_10.o" - number 3 -endseg - -beginseg - name "bdan_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_11.o" - number 3 -endseg - -beginseg - name "bdan_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_12.o" - number 3 -endseg - -beginseg - name "bdan_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_13.o" - number 3 -endseg - -beginseg - name "bdan_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_14.o" - number 3 -endseg - -beginseg - name "bdan_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_15.o" - number 3 -endseg - -beginseg - name "HAKAdan_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_scene.o" - number 2 -endseg - -beginseg - name "HAKAdan_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_0.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_1.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_2.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_3.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_4.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_5.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_6.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_7.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_8.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_9.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_10.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_11.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_12.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_13.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_14.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_15.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_16.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_17.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_18.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_19.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_20.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_21.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_22.o" - number 3 -endseg - -beginseg - name "moribossroom_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_scene.o" - number 2 -endseg - -beginseg - name "moribossroom_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_0.o" - number 3 -endseg - -beginseg - name "moribossroom_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_1.o" - number 3 -endseg - -beginseg - name "syatekijyou_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_scene.o" - number 2 -endseg - -beginseg - name "syatekijyou_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_room_0.o" - number 3 -endseg - -beginseg - name "men_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_scene.o" - number 2 -endseg - -beginseg - name "men_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_0.o" - number 3 -endseg - -beginseg - name "men_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_1.o" - number 3 -endseg - -beginseg - name "men_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_2.o" - number 3 -endseg - -beginseg - name "men_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_3.o" - number 3 -endseg - -beginseg - name "men_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_4.o" - number 3 -endseg - -beginseg - name "men_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_5.o" - number 3 -endseg - -beginseg - name "men_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_6.o" - number 3 -endseg - -beginseg - name "men_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_7.o" - number 3 -endseg - -beginseg - name "men_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_8.o" - number 3 -endseg - -beginseg - name "men_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_9.o" - number 3 -endseg - -beginseg - name "men_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_10.o" - number 3 -endseg - -beginseg - name "shop1_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_scene.o" - number 2 -endseg - -beginseg - name "shop1_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_room_0.o" - number 3 -endseg - -beginseg - name "hairal_niwa_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_scene.o" - number 2 -endseg - -beginseg - name "hairal_niwa_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_room_0.o" - number 3 -endseg - -beginseg - name "ganon_tou_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_scene.o" - number 2 -endseg - -beginseg - name "ganon_tou_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_room_0.o" - number 3 -endseg - -beginseg - name "market_alley_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_scene.o" - number 2 -endseg - -beginseg - name "market_alley_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_room_0.o" - number 3 -endseg - -beginseg - name "spot20_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_scene.o" - number 2 -endseg - -beginseg - name "spot20_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_room_0.o" - number 3 -endseg - -beginseg - name "market_ruins_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_scene.o" - number 2 -endseg - -beginseg - name "market_ruins_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_room_0.o" - number 3 -endseg - -beginseg - name "entra_n_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_scene.o" - number 2 -endseg - -beginseg - name "entra_n_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_room_0.o" - number 3 -endseg - -beginseg - name "enrui_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_scene.o" - number 2 -endseg - -beginseg - name "enrui_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_room_0.o" - number 3 -endseg - -beginseg - name "market_alley_n_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_scene.o" - number 2 -endseg - -beginseg - name "market_alley_n_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_room_0.o" - number 3 -endseg - -beginseg - name "hiral_demo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_scene.o" - number 2 -endseg - -beginseg - name "hiral_demo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_room_0.o" - number 3 -endseg - -beginseg - name "kokiri_home3_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_scene.o" - number 2 -endseg - -beginseg - name "kokiri_home3_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_room_0.o" - number 3 -endseg - -beginseg - name "jyasinzou_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_scene.o" - number 2 -endseg - -beginseg - name "jyasinzou_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_0.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_1.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_2.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_3.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_4.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_5.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_6.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_7.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_8.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_9.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_10.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_11.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_12.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_13.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_14.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_15.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_16.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_17.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_18.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_19.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_20.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_21.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_22.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_23" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_23.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_24" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_24.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_25" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_25.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_26" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_26.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_27" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_27.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_28" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_28.o" - number 3 -endseg - -beginseg - name "ice_doukutu_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.o" - number 2 -endseg - -beginseg - name "ice_doukutu_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_0.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_1.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_2.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_3.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_4.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_5.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_6.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_7.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_8.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_9.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_10.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_11.o" - number 3 -endseg - -beginseg - name "malon_stable_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_scene.o" - number 2 -endseg - -beginseg - name "malon_stable_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_room_0.o" - number 3 -endseg - -beginseg - name "kakariko_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_scene.o" - number 2 -endseg - -beginseg - name "kakariko_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_room_0.o" - number 3 -endseg - -beginseg - name "bdan_boss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_scene.o" - number 2 -endseg - -beginseg - name "bdan_boss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_0.o" - number 3 -endseg - -beginseg - name "bdan_boss_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_1.o" - number 3 -endseg - -beginseg - name "FIRE_bs_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_scene.o" - number 2 -endseg - -beginseg - name "FIRE_bs_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_0.o" - number 3 -endseg - -beginseg - name "FIRE_bs_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_1.o" - number 3 -endseg - -beginseg - name "hut_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_scene.o" - number 2 -endseg - -beginseg - name "hut_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_room_0.o" - number 3 -endseg - -beginseg - name "daiyousei_izumi_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.o" - number 2 -endseg - -beginseg - name "daiyousei_izumi_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_room_0.o" - number 3 -endseg - -beginseg - name "hakaana_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_scene.o" - number 2 -endseg - -beginseg - name "hakaana_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_room_0.o" - number 3 -endseg - -beginseg - name "yousei_izumi_tate_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_scene.o" - number 2 -endseg - -beginseg - name "yousei_izumi_tate_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_room_0.o" - number 3 -endseg - -beginseg - name "yousei_izumi_yoko_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.o" - number 2 -endseg - -beginseg - name "yousei_izumi_yoko_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_room_0.o" - number 3 -endseg - -beginseg - name "golon_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_scene.o" - number 2 -endseg - -beginseg - name "golon_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_room_0.o" - number 3 -endseg - -beginseg - name "zoora_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_scene.o" - number 2 -endseg - -beginseg - name "zoora_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_room_0.o" - number 3 -endseg - -beginseg - name "drag_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_scene.o" - number 2 -endseg - -beginseg - name "drag_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_room_0.o" - number 3 -endseg - -beginseg - name "alley_shop_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_scene.o" - number 2 -endseg - -beginseg - name "alley_shop_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_room_0.o" - number 3 -endseg - -beginseg - name "night_shop_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_scene.o" - number 2 -endseg - -beginseg - name "night_shop_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_room_0.o" - number 3 -endseg - -beginseg - name "impa_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_scene.o" - number 2 -endseg - -beginseg - name "impa_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_room_0.o" - number 3 -endseg - -beginseg - name "labo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_scene.o" - number 2 -endseg - -beginseg - name "labo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_room_0.o" - number 3 -endseg - -beginseg - name "tent_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_scene.o" - number 2 -endseg - -beginseg - name "tent_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_room_0.o" - number 3 -endseg - -beginseg - name "nakaniwa_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_scene.o" - number 2 -endseg - -beginseg - name "nakaniwa_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_room_0.o" - number 3 -endseg - -beginseg - name "ddan_boss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_scene.o" - number 2 -endseg - -beginseg - name "ddan_boss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_0.o" - number 3 -endseg - -beginseg - name "ddan_boss_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_1.o" - number 3 -endseg - -beginseg - name "ydan_boss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_scene.o" - number 2 -endseg - -beginseg - name "ydan_boss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_0.o" - number 3 -endseg - -beginseg - name "ydan_boss_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_1.o" - number 3 -endseg - -beginseg - name "HAKAdan_bs_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_scene.o" - number 2 -endseg - -beginseg - name "HAKAdan_bs_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_0.o" - number 3 -endseg - -beginseg - name "HAKAdan_bs_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_1.o" - number 3 -endseg - -beginseg - name "MIZUsin_bs_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_scene.o" - number 2 -endseg - -beginseg - name "MIZUsin_bs_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_0.o" - number 3 -endseg - -beginseg - name "MIZUsin_bs_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_1.o" - number 3 -endseg - -beginseg - name "ganon_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_scene.o" - number 2 -endseg - -beginseg - name "ganon_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_0.o" - number 3 -endseg - -beginseg - name "ganon_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_1.o" - number 3 -endseg - -beginseg - name "ganon_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_2.o" - number 3 -endseg - -beginseg - name "ganon_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_3.o" - number 3 -endseg - -beginseg - name "ganon_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_4.o" - number 3 -endseg - -beginseg - name "ganon_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_5.o" - number 3 -endseg - -beginseg - name "ganon_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_6.o" - number 3 -endseg - -beginseg - name "ganon_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_7.o" - number 3 -endseg - -beginseg - name "ganon_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_8.o" - number 3 -endseg - -beginseg - name "ganon_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_9.o" - number 3 -endseg - -beginseg - name "ganon_boss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_scene.o" - number 2 -endseg - -beginseg - name "ganon_boss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_room_0.o" - number 3 -endseg - -beginseg - name "jyasinboss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_scene.o" - number 2 -endseg - -beginseg - name "jyasinboss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_0.o" - number 3 -endseg - -beginseg - name "jyasinboss_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_1.o" - number 3 -endseg - -beginseg - name "jyasinboss_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_2.o" - number 3 -endseg - -beginseg - name "jyasinboss_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_3.o" - number 3 -endseg - -beginseg - name "kokiri_home4_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_scene.o" - number 2 -endseg - -beginseg - name "kokiri_home4_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_room_0.o" - number 3 -endseg - -beginseg - name "kokiri_home5_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_scene.o" - number 2 -endseg - -beginseg - name "kokiri_home5_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_room_0.o" - number 3 -endseg - -beginseg - name "ganon_final_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_scene.o" - number 2 -endseg - -beginseg - name "ganon_final_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_room_0.o" - number 3 -endseg - -beginseg - name "kakariko3_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_scene.o" - number 2 -endseg - -beginseg - name "kakariko3_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_room_0.o" - number 3 -endseg - -beginseg - name "hakasitarelay_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_scene.o" - number 2 -endseg - -beginseg - name "hakasitarelay_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_0.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_1.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_2.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_3.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_4.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_5.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_6.o" - number 3 -endseg - -beginseg - name "shrine_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_scene.o" - number 2 -endseg - -beginseg - name "shrine_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_room_0.o" - number 3 -endseg - -beginseg - name "turibori_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_scene.o" - number 2 -endseg - -beginseg - name "turibori_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_room_0.o" - number 3 -endseg - -beginseg - name "shrine_n_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_scene.o" - number 2 -endseg - -beginseg - name "shrine_n_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_room_0.o" - number 3 -endseg - -beginseg - name "shrine_r_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_scene.o" - number 2 -endseg - -beginseg - name "shrine_r_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_room_0.o" - number 3 -endseg - -beginseg - name "ganontika_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_scene.o" - number 2 -endseg - -beginseg - name "ganontika_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_0.o" - number 3 -endseg - -beginseg - name "ganontika_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_1.o" - number 3 -endseg - -beginseg - name "ganontika_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_2.o" - number 3 -endseg - -beginseg - name "ganontika_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_3.o" - number 3 -endseg - -beginseg - name "ganontika_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_4.o" - number 3 -endseg - -beginseg - name "ganontika_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_5.o" - number 3 -endseg - -beginseg - name "ganontika_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_6.o" - number 3 -endseg - -beginseg - name "ganontika_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_7.o" - number 3 -endseg - -beginseg - name "ganontika_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_8.o" - number 3 -endseg - -beginseg - name "ganontika_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_9.o" - number 3 -endseg - -beginseg - name "ganontika_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_10.o" - number 3 -endseg - -beginseg - name "ganontika_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_11.o" - number 3 -endseg - -beginseg - name "ganontika_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_12.o" - number 3 -endseg - -beginseg - name "ganontika_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_13.o" - number 3 -endseg - -beginseg - name "ganontika_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_14.o" - number 3 -endseg - -beginseg - name "ganontika_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_15.o" - number 3 -endseg - -beginseg - name "ganontika_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_16.o" - number 3 -endseg - -beginseg - name "ganontika_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_17.o" - number 3 -endseg - -beginseg - name "ganontika_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_18.o" - number 3 -endseg - -beginseg - name "ganontika_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_19.o" - number 3 -endseg - -beginseg - name "hakaana2_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_scene.o" - number 2 -endseg - -beginseg - name "hakaana2_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_room_0.o" - number 3 -endseg - -beginseg - name "gerudoway_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_scene.o" - number 2 -endseg - -beginseg - name "gerudoway_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_0.o" - number 3 -endseg - -beginseg - name "gerudoway_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_1.o" - number 3 -endseg - -beginseg - name "gerudoway_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_2.o" - number 3 -endseg - -beginseg - name "gerudoway_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_3.o" - number 3 -endseg - -beginseg - name "gerudoway_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_4.o" - number 3 -endseg - -beginseg - name "gerudoway_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_5.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_scene.o" - number 2 -endseg - -beginseg - name "HAKAdanCH_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_0.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_1.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_2.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_3.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_4.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_5.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_6.o" - number 3 -endseg - -beginseg - name "hairal_niwa_n_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_scene.o" - number 2 -endseg - -beginseg - name "hairal_niwa_n_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_room_0.o" - number 3 -endseg - -beginseg - name "bowling_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_scene.o" - number 2 -endseg - -beginseg - name "bowling_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_room_0.o" - number 3 -endseg - -beginseg - name "hakaana_ouke_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_scene.o" - number 2 -endseg - -beginseg - name "hakaana_ouke_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_0.o" - number 3 -endseg - -beginseg - name "hakaana_ouke_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_1.o" - number 3 -endseg - -beginseg - name "hakaana_ouke_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_2.o" - number 3 -endseg - -beginseg - name "hylia_labo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_scene.o" - number 2 -endseg - -beginseg - name "hylia_labo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_room_0.o" - number 3 -endseg - -beginseg - name "souko_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_scene.o" - number 2 -endseg - -beginseg - name "souko_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_0.o" - number 3 -endseg - -beginseg - name "souko_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_1.o" - number 3 -endseg - -beginseg - name "souko_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_2.o" - number 3 -endseg - -beginseg - name "miharigoya_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_scene.o" - number 2 -endseg - -beginseg - name "miharigoya_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_room_0.o" - number 3 -endseg - -beginseg - name "mahouya_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_scene.o" - number 2 -endseg - -beginseg - name "mahouya_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_room_0.o" - number 3 -endseg - -beginseg - name "takaraya_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_scene.o" - number 2 -endseg - -beginseg - name "takaraya_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_0.o" - number 3 -endseg - -beginseg - name "takaraya_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_1.o" - number 3 -endseg - -beginseg - name "takaraya_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_2.o" - number 3 -endseg - -beginseg - name "takaraya_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_3.o" - number 3 -endseg - -beginseg - name "takaraya_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_4.o" - number 3 -endseg - -beginseg - name "takaraya_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_5.o" - number 3 -endseg - -beginseg - name "takaraya_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_6.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_scene.o" - number 2 -endseg - -beginseg - name "ganon_sonogo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_0.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_1.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_2.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_3.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_4.o" - number 3 -endseg - -beginseg - name "ganon_demo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_scene.o" - number 2 -endseg - -beginseg - name "ganon_demo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_room_0.o" - number 3 -endseg - -beginseg - name "face_shop_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_scene.o" - number 2 -endseg - -beginseg - name "face_shop_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_room_0.o" - number 3 -endseg - -beginseg - name "kinsuta_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_scene.o" - number 2 -endseg - -beginseg - name "kinsuta_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_room_0.o" - number 3 -endseg - -beginseg - name "ganontikasonogo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_scene.o" - number 2 -endseg - -beginseg - name "ganontikasonogo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_0.o" - number 3 -endseg - -beginseg - name "ganontikasonogo_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_1.o" - number 3 -endseg - +#include "spec_includes/scenes_n64.inc" #else - -beginseg - name "ydan_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_scene.o" - number 2 -endseg - -beginseg - name "ydan_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_0.o" - number 3 -endseg - -beginseg - name "ydan_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_1.o" - number 3 -endseg - -beginseg - name "ydan_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_2.o" - number 3 -endseg - -beginseg - name "ydan_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_3.o" - number 3 -endseg - -beginseg - name "ydan_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_4.o" - number 3 -endseg - -beginseg - name "ydan_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_5.o" - number 3 -endseg - -beginseg - name "ydan_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_6.o" - number 3 -endseg - -beginseg - name "ydan_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_7.o" - number 3 -endseg - -beginseg - name "ydan_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_8.o" - number 3 -endseg - -beginseg - name "ydan_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_9.o" - number 3 -endseg - -beginseg - name "ydan_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_10.o" - number 3 -endseg - -beginseg - name "ydan_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_11.o" - number 3 -endseg - -beginseg - name "ddan_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_scene.o" - number 2 -endseg - -beginseg - name "ddan_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_0.o" - number 3 -endseg - -beginseg - name "ddan_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_1.o" - number 3 -endseg - -beginseg - name "ddan_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_2.o" - number 3 -endseg - -beginseg - name "ddan_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_3.o" - number 3 -endseg - -beginseg - name "ddan_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_4.o" - number 3 -endseg - -beginseg - name "ddan_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_5.o" - number 3 -endseg - -beginseg - name "ddan_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_6.o" - number 3 -endseg - -beginseg - name "ddan_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_7.o" - number 3 -endseg - -beginseg - name "ddan_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_8.o" - number 3 -endseg - -beginseg - name "ddan_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_9.o" - number 3 -endseg - -beginseg - name "ddan_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_10.o" - number 3 -endseg - -beginseg - name "ddan_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_11.o" - number 3 -endseg - -beginseg - name "ddan_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_12.o" - number 3 -endseg - -beginseg - name "ddan_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_13.o" - number 3 -endseg - -beginseg - name "ddan_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_14.o" - number 3 -endseg - -beginseg - name "ddan_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_15.o" - number 3 -endseg - -beginseg - name "ddan_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_16.o" - number 3 -endseg - -beginseg - name "bdan_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_scene.o" - number 2 -endseg - -beginseg - name "bdan_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_0.o" - number 3 -endseg - -beginseg - name "bdan_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_1.o" - number 3 -endseg - -beginseg - name "bdan_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_2.o" - number 3 -endseg - -beginseg - name "bdan_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_3.o" - number 3 -endseg - -beginseg - name "bdan_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_4.o" - number 3 -endseg - -beginseg - name "bdan_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_5.o" - number 3 -endseg - -beginseg - name "bdan_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_6.o" - number 3 -endseg - -beginseg - name "bdan_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_7.o" - number 3 -endseg - -beginseg - name "bdan_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_8.o" - number 3 -endseg - -beginseg - name "bdan_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_9.o" - number 3 -endseg - -beginseg - name "bdan_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_10.o" - number 3 -endseg - -beginseg - name "bdan_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_11.o" - number 3 -endseg - -beginseg - name "bdan_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_12.o" - number 3 -endseg - -beginseg - name "bdan_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_13.o" - number 3 -endseg - -beginseg - name "bdan_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_14.o" - number 3 -endseg - -beginseg - name "bdan_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_15.o" - number 3 -endseg - -beginseg - name "Bmori1_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_scene.o" - number 2 -endseg - -beginseg - name "Bmori1_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_0.o" - number 3 -endseg - -beginseg - name "Bmori1_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_1.o" - number 3 -endseg - -beginseg - name "Bmori1_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_2.o" - number 3 -endseg - -beginseg - name "Bmori1_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_3.o" - number 3 -endseg - -beginseg - name "Bmori1_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_4.o" - number 3 -endseg - -beginseg - name "Bmori1_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_5.o" - number 3 -endseg - -beginseg - name "Bmori1_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_6.o" - number 3 -endseg - -beginseg - name "Bmori1_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_7.o" - number 3 -endseg - -beginseg - name "Bmori1_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_8.o" - number 3 -endseg - -beginseg - name "Bmori1_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_9.o" - number 3 -endseg - -beginseg - name "Bmori1_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_10.o" - number 3 -endseg - -beginseg - name "Bmori1_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_11.o" - number 3 -endseg - -beginseg - name "Bmori1_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_12.o" - number 3 -endseg - -beginseg - name "Bmori1_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_13.o" - number 3 -endseg - -beginseg - name "Bmori1_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_14.o" - number 3 -endseg - -beginseg - name "Bmori1_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_15.o" - number 3 -endseg - -beginseg - name "Bmori1_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_16.o" - number 3 -endseg - -beginseg - name "Bmori1_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_17.o" - number 3 -endseg - -beginseg - name "Bmori1_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_18.o" - number 3 -endseg - -beginseg - name "Bmori1_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_19.o" - number 3 -endseg - -beginseg - name "Bmori1_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_20.o" - number 3 -endseg - -beginseg - name "Bmori1_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_21.o" - number 3 -endseg - -beginseg - name "Bmori1_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_22.o" - number 3 -endseg - -beginseg - name "HIDAN_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_scene.o" - number 2 -endseg - -beginseg - name "HIDAN_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_0.o" - number 3 -endseg - -beginseg - name "HIDAN_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_1.o" - number 3 -endseg - -beginseg - name "HIDAN_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_2.o" - number 3 -endseg - -beginseg - name "HIDAN_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_3.o" - number 3 -endseg - -beginseg - name "HIDAN_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_4.o" - number 3 -endseg - -beginseg - name "HIDAN_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_5.o" - number 3 -endseg - -beginseg - name "HIDAN_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_6.o" - number 3 -endseg - -beginseg - name "HIDAN_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_7.o" - number 3 -endseg - -beginseg - name "HIDAN_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_8.o" - number 3 -endseg - -beginseg - name "HIDAN_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_9.o" - number 3 -endseg - -beginseg - name "HIDAN_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_10.o" - number 3 -endseg - -beginseg - name "HIDAN_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_11.o" - number 3 -endseg - -beginseg - name "HIDAN_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_12.o" - number 3 -endseg - -beginseg - name "HIDAN_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_13.o" - number 3 -endseg - -beginseg - name "HIDAN_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_14.o" - number 3 -endseg - -beginseg - name "HIDAN_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_15.o" - number 3 -endseg - -beginseg - name "HIDAN_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_16.o" - number 3 -endseg - -beginseg - name "HIDAN_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_17.o" - number 3 -endseg - -beginseg - name "HIDAN_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_18.o" - number 3 -endseg - -beginseg - name "HIDAN_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_19.o" - number 3 -endseg - -beginseg - name "HIDAN_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_20.o" - number 3 -endseg - -beginseg - name "HIDAN_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_21.o" - number 3 -endseg - -beginseg - name "HIDAN_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_22.o" - number 3 -endseg - -beginseg - name "HIDAN_room_23" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_23.o" - number 3 -endseg - -beginseg - name "HIDAN_room_24" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_24.o" - number 3 -endseg - -beginseg - name "HIDAN_room_25" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_25.o" - number 3 -endseg - -beginseg - name "HIDAN_room_26" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_26.o" - number 3 -endseg - -beginseg - name "MIZUsin_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_scene.o" - number 2 -endseg - -beginseg - name "MIZUsin_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_0.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_1.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_2.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_3.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_4.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_5.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_6.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_7.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_8.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_9.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_10.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_11.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_12.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_13.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_14.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_15.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_16.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_17.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_18.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_19.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_20.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_21.o" - number 3 -endseg - -beginseg - name "MIZUsin_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_22.o" - number 3 -endseg - -beginseg - name "jyasinzou_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_scene.o" - number 2 -endseg - -beginseg - name "jyasinzou_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_0.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_1.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_2.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_3.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_4.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_5.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_6.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_7.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_8.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_9.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_10.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_11.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_12.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_13.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_14.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_15.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_16.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_17.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_18.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_19.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_20.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_21.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_22.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_23" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_23.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_24" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_24.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_25" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_25.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_26" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_26.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_27" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_27.o" - number 3 -endseg - -beginseg - name "jyasinzou_room_28" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_28.o" - number 3 -endseg - -beginseg - name "HAKAdan_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_scene.o" - number 2 -endseg - -beginseg - name "HAKAdan_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_0.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_1.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_2.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_3.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_4.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_5.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_6.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_7.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_8.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_9.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_10.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_11.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_12.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_13.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_14.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_15.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_16.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_17.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_18.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_19.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_20" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_20.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_21" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_21.o" - number 3 -endseg - -beginseg - name "HAKAdan_room_22" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_22.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_scene.o" - number 2 -endseg - -beginseg - name "HAKAdanCH_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_0.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_1.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_2.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_3.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_4.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_5.o" - number 3 -endseg - -beginseg - name "HAKAdanCH_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_6.o" - number 3 -endseg - -beginseg - name "ice_doukutu_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.o" - number 2 -endseg - -beginseg - name "ice_doukutu_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_0.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_1.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_2.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_3.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_4.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_5.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_6.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_7.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_8.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_9.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_10.o" - number 3 -endseg - -beginseg - name "ice_doukutu_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_11.o" - number 3 -endseg - -beginseg - name "men_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_scene.o" - number 2 -endseg - -beginseg - name "men_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_0.o" - number 3 -endseg - -beginseg - name "men_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_1.o" - number 3 -endseg - -beginseg - name "men_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_2.o" - number 3 -endseg - -beginseg - name "men_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_3.o" - number 3 -endseg - -beginseg - name "men_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_4.o" - number 3 -endseg - -beginseg - name "men_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_5.o" - number 3 -endseg - -beginseg - name "men_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_6.o" - number 3 -endseg - -beginseg - name "men_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_7.o" - number 3 -endseg - -beginseg - name "men_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_8.o" - number 3 -endseg - -beginseg - name "men_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_9.o" - number 3 -endseg - -beginseg - name "men_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_10.o" - number 3 -endseg - -beginseg - name "ganontika_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_scene.o" - number 2 -endseg - -beginseg - name "ganontika_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_0.o" - number 3 -endseg - -beginseg - name "ganontika_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_1.o" - number 3 -endseg - -beginseg - name "ganontika_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_2.o" - number 3 -endseg - -beginseg - name "ganontika_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_3.o" - number 3 -endseg - -beginseg - name "ganontika_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_4.o" - number 3 -endseg - -beginseg - name "ganontika_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_5.o" - number 3 -endseg - -beginseg - name "ganontika_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_6.o" - number 3 -endseg - -beginseg - name "ganontika_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_7.o" - number 3 -endseg - -beginseg - name "ganontika_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_8.o" - number 3 -endseg - -beginseg - name "ganontika_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_9.o" - number 3 -endseg - -beginseg - name "ganontika_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_10.o" - number 3 -endseg - -beginseg - name "ganontika_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_11.o" - number 3 -endseg - -beginseg - name "ganontika_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_12.o" - number 3 -endseg - -beginseg - name "ganontika_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_13.o" - number 3 -endseg - -beginseg - name "ganontika_room_14" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_14.o" - number 3 -endseg - -beginseg - name "ganontika_room_15" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_15.o" - number 3 -endseg - -beginseg - name "ganontika_room_16" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_16.o" - number 3 -endseg - -beginseg - name "ganontika_room_17" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_17.o" - number 3 -endseg - -beginseg - name "ganontika_room_18" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_18.o" - number 3 -endseg - -beginseg - name "ganontika_room_19" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_19.o" - number 3 -endseg - -#if DEBUG_ASSETS -beginseg - name "syotes_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/syotes/syotes_scene.o" - number 2 -endseg - -beginseg - name "syotes_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/syotes/syotes_room_0.o" - number 3 -endseg - -beginseg - name "syotes2_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/syotes2/syotes2_scene.o" - number 2 -endseg - -beginseg - name "syotes2_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/syotes2/syotes2_room_0.o" - number 3 -endseg - -beginseg - name "depth_test_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/depth_test/depth_test_scene.o" - number 2 -endseg - -beginseg - name "depth_test_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/depth_test/depth_test_room_0.o" - number 3 -endseg -#endif - -beginseg - name "spot00_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_scene.o" - number 2 -endseg - -beginseg - name "spot00_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_room_0.o" - number 3 -endseg - -beginseg - name "spot01_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_scene.o" - number 2 -endseg - -beginseg - name "spot01_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_room_0.o" - number 3 -endseg - -beginseg - name "spot02_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_scene.o" - number 2 -endseg - -beginseg - name "spot02_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_0.o" - number 3 -endseg - -beginseg - name "spot02_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_1.o" - number 3 -endseg - -beginseg - name "spot03_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_scene.o" - number 2 -endseg - -beginseg - name "spot03_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_0.o" - number 3 -endseg - -beginseg - name "spot03_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_1.o" - number 3 -endseg - -beginseg - name "spot04_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_scene.o" - number 2 -endseg - -beginseg - name "spot04_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_0.o" - number 3 -endseg - -beginseg - name "spot04_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_1.o" - number 3 -endseg - -beginseg - name "spot04_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_2.o" - number 3 -endseg - -beginseg - name "spot05_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_scene.o" - number 2 -endseg - -beginseg - name "spot05_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_room_0.o" - number 3 -endseg - -beginseg - name "spot06_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_scene.o" - number 2 -endseg - -beginseg - name "spot06_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_room_0.o" - number 3 -endseg - -beginseg - name "spot07_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_scene.o" - number 2 -endseg - -beginseg - name "spot07_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_0.o" - number 3 -endseg - -beginseg - name "spot07_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_1.o" - number 3 -endseg - -beginseg - name "spot08_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_scene.o" - number 2 -endseg - -beginseg - name "spot08_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_room_0.o" - number 3 -endseg - -beginseg - name "spot09_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_scene.o" - number 2 -endseg - -beginseg - name "spot09_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_room_0.o" - number 3 -endseg - -beginseg - name "spot10_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_scene.o" - number 2 -endseg - -beginseg - name "spot10_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_0.o" - number 3 -endseg - -beginseg - name "spot10_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_1.o" - number 3 -endseg - -beginseg - name "spot10_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_2.o" - number 3 -endseg - -beginseg - name "spot10_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_3.o" - number 3 -endseg - -beginseg - name "spot10_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_4.o" - number 3 -endseg - -beginseg - name "spot10_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_5.o" - number 3 -endseg - -beginseg - name "spot10_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_6.o" - number 3 -endseg - -beginseg - name "spot10_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_7.o" - number 3 -endseg - -beginseg - name "spot10_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_8.o" - number 3 -endseg - -beginseg - name "spot10_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_9.o" - number 3 -endseg - -beginseg - name "spot11_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_scene.o" - number 2 -endseg - -beginseg - name "spot11_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_room_0.o" - number 3 -endseg - -beginseg - name "spot12_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_scene.o" - number 2 -endseg - -beginseg - name "spot12_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_0.o" - number 3 -endseg - -beginseg - name "spot12_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_1.o" - number 3 -endseg - -beginseg - name "spot13_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_scene.o" - number 2 -endseg - -beginseg - name "spot13_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_0.o" - number 3 -endseg - -beginseg - name "spot13_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_1.o" - number 3 -endseg - -beginseg - name "spot15_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_scene.o" - number 2 -endseg - -beginseg - name "spot15_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_room_0.o" - number 3 -endseg - -beginseg - name "spot16_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_scene.o" - number 2 -endseg - -beginseg - name "spot16_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_room_0.o" - number 3 -endseg - -beginseg - name "spot17_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_scene.o" - number 2 -endseg - -beginseg - name "spot17_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_0.o" - number 3 -endseg - -beginseg - name "spot17_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_1.o" - number 3 -endseg - -beginseg - name "spot18_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_scene.o" - number 2 -endseg - -beginseg - name "spot18_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_0.o" - number 3 -endseg - -beginseg - name "spot18_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_1.o" - number 3 -endseg - -beginseg - name "spot18_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_2.o" - number 3 -endseg - -beginseg - name "spot18_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_3.o" - number 3 -endseg - -beginseg - name "market_day_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_scene.o" - number 2 -endseg - -beginseg - name "market_day_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_room_0.o" - number 3 -endseg - -beginseg - name "market_night_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_scene.o" - number 2 -endseg - -beginseg - name "market_night_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_room_0.o" - number 3 -endseg - -#if DEBUG_ASSETS -beginseg - name "testroom_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_scene.o" - number 2 -endseg - -beginseg - name "testroom_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_0.o" - number 3 -endseg - -beginseg - name "testroom_room_1" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_1.o" - number 3 -endseg - -beginseg - name "testroom_room_2" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_2.o" - number 3 -endseg - -beginseg - name "testroom_room_3" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_3.o" - number 3 -endseg - -beginseg - name "testroom_room_4" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_4.o" - number 3 -endseg -#endif - -beginseg - name "kenjyanoma_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_scene.o" - number 2 -endseg - -beginseg - name "kenjyanoma_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_room_0.o" - number 3 -endseg - -beginseg - name "tokinoma_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_scene.o" - number 2 -endseg - -beginseg - name "tokinoma_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_0.o" - number 3 -endseg - -beginseg - name "tokinoma_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_1.o" - number 3 -endseg - -#if DEBUG_ASSETS -beginseg - name "sutaru_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/sutaru/sutaru_scene.o" - number 2 -endseg - -beginseg - name "sutaru_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/sutaru/sutaru_room_0.o" - number 3 -endseg -#endif - -beginseg - name "link_home_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_scene.o" - number 2 -endseg - -beginseg - name "link_home_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_room_0.o" - number 3 -endseg - -beginseg - name "kokiri_shop_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_scene.o" - number 2 -endseg - -beginseg - name "kokiri_shop_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_room_0.o" - number 3 -endseg - -beginseg - name "kokiri_home_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_scene.o" - number 2 -endseg - -beginseg - name "kokiri_home_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_room_0.o" - number 3 -endseg - -beginseg - name "kakusiana_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_scene.o" - number 2 -endseg - -beginseg - name "kakusiana_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_0.o" - number 3 -endseg - -beginseg - name "kakusiana_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_1.o" - number 3 -endseg - -beginseg - name "kakusiana_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_2.o" - number 3 -endseg - -beginseg - name "kakusiana_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_3.o" - number 3 -endseg - -beginseg - name "kakusiana_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_4.o" - number 3 -endseg - -beginseg - name "kakusiana_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_5.o" - number 3 -endseg - -beginseg - name "kakusiana_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_6.o" - number 3 -endseg - -beginseg - name "kakusiana_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_7.o" - number 3 -endseg - -beginseg - name "kakusiana_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_8.o" - number 3 -endseg - -beginseg - name "kakusiana_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_9.o" - number 3 -endseg - -beginseg - name "kakusiana_room_10" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_10.o" - number 3 -endseg - -beginseg - name "kakusiana_room_11" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_11.o" - number 3 -endseg - -beginseg - name "kakusiana_room_12" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_12.o" - number 3 -endseg - -beginseg - name "kakusiana_room_13" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_13.o" - number 3 -endseg - -beginseg - name "entra_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_scene.o" - number 2 -endseg - -beginseg - name "entra_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_room_0.o" - number 3 -endseg - -beginseg - name "moribossroom_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_scene.o" - number 2 -endseg - -beginseg - name "moribossroom_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_0.o" - number 3 -endseg - -beginseg - name "moribossroom_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_1.o" - number 3 -endseg - -beginseg - name "syatekijyou_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_scene.o" - number 2 -endseg - -beginseg - name "syatekijyou_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_room_0.o" - number 3 -endseg - -beginseg - name "shop1_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_scene.o" - number 2 -endseg - -beginseg - name "shop1_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_room_0.o" - number 3 -endseg - -beginseg - name "hairal_niwa_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_scene.o" - number 2 -endseg - -beginseg - name "hairal_niwa_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_room_0.o" - number 3 -endseg - -beginseg - name "ganon_tou_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_scene.o" - number 2 -endseg - -beginseg - name "ganon_tou_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_room_0.o" - number 3 -endseg - -#if DEBUG_ASSETS -beginseg - name "sasatest_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/sasatest/sasatest_scene.o" - number 2 -endseg - -beginseg - name "sasatest_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/sasatest/sasatest_room_0.o" - number 3 -endseg -#endif - -beginseg - name "market_alley_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_scene.o" - number 2 -endseg - -beginseg - name "market_alley_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_room_0.o" - number 3 -endseg - -beginseg - name "spot20_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_scene.o" - number 2 -endseg - -beginseg - name "spot20_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_room_0.o" - number 3 -endseg - -beginseg - name "market_ruins_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_scene.o" - number 2 -endseg - -beginseg - name "market_ruins_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_room_0.o" - number 3 -endseg - -beginseg - name "entra_n_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_scene.o" - number 2 -endseg - -beginseg - name "entra_n_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_room_0.o" - number 3 -endseg - -beginseg - name "enrui_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_scene.o" - number 2 -endseg - -beginseg - name "enrui_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_room_0.o" - number 3 -endseg - -beginseg - name "market_alley_n_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_scene.o" - number 2 -endseg - -beginseg - name "market_alley_n_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_room_0.o" - number 3 -endseg - -beginseg - name "hiral_demo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_scene.o" - number 2 -endseg - -beginseg - name "hiral_demo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_room_0.o" - number 3 -endseg - -beginseg - name "kokiri_home3_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_scene.o" - number 2 -endseg - -beginseg - name "kokiri_home3_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_room_0.o" - number 3 -endseg - -beginseg - name "malon_stable_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_scene.o" - number 2 -endseg - -beginseg - name "malon_stable_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_room_0.o" - number 3 -endseg - -beginseg - name "kakariko_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_scene.o" - number 2 -endseg - -beginseg - name "kakariko_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_room_0.o" - number 3 -endseg - -beginseg - name "bdan_boss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_scene.o" - number 2 -endseg - -beginseg - name "bdan_boss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_0.o" - number 3 -endseg - -beginseg - name "bdan_boss_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_1.o" - number 3 -endseg - -beginseg - name "FIRE_bs_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_scene.o" - number 2 -endseg - -beginseg - name "FIRE_bs_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_0.o" - number 3 -endseg - -beginseg - name "FIRE_bs_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_1.o" - number 3 -endseg - -beginseg - name "hut_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_scene.o" - number 2 -endseg - -beginseg - name "hut_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_room_0.o" - number 3 -endseg - -beginseg - name "daiyousei_izumi_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.o" - number 2 -endseg - -beginseg - name "daiyousei_izumi_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_room_0.o" - number 3 -endseg - -beginseg - name "hakaana_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_scene.o" - number 2 -endseg - -beginseg - name "hakaana_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_room_0.o" - number 3 -endseg - -beginseg - name "yousei_izumi_tate_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_scene.o" - number 2 -endseg - -beginseg - name "yousei_izumi_tate_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_room_0.o" - number 3 -endseg - -beginseg - name "yousei_izumi_yoko_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.o" - number 2 -endseg - -beginseg - name "yousei_izumi_yoko_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_room_0.o" - number 3 -endseg - -beginseg - name "golon_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_scene.o" - number 2 -endseg - -beginseg - name "golon_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_room_0.o" - number 3 -endseg - -beginseg - name "zoora_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_scene.o" - number 2 -endseg - -beginseg - name "zoora_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_room_0.o" - number 3 -endseg - -beginseg - name "drag_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_scene.o" - number 2 -endseg - -beginseg - name "drag_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_room_0.o" - number 3 -endseg - -beginseg - name "alley_shop_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_scene.o" - number 2 -endseg - -beginseg - name "alley_shop_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_room_0.o" - number 3 -endseg - -beginseg - name "night_shop_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_scene.o" - number 2 -endseg - -beginseg - name "night_shop_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_room_0.o" - number 3 -endseg - -beginseg - name "impa_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_scene.o" - number 2 -endseg - -beginseg - name "impa_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_room_0.o" - number 3 -endseg - -beginseg - name "labo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_scene.o" - number 2 -endseg - -beginseg - name "labo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_room_0.o" - number 3 -endseg - -beginseg - name "tent_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_scene.o" - number 2 -endseg - -beginseg - name "tent_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_room_0.o" - number 3 -endseg - -beginseg - name "nakaniwa_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_scene.o" - number 2 -endseg - -beginseg - name "nakaniwa_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_room_0.o" - number 3 -endseg - -beginseg - name "ddan_boss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_scene.o" - number 2 -endseg - -beginseg - name "ddan_boss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_0.o" - number 3 -endseg - -beginseg - name "ddan_boss_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_1.o" - number 3 -endseg - -beginseg - name "ydan_boss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_scene.o" - number 2 -endseg - -beginseg - name "ydan_boss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_0.o" - number 3 -endseg - -beginseg - name "ydan_boss_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_1.o" - number 3 -endseg - -beginseg - name "HAKAdan_bs_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_scene.o" - number 2 -endseg - -beginseg - name "HAKAdan_bs_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_0.o" - number 3 -endseg - -beginseg - name "HAKAdan_bs_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_1.o" - number 3 -endseg - -beginseg - name "MIZUsin_bs_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_scene.o" - number 2 -endseg - -beginseg - name "MIZUsin_bs_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_0.o" - number 3 -endseg - -beginseg - name "MIZUsin_bs_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_1.o" - number 3 -endseg - -beginseg - name "ganon_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_scene.o" - number 2 -endseg - -beginseg - name "ganon_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_0.o" - number 3 -endseg - -beginseg - name "ganon_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_1.o" - number 3 -endseg - -beginseg - name "ganon_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_2.o" - number 3 -endseg - -beginseg - name "ganon_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_3.o" - number 3 -endseg - -beginseg - name "ganon_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_4.o" - number 3 -endseg - -beginseg - name "ganon_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_5.o" - number 3 -endseg - -beginseg - name "ganon_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_6.o" - number 3 -endseg - -beginseg - name "ganon_room_7" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_7.o" - number 3 -endseg - -beginseg - name "ganon_room_8" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_8.o" - number 3 -endseg - -beginseg - name "ganon_room_9" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_9.o" - number 3 -endseg - -beginseg - name "ganon_boss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_scene.o" - number 2 -endseg - -beginseg - name "ganon_boss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_room_0.o" - number 3 -endseg - -beginseg - name "jyasinboss_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_scene.o" - number 2 -endseg - -beginseg - name "jyasinboss_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_0.o" - number 3 -endseg - -beginseg - name "jyasinboss_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_1.o" - number 3 -endseg - -beginseg - name "jyasinboss_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_2.o" - number 3 -endseg - -beginseg - name "jyasinboss_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_3.o" - number 3 -endseg - -beginseg - name "kokiri_home4_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_scene.o" - number 2 -endseg - -beginseg - name "kokiri_home4_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_room_0.o" - number 3 -endseg - -beginseg - name "kokiri_home5_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_scene.o" - number 2 -endseg - -beginseg - name "kokiri_home5_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_room_0.o" - number 3 -endseg - -beginseg - name "ganon_final_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_scene.o" - number 2 -endseg - -beginseg - name "ganon_final_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_room_0.o" - number 3 -endseg - -beginseg - name "kakariko3_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_scene.o" - number 2 -endseg - -beginseg - name "kakariko3_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_room_0.o" - number 3 -endseg - -#if DEBUG_ASSETS -beginseg - name "hairal_niwa2_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa2/hairal_niwa2_scene.o" - number 2 -endseg - -beginseg - name "hairal_niwa2_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa2/hairal_niwa2_room_0.o" - number 3 -endseg -#endif - -beginseg - name "hakasitarelay_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_scene.o" - number 2 -endseg - -beginseg - name "hakasitarelay_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_0.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_1.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_2.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_3.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_4.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_5.o" - number 3 -endseg - -beginseg - name "hakasitarelay_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_6.o" - number 3 -endseg - -beginseg - name "shrine_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_scene.o" - number 2 -endseg - -beginseg - name "shrine_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_room_0.o" - number 3 -endseg - -beginseg - name "turibori_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_scene.o" - number 2 -endseg - -beginseg - name "turibori_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_room_0.o" - number 3 -endseg - -beginseg - name "shrine_n_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_scene.o" - number 2 -endseg - -beginseg - name "shrine_n_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_room_0.o" - number 3 -endseg - -beginseg - name "shrine_r_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_scene.o" - number 2 -endseg - -beginseg - name "shrine_r_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_room_0.o" - number 3 -endseg - -beginseg - name "hakaana2_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_scene.o" - number 2 -endseg - -beginseg - name "hakaana2_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_room_0.o" - number 3 -endseg - -beginseg - name "gerudoway_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_scene.o" - number 2 -endseg - -beginseg - name "gerudoway_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_0.o" - number 3 -endseg - -beginseg - name "gerudoway_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_1.o" - number 3 -endseg - -beginseg - name "gerudoway_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_2.o" - number 3 -endseg - -beginseg - name "gerudoway_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_3.o" - number 3 -endseg - -beginseg - name "gerudoway_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_4.o" - number 3 -endseg - -beginseg - name "gerudoway_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_5.o" - number 3 -endseg - -beginseg - name "hairal_niwa_n_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_scene.o" - number 2 -endseg - -beginseg - name "hairal_niwa_n_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_room_0.o" - number 3 -endseg - -beginseg - name "bowling_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_scene.o" - number 2 -endseg - -beginseg - name "bowling_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_room_0.o" - number 3 -endseg - -beginseg - name "hakaana_ouke_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_scene.o" - number 2 -endseg - -beginseg - name "hakaana_ouke_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_0.o" - number 3 -endseg - -beginseg - name "hakaana_ouke_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_1.o" - number 3 -endseg - -beginseg - name "hakaana_ouke_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_2.o" - number 3 -endseg - -beginseg - name "hylia_labo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_scene.o" - number 2 -endseg - -beginseg - name "hylia_labo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_room_0.o" - number 3 -endseg - -beginseg - name "souko_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_scene.o" - number 2 -endseg - -beginseg - name "souko_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_0.o" - number 3 -endseg - -beginseg - name "souko_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_1.o" - number 3 -endseg - -beginseg - name "souko_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_2.o" - number 3 -endseg - -beginseg - name "miharigoya_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_scene.o" - number 2 -endseg - -beginseg - name "miharigoya_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_room_0.o" - number 3 -endseg - -beginseg - name "mahouya_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_scene.o" - number 2 -endseg - -beginseg - name "mahouya_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_room_0.o" - number 3 -endseg - -beginseg - name "takaraya_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_scene.o" - number 2 -endseg - -beginseg - name "takaraya_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_0.o" - number 3 -endseg - -beginseg - name "takaraya_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_1.o" - number 3 -endseg - -beginseg - name "takaraya_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_2.o" - number 3 -endseg - -beginseg - name "takaraya_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_3.o" - number 3 -endseg - -beginseg - name "takaraya_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_4.o" - number 3 -endseg - -beginseg - name "takaraya_room_5" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_5.o" - number 3 -endseg - -beginseg - name "takaraya_room_6" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_6.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_scene.o" - number 2 -endseg - -beginseg - name "ganon_sonogo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_0.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_1.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_room_2" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_2.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_room_3" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_3.o" - number 3 -endseg - -beginseg - name "ganon_sonogo_room_4" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_4.o" - number 3 -endseg - -beginseg - name "ganon_demo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_scene.o" - number 2 -endseg - -beginseg - name "ganon_demo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_room_0.o" - number 3 -endseg - -#if DEBUG_ASSETS -beginseg - name "besitu_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/besitu/besitu_scene.o" - number 2 -endseg - -beginseg - name "besitu_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/besitu/besitu_room_0.o" - number 3 -endseg -#endif - -beginseg - name "face_shop_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_scene.o" - number 2 -endseg - -beginseg - name "face_shop_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_room_0.o" - number 3 -endseg - -beginseg - name "kinsuta_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_scene.o" - number 2 -endseg - -beginseg - name "kinsuta_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_room_0.o" - number 3 -endseg - -beginseg - name "ganontikasonogo_scene" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_scene.o" - number 2 -endseg - -beginseg - name "ganontikasonogo_room_0" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_0.o" - number 3 -endseg - -beginseg - name "ganontikasonogo_room_1" - compress - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_1.o" - number 3 -endseg - -#if DEBUG_ASSETS -beginseg - name "test01_scene" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/test01/test01_scene.o" - number 2 -endseg - -beginseg - name "test01_room_0" - romalign 0x1000 - include "$(BUILD_DIR)/assets/scenes/test_levels/test01/test01_room_0.o" - number 3 -endseg -#endif - +#include "spec_includes/scenes_gc_ique.inc" #endif beginseg diff --git a/spec_includes/boot_libultra_gc.inc b/spec_includes/boot_libultra_gc.inc new file mode 100644 index 0000000000..5faf2fbbb8 --- /dev/null +++ b/spec_includes/boot_libultra_gc.inc @@ -0,0 +1,91 @@ + include "$(BUILD_DIR)/src/libultra/io/piacs.o" + include "$(BUILD_DIR)/src/libultra/os/sendmesg.o" + include "$(BUILD_DIR)/src/libultra/os/stopthread.o" + include "$(BUILD_DIR)/src/libultra/io/viextendvstart.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallan1.o" + include "$(BUILD_DIR)/src/libultra/os/recvmesg.o" + include "$(BUILD_DIR)/src/libultra/os/initialize.o" + include "$(BUILD_DIR)/src/libultra/libc/ll.o" + include "$(BUILD_DIR)/src/libultra/os/exceptasm.o" + include "$(BUILD_DIR)/src/libultra/os/thread.o" + include "$(BUILD_DIR)/src/libultra/os/destroythread.o" + include "$(BUILD_DIR)/src/libultra/libc/bzero.o" + include "$(BUILD_DIR)/src/libultra/os/parameters.o" + include "$(BUILD_DIR)/src/libultra/os/createthread.o" + include "$(BUILD_DIR)/src/libultra/os/setsr.o" + include "$(BUILD_DIR)/src/libultra/os/getsr.o" + include "$(BUILD_DIR)/src/libultra/os/writebackdcache.o" + include "$(BUILD_DIR)/src/libultra/io/vigetnextframebuf.o" + include "$(BUILD_DIR)/src/libultra/io/pimgr.o" + include "$(BUILD_DIR)/src/libultra/io/devmgr.o" + include "$(BUILD_DIR)/src/libultra/io/pirawdma.o" + include "$(BUILD_DIR)/src/libultra/os/virtualtophysical.o" + include "$(BUILD_DIR)/src/libultra/io/viblack.o" + include "$(BUILD_DIR)/src/libultra/io/sirawread.o" + include "$(BUILD_DIR)/src/libultra/os/getthreadid.o" + include "$(BUILD_DIR)/src/libultra/os/setintmask.o" + include "$(BUILD_DIR)/src/libultra/io/visetmode.o" + include "$(BUILD_DIR)/src/libultra/os/probetlb.o" + include "$(BUILD_DIR)/src/libultra/os/getmemsize.o" + include "$(BUILD_DIR)/src/libultra/os/seteventmesg.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/libc/xprintf.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/unmaptlball.o" + include "$(BUILD_DIR)/src/libultra/io/epidma.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/libc/string.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/invalicache.o" + include "$(BUILD_DIR)/src/libultra/os/createmesgqueue.o" + include "$(BUILD_DIR)/src/libultra/os/invaldcache.o" + include "$(BUILD_DIR)/src/libultra/io/si.o" + include "$(BUILD_DIR)/src/libultra/os/jammesg.o" + include "$(BUILD_DIR)/src/libultra/os/setthreadpri.o" + include "$(BUILD_DIR)/src/libultra/os/getthreadpri.o" + include "$(BUILD_DIR)/src/libultra/io/epirawread.o" + include "$(BUILD_DIR)/src/libultra/io/viswapbuf.o" + include "$(BUILD_DIR)/src/libultra/io/epirawdma.o" + include "$(BUILD_DIR)/src/libultra/libc/bcmp.o" + include "$(BUILD_DIR)/src/libultra/os/gettime.o" + include "$(BUILD_DIR)/src/libultra/os/timerintr.o" + include "$(BUILD_DIR)/src/libultra/os/getcount.o" + include "$(BUILD_DIR)/src/libultra/os/setglobalintmask.o" + include "$(BUILD_DIR)/src/libultra/os/setcompare.o" + include "$(BUILD_DIR)/src/libultra/libc/bcopy.o" + include "$(BUILD_DIR)/src/libultra/os/resetglobalintmask.o" + include "$(BUILD_DIR)/src/libultra/os/interrupt.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallan1.o" + include "$(BUILD_DIR)/src/libultra/io/vi.o" + include "$(BUILD_DIR)/src/libultra/io/viswapcontext.o" + include "$(BUILD_DIR)/src/libultra/io/pigetcmdq.o" + include "$(BUILD_DIR)/src/libultra/io/epiread.o" + include "$(BUILD_DIR)/src/libultra/io/visetspecial.o" + include "$(BUILD_DIR)/src/libultra/io/cartrominit.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/setfpccsr.o" + include "$(BUILD_DIR)/src/libultra/os/getfpccsr.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/epiwrite.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/maptlbrdb.o" + include "$(BUILD_DIR)/src/libultra/os/yieldthread.o" + include "$(BUILD_DIR)/src/libultra/os/getcause.o" + include "$(BUILD_DIR)/src/libultra/io/epirawwrite.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" + include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" + include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/sirawwrite.o" + include "$(BUILD_DIR)/src/libultra/io/vimgr.o" + include "$(BUILD_DIR)/src/libultra/io/vigetcurrcontext.o" + include "$(BUILD_DIR)/src/libultra/os/startthread.o" + include "$(BUILD_DIR)/src/libultra/io/visetyscale.o" + include "$(BUILD_DIR)/src/libultra/io/visetxscale.o" + include "$(BUILD_DIR)/src/libultra/os/sethwintrroutine.o" + include "$(BUILD_DIR)/src/libultra/os/gethwintrroutine.o" + include "$(BUILD_DIR)/src/libultra/os/setwatchlo.o" diff --git a/spec_includes/boot_libultra_ique.inc b/spec_includes/boot_libultra_ique.inc new file mode 100644 index 0000000000..c25edae2ae --- /dev/null +++ b/spec_includes/boot_libultra_ique.inc @@ -0,0 +1,72 @@ + include "$(BUILD_DIR)/src/libultra/os/invaldcache.o" + include "$(BUILD_DIR)/src/libultra/os/invalicache.o" + include "$(BUILD_DIR)/src/libultra/libc/bcmp.o" + include "$(BUILD_DIR)/src/libultra/libc/bzero.o" + include "$(BUILD_DIR)/src/libultra/os/createmesgqueue.o" + include "$(BUILD_DIR)/src/libultra/os/recvmesg.o" + include "$(BUILD_DIR)/src/libultra/os/sendmesg.o" + include "$(BUILD_DIR)/src/libultra/os/getfpccsr.o" + include "$(BUILD_DIR)/src/libultra/os/getsr.o" + include "$(BUILD_DIR)/src/libultra/os/setfpccsr.o" + include "$(BUILD_DIR)/src/libultra/os/setsr.o" + include "$(BUILD_DIR)/src/libultra/os/createthread.o" + include "$(BUILD_DIR)/src/libultra/os/setthreadpri.o" + include "$(BUILD_DIR)/src/libultra/os/startthread.o" + include "$(BUILD_DIR)/src/libultra/os/stopthread.o" + include "$(BUILD_DIR)/src/libultra/os/thread.o" + include "$(BUILD_DIR)/src/libultra/os/gettime.o" + include "$(BUILD_DIR)/src/libultra/os/timerintr.o" + include "$(BUILD_DIR)/src/libultra/io/vigetnextframebuf.o" + include "$(BUILD_DIR)/src/libultra/io/vimgr.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallan1.o" + include "$(BUILD_DIR)/src/libultra/io/visetmode.o" + include "$(BUILD_DIR)/src/libultra/io/visetspecial.o" + include "$(BUILD_DIR)/src/libultra/io/visetxscale.o" + include "$(BUILD_DIR)/src/libultra/io/visetyscale.o" + include "$(BUILD_DIR)/src/libultra/io/viswapbuf.o" + include "$(BUILD_DIR)/src/libultra/io/viswapcontext.o" + include "$(BUILD_DIR)/src/libultra/io/viblack.o" + include "$(BUILD_DIR)/src/libultra/io/viextendvstart.o" + include "$(BUILD_DIR)/src/libultra/os/exceptasm.o" + include "$(BUILD_DIR)/src/libultra/os/interrupt.o" + include "$(BUILD_DIR)/src/libultra/os/setintmask.o" + include "$(BUILD_DIR)/src/libultra/os/sethwintrroutine.o" + include "$(BUILD_DIR)/src/libultra/os/gethwintrroutine.o" + include "$(BUILD_DIR)/src/libultra/io/pimgr.o" + include "$(BUILD_DIR)/src/libultra/io/epirawdma.o" + include "$(BUILD_DIR)/src/libultra/io/epiread.o" + include "$(BUILD_DIR)/src/libultra/io/epidma.o" + include "$(BUILD_DIR)/src/libultra/io/cartrominit.o" + include "$(BUILD_DIR)/src/libultra/io/devmgr.o" + include "$(BUILD_DIR)/src/libultra/io/piacs.o" + include "$(BUILD_DIR)/src/libultra/os/parameters.o" + include "$(BUILD_DIR)/src/libultra/os/getmemsize.o" + include "$(BUILD_DIR)/src/libultra/os/initialize.o" + include "$(BUILD_DIR)/src/libultra/os/writebackdcache.o" + include "$(BUILD_DIR)/src/libultra/os/virtualtophysical.o" + include "$(BUILD_DIR)/src/libultra/libc/bcopy.o" + include "$(BUILD_DIR)/src/libultra/os/jammesg.o" + include "$(BUILD_DIR)/src/libultra/os/seteventmesg.o" + include "$(BUILD_DIR)/src/libultra/os/getcause.o" + include "$(BUILD_DIR)/src/libultra/os/setwatchlo.o" + include "$(BUILD_DIR)/src/libultra/reg/_getcount.o" + include "$(BUILD_DIR)/src/libultra/reg/_setcompare.o" + include "$(BUILD_DIR)/src/libultra/io/sirawread.o" + include "$(BUILD_DIR)/src/libultra/io/sirawwrite.o" + include "$(BUILD_DIR)/src/libultra/os/destroythread.o" + include "$(BUILD_DIR)/src/libultra/os/getthreadpri.o" + include "$(BUILD_DIR)/src/libultra/os/yieldthread.o" + include "$(BUILD_DIR)/src/libultra/os/probetlb.o" + include "$(BUILD_DIR)/src/libultra/os/maptlbrdb.o" + include "$(BUILD_DIR)/src/libultra/os/unmaptlball.o" + include "$(BUILD_DIR)/src/libultra/io/vi.o" + include "$(BUILD_DIR)/src/libultra/io/vigetcurrcontext.o" + include "$(BUILD_DIR)/src/libultra/os/setglobalintmask.o" + include "$(BUILD_DIR)/src/libultra/os/resetglobalintmask.o" + include "$(BUILD_DIR)/src/libultra/io/pirawdma.o" + include "$(BUILD_DIR)/src/libultra/io/pigetcmdq.o" + include "$(BUILD_DIR)/src/libultra/io/epirawread.o" + include "$(BUILD_DIR)/src/libultra/io/epirawwrite.o" + include "$(BUILD_DIR)/src/libultra/io/si.o" diff --git a/spec_includes/boot_libultra_n64.inc b/spec_includes/boot_libultra_n64.inc new file mode 100644 index 0000000000..678326f61d --- /dev/null +++ b/spec_includes/boot_libultra_n64.inc @@ -0,0 +1,94 @@ + include "$(BUILD_DIR)/src/libultra/io/piacs.o" + include "$(BUILD_DIR)/src/libultra/os/sendmesg.o" + include "$(BUILD_DIR)/src/libultra/os/stopthread.o" +#if OOT_VERSION >= PAL_1_0 + include "$(BUILD_DIR)/src/libultra/io/viextendvstart.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallan1.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/recvmesg.o" + include "$(BUILD_DIR)/src/libultra/libc/ll.o" + include "$(BUILD_DIR)/src/libultra/os/exceptasm.o" + include "$(BUILD_DIR)/src/libultra/os/thread.o" + include "$(BUILD_DIR)/src/libultra/os/destroythread.o" + include "$(BUILD_DIR)/src/libultra/libc/bzero.o" + include "$(BUILD_DIR)/src/libultra/os/createthread.o" + include "$(BUILD_DIR)/src/libultra/os/initialize.o" + include "$(BUILD_DIR)/src/libultra/os/parameters.o" + include "$(BUILD_DIR)/src/libultra/os/setsr.o" + include "$(BUILD_DIR)/src/libultra/os/getsr.o" + include "$(BUILD_DIR)/src/libultra/os/writebackdcache.o" + include "$(BUILD_DIR)/src/libultra/io/vigetnextframebuf.o" + include "$(BUILD_DIR)/src/libultra/io/pimgr.o" + include "$(BUILD_DIR)/src/libultra/io/devmgr.o" + include "$(BUILD_DIR)/src/libultra/io/pirawdma.o" + include "$(BUILD_DIR)/src/libultra/os/virtualtophysical.o" + include "$(BUILD_DIR)/src/libultra/io/viblack.o" + include "$(BUILD_DIR)/src/libultra/io/sirawread.o" + include "$(BUILD_DIR)/src/libultra/os/getthreadid.o" + include "$(BUILD_DIR)/src/libultra/os/setintmask.o" + include "$(BUILD_DIR)/src/libultra/io/visetmode.o" + include "$(BUILD_DIR)/src/libultra/os/probetlb.o" + include "$(BUILD_DIR)/src/libultra/os/getmemsize.o" + include "$(BUILD_DIR)/src/libultra/os/seteventmesg.o" + include "$(BUILD_DIR)/src/libultra/os/unmaptlball.o" + include "$(BUILD_DIR)/src/libultra/io/epidma.o" + include "$(BUILD_DIR)/src/libultra/os/invalicache.o" + include "$(BUILD_DIR)/src/libultra/os/createmesgqueue.o" + include "$(BUILD_DIR)/src/libultra/os/invaldcache.o" + include "$(BUILD_DIR)/src/libultra/io/si.o" + include "$(BUILD_DIR)/src/libultra/os/jammesg.o" + include "$(BUILD_DIR)/src/libultra/os/setthreadpri.o" + include "$(BUILD_DIR)/src/libultra/os/getthreadpri.o" + include "$(BUILD_DIR)/src/libultra/io/epirawread.o" +#if OOT_VERSION >= PAL_1_0 + include "$(BUILD_DIR)/src/libultra/io/viswapbuf.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/epirawdma.o" + include "$(BUILD_DIR)/src/libultra/os/gettime.o" + include "$(BUILD_DIR)/src/libultra/os/timerintr.o" + include "$(BUILD_DIR)/src/libultra/os/getcount.o" + include "$(BUILD_DIR)/src/libultra/os/setglobalintmask.o" + include "$(BUILD_DIR)/src/libultra/os/setcompare.o" + include "$(BUILD_DIR)/src/libultra/libc/bcopy.o" + include "$(BUILD_DIR)/src/libultra/os/resetglobalintmask.o" + include "$(BUILD_DIR)/src/libultra/os/interrupt.o" +#if OOT_NTSC + include "$(BUILD_DIR)/src/libultra/io/vimodentsclan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallan1.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/vi.o" +#if OOT_PAL + include "$(BUILD_DIR)/src/libultra/io/vimodentsclan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallan1.o" +#endif +#if OOT_VERSION < PAL_1_0 + include "$(BUILD_DIR)/src/libultra/io/vimodepallan1.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/viswapcontext.o" + include "$(BUILD_DIR)/src/libultra/io/pigetcmdq.o" + include "$(BUILD_DIR)/src/libultra/io/epiread.o" +#if OOT_VERSION >= PAL_1_0 + include "$(BUILD_DIR)/src/libultra/io/visetspecial.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/cartrominit.o" +#if OOT_PAL + include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/setfpccsr.o" + include "$(BUILD_DIR)/src/libultra/os/getfpccsr.o" + include "$(BUILD_DIR)/src/libultra/io/epiwrite.o" + include "$(BUILD_DIR)/src/libultra/os/maptlbrdb.o" + include "$(BUILD_DIR)/src/libultra/os/yieldthread.o" + include "$(BUILD_DIR)/src/libultra/os/getcause.o" + include "$(BUILD_DIR)/src/libultra/io/epirawwrite.o" + include "$(BUILD_DIR)/src/libultra/os/settimer.o" + include "$(BUILD_DIR)/src/libultra/io/sirawwrite.o" + include "$(BUILD_DIR)/src/libultra/io/vimgr.o" + include "$(BUILD_DIR)/src/libultra/io/vigetcurrcontext.o" + include "$(BUILD_DIR)/src/libultra/os/startthread.o" +#if OOT_VERSION >= PAL_1_0 + include "$(BUILD_DIR)/src/libultra/io/visetyscale.o" + include "$(BUILD_DIR)/src/libultra/io/visetxscale.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/sethwintrroutine.o" + include "$(BUILD_DIR)/src/libultra/os/gethwintrroutine.o" diff --git a/spec_includes/code_libultra_gc.inc b/spec_includes/code_libultra_gc.inc new file mode 100644 index 0000000000..25839bc917 --- /dev/null +++ b/spec_includes/code_libultra_gc.inc @@ -0,0 +1,95 @@ +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/pfsfreeblocks.o" +#endif + include "$(BUILD_DIR)/src/libultra/mgu/scale.o" + include "$(BUILD_DIR)/src/libultra/gu/sinf.o" + include "$(BUILD_DIR)/src/libultra/gu/sins.o" + include "$(BUILD_DIR)/src/libultra/io/sptask.o" + include "$(BUILD_DIR)/src/libultra/io/motor.o" + include "$(BUILD_DIR)/src/libultra/io/siacs.o" + include "$(BUILD_DIR)/src/libultra/io/controller.o" + include "$(BUILD_DIR)/src/libultra/io/contreaddata.o" + include "$(BUILD_DIR)/src/libultra/gu/perspective.o" + include "$(BUILD_DIR)/src/libultra/io/sprawdma.o" + include "$(BUILD_DIR)/src/libultra/io/sirawdma.o" + include "$(BUILD_DIR)/src/libultra/io/sptaskyield.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/pfsreadwritefile.o" + include "$(BUILD_DIR)/src/libultra/io/pfsgetstatus.o" +#endif + include "$(BUILD_DIR)/src/libultra/mgu/mtxidentf.o" + include "$(BUILD_DIR)/src/libultra/gu/lookat.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/pfsallocatefile.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/stoptimer.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/contpfs.o" + include "$(BUILD_DIR)/src/libultra/mgu/mtxl2f.o" + include "$(BUILD_DIR)/src/libultra/io/pfsfindfile.o" +#endif + include "$(BUILD_DIR)/src/libultra/gu/sqrtf.o" + include "$(BUILD_DIR)/src/libultra/os/afterprenmi.o" + include "$(BUILD_DIR)/src/libultra/io/contquery.o" + include "$(BUILD_DIR)/src/libultra/gu/lookathil.o" +#if !DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/libc/xprintf.o" + include "$(BUILD_DIR)/src/libultra/libc/string.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/sp.o" + include "$(BUILD_DIR)/src/libultra/mgu/mtxident.o" + include "$(BUILD_DIR)/src/libultra/gu/position.o" + include "$(BUILD_DIR)/src/libultra/io/sptaskyielded.o" + include "$(BUILD_DIR)/src/libultra/gu/rotate.o" + include "$(BUILD_DIR)/src/libultra/io/aisetfreq.o" + include "$(BUILD_DIR)/src/libultra/os/getactivequeue.o" + include "$(BUILD_DIR)/src/libultra/mgu/normalize.o" + include "$(BUILD_DIR)/src/libultra/io/dpgetstat.o" + include "$(BUILD_DIR)/src/libultra/io/dpsetstat.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/pfsdeletefile.o" +#endif + include "$(BUILD_DIR)/src/libultra/gu/ortho.o" + include "$(BUILD_DIR)/src/libultra/gu/cosf.o" + include "$(BUILD_DIR)/src/libultra/gu/libm_vals.o" + include "$(BUILD_DIR)/src/libultra/gu/coss.o" + include "$(BUILD_DIR)/src/libultra/io/visetevent.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/pfsisplug.o" +#endif + include "$(BUILD_DIR)/src/libultra/gu/us2dex.o" + include "$(BUILD_DIR)/src/libultra/io/pfsselectbank.o" + include "$(BUILD_DIR)/src/libultra/io/contsetch.o" +#if DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/pfsfilestate.o" + include "$(BUILD_DIR)/src/libultra/io/pfsinitpak.o" + include "$(BUILD_DIR)/src/libultra/io/pfschecker.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/aigetlen.o" + include "$(BUILD_DIR)/src/libultra/mgu/translate.o" + include "$(BUILD_DIR)/src/libultra/io/contramwrite.o" +#if !DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" + include "$(BUILD_DIR)/src/libultra/io/pfsgetstatus.o" + include "$(BUILD_DIR)/src/libultra/io/contpfs.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/contramread.o" + include "$(BUILD_DIR)/src/libultra/io/crc.o" +#if !DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/io/pfsisplug.o" +#endif + include "$(BUILD_DIR)/src/libultra/os/settimer.o" +#if !DEBUG_FEATURES + include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" + include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" + include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/spgetstat.o" + include "$(BUILD_DIR)/src/libultra/io/spsetstat.o" + include "$(BUILD_DIR)/src/libultra/os/writebackdcacheall.o" + include "$(BUILD_DIR)/src/libultra/os/getcurrfaultedthread.o" + include "$(BUILD_DIR)/src/libultra/mgu/mtxf2l.o" + include "$(BUILD_DIR)/src/libultra/libc/llcvt.o" + include "$(BUILD_DIR)/src/libultra/io/vigetcurrframebuf.o" + include "$(BUILD_DIR)/src/libultra/io/spsetpc.o" + include "$(BUILD_DIR)/src/libc/sqrt.o" diff --git a/spec_includes/code_libultra_ique.inc b/spec_includes/code_libultra_ique.inc new file mode 100644 index 0000000000..4e53234778 --- /dev/null +++ b/spec_includes/code_libultra_ique.inc @@ -0,0 +1,125 @@ + include "$(BUILD_DIR)/src/libultra/io/aigetlen.o" + include "$(BUILD_DIR)/src/libultra/io/aisetfreq.o" + include "$(BUILD_DIR)/src/libultra/audio/sl.o" + include "$(BUILD_DIR)/src/libultra/audio/synthesizer.o" + include "$(BUILD_DIR)/src/libultra/audio/syndelete.o" + include "$(BUILD_DIR)/src/libultra/audio/synallocfx.o" + include "$(BUILD_DIR)/src/libultra/os/writebackdcacheall.o" + include "$(BUILD_DIR)/src/libultra/io/contquery.o" + include "$(BUILD_DIR)/src/libultra/io/contreaddata.o" + include "$(BUILD_DIR)/src/libultra/io/controller.o" + include "$(BUILD_DIR)/src/libultra/io/contsetch.o" + include "$(BUILD_DIR)/src/libultra/gu/sqrtf.o" + include "$(BUILD_DIR)/src/libultra/gu/cosf.o" + include "$(BUILD_DIR)/src/libultra/gu/coss.o" + include "$(BUILD_DIR)/src/libultra/gu/lookat.o" + include "$(BUILD_DIR)/src/libultra/gu/lookathil.o" + include "$(BUILD_DIR)/src/libultra/gu/ortho.o" + include "$(BUILD_DIR)/src/libultra/gu/perspective.o" + include "$(BUILD_DIR)/src/libultra/gu/position.o" + include "$(BUILD_DIR)/src/libultra/gu/sinf.o" + include "$(BUILD_DIR)/src/libultra/gu/sins.o" + include "$(BUILD_DIR)/src/libultra/gu/us2dex.o" + include "$(BUILD_DIR)/src/libultra/libc/ll.o" + include "$(BUILD_DIR)/src/libultra/libc/llcvt.o" + include "$(BUILD_DIR)/src/libultra/libc/string.o" + include "$(BUILD_DIR)/src/libultra/libc/xprintf.o" + include "$(BUILD_DIR)/src/libultra/io/dpgetstat.o" + include "$(BUILD_DIR)/src/libultra/io/dpsetstat.o" + include "$(BUILD_DIR)/src/libultra/io/spgetstat.o" + include "$(BUILD_DIR)/src/libultra/io/spsetstat.o" + include "$(BUILD_DIR)/src/libultra/io/sptask.o" + include "$(BUILD_DIR)/src/libultra/io/sptaskyield.o" + include "$(BUILD_DIR)/src/libultra/io/sptaskyielded.o" + include "$(BUILD_DIR)/src/libultra/io/sirawdma.o" + include "$(BUILD_DIR)/src/libultra/io/siacs.o" + include "$(BUILD_DIR)/src/libultra/os/getthreadid.o" + include "$(BUILD_DIR)/src/libultra/os/getactivequeue.o" + include "$(BUILD_DIR)/src/libultra/os/settimer.o" + include "$(BUILD_DIR)/src/libultra/os/stoptimer.o" + include "$(BUILD_DIR)/src/libultra/io/vigetcurrframebuf.o" + include "$(BUILD_DIR)/src/libultra/io/visetevent.o" + include "$(BUILD_DIR)/src/libultra/io/vitbl.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclpn1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclpf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclaf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclpn2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclpf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclan2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentsclaf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentschpn1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentschpf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentschan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentschaf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentschpn2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodentschpf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallpn1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallpf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallaf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallpn2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallpf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallan2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepallaf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepalhpn1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepalhpf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepalhan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepalhaf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepalhpn2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodepalhpf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallpn1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallpf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallaf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallpn2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallpf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallan2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempallaf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempalhpn1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempalhpf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempalhan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempalhaf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempalhpn2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodempalhpf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallpn1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallpf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallaf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallpn2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallpf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallan2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpallaf2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpalhpn1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpalhpf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpalhan1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpalhaf1.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpalhpn2.o" + include "$(BUILD_DIR)/src/libultra/io/vimodefpalhpf2.o" + include "$(BUILD_DIR)/src/libultra/mgu/mtxident.o" + include "$(BUILD_DIR)/src/libultra/mgu/mtxidentf.o" + include "$(BUILD_DIR)/src/libultra/mgu/mtxf2l.o" + include "$(BUILD_DIR)/src/libultra/mgu/scale.o" + include "$(BUILD_DIR)/src/libultra/mgu/translate.o" + include "$(BUILD_DIR)/src/libultra/gu/rotate.o" + include "$(BUILD_DIR)/src/libultra/os/getcurrfaultedthread.o" + include "$(BUILD_DIR)/src/libultra/bb/sk/skapi.o" + include "$(BUILD_DIR)/src/libultra/bb/sa/common.o" + include "$(BUILD_DIR)/src/libultra/io/motor.o" + include "$(BUILD_DIR)/src/libultra/os/afterprenmi.o" + include "$(BUILD_DIR)/src/libultra/audio/drvrnew.o" + include "$(BUILD_DIR)/src/libultra/audio/load.o" + include "$(BUILD_DIR)/src/libultra/audio/auxbus.o" + include "$(BUILD_DIR)/src/libultra/audio/env.o" + include "$(BUILD_DIR)/src/libultra/audio/filter.o" + include "$(BUILD_DIR)/src/libultra/audio/mainbus.o" + include "$(BUILD_DIR)/src/libultra/audio/resample.o" + include "$(BUILD_DIR)/src/libultra/audio/reverb.o" + include "$(BUILD_DIR)/src/libultra/audio/save.o" + include "$(BUILD_DIR)/src/libultra/audio/heapalloc.o" + include "$(BUILD_DIR)/src/libultra/audio/copy.o" + include "$(BUILD_DIR)/src/libultra/gu/libm_vals.o" + include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" + include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" + include "$(BUILD_DIR)/src/libultra/io/sp.o" + include "$(BUILD_DIR)/src/libultra/io/spsetpc.o" + include "$(BUILD_DIR)/src/libultra/io/sprawdma.o" + include "$(BUILD_DIR)/src/libultra/mgu/normalize.o" + include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" diff --git a/spec_includes/code_libultra_n64.inc b/spec_includes/code_libultra_n64.inc new file mode 100644 index 0000000000..7535025d1e --- /dev/null +++ b/spec_includes/code_libultra_n64.inc @@ -0,0 +1,72 @@ + include "$(BUILD_DIR)/src/libultra/os/getintmask.o" + include "$(BUILD_DIR)/src/libultra/gu/scale.o" + include "$(BUILD_DIR)/src/libultra/gu/sinf.o" + include "$(BUILD_DIR)/src/libultra/gu/sins.o" + include "$(BUILD_DIR)/src/libultra/io/sptask.o" + include "$(BUILD_DIR)/src/libultra/io/motor.o" + include "$(BUILD_DIR)/src/libultra/io/siacs.o" + include "$(BUILD_DIR)/src/libultra/io/controller.o" + include "$(BUILD_DIR)/src/libultra/io/contreaddata.o" + include "$(BUILD_DIR)/src/libultra/gu/perspective.o" + include "$(BUILD_DIR)/src/libultra/io/sprawdma.o" + include "$(BUILD_DIR)/src/libultra/io/sirawdma.o" + include "$(BUILD_DIR)/src/libultra/io/sptaskyield.o" + include "$(BUILD_DIR)/src/libultra/gu/mtxutil.o" + include "$(BUILD_DIR)/src/libultra/gu/lookat.o" + include "$(BUILD_DIR)/src/libultra/os/stoptimer.o" + include "$(BUILD_DIR)/src/libultra/gu/sqrtf.o" + include "$(BUILD_DIR)/src/libultra/os/afterprenmi.o" + include "$(BUILD_DIR)/src/libultra/io/contquery.o" + include "$(BUILD_DIR)/src/libultra/gu/lookathil.o" + include "$(BUILD_DIR)/src/libultra/libc/xprintf.o" + include "$(BUILD_DIR)/src/libultra/libc/string.o" + include "$(BUILD_DIR)/src/libultra/io/sp.o" +#if OOT_VERSION < PAL_1_0 + include "$(BUILD_DIR)/src/libultra/io/viswapbuf.o" +#endif + include "$(BUILD_DIR)/src/libultra/gu/position.o" + include "$(BUILD_DIR)/src/libultra/io/sptaskyielded.o" + include "$(BUILD_DIR)/src/libultra/gu/rotate.o" + include "$(BUILD_DIR)/src/libultra/io/aisetfreq.o" + include "$(BUILD_DIR)/src/libultra/os/getactivequeue.o" + include "$(BUILD_DIR)/src/libultra/gu/normalize.o" + include "$(BUILD_DIR)/src/libultra/io/dpgetstat.o" + include "$(BUILD_DIR)/src/libultra/io/dpsetstat.o" + include "$(BUILD_DIR)/src/libultra/gu/ortho.o" + include "$(BUILD_DIR)/src/libultra/gu/cosf.o" + include "$(BUILD_DIR)/src/libultra/gu/libm_vals.o" +#if OOT_VERSION < PAL_1_0 + include "$(BUILD_DIR)/src/libultra/io/visetspecial.o" +#endif + include "$(BUILD_DIR)/src/libultra/gu/coss.o" + include "$(BUILD_DIR)/src/libultra/os/settime.o" + include "$(BUILD_DIR)/src/libultra/io/visetevent.o" + include "$(BUILD_DIR)/src/libultra/gu/us2dex.o" + include "$(BUILD_DIR)/src/libultra/io/pfsselectbank.o" + include "$(BUILD_DIR)/src/libultra/io/contsetch.o" + include "$(BUILD_DIR)/src/libultra/io/aigetlen.o" + include "$(BUILD_DIR)/src/libultra/gu/translate.o" + include "$(BUILD_DIR)/src/libultra/io/contramwrite.o" +#if OOT_VERSION == NTSC_1_2 + include "$(BUILD_DIR)/src/libultra/io/vimodefpallan1.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/pfsgetstatus.o" + include "$(BUILD_DIR)/src/libultra/io/contpfs.o" + include "$(BUILD_DIR)/src/libultra/libc/bcmp.o" + include "$(BUILD_DIR)/src/libultra/io/contramread.o" + include "$(BUILD_DIR)/src/libultra/io/crc.o" + include "$(BUILD_DIR)/src/libultra/io/pfsisplug.o" + include "$(BUILD_DIR)/src/libultra/libc/xlitob.o" + include "$(BUILD_DIR)/src/libultra/libc/ldiv.o" + include "$(BUILD_DIR)/src/libultra/libc/xldtob.o" + include "$(BUILD_DIR)/src/libultra/io/spgetstat.o" + include "$(BUILD_DIR)/src/libultra/io/spsetstat.o" + include "$(BUILD_DIR)/src/libultra/os/writebackdcacheall.o" + include "$(BUILD_DIR)/src/libultra/os/getcurrfaultedthread.o" + include "$(BUILD_DIR)/src/libultra/libc/llcvt.o" +#if OOT_VERSION < PAL_1_0 + include "$(BUILD_DIR)/src/libultra/io/visetyscale.o" +#endif + include "$(BUILD_DIR)/src/libultra/io/vigetcurrframebuf.o" + include "$(BUILD_DIR)/src/libultra/io/spsetpc.o" + include "$(BUILD_DIR)/src/libc/sqrt.o" diff --git a/spec_includes/overlays_gc.inc b/spec_includes/overlays_gc.inc new file mode 100644 index 0000000000..27bbb72b04 --- /dev/null +++ b/spec_includes/overlays_gc.inc @@ -0,0 +1,3240 @@ +beginseg + name "ovl_Arms_Hook" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/ovl_Arms_Hook_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/ovl_Arrow_Fire_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Ice" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/ovl_Arrow_Ice_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Light" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/ovl_Arrow_Light_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bdan_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/ovl_Bg_Bdan_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bdan_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/ovl_Bg_Bdan_Switch_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bom_Guard" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/ovl_Bg_Bom_Guard_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bombwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/ovl_Bg_Bombwall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bowl_Wall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/ovl_Bg_Bowl_Wall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Breakwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/ovl_Bg_Breakwall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ddan_Jd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/ovl_Bg_Ddan_Jd_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ddan_Kd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/ovl_Bg_Ddan_Kd_reloc.o" +endseg + +beginseg + name "ovl_Bg_Dodoago" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/ovl_Bg_Dodoago_reloc.o" +endseg + +beginseg + name "ovl_Bg_Dy_Yoseizo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/ovl_Bg_Dy_Yoseizo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ganon_Otyuka" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/ovl_Bg_Ganon_Otyuka_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gate_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/ovl_Bg_Gate_Shutter_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gjyo_Bridge" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/ovl_Bg_Gjyo_Bridge_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Darkmeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/ovl_Bg_Gnd_Darkmeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Firemeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/ovl_Bg_Gnd_Firemeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Iceblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/ovl_Bg_Gnd_Iceblock_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Nisekabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/ovl_Bg_Gnd_Nisekabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Soulmeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/ovl_Bg_Gnd_Soulmeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/ovl_Bg_Haka_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Gate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/ovl_Bg_Haka_Gate_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Huta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/ovl_Bg_Haka_Huta_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Megane" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/ovl_Bg_Haka_Megane_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_MeganeBG" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/ovl_Bg_Haka_MeganeBG_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Sgami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/ovl_Bg_Haka_Sgami_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Ship" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/ovl_Bg_Haka_Ship_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/ovl_Bg_Haka_Trap_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Tubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/ovl_Bg_Haka_Tubo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Water" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/ovl_Bg_Haka_Water_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Zou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/ovl_Bg_Haka_Zou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Heavy_Block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/ovl_Bg_Heavy_Block_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Curtain" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/ovl_Bg_Hidan_Curtain_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Dalm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/ovl_Bg_Hidan_Dalm_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Firewall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/ovl_Bg_Hidan_Firewall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Fslift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/ovl_Bg_Hidan_Fslift_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Fwbig" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/ovl_Bg_Hidan_Fwbig_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Hamstep" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/ovl_Bg_Hidan_Hamstep_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Hrock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/ovl_Bg_Hidan_Hrock_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Kousi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/ovl_Bg_Hidan_Kousi_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Kowarerukabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/ovl_Bg_Hidan_Kowarerukabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Rock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/ovl_Bg_Hidan_Rock_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Rsekizou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/ovl_Bg_Hidan_Rsekizou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Sekizou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/ovl_Bg_Hidan_Sekizou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Sima" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/ovl_Bg_Hidan_Sima_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Syoku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/ovl_Bg_Hidan_Syoku_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/ovl_Bg_Ice_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Shelter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/ovl_Bg_Ice_Shelter_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/ovl_Bg_Ice_Shutter_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Turara" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/ovl_Bg_Ice_Turara_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ingate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/ovl_Bg_Ingate_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_1flift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/ovl_Bg_Jya_1flift_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Amishutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/ovl_Bg_Jya_Amishutter_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bigmirror" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/ovl_Bg_Jya_Bigmirror_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/ovl_Bg_Jya_Block_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bombchuiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/ovl_Bg_Jya_Bombchuiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bombiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/ovl_Bg_Jya_Bombiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Cobra" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/ovl_Bg_Jya_Cobra_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Goroiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/ovl_Bg_Jya_Goroiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Haheniron" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/ovl_Bg_Jya_Haheniron_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Ironobj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/ovl_Bg_Jya_Ironobj_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Kanaami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/ovl_Bg_Jya_Kanaami_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Lift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/ovl_Bg_Jya_Lift_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Megami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/ovl_Bg_Jya_Megami_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Zurerukabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/ovl_Bg_Jya_Zurerukabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Eye" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/ovl_Bg_Menkuri_Eye_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Kaiten" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/ovl_Bg_Menkuri_Kaiten_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Nisekabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/ovl_Bg_Menkuri_Nisekabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Bwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/ovl_Bg_Mizu_Bwall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Movebg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/ovl_Bg_Mizu_Movebg_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/ovl_Bg_Mizu_Shutter_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Uzu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/ovl_Bg_Mizu_Uzu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Water" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/ovl_Bg_Mizu_Water_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mjin" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/ovl_Bg_Mjin_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Bigst" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/ovl_Bg_Mori_Bigst_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Elevator" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/ovl_Bg_Mori_Elevator_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hashigo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/ovl_Bg_Mori_Hashigo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hashira4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/ovl_Bg_Mori_Hashira4_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hineri" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/ovl_Bg_Mori_Hineri_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Idomizu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/ovl_Bg_Mori_Idomizu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Kaitenkabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/ovl_Bg_Mori_Kaitenkabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Rakkatenjo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/ovl_Bg_Mori_Rakkatenjo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Po_Event" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/ovl_Bg_Po_Event_reloc.o" +endseg + +beginseg + name "ovl_Bg_Po_Syokudai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/ovl_Bg_Po_Syokudai_reloc.o" +endseg + +beginseg + name "ovl_Bg_Pushbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/ovl_Bg_Pushbox_reloc.o" +endseg + +beginseg + name "ovl_Bg_Relay_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/ovl_Bg_Relay_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot00_Break" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/ovl_Bg_Spot00_Break_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot00_Hanebasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/ovl_Bg_Spot00_Hanebasi_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Fusya" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/ovl_Bg_Spot01_Fusya_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idohashira" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/ovl_Bg_Spot01_Idohashira_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idomizu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/ovl_Bg_Spot01_Idomizu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idosoko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/ovl_Bg_Spot01_Idosoko_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Objects2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/ovl_Bg_Spot01_Objects2_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot02_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/ovl_Bg_Spot02_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot03_Taki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/ovl_Bg_Spot03_Taki_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot05_Soko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/ovl_Bg_Spot05_Soko_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot06_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/ovl_Bg_Spot06_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot07_Taki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/ovl_Bg_Spot07_Taki_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot08_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/ovl_Bg_Spot08_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot08_Iceblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/ovl_Bg_Spot08_Iceblock_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot09_Obj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/ovl_Bg_Spot09_Obj_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot11_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/ovl_Bg_Spot11_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot11_Oasis" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/ovl_Bg_Spot11_Oasis_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot12_Gate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/ovl_Bg_Spot12_Gate_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot12_Saku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/ovl_Bg_Spot12_Saku_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot15_Rrbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/ovl_Bg_Spot15_Rrbox_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot15_Saku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/ovl_Bg_Spot15_Saku_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot16_Bombstone" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/ovl_Bg_Spot16_Bombstone_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot16_Doughnut" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/ovl_Bg_Spot16_Doughnut_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot17_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/ovl_Bg_Spot17_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot17_Funen" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/ovl_Bg_Spot17_Funen_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Basket" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/ovl_Bg_Spot18_Basket_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Futa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/ovl_Bg_Spot18_Futa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Obj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/ovl_Bg_Spot18_Obj_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/ovl_Bg_Spot18_Shutter_reloc.o" +endseg + +beginseg + name "ovl_Bg_Sst_Floor" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/ovl_Bg_Sst_Floor_reloc.o" +endseg + +beginseg + name "ovl_Bg_Toki_Hikari" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/ovl_Bg_Toki_Hikari_reloc.o" +endseg + +beginseg + name "ovl_Bg_Toki_Swd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/ovl_Bg_Toki_Swd_reloc.o" +endseg + +beginseg + name "ovl_Bg_Treemouth" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/ovl_Bg_Treemouth_reloc.o" +endseg + +beginseg + name "ovl_Bg_Umajump" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/ovl_Bg_Umajump_reloc.o" +endseg + +beginseg + name "ovl_Bg_Vb_Sima" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/ovl_Bg_Vb_Sima_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Hasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/ovl_Bg_Ydan_Hasi_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Maruta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/ovl_Bg_Ydan_Maruta_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Sp" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/ovl_Bg_Ydan_Sp_reloc.o" +endseg + +beginseg + name "ovl_Bg_Zg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/ovl_Bg_Zg_reloc.o" +endseg + +beginseg + name "ovl_Boss_Dodongo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/ovl_Boss_Dodongo_reloc.o" +endseg + +beginseg + name "ovl_Boss_Fd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/ovl_Boss_Fd_reloc.o" +endseg + +beginseg + name "ovl_Boss_Fd2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/ovl_Boss_Fd2_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganon" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/ovl_Boss_Ganon_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganon2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/ovl_Boss_Ganon2_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganondrof" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/ovl_Boss_Ganondrof_reloc.o" +endseg + +beginseg + name "ovl_Boss_Goma" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/ovl_Boss_Goma_reloc.o" +endseg + +beginseg + name "ovl_Boss_Mo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/ovl_Boss_Mo_reloc.o" +endseg + +beginseg + name "ovl_Boss_Sst" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/ovl_Boss_Sst_reloc.o" +endseg + +beginseg + name "ovl_Boss_Tw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/ovl_Boss_Tw_reloc.o" +endseg + +beginseg + name "ovl_Boss_Va" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/z_boss_va.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/ovl_Boss_Va_reloc.o" +endseg + +beginseg + name "ovl_Demo_6K" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/z_demo_6k.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/ovl_Demo_6K_reloc.o" +endseg + +beginseg + name "ovl_Demo_Du" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/z_demo_du.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/ovl_Demo_Du_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ec" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/ovl_Demo_Ec_reloc.o" +endseg + +beginseg + name "ovl_Demo_Effect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/ovl_Demo_Effect_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ext" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/ovl_Demo_Ext_reloc.o" +endseg + +beginseg + name "ovl_Demo_Geff" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/ovl_Demo_Geff_reloc.o" +endseg + +beginseg + name "ovl_Demo_Gj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/ovl_Demo_Gj_reloc.o" +endseg + +beginseg + name "ovl_Demo_Go" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/z_demo_go.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/ovl_Demo_Go_reloc.o" +endseg + +beginseg + name "ovl_Demo_Gt" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/ovl_Demo_Gt_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ik" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/ovl_Demo_Ik_reloc.o" +endseg + +beginseg + name "ovl_Demo_Im" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/z_demo_im.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/ovl_Demo_Im_reloc.o" +endseg + +beginseg + name "ovl_Demo_Kankyo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/ovl_Demo_Kankyo_reloc.o" +endseg + +beginseg + name "ovl_Demo_Kekkai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/ovl_Demo_Kekkai_reloc.o" +endseg + +beginseg + name "ovl_Demo_Sa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/ovl_Demo_Sa_reloc.o" +endseg + +beginseg + name "ovl_Demo_Shd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/ovl_Demo_Shd_reloc.o" +endseg + +beginseg + name "ovl_Demo_Tre_Lgt" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/ovl_Demo_Tre_Lgt_reloc.o" +endseg + +beginseg + name "ovl_Door_Ana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/z_door_ana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/ovl_Door_Ana_reloc.o" +endseg + +beginseg + name "ovl_Door_Gerudo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/ovl_Door_Gerudo_reloc.o" +endseg + +beginseg + name "ovl_Door_Killer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/z_door_killer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/ovl_Door_Killer_reloc.o" +endseg + +beginseg + name "ovl_Door_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/ovl_Door_Shutter_reloc.o" +endseg + +beginseg + name "ovl_Door_Toki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/z_door_toki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/ovl_Door_Toki_reloc.o" +endseg + +beginseg + name "ovl_Door_Warp1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/ovl_Door_Warp1_reloc.o" +endseg + +beginseg + name "ovl_Efc_Erupc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/ovl_Efc_Erupc_reloc.o" +endseg + +beginseg + name "ovl_Eff_Dust" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/ovl_Eff_Dust_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Blast" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/ovl_Effect_Ss_Blast_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bomb" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/ovl_Effect_Ss_Bomb_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bomb2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/ovl_Effect_Ss_Bomb2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/ovl_Effect_Ss_Bubble_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_D_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/ovl_Effect_Ss_D_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Db" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/ovl_Effect_Ss_Dead_Db_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Dd" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/ovl_Effect_Ss_Dead_Dd_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Ds" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/ovl_Effect_Ss_Dead_Ds_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Sound" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/ovl_Effect_Ss_Dead_Sound_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dt_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/ovl_Effect_Ss_Dt_Bubble_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dust" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/ovl_Effect_Ss_Dust_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_En_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/ovl_Effect_Ss_En_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_En_Ice" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/ovl_Effect_Ss_En_Ice_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Extra" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/ovl_Effect_Ss_Extra_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fcircle" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/ovl_Effect_Ss_Fcircle_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fhg_Flash" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/ovl_Effect_Ss_Fhg_Flash_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fire_Tail" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/ovl_Effect_Ss_Fire_Tail_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/ovl_Effect_Ss_G_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Magma" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/ovl_Effect_Ss_G_Magma_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Magma2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/ovl_Effect_Ss_G_Magma2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Ripple" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/ovl_Effect_Ss_G_Ripple_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Spk" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/ovl_Effect_Ss_G_Spk_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Splash" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/ovl_Effect_Ss_G_Splash_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Hahen" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/ovl_Effect_Ss_Hahen_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_HitMark" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/ovl_Effect_Ss_HitMark_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Ice_Piece" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/ovl_Effect_Ss_Ice_Piece_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Ice_Smoke" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/ovl_Effect_Ss_Ice_Smoke_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_K_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/ovl_Effect_Ss_K_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Kakera" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/ovl_Effect_Ss_Kakera_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_KiraKira" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/ovl_Effect_Ss_KiraKira_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Lightning" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/ovl_Effect_Ss_Lightning_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Sibuki" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/ovl_Effect_Ss_Sibuki_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Sibuki2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/ovl_Effect_Ss_Sibuki2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Solder_Srch_Ball" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/ovl_Effect_Ss_Solder_Srch_Ball_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Stick" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/ovl_Effect_Ss_Stick_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Stone1" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/ovl_Effect_Ss_Stone1_reloc.o" +endseg + +beginseg + name "ovl_Elf_Msg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/ovl_Elf_Msg_reloc.o" +endseg + +beginseg + name "ovl_Elf_Msg2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/ovl_Elf_Msg2_reloc.o" +endseg + +beginseg + name "ovl_En_Am" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/z_en_am.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/ovl_En_Am_reloc.o" +endseg + +beginseg + name "ovl_En_Ani" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/z_en_ani.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/ovl_En_Ani_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/z_en_anubice.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/ovl_En_Anubice_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/ovl_En_Anubice_Fire_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/ovl_En_Anubice_Tag_reloc.o" +endseg + +beginseg + name "ovl_En_Arow_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/ovl_En_Arow_Trap_reloc.o" +endseg + +beginseg + name "ovl_En_Arrow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/z_en_arrow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/ovl_En_Arrow_reloc.o" +endseg + +beginseg + name "ovl_En_Attack_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/ovl_En_Attack_Niw_reloc.o" +endseg + +beginseg + name "ovl_En_Ba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/z_en_ba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/ovl_En_Ba_reloc.o" +endseg + +beginseg + name "ovl_En_Bb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/z_en_bb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/ovl_En_Bb_reloc.o" +endseg + +beginseg + name "ovl_En_Bdfire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/ovl_En_Bdfire_reloc.o" +endseg + +beginseg + name "ovl_En_Bigokuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/ovl_En_Bigokuta_reloc.o" +endseg + +beginseg + name "ovl_En_Bili" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/z_en_bili.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/ovl_En_Bili_reloc.o" +endseg + +beginseg + name "ovl_En_Bird" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/z_en_bird.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/ovl_En_Bird_reloc.o" +endseg + +beginseg + name "ovl_En_Blkobj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/ovl_En_Blkobj_reloc.o" +endseg + +beginseg + name "ovl_En_Bom" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/z_en_bom.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/ovl_En_Bom_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Bowl_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/ovl_En_Bom_Bowl_Man_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Bowl_Pit" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/ovl_En_Bom_Bowl_Pit_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Chu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/ovl_En_Bom_Chu_reloc.o" +endseg + +beginseg + name "ovl_En_Bombf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/z_en_bombf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/ovl_En_Bombf_reloc.o" +endseg + +beginseg + name "ovl_En_Boom" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/z_en_boom.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/ovl_En_Boom_reloc.o" +endseg + +beginseg + name "ovl_En_Box" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/z_en_box.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/ovl_En_Box_reloc.o" +endseg + +beginseg + name "ovl_En_Brob" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/z_en_brob.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/ovl_En_Brob_reloc.o" +endseg + +beginseg + name "ovl_En_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/z_en_bubble.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/ovl_En_Bubble_reloc.o" +endseg + +beginseg + name "ovl_En_Butte" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/z_en_butte.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/ovl_En_Butte_reloc.o" +endseg + +beginseg + name "ovl_En_Bw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/z_en_bw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/ovl_En_Bw_reloc.o" +endseg + +beginseg + name "ovl_En_Bx" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/z_en_bx.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/ovl_En_Bx_reloc.o" +endseg + +beginseg + name "ovl_En_Changer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/z_en_changer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/ovl_En_Changer_reloc.o" +endseg + +beginseg + name "ovl_En_Clear_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/ovl_En_Clear_Tag_reloc.o" +endseg + +beginseg + name "ovl_En_Cow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/z_en_cow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/ovl_En_Cow_reloc.o" +endseg + +beginseg + name "ovl_En_Crow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/z_en_crow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/ovl_En_Crow_reloc.o" +endseg + +beginseg + name "ovl_En_Cs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/z_en_cs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/ovl_En_Cs_reloc.o" +endseg + +beginseg + name "ovl_En_Daiku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/z_en_daiku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/ovl_En_Daiku_reloc.o" +endseg + +beginseg + name "ovl_En_Daiku_Kakariko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/ovl_En_Daiku_Kakariko_reloc.o" +endseg + +beginseg + name "ovl_En_Dekubaba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/ovl_En_Dekubaba_reloc.o" +endseg + +beginseg + name "ovl_En_Dekunuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/ovl_En_Dekunuts_reloc.o" +endseg + +beginseg + name "ovl_En_Dh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/z_en_dh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/ovl_En_Dh_reloc.o" +endseg + +beginseg + name "ovl_En_Dha" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/z_en_dha.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/ovl_En_Dha_reloc.o" +endseg + +beginseg + name "ovl_En_Diving_Game" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/ovl_En_Diving_Game_reloc.o" +endseg + +beginseg + name "ovl_En_Dns" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/z_en_dns.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/ovl_En_Dns_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Demo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/ovl_En_Dnt_Demo_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Jiji" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/ovl_En_Dnt_Jiji_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Nomal" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/ovl_En_Dnt_Nomal_reloc.o" +endseg + +beginseg + name "ovl_En_Dodojr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/ovl_En_Dodojr_reloc.o" +endseg + +beginseg + name "ovl_En_Dodongo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/ovl_En_Dodongo_reloc.o" +endseg + +beginseg + name "ovl_En_Dog" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/z_en_dog.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/ovl_En_Dog_reloc.o" +endseg + +beginseg + name "ovl_En_Door" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/z_en_door.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/ovl_En_Door_reloc.o" +endseg + +beginseg + name "ovl_En_Ds" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/z_en_ds.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/ovl_En_Ds_reloc.o" +endseg + +beginseg + name "ovl_En_Du" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/z_en_du.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/ovl_En_Du_reloc.o" +endseg + +beginseg + name "ovl_En_Dy_Extra" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/ovl_En_Dy_Extra_reloc.o" +endseg + +beginseg + name "ovl_En_Eg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/z_en_eg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/ovl_En_Eg_reloc.o" +endseg + +beginseg + name "ovl_En_Eiyer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/ovl_En_Eiyer_reloc.o" +endseg + +beginseg + name "ovl_En_Elf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/z_en_elf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/ovl_En_Elf_reloc.o" +endseg + +beginseg + name "ovl_En_Encount1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/z_en_encount1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/ovl_En_Encount1_reloc.o" +endseg + +beginseg + name "ovl_En_Encount2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/z_en_encount2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/ovl_En_Encount2_reloc.o" +endseg + +beginseg + name "ovl_En_Ex_Item" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/ovl_En_Ex_Item_reloc.o" +endseg + +beginseg + name "ovl_En_Ex_Ruppy" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/ovl_En_Ex_Ruppy_reloc.o" +endseg + +beginseg + name "ovl_En_Fd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/z_en_fd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/ovl_En_Fd_reloc.o" +endseg + +beginseg + name "ovl_En_Fd_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/ovl_En_Fd_Fire_reloc.o" +endseg + +beginseg + name "ovl_En_Fhg_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/ovl_En_Fhg_Fire_reloc.o" +endseg + +beginseg + name "ovl_En_Fire_Rock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/ovl_En_Fire_Rock_reloc.o" +endseg + +beginseg + name "ovl_En_Firefly" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/z_en_firefly.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/ovl_En_Firefly_reloc.o" +endseg + +beginseg + name "ovl_En_Fish" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/z_en_fish.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/ovl_En_Fish_reloc.o" +endseg + +beginseg + name "ovl_En_Floormas" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/z_en_floormas.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/ovl_En_Floormas_reloc.o" +endseg + +beginseg + name "ovl_En_Fr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/z_en_fr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/ovl_En_Fr_reloc.o" +endseg + +beginseg + name "ovl_En_Fu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/z_en_fu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/ovl_En_Fu_reloc.o" +endseg + +beginseg + name "ovl_En_Fw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/z_en_fw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/ovl_En_Fw_reloc.o" +endseg + +beginseg + name "ovl_En_Fz" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/z_en_fz.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/ovl_En_Fz_reloc.o" +endseg + +beginseg + name "ovl_En_G_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/ovl_En_G_Switch_reloc.o" +endseg + +beginseg + name "ovl_En_Ganon_Mant" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/ovl_En_Ganon_Mant_reloc.o" +endseg + +beginseg + name "ovl_En_Ganon_Organ" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ_reloc.o" +endseg + +beginseg + name "ovl_En_Gb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/z_en_gb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/ovl_En_Gb_reloc.o" +endseg + +beginseg + name "ovl_En_Ge1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/z_en_ge1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/ovl_En_Ge1_reloc.o" +endseg + +beginseg + name "ovl_En_Ge2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/z_en_ge2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/ovl_En_Ge2_reloc.o" +endseg + +beginseg + name "ovl_En_Ge3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/z_en_ge3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/ovl_En_Ge3_reloc.o" +endseg + +beginseg + name "ovl_En_GeldB" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/z_en_geldb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/ovl_En_GeldB_reloc.o" +endseg + +beginseg + name "ovl_En_GirlA" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/z_en_girla.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/ovl_En_GirlA_reloc.o" +endseg + +beginseg + name "ovl_En_Gm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/z_en_gm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/ovl_En_Gm_reloc.o" +endseg + +beginseg + name "ovl_En_Go" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/z_en_go.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/ovl_En_Go_reloc.o" +endseg + +beginseg + name "ovl_En_Go2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/z_en_go2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/ovl_En_Go2_reloc.o" +endseg + +beginseg + name "ovl_En_Goma" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/z_en_goma.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/ovl_En_Goma_reloc.o" +endseg + +beginseg + name "ovl_En_Goroiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/ovl_En_Goroiwa_reloc.o" +endseg + +beginseg + name "ovl_En_Gs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/z_en_gs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/ovl_En_Gs_reloc.o" +endseg + +beginseg + name "ovl_En_Guest" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/z_en_guest.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/ovl_En_Guest_reloc.o" +endseg + +beginseg + name "ovl_En_Hata" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/z_en_hata.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/ovl_En_Hata_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/ovl_En_Heishi1_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/ovl_En_Heishi2_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/ovl_En_Heishi3_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/ovl_En_Heishi4_reloc.o" +endseg + +beginseg + name "ovl_En_Hintnuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/ovl_En_Hintnuts_reloc.o" +endseg + +beginseg + name "ovl_En_Holl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/z_en_holl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/ovl_En_Holl_reloc.o" +endseg + +beginseg + name "ovl_En_Honotrap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/ovl_En_Honotrap_reloc.o" +endseg + +beginseg + name "ovl_En_Horse" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/z_en_horse.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/ovl_En_Horse_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Game_Check" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/ovl_En_Horse_Game_Check_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Ganon" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/ovl_En_Horse_Ganon_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Link_Child" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/ovl_En_Horse_Link_Child_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Normal" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/ovl_En_Horse_Normal_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Zelda" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/ovl_En_Horse_Zelda_reloc.o" +endseg + +beginseg + name "ovl_En_Hs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/z_en_hs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/ovl_En_Hs_reloc.o" +endseg + +beginseg + name "ovl_En_Hs2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/z_en_hs2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/ovl_En_Hs2_reloc.o" +endseg + +beginseg + name "ovl_En_Hy" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/z_en_hy.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/ovl_En_Hy_reloc.o" +endseg + +beginseg + name "ovl_En_Ice_Hono" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/ovl_En_Ice_Hono_reloc.o" +endseg + +beginseg + name "ovl_En_Ik" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/z_en_ik.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/ovl_En_Ik_reloc.o" +endseg + +beginseg + name "ovl_En_In" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/z_en_in.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/ovl_En_In_reloc.o" +endseg + +beginseg + name "ovl_En_Insect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/z_en_insect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/ovl_En_Insect_reloc.o" +endseg + +beginseg + name "ovl_En_Ishi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/z_en_ishi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/ovl_En_Ishi_reloc.o" +endseg + +beginseg + name "ovl_En_It" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/z_en_it.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/ovl_En_It_reloc.o" +endseg + +beginseg + name "ovl_En_Jj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/ovl_En_Jj_reloc.o" +endseg + +beginseg + name "ovl_En_Js" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/z_en_js.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/ovl_En_Js_reloc.o" +endseg + +beginseg + name "ovl_En_Jsjutan" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/ovl_En_Jsjutan_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/ovl_En_Kakasi_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/ovl_En_Kakasi2_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/ovl_En_Kakasi3_reloc.o" +endseg + +beginseg + name "ovl_En_Kanban" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/z_en_kanban.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/ovl_En_Kanban_reloc.o" +endseg + +beginseg + name "ovl_En_Karebaba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/ovl_En_Karebaba_reloc.o" +endseg + +beginseg + name "ovl_En_Ko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/z_en_ko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/ovl_En_Ko_reloc.o" +endseg + +beginseg + name "ovl_En_Kusa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/z_en_kusa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/ovl_En_Kusa_reloc.o" +endseg + +beginseg + name "ovl_En_Kz" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/z_en_kz.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/ovl_En_Kz_reloc.o" +endseg + +beginseg + name "ovl_En_Light" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/z_en_light.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/ovl_En_Light_reloc.o" +endseg + +beginseg + name "ovl_En_Lightbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/ovl_En_Lightbox_reloc.o" +endseg + +beginseg + name "ovl_En_M_Fire1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/ovl_En_M_Fire1_reloc.o" +endseg + +beginseg + name "ovl_En_M_Thunder" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/ovl_En_M_Thunder_reloc.o" +endseg + +beginseg + name "ovl_En_Ma1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/z_en_ma1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/ovl_En_Ma1_reloc.o" +endseg + +beginseg + name "ovl_En_Ma2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/z_en_ma2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/ovl_En_Ma2_reloc.o" +endseg + +beginseg + name "ovl_En_Ma3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/z_en_ma3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/ovl_En_Ma3_reloc.o" +endseg + +beginseg + name "ovl_En_Mag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/z_en_mag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/ovl_En_Mag_reloc.o" +endseg + +beginseg + name "ovl_En_Mb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/z_en_mb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/ovl_En_Mb_reloc.o" +endseg + +beginseg + name "ovl_En_Md" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/z_en_md.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/ovl_En_Md_reloc.o" +endseg + +beginseg + name "ovl_En_Mk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/z_en_mk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/ovl_En_Mk_reloc.o" +endseg + +beginseg + name "ovl_En_Mm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/z_en_mm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/ovl_En_Mm_reloc.o" +endseg + +beginseg + name "ovl_En_Mm2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/z_en_mm2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/ovl_En_Mm2_reloc.o" +endseg + +beginseg + name "ovl_En_Ms" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/z_en_ms.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/ovl_En_Ms_reloc.o" +endseg + +beginseg + name "ovl_En_Mu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/z_en_mu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/ovl_En_Mu_reloc.o" +endseg + +beginseg + name "ovl_En_Nb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/z_en_nb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/ovl_En_Nb_reloc.o" +endseg + +beginseg + name "ovl_En_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/z_en_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/ovl_En_Niw_reloc.o" +endseg + +beginseg + name "ovl_En_Niw_Girl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/ovl_En_Niw_Girl_reloc.o" +endseg + +beginseg + name "ovl_En_Niw_Lady" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/ovl_En_Niw_Lady_reloc.o" +endseg + +beginseg + name "ovl_En_Nutsball" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/ovl_En_Nutsball_reloc.o" +endseg + +beginseg + name "ovl_En_Nwc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/z_en_nwc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/ovl_En_Nwc_reloc.o" +endseg + +beginseg + name "ovl_En_Ny" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/z_en_ny.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/ovl_En_Ny_reloc.o" +endseg + +beginseg + name "ovl_En_OE2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/z_en_oe2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/ovl_En_OE2_reloc.o" +endseg + +beginseg + name "ovl_En_Okarina_Effect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/ovl_En_Okarina_Effect_reloc.o" +endseg + +beginseg + name "ovl_En_Okarina_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/ovl_En_Okarina_Tag_reloc.o" +endseg + +beginseg + name "ovl_En_Okuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/z_en_okuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/ovl_En_Okuta_reloc.o" +endseg + +beginseg + name "ovl_En_Ossan" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/z_en_ossan.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/ovl_En_Ossan_reloc.o" +endseg + +beginseg + name "ovl_En_Owl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/z_en_owl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/ovl_En_Owl_reloc.o" +endseg + +beginseg + name "ovl_En_Part" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/z_en_part.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/ovl_En_Part_reloc.o" +endseg + +beginseg + name "ovl_En_Peehat" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/z_en_peehat.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/ovl_En_Peehat_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Desert" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/ovl_En_Po_Desert_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Field" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/ovl_En_Po_Field_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Relay" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/ovl_En_Po_Relay_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Sisters" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/ovl_En_Po_Sisters_reloc.o" +endseg + +beginseg + name "ovl_En_Poh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/z_en_poh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/ovl_En_Poh_reloc.o" +endseg + +beginseg + name "ovl_En_Pu_box" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/ovl_En_Pu_box_reloc.o" +endseg + +beginseg + name "ovl_En_Rd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/z_en_rd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/ovl_En_Rd_reloc.o" +endseg + +beginseg + name "ovl_En_Reeba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/z_en_reeba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/ovl_En_Reeba_reloc.o" +endseg + +beginseg + name "ovl_En_River_Sound" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/ovl_En_River_Sound_reloc.o" +endseg + +beginseg + name "ovl_En_Rl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/z_en_rl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/ovl_En_Rl_reloc.o" +endseg + +beginseg + name "ovl_En_Rr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/z_en_rr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/ovl_En_Rr_reloc.o" +endseg + +beginseg + name "ovl_En_Ru1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/z_en_ru1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/ovl_En_Ru1_reloc.o" +endseg + +beginseg + name "ovl_En_Ru2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/z_en_ru2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/ovl_En_Ru2_reloc.o" +endseg + +beginseg + name "ovl_En_Sa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/z_en_sa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/ovl_En_Sa_reloc.o" +endseg + +beginseg + name "ovl_En_Sb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/z_en_sb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/ovl_En_Sb_reloc.o" +endseg + +beginseg + name "ovl_En_Scene_Change" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/ovl_En_Scene_Change_reloc.o" +endseg + +beginseg + name "ovl_En_Sda" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/z_en_sda.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/ovl_En_Sda_reloc.o" +endseg + +beginseg + name "ovl_En_Shopnuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/ovl_En_Shopnuts_reloc.o" +endseg + +beginseg + name "ovl_En_Si" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/z_en_si.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/ovl_En_Si_reloc.o" +endseg + +beginseg + name "ovl_En_Siofuki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/ovl_En_Siofuki_reloc.o" +endseg + +beginseg + name "ovl_En_Skb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/z_en_skb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/ovl_En_Skb_reloc.o" +endseg + +beginseg + name "ovl_En_Skj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/z_en_skj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/ovl_En_Skj_reloc.o" +endseg + +beginseg + name "ovl_En_Skjneedle" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/ovl_En_Skjneedle_reloc.o" +endseg + +beginseg + name "ovl_En_Ssh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/z_en_ssh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/ovl_En_Ssh_reloc.o" +endseg + +beginseg + name "ovl_En_St" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/z_en_st.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/ovl_En_St_reloc.o" +endseg + +beginseg + name "ovl_En_Sth" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/z_en_sth.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/ovl_En_Sth_reloc.o" +endseg + +beginseg + name "ovl_En_Stream" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/z_en_stream.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/ovl_En_Stream_reloc.o" +endseg + +beginseg + name "ovl_En_Sw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/z_en_sw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/ovl_En_Sw_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Itm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/ovl_En_Syateki_Itm_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/ovl_En_Syateki_Man_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/ovl_En_Syateki_Niw_reloc.o" +endseg + +beginseg + name "ovl_En_Ta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/z_en_ta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/ovl_En_Ta_reloc.o" +endseg + +beginseg + name "ovl_En_Takara_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/ovl_En_Takara_Man_reloc.o" +endseg + +beginseg + name "ovl_En_Tana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/z_en_tana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/ovl_En_Tana_reloc.o" +endseg + +beginseg + name "ovl_En_Tg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/z_en_tg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/ovl_En_Tg_reloc.o" +endseg + +beginseg + name "ovl_En_Tite" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/z_en_tite.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/ovl_En_Tite_reloc.o" +endseg + +beginseg + name "ovl_En_Tk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/z_en_tk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/ovl_En_Tk_reloc.o" +endseg + +beginseg + name "ovl_En_Torch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/z_en_torch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/ovl_En_Torch_reloc.o" +endseg + +beginseg + name "ovl_En_Torch2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/z_en_torch2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/ovl_En_Torch2_reloc.o" +endseg + +beginseg + name "ovl_En_Toryo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/z_en_toryo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/ovl_En_Toryo_reloc.o" +endseg + +beginseg + name "ovl_En_Tp" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/z_en_tp.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/ovl_En_Tp_reloc.o" +endseg + +beginseg + name "ovl_En_Tr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/z_en_tr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/ovl_En_Tr_reloc.o" +endseg + +beginseg + name "ovl_En_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/z_en_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/ovl_En_Trap_reloc.o" +endseg + +beginseg + name "ovl_En_Tubo_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/ovl_En_Tubo_Trap_reloc.o" +endseg + +beginseg + name "ovl_En_Vali" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/z_en_vali.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/ovl_En_Vali_reloc.o" +endseg + +beginseg + name "ovl_En_Vase" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/z_en_vase.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/ovl_En_Vase_reloc.o" +endseg + +beginseg + name "ovl_En_Vb_Ball" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/ovl_En_Vb_Ball_reloc.o" +endseg + +beginseg + name "ovl_En_Viewer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/z_en_viewer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/ovl_En_Viewer_reloc.o" +endseg + +beginseg + name "ovl_En_Vm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/z_en_vm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/ovl_En_Vm_reloc.o" +endseg + +beginseg + name "ovl_En_Wall_Tubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/ovl_En_Wall_Tubo_reloc.o" +endseg + +beginseg + name "ovl_En_Wallmas" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/ovl_En_Wallmas_reloc.o" +endseg + +beginseg + name "ovl_En_Weather_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/ovl_En_Weather_Tag_reloc.o" +endseg + +beginseg + name "ovl_En_Weiyer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/ovl_En_Weiyer_reloc.o" +endseg + +beginseg + name "ovl_En_Wf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/z_en_wf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/ovl_En_Wf_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Item" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/ovl_En_Wonder_Item_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Talk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/ovl_En_Wonder_Talk_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Talk2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/ovl_En_Wonder_Talk2_reloc.o" +endseg + +beginseg + name "ovl_En_Wood02" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/z_en_wood02.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/ovl_En_Wood02_reloc.o" +endseg + +beginseg + name "ovl_En_Xc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/z_en_xc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/ovl_En_Xc_reloc.o" +endseg + +beginseg + name "ovl_En_Yabusame_Mark" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/ovl_En_Yabusame_Mark_reloc.o" +endseg + +beginseg + name "ovl_En_Yukabyun" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/ovl_En_Yukabyun_reloc.o" +endseg + +beginseg + name "ovl_En_Zf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/z_en_zf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/ovl_En_Zf_reloc.o" +endseg + +beginseg + name "ovl_En_Zl1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/ovl_En_Zl1_reloc.o" +endseg + +beginseg + name "ovl_En_Zl2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/z_en_zl2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/ovl_En_Zl2_reloc.o" +endseg + +beginseg + name "ovl_En_Zl3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/z_en_zl3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/ovl_En_Zl3_reloc.o" +endseg + +beginseg + name "ovl_En_Zl4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/z_en_zl4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/ovl_En_Zl4_reloc.o" +endseg + +beginseg + name "ovl_En_Zo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/z_en_zo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/ovl_En_Zo_reloc.o" +endseg + +beginseg + name "ovl_En_fHG" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/z_en_fhg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/ovl_En_fHG_reloc.o" +endseg + +beginseg + name "ovl_End_Title" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/z_end_title.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/ovl_End_Title_reloc.o" +endseg + +beginseg + name "ovl_Fishing" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/z_fishing.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/ovl_Fishing_reloc.o" +endseg + +beginseg + name "ovl_Item_B_Heart" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/ovl_Item_B_Heart_reloc.o" +endseg + +beginseg + name "ovl_Item_Etcetera" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/ovl_Item_Etcetera_reloc.o" +endseg + +beginseg + name "ovl_Item_Inbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/ovl_Item_Inbox_reloc.o" +endseg + +beginseg + name "ovl_Item_Ocarina" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/ovl_Item_Ocarina_reloc.o" +endseg + +beginseg + name "ovl_Item_Shield" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/z_item_shield.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/ovl_Item_Shield_reloc.o" +endseg + +beginseg + name "ovl_Magic_Dark" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/ovl_Magic_Dark_reloc.o" +endseg + +beginseg + name "ovl_Magic_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/ovl_Magic_Fire_reloc.o" +endseg + +beginseg + name "ovl_Magic_Wind" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/ovl_Magic_Wind_reloc.o" +endseg + +beginseg + name "ovl_Mir_Ray" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/ovl_Mir_Ray_reloc.o" +endseg + +beginseg + name "ovl_Obj_Bean" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/ovl_Obj_Bean_reloc.o" +endseg + +beginseg + name "ovl_Obj_Blockstop" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/ovl_Obj_Blockstop_reloc.o" +endseg + +beginseg + name "ovl_Obj_Bombiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/ovl_Obj_Bombiwa_reloc.o" +endseg + +beginseg + name "ovl_Obj_Comb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/ovl_Obj_Comb_reloc.o" +endseg + +beginseg + name "ovl_Obj_Dekujr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/ovl_Obj_Dekujr_reloc.o" +endseg + +beginseg + name "ovl_Obj_Elevator" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/ovl_Obj_Elevator_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hamishi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/ovl_Obj_Hamishi_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/ovl_Obj_Hana_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hsblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/ovl_Obj_Hsblock_reloc.o" +endseg + +beginseg + name "ovl_Obj_Ice_Poly" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly_reloc.o" +endseg + +beginseg + name "ovl_Obj_Kibako" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/ovl_Obj_Kibako_reloc.o" +endseg + +beginseg + name "ovl_Obj_Kibako2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/ovl_Obj_Kibako2_reloc.o" +endseg + +beginseg + name "ovl_Obj_Lift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/ovl_Obj_Lift_reloc.o" +endseg + +beginseg + name "ovl_Obj_Lightswitch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/ovl_Obj_Lightswitch_reloc.o" +endseg + +beginseg + name "ovl_Obj_Makekinsuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/ovl_Obj_Makekinsuta_reloc.o" +endseg + +beginseg + name "ovl_Obj_Makeoshihiki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/ovl_Obj_Makeoshihiki_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/ovl_Obj_Mure_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/ovl_Obj_Mure2_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/ovl_Obj_Mure3_reloc.o" +endseg + +beginseg + name "ovl_Obj_Oshihiki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/ovl_Obj_Oshihiki_reloc.o" +endseg + +beginseg + name "ovl_Obj_Roomtimer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/ovl_Obj_Roomtimer_reloc.o" +endseg + +beginseg + name "ovl_Obj_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/ovl_Obj_Switch_reloc.o" +endseg + +beginseg + name "ovl_Obj_Syokudai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/ovl_Obj_Syokudai_reloc.o" +endseg + +beginseg + name "ovl_Obj_Timeblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/ovl_Obj_Timeblock_reloc.o" +endseg + +beginseg + name "ovl_Obj_Tsubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/ovl_Obj_Tsubo_reloc.o" +endseg + +beginseg + name "ovl_Obj_Warp2block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/ovl_Obj_Warp2block_reloc.o" +endseg + +beginseg + name "ovl_Object_Kankyo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/ovl_Object_Kankyo_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Spot" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/ovl_Oceff_Spot_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Storm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/ovl_Oceff_Storm_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/ovl_Oceff_Wipe_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4_reloc.o" +endseg + +beginseg + name "ovl_Shot_Sun" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/ovl_Shot_Sun_reloc.o" +endseg diff --git a/spec_includes/overlays_n64_ique.inc b/spec_includes/overlays_n64_ique.inc new file mode 100644 index 0000000000..8c1905a5ad --- /dev/null +++ b/spec_includes/overlays_n64_ique.inc @@ -0,0 +1,3240 @@ +beginseg + name "ovl_En_GirlA" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/z_en_girla.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GirlA/ovl_En_GirlA_reloc.o" +endseg + +beginseg + name "ovl_En_Part" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/z_en_part.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Part/ovl_En_Part_reloc.o" +endseg + +beginseg + name "ovl_En_Light" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/z_en_light.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Light/ovl_En_Light_reloc.o" +endseg + +beginseg + name "ovl_En_Door" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/z_en_door.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Door/ovl_En_Door_reloc.o" +endseg + +beginseg + name "ovl_En_Box" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/z_en_box.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Box/ovl_En_Box_reloc.o" +endseg + +beginseg + name "ovl_En_Poh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/z_en_poh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Poh/ovl_En_Poh_reloc.o" +endseg + +beginseg + name "ovl_En_Okuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/z_en_okuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okuta/ovl_En_Okuta_reloc.o" +endseg + +beginseg + name "ovl_En_Bom" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/z_en_bom.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom/ovl_En_Bom_reloc.o" +endseg + +beginseg + name "ovl_En_Wallmas" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/z_en_wallmas.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wallmas/ovl_En_Wallmas_reloc.o" +endseg + +beginseg + name "ovl_En_Dodongo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/z_en_dodongo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodongo/ovl_En_Dodongo_reloc.o" +endseg + +beginseg + name "ovl_En_Firefly" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/z_en_firefly.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Firefly/ovl_En_Firefly_reloc.o" +endseg + +beginseg + name "ovl_En_Horse" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/z_en_horse.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse/ovl_En_Horse_reloc.o" +endseg + +beginseg + name "ovl_En_Arrow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/z_en_arrow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arrow/ovl_En_Arrow_reloc.o" +endseg + +beginseg + name "ovl_En_Elf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/z_en_elf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Elf/ovl_En_Elf_reloc.o" +endseg + +beginseg + name "ovl_En_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/z_en_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw/ovl_En_Niw_reloc.o" +endseg + +beginseg + name "ovl_En_Tite" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/z_en_tite.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tite/ovl_En_Tite_reloc.o" +endseg + +beginseg + name "ovl_En_Reeba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/z_en_reeba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Reeba/ovl_En_Reeba_reloc.o" +endseg + +beginseg + name "ovl_En_Peehat" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/z_en_peehat.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Peehat/ovl_En_Peehat_reloc.o" +endseg + +beginseg + name "ovl_En_Holl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/z_en_holl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Holl/ovl_En_Holl_reloc.o" +endseg + +beginseg + name "ovl_En_Scene_Change" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/z_en_scene_change.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Scene_Change/ovl_En_Scene_Change_reloc.o" +endseg + +beginseg + name "ovl_En_Zf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/z_en_zf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zf/ovl_En_Zf_reloc.o" +endseg + +beginseg + name "ovl_En_Hata" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/z_en_hata.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hata/ovl_En_Hata_reloc.o" +endseg + +beginseg + name "ovl_Boss_Dodongo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/z_boss_dodongo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Dodongo/ovl_Boss_Dodongo_reloc.o" +endseg + +beginseg + name "ovl_Boss_Goma" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Goma/ovl_Boss_Goma_reloc.o" +endseg + +beginseg + name "ovl_En_Zl1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/z_en_zl1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl1/ovl_En_Zl1_reloc.o" +endseg + +beginseg + name "ovl_En_Viewer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/z_en_viewer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Viewer/ovl_En_Viewer_reloc.o" +endseg + +beginseg + name "ovl_En_Goma" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/z_en_goma.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goma/ovl_En_Goma_reloc.o" +endseg + +beginseg + name "ovl_Bg_Pushbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/z_bg_pushbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Pushbox/ovl_Bg_Pushbox_reloc.o" +endseg + +beginseg + name "ovl_En_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/z_en_bubble.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bubble/ovl_En_Bubble_reloc.o" +endseg + +beginseg + name "ovl_Door_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/z_door_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Shutter/ovl_Door_Shutter_reloc.o" +endseg + +beginseg + name "ovl_En_Dodojr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/z_en_dodojr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dodojr/ovl_En_Dodojr_reloc.o" +endseg + +beginseg + name "ovl_En_Bdfire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/z_en_bdfire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bdfire/ovl_En_Bdfire_reloc.o" +endseg + +beginseg + name "ovl_En_Boom" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/z_en_boom.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Boom/ovl_En_Boom_reloc.o" +endseg + +beginseg + name "ovl_En_Torch2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/z_en_torch2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch2/ovl_En_Torch2_reloc.o" +endseg + +beginseg + name "ovl_En_Bili" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/z_en_bili.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bili/ovl_En_Bili_reloc.o" +endseg + +beginseg + name "ovl_En_Tp" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/z_en_tp.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tp/ovl_En_Tp_reloc.o" +endseg + +beginseg + name "ovl_En_St" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/z_en_st.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_St/ovl_En_St_reloc.o" +endseg + +beginseg + name "ovl_En_Bw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/z_en_bw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bw/ovl_En_Bw_reloc.o" +endseg + +beginseg + name "ovl_En_Eiyer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/z_en_eiyer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eiyer/ovl_En_Eiyer_reloc.o" +endseg + +beginseg + name "ovl_En_River_Sound" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/z_en_river_sound.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_River_Sound/ovl_En_River_Sound_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Normal" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/z_en_horse_normal.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Normal/ovl_En_Horse_Normal_reloc.o" +endseg + +beginseg + name "ovl_En_Ossan" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/z_en_ossan.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ossan/ovl_En_Ossan_reloc.o" +endseg + +beginseg + name "ovl_Bg_Treemouth" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/z_bg_treemouth.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Treemouth/ovl_Bg_Treemouth_reloc.o" +endseg + +beginseg + name "ovl_Bg_Dodoago" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/z_bg_dodoago.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dodoago/ovl_Bg_Dodoago_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Dalm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/z_bg_hidan_dalm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Dalm/ovl_Bg_Hidan_Dalm_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Hrock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/z_bg_hidan_hrock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hrock/ovl_Bg_Hidan_Hrock_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Ganon" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/z_en_horse_ganon.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Ganon/ovl_En_Horse_Ganon_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Rock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/z_bg_hidan_rock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rock/ovl_Bg_Hidan_Rock_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Rsekizou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/z_bg_hidan_rsekizou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Rsekizou/ovl_Bg_Hidan_Rsekizou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Sekizou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/z_bg_hidan_sekizou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sekizou/ovl_Bg_Hidan_Sekizou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Sima" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/z_bg_hidan_sima.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Sima/ovl_Bg_Hidan_Sima_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Syoku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/z_bg_hidan_syoku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Syoku/ovl_Bg_Hidan_Syoku_reloc.o" +endseg + +beginseg + name "ovl_En_Xc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/z_en_xc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Xc/ovl_En_Xc_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Curtain" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/z_bg_hidan_curtain.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Curtain/ovl_Bg_Hidan_Curtain_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot00_Hanebasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/z_bg_spot00_hanebasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Hanebasi/ovl_Bg_Spot00_Hanebasi_reloc.o" +endseg + +beginseg + name "ovl_En_Mb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/z_en_mb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mb/ovl_En_Mb_reloc.o" +endseg + +beginseg + name "ovl_En_Bombf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/z_en_bombf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bombf/ovl_En_Bombf_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Firewall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/z_bg_hidan_firewall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Firewall/ovl_Bg_Hidan_Firewall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Dy_Yoseizo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/z_bg_dy_yoseizo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Dy_Yoseizo/ovl_Bg_Dy_Yoseizo_reloc.o" +endseg + +beginseg + name "ovl_En_Zl2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/z_en_zl2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl2/ovl_En_Zl2_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Fslift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/z_bg_hidan_fslift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fslift/ovl_Bg_Hidan_Fslift_reloc.o" +endseg + +beginseg + name "ovl_En_OE2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/z_en_oe2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_OE2/ovl_En_OE2_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Hasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/z_bg_ydan_hasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Hasi/ovl_Bg_Ydan_Hasi_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Maruta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/z_bg_ydan_maruta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Maruta/ovl_Bg_Ydan_Maruta_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganondrof" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/z_boss_ganondrof.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganondrof/ovl_Boss_Ganondrof_reloc.o" +endseg + +beginseg + name "ovl_En_Am" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/z_en_am.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Am/ovl_En_Am_reloc.o" +endseg + +beginseg + name "ovl_En_Dekubaba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/z_en_dekubaba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekubaba/ovl_En_Dekubaba_reloc.o" +endseg + +beginseg + name "ovl_En_M_Fire1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/z_en_m_fire1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Fire1/ovl_En_M_Fire1_reloc.o" +endseg + +beginseg + name "ovl_En_M_Thunder" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/z_en_m_thunder.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_M_Thunder/ovl_En_M_Thunder_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ddan_Jd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/z_bg_ddan_jd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Jd/ovl_Bg_Ddan_Jd_reloc.o" +endseg + +beginseg + name "ovl_Bg_Breakwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/z_bg_breakwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Breakwall/ovl_Bg_Breakwall_reloc.o" +endseg + +beginseg + name "ovl_En_Jj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/z_en_jj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jj/ovl_En_Jj_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Zelda" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/z_en_horse_zelda.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Zelda/ovl_En_Horse_Zelda_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ddan_Kd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/z_bg_ddan_kd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ddan_Kd/ovl_Bg_Ddan_Kd_reloc.o" +endseg + +beginseg + name "ovl_Door_Warp1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/z_door_warp1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Warp1/ovl_Door_Warp1_reloc.o" +endseg + +beginseg + name "ovl_Obj_Syokudai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/z_obj_syokudai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Syokudai/ovl_Obj_Syokudai_reloc.o" +endseg + +beginseg + name "ovl_Item_B_Heart" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/z_item_b_heart.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_B_Heart/ovl_Item_B_Heart_reloc.o" +endseg + +beginseg + name "ovl_En_Dekunuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/z_en_dekunuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dekunuts/ovl_En_Dekunuts_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Kaiten" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/z_bg_menkuri_kaiten.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Kaiten/ovl_Bg_Menkuri_Kaiten_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Eye" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/z_bg_menkuri_eye.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Eye/ovl_Bg_Menkuri_Eye_reloc.o" +endseg + +beginseg + name "ovl_En_Vali" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/z_en_vali.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vali/ovl_En_Vali_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Movebg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/z_bg_mizu_movebg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Movebg/ovl_Bg_Mizu_Movebg_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Water" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/z_bg_mizu_water.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Water/ovl_Bg_Mizu_Water_reloc.o" +endseg + +beginseg + name "ovl_Arms_Hook" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/z_arms_hook.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arms_Hook/ovl_Arms_Hook_reloc.o" +endseg + +beginseg + name "ovl_En_fHG" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/z_en_fhg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_fHG/ovl_En_fHG_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hineri" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/z_bg_mori_hineri.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hineri/ovl_Bg_Mori_Hineri_reloc.o" +endseg + +beginseg + name "ovl_En_Bb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/z_en_bb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bb/ovl_En_Bb_reloc.o" +endseg + +beginseg + name "ovl_Bg_Toki_Hikari" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/z_bg_toki_hikari.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Hikari/ovl_Bg_Toki_Hikari_reloc.o" +endseg + +beginseg + name "ovl_En_Yukabyun" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/z_en_yukabyun.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yukabyun/ovl_En_Yukabyun_reloc.o" +endseg + +beginseg + name "ovl_Bg_Toki_Swd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd_cutscene_data_3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/z_bg_toki_swd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Toki_Swd/ovl_Bg_Toki_Swd_reloc.o" +endseg + +beginseg + name "ovl_En_Fhg_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/z_en_fhg_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fhg_Fire/ovl_En_Fhg_Fire_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mjin" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/z_bg_mjin.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mjin/ovl_Bg_Mjin_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Kousi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/z_bg_hidan_kousi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kousi/ovl_Bg_Hidan_Kousi_reloc.o" +endseg + +beginseg + name "ovl_Door_Toki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/z_door_toki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Toki/ovl_Door_Toki_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Hamstep" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/z_bg_hidan_hamstep.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Hamstep/ovl_Bg_Hidan_Hamstep_reloc.o" +endseg + +beginseg + name "ovl_En_Bird" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/z_en_bird.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bird/ovl_En_Bird_reloc.o" +endseg + +beginseg + name "ovl_En_Wood02" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/z_en_wood02.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wood02/ovl_En_Wood02_reloc.o" +endseg + +beginseg + name "ovl_En_Lightbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/z_en_lightbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Lightbox/ovl_En_Lightbox_reloc.o" +endseg + +beginseg + name "ovl_En_Pu_box" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/z_en_pu_box.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Pu_box/ovl_En_Pu_box_reloc.o" +endseg + +beginseg + name "ovl_En_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/z_en_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Trap/ovl_En_Trap_reloc.o" +endseg + +beginseg + name "ovl_En_Arow_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/z_en_arow_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Arow_Trap/ovl_En_Arow_Trap_reloc.o" +endseg + +beginseg + name "ovl_En_Vase" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/z_en_vase.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vase/ovl_En_Vase_reloc.o" +endseg + +beginseg + name "ovl_En_Ta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/z_en_ta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ta/ovl_En_Ta_reloc.o" +endseg + +beginseg + name "ovl_En_Tk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/z_en_tk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tk/ovl_En_Tk_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Bigst" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/z_bg_mori_bigst.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Bigst/ovl_Bg_Mori_Bigst_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Elevator" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/z_bg_mori_elevator.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Elevator/ovl_Bg_Mori_Elevator_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Kaitenkabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/z_bg_mori_kaitenkabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Kaitenkabe/ovl_Bg_Mori_Kaitenkabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Rakkatenjo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/z_bg_mori_rakkatenjo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Rakkatenjo/ovl_Bg_Mori_Rakkatenjo_reloc.o" +endseg + +beginseg + name "ovl_En_Vm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/z_en_vm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vm/ovl_En_Vm_reloc.o" +endseg + +beginseg + name "ovl_Demo_Effect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/z_demo_effect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Effect/ovl_Demo_Effect_reloc.o" +endseg + +beginseg + name "ovl_Demo_Kankyo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data5.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data6.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data7.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo_cutscene_data8.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/z_demo_kankyo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kankyo/ovl_Demo_Kankyo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Fwbig" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/z_bg_hidan_fwbig.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Fwbig/ovl_Bg_Hidan_Fwbig_reloc.o" +endseg + +beginseg + name "ovl_En_Floormas" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/z_en_floormas.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Floormas/ovl_En_Floormas_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/z_en_heishi1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi1/ovl_En_Heishi1_reloc.o" +endseg + +beginseg + name "ovl_En_Rd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/z_en_rd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rd/ovl_En_Rd_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Sisters" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/z_en_po_sisters.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Sisters/ovl_En_Po_Sisters_reloc.o" +endseg + +beginseg + name "ovl_Bg_Heavy_Block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/z_bg_heavy_block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Heavy_Block/ovl_Bg_Heavy_Block_reloc.o" +endseg + +beginseg + name "ovl_Bg_Po_Event" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/z_bg_po_event.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Event/ovl_Bg_Po_Event_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/z_obj_mure.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure/ovl_Obj_Mure_reloc.o" +endseg + +beginseg + name "ovl_En_Sw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/z_en_sw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sw/ovl_En_Sw_reloc.o" +endseg + +beginseg + name "ovl_Boss_Fd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/z_boss_fd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd/ovl_Boss_Fd_reloc.o" +endseg + +beginseg + name "ovl_Object_Kankyo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/z_object_kankyo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Object_Kankyo/ovl_Object_Kankyo_reloc.o" +endseg + +beginseg + name "ovl_En_Du" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/z_en_du.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Du/ovl_En_Du_reloc.o" +endseg + +beginseg + name "ovl_En_Fd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/z_en_fd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd/ovl_En_Fd_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Link_Child" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/z_en_horse_link_child.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Link_Child/ovl_En_Horse_Link_Child_reloc.o" +endseg + +beginseg + name "ovl_Door_Ana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/z_door_ana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Ana/ovl_Door_Ana_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot02_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/z_bg_spot02_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot02_Objects/ovl_Bg_Spot02_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/z_bg_haka.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka/ovl_Bg_Haka_reloc.o" +endseg + +beginseg + name "ovl_Magic_Wind" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/z_magic_wind.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Wind/ovl_Magic_Wind_reloc.o" +endseg + +beginseg + name "ovl_Magic_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/z_magic_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Fire/ovl_Magic_Fire_reloc.o" +endseg + +beginseg + name "ovl_En_Ru1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/z_en_ru1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru1/ovl_En_Ru1_reloc.o" +endseg + +beginseg + name "ovl_Boss_Fd2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Fd2/ovl_Boss_Fd2_reloc.o" +endseg + +beginseg + name "ovl_En_Fd_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/z_en_fd_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fd_Fire/ovl_En_Fd_Fire_reloc.o" +endseg + +beginseg + name "ovl_En_Dh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/z_en_dh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dh/ovl_En_Dh_reloc.o" +endseg + +beginseg + name "ovl_En_Dha" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/z_en_dha.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dha/ovl_En_Dha_reloc.o" +endseg + +beginseg + name "ovl_En_Rl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/z_en_rl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rl/ovl_En_Rl_reloc.o" +endseg + +beginseg + name "ovl_En_Encount1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/z_en_encount1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount1/ovl_En_Encount1_reloc.o" +endseg + +beginseg + name "ovl_Demo_Du" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/z_demo_du.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Du/ovl_Demo_Du_reloc.o" +endseg + +beginseg + name "ovl_Demo_Im" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/z_demo_im.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Im/ovl_Demo_Im_reloc.o" +endseg + +beginseg + name "ovl_Demo_Tre_Lgt" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/z_demo_tre_lgt.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Tre_Lgt/ovl_Demo_Tre_Lgt_reloc.o" +endseg + +beginseg + name "ovl_En_Fw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/z_en_fw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fw/ovl_En_Fw_reloc.o" +endseg + +beginseg + name "ovl_Bg_Vb_Sima" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/z_bg_vb_sima.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Vb_Sima/ovl_Bg_Vb_Sima_reloc.o" +endseg + +beginseg + name "ovl_En_Vb_Ball" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/z_en_vb_ball.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Vb_Ball/ovl_En_Vb_Ball_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Megane" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/z_bg_haka_megane.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Megane/ovl_Bg_Haka_Megane_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_MeganeBG" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/z_bg_haka_meganebg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_MeganeBG/ovl_Bg_Haka_MeganeBG_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Ship" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/z_bg_haka_ship.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Ship/ovl_Bg_Haka_Ship_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Sgami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/z_bg_haka_sgami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Sgami/ovl_Bg_Haka_Sgami_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/z_en_heishi2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi2/ovl_En_Heishi2_reloc.o" +endseg + +beginseg + name "ovl_En_Encount2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/z_en_encount2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Encount2/ovl_En_Encount2_reloc.o" +endseg + +beginseg + name "ovl_En_Fire_Rock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/z_en_fire_rock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fire_Rock/ovl_En_Fire_Rock_reloc.o" +endseg + +beginseg + name "ovl_En_Brob" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/z_en_brob.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Brob/ovl_En_Brob_reloc.o" +endseg + +beginseg + name "ovl_Mir_Ray" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/z_mir_ray.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Mir_Ray/ovl_Mir_Ray_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot09_Obj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/z_bg_spot09_obj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot09_Obj/ovl_Bg_Spot09_Obj_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Obj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/z_bg_spot18_obj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Obj/ovl_Bg_Spot18_Obj_reloc.o" +endseg + +beginseg + name "ovl_Boss_Va" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/z_boss_va.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Va/ovl_Boss_Va_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Tubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/z_bg_haka_tubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Tubo/ovl_Bg_Haka_Tubo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/z_bg_haka_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Trap/ovl_Bg_Haka_Trap_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Huta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/z_bg_haka_huta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Huta/ovl_Bg_Haka_Huta_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Zou" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/z_bg_haka_zou.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Zou/ovl_Bg_Haka_Zou_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot17_Funen" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/z_bg_spot17_funen.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Funen/ovl_Bg_Spot17_Funen_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Itm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/z_en_syateki_itm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Itm/ovl_En_Syateki_Itm_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/z_en_syateki_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Man/ovl_En_Syateki_Man_reloc.o" +endseg + +beginseg + name "ovl_En_Tana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/z_en_tana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tana/ovl_En_Tana_reloc.o" +endseg + +beginseg + name "ovl_En_Nb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/z_en_nb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nb/ovl_En_Nb_reloc.o" +endseg + +beginseg + name "ovl_Boss_Mo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Mo/ovl_Boss_Mo_reloc.o" +endseg + +beginseg + name "ovl_En_Sb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/z_en_sb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sb/ovl_En_Sb_reloc.o" +endseg + +beginseg + name "ovl_En_Bigokuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/z_en_bigokuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bigokuta/ovl_En_Bigokuta_reloc.o" +endseg + +beginseg + name "ovl_En_Karebaba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/z_en_karebaba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Karebaba/ovl_En_Karebaba_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bdan_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/z_bg_bdan_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Objects/ovl_Bg_Bdan_Objects_reloc.o" +endseg + +beginseg + name "ovl_Demo_Sa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/z_demo_sa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Sa/ovl_Demo_Sa_reloc.o" +endseg + +beginseg + name "ovl_Demo_Go" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/z_demo_go.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Go/ovl_Demo_Go_reloc.o" +endseg + +beginseg + name "ovl_En_In" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/z_en_in.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_In/ovl_En_In_reloc.o" +endseg + +beginseg + name "ovl_En_Tr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/z_en_tr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tr/ovl_En_Tr_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot16_Bombstone" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/z_bg_spot16_bombstone.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Bombstone/ovl_Bg_Spot16_Bombstone_reloc.o" +endseg + +beginseg + name "ovl_Bg_Hidan_Kowarerukabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/z_bg_hidan_kowarerukabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Hidan_Kowarerukabe/ovl_Bg_Hidan_Kowarerukabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bombwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/z_bg_bombwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bombwall/ovl_Bg_Bombwall_reloc.o" +endseg + +beginseg + name "ovl_En_Ru2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/z_en_ru2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ru2/ovl_En_Ru2_reloc.o" +endseg + +beginseg + name "ovl_Obj_Dekujr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/z_obj_dekujr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Dekujr/ovl_Obj_Dekujr_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Uzu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/z_bg_mizu_uzu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Uzu/ovl_Bg_Mizu_Uzu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot06_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/z_bg_spot06_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot06_Objects/ovl_Bg_Spot06_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/z_bg_ice_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Objects/ovl_Bg_Ice_Objects_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Water" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/z_bg_haka_water.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Water/ovl_Bg_Haka_Water_reloc.o" +endseg + +beginseg + name "ovl_En_Ma2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/z_en_ma2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma2/ovl_En_Ma2_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Chu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/z_en_bom_chu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Chu/ovl_En_Bom_Chu_reloc.o" +endseg + +beginseg + name "ovl_En_Horse_Game_Check" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/z_en_horse_game_check.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Horse_Game_Check/ovl_En_Horse_Game_Check_reloc.o" +endseg + +beginseg + name "ovl_Boss_Tw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/z_boss_tw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Tw/ovl_Boss_Tw_reloc.o" +endseg + +beginseg + name "ovl_En_Rr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/z_en_rr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Rr/ovl_En_Rr_reloc.o" +endseg + +beginseg + name "ovl_En_Ba" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/z_en_ba.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ba/ovl_En_Ba_reloc.o" +endseg + +beginseg + name "ovl_En_Bx" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/z_en_bx.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bx/ovl_En_Bx_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/z_en_anubice.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice/ovl_En_Anubice_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/z_en_anubice_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Fire/ovl_En_Anubice_Fire_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hashigo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/z_bg_mori_hashigo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashigo/ovl_Bg_Mori_Hashigo_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Hashira4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/z_bg_mori_hashira4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Hashira4/ovl_Bg_Mori_Hashira4_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mori_Idomizu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/z_bg_mori_idomizu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mori_Idomizu/ovl_Bg_Mori_Idomizu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot16_Doughnut" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/z_bg_spot16_doughnut.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot16_Doughnut/ovl_Bg_Spot16_Doughnut_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bdan_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/z_bg_bdan_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bdan_Switch/ovl_Bg_Bdan_Switch_reloc.o" +endseg + +beginseg + name "ovl_En_Ma1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/z_en_ma1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma1/ovl_En_Ma1_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganon" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/z_boss_ganon.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon/ovl_Boss_Ganon_reloc.o" +endseg + +beginseg + name "ovl_Boss_Sst" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/z_boss_sst.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Sst/ovl_Boss_Sst_reloc.o" +endseg + +beginseg + name "ovl_En_Ny" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/z_en_ny.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ny/ovl_En_Ny_reloc.o" +endseg + +beginseg + name "ovl_En_Fr" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/z_en_fr.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fr/ovl_En_Fr_reloc.o" +endseg + +beginseg + name "ovl_Item_Shield" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/z_item_shield.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Shield/ovl_Item_Shield_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Shelter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/z_bg_ice_shelter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shelter/ovl_Bg_Ice_Shelter_reloc.o" +endseg + +beginseg + name "ovl_En_Ice_Hono" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/z_en_ice_hono.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ice_Hono/ovl_En_Ice_Hono_reloc.o" +endseg + +beginseg + name "ovl_Item_Ocarina" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/z_item_ocarina.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Ocarina/ovl_Item_Ocarina_reloc.o" +endseg + +beginseg + name "ovl_Magic_Dark" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/z_magic_dark.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Magic_Dark/ovl_Magic_Dark_reloc.o" +endseg + +beginseg + name "ovl_Demo_6K" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/z_demo_6k.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_6K/ovl_Demo_6K_reloc.o" +endseg + +beginseg + name "ovl_En_Anubice_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/z_en_anubice_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Anubice_Tag/ovl_En_Anubice_Tag_reloc.o" +endseg + +beginseg + name "ovl_Bg_Haka_Gate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/z_bg_haka_gate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Haka_Gate/ovl_Bg_Haka_Gate_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot15_Saku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/z_bg_spot15_saku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Saku/ovl_Bg_Spot15_Saku_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Goroiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/z_bg_jya_goroiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Goroiwa/ovl_Bg_Jya_Goroiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Zurerukabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/ovl_Bg_Jya_Zurerukabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Cobra" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Cobra/ovl_Bg_Jya_Cobra_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Kanaami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/z_bg_jya_kanaami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Kanaami/ovl_Bg_Jya_Kanaami_reloc.o" +endseg + +beginseg + name "ovl_Fishing" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/z_fishing.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Fishing/ovl_Fishing_reloc.o" +endseg + +beginseg + name "ovl_Obj_Oshihiki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/z_obj_oshihiki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Oshihiki/ovl_Obj_Oshihiki_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gate_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/z_bg_gate_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gate_Shutter/ovl_Bg_Gate_Shutter_reloc.o" +endseg + +beginseg + name "ovl_Eff_Dust" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/z_eff_dust.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Eff_Dust/ovl_Eff_Dust_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Fusya" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/z_bg_spot01_fusya.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Fusya/ovl_Bg_Spot01_Fusya_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idohashira" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/z_bg_spot01_idohashira.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idohashira/ovl_Bg_Spot01_Idohashira_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idomizu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/z_bg_spot01_idomizu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idomizu/ovl_Bg_Spot01_Idomizu_reloc.o" +endseg + +beginseg + name "ovl_Bg_Po_Syokudai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/z_bg_po_syokudai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Po_Syokudai/ovl_Bg_Po_Syokudai_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ganon_Otyuka" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ganon_Otyuka/ovl_Bg_Ganon_Otyuka_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot15_Rrbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/z_bg_spot15_rrbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot15_Rrbox/ovl_Bg_Spot15_Rrbox_reloc.o" +endseg + +beginseg + name "ovl_Bg_Umajump" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/z_bg_umajump.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Umajump/ovl_Bg_Umajump_reloc.o" +endseg + +beginseg + name "ovl_En_Insect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/z_en_insect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Insect/ovl_En_Insect_reloc.o" +endseg + +beginseg + name "ovl_En_Butte" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/z_en_butte.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Butte/ovl_En_Butte_reloc.o" +endseg + +beginseg + name "ovl_En_Fish" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/z_en_fish.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fish/ovl_En_Fish_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot08_Iceblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/z_bg_spot08_iceblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Iceblock/ovl_Bg_Spot08_Iceblock_reloc.o" +endseg + +beginseg + name "ovl_Item_Etcetera" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/z_item_etcetera.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Etcetera/ovl_Item_Etcetera_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Fire" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/z_arrow_fire.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Fire/ovl_Arrow_Fire_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Ice" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/z_arrow_ice.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Ice/ovl_Arrow_Ice_reloc.o" +endseg + +beginseg + name "ovl_Arrow_Light" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/z_arrow_light.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Arrow_Light/ovl_Arrow_Light_reloc.o" +endseg + +beginseg + name "ovl_Obj_Kibako" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/z_obj_kibako.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako/ovl_Obj_Kibako_reloc.o" +endseg + +beginseg + name "ovl_Obj_Tsubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/z_obj_tsubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Tsubo/ovl_Obj_Tsubo_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Item" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/z_en_wonder_item.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Item/ovl_En_Wonder_Item_reloc.o" +endseg + +beginseg + name "ovl_En_Ik" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/z_en_ik.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ik/ovl_En_Ik_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ik" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/z_demo_ik.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ik/ovl_Demo_Ik_reloc.o" +endseg + +beginseg + name "ovl_En_Skj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/z_en_skj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skj/ovl_En_Skj_reloc.o" +endseg + +beginseg + name "ovl_En_Skjneedle" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/z_en_skjneedle.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skjneedle/ovl_En_Skjneedle_reloc.o" +endseg + +beginseg + name "ovl_En_G_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/z_en_g_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_G_Switch/ovl_En_G_Switch_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ext" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/z_demo_ext.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ext/ovl_Demo_Ext_reloc.o" +endseg + +beginseg + name "ovl_Demo_Shd" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/z_demo_shd.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Shd/ovl_Demo_Shd_reloc.o" +endseg + +beginseg + name "ovl_En_Dns" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/z_en_dns.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dns/ovl_En_Dns_reloc.o" +endseg + +beginseg + name "ovl_Elf_Msg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/z_elf_msg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg/ovl_Elf_Msg_reloc.o" +endseg + +beginseg + name "ovl_En_Honotrap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/z_en_honotrap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Honotrap/ovl_En_Honotrap_reloc.o" +endseg + +beginseg + name "ovl_En_Tubo_Trap" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/z_en_tubo_trap.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tubo_Trap/ovl_En_Tubo_Trap_reloc.o" +endseg + +beginseg + name "ovl_Obj_Ice_Poly" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/z_obj_ice_poly.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Ice_Poly/ovl_Obj_Ice_Poly_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot03_Taki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/z_bg_spot03_taki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot03_Taki/ovl_Bg_Spot03_Taki_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot07_Taki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/z_bg_spot07_taki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot07_Taki/ovl_Bg_Spot07_Taki_reloc.o" +endseg + +beginseg + name "ovl_En_Fz" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/z_en_fz.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fz/ovl_En_Fz_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Relay" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/z_en_po_relay.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Relay/ovl_En_Po_Relay_reloc.o" +endseg + +beginseg + name "ovl_Bg_Relay_Objects" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/z_bg_relay_objects.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Relay_Objects/ovl_Bg_Relay_Objects_reloc.o" +endseg + +beginseg + name "ovl_En_Diving_Game" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/z_en_diving_game.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Diving_Game/ovl_En_Diving_Game_reloc.o" +endseg + +beginseg + name "ovl_En_Kusa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/z_en_kusa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kusa/ovl_En_Kusa_reloc.o" +endseg + +beginseg + name "ovl_Obj_Bean" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bean/ovl_Obj_Bean_reloc.o" +endseg + +beginseg + name "ovl_Obj_Bombiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/z_obj_bombiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Bombiwa/ovl_Obj_Bombiwa_reloc.o" +endseg + +beginseg + name "ovl_Obj_Switch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Switch/ovl_Obj_Switch_reloc.o" +endseg + +beginseg + name "ovl_Obj_Elevator" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/z_obj_elevator.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Elevator/ovl_Obj_Elevator_reloc.o" +endseg + +beginseg + name "ovl_Obj_Lift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/z_obj_lift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lift/ovl_Obj_Lift_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hsblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/z_obj_hsblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hsblock/ovl_Obj_Hsblock_reloc.o" +endseg + +beginseg + name "ovl_En_Okarina_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag_cutscene_data.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/z_en_okarina_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Tag/ovl_En_Okarina_Tag_reloc.o" +endseg + +beginseg + name "ovl_En_Yabusame_Mark" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/z_en_yabusame_mark.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Yabusame_Mark/ovl_En_Yabusame_Mark_reloc.o" +endseg + +beginseg + name "ovl_En_Goroiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Goroiwa/ovl_En_Goroiwa_reloc.o" +endseg + +beginseg + name "ovl_En_Ex_Ruppy" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/z_en_ex_ruppy.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Ruppy/ovl_En_Ex_Ruppy_reloc.o" +endseg + +beginseg + name "ovl_En_Toryo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/z_en_toryo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Toryo/ovl_En_Toryo_reloc.o" +endseg + +beginseg + name "ovl_En_Daiku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/z_en_daiku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku/ovl_En_Daiku_reloc.o" +endseg + +beginseg + name "ovl_En_Nwc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/z_en_nwc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nwc/ovl_En_Nwc_reloc.o" +endseg + +beginseg + name "ovl_En_Blkobj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/z_en_blkobj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Blkobj/ovl_En_Blkobj_reloc.o" +endseg + +beginseg + name "ovl_Item_Inbox" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/z_item_inbox.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Item_Inbox/ovl_Item_Inbox_reloc.o" +endseg + +beginseg + name "ovl_En_Ge1" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/z_en_ge1.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge1/ovl_En_Ge1_reloc.o" +endseg + +beginseg + name "ovl_Obj_Blockstop" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/z_obj_blockstop.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Blockstop/ovl_Obj_Blockstop_reloc.o" +endseg + +beginseg + name "ovl_En_Sda" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/z_en_sda.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sda/ovl_En_Sda_reloc.o" +endseg + +beginseg + name "ovl_En_Clear_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/z_en_clear_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Clear_Tag/ovl_En_Clear_Tag_reloc.o" +endseg + +beginseg + name "ovl_En_Niw_Lady" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/z_en_niw_lady.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Lady/ovl_En_Niw_Lady_reloc.o" +endseg + +beginseg + name "ovl_En_Gm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/z_en_gm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gm/ovl_En_Gm_reloc.o" +endseg + +beginseg + name "ovl_En_Ms" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/z_en_ms.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ms/ovl_En_Ms_reloc.o" +endseg + +beginseg + name "ovl_En_Hs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/z_en_hs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs/ovl_En_Hs_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ingate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/z_bg_ingate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ingate/ovl_Bg_Ingate_reloc.o" +endseg + +beginseg + name "ovl_En_Kanban" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/z_en_kanban.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kanban/ovl_En_Kanban_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/z_en_heishi3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi3/ovl_En_Heishi3_reloc.o" +endseg + +beginseg + name "ovl_En_Syateki_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/z_en_syateki_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Syateki_Niw/ovl_En_Syateki_Niw_reloc.o" +endseg + +beginseg + name "ovl_En_Attack_Niw" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/z_en_attack_niw.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Attack_Niw/ovl_En_Attack_Niw_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Idosoko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/z_bg_spot01_idosoko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Idosoko/ovl_Bg_Spot01_Idosoko_reloc.o" +endseg + +beginseg + name "ovl_En_Sa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/z_en_sa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sa/ovl_En_Sa_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Talk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/z_en_wonder_talk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk/ovl_En_Wonder_Talk_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gjyo_Bridge" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/z_bg_gjyo_bridge.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gjyo_Bridge/ovl_Bg_Gjyo_Bridge_reloc.o" +endseg + +beginseg + name "ovl_En_Ds" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/z_en_ds.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ds/ovl_En_Ds_reloc.o" +endseg + +beginseg + name "ovl_En_Mk" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/z_en_mk.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mk/ovl_En_Mk_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Bowl_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/z_en_bom_bowl_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Man/ovl_En_Bom_Bowl_Man_reloc.o" +endseg + +beginseg + name "ovl_En_Bom_Bowl_Pit" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/z_en_bom_bowl_pit.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Bom_Bowl_Pit/ovl_En_Bom_Bowl_Pit_reloc.o" +endseg + +beginseg + name "ovl_En_Owl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/z_en_owl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Owl/ovl_En_Owl_reloc.o" +endseg + +beginseg + name "ovl_En_Ishi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/z_en_ishi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ishi/ovl_En_Ishi_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hana" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/z_obj_hana.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hana/ovl_Obj_Hana_reloc.o" +endseg + +beginseg + name "ovl_Obj_Lightswitch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Lightswitch/ovl_Obj_Lightswitch_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/z_obj_mure2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure2/ovl_Obj_Mure2_reloc.o" +endseg + +beginseg + name "ovl_En_Go" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/z_en_go.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go/ovl_En_Go_reloc.o" +endseg + +beginseg + name "ovl_En_Fu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/z_en_fu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Fu/ovl_En_Fu_reloc.o" +endseg + +beginseg + name "ovl_En_Changer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/z_en_changer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Changer/ovl_En_Changer_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Megami" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/z_bg_jya_megami.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Megami/ovl_Bg_Jya_Megami_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Lift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/z_bg_jya_lift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Lift/ovl_Bg_Jya_Lift_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bigmirror" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/z_bg_jya_bigmirror.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bigmirror/ovl_Bg_Jya_Bigmirror_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bombchuiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/z_bg_jya_bombchuiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombchuiwa/ovl_Bg_Jya_Bombchuiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Amishutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/z_bg_jya_amishutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Amishutter/ovl_Bg_Jya_Amishutter_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Bombiwa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Bombiwa/ovl_Bg_Jya_Bombiwa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Basket" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Basket/ovl_Bg_Spot18_Basket_reloc.o" +endseg + +beginseg + name "ovl_En_Ganon_Organ" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/z_en_ganon_organ.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Organ/ovl_En_Ganon_Organ_reloc.o" +endseg + +beginseg + name "ovl_En_Siofuki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/z_en_siofuki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Siofuki/ovl_En_Siofuki_reloc.o" +endseg + +beginseg + name "ovl_En_Stream" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/z_en_stream.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Stream/ovl_En_Stream_reloc.o" +endseg + +beginseg + name "ovl_En_Mm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/z_en_mm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm/ovl_En_Mm_reloc.o" +endseg + +beginseg + name "ovl_En_Ko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/z_en_ko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ko/ovl_En_Ko_reloc.o" +endseg + +beginseg + name "ovl_En_Kz" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/z_en_kz.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kz/ovl_En_Kz_reloc.o" +endseg + +beginseg + name "ovl_En_Weather_Tag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/z_en_weather_tag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weather_Tag/ovl_En_Weather_Tag_reloc.o" +endseg + +beginseg + name "ovl_Bg_Sst_Floor" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/z_bg_sst_floor.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Sst_Floor/ovl_Bg_Sst_Floor_reloc.o" +endseg + +beginseg + name "ovl_En_Ani" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/z_en_ani.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ani/ovl_En_Ani_reloc.o" +endseg + +beginseg + name "ovl_En_Ex_Item" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/z_en_ex_item.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ex_Item/ovl_En_Ex_Item_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Ironobj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/z_bg_jya_ironobj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Ironobj/ovl_Bg_Jya_Ironobj_reloc.o" +endseg + +beginseg + name "ovl_En_Js" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/z_en_js.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Js/ovl_En_Js_reloc.o" +endseg + +beginseg + name "ovl_En_Jsjutan" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/z_en_jsjutan.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Jsjutan/ovl_En_Jsjutan_reloc.o" +endseg + +beginseg + name "ovl_En_Cs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/z_en_cs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cs/ovl_En_Cs_reloc.o" +endseg + +beginseg + name "ovl_En_Md" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/z_en_md.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Md/ovl_En_Md_reloc.o" +endseg + +beginseg + name "ovl_En_Hy" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/z_en_hy.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hy/ovl_En_Hy_reloc.o" +endseg + +beginseg + name "ovl_En_Ganon_Mant" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/z_en_ganon_mant.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ganon_Mant/ovl_En_Ganon_Mant_reloc.o" +endseg + +beginseg + name "ovl_En_Okarina_Effect" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/z_en_okarina_effect.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Okarina_Effect/ovl_En_Okarina_Effect_reloc.o" +endseg + +beginseg + name "ovl_En_Mag" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/z_en_mag.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mag/ovl_En_Mag_reloc.o" +endseg + +beginseg + name "ovl_Door_Gerudo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/z_door_gerudo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Gerudo/ovl_Door_Gerudo_reloc.o" +endseg + +beginseg + name "ovl_Elf_Msg2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/z_elf_msg2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Elf_Msg2/ovl_Elf_Msg2_reloc.o" +endseg + +beginseg + name "ovl_Demo_Gt" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/z_demo_gt.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gt/ovl_Demo_Gt_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Field" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Field/ovl_En_Po_Field_reloc.o" +endseg + +beginseg + name "ovl_Efc_Erupc" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/z_efc_erupc.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Efc_Erupc/ovl_Efc_Erupc_reloc.o" +endseg + +beginseg + name "ovl_Bg_Zg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/z_bg_zg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Zg/ovl_Bg_Zg_reloc.o" +endseg + +beginseg + name "ovl_En_Heishi4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/z_en_heishi4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Heishi4/ovl_En_Heishi4_reloc.o" +endseg + +beginseg + name "ovl_En_Zl3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/z_en_zl3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl3/ovl_En_Zl3_reloc.o" +endseg + +beginseg + name "ovl_Boss_Ganon2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/z_boss_ganon2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Boss_Ganon2/ovl_Boss_Ganon2_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/z_en_kakasi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi/ovl_En_Kakasi_reloc.o" +endseg + +beginseg + name "ovl_En_Takara_Man" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/z_en_takara_man.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Takara_Man/ovl_En_Takara_Man_reloc.o" +endseg + +beginseg + name "ovl_Obj_Makeoshihiki" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makeoshihiki/ovl_Obj_Makeoshihiki_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Spot" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Spot/ovl_Oceff_Spot_reloc.o" +endseg + +beginseg + name "ovl_End_Title" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/z_end_title.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_End_Title/ovl_End_Title_reloc.o" +endseg + +beginseg + name "ovl_En_Torch" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/z_en_torch.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Torch/ovl_En_Torch_reloc.o" +endseg + +beginseg + name "ovl_Demo_Ec" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/z_demo_ec.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Ec/ovl_Demo_Ec_reloc.o" +endseg + +beginseg + name "ovl_Shot_Sun" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/z_shot_sun.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Shot_Sun/ovl_Shot_Sun_reloc.o" +endseg + +beginseg + name "ovl_En_Dy_Extra" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/z_en_dy_extra.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dy_Extra/ovl_En_Dy_Extra_reloc.o" +endseg + +beginseg + name "ovl_En_Wonder_Talk2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/z_en_wonder_talk2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wonder_Talk2/ovl_En_Wonder_Talk2_reloc.o" +endseg + +beginseg + name "ovl_En_Ge2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/z_en_ge2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge2/ovl_En_Ge2_reloc.o" +endseg + +beginseg + name "ovl_Obj_Roomtimer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/z_obj_roomtimer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Roomtimer/ovl_Obj_Roomtimer_reloc.o" +endseg + +beginseg + name "ovl_En_Ssh" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/z_en_ssh.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ssh/ovl_En_Ssh_reloc.o" +endseg + +beginseg + name "ovl_En_Sth" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/z_en_sth.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Sth/ovl_En_Sth_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/z_oceff_wipe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe/ovl_Oceff_Wipe_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dust" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/z_eff_ss_dust.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dust/ovl_Effect_Ss_Dust_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_KiraKira" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/z_eff_ss_kirakira.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_KiraKira/ovl_Effect_Ss_KiraKira_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bomb" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/z_eff_ss_bomb.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb/ovl_Effect_Ss_Bomb_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bomb2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/z_eff_ss_bomb2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bomb2/ovl_Effect_Ss_Bomb2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Blast" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/z_eff_ss_blast.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Blast/ovl_Effect_Ss_Blast_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Spk" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/z_eff_ss_g_spk.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Spk/ovl_Effect_Ss_G_Spk_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_D_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/z_eff_ss_d_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_D_Fire/ovl_Effect_Ss_D_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/z_eff_ss_bubble.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Bubble/ovl_Effect_Ss_Bubble_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Ripple" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/z_eff_ss_g_ripple.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Ripple/ovl_Effect_Ss_G_Ripple_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Splash" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/z_eff_ss_g_splash.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Splash/ovl_Effect_Ss_G_Splash_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Magma" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/z_eff_ss_g_magma.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma/ovl_Effect_Ss_G_Magma_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/z_eff_ss_g_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Fire/ovl_Effect_Ss_G_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Lightning" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/z_eff_ss_lightning.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Lightning/ovl_Effect_Ss_Lightning_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dt_Bubble" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/z_eff_ss_dt_bubble.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dt_Bubble/ovl_Effect_Ss_Dt_Bubble_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Hahen" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/z_eff_ss_hahen.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Hahen/ovl_Effect_Ss_Hahen_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Stick" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/z_eff_ss_stick.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stick/ovl_Effect_Ss_Stick_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Sibuki" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/z_eff_ss_sibuki.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki/ovl_Effect_Ss_Sibuki_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Sibuki2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/z_eff_ss_sibuki2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Sibuki2/ovl_Effect_Ss_Sibuki2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_G_Magma2" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/z_eff_ss_g_magma2.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_G_Magma2/ovl_Effect_Ss_G_Magma2_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Stone1" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/z_eff_ss_stone1.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Stone1/ovl_Effect_Ss_Stone1_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_HitMark" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/z_eff_ss_hitmark.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_HitMark/ovl_Effect_Ss_HitMark_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fhg_Flash" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/z_eff_ss_fhg_flash.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fhg_Flash/ovl_Effect_Ss_Fhg_Flash_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_K_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/z_eff_ss_k_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_K_Fire/ovl_Effect_Ss_K_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Solder_Srch_Ball" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/z_eff_ss_solder_srch_ball.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Solder_Srch_Ball/ovl_Effect_Ss_Solder_Srch_Ball_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Kakera" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/z_eff_ss_kakera.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Kakera/ovl_Effect_Ss_Kakera_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Ice_Piece" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/z_eff_ss_ice_piece.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Piece/ovl_Effect_Ss_Ice_Piece_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_En_Ice" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/z_eff_ss_en_ice.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Ice/ovl_Effect_Ss_En_Ice_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fire_Tail" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/z_eff_ss_fire_tail.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fire_Tail/ovl_Effect_Ss_Fire_Tail_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_En_Fire" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/z_eff_ss_en_fire.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_En_Fire/ovl_Effect_Ss_En_Fire_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Extra" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/z_eff_ss_extra.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Extra/ovl_Effect_Ss_Extra_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Fcircle" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/z_eff_ss_fcircle.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Fcircle/ovl_Effect_Ss_Fcircle_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Db" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/z_eff_ss_dead_db.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Db/ovl_Effect_Ss_Dead_Db_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Dd" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/z_eff_ss_dead_dd.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Dd/ovl_Effect_Ss_Dead_Dd_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Ds" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/z_eff_ss_dead_ds.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Ds/ovl_Effect_Ss_Dead_Ds_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Dead_Sound" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Dead_Sound/ovl_Effect_Ss_Dead_Sound_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Storm" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/z_oceff_storm.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Storm/ovl_Oceff_Storm_reloc.o" +endseg + +beginseg + name "ovl_En_Weiyer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/z_en_weiyer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Weiyer/ovl_En_Weiyer_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot05_Soko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/z_bg_spot05_soko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot05_Soko/ovl_Bg_Spot05_Soko_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_1flift" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/z_bg_jya_1flift.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_1flift/ovl_Bg_Jya_1flift_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Haheniron" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/z_bg_jya_haheniron.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Haheniron/ovl_Bg_Jya_Haheniron_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot12_Gate" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/z_bg_spot12_gate.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Gate/ovl_Bg_Spot12_Gate_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot12_Saku" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/z_bg_spot12_saku.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot12_Saku/ovl_Bg_Spot12_Saku_reloc.o" +endseg + +beginseg + name "ovl_En_Hintnuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/z_en_hintnuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hintnuts/ovl_En_Hintnuts_reloc.o" +endseg + +beginseg + name "ovl_En_Nutsball" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/z_en_nutsball.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Nutsball/ovl_En_Nutsball_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot00_Break" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/z_bg_spot00_break.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot00_Break/ovl_Bg_Spot00_Break_reloc.o" +endseg + +beginseg + name "ovl_En_Shopnuts" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/z_en_shopnuts.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Shopnuts/ovl_En_Shopnuts_reloc.o" +endseg + +beginseg + name "ovl_En_It" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/z_en_it.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_It/ovl_En_It_reloc.o" +endseg + +beginseg + name "ovl_En_GeldB" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/z_en_geldb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_GeldB/ovl_En_GeldB_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/z_oceff_wipe2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe2/ovl_Oceff_Wipe2_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/z_oceff_wipe3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe3/ovl_Oceff_Wipe3_reloc.o" +endseg + +beginseg + name "ovl_En_Niw_Girl" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/z_en_niw_girl.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Niw_Girl/ovl_En_Niw_Girl_reloc.o" +endseg + +beginseg + name "ovl_En_Dog" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/z_en_dog.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dog/ovl_En_Dog_reloc.o" +endseg + +beginseg + name "ovl_En_Si" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/z_en_si.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Si/ovl_En_Si_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot01_Objects2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/z_bg_spot01_objects2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot01_Objects2/ovl_Bg_Spot01_Objects2_reloc.o" +endseg + +beginseg + name "ovl_Obj_Comb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/z_obj_comb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Comb/ovl_Obj_Comb_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot11_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/z_bg_spot11_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Bakudankabe/ovl_Bg_Spot11_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Obj_Kibako2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/z_obj_kibako2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Kibako2/ovl_Obj_Kibako2_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Demo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/z_en_dnt_demo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Demo/ovl_En_Dnt_Demo_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Jiji" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/z_en_dnt_jiji.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Jiji/ovl_En_Dnt_Jiji_reloc.o" +endseg + +beginseg + name "ovl_En_Dnt_Nomal" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/z_en_dnt_nomal.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Dnt_Nomal/ovl_En_Dnt_Nomal_reloc.o" +endseg + +beginseg + name "ovl_En_Guest" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/z_en_guest.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Guest/ovl_En_Guest_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bom_Guard" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/z_bg_bom_guard.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bom_Guard/ovl_Bg_Bom_Guard_reloc.o" +endseg + +beginseg + name "ovl_En_Hs2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/z_en_hs2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Hs2/ovl_En_Hs2_reloc.o" +endseg + +beginseg + name "ovl_Demo_Kekkai" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/z_demo_kekkai.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Kekkai/ovl_Demo_Kekkai_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot08_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/z_bg_spot08_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot08_Bakudankabe/ovl_Bg_Spot08_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot17_Bakudankabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/z_bg_spot17_bakudankabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot17_Bakudankabe/ovl_Bg_Spot17_Bakudankabe_reloc.o" +endseg + +beginseg + name "ovl_Obj_Mure3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/z_obj_mure3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Mure3/ovl_Obj_Mure3_reloc.o" +endseg + +beginseg + name "ovl_En_Tg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/z_en_tg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Tg/ovl_En_Tg_reloc.o" +endseg + +beginseg + name "ovl_En_Mu" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/z_en_mu.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mu/ovl_En_Mu_reloc.o" +endseg + +beginseg + name "ovl_En_Go2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/z_en_go2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Go2/ovl_En_Go2_reloc.o" +endseg + +beginseg + name "ovl_En_Wf" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/z_en_wf.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wf/ovl_En_Wf_reloc.o" +endseg + +beginseg + name "ovl_En_Skb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/z_en_skb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Skb/ovl_En_Skb_reloc.o" +endseg + +beginseg + name "ovl_Demo_Gj" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/z_demo_gj.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Gj/ovl_Demo_Gj_reloc.o" +endseg + +beginseg + name "ovl_Demo_Geff" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/z_demo_geff.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Demo_Geff/ovl_Demo_Geff_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Firemeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/z_bg_gnd_firemeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Firemeiro/ovl_Bg_Gnd_Firemeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Darkmeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/z_bg_gnd_darkmeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Darkmeiro/ovl_Bg_Gnd_Darkmeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Soulmeiro" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/z_bg_gnd_soulmeiro.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Soulmeiro/ovl_Bg_Gnd_Soulmeiro_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Nisekabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/z_bg_gnd_nisekabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Nisekabe/ovl_Bg_Gnd_Nisekabe_reloc.o" +endseg + +beginseg + name "ovl_Bg_Gnd_Iceblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/z_bg_gnd_iceblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Gnd_Iceblock/ovl_Bg_Gnd_Iceblock_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ydan_Sp" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/z_bg_ydan_sp.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ydan_Sp/ovl_Bg_Ydan_Sp_reloc.o" +endseg + +beginseg + name "ovl_En_Gb" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/z_en_gb.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gb/ovl_En_Gb_reloc.o" +endseg + +beginseg + name "ovl_En_Gs" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/z_en_gs.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Gs/ovl_En_Gs_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Bwall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/z_bg_mizu_bwall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Bwall/ovl_Bg_Mizu_Bwall_reloc.o" +endseg + +beginseg + name "ovl_Bg_Mizu_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/z_bg_mizu_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Mizu_Shutter/ovl_Bg_Mizu_Shutter_reloc.o" +endseg + +beginseg + name "ovl_En_Daiku_Kakariko" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/z_en_daiku_kakariko.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Daiku_Kakariko/ovl_En_Daiku_Kakariko_reloc.o" +endseg + +beginseg + name "ovl_Bg_Bowl_Wall" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/z_bg_bowl_wall.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Bowl_Wall/ovl_Bg_Bowl_Wall_reloc.o" +endseg + +beginseg + name "ovl_En_Wall_Tubo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/z_en_wall_tubo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Wall_Tubo/ovl_En_Wall_Tubo_reloc.o" +endseg + +beginseg + name "ovl_En_Po_Desert" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/z_en_po_desert.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Po_Desert/ovl_En_Po_Desert_reloc.o" +endseg + +beginseg + name "ovl_En_Crow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/z_en_crow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Crow/ovl_En_Crow_reloc.o" +endseg + +beginseg + name "ovl_Door_Killer" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/z_door_killer.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Door_Killer/ovl_Door_Killer_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot11_Oasis" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/z_bg_spot11_oasis.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot11_Oasis/ovl_Bg_Spot11_Oasis_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Futa" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/z_bg_spot18_futa.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Futa/ovl_Bg_Spot18_Futa_reloc.o" +endseg + +beginseg + name "ovl_Bg_Spot18_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/z_bg_spot18_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Spot18_Shutter/ovl_Bg_Spot18_Shutter_reloc.o" +endseg + +beginseg + name "ovl_En_Ma3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/z_en_ma3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ma3/ovl_En_Ma3_reloc.o" +endseg + +beginseg + name "ovl_En_Cow" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/z_en_cow.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Cow/ovl_En_Cow_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Turara" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/z_bg_ice_turara.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Turara/ovl_Bg_Ice_Turara_reloc.o" +endseg + +beginseg + name "ovl_Bg_Ice_Shutter" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/z_bg_ice_shutter.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Ice_Shutter/ovl_Bg_Ice_Shutter_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/z_en_kakasi2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi2/ovl_En_Kakasi2_reloc.o" +endseg + +beginseg + name "ovl_En_Kakasi3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/z_en_kakasi3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Kakasi3/ovl_En_Kakasi3_reloc.o" +endseg + +beginseg + name "ovl_Oceff_Wipe4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/z_oceff_wipe4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Oceff_Wipe4/ovl_Oceff_Wipe4_reloc.o" +endseg + +beginseg + name "ovl_En_Eg" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/z_en_eg.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Eg/ovl_En_Eg_reloc.o" +endseg + +beginseg + name "ovl_Bg_Menkuri_Nisekabe" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/z_bg_menkuri_nisekabe.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Menkuri_Nisekabe/ovl_Bg_Menkuri_Nisekabe_reloc.o" +endseg + +beginseg + name "ovl_En_Zo" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/z_en_zo.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zo/ovl_En_Zo_reloc.o" +endseg + +beginseg + name "ovl_Effect_Ss_Ice_Smoke" + compress + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/z_eff_ss_ice_smoke.o" + include "$(BUILD_DIR)/src/overlays/effects/ovl_Effect_Ss_Ice_Smoke/ovl_Effect_Ss_Ice_Smoke_reloc.o" +endseg + +beginseg + name "ovl_Obj_Makekinsuta" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Makekinsuta/ovl_Obj_Makekinsuta_reloc.o" +endseg + +beginseg + name "ovl_En_Ge3" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/z_en_ge3.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Ge3/ovl_En_Ge3_reloc.o" +endseg + +beginseg + name "ovl_Obj_Timeblock" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/z_obj_timeblock.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Timeblock/ovl_Obj_Timeblock_reloc.o" +endseg + +beginseg + name "ovl_Obj_Hamishi" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/z_obj_hamishi.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Hamishi/ovl_Obj_Hamishi_reloc.o" +endseg + +beginseg + name "ovl_En_Zl4" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/z_en_zl4.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Zl4/ovl_En_Zl4_reloc.o" +endseg + +beginseg + name "ovl_En_Mm2" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/z_en_mm2.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_En_Mm2/ovl_En_Mm2_reloc.o" +endseg + +beginseg + name "ovl_Bg_Jya_Block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/z_bg_jya_block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Bg_Jya_Block/ovl_Bg_Jya_Block_reloc.o" +endseg + +beginseg + name "ovl_Obj_Warp2block" + compress + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.o" + include "$(BUILD_DIR)/src/overlays/actors/ovl_Obj_Warp2block/ovl_Obj_Warp2block_reloc.o" +endseg diff --git a/spec_includes/scenes_gc_ique.inc b/spec_includes/scenes_gc_ique.inc new file mode 100644 index 0000000000..6b1b42b05a --- /dev/null +++ b/spec_includes/scenes_gc_ique.inc @@ -0,0 +1,4079 @@ +beginseg + name "ydan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_scene.o" + number 2 +endseg + +beginseg + name "ydan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_0.o" + number 3 +endseg + +beginseg + name "ydan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_1.o" + number 3 +endseg + +beginseg + name "ydan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_2.o" + number 3 +endseg + +beginseg + name "ydan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_3.o" + number 3 +endseg + +beginseg + name "ydan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_4.o" + number 3 +endseg + +beginseg + name "ydan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_5.o" + number 3 +endseg + +beginseg + name "ydan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_6.o" + number 3 +endseg + +beginseg + name "ydan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_7.o" + number 3 +endseg + +beginseg + name "ydan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_8.o" + number 3 +endseg + +beginseg + name "ydan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_9.o" + number 3 +endseg + +beginseg + name "ydan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_10.o" + number 3 +endseg + +beginseg + name "ydan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_11.o" + number 3 +endseg + +beginseg + name "ddan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_scene.o" + number 2 +endseg + +beginseg + name "ddan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_0.o" + number 3 +endseg + +beginseg + name "ddan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_1.o" + number 3 +endseg + +beginseg + name "ddan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_2.o" + number 3 +endseg + +beginseg + name "ddan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_3.o" + number 3 +endseg + +beginseg + name "ddan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_4.o" + number 3 +endseg + +beginseg + name "ddan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_5.o" + number 3 +endseg + +beginseg + name "ddan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_6.o" + number 3 +endseg + +beginseg + name "ddan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_7.o" + number 3 +endseg + +beginseg + name "ddan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_8.o" + number 3 +endseg + +beginseg + name "ddan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_9.o" + number 3 +endseg + +beginseg + name "ddan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_10.o" + number 3 +endseg + +beginseg + name "ddan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_11.o" + number 3 +endseg + +beginseg + name "ddan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_12.o" + number 3 +endseg + +beginseg + name "ddan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_13.o" + number 3 +endseg + +beginseg + name "ddan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_14.o" + number 3 +endseg + +beginseg + name "ddan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_15.o" + number 3 +endseg + +beginseg + name "ddan_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_16.o" + number 3 +endseg + +beginseg + name "bdan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_scene.o" + number 2 +endseg + +beginseg + name "bdan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_0.o" + number 3 +endseg + +beginseg + name "bdan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_1.o" + number 3 +endseg + +beginseg + name "bdan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_2.o" + number 3 +endseg + +beginseg + name "bdan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_3.o" + number 3 +endseg + +beginseg + name "bdan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_4.o" + number 3 +endseg + +beginseg + name "bdan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_5.o" + number 3 +endseg + +beginseg + name "bdan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_6.o" + number 3 +endseg + +beginseg + name "bdan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_7.o" + number 3 +endseg + +beginseg + name "bdan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_8.o" + number 3 +endseg + +beginseg + name "bdan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_9.o" + number 3 +endseg + +beginseg + name "bdan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_10.o" + number 3 +endseg + +beginseg + name "bdan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_11.o" + number 3 +endseg + +beginseg + name "bdan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_12.o" + number 3 +endseg + +beginseg + name "bdan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_13.o" + number 3 +endseg + +beginseg + name "bdan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_14.o" + number 3 +endseg + +beginseg + name "bdan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_15.o" + number 3 +endseg + +beginseg + name "Bmori1_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_scene.o" + number 2 +endseg + +beginseg + name "Bmori1_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_0.o" + number 3 +endseg + +beginseg + name "Bmori1_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_1.o" + number 3 +endseg + +beginseg + name "Bmori1_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_2.o" + number 3 +endseg + +beginseg + name "Bmori1_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_3.o" + number 3 +endseg + +beginseg + name "Bmori1_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_4.o" + number 3 +endseg + +beginseg + name "Bmori1_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_5.o" + number 3 +endseg + +beginseg + name "Bmori1_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_6.o" + number 3 +endseg + +beginseg + name "Bmori1_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_7.o" + number 3 +endseg + +beginseg + name "Bmori1_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_8.o" + number 3 +endseg + +beginseg + name "Bmori1_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_9.o" + number 3 +endseg + +beginseg + name "Bmori1_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_10.o" + number 3 +endseg + +beginseg + name "Bmori1_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_11.o" + number 3 +endseg + +beginseg + name "Bmori1_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_12.o" + number 3 +endseg + +beginseg + name "Bmori1_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_13.o" + number 3 +endseg + +beginseg + name "Bmori1_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_14.o" + number 3 +endseg + +beginseg + name "Bmori1_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_15.o" + number 3 +endseg + +beginseg + name "Bmori1_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_16.o" + number 3 +endseg + +beginseg + name "Bmori1_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_17.o" + number 3 +endseg + +beginseg + name "Bmori1_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_18.o" + number 3 +endseg + +beginseg + name "Bmori1_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_19.o" + number 3 +endseg + +beginseg + name "Bmori1_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_20.o" + number 3 +endseg + +beginseg + name "Bmori1_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_21.o" + number 3 +endseg + +beginseg + name "Bmori1_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_22.o" + number 3 +endseg + +beginseg + name "HIDAN_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_scene.o" + number 2 +endseg + +beginseg + name "HIDAN_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_0.o" + number 3 +endseg + +beginseg + name "HIDAN_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_1.o" + number 3 +endseg + +beginseg + name "HIDAN_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_2.o" + number 3 +endseg + +beginseg + name "HIDAN_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_3.o" + number 3 +endseg + +beginseg + name "HIDAN_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_4.o" + number 3 +endseg + +beginseg + name "HIDAN_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_5.o" + number 3 +endseg + +beginseg + name "HIDAN_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_6.o" + number 3 +endseg + +beginseg + name "HIDAN_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_7.o" + number 3 +endseg + +beginseg + name "HIDAN_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_8.o" + number 3 +endseg + +beginseg + name "HIDAN_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_9.o" + number 3 +endseg + +beginseg + name "HIDAN_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_10.o" + number 3 +endseg + +beginseg + name "HIDAN_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_11.o" + number 3 +endseg + +beginseg + name "HIDAN_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_12.o" + number 3 +endseg + +beginseg + name "HIDAN_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_13.o" + number 3 +endseg + +beginseg + name "HIDAN_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_14.o" + number 3 +endseg + +beginseg + name "HIDAN_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_15.o" + number 3 +endseg + +beginseg + name "HIDAN_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_16.o" + number 3 +endseg + +beginseg + name "HIDAN_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_17.o" + number 3 +endseg + +beginseg + name "HIDAN_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_18.o" + number 3 +endseg + +beginseg + name "HIDAN_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_19.o" + number 3 +endseg + +beginseg + name "HIDAN_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_20.o" + number 3 +endseg + +beginseg + name "HIDAN_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_21.o" + number 3 +endseg + +beginseg + name "HIDAN_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_22.o" + number 3 +endseg + +beginseg + name "HIDAN_room_23" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_23.o" + number 3 +endseg + +beginseg + name "HIDAN_room_24" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_24.o" + number 3 +endseg + +beginseg + name "HIDAN_room_25" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_25.o" + number 3 +endseg + +beginseg + name "HIDAN_room_26" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_26.o" + number 3 +endseg + +beginseg + name "MIZUsin_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_scene.o" + number 2 +endseg + +beginseg + name "MIZUsin_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_0.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_1.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_2.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_3.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_4.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_5.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_6.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_7.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_8.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_9.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_10.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_11.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_12.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_13.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_14.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_15.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_16.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_17.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_18.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_19.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_20.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_21.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_22.o" + number 3 +endseg + +beginseg + name "jyasinzou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_scene.o" + number 2 +endseg + +beginseg + name "jyasinzou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_0.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_1.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_2.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_3.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_4.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_5.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_6.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_7.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_8.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_9.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_10.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_11.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_12.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_13.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_14.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_15.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_16.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_17.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_18.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_19.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_20.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_21.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_22.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_23" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_23.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_24" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_24.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_25" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_25.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_26" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_26.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_27" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_27.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_28" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_28.o" + number 3 +endseg + +beginseg + name "HAKAdan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_scene.o" + number 2 +endseg + +beginseg + name "HAKAdan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_2.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_3.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_4.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_5.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_6.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_7.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_8.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_9.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_10.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_11.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_12.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_13.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_14.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_15.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_16.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_17.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_18.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_19.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_20.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_21.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_22.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_scene.o" + number 2 +endseg + +beginseg + name "HAKAdanCH_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_2.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_3.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_4.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_5.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_6.o" + number 3 +endseg + +beginseg + name "ice_doukutu_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.o" + number 2 +endseg + +beginseg + name "ice_doukutu_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_0.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_1.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_2.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_3.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_4.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_5.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_6.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_7.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_8.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_9.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_10.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_11.o" + number 3 +endseg + +beginseg + name "men_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_scene.o" + number 2 +endseg + +beginseg + name "men_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_0.o" + number 3 +endseg + +beginseg + name "men_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_1.o" + number 3 +endseg + +beginseg + name "men_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_2.o" + number 3 +endseg + +beginseg + name "men_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_3.o" + number 3 +endseg + +beginseg + name "men_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_4.o" + number 3 +endseg + +beginseg + name "men_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_5.o" + number 3 +endseg + +beginseg + name "men_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_6.o" + number 3 +endseg + +beginseg + name "men_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_7.o" + number 3 +endseg + +beginseg + name "men_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_8.o" + number 3 +endseg + +beginseg + name "men_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_9.o" + number 3 +endseg + +beginseg + name "men_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_10.o" + number 3 +endseg + +beginseg + name "ganontika_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_scene.o" + number 2 +endseg + +beginseg + name "ganontika_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_0.o" + number 3 +endseg + +beginseg + name "ganontika_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_1.o" + number 3 +endseg + +beginseg + name "ganontika_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_2.o" + number 3 +endseg + +beginseg + name "ganontika_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_3.o" + number 3 +endseg + +beginseg + name "ganontika_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_4.o" + number 3 +endseg + +beginseg + name "ganontika_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_5.o" + number 3 +endseg + +beginseg + name "ganontika_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_6.o" + number 3 +endseg + +beginseg + name "ganontika_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_7.o" + number 3 +endseg + +beginseg + name "ganontika_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_8.o" + number 3 +endseg + +beginseg + name "ganontika_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_9.o" + number 3 +endseg + +beginseg + name "ganontika_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_10.o" + number 3 +endseg + +beginseg + name "ganontika_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_11.o" + number 3 +endseg + +beginseg + name "ganontika_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_12.o" + number 3 +endseg + +beginseg + name "ganontika_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_13.o" + number 3 +endseg + +beginseg + name "ganontika_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_14.o" + number 3 +endseg + +beginseg + name "ganontika_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_15.o" + number 3 +endseg + +beginseg + name "ganontika_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_16.o" + number 3 +endseg + +beginseg + name "ganontika_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_17.o" + number 3 +endseg + +beginseg + name "ganontika_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_18.o" + number 3 +endseg + +beginseg + name "ganontika_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_19.o" + number 3 +endseg + +#if DEBUG_ASSETS +beginseg + name "syotes_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/syotes/syotes_scene.o" + number 2 +endseg + +beginseg + name "syotes_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/syotes/syotes_room_0.o" + number 3 +endseg + +beginseg + name "syotes2_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/syotes2/syotes2_scene.o" + number 2 +endseg + +beginseg + name "syotes2_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/syotes2/syotes2_room_0.o" + number 3 +endseg + +beginseg + name "depth_test_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/depth_test/depth_test_scene.o" + number 2 +endseg + +beginseg + name "depth_test_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/depth_test/depth_test_room_0.o" + number 3 +endseg +#endif + +beginseg + name "spot00_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_scene.o" + number 2 +endseg + +beginseg + name "spot00_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_room_0.o" + number 3 +endseg + +beginseg + name "spot01_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_scene.o" + number 2 +endseg + +beginseg + name "spot01_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_room_0.o" + number 3 +endseg + +beginseg + name "spot02_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_scene.o" + number 2 +endseg + +beginseg + name "spot02_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_0.o" + number 3 +endseg + +beginseg + name "spot02_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_1.o" + number 3 +endseg + +beginseg + name "spot03_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_scene.o" + number 2 +endseg + +beginseg + name "spot03_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_0.o" + number 3 +endseg + +beginseg + name "spot03_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_1.o" + number 3 +endseg + +beginseg + name "spot04_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_scene.o" + number 2 +endseg + +beginseg + name "spot04_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_0.o" + number 3 +endseg + +beginseg + name "spot04_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_1.o" + number 3 +endseg + +beginseg + name "spot04_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_2.o" + number 3 +endseg + +beginseg + name "spot05_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_scene.o" + number 2 +endseg + +beginseg + name "spot05_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_room_0.o" + number 3 +endseg + +beginseg + name "spot06_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_scene.o" + number 2 +endseg + +beginseg + name "spot06_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_room_0.o" + number 3 +endseg + +beginseg + name "spot07_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_scene.o" + number 2 +endseg + +beginseg + name "spot07_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_0.o" + number 3 +endseg + +beginseg + name "spot07_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_1.o" + number 3 +endseg + +beginseg + name "spot08_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_scene.o" + number 2 +endseg + +beginseg + name "spot08_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_room_0.o" + number 3 +endseg + +beginseg + name "spot09_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_scene.o" + number 2 +endseg + +beginseg + name "spot09_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_room_0.o" + number 3 +endseg + +beginseg + name "spot10_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_scene.o" + number 2 +endseg + +beginseg + name "spot10_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_0.o" + number 3 +endseg + +beginseg + name "spot10_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_1.o" + number 3 +endseg + +beginseg + name "spot10_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_2.o" + number 3 +endseg + +beginseg + name "spot10_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_3.o" + number 3 +endseg + +beginseg + name "spot10_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_4.o" + number 3 +endseg + +beginseg + name "spot10_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_5.o" + number 3 +endseg + +beginseg + name "spot10_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_6.o" + number 3 +endseg + +beginseg + name "spot10_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_7.o" + number 3 +endseg + +beginseg + name "spot10_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_8.o" + number 3 +endseg + +beginseg + name "spot10_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_9.o" + number 3 +endseg + +beginseg + name "spot11_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_scene.o" + number 2 +endseg + +beginseg + name "spot11_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_room_0.o" + number 3 +endseg + +beginseg + name "spot12_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_scene.o" + number 2 +endseg + +beginseg + name "spot12_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_0.o" + number 3 +endseg + +beginseg + name "spot12_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_1.o" + number 3 +endseg + +beginseg + name "spot13_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_scene.o" + number 2 +endseg + +beginseg + name "spot13_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_0.o" + number 3 +endseg + +beginseg + name "spot13_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_1.o" + number 3 +endseg + +beginseg + name "spot15_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_scene.o" + number 2 +endseg + +beginseg + name "spot15_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_room_0.o" + number 3 +endseg + +beginseg + name "spot16_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_scene.o" + number 2 +endseg + +beginseg + name "spot16_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_room_0.o" + number 3 +endseg + +beginseg + name "spot17_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_scene.o" + number 2 +endseg + +beginseg + name "spot17_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_0.o" + number 3 +endseg + +beginseg + name "spot17_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_1.o" + number 3 +endseg + +beginseg + name "spot18_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_scene.o" + number 2 +endseg + +beginseg + name "spot18_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_0.o" + number 3 +endseg + +beginseg + name "spot18_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_1.o" + number 3 +endseg + +beginseg + name "spot18_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_2.o" + number 3 +endseg + +beginseg + name "spot18_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_3.o" + number 3 +endseg + +beginseg + name "market_day_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_scene.o" + number 2 +endseg + +beginseg + name "market_day_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_room_0.o" + number 3 +endseg + +beginseg + name "market_night_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_scene.o" + number 2 +endseg + +beginseg + name "market_night_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_room_0.o" + number 3 +endseg + +#if DEBUG_ASSETS +beginseg + name "testroom_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_scene.o" + number 2 +endseg + +beginseg + name "testroom_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_0.o" + number 3 +endseg + +beginseg + name "testroom_room_1" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_1.o" + number 3 +endseg + +beginseg + name "testroom_room_2" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_2.o" + number 3 +endseg + +beginseg + name "testroom_room_3" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_3.o" + number 3 +endseg + +beginseg + name "testroom_room_4" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/testroom/testroom_room_4.o" + number 3 +endseg +#endif + +beginseg + name "kenjyanoma_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_scene.o" + number 2 +endseg + +beginseg + name "kenjyanoma_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_room_0.o" + number 3 +endseg + +beginseg + name "tokinoma_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_scene.o" + number 2 +endseg + +beginseg + name "tokinoma_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_0.o" + number 3 +endseg + +beginseg + name "tokinoma_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_1.o" + number 3 +endseg + +#if DEBUG_ASSETS +beginseg + name "sutaru_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/sutaru/sutaru_scene.o" + number 2 +endseg + +beginseg + name "sutaru_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/sutaru/sutaru_room_0.o" + number 3 +endseg +#endif + +beginseg + name "link_home_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_scene.o" + number 2 +endseg + +beginseg + name "link_home_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_scene.o" + number 2 +endseg + +beginseg + name "kokiri_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_home_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_room_0.o" + number 3 +endseg + +beginseg + name "kakusiana_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_scene.o" + number 2 +endseg + +beginseg + name "kakusiana_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_0.o" + number 3 +endseg + +beginseg + name "kakusiana_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_1.o" + number 3 +endseg + +beginseg + name "kakusiana_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_2.o" + number 3 +endseg + +beginseg + name "kakusiana_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_3.o" + number 3 +endseg + +beginseg + name "kakusiana_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_4.o" + number 3 +endseg + +beginseg + name "kakusiana_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_5.o" + number 3 +endseg + +beginseg + name "kakusiana_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_6.o" + number 3 +endseg + +beginseg + name "kakusiana_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_7.o" + number 3 +endseg + +beginseg + name "kakusiana_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_8.o" + number 3 +endseg + +beginseg + name "kakusiana_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_9.o" + number 3 +endseg + +beginseg + name "kakusiana_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_10.o" + number 3 +endseg + +beginseg + name "kakusiana_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_11.o" + number 3 +endseg + +beginseg + name "kakusiana_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_12.o" + number 3 +endseg + +beginseg + name "kakusiana_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_13.o" + number 3 +endseg + +beginseg + name "entra_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_scene.o" + number 2 +endseg + +beginseg + name "entra_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_room_0.o" + number 3 +endseg + +beginseg + name "moribossroom_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_scene.o" + number 2 +endseg + +beginseg + name "moribossroom_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_0.o" + number 3 +endseg + +beginseg + name "moribossroom_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_1.o" + number 3 +endseg + +beginseg + name "syatekijyou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_scene.o" + number 2 +endseg + +beginseg + name "syatekijyou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_room_0.o" + number 3 +endseg + +beginseg + name "shop1_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_scene.o" + number 2 +endseg + +beginseg + name "shop1_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_room_0.o" + number 3 +endseg + +beginseg + name "hairal_niwa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_scene.o" + number 2 +endseg + +beginseg + name "hairal_niwa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_room_0.o" + number 3 +endseg + +beginseg + name "ganon_tou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_scene.o" + number 2 +endseg + +beginseg + name "ganon_tou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_room_0.o" + number 3 +endseg + +#if DEBUG_ASSETS +beginseg + name "sasatest_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/sasatest/sasatest_scene.o" + number 2 +endseg + +beginseg + name "sasatest_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/sasatest/sasatest_room_0.o" + number 3 +endseg +#endif + +beginseg + name "market_alley_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_scene.o" + number 2 +endseg + +beginseg + name "market_alley_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_room_0.o" + number 3 +endseg + +beginseg + name "spot20_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_scene.o" + number 2 +endseg + +beginseg + name "spot20_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_room_0.o" + number 3 +endseg + +beginseg + name "market_ruins_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_scene.o" + number 2 +endseg + +beginseg + name "market_ruins_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_room_0.o" + number 3 +endseg + +beginseg + name "entra_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_scene.o" + number 2 +endseg + +beginseg + name "entra_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_room_0.o" + number 3 +endseg + +beginseg + name "enrui_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_scene.o" + number 2 +endseg + +beginseg + name "enrui_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_room_0.o" + number 3 +endseg + +beginseg + name "market_alley_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_scene.o" + number 2 +endseg + +beginseg + name "market_alley_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_room_0.o" + number 3 +endseg + +beginseg + name "hiral_demo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_scene.o" + number 2 +endseg + +beginseg + name "hiral_demo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_home3_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home3_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_room_0.o" + number 3 +endseg + +beginseg + name "malon_stable_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_scene.o" + number 2 +endseg + +beginseg + name "malon_stable_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_room_0.o" + number 3 +endseg + +beginseg + name "kakariko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_scene.o" + number 2 +endseg + +beginseg + name "kakariko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_room_0.o" + number 3 +endseg + +beginseg + name "bdan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_scene.o" + number 2 +endseg + +beginseg + name "bdan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_0.o" + number 3 +endseg + +beginseg + name "bdan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_1.o" + number 3 +endseg + +beginseg + name "FIRE_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_scene.o" + number 2 +endseg + +beginseg + name "FIRE_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_0.o" + number 3 +endseg + +beginseg + name "FIRE_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_1.o" + number 3 +endseg + +beginseg + name "hut_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_scene.o" + number 2 +endseg + +beginseg + name "hut_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_room_0.o" + number 3 +endseg + +beginseg + name "daiyousei_izumi_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.o" + number 2 +endseg + +beginseg + name "daiyousei_izumi_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_scene.o" + number 2 +endseg + +beginseg + name "hakaana_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_room_0.o" + number 3 +endseg + +beginseg + name "yousei_izumi_tate_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_scene.o" + number 2 +endseg + +beginseg + name "yousei_izumi_tate_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_room_0.o" + number 3 +endseg + +beginseg + name "yousei_izumi_yoko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.o" + number 2 +endseg + +beginseg + name "yousei_izumi_yoko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_room_0.o" + number 3 +endseg + +beginseg + name "golon_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_scene.o" + number 2 +endseg + +beginseg + name "golon_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_room_0.o" + number 3 +endseg + +beginseg + name "zoora_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_scene.o" + number 2 +endseg + +beginseg + name "zoora_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_room_0.o" + number 3 +endseg + +beginseg + name "drag_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_scene.o" + number 2 +endseg + +beginseg + name "drag_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_room_0.o" + number 3 +endseg + +beginseg + name "alley_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_scene.o" + number 2 +endseg + +beginseg + name "alley_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_room_0.o" + number 3 +endseg + +beginseg + name "night_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_scene.o" + number 2 +endseg + +beginseg + name "night_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_room_0.o" + number 3 +endseg + +beginseg + name "impa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_scene.o" + number 2 +endseg + +beginseg + name "impa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_room_0.o" + number 3 +endseg + +beginseg + name "labo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_scene.o" + number 2 +endseg + +beginseg + name "labo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_room_0.o" + number 3 +endseg + +beginseg + name "tent_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_scene.o" + number 2 +endseg + +beginseg + name "tent_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_room_0.o" + number 3 +endseg + +beginseg + name "nakaniwa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_scene.o" + number 2 +endseg + +beginseg + name "nakaniwa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_room_0.o" + number 3 +endseg + +beginseg + name "ddan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_scene.o" + number 2 +endseg + +beginseg + name "ddan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_0.o" + number 3 +endseg + +beginseg + name "ddan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_1.o" + number 3 +endseg + +beginseg + name "ydan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_scene.o" + number 2 +endseg + +beginseg + name "ydan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_0.o" + number 3 +endseg + +beginseg + name "ydan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdan_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_scene.o" + number 2 +endseg + +beginseg + name "HAKAdan_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdan_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_1.o" + number 3 +endseg + +beginseg + name "MIZUsin_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_scene.o" + number 2 +endseg + +beginseg + name "MIZUsin_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_0.o" + number 3 +endseg + +beginseg + name "MIZUsin_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_1.o" + number 3 +endseg + +beginseg + name "ganon_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_scene.o" + number 2 +endseg + +beginseg + name "ganon_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_0.o" + number 3 +endseg + +beginseg + name "ganon_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_1.o" + number 3 +endseg + +beginseg + name "ganon_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_2.o" + number 3 +endseg + +beginseg + name "ganon_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_3.o" + number 3 +endseg + +beginseg + name "ganon_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_4.o" + number 3 +endseg + +beginseg + name "ganon_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_5.o" + number 3 +endseg + +beginseg + name "ganon_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_6.o" + number 3 +endseg + +beginseg + name "ganon_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_7.o" + number 3 +endseg + +beginseg + name "ganon_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_8.o" + number 3 +endseg + +beginseg + name "ganon_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_9.o" + number 3 +endseg + +beginseg + name "ganon_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_scene.o" + number 2 +endseg + +beginseg + name "ganon_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_room_0.o" + number 3 +endseg + +beginseg + name "jyasinboss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_scene.o" + number 2 +endseg + +beginseg + name "jyasinboss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_0.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_1.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_2.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_3.o" + number 3 +endseg + +beginseg + name "kokiri_home4_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home4_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_home5_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home5_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_room_0.o" + number 3 +endseg + +beginseg + name "ganon_final_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_scene.o" + number 2 +endseg + +beginseg + name "ganon_final_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_room_0.o" + number 3 +endseg + +beginseg + name "kakariko3_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_scene.o" + number 2 +endseg + +beginseg + name "kakariko3_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_room_0.o" + number 3 +endseg + +#if DEBUG_ASSETS +beginseg + name "hairal_niwa2_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa2/hairal_niwa2_scene.o" + number 2 +endseg + +beginseg + name "hairal_niwa2_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa2/hairal_niwa2_room_0.o" + number 3 +endseg +#endif + +beginseg + name "hakasitarelay_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_scene.o" + number 2 +endseg + +beginseg + name "hakasitarelay_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_0.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_1.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_2.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_3.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_4.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_5.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_6.o" + number 3 +endseg + +beginseg + name "shrine_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_scene.o" + number 2 +endseg + +beginseg + name "shrine_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_room_0.o" + number 3 +endseg + +beginseg + name "turibori_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_scene.o" + number 2 +endseg + +beginseg + name "turibori_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_room_0.o" + number 3 +endseg + +beginseg + name "shrine_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_scene.o" + number 2 +endseg + +beginseg + name "shrine_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_room_0.o" + number 3 +endseg + +beginseg + name "shrine_r_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_scene.o" + number 2 +endseg + +beginseg + name "shrine_r_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_room_0.o" + number 3 +endseg + +beginseg + name "hakaana2_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_scene.o" + number 2 +endseg + +beginseg + name "hakaana2_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_room_0.o" + number 3 +endseg + +beginseg + name "gerudoway_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_scene.o" + number 2 +endseg + +beginseg + name "gerudoway_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_0.o" + number 3 +endseg + +beginseg + name "gerudoway_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_1.o" + number 3 +endseg + +beginseg + name "gerudoway_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_2.o" + number 3 +endseg + +beginseg + name "gerudoway_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_3.o" + number 3 +endseg + +beginseg + name "gerudoway_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_4.o" + number 3 +endseg + +beginseg + name "gerudoway_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_5.o" + number 3 +endseg + +beginseg + name "hairal_niwa_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_scene.o" + number 2 +endseg + +beginseg + name "hairal_niwa_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_room_0.o" + number 3 +endseg + +beginseg + name "bowling_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_scene.o" + number 2 +endseg + +beginseg + name "bowling_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_scene.o" + number 2 +endseg + +beginseg + name "hakaana_ouke_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_1.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_2.o" + number 3 +endseg + +beginseg + name "hylia_labo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_scene.o" + number 2 +endseg + +beginseg + name "hylia_labo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_room_0.o" + number 3 +endseg + +beginseg + name "souko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_scene.o" + number 2 +endseg + +beginseg + name "souko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_0.o" + number 3 +endseg + +beginseg + name "souko_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_1.o" + number 3 +endseg + +beginseg + name "souko_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_2.o" + number 3 +endseg + +beginseg + name "miharigoya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_scene.o" + number 2 +endseg + +beginseg + name "miharigoya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_room_0.o" + number 3 +endseg + +beginseg + name "mahouya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_scene.o" + number 2 +endseg + +beginseg + name "mahouya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_room_0.o" + number 3 +endseg + +beginseg + name "takaraya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_scene.o" + number 2 +endseg + +beginseg + name "takaraya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_0.o" + number 3 +endseg + +beginseg + name "takaraya_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_1.o" + number 3 +endseg + +beginseg + name "takaraya_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_2.o" + number 3 +endseg + +beginseg + name "takaraya_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_3.o" + number 3 +endseg + +beginseg + name "takaraya_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_4.o" + number 3 +endseg + +beginseg + name "takaraya_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_5.o" + number 3 +endseg + +beginseg + name "takaraya_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_6.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_scene.o" + number 2 +endseg + +beginseg + name "ganon_sonogo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_0.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_1.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_2.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_3.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_4.o" + number 3 +endseg + +beginseg + name "ganon_demo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_scene.o" + number 2 +endseg + +beginseg + name "ganon_demo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_room_0.o" + number 3 +endseg + +#if DEBUG_ASSETS +beginseg + name "besitu_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/besitu/besitu_scene.o" + number 2 +endseg + +beginseg + name "besitu_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/besitu/besitu_room_0.o" + number 3 +endseg +#endif + +beginseg + name "face_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_scene.o" + number 2 +endseg + +beginseg + name "face_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_room_0.o" + number 3 +endseg + +beginseg + name "kinsuta_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_scene.o" + number 2 +endseg + +beginseg + name "kinsuta_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_room_0.o" + number 3 +endseg + +beginseg + name "ganontikasonogo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_scene.o" + number 2 +endseg + +beginseg + name "ganontikasonogo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_0.o" + number 3 +endseg + +beginseg + name "ganontikasonogo_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_1.o" + number 3 +endseg + +#if DEBUG_ASSETS +beginseg + name "test01_scene" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/test01/test01_scene.o" + number 2 +endseg + +beginseg + name "test01_room_0" + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/test_levels/test01/test01_room_0.o" + number 3 +endseg +#endif diff --git a/spec_includes/scenes_n64.inc b/spec_includes/scenes_n64.inc new file mode 100644 index 0000000000..47c82b0bf1 --- /dev/null +++ b/spec_includes/scenes_n64.inc @@ -0,0 +1,3911 @@ +beginseg + name "ddan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_scene.o" + number 2 +endseg + +beginseg + name "ddan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_0.o" + number 3 +endseg + +beginseg + name "ddan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_1.o" + number 3 +endseg + +beginseg + name "ddan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_2.o" + number 3 +endseg + +beginseg + name "ddan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_3.o" + number 3 +endseg + +beginseg + name "ddan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_4.o" + number 3 +endseg + +beginseg + name "ddan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_5.o" + number 3 +endseg + +beginseg + name "ddan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_6.o" + number 3 +endseg + +beginseg + name "ddan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_7.o" + number 3 +endseg + +beginseg + name "ddan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_8.o" + number 3 +endseg + +beginseg + name "ddan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_9.o" + number 3 +endseg + +beginseg + name "ddan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_10.o" + number 3 +endseg + +beginseg + name "ddan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_11.o" + number 3 +endseg + +beginseg + name "ddan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_12.o" + number 3 +endseg + +beginseg + name "ddan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_13.o" + number 3 +endseg + +beginseg + name "ddan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_14.o" + number 3 +endseg + +beginseg + name "ddan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_15.o" + number 3 +endseg + +beginseg + name "ddan_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan/ddan_room_16.o" + number 3 +endseg + +beginseg + name "spot00_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_scene.o" + number 2 +endseg + +beginseg + name "spot00_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot00/spot00_room_0.o" + number 3 +endseg + +beginseg + name "spot01_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_scene.o" + number 2 +endseg + +beginseg + name "spot01_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot01/spot01_room_0.o" + number 3 +endseg + +beginseg + name "spot02_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_scene.o" + number 2 +endseg + +beginseg + name "spot02_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_0.o" + number 3 +endseg + +beginseg + name "spot02_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot02/spot02_room_1.o" + number 3 +endseg + +beginseg + name "spot03_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_scene.o" + number 2 +endseg + +beginseg + name "spot03_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_0.o" + number 3 +endseg + +beginseg + name "spot03_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot03/spot03_room_1.o" + number 3 +endseg + +beginseg + name "spot04_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_scene.o" + number 2 +endseg + +beginseg + name "spot04_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_0.o" + number 3 +endseg + +beginseg + name "spot04_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_1.o" + number 3 +endseg + +beginseg + name "spot04_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot04/spot04_room_2.o" + number 3 +endseg + +beginseg + name "spot05_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_scene.o" + number 2 +endseg + +beginseg + name "spot05_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot05/spot05_room_0.o" + number 3 +endseg + +beginseg + name "spot06_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_scene.o" + number 2 +endseg + +beginseg + name "spot06_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot06/spot06_room_0.o" + number 3 +endseg + +beginseg + name "spot07_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_scene.o" + number 2 +endseg + +beginseg + name "spot07_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_0.o" + number 3 +endseg + +beginseg + name "spot07_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot07/spot07_room_1.o" + number 3 +endseg + +beginseg + name "spot08_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_scene.o" + number 2 +endseg + +beginseg + name "spot08_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot08/spot08_room_0.o" + number 3 +endseg + +beginseg + name "spot09_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_scene.o" + number 2 +endseg + +beginseg + name "spot09_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot09/spot09_room_0.o" + number 3 +endseg + +beginseg + name "spot10_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_scene.o" + number 2 +endseg + +beginseg + name "spot10_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_0.o" + number 3 +endseg + +beginseg + name "spot10_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_1.o" + number 3 +endseg + +beginseg + name "spot10_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_2.o" + number 3 +endseg + +beginseg + name "spot10_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_3.o" + number 3 +endseg + +beginseg + name "spot10_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_4.o" + number 3 +endseg + +beginseg + name "spot10_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_5.o" + number 3 +endseg + +beginseg + name "spot10_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_6.o" + number 3 +endseg + +beginseg + name "spot10_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_7.o" + number 3 +endseg + +beginseg + name "spot10_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_8.o" + number 3 +endseg + +beginseg + name "spot10_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot10/spot10_room_9.o" + number 3 +endseg + +beginseg + name "spot11_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_scene.o" + number 2 +endseg + +beginseg + name "spot11_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot11/spot11_room_0.o" + number 3 +endseg + +beginseg + name "spot12_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_scene.o" + number 2 +endseg + +beginseg + name "spot12_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_0.o" + number 3 +endseg + +beginseg + name "spot12_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot12/spot12_room_1.o" + number 3 +endseg + +beginseg + name "spot13_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_scene.o" + number 2 +endseg + +beginseg + name "spot13_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_0.o" + number 3 +endseg + +beginseg + name "spot13_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot13/spot13_room_1.o" + number 3 +endseg + +beginseg + name "spot15_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_scene.o" + number 2 +endseg + +beginseg + name "spot15_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot15/spot15_room_0.o" + number 3 +endseg + +beginseg + name "spot16_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_scene.o" + number 2 +endseg + +beginseg + name "spot16_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot16/spot16_room_0.o" + number 3 +endseg + +beginseg + name "spot17_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_scene.o" + number 2 +endseg + +beginseg + name "spot17_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_0.o" + number 3 +endseg + +beginseg + name "spot17_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot17/spot17_room_1.o" + number 3 +endseg + +beginseg + name "spot18_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_scene.o" + number 2 +endseg + +beginseg + name "spot18_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_0.o" + number 3 +endseg + +beginseg + name "spot18_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_1.o" + number 3 +endseg + +beginseg + name "spot18_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_2.o" + number 3 +endseg + +beginseg + name "spot18_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot18/spot18_room_3.o" + number 3 +endseg + +beginseg + name "market_day_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_scene.o" + number 2 +endseg + +beginseg + name "market_day_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_day/market_day_room_0.o" + number 3 +endseg + +beginseg + name "market_night_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_scene.o" + number 2 +endseg + +beginseg + name "market_night_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_night/market_night_room_0.o" + number 3 +endseg + +beginseg + name "HIDAN_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_scene.o" + number 2 +endseg + +beginseg + name "HIDAN_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_0.o" + number 3 +endseg + +beginseg + name "HIDAN_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_1.o" + number 3 +endseg + +beginseg + name "HIDAN_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_2.o" + number 3 +endseg + +beginseg + name "HIDAN_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_3.o" + number 3 +endseg + +beginseg + name "HIDAN_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_4.o" + number 3 +endseg + +beginseg + name "HIDAN_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_5.o" + number 3 +endseg + +beginseg + name "HIDAN_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_6.o" + number 3 +endseg + +beginseg + name "HIDAN_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_7.o" + number 3 +endseg + +beginseg + name "HIDAN_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_8.o" + number 3 +endseg + +beginseg + name "HIDAN_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_9.o" + number 3 +endseg + +beginseg + name "HIDAN_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_10.o" + number 3 +endseg + +beginseg + name "HIDAN_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_11.o" + number 3 +endseg + +beginseg + name "HIDAN_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_12.o" + number 3 +endseg + +beginseg + name "HIDAN_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_13.o" + number 3 +endseg + +beginseg + name "HIDAN_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_14.o" + number 3 +endseg + +beginseg + name "HIDAN_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_15.o" + number 3 +endseg + +beginseg + name "HIDAN_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_16.o" + number 3 +endseg + +beginseg + name "HIDAN_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_17.o" + number 3 +endseg + +beginseg + name "HIDAN_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_18.o" + number 3 +endseg + +beginseg + name "HIDAN_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_19.o" + number 3 +endseg + +beginseg + name "HIDAN_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_20.o" + number 3 +endseg + +beginseg + name "HIDAN_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_21.o" + number 3 +endseg + +beginseg + name "HIDAN_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_22.o" + number 3 +endseg + +beginseg + name "HIDAN_room_23" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_23.o" + number 3 +endseg + +beginseg + name "HIDAN_room_24" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_24.o" + number 3 +endseg + +beginseg + name "HIDAN_room_25" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_25.o" + number 3 +endseg + +beginseg + name "HIDAN_room_26" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HIDAN/HIDAN_room_26.o" + number 3 +endseg + +beginseg + name "Bmori1_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_scene.o" + number 2 +endseg + +beginseg + name "Bmori1_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_0.o" + number 3 +endseg + +beginseg + name "Bmori1_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_1.o" + number 3 +endseg + +beginseg + name "Bmori1_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_2.o" + number 3 +endseg + +beginseg + name "Bmori1_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_3.o" + number 3 +endseg + +beginseg + name "Bmori1_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_4.o" + number 3 +endseg + +beginseg + name "Bmori1_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_5.o" + number 3 +endseg + +beginseg + name "Bmori1_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_6.o" + number 3 +endseg + +beginseg + name "Bmori1_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_7.o" + number 3 +endseg + +beginseg + name "Bmori1_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_8.o" + number 3 +endseg + +beginseg + name "Bmori1_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_9.o" + number 3 +endseg + +beginseg + name "Bmori1_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_10.o" + number 3 +endseg + +beginseg + name "Bmori1_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_11.o" + number 3 +endseg + +beginseg + name "Bmori1_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_12.o" + number 3 +endseg + +beginseg + name "Bmori1_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_13.o" + number 3 +endseg + +beginseg + name "Bmori1_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_14.o" + number 3 +endseg + +beginseg + name "Bmori1_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_15.o" + number 3 +endseg + +beginseg + name "Bmori1_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_16.o" + number 3 +endseg + +beginseg + name "Bmori1_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_17.o" + number 3 +endseg + +beginseg + name "Bmori1_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_18.o" + number 3 +endseg + +beginseg + name "Bmori1_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_19.o" + number 3 +endseg + +beginseg + name "Bmori1_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_20.o" + number 3 +endseg + +beginseg + name "Bmori1_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_21.o" + number 3 +endseg + +beginseg + name "Bmori1_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/Bmori1/Bmori1_room_22.o" + number 3 +endseg + +beginseg + name "ydan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_scene.o" + number 2 +endseg + +beginseg + name "ydan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_0.o" + number 3 +endseg + +beginseg + name "ydan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_1.o" + number 3 +endseg + +beginseg + name "ydan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_2.o" + number 3 +endseg + +beginseg + name "ydan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_3.o" + number 3 +endseg + +beginseg + name "ydan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_4.o" + number 3 +endseg + +beginseg + name "ydan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_5.o" + number 3 +endseg + +beginseg + name "ydan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_6.o" + number 3 +endseg + +beginseg + name "ydan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_7.o" + number 3 +endseg + +beginseg + name "ydan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_8.o" + number 3 +endseg + +beginseg + name "ydan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_9.o" + number 3 +endseg + +beginseg + name "ydan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_10.o" + number 3 +endseg + +beginseg + name "ydan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan/ydan_room_11.o" + number 3 +endseg + +beginseg + name "kenjyanoma_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_scene.o" + number 2 +endseg + +beginseg + name "kenjyanoma_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kenjyanoma/kenjyanoma_room_0.o" + number 3 +endseg + +beginseg + name "tokinoma_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_scene.o" + number 2 +endseg + +beginseg + name "tokinoma_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_0.o" + number 3 +endseg + +beginseg + name "tokinoma_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tokinoma/tokinoma_room_1.o" + number 3 +endseg + +beginseg + name "link_home_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_scene.o" + number 2 +endseg + +beginseg + name "link_home_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/link_home/link_home_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_scene.o" + number 2 +endseg + +beginseg + name "kokiri_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/kokiri_shop/kokiri_shop_room_0.o" + number 3 +endseg + +beginseg + name "MIZUsin_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_scene.o" + number 2 +endseg + +beginseg + name "MIZUsin_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_0.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_1.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_2.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_3.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_4.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_5.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_6.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_7.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_8.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_9.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_10.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_11.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_12.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_13.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_14.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_15.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_16.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_17.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_18.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_19.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_20.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_21.o" + number 3 +endseg + +beginseg + name "MIZUsin_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin/MIZUsin_room_22.o" + number 3 +endseg + +beginseg + name "kokiri_home_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home/kokiri_home_room_0.o" + number 3 +endseg + +beginseg + name "kakusiana_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_scene.o" + number 2 +endseg + +beginseg + name "kakusiana_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_0.o" + number 3 +endseg + +beginseg + name "kakusiana_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_1.o" + number 3 +endseg + +beginseg + name "kakusiana_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_2.o" + number 3 +endseg + +beginseg + name "kakusiana_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_3.o" + number 3 +endseg + +beginseg + name "kakusiana_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_4.o" + number 3 +endseg + +beginseg + name "kakusiana_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_5.o" + number 3 +endseg + +beginseg + name "kakusiana_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_6.o" + number 3 +endseg + +beginseg + name "kakusiana_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_7.o" + number 3 +endseg + +beginseg + name "kakusiana_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_8.o" + number 3 +endseg + +beginseg + name "kakusiana_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_9.o" + number 3 +endseg + +beginseg + name "kakusiana_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_10.o" + number 3 +endseg + +beginseg + name "kakusiana_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_11.o" + number 3 +endseg + +beginseg + name "kakusiana_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_12.o" + number 3 +endseg + +beginseg + name "kakusiana_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakusiana/kakusiana_room_13.o" + number 3 +endseg + +beginseg + name "entra_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_scene.o" + number 2 +endseg + +beginseg + name "entra_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra/entra_room_0.o" + number 3 +endseg + +beginseg + name "bdan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_scene.o" + number 2 +endseg + +beginseg + name "bdan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_0.o" + number 3 +endseg + +beginseg + name "bdan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_1.o" + number 3 +endseg + +beginseg + name "bdan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_2.o" + number 3 +endseg + +beginseg + name "bdan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_3.o" + number 3 +endseg + +beginseg + name "bdan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_4.o" + number 3 +endseg + +beginseg + name "bdan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_5.o" + number 3 +endseg + +beginseg + name "bdan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_6.o" + number 3 +endseg + +beginseg + name "bdan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_7.o" + number 3 +endseg + +beginseg + name "bdan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_8.o" + number 3 +endseg + +beginseg + name "bdan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_9.o" + number 3 +endseg + +beginseg + name "bdan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_10.o" + number 3 +endseg + +beginseg + name "bdan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_11.o" + number 3 +endseg + +beginseg + name "bdan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_12.o" + number 3 +endseg + +beginseg + name "bdan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_13.o" + number 3 +endseg + +beginseg + name "bdan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_14.o" + number 3 +endseg + +beginseg + name "bdan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan/bdan_room_15.o" + number 3 +endseg + +beginseg + name "HAKAdan_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_scene.o" + number 2 +endseg + +beginseg + name "HAKAdan_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_2.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_3.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_4.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_5.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_6.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_7.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_8.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_9.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_10.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_11.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_12.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_13.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_14.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_15.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_16.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_17.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_18.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_19.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_20.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_21.o" + number 3 +endseg + +beginseg + name "HAKAdan_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan/HAKAdan_room_22.o" + number 3 +endseg + +beginseg + name "moribossroom_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_scene.o" + number 2 +endseg + +beginseg + name "moribossroom_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_0.o" + number 3 +endseg + +beginseg + name "moribossroom_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/moribossroom/moribossroom_room_1.o" + number 3 +endseg + +beginseg + name "syatekijyou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_scene.o" + number 2 +endseg + +beginseg + name "syatekijyou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/syatekijyou/syatekijyou_room_0.o" + number 3 +endseg + +beginseg + name "men_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_scene.o" + number 2 +endseg + +beginseg + name "men_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_0.o" + number 3 +endseg + +beginseg + name "men_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_1.o" + number 3 +endseg + +beginseg + name "men_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_2.o" + number 3 +endseg + +beginseg + name "men_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_3.o" + number 3 +endseg + +beginseg + name "men_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_4.o" + number 3 +endseg + +beginseg + name "men_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_5.o" + number 3 +endseg + +beginseg + name "men_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_6.o" + number 3 +endseg + +beginseg + name "men_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_7.o" + number 3 +endseg + +beginseg + name "men_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_8.o" + number 3 +endseg + +beginseg + name "men_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_9.o" + number 3 +endseg + +beginseg + name "men_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/men/men_room_10.o" + number 3 +endseg + +beginseg + name "shop1_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_scene.o" + number 2 +endseg + +beginseg + name "shop1_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/shop1/shop1_room_0.o" + number 3 +endseg + +beginseg + name "hairal_niwa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_scene.o" + number 2 +endseg + +beginseg + name "hairal_niwa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa/hairal_niwa_room_0.o" + number 3 +endseg + +beginseg + name "ganon_tou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_scene.o" + number 2 +endseg + +beginseg + name "ganon_tou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/ganon_tou/ganon_tou_room_0.o" + number 3 +endseg + +beginseg + name "market_alley_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_scene.o" + number 2 +endseg + +beginseg + name "market_alley_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley/market_alley_room_0.o" + number 3 +endseg + +beginseg + name "spot20_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_scene.o" + number 2 +endseg + +beginseg + name "spot20_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/overworld/spot20/spot20_room_0.o" + number 3 +endseg + +beginseg + name "market_ruins_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_scene.o" + number 2 +endseg + +beginseg + name "market_ruins_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_ruins/market_ruins_room_0.o" + number 3 +endseg + +beginseg + name "entra_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_scene.o" + number 2 +endseg + +beginseg + name "entra_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/entra_n/entra_n_room_0.o" + number 3 +endseg + +beginseg + name "enrui_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_scene.o" + number 2 +endseg + +beginseg + name "enrui_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/enrui/enrui_room_0.o" + number 3 +endseg + +beginseg + name "market_alley_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_scene.o" + number 2 +endseg + +beginseg + name "market_alley_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/market_alley_n/market_alley_n_room_0.o" + number 3 +endseg + +beginseg + name "hiral_demo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_scene.o" + number 2 +endseg + +beginseg + name "hiral_demo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hiral_demo/hiral_demo_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_home3_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home3_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home3/kokiri_home3_room_0.o" + number 3 +endseg + +beginseg + name "jyasinzou_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_scene.o" + number 2 +endseg + +beginseg + name "jyasinzou_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_0.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_1.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_2.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_3.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_4.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_5.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_6.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_7.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_8.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_9.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_10.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_11.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_12.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_13.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_14.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_15.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_16.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_17.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_18.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_19.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_20" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_20.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_21" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_21.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_22" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_22.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_23" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_23.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_24" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_24.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_25" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_25.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_26" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_26.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_27" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_27.o" + number 3 +endseg + +beginseg + name "jyasinzou_room_28" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinzou/jyasinzou_room_28.o" + number 3 +endseg + +beginseg + name "ice_doukutu_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_scene.o" + number 2 +endseg + +beginseg + name "ice_doukutu_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_0.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_1.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_2.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_3.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_4.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_5.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_6.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_7.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_8.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_9.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_10.o" + number 3 +endseg + +beginseg + name "ice_doukutu_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ice_doukutu/ice_doukutu_room_11.o" + number 3 +endseg + +beginseg + name "malon_stable_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_scene.o" + number 2 +endseg + +beginseg + name "malon_stable_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/malon_stable/malon_stable_room_0.o" + number 3 +endseg + +beginseg + name "kakariko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_scene.o" + number 2 +endseg + +beginseg + name "kakariko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kakariko/kakariko_room_0.o" + number 3 +endseg + +beginseg + name "bdan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_scene.o" + number 2 +endseg + +beginseg + name "bdan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_0.o" + number 3 +endseg + +beginseg + name "bdan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/bdan_boss/bdan_boss_room_1.o" + number 3 +endseg + +beginseg + name "FIRE_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_scene.o" + number 2 +endseg + +beginseg + name "FIRE_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_0.o" + number 3 +endseg + +beginseg + name "FIRE_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/FIRE_bs/FIRE_bs_room_1.o" + number 3 +endseg + +beginseg + name "hut_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_scene.o" + number 2 +endseg + +beginseg + name "hut_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hut/hut_room_0.o" + number 3 +endseg + +beginseg + name "daiyousei_izumi_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_scene.o" + number 2 +endseg + +beginseg + name "daiyousei_izumi_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/daiyousei_izumi/daiyousei_izumi_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_scene.o" + number 2 +endseg + +beginseg + name "hakaana_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana/hakaana_room_0.o" + number 3 +endseg + +beginseg + name "yousei_izumi_tate_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_scene.o" + number 2 +endseg + +beginseg + name "yousei_izumi_tate_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_tate/yousei_izumi_tate_room_0.o" + number 3 +endseg + +beginseg + name "yousei_izumi_yoko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_scene.o" + number 2 +endseg + +beginseg + name "yousei_izumi_yoko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/yousei_izumi_yoko/yousei_izumi_yoko_room_0.o" + number 3 +endseg + +beginseg + name "golon_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_scene.o" + number 2 +endseg + +beginseg + name "golon_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/golon/golon_room_0.o" + number 3 +endseg + +beginseg + name "zoora_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_scene.o" + number 2 +endseg + +beginseg + name "zoora_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/zoora/zoora_room_0.o" + number 3 +endseg + +beginseg + name "drag_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_scene.o" + number 2 +endseg + +beginseg + name "drag_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/drag/drag_room_0.o" + number 3 +endseg + +beginseg + name "alley_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_scene.o" + number 2 +endseg + +beginseg + name "alley_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/alley_shop/alley_shop_room_0.o" + number 3 +endseg + +beginseg + name "night_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_scene.o" + number 2 +endseg + +beginseg + name "night_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/night_shop/night_shop_room_0.o" + number 3 +endseg + +beginseg + name "impa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_scene.o" + number 2 +endseg + +beginseg + name "impa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/impa/impa_room_0.o" + number 3 +endseg + +beginseg + name "labo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_scene.o" + number 2 +endseg + +beginseg + name "labo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/labo/labo_room_0.o" + number 3 +endseg + +beginseg + name "tent_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_scene.o" + number 2 +endseg + +beginseg + name "tent_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/tent/tent_room_0.o" + number 3 +endseg + +beginseg + name "nakaniwa_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_scene.o" + number 2 +endseg + +beginseg + name "nakaniwa_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/nakaniwa/nakaniwa_room_0.o" + number 3 +endseg + +beginseg + name "ddan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_scene.o" + number 2 +endseg + +beginseg + name "ddan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_0.o" + number 3 +endseg + +beginseg + name "ddan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ddan_boss/ddan_boss_room_1.o" + number 3 +endseg + +beginseg + name "ydan_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_scene.o" + number 2 +endseg + +beginseg + name "ydan_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_0.o" + number 3 +endseg + +beginseg + name "ydan_boss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ydan_boss/ydan_boss_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdan_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_scene.o" + number 2 +endseg + +beginseg + name "HAKAdan_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdan_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdan_bs/HAKAdan_bs_room_1.o" + number 3 +endseg + +beginseg + name "MIZUsin_bs_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_scene.o" + number 2 +endseg + +beginseg + name "MIZUsin_bs_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_0.o" + number 3 +endseg + +beginseg + name "MIZUsin_bs_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/MIZUsin_bs/MIZUsin_bs_room_1.o" + number 3 +endseg + +beginseg + name "ganon_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_scene.o" + number 2 +endseg + +beginseg + name "ganon_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_0.o" + number 3 +endseg + +beginseg + name "ganon_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_1.o" + number 3 +endseg + +beginseg + name "ganon_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_2.o" + number 3 +endseg + +beginseg + name "ganon_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_3.o" + number 3 +endseg + +beginseg + name "ganon_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_4.o" + number 3 +endseg + +beginseg + name "ganon_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_5.o" + number 3 +endseg + +beginseg + name "ganon_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_6.o" + number 3 +endseg + +beginseg + name "ganon_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_7.o" + number 3 +endseg + +beginseg + name "ganon_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_8.o" + number 3 +endseg + +beginseg + name "ganon_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon/ganon_room_9.o" + number 3 +endseg + +beginseg + name "ganon_boss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_scene.o" + number 2 +endseg + +beginseg + name "ganon_boss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_boss/ganon_boss_room_0.o" + number 3 +endseg + +beginseg + name "jyasinboss_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_scene.o" + number 2 +endseg + +beginseg + name "jyasinboss_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_0.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_1.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_2.o" + number 3 +endseg + +beginseg + name "jyasinboss_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/jyasinboss/jyasinboss_room_3.o" + number 3 +endseg + +beginseg + name "kokiri_home4_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home4_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home4/kokiri_home4_room_0.o" + number 3 +endseg + +beginseg + name "kokiri_home5_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_scene.o" + number 2 +endseg + +beginseg + name "kokiri_home5_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/kokiri_home5/kokiri_home5_room_0.o" + number 3 +endseg + +beginseg + name "ganon_final_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_scene.o" + number 2 +endseg + +beginseg + name "ganon_final_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_final/ganon_final_room_0.o" + number 3 +endseg + +beginseg + name "kakariko3_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_scene.o" + number 2 +endseg + +beginseg + name "kakariko3_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kakariko3/kakariko3_room_0.o" + number 3 +endseg + +beginseg + name "hakasitarelay_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_scene.o" + number 2 +endseg + +beginseg + name "hakasitarelay_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_0.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_1.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_2.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_3.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_4.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_5.o" + number 3 +endseg + +beginseg + name "hakasitarelay_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hakasitarelay/hakasitarelay_room_6.o" + number 3 +endseg + +beginseg + name "shrine_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_scene.o" + number 2 +endseg + +beginseg + name "shrine_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine/shrine_room_0.o" + number 3 +endseg + +beginseg + name "turibori_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_scene.o" + number 2 +endseg + +beginseg + name "turibori_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/turibori/turibori_room_0.o" + number 3 +endseg + +beginseg + name "shrine_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_scene.o" + number 2 +endseg + +beginseg + name "shrine_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_n/shrine_n_room_0.o" + number 3 +endseg + +beginseg + name "shrine_r_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_scene.o" + number 2 +endseg + +beginseg + name "shrine_r_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/shrine_r/shrine_r_room_0.o" + number 3 +endseg + +beginseg + name "ganontika_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_scene.o" + number 2 +endseg + +beginseg + name "ganontika_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_0.o" + number 3 +endseg + +beginseg + name "ganontika_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_1.o" + number 3 +endseg + +beginseg + name "ganontika_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_2.o" + number 3 +endseg + +beginseg + name "ganontika_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_3.o" + number 3 +endseg + +beginseg + name "ganontika_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_4.o" + number 3 +endseg + +beginseg + name "ganontika_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_5.o" + number 3 +endseg + +beginseg + name "ganontika_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_6.o" + number 3 +endseg + +beginseg + name "ganontika_room_7" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_7.o" + number 3 +endseg + +beginseg + name "ganontika_room_8" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_8.o" + number 3 +endseg + +beginseg + name "ganontika_room_9" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_9.o" + number 3 +endseg + +beginseg + name "ganontika_room_10" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_10.o" + number 3 +endseg + +beginseg + name "ganontika_room_11" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_11.o" + number 3 +endseg + +beginseg + name "ganontika_room_12" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_12.o" + number 3 +endseg + +beginseg + name "ganontika_room_13" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_13.o" + number 3 +endseg + +beginseg + name "ganontika_room_14" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_14.o" + number 3 +endseg + +beginseg + name "ganontika_room_15" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_15.o" + number 3 +endseg + +beginseg + name "ganontika_room_16" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_16.o" + number 3 +endseg + +beginseg + name "ganontika_room_17" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_17.o" + number 3 +endseg + +beginseg + name "ganontika_room_18" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_18.o" + number 3 +endseg + +beginseg + name "ganontika_room_19" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontika/ganontika_room_19.o" + number 3 +endseg + +beginseg + name "hakaana2_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_scene.o" + number 2 +endseg + +beginseg + name "hakaana2_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana2/hakaana2_room_0.o" + number 3 +endseg + +beginseg + name "gerudoway_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_scene.o" + number 2 +endseg + +beginseg + name "gerudoway_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_0.o" + number 3 +endseg + +beginseg + name "gerudoway_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_1.o" + number 3 +endseg + +beginseg + name "gerudoway_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_2.o" + number 3 +endseg + +beginseg + name "gerudoway_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_3.o" + number 3 +endseg + +beginseg + name "gerudoway_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_4.o" + number 3 +endseg + +beginseg + name "gerudoway_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/gerudoway/gerudoway_room_5.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_scene.o" + number 2 +endseg + +beginseg + name "HAKAdanCH_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_0.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_1.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_2.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_3.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_4.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_5.o" + number 3 +endseg + +beginseg + name "HAKAdanCH_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/HAKAdanCH/HAKAdanCH_room_6.o" + number 3 +endseg + +beginseg + name "hairal_niwa_n_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_scene.o" + number 2 +endseg + +beginseg + name "hairal_niwa_n_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hairal_niwa_n/hairal_niwa_n_room_0.o" + number 3 +endseg + +beginseg + name "bowling_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_scene.o" + number 2 +endseg + +beginseg + name "bowling_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/bowling/bowling_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_scene.o" + number 2 +endseg + +beginseg + name "hakaana_ouke_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_0.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_1.o" + number 3 +endseg + +beginseg + name "hakaana_ouke_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/hakaana_ouke/hakaana_ouke_room_2.o" + number 3 +endseg + +beginseg + name "hylia_labo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_scene.o" + number 2 +endseg + +beginseg + name "hylia_labo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/hylia_labo/hylia_labo_room_0.o" + number 3 +endseg + +beginseg + name "souko_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_scene.o" + number 2 +endseg + +beginseg + name "souko_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_0.o" + number 3 +endseg + +beginseg + name "souko_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_1.o" + number 3 +endseg + +beginseg + name "souko_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/souko/souko_room_2.o" + number 3 +endseg + +beginseg + name "miharigoya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_scene.o" + number 2 +endseg + +beginseg + name "miharigoya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/miharigoya/miharigoya_room_0.o" + number 3 +endseg + +beginseg + name "mahouya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_scene.o" + number 2 +endseg + +beginseg + name "mahouya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/mahouya/mahouya_room_0.o" + number 3 +endseg + +beginseg + name "takaraya_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_scene.o" + number 2 +endseg + +beginseg + name "takaraya_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_0.o" + number 3 +endseg + +beginseg + name "takaraya_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_1.o" + number 3 +endseg + +beginseg + name "takaraya_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_2.o" + number 3 +endseg + +beginseg + name "takaraya_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_3.o" + number 3 +endseg + +beginseg + name "takaraya_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_4.o" + number 3 +endseg + +beginseg + name "takaraya_room_5" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_5.o" + number 3 +endseg + +beginseg + name "takaraya_room_6" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/indoors/takaraya/takaraya_room_6.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_scene.o" + number 2 +endseg + +beginseg + name "ganon_sonogo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_0.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_1.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_2" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_2.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_3" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_3.o" + number 3 +endseg + +beginseg + name "ganon_sonogo_room_4" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_sonogo/ganon_sonogo_room_4.o" + number 3 +endseg + +beginseg + name "ganon_demo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_scene.o" + number 2 +endseg + +beginseg + name "ganon_demo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganon_demo/ganon_demo_room_0.o" + number 3 +endseg + +beginseg + name "face_shop_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_scene.o" + number 2 +endseg + +beginseg + name "face_shop_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/shops/face_shop/face_shop_room_0.o" + number 3 +endseg + +beginseg + name "kinsuta_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_scene.o" + number 2 +endseg + +beginseg + name "kinsuta_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/misc/kinsuta/kinsuta_room_0.o" + number 3 +endseg + +beginseg + name "ganontikasonogo_scene" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_scene.o" + number 2 +endseg + +beginseg + name "ganontikasonogo_room_0" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_0.o" + number 3 +endseg + +beginseg + name "ganontikasonogo_room_1" + compress + romalign 0x1000 + include "$(BUILD_DIR)/assets/scenes/dungeons/ganontikasonogo/ganontikasonogo_room_1.o" + number 3 +endseg diff --git a/src/boot/driverominit.c b/src/boot/driverominit.c index 7d1441cdd9..5ed69abe07 100644 --- a/src/boot/driverominit.c +++ b/src/boot/driverominit.c @@ -3,7 +3,14 @@ OSPiHandle __DriveRomHandle; OSPiHandle* osDriveRomInit(void) { +#if PLATFORM_IQUE && defined(NON_MATCHING) + // On iQue, the compiled output of this file is patched so that the + // `!first` check is always taken. For non-matching builds, we edit the + // source code instead. + static u32 first = false; +#else static u32 first = true; +#endif register s32 status; register u32 value; register u32 prevInt; diff --git a/src/boot/idle.c b/src/boot/idle.c index ce1eaa9b5c..508fd16c4e 100644 --- a/src/boot/idle.c +++ b/src/boot/idle.c @@ -57,7 +57,7 @@ void Idle_ThreadEntry(void* arg) { PRINTF(T("作製者 : %s\n", "Created by: %s\n"), gBuildCreator); PRINTF(T("作成日時 : %s\n", "Created : %s\n"), gBuildDate); PRINTF("MAKEOPTION: %s\n", gBuildMakeOption); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("RAMサイズは %d キロバイトです(osMemSize/osGetMemSize)\n", "RAM size is %d kilobytes (osMemSize/osGetMemSize)\n"), (s32)osMemSize / 1024); @@ -70,7 +70,7 @@ void Idle_ThreadEntry(void* arg) { PRINTF(T("YIELDバッファのサイズは %d キロバイトです\n", "YIELD buffer size is %d kilobytes\n"), 3); PRINTF(T("オーディオヒープのサイズは %d キロバイトです\n", "Audio heap size is %d kilobytes\n"), ((intptr_t)&gAudioHeap[ARRAY_COUNT(gAudioHeap)] - (intptr_t)gAudioHeap) / 1024); - PRINTF(VT_RST); + PRINTF_RST(); osCreateViManager(OS_PRIORITY_VIMGR); diff --git a/src/boot/inflate.c b/src/boot/inflate.c new file mode 100644 index 0000000000..c0467dd38c --- /dev/null +++ b/src/boot/inflate.c @@ -0,0 +1,1003 @@ +/* Not copyrighted 1992 by Mark Adler + version c10p1, 10 January 1993 */ + +/* You can do whatever you like with this source file, though I would + prefer that if you modify it and redistribute it that you include + comments to that effect with your name and the date. Thank you. + [The history has been moved to the file ChangeLog.] + */ + +/* + Inflate deflated (PKZIP's method 8 compressed) data. The compression + method searches for as much of the current string of bytes (up to a + length of 258) in the previous 32K bytes. If it doesn't find any + matches (of at least length 3), it codes the next byte. Otherwise, it + codes the length of the matched string and its distance backwards from + the current position. There is a single Huffman code that codes both + single bytes (called "literals") and match lengths. A second Huffman + code codes the distance information, which follows a length code. Each + length or distance code actually represents a base value and a number + of "extra" (sometimes zero) bits to get to add to the base value. At + the end of each deflated block is a special end-of-block (EOB) literal/ + length code. The decoding process is basically: get a literal/length + code; if EOB then done; if a literal, emit the decoded byte; if a + length then get the distance and emit the referred-to bytes from the + sliding window of previously emitted data. + + There are (currently) three kinds of inflate blocks: stored, fixed, and + dynamic. The compressor deals with some chunk of data at a time, and + decides which method to use on a chunk-by-chunk basis. A chunk might + typically be 32K or 64K. If the chunk is uncompressible, then the + "stored" method is used. In this case, the bytes are simply stored as + is, eight bits per byte, with none of the above coding. The bytes are + preceded by a count, since there is no longer an EOB code. + + If the data is compressible, then either the fixed or dynamic methods + are used. In the dynamic method, the compressed data is preceded by + an encoding of the literal/length and distance Huffman codes that are + to be used to decode this block. The representation is itself Huffman + coded, and so is preceded by a description of that code. These code + descriptions take up a little space, and so for small blocks, there is + a predefined set of codes, called the fixed codes. The fixed method is + used if the block codes up smaller that way (usually for quite small + chunks), otherwise the dynamic method is used. In the latter case, the + codes are customized to the probabilities in the current block, and so + can code it much better than the pre-determined fixed codes. + + The Huffman codes themselves are decoded using a multi-level table + lookup, in order to maximize the speed of decoding plus the speed of + building the decoding tables. See the comments below that precede the + lbits and dbits tuning parameters. + */ + +/* + Notes beyond the 1.93a appnote.txt: + + 1. Distance pointers never point before the beginning of the output + stream. + 2. Distance pointers can point back across blocks, up to 32k away. + 3. There is an implied maximum of 7 bits for the bit length table and + 15 bits for the actual data. + 4. If only one code exists, then it is encoded using one bit. (Zero + would be more efficient, but perhaps a little confusing.) If two + codes exist, they are coded using one bit each (0 and 1). + 5. There is no way of sending zero distance codes--a dummy must be + sent if there are none. (History: a pre 2.0 version of PKZIP would + store blocks with no distance codes, but this was discovered to be + too harsh a criterion.) Valid only for 1.93a. 2.04c does allow + zero distance codes, which is sent as one code of zero bits in + length. + 6. There are up to 286 literal/length codes. Code 256 represents the + end-of-block. Note however that the static length tree defines + 288 codes just to fill out the Huffman codes. Codes 286 and 287 + cannot be used though, since there is no length base or extra bits + defined for them. Similarly, there are up to 30 distance codes. + However, static trees define 32 codes (all 5 bits) to fill out the + Huffman codes, but the last two had better not show up in the data. + 7. Unzip can check dynamic Huffman blocks for complete code sets. + The exception is that a single code would not be complete (see #4). + 8. The five bits following the block type is really the number of + literal codes sent minus 257. + 9. Length codes 8,16,16 are interpreted as 13 length codes of 8 bits + (1+6+6). Therefore, to output three times the length, you output + three codes (1+1+1), whereas to output four times the same length, + you only need two codes (1+3). Hmm. + 10. In the tree reconstruction algorithm, Code = Code + Increment + only if BitLength(i) is not zero. (Pretty obvious.) + 11. Correction: 4 Bits: # of Bit Length codes - 4 (4 - 19) + 12. Note: length code 284 can represent 227-258, but length code 285 + really is 258. The last length deserves its own, short code + since it gets used a lot in very redundant files. The length + 258 is special since 258 - 3 (the min match length) is 255. + 13. The literal/length and distance code bit lengths are read as a + single stream of lengths. It is possible (and advantageous) for + a repeat code (16, 17, or 18) to go across the boundary between + the two sets of lengths. + */ + +#include "ultra64/ultratypes.h" +#include "libc/stddef.h" +#include "libc/stdint.h" +#include "alignment.h" +#include "attributes.h" +#include "z64dma.h" + +typedef u8 uch; +typedef u16 ush; +typedef u32 ulg; + +#define Trace(x) +#define Tracev(x) +#define Tracevv(x) +#define Tracecv(c, x) + +#define EOF -1 + +#define WSIZE 0x8000 +#define INBUFSIZ 0x1000 + +typedef struct GzipFileDescriptor { + uintptr_t addr; + s32 size; +} GzipFileDescriptor; + +GzipFileDescriptor ifd; + +unsigned insize; +unsigned inptr; +unsigned outcnt; + +static u8 inbuf[INBUFSIZ]; +static u8* output_ptr; + +int fill_inbuf(int eof_ok); +void flush_window(void); + +/* Huffman code lookup table entry--this entry is four bytes for machines + that have 16-bit pointers (e.g. PC's in the small or medium model). + Valid extra bits are 0..13. e == 15 is EOB (end of block), e == 16 + means that v is a literal, 16 < e < 32 means that v is a pointer to + the next table, which codes e - 16 bits, and lastly e == 99 indicates + an unused code. If a code with e == 99 is looked up, this implies an + error in the data. */ +struct huft { + uch e; /* number of extra bits or operation */ + uch b; /* number of bits in this code or subcode */ + union { + ush n; /* literal, length base, or distance base */ + struct huft* t; /* pointer to next level of table */ + } v; +}; + +/* Function prototypes */ +int huft_free(struct huft*); + +/* The inflate algorithm uses a sliding 32K byte window on the uncompressed + stream to find repeated byte strings. This is implemented here as a + circular buffer. The index is updated simply by incrementing and then + and'ing with 0x7fff (32K-1). */ +/* It is left to other modules to supply the 32K area. It is assumed + to be usable as if it were declared "uch slide[32768];" or as just + "uch *slide;" and then malloc'ed in the latter case. The definition + must be in unzip.h, included above. */ +/* unsigned wp; current position in slide */ +#define wp outcnt +#define flush_output(w) (wp = (w), flush_window()) + +/* Tables for deflate from PKZIP's appnote.txt. */ +static unsigned border[] = { /* Order of the bit length code lengths */ + 16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15 +}; +static ush cplens[] = { /* Copy lengths for literal codes 257..285 */ + 3, 4, 5, 6, 7, 8, 9, 10, 11, 13, 15, 17, 19, 23, 27, 31, + 35, 43, 51, 59, 67, 83, 99, 115, 131, 163, 195, 227, 258, 0, 0 +}; +/* note: see note #13 above about the 258 in this list. */ +static ush cplext[] = { /* Extra bits for literal codes 257..285 */ + 0, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 5, 5, 5, 5, 0, 99, 99 +}; /* 99==invalid */ +static ush cpdist[] = { /* Copy offsets for distance codes 0..29 */ + 1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, + 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577 +}; +static ush cpdext[] = { /* Extra bits for distance codes */ + 0, 0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, 13, 13 +}; + +/* Macros for inflate() bit peeking and grabbing. + The usage is: + + NEEDBITS(j) + x = b & mask_bits[j]; + DUMPBITS(j) + + where NEEDBITS makes sure that b has at least j bits in it, and + DUMPBITS removes the bits from b. The macros use the variable k + for the number of bits in b. Normally, b and k are register + variables for speed, and are initialized at the beginning of a + routine that uses these macros from a global bit buffer and count. + The macros also use the variable w, which is a cached copy of wp. + + If we assume that EOB will be the longest code, then we will never + ask for bits with NEEDBITS that are beyond the end of the stream. + So, NEEDBITS should not read any more bytes than are needed to + meet the request. Then no bytes need to be "returned" to the buffer + at the end of the last block. + + However, this assumption is not true for fixed blocks--the EOB code + is 7 bits, but the other literal/length codes can be 8 or 9 bits. + (The EOB code is shorter than other codes because fixed blocks are + generally short. So, while a block always has an EOB, many other + literal/length codes have a significantly lower probability of + showing up at all.) However, by making the first table have a + lookup of seven bits, the EOB code will be found in that first + lookup, and so will not require that too many bits be pulled from + the stream. + */ + +ulg bb; /* bit buffer */ +unsigned bk; /* bits in bit buffer */ + +static ush mask_bits[] = { 0x0000, 0x0001, 0x0003, 0x0007, 0x000f, 0x001f, 0x003f, 0x007f, 0x00ff, + 0x01ff, 0x03ff, 0x07ff, 0x0fff, 0x1fff, 0x3fff, 0x7fff, 0xffff }; + +#define GETBYTE() (inptr < insize ? inbuf[inptr++] : fill_inbuf(0)) + +#define NEXTBYTE() (uch) GETBYTE() +#define NEEDBITS(n) \ + { \ + while (k < (n)) { \ + b |= ((ulg)NEXTBYTE()) << k; \ + k += 8; \ + } \ + } +#define DUMPBITS(n) \ + { \ + b >>= (n); \ + k -= (n); \ + } + +/* + Huffman code decoding is performed using a multi-level table lookup. + The fastest way to decode is to simply build a lookup table whose + size is determined by the longest code. However, the time it takes + to build this table can also be a factor if the data being decoded + is not very long. The most common codes are necessarily the + shortest codes, so those codes dominate the decoding time, and hence + the speed. The idea is you can have a shorter table that decodes the + shorter, more probable codes, and then point to subsidiary tables for + the longer codes. The time it costs to decode the longer codes is + then traded against the time it takes to make longer tables. + + This results of this trade are in the variables lbits and dbits + below. lbits is the number of bits the first level table for literal/ + length codes can decode in one step, and dbits is the same thing for + the distance codes. Subsequent tables are also less than or equal to + those sizes. These values may be adjusted either when all of the + codes are shorter than that, in which case the longest code length in + bits is used, or when the shortest code is *longer* than the requested + table size, in which case the length of the shortest code in bits is + used. + + There are two different values for the two tables, since they code a + different number of possibilities each. The literal/length table + codes 286 possible values, or in a flat code, a little over eight + bits. The distance table codes 30 possible values, or a little less + than five bits, flat. The optimum values for speed end up being + about one bit more than those, so lbits is 8+1 and dbits is 5+1. + The optimum values may differ though from machine to machine, and + possibly even between compilers. Your mileage may vary. + */ + +static int lbits = 9; /* bits in base literal/length lookup table */ +static int dbits = 6; /* bits in base distance lookup table */ + +/* If BMAX needs to be larger than 16, then h and x[] should be ulg. */ +#define BMAX 16 /* maximum bit length of any code (16 for explode) */ +#define N_MAX 288 /* maximum number of codes in any set */ + +unsigned hufts; /* track memory usage */ + +#define MEMBUFSIZ 0x2000 + +static u8 gzip_mem_buff[MEMBUFSIZ]; +void* gzip_malloc_addr = gzip_mem_buff; +s32 gzip_malloc_tmp = 0; + +void* gzip_malloc(size_t size) { + void* ret; + + gzip_malloc_tmp += size; + if (gzip_malloc_tmp > MEMBUFSIZ) { + return NULL; + } + + ret = gzip_malloc_addr; + gzip_malloc_addr = (void*)(((uintptr_t)gzip_malloc_addr) + size); + return ret; +} + +void gzip_free(void* ptr) { + gzip_malloc_tmp = 0; + gzip_malloc_addr = gzip_mem_buff; +} + +/* Given a list of code lengths and a maximum table size, make a set of + tables to decode that set of codes. Return zero on success, one if + the given code set is incomplete (the tables are still built in this + case), two if the input is invalid (all zero length codes or an + oversubscribed set of lengths), and three if not enough memory. */ +int huft_build(unsigned* b, /* code lengths in bits (all assumed <= BMAX) */ + unsigned n, /* number of codes (assumed <= N_MAX) */ + unsigned s, /* number of simple-valued codes (0..s-1) */ + ush* d, /* list of base values for non-simple codes */ + ush* e, /* list of extra bits for non-simple codes */ + struct huft** t, /* result: starting table */ + int* m /* maximum lookup bits, returns actual */ +) { + unsigned a; /* counter for codes of length k */ + unsigned c[BMAX + 1]; /* bit length count table */ + unsigned f; /* i repeats in table every f entries */ + int g; /* maximum code length */ + int h; /* table level */ + register unsigned i; /* counter, current code */ + register unsigned j; /* counter */ + register int k; /* number of bits in current code */ + int l; /* bits per table (returned in m) */ + register unsigned* p; /* pointer into c[], b[], or v[] */ + register struct huft* q; /* points to current table */ + struct huft r; /* table entry for structure assignment */ + struct huft* u[BMAX]; /* table stack */ + static unsigned v[N_MAX]; /* values in order of bit length */ + register int w; /* bits before this table == (l * h) */ + unsigned x[BMAX + 1]; /* bit offsets, then code stack */ + unsigned* xp; /* pointer into x */ + int y; /* number of dummy codes added */ + unsigned z; /* number of entries in current table */ + + /* Generate counts for each bit length */ + for (j = 0; j < BMAX + 1; j++) { + c[j] = 0; + } + + p = b; + i = n; + do { + Tracecv(*p, (stderr, (n - i >= ' ' && n - i <= '~' ? "%c %d\n" : "0x%x %d\n"), n - i, *p)); + c[*p]++; /* assume all entries <= BMAX */ + p++; /* Can't combine with above line (Solaris bug) */ + } while (--i); + if (c[0] == n) { /* null input--all zero length codes */ + *t = NULL; + *m = 0; + return 0; + } + + /* Find minimum and maximum length, bound *m by those */ + l = *m; + for (j = 1; j <= BMAX; j++) { + if (c[j]) { + break; + } + } + k = j; /* minimum code length */ + if ((unsigned)l < j) { + l = j; + } + for (i = BMAX; i; i--) { + if (c[i]) { + break; + } + } + g = i; /* maximum code length */ + if ((unsigned)l > i) { + l = i; + } + *m = l; + + /* Adjust last length count to fill out codes, if needed */ + for (y = 1 << j; j < i; j++, y <<= 1) { + if ((y -= c[j]) < 0) { + return 2; /* bad input: more codes than bits */ + } + } + if ((y -= c[i]) < 0) { + return 2; + } + c[i] += y; + + /* Generate starting offsets into the value table for each length */ + x[1] = j = 0; + p = c + 1; + xp = x + 2; + while (--i) { /* note that i == g from above */ + *xp++ = (j += *p++); + } + + /* Make a table of values in order of bit lengths */ + p = b; + i = 0; + do { + if ((j = *p++) != 0) { + v[x[j]++] = i; + } + } while (++i < n); + + /* Generate the Huffman codes and for each, make the table entries */ + x[0] = i = 0; /* first Huffman code is zero */ + p = v; /* grab values in bit order */ + h = -1; /* no tables yet--level -1 */ + w = -l; /* bits decoded == (l * h) */ + u[0] = (struct huft*)NULL; /* just to keep compilers happy */ + q = (struct huft*)NULL; /* ditto */ + z = 0; /* ditto */ + + /* go through the bit lengths (k already is bits in shortest code) */ + for (; k <= g; k++) { + a = c[k]; + while (a--) { + /* here i is the Huffman code of length k bits for value *p */ + /* make tables up to required level */ + while (k > w + l) { + h++; + w += l; /* previous table always l bits */ + + /* compute minimum size table less than or equal to l bits */ + z = (z = g - w) > (unsigned)l ? l : z; /* upper limit on table size */ + if ((f = 1 << (j = k - w)) > a + 1) { /* try a k-w bit table */ + /* too few codes for k-w bit table */ + f -= a + 1; /* deduct codes from patterns left */ + xp = c + k; + while (++j < z) { /* try smaller tables up to z bits */ + if ((f <<= 1) <= *++xp) { + break; /* enough codes to use up j bits */ + } + f -= *xp; /* else deduct codes from patterns */ + } + } + z = 1 << j; /* table entries for j-bit table */ + + /* allocate and link in new table */ + if ((q = (struct huft*)gzip_malloc((z + 1) * sizeof(struct huft))) == (struct huft*)NULL) { + if (h) { + huft_free(u[0]); + } + return 3; /* not enough memory */ + } + hufts += z + 1; /* track memory usage */ + *t = q + 1; /* link to list for huft_free() */ + *(t = &(q->v.t)) = (struct huft*)NULL; + u[h] = ++q; /* table starts after link */ + + /* connect to last table, if there is one */ + if (h) { + x[h] = i; /* save pattern for backing up */ + r.b = (uch)l; /* bits to dump before this table */ + r.e = (uch)(16 + j); /* bits in this table */ + r.v.t = q; /* pointer to this table */ + j = i >> (w - l); /* (get around Turbo C bug) */ + u[h - 1][j] = r; /* connect to last table */ + } + } + + /* set up table entry in r */ + r.b = (uch)(k - w); + if (p >= v + n) { + r.e = 99; /* out of values--invalid code */ + } else if (*p < s) { + r.e = (uch)(*p < 256 ? 16 : 15); /* 256 is end-of-block code */ + r.v.n = (ush)(*p); /* simple code is just the value */ + p++; /* one compiler does not like *p++ */ + } else { + r.e = (uch)e[*p - s]; /* non-simple--look up in lists */ + r.v.n = d[*p++ - s]; + } + + /* fill code-like entries with r */ + f = 1 << (k - w); + for (j = i >> w; j < z; j += f) { + q[j] = r; + } + + /* backwards increment the k-bit code i */ + for (j = 1 << (k - 1); i & j; j >>= 1) { + i ^= j; + } + i ^= j; + + /* backup over finished tables */ + while ((i & ((1 << w) - 1)) != x[h]) { + h--; /* don't need to update q */ + w -= l; + } + } + } + + /* Return true (1) if we were given an incomplete table */ + return y != 0 && g != 1; +} + +/* Free the malloc'ed tables T built by huft_build(), which makes a linked + list of the tables it made, with the links in a dummy first entry of + each table. */ +int huft_free(struct huft* t) { + register struct huft *p, *q; + + /* Go through linked list, freeing from the malloced (t[-1]) address. */ + p = t; + while (p != (struct huft*)NULL) { + q = (--p)->v.t; + gzip_free(p); + p = q; + } + return 0; +} + +/* tl, td: literal/length and distance decoder tables */ +/* bl, bd: number of bits decoded by tl[] and td[] */ +/* inflate (decompress) the codes in a deflated (compressed) block. + Return an error code or zero if it all goes ok. */ +int inflate_codes(struct huft* tl, struct huft* td, int bl, int bd) { + register unsigned e; /* table entry flag/number of extra bits */ + unsigned n, d; /* length and index for copy */ + unsigned w; /* current window position */ + struct huft* t; /* pointer to table entry */ + unsigned ml, md; /* masks for bl and bd bits */ + register ulg b; /* bit buffer */ + register unsigned k; /* number of bits in bit buffer */ + unsigned char* p; + + /* make local copies of globals */ + b = bb; /* initialize bit buffer */ + k = bk; + w = wp; /* initialize window position */ + + /* inflate the coded data */ + ml = mask_bits[bl]; /* precompute masks for speed */ + md = mask_bits[bd]; + for (;;) { /* do until end of block */ + NEEDBITS((unsigned)bl) + if ((e = (t = tl + ((unsigned)b & ml))->e) > 16) { + do { + if (e == 99) { + return 1; + } + DUMPBITS(t->b) + e -= 16; + NEEDBITS(e) + } while ((e = (t = t->v.t + ((unsigned)b & mask_bits[e]))->e) > 16); + } + DUMPBITS(t->b) + if (e == 16) { /* then it's a literal */ + *output_ptr++ = (uch)t->v.n; + w++; + if (w == WSIZE) { + flush_output(w); + w = 0; + } + } else { /* it's an EOB or a length */ + /* exit if end of block */ + if (e == 15) { + break; + } + + /* get length of block to copy */ + NEEDBITS(e) + n = t->v.n + ((unsigned)b & mask_bits[e]); + DUMPBITS(e); + + /* decode distance of block to copy */ + NEEDBITS((unsigned)bd) + if ((e = (t = td + ((unsigned)b & md))->e) > 16) { + do { + if (e == 99) { + return 1; + } + DUMPBITS(t->b) + e -= 16; + NEEDBITS(e) + } while ((e = (t = t->v.t + ((unsigned)b & mask_bits[e]))->e) > 16); + } + DUMPBITS(t->b) + NEEDBITS(e) + d = w - t->v.n - ((unsigned)b & mask_bits[e]); + DUMPBITS(e) + Tracevv((stderr, "\\[%d,%d]", w - d, n)); + + /* do the copy */ + p = output_ptr + d - w; + do { + *output_ptr++ = *p++; + w++; + if (w == WSIZE) { + flush_output(w); + w = 0; + } + d++; + n--; + } while (n != 0); + } + } + + /* restore the globals from the locals */ + wp = w; /* restore global window pointer */ + bb = b; /* restore global bit buffer */ + bk = k; + + /* done */ + return 0; +} + +/* "decompress" an inflated type 0 (stored) block. */ +int inflate_stored(void) { + unsigned n; /* number of bytes in block */ + unsigned w; /* current window position */ + register ulg b; /* bit buffer */ + register unsigned k; /* number of bits in bit buffer */ + + /* make local copies of globals */ + b = bb; /* initialize bit buffer */ + k = bk; + w = wp; /* initialize window position */ + + /* go to byte boundary */ + n = k & 7; + DUMPBITS(n); + + /* get the length and its complement */ + NEEDBITS(16) + n = ((unsigned)b & 0xffff); + DUMPBITS(16) + NEEDBITS(16) + if (n != (unsigned)((~b) & 0xffff)) { + return 1; /* error in compressed data */ + } + DUMPBITS(16) + + /* read and output the compressed data */ + while (n--) { + NEEDBITS(8) + *output_ptr++ = (uch)b; + w++; + if (w == WSIZE) { + flush_output(w); + w = 0; + } + DUMPBITS(8) + } + + /* restore the globals from the locals */ + wp = w; /* restore global window pointer */ + bb = b; /* restore global bit buffer */ + bk = k; + return 0; +} + +/* decompress an inflated type 1 (fixed Huffman codes) block. We should + either replace this with a custom decoder, or at least precompute the + Huffman tables. */ +int inflate_fixed(void) { + int i; /* temporary variable */ + struct huft* tl; /* literal/length code table */ + struct huft* td; /* distance code table */ + int bl; /* lookup bits for tl */ + int bd; /* lookup bits for td */ + static unsigned l[288]; /* length list for huft_build */ + + /* set up literal table */ + for (i = 0; i < 144; i++) { + l[i] = 8; + } + for (; i < 256; i++) { + l[i] = 9; + } + for (; i < 280; i++) { + l[i] = 7; + } + for (; i < 288; i++) { /* make a complete, but wrong code set */ + l[i] = 8; + } + bl = 7; + if ((i = huft_build(l, 288, 257, cplens, cplext, &tl, &bl)) != 0) { + return i; + } + + /* set up distance table */ + for (i = 0; i < 30; i++) { /* make an incomplete code set */ + l[i] = 5; + } + bd = 5; + if ((i = huft_build(l, 30, 0, cpdist, cpdext, &td, &bd)) > 1) { + huft_free(tl); + return i; + } + + /* decompress until an end-of-block code */ + if (inflate_codes(tl, td, bl, bd)) { + return 1; + } + + /* free the decoding tables, return */ + huft_free(td); + huft_free(tl); + return 0; +} + +/* decompress an inflated type 2 (dynamic Huffman codes) block. */ +int inflate_dynamic(void) { + int i; /* temporary variables */ + unsigned j; + unsigned l; /* last length */ + unsigned m; /* mask for bit lengths table */ + unsigned n; /* number of lengths to get */ + UNUSED unsigned w; /* current window position */ + struct huft* tl; /* literal/length code table */ + struct huft* td; /* distance code table */ + int bl; /* lookup bits for tl */ + int bd; /* lookup bits for td */ + unsigned nb; /* number of bit length codes */ + unsigned nl; /* number of literal/length codes */ + unsigned nd; /* number of distance codes */ + static unsigned ll[288 + 32]; /* literal/length and distance code lengths */ + register ulg b; /* bit buffer */ + register unsigned k; /* number of bits in bit buffer */ + + /* make local bit buffer */ + b = bb; + k = bk; + w = wp; + + /* read in table lengths */ + NEEDBITS(5) + nl = 257 + ((unsigned)b & 0x1f); /* number of literal/length codes */ + DUMPBITS(5) + NEEDBITS(5) + nd = 1 + ((unsigned)b & 0x1f); /* number of distance codes */ + DUMPBITS(5) + NEEDBITS(4) + nb = 4 + ((unsigned)b & 0xf); /* number of bit length codes */ + DUMPBITS(4) + if (nl > 288 || nd > 32) { + return 1; /* bad lengths */ + } + + /* read in bit-length-code lengths */ + for (j = 0; j < nb; j++) { + NEEDBITS(3) + ll[border[j]] = (unsigned)b & 7; + DUMPBITS(3) + } + for (; j < 19; j++) { + ll[border[j]] = 0; + } + + /* build decoding table for trees--single level, 7 bit lookup */ + bl = 7; + if ((i = huft_build(ll, 19, 19, NULL, NULL, &tl, &bl)) != 0) { + if (i == 1) { + huft_free(tl); + } + return i; /* incomplete code set */ + } + + /* read in literal and distance code lengths */ + n = nl + nd; + m = mask_bits[bl]; + i = l = 0; + while ((unsigned)i < n) { + NEEDBITS((unsigned)bl) + j = (td = tl + ((unsigned)b & m))->b; + DUMPBITS(j) + j = td->v.n; + if (j < 16) { /* length of code in bits (0..15) */ + ll[i++] = l = j; /* save last length in l */ + } else if (j == 16) { /* repeat last length 3 to 6 times */ + NEEDBITS(2) + j = 3 + ((unsigned)b & 3); + DUMPBITS(2) + if ((unsigned)i + j > n) { + return 1; + } + while (j--) { + ll[i++] = l; + } + } else if (j == 17) { /* 3 to 10 zero length codes */ + NEEDBITS(3) + j = 3 + ((unsigned)b & 7); + DUMPBITS(3) + if ((unsigned)i + j > n) { + return 1; + } + while (j--) { + ll[i++] = 0; + } + l = 0; + } else { /* j == 18: 11 to 138 zero length codes */ + NEEDBITS(7) + j = 11 + ((unsigned)b & 0x7f); + DUMPBITS(7) + if ((unsigned)i + j > n) { + return 1; + } + while (j--) { + ll[i++] = 0; + } + l = 0; + } + } + + /* free decoding table for trees */ + huft_free(tl); + + /* restore the global bit buffer */ + bb = b; + bk = k; + + /* build the decoding tables for literal/length and distance codes */ + bl = lbits; + if ((i = huft_build(ll, nl, 257, cplens, cplext, &tl, &bl)) != 0) { + if (i == 1) { + Trace((stderr, " incomplete literal tree\n")); + huft_free(tl); + } + return i; /* incomplete code set */ + } + bd = dbits; + if ((i = huft_build(ll + nl, nd, 0, cpdist, cpdext, &td, &bd)) != 0) { + if (i == 1) { + Trace((stderr, " incomplete distance tree\n")); + i = 0; + } + } + + /* decompress until an end-of-block code */ + if (inflate_codes(tl, td, bl, bd) != 0) { + return 1; + } + + /* free the decoding tables */ + huft_free(td); + huft_free(tl); + + return 0; +} + +/* decompress an inflated block */ +/* E is the last block flag */ +int inflate_block(int* e) { + unsigned t; /* block type */ + UNUSED unsigned w; /* current window position */ + register ulg b; /* bit buffer */ + register unsigned k; /* number of bits in bit buffer */ + + /* make local bit buffer */ + b = bb; + k = bk; + w = wp; + + /* read in last block bit */ + NEEDBITS(1) + *e = (int)b & 1; + DUMPBITS(1) + + /* read in block type */ + NEEDBITS(2) + t = (unsigned)b & 3; + DUMPBITS(2) + + /* restore the global bit buffer */ + bb = b; + bk = k; + + /* inflate that block type */ + if (t == 2) { + return inflate_dynamic(); + } + if (t == 0) { + return inflate_stored(); + } + if (t == 1) { + return inflate_fixed(); + } + + /* bad block type */ + return 2; +} + +/* decompress an inflated entry */ +int inflate(void) { + int e; /* last block flag */ + int r; /* result code */ + unsigned h; /* maximum struct huft's malloc'ed */ + + /* initialize window, bit buffer */ + wp = 0; + bk = 0; + bb = 0; + + gzip_malloc_tmp = 0; + gzip_malloc_addr = gzip_mem_buff; + + /* decompress until the last block */ + h = 0; + do { + hufts = 0; + if ((r = inflate_block(&e)) != 0) { + return r; + } + if (hufts > h) { + h = hufts; + } + } while (!e); + + /* Undo too much lookahead. The next read will be byte aligned so we + * can discard unused bits in the last meaningful byte. + */ + while (bk >= 8) { + bk -= 8; + inptr--; + } + + /* flush out slide */ + flush_output(wp); + + /* return success */ + Trace((stderr, "<%u> ", h)); + return 0; +} + +size_t gzip_read(GzipFileDescriptor* romInput, void* dst, size_t blockSize) { + size_t alignedSize; + + if (blockSize > (size_t)romInput->size) { + blockSize = romInput->size; + } + + alignedSize = ALIGN8(blockSize); + if (alignedSize > 0) { + DmaMgr_DmaRomToRam(romInput->addr, dst, alignedSize); + } + + romInput->size -= alignedSize; + romInput->addr += alignedSize; + if (romInput->size < 0) { + romInput->size = 0; + } + + return blockSize; +} + +int unzip(void) { + int ret = inflate(); + + if (ret == 3) { + return -1; + } + + if (ret != 0) { + return -1; + } + + return 0; +} + +void clear_bufs(void) { + insize = inptr = 0; +} + +int fill_inbuf(int eof_ok) { + int len; + + /* Read as much as possible */ + insize = 0; + do { + len = gzip_read(&ifd, (char*)inbuf + insize, INBUFSIZ - insize); + if (len == 0 || len == -1) { + break; + } + insize += len; + } while (insize < INBUFSIZ); + + if (insize == 0) { + if (eof_ok) { + return EOF; + } + } + + inptr = 1; + return inbuf[0]; +} + +void flush_window(void) { + outcnt = 0; +} + +void gzip_decompress(uintptr_t romStart, u8* dst, size_t size) { + ifd.addr = romStart; + ifd.size = size; + + output_ptr = dst; + + clear_bufs(); + unzip(); +} diff --git a/src/boot/is_debug_ique.c b/src/boot/is_debug_ique.c new file mode 100644 index 0000000000..a78fef8235 --- /dev/null +++ b/src/boot/is_debug_ique.c @@ -0,0 +1,8 @@ +void osSyncPrintfUnused() { +} + +void osSyncPrintf() { +} + +void rmonPrintf() { +} diff --git a/src/boot/z_locale.c b/src/boot/z_locale.c index 1b8bd4294d..f320f1e0f4 100644 --- a/src/boot/z_locale.c +++ b/src/boot/z_locale.c @@ -7,7 +7,7 @@ s32 gCurrentRegion = 0; void Locale_Init(void) { -#if PLATFORM_N64 +#if !PLATFORM_GC ALIGNED(4) u8 regionInfo[4]; u8 countryCode; @@ -24,6 +24,7 @@ void Locale_Init(void) { countryCode = sCartInfo.countryCode; #endif +#if !PLATFORM_IQUE switch (countryCode) { case 'J': // "NTSC-J (Japan)" gCurrentRegion = REGION_JP; @@ -37,16 +38,19 @@ void Locale_Init(void) { break; #endif default: - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF(T("z_locale_init: 日本用かアメリカ用か判別できません\n", "z_locale_init: Can't tell if it's for Japan or America\n")); - LogUtils_HungupThread("../z_locale.c", LN4(86, 92, 101, 118, UNK_LINE)); + LogUtils_HungupThread("../z_locale.c", LN4(86, 92, 101, UNK_LINE, 118)); PRINTF(VT_RST); break; } PRINTF(T("z_locale_init:日本用かアメリカ用か3コンで判断させる\n", "z_locale_init: Determine whether it is for Japan or America using 3 controls\n")); +#else + gCurrentRegion = REGION_US; +#endif } void Locale_ResetRegion(void) { diff --git a/src/boot/z_std_dma.c b/src/boot/z_std_dma.c index d962f67889..b708a54dd0 100644 --- a/src/boot/z_std_dma.c +++ b/src/boot/z_std_dma.c @@ -28,7 +28,7 @@ #endif #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ntsc-1.2:82 pal-1.0:80 pal-1.1:80" + "ntsc-1.2:66 pal-1.0:64 pal-1.1:64" StackEntry sDmaMgrStackInfo; OSMesgQueue sDmaMgrMsgQueue; @@ -53,11 +53,20 @@ const char* sDmaMgrFileNames[] = { #include "tables/dmadata_table.h" }; -#endif - #undef DEFINE_DMA_ENTRY -#if PLATFORM_N64 || DEBUG_FEATURES +#endif + +#define SET_IOMSG(ioMsg, queue, rom, ram, buffSize) \ + do { \ + (ioMsg).hdr.pri = OS_MESG_PRI_NORMAL; \ + (ioMsg).hdr.retQueue = (queue); \ + (ioMsg).devAddr = (rom); \ + (ioMsg).dramAddr = (ram); \ + (ioMsg).size = (buffSize); \ + } while (0) + +#if !PLATFORM_GC || DEBUG_FEATURES /** * Compares `str1` and `str2`. * @@ -66,7 +75,7 @@ const char* sDmaMgrFileNames[] = { * -1 if the first character that does not match has a smaller value in str1 than str2, * +1 if the first character that does not match has a greater value in str1 than str2 */ -s32 DmaMgr_StrCmp(const char* str1, const char* str2) { +s32 DmaMgr_StrCmp(const u8* str1, const u8* str2) { while (*str1 != '\0') { if (*str1 > *str2) { return 1; @@ -103,6 +112,9 @@ s32 DmaMgr_DmaRomToRam(uintptr_t rom, void* ram, size_t size) { OSMesg msg; s32 ret; size_t buffSize = gDmaMgrDmaBuffSize; +#if DEBUG_FEATURES + UNUSED s32 pad; +#endif if (buffSize == 0) { buffSize = DMAMGR_DEFAULT_BUFSIZE; @@ -116,13 +128,7 @@ s32 DmaMgr_DmaRomToRam(uintptr_t rom, void* ram, size_t size) { // The system avoids large DMAs as these would stall the PI for too long, potentially causing issues with // audio. To allow audio to continue to DMA whenever it needs to, other DMAs are split into manageable chunks. - if (1) {} // Necessary to match - - ioMsg.hdr.pri = OS_MESG_PRI_NORMAL; - ioMsg.hdr.retQueue = &queue; - ioMsg.devAddr = rom; - ioMsg.dramAddr = ram; - ioMsg.size = buffSize; + SET_IOMSG(ioMsg, &queue, rom, ram, buffSize); if (gDmaMgrVerbose == 10) { PRINTF(T("%10lld ノーマルDMA %08x %08x %08x (%d)\n", "%10lld Normal DMA %08x %08x %08x (%d)\n"), @@ -151,15 +157,9 @@ s32 DmaMgr_DmaRomToRam(uintptr_t rom, void* ram, size_t size) { ram = (u8*)ram + buffSize; } - if (1) { // Also necessary to match - s32 pad[2]; - } + SET_IOMSG(ioMsg, &queue, rom, ram, size); - ioMsg.hdr.pri = OS_MESG_PRI_NORMAL; - ioMsg.hdr.retQueue = &queue; - ioMsg.devAddr = rom; - ioMsg.dramAddr = ram; - ioMsg.size = size; + { UNUSED s32 pad2; } if (gDmaMgrVerbose == 10) { PRINTF(T("%10lld ノーマルDMA %08x %08x %08x (%d)\n", "%10lld Normal DMA %08x %08x %08x (%d)\n"), @@ -242,11 +242,7 @@ void DmaMgr_DmaFromDriveRom(void* ram, uintptr_t rom, size_t size) { osInvalDCache(ram, size); osCreateMesgQueue(&queue, &msg, 1); - ioMsg.hdr.retQueue = &queue; - ioMsg.hdr.pri = OS_MESG_PRI_NORMAL; - ioMsg.devAddr = rom; - ioMsg.dramAddr = ram; - ioMsg.size = size; + SET_IOMSG(ioMsg, &queue, rom, ram, size); handle->transferInfo.cmdType = 2; osEPiStartDma(handle, &ioMsg, OS_READ); @@ -272,7 +268,7 @@ NORETURN void DmaMgr_Error(DmaRequest* req, const char* filename, const char* er char buff2[80]; PRINTF("%c", BEL); - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("DMA致命的エラー(%s)\nROM:%X RAM:%X SIZE:%X %s\n", "DMA Fatal Error (%s)\nROM:%X RAM:%X SIZE:%X %s\n"), errorDesc != NULL ? errorDesc : (errorName != NULL ? errorName : "???"), vrom, ram, size, filename != NULL ? filename : "???"); @@ -283,7 +279,7 @@ NORETURN void DmaMgr_Error(DmaRequest* req, const char* filename, const char* er PRINTF("DMA ERROR: %s %d", sDmaMgrCurFileName, sDmaMgrCurFileLine); } - PRINTF(VT_RST); + PRINTF_RST(); if (req->filename != NULL) { sprintf(buff1, "DMA ERROR: %s %d", req->filename, req->line); @@ -342,7 +338,8 @@ const char* DmaMgr_GetFileName(uintptr_t vrom) { return "(unknown)"; } - if (DmaMgr_StrCmp(ret, "kanji") == 0 || DmaMgr_StrCmp(ret, "link_animetion") == 0) { + if (DmaMgr_StrCmp((const u8*)ret, (const u8*)"kanji") == 0 || + DmaMgr_StrCmp((const u8*)ret, (const u8*)"link_animetion") == 0) { // This check may be related to these files being too large to be loaded all at once, however a NULL filename // does not prevent them from being loaded. return NULL; @@ -350,7 +347,7 @@ const char* DmaMgr_GetFileName(uintptr_t vrom) { return ret; #elif PLATFORM_GC return ""; -#elif PLATFORM_N64 +#else return "??"; #endif } @@ -380,19 +377,17 @@ void DmaMgr_ProcessRequest(DmaRequest* req) { if (vrom >= iter->file.vromStart && vrom < iter->file.vromEnd) { // Found the region this request falls into -#if PLATFORM_N64 - // Based on the MM Debug ROM, these strings are part of the condition for the empty if statement below, - // as `... && DmaMgr_StrCmp("", "kanji") != 0 && DmaMgr_StrCmp("", "link_animetion") != 0` - (void)""; - (void)"kanji"; - (void)""; - (void)"link_animetion"; -#endif - if (0) { - // The string is defined in .rodata of debug builds but not used, suggesting a debug print is here - // but was optimized out in some way. - PRINTF("DMA ROM:%08X RAM:%08X SIZE:%08X %s\n", vrom, ram, size, filename); +#if !PLATFORM_GC + // Based on the MM Debug ROM, these strings are part of the condition for the empty if statement below + if (DmaMgr_StrCmp((const u8*)"", (const u8*)"kanji") != 0 && + DmaMgr_StrCmp((const u8*)"", (const u8*)"link_animetion") != 0) +#endif + { + // The string is defined in .rodata of debug builds but not used, suggesting a debug print is here + // but was optimized out in some way. + PRINTF("DMA ROM:%08X RAM:%08X SIZE:%08X %s\n", vrom, ram, size, filename); + } } if (iter->romEnd == 0) { @@ -405,10 +400,10 @@ void DmaMgr_ProcessRequest(DmaRequest* req) { DMA_ERROR(req, filename, "Segment Alignment Error", T("セグメント境界をまたがってDMA転送することはできません", "DMA transfers cannot cross segment boundaries"), - "../z_std_dma.c", LN3(575, 578, 726)); + "../z_std_dma.c", LN3(575, 578, 595, 726)); } - DmaMgr_DmaRomToRam(iter->romStart + (vrom - iter->file.vromStart), ram, size); + DmaMgr_DmaRomToRam(iter->romStart + vrom - iter->file.vromStart, ram, size); found = true; if (0) { @@ -417,16 +412,16 @@ void DmaMgr_ProcessRequest(DmaRequest* req) { } else { // File is compressed. Files that are stored compressed must be loaded into RAM all at once. - romStart = iter->romStart; romSize = iter->romEnd - iter->romStart; + romStart = iter->romStart; - if (vrom != iter->file.vromStart) { + if (iter->file.vromStart != vrom) { // Error, requested vrom is not the start of a file DMA_ERROR(req, filename, "Can't Transfer Segment", T("圧縮されたセグメントの途中からはDMA転送することはできません", "DMA transfer cannot be performed from the middle of a compressed segment"), - "../z_std_dma.c", LN3(595, 598, 746)); + "../z_std_dma.c", LN3(595, 598, 615, 746)); } if (size != iter->file.vromEnd - iter->file.vromStart) { @@ -435,13 +430,19 @@ void DmaMgr_ProcessRequest(DmaRequest* req) { DMA_ERROR(req, filename, "Can't Transfer Segment", T("圧縮されたセグメントの一部だけをDMA転送することはできません", "It is not possible to DMA only part of a compressed segment"), - "../z_std_dma.c", LN3(601, 604, 752)); + "../z_std_dma.c", LN3(601, 604, 621, 752)); } // Reduce the thread priority and decompress the file, the decompression routine handles the DMA // in chunks. Restores the thread priority when done. osSetThreadPri(NULL, THREAD_PRI_DMAMGR_LOW); + +#if !PLATFORM_IQUE Yaz0_Decompress(romStart, ram, romSize); +#else + gzip_decompress(romStart, ram, romSize); +#endif + osSetThreadPri(NULL, THREAD_PRI_DMAMGR); found = true; @@ -452,7 +453,7 @@ void DmaMgr_ProcessRequest(DmaRequest* req) { break; } -#if PLATFORM_N64 +#if !PLATFORM_GC if (i != 0) { i += 4; } @@ -469,11 +470,12 @@ void DmaMgr_ProcessRequest(DmaRequest* req) { DMA_ERROR(req, NULL, "DATA DON'T EXIST", T("該当するデータが存在しません", "Corresponding data does not exist"), "../z_std_dma.c", - LN3(621, 624, 771)); + LN3(621, 624, 641, 771)); return; } else { // ROM is uncompressed, allow arbitrary DMA even if the region is not marked in the filesystem - DmaMgr_DmaRomToRam(vrom, ram, size); + romStart = vrom; + DmaMgr_DmaRomToRam(romStart, ram, size); if (0) { PRINTF(T("No Press ROM:%08X RAM:%08X SIZE:%08X (非公式)\n", @@ -534,6 +536,10 @@ s32 DmaMgr_RequestAsync(DmaRequest* req, void* ram, uintptr_t vrom, size_t size, OSMesg msg) { static s32 sDmaMgrQueueFullLogged = 0; +#if PLATFORM_IQUE + PRINTF("dmacopy_bg(%x, %x, %x, %x, %x, %x, %x)\n", req, ram, vrom, size, unk, queue, msg); +#endif + #if DEBUG_FEATURES if ((ram == NULL) || (osMemSize < OS_K0_TO_PHYSICAL(ram) + size) || (vrom & 1) || (vrom > 0x4000000) || (size == 0) || (size & 1)) { @@ -562,12 +568,12 @@ s32 DmaMgr_RequestAsync(DmaRequest* req, void* ram, uintptr_t vrom, size_t size, if (1 && (sDmaMgrQueueFullLogged == 0) && MQ_IS_FULL(&sDmaMgrMsgQueue)) { sDmaMgrQueueFullLogged++; PRINTF("%c", BEL); - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("dmaEntryMsgQが一杯です。キューサイズの再検討をおすすめします。", "dmaEntryMsgQ is full. Reconsider your queue size.")); LOG_NUM("(sizeof(dmaEntryMsgBufs) / sizeof(dmaEntryMsgBufs[0]))", ARRAY_COUNT(sDmaMgrMsgBuf), "../z_std_dma.c", 952); - PRINTF(VT_RST); + PRINTF_RST(); } #endif @@ -608,9 +614,10 @@ void DmaMgr_Init(void) { // DMA the dma data table to RAM DmaMgr_DmaRomToRam((uintptr_t)_dmadataSegmentRomStart, _dmadataSegmentStart, (u32)(_dmadataSegmentRomEnd - _dmadataSegmentRomStart)); - PRINTF("dma_rom_ad[]\n"); #if DEBUG_FEATURES + PRINTF("dma_rom_ad[]\n"); + name = sDmaMgrFileNames; iter = gDmaDataTable; idx = 0; @@ -641,7 +648,7 @@ void DmaMgr_Init(void) { PRINTF("_bootSegmentRomStart(%08x) != dma_rom_ad[0].rom_b(%08x)\n", _bootSegmentRomStart, gDmaDataTable[0].file.vromEnd); //! @bug The main code file where fault.c resides is not yet loaded - Fault_AddHungupAndCrash("../z_std_dma.c", LN3(837, 840, 1055)); + Fault_AddHungupAndCrash("../z_std_dma.c", LN3(837, 840, 859, 1055)); } // Start the DMA manager diff --git a/src/boot/zlib.c b/src/boot/zlib.c deleted file mode 100644 index 8b13789179..0000000000 --- a/src/boot/zlib.c +++ /dev/null @@ -1 +0,0 @@ - diff --git a/src/code/db_camera.c b/src/code/db_camera.c index 7d81dafc9c..242609295d 100644 --- a/src/code/db_camera.c +++ b/src/code/db_camera.c @@ -1,7 +1,5 @@ #include "global.h" -#if DEBUG_FEATURES - #define DEBUG_CAM_CONTROLLER_PORT 2 static PlayState* sPlay; @@ -2368,5 +2366,3 @@ void func_800BB060(void) { int func_800BB06C(void) { return sDebugCamPtr->unk_00 == 2 && sDebugCamAnim.unk_0A != 0; } - -#endif diff --git a/src/code/fault_gc.c b/src/code/fault_gc.c index 9c0c35c78e..59f95d17ff 100644 --- a/src/code/fault_gc.c +++ b/src/code/fault_gc.c @@ -40,10 +40,8 @@ * DPad-Up may be pressed to enable sending fault pages over osSyncPrintf as well as displaying them on-screen. * DPad-Down disables sending fault pages over osSyncPrintf. */ -#if !PLATFORM_N64 - -#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-eu-mq-dbg:160 gc-jp:176 gc-jp-ce:176 gc-jp-mq:176 gc-us:176" \ - "gc-us-mq:176" +#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-eu-mq-dbg:144 gc-jp:160 gc-jp-ce:160 gc-jp-mq:160 gc-us:160" \ + "gc-us-mq:160" #include "global.h" #include "alloca.h" @@ -1340,5 +1338,3 @@ NORETURN void Fault_AddHungupAndCrash(const char* file, int line) { sprintf(msg, "HungUp %s:%d", file, line); Fault_AddHungupAndCrashImpl(msg, NULL); } - -#endif diff --git a/src/code/fault_gc_drawer.c b/src/code/fault_gc_drawer.c index ba294f52d9..9d3478a48f 100644 --- a/src/code/fault_gc_drawer.c +++ b/src/code/fault_gc_drawer.c @@ -9,8 +9,6 @@ #include "terminal.h" #pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" -#if !PLATFORM_N64 - typedef struct FaultDrawer { /* 0x00 */ u16* fb; /* 0x04 */ u16 w; @@ -344,5 +342,3 @@ void Fault_InitDrawer(void) { bcopy(&sFaultDrawerDefault, &sFaultDrawer, sizeof(FaultDrawer)); sFaultDrawer.fb = (u16*)(PHYS_TO_K0(osMemSize) - sizeof(u16[SCREEN_HEIGHT][SCREEN_WIDTH])); } - -#endif diff --git a/src/code/fault_n64.c b/src/code/fault_n64.c index 7ea68abeb8..720307c0a1 100644 --- a/src/code/fault_n64.c +++ b/src/code/fault_n64.c @@ -1,5 +1,3 @@ -#if PLATFORM_N64 - #pragma increment_block_number "ntsc-1.0:0 ntsc-1.1:0 ntsc-1.2:0 pal-1.0:0 pal-1.1:0" #include "global.h" @@ -849,5 +847,3 @@ NORETURN void Fault_AddHungupAndCrash(const char* file, int line) { sprintf(msg, "HungUp %s:%d", file, line); Fault_AddHungupAndCrashImpl(msg, NULL); } - -#endif diff --git a/src/code/game.c b/src/code/game.c index ee29c84496..4367839528 100644 --- a/src/code/game.c +++ b/src/code/game.c @@ -409,12 +409,12 @@ void GameState_Realloc(GameState* gameState, size_t size) { SystemArena_GetSizes(&systemMaxFree, &systemFree, &systemAlloc); if ((systemMaxFree - 0x10) < size) { PRINTF("%c", BEL); - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("メモリが足りません。ハイラルサイズを可能な最大値に変更します\n", "Not enough memory. Change Hyrule size to maximum possible value\n")); PRINTF("(hyral=%08x max=%08x free=%08x alloc=%08x)\n", size, systemMaxFree, systemFree, systemAlloc); - PRINTF(VT_RST); + PRINTF_RST(); size = systemMaxFree - 0x10; } @@ -557,9 +557,9 @@ void* GameState_Alloc(GameState* gameState, size_t size, const char* file, int l } } if (ret != NULL) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("game_alloc(%08x) %08x-%08x [%s:%d]\n", size, ret, (uintptr_t)ret + size, file, line); - PRINTF(VT_RST); + PRINTF_RST(); } return ret; } diff --git a/src/code/graph.c b/src/code/graph.c index 091c80bae3..046e04d374 100644 --- a/src/code/graph.c +++ b/src/code/graph.c @@ -188,9 +188,9 @@ void Graph_TaskSet00(GraphicsContext* gfxCtx) { if (msg == (OSMesg)666) { #if DEBUG_FEATURES - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("RCPが帰ってきませんでした。", "RCP did not return.")); - PRINTF(VT_RST); + PRINTF_RST(); LogUtils_LogHexDump((void*)PHYS_TO_K1(SP_BASE_REG), 0x20); LogUtils_LogHexDump((void*)PHYS_TO_K1(DPC_BASE_REG), 0x20); @@ -380,7 +380,7 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) { PRINTF("%c", BEL); PRINTF(VT_COL(RED, WHITE) T("ダイナミック領域先頭が破壊されています\n", "Dynamic area head is destroyed\n") VT_RST); - Fault_AddHungupAndCrash("../graph.c", LN4(937, 940, 951, 1070, 1067)); + Fault_AddHungupAndCrash("../graph.c", LN4(937, 940, 951, 1067, 1070)); } if (pool->tailMagic != GFXPOOL_TAIL_MAGIC) { @@ -388,7 +388,7 @@ void Graph_Update(GraphicsContext* gfxCtx, GameState* gameState) { PRINTF("%c", BEL); PRINTF(VT_COL(RED, WHITE) T("ダイナミック領域末尾が破壊されています\n", "Dynamic region tail is destroyed\n") VT_RST); - Fault_AddHungupAndCrash("../graph.c", LN4(943, 946, 957, 1076, 1073)); + Fault_AddHungupAndCrash("../graph.c", LN4(943, 946, 957, 1073, 1076)); } } @@ -481,7 +481,7 @@ void Graph_ThreadEntry(void* arg0) { sprintf(faultMsg, "CLASS SIZE= %d bytes", size); Fault_AddHungupAndCrashImpl("GAME CLASS MALLOC FAILED", faultMsg); #else - Fault_AddHungupAndCrash("../graph.c", LN4(1067, 1070, 1081, 1200, 1197)); + Fault_AddHungupAndCrash("../graph.c", LN4(1067, 1070, 1081, 1197, 1200)); #endif } diff --git a/src/code/irqmgr.c b/src/code/irqmgr.c index 3a1e3cdf55..59d7a41cfa 100644 --- a/src/code/irqmgr.c +++ b/src/code/irqmgr.c @@ -185,11 +185,11 @@ void IrqMgr_CheckStacks(void) { PRINTF(T("スタックは大丈夫みたいです\n", "The stack looks ok\n")); } else { PRINTF("%c", BEL); - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("スタックがオーバーフローしたか危険な状態です\n", "Stack overflow or dangerous\n")); PRINTF(T("早々にスタックサイズを増やすか、スタックを消費しないようにしてください\n", "Increase stack size early or don't consume stack\n")); - PRINTF(VT_RST); + PRINTF_RST(); } } diff --git a/src/code/main.c b/src/code/main.c index 8ad00b52bd..6e6e3026c4 100644 --- a/src/code/main.c +++ b/src/code/main.c @@ -23,8 +23,8 @@ extern struct IrqMgr gIrqMgr; #include "n64dd.h" #endif -#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-jp:160 gc-jp-ce:160 gc-jp-mq:160 gc-us:160 gc-us-mq:160" \ - "ntsc-1.0:141 ntsc-1.1:141 ntsc-1.2:141 pal-1.0:139 pal-1.1:139" +#pragma increment_block_number "gc-eu:144 gc-eu-mq:144 gc-jp:144 gc-jp-ce:144 gc-jp-mq:144 gc-us:144 gc-us-mq:144" \ + "ntsc-1.0:127 ntsc-1.1:127 ntsc-1.2:127 pal-1.0:125 pal-1.1:125" extern u8 _buffersSegmentEnd[]; @@ -59,11 +59,11 @@ OSMesg sSerialMsgBuf[1]; #if DEBUG_FEATURES void Main_LogSystemHeap(void) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF( T("システムヒープサイズ %08x(%dKB) 開始アドレス %08x\n", "System heap size %08x (%dKB) Start address %08x\n"), gSystemHeapSize, gSystemHeapSize / 1024, _buffersSegmentEnd); - PRINTF(VT_RST); + PRINTF_RST(); } #endif diff --git a/src/code/padmgr.c b/src/code/padmgr.c index 33a5056639..b5f76b7217 100644 --- a/src/code/padmgr.c +++ b/src/code/padmgr.c @@ -35,9 +35,9 @@ #define PADMGR_LOG(controllerNum, msg) \ if (DEBUG_FEATURES) { \ - PRINTF(VT_FGCOL(YELLOW)); \ + PRINTF_COLOR_YELLOW(); \ PRINTF(T("padmgr: %dコン: %s\n", "padmgr: Controller %d: %s\n"), (controllerNum) + 1, (msg)); \ - PRINTF(VT_RST); \ + PRINTF_RST(); \ } \ (void)0 @@ -327,7 +327,7 @@ void PadMgr_UpdateInputs(PadMgr* padMgr) { default: // Unknown error response LOG_HEX("padnow1->errno", pad->errno, "../padmgr.c", 396); - Fault_AddHungupAndCrash("../padmgr.c", LN3(379, 382, 397)); + Fault_AddHungupAndCrash("../padmgr.c", LN3(379, 382, 397, 397)); break; } diff --git a/src/code/speed_meter.c b/src/code/speed_meter.c index d325099a89..d282e34953 100644 --- a/src/code/speed_meter.c +++ b/src/code/speed_meter.c @@ -185,9 +185,9 @@ void SpeedMeter_DrawAllocEntry(SpeedMeterAllocEntry* this, GraphicsContext* gfxC Gfx* gfx; if (this->maxval == 0) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); LOG_NUM("this->maxval", this->maxval, "../speed_meter.c", 313); - PRINTF(VT_RST); + PRINTF_RST(); } else { OPEN_DISPS(gfxCtx, "../speed_meter.c", 318); diff --git a/src/code/sys_cfb.c b/src/code/sys_cfb.c index e175ddf944..c3b29d7ac5 100644 --- a/src/code/sys_cfb.c +++ b/src/code/sys_cfb.c @@ -34,7 +34,7 @@ void SysCfb_Init(s32 n64dd) { PRINTF("RAM4M mode\n"); sSysCfbEnd = 0x80400000; } else { - LogUtils_HungupThread("../sys_cfb.c", LN4(305, 308, 322, 354, 341)); + LogUtils_HungupThread("../sys_cfb.c", LN4(305, 308, 322, 341, 354)); } screenSize = SCREEN_WIDTH * SCREEN_HEIGHT; diff --git a/src/code/sys_math3d.c b/src/code/sys_math3d.c index 082c62fc71..0a773bfb69 100644 --- a/src/code/sys_math3d.c +++ b/src/code/sys_math3d.c @@ -5,7 +5,7 @@ #include "macros.h" #include "sys_math3d.h" -#pragma increment_block_number "gc-eu:99 gc-eu-mq:99 gc-jp:99 gc-jp-ce:99 gc-jp-mq:99 gc-us:99 gc-us-mq:99" \ +#pragma increment_block_number "gc-eu:98 gc-eu-mq:98 gc-jp:98 gc-jp-ce:98 gc-jp-mq:98 gc-us:98 gc-us-mq:98" \ "ntsc-1.0:80 ntsc-1.1:80 ntsc-1.2:79 pal-1.0:80 pal-1.1:80" s32 Math3D_LineVsLineClosestTwoPoints(Vec3f* lineAPointA, Vec3f* lineAPointB, Vec3f* lineBPointA, Vec3f* lineBPointB, @@ -127,11 +127,11 @@ void Math3D_LineClosestToPoint(InfiniteLine* line, Vec3f* pos, Vec3f* closestPoi dirVectorLengthSq = Math3D_Vec3fMagnitudeSq(&line->dir); if (IS_ZERO(dirVectorLengthSq)) { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); PRINTF(T("Math3D_lineVsPosSuisenCross():直線の長さがありません\n", "Math3D_lineVsPosSuisenCross(): No straight line length\n")); PRINTF(T("cross = pos を返します。\n", "Returns cross = pos.\n")); - PRINTF(VT_RST); + PRINTF_RST(); Math_Vec3f_Copy(closestPoint, pos); //! @bug Missing early return } @@ -930,11 +930,11 @@ f32 Math3D_Plane(Plane* plane, Vec3f* pointOnPlane) { */ f32 Math3D_UDistPlaneToPos(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* p) { if (DEBUG_FEATURES && IS_ZERO(sqrtf(SQ(nx) + SQ(ny) + SQ(nz)))) { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); PRINTF(T("Math3DLengthPlaneAndPos():法線size がゼロ近いです%f %f %f\n", "Math3DLengthPlaneAndPos(): Normal size is near zero %f %f %f\n"), nx, ny, nz); - PRINTF(VT_RST); + PRINTF_RST(); return 0.0f; } return fabsf(Math3D_DistPlaneToPos(nx, ny, nz, originDist, p)); @@ -949,11 +949,11 @@ f32 Math3D_DistPlaneToPos(f32 nx, f32 ny, f32 nz, f32 originDist, Vec3f* p) { normMagnitude = sqrtf(SQ(nx) + SQ(ny) + SQ(nz)); if (IS_ZERO(normMagnitude)) { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); PRINTF(T("Math3DSignedLengthPlaneAndPos():法線size がゼロ近いです%f %f %f\n", "Math3DSignedLengthPlaneAndPos(): Normal size is close to zero %f %f %f\n"), nx, ny, nz); - PRINTF(VT_RST); + PRINTF_RST(); return 0.0f; } return Math3D_Planef(nx, ny, nz, originDist, p) / normMagnitude; diff --git a/src/code/z_DLF.c b/src/code/z_DLF.c index 547dc4bbbd..f56fcc742b 100644 --- a/src/code/z_DLF.c +++ b/src/code/z_DLF.c @@ -18,12 +18,12 @@ void Overlay_LoadGameState(GameStateOverlay* overlayEntry) { return; } - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("OVL(d):Seg:%08x-%08x Ram:%08x-%08x Off:%08x %s\n", overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr, (u32)overlayEntry->loadedRamAddr + (u32)overlayEntry->vramEnd - (u32)overlayEntry->vramStart, (u32)overlayEntry->vramStart - (u32)overlayEntry->loadedRamAddr, ""); - PRINTF(VT_RST); + PRINTF_RST(); if (overlayEntry->unk_14 != NULL) { overlayEntry->unk_14 = (void*)((u32)overlayEntry->unk_14 - diff --git a/src/code/z_actor.c b/src/code/z_actor.c index 66b9601e56..37a370557d 100644 --- a/src/code/z_actor.c +++ b/src/code/z_actor.c @@ -22,10 +22,20 @@ static s32 sCurCeilingBgId; #define ACTOR_DEBUG_PRINTF \ if (R_ENABLE_ACTOR_DEBUG_PRINTF) \ PRINTF -#elif IDO_PRINTF_WORKAROUND -#define ACTOR_DEBUG_PRINTF(args) (void)0 #else -#define ACTOR_DEBUG_PRINTF(format, ...) (void)0 +#define ACTOR_DEBUG_PRINTF \ + if (0) \ + PRINTF +#endif + +#if DEBUG_FEATURES +#define ACTOR_COLOR_WARNING VT_COL(YELLOW, BLACK) +#define ACTOR_COLOR_ERROR VT_COL(RED, WHITE) +#define ACTOR_RST VT_RST +#else +#define ACTOR_COLOR_WARNING "" +#define ACTOR_COLOR_ERROR "" +#define ACTOR_RST "" #endif void ActorShape_Init(ActorShape* shape, f32 yOffset, ActorShadowFunc shadowDraw, f32 shadowScale) { @@ -71,8 +81,9 @@ void ActorShadow_Draw(Actor* actor, Lights* lights, PlayState* play, Gfx* dlist, Matrix_RotateY(BINANG_TO_RAD(actor->shape.rot.y), MTXMODE_APPLY); } - temp2 = (1.0f - (temp1 * (1.0f / 350))) * actor->shape.shadowScale; - Matrix_Scale(actor->scale.x * temp2, 1.0f, actor->scale.z * temp2, MTXMODE_APPLY); + temp2 = (1.0f - (temp1 * (1.0f / 350))); + temp2 *= actor->shape.shadowScale; + Matrix_Scale(temp2 * actor->scale.x, 1.0f, temp2 * actor->scale.z, MTXMODE_APPLY); MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_actor.c", 1588); gSPDisplayList(POLY_OPA_DISP++, dlist); @@ -98,16 +109,19 @@ void ActorShadow_DrawHorse(Actor* actor, Lights* lights, PlayState* play) { void ActorShadow_DrawFoot(PlayState* play, Light* light, MtxF* arg2, s32 arg3, f32 arg4, f32 arg5, f32 arg6) { s32 pad1; f32 sp58; - s32 pad2[2]; + f32 temp; + s32 pad2; OPEN_DISPS(play->state.gfxCtx, "../z_actor.c", 1661); - gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 0, 0, 0, - (u32)(((arg3 * 0.00005f) > 1.0f ? 1.0f : (arg3 * 0.00005f)) * arg4) & 0xFF); + temp = arg3 * 0.00005f; + gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 0, 0, 0, (u32)(arg4 * (temp > 1.0f ? 1.0f : temp)) & 0xFF); sp58 = Math_FAtan2F(light->l.dir[0], light->l.dir[2]); arg6 *= (4.5f - (light->l.dir[1] * 0.035f)); - arg6 = (arg6 < 1.0f) ? 1.0f : arg6; + if (arg6 < 1.0f) { + arg6 = 1.0f; + } Matrix_Put(arg2); Matrix_RotateY(sp58, MTXMODE_APPLY); Matrix_Scale(arg5, 1.0f, arg5 * arg6, MTXMODE_APPLY); @@ -166,15 +180,17 @@ void ActorShadow_DrawFeet(Actor* actor, Lights* lights, PlayState* play) { actor->shape.feetFloorFlag <<= 1; distToFloor = feetPosPtr->y - *floorHeightPtr; - if (1) {} - if ((-1.0f <= distToFloor) && (distToFloor < 500.0f)) { if (distToFloor <= 0.0f) { actor->shape.feetFloorFlag++; } - distToFloor = CLAMP_MAX(distToFloor, 30.0f); + if (distToFloor > 30.0f) { + distToFloor = 30.0f; + } shadowAlpha = (f32)actor->shape.shadowAlpha * (1.0f - (distToFloor * (1.0f / 30.0f))); - distToFloor = CLAMP_MAX(distToFloor, 30.0f); + if (distToFloor > 30.0f) { + distToFloor = 30.0f; + } shadowScaleZ = 1.0f - (distToFloor * (1.0f / (30.0f + 40.0f))); shadowScaleX = shadowScaleZ * actor->shape.shadowScale * actor->scale.x; lightNumMax = 0; @@ -237,7 +253,11 @@ void Actor_SetFeetPos(Actor* actor, s32 limbIndex, s32 leftFootIndex, Vec3f* lef void Actor_ProjectPos(PlayState* play, Vec3f* src, Vec3f* xyzDest, f32* cappedInvWDest) { SkinMatrix_Vec3fMtxFMultXYZW(&play->viewProjectionMtxF, src, xyzDest, cappedInvWDest); - *cappedInvWDest = (*cappedInvWDest < 1.0f) ? 1.0f : (1.0f / *cappedInvWDest); + if (*cappedInvWDest < 1.0f) { + *cappedInvWDest = 1.0f; + } else { + *cappedInvWDest = 1.0f / *cappedInvWDest; + } } typedef struct AttentionColor { @@ -267,11 +287,13 @@ Gfx D_80115FF0[] = { }; void Attention_SetReticlePos(Attention* attention, s32 reticleNum, f32 x, f32 y, f32 z) { - attention->lockOnReticles[reticleNum].pos.x = x; - attention->lockOnReticles[reticleNum].pos.y = y; - attention->lockOnReticles[reticleNum].pos.z = z; + LockOnReticle* reticle = &attention->lockOnReticles[reticleNum]; - attention->lockOnReticles[reticleNum].radius = attention->reticleRadius; + reticle->pos.x = x; + reticle->pos.y = y; + reticle->pos.z = z; + + reticle->radius = attention->reticleRadius; } void Attention_InitReticle(Attention* attention, s32 actorCategory, PlayState* play) { @@ -296,29 +318,27 @@ void Attention_InitReticle(Attention* attention, s32 actorCategory, PlayState* p } void Attention_SetNaviState(Attention* attention, Actor* actor, s32 actorCategory, PlayState* play) { - AttentionColor* attentionColor = &sAttentionColors[actorCategory]; - attention->naviHoverPos.x = actor->focus.pos.x; attention->naviHoverPos.y = actor->focus.pos.y + (actor->lockOnArrowOffset * actor->scale.y); attention->naviHoverPos.z = actor->focus.pos.z; - attention->naviInnerColor.r = attentionColor->primary.r; - attention->naviInnerColor.g = attentionColor->primary.g; - attention->naviInnerColor.b = attentionColor->primary.b; - attention->naviInnerColor.a = attentionColor->primary.a; + attention->naviInnerColor.r = sAttentionColors[actorCategory].primary.r; + attention->naviInnerColor.g = sAttentionColors[actorCategory].primary.g; + attention->naviInnerColor.b = sAttentionColors[actorCategory].primary.b; + attention->naviInnerColor.a = sAttentionColors[actorCategory].primary.a; - attention->naviOuterColor.r = attentionColor->secondary.r; - attention->naviOuterColor.g = attentionColor->secondary.g; - attention->naviOuterColor.b = attentionColor->secondary.b; - attention->naviOuterColor.a = attentionColor->secondary.a; + attention->naviOuterColor.r = sAttentionColors[actorCategory].secondary.r; + attention->naviOuterColor.g = sAttentionColors[actorCategory].secondary.g; + attention->naviOuterColor.b = sAttentionColors[actorCategory].secondary.b; + attention->naviOuterColor.a = sAttentionColors[actorCategory].secondary.a; } void Attention_Init(Attention* attention, Actor* actor, PlayState* play) { attention->naviHoverActor = attention->reticleActor = attention->forcedLockOnActor = attention->bgmEnemy = NULL; attention->reticleSpinCounter = 0; - attention->curReticle = 0; attention->naviMoveProgressFactor = 0.0f; + attention->curReticle = 0; Attention_SetNaviState(attention, actor, actor->category, play); Attention_InitReticle(attention, actor->category, play); @@ -390,7 +410,7 @@ void Attention_Draw(Attention* attention, PlayState* play) { Attention_SetReticlePos(attention, attention->curReticle, projectedPos.x, projectedPos.y, projectedPos.z); - if (!(player->stateFlags1 & PLAYER_STATE1_TALKING) || (actor != player->focusActor)) { + if (!(player->stateFlags1 & PLAYER_STATE1_TALKING) || (player->focusActor != actor)) { OVERLAY_DISP = Gfx_SetupDL(OVERLAY_DISP, SETUPDL_57); for (i = 0, curReticle = attention->curReticle; i < numReticles; @@ -441,7 +461,7 @@ void Attention_Draw(Attention* attention, PlayState* play) { Matrix_Translate(actor->focus.pos.x, actor->focus.pos.y + (actor->lockOnArrowOffset * actor->scale.y) + 17.0f, actor->focus.pos.z, MTXMODE_NEW); - Matrix_RotateY(BINANG_TO_RAD((u16)(play->gameplayFrames * 3000)), MTXMODE_APPLY); + Matrix_RotateY(BINANG_TO_RAD((play->gameplayFrames * 3000) & 0xFFFF), MTXMODE_APPLY); Matrix_Scale((iREG(27) + 35) / 1000.0f, (iREG(28) + 60) / 1000.0f, (iREG(29) + 50) / 1000.0f, MTXMODE_APPLY); gDPSetPrimColor(POLY_XLU_DISP++, 0, 0, attentionColor->primary.r, attentionColor->primary.g, @@ -790,6 +810,7 @@ void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { height = titleCtx->height; doubleWidth = width * 2; titleX1 = (titleCtx->x * 4) - (width * 2); + titleX2 = titleX1 + (doubleWidth * 2) - 4; titleY1 = (titleCtx->y * 4) - (height * 2); OPEN_DISPS(play->state.gfxCtx, "../z_actor.c", 2824); @@ -808,7 +829,6 @@ void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { height = 0x1000 / width; } - titleX2 = titleX1 + (doubleWidth * 2); titleY2 = titleY1 + (height * 4); OVERLAY_DISP = Gfx_SetupDL_52NoCD(OVERLAY_DISP); @@ -820,19 +840,19 @@ void TitleCard_Draw(PlayState* play, TitleCardContext* titleCtx) { width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(OVERLAY_DISP++, titleX1, titleY1, titleX2 - 4, titleY2 - 1, G_TX_RENDERTILE, 0, 0, 1 << 10, + gSPTextureRectangle(OVERLAY_DISP++, titleX1, titleY1, titleX2, titleY2 - 1, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); height = titleCtx->height - height; // If texture is bigger than 0x1000, display the rest if (height > 0) { - gDPLoadTextureBlock(OVERLAY_DISP++, (u8*)titleCtx->texture + textureLanguageOffset + 0x1000, G_IM_FMT_IA, + gDPLoadTextureBlock(OVERLAY_DISP++, (u8*)titleCtx->texture + 0x1000 + textureLanguageOffset, G_IM_FMT_IA, G_IM_SIZ_8b, width, height, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(OVERLAY_DISP++, titleX1, titleY2, titleX2 - 4, titleY2 + (height * 4) - 1, - G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); + gSPTextureRectangle(OVERLAY_DISP++, titleX1, titleY2, titleX2, titleY2 + (height * 4) - 1, G_TX_RENDERTILE, + 0, 0, 1 << 10, 1 << 10); } CLOSE_DISPS(play->state.gfxCtx, "../z_actor.c", 2880); @@ -922,7 +942,7 @@ void Actor_Destroy(Actor* actor, PlayState* play) { overlayEntry = actor->overlayEntry; name = overlayEntry->name != NULL ? overlayEntry->name : ""; - PRINTF(T("Actorクラス デストラクトがありません [%s]\n", "No Actor class destruct [%s]\n") VT_RST, name); + PRINTF(T("Actorクラス デストラクトがありません [%s]\n", "No Actor class destruct [%s]\n") ACTOR_RST, name); #endif } } @@ -942,8 +962,8 @@ void Actor_UpdatePos(Actor* actor) { * Update actor's velocity accounting for gravity (without dropping below minimum y velocity) */ void Actor_UpdateVelocityXZGravity(Actor* actor) { - actor->velocity.x = Math_SinS(actor->world.rot.y) * actor->speed; - actor->velocity.z = Math_CosS(actor->world.rot.y) * actor->speed; + actor->velocity.x = actor->speed * Math_SinS(actor->world.rot.y); + actor->velocity.z = actor->speed * Math_CosS(actor->world.rot.y); actor->velocity.y += actor->gravity; @@ -966,11 +986,11 @@ void Actor_MoveXZGravity(Actor* actor) { * Update actor's velocity without gravity. */ void Actor_UpdateVelocityXYZ(Actor* actor) { - f32 speedXZ = Math_CosS(actor->world.rot.x) * actor->speed; + f32 speedXZ = actor->speed * Math_CosS(actor->world.rot.x); - actor->velocity.x = Math_SinS(actor->world.rot.y) * speedXZ; - actor->velocity.y = Math_SinS(actor->world.rot.x) * actor->speed; - actor->velocity.z = Math_CosS(actor->world.rot.y) * speedXZ; + actor->velocity.x = speedXZ * Math_SinS(actor->world.rot.y); + actor->velocity.y = actor->speed * Math_SinS(actor->world.rot.x); + actor->velocity.z = speedXZ * Math_CosS(actor->world.rot.y); } /** @@ -988,8 +1008,8 @@ void Actor_MoveXYZ(Actor* actor) { * Only the actor's world pitch is factored in, with positive pitch moving downwards. */ void Actor_SetProjectileSpeed(Actor* actor, f32 speedXYZ) { - actor->speed = Math_CosS(actor->world.rot.x) * speedXYZ; - actor->velocity.y = -Math_SinS(actor->world.rot.x) * speedXYZ; + actor->speed = speedXYZ * Math_CosS(actor->world.rot.x); + actor->velocity.y = speedXYZ * -Math_SinS(actor->world.rot.x); } void Actor_UpdatePosByAnimation(Actor* actor, SkelAnime* skelAnime) { @@ -1065,7 +1085,7 @@ void Actor_WorldToActorCoords(Actor* actor, Vec3f* dest, Vec3f* pos) { deltaX = pos->x - actor->world.pos.x; deltaZ = pos->z - actor->world.pos.z; - dest->x = (deltaX * cosY) - (deltaZ * sinY); + dest->x = -(deltaZ * sinY) + (deltaX * cosY); dest->z = (deltaX * sinY) + (deltaZ * cosY); dest->y = pos->y - actor->world.pos.y; } @@ -1085,6 +1105,8 @@ f32 Player_GetHeight(Player* player) { } f32 func_8002DCE4(Player* player) { + s32 pad; + if (player->stateFlags1 & PLAYER_STATE1_23) { return 8.0f; } else if (player->stateFlags1 & PLAYER_STATE1_27) { @@ -1132,9 +1154,7 @@ void Actor_SwapHookshotAttachment(PlayState* play, Actor* srcActor, Actor* destA hookshot->attachedActor = destActor; // The hookshot will attach at exactly the actors world position with 0 offset - hookshot->attachPointOffset.x = 0.0f; - hookshot->attachPointOffset.y = 0.0f; - hookshot->attachPointOffset.z = 0.0f; + hookshot->attachPointOffset.x = hookshot->attachPointOffset.y = hookshot->attachPointOffset.z = 0.0f; destActor->flags |= ACTOR_FLAG_HOOKSHOT_ATTACHED; srcActor->flags &= ~ACTOR_FLAG_HOOKSHOT_ATTACHED; @@ -1206,8 +1226,7 @@ s32 Player_SetCsActionWithHaltedActors(PlayState* play, Actor* csActor, u8 csAct } void func_8002DF90(DynaPolyActor* dynaActor) { - dynaActor->unk_154 = 0.0f; - dynaActor->unk_150 = 0.0f; + dynaActor->unk_150 = dynaActor->unk_154 = 0.0f; } void func_8002DFA4(DynaPolyActor* dynaActor, f32 arg1, s16 arg2) { @@ -1347,7 +1366,7 @@ s32 func_8002E2AC(PlayState* play, Actor* actor, Vec3f* pos, s32 arg3) { actor->bgCheckFlags |= BGCHECKFLAG_GROUND_STRICT; if (actor->bgCheckFlags & BGCHECKFLAG_CEILING) { - if (floorBgId != sCurCeilingBgId) { + if (sCurCeilingBgId != floorBgId) { if (floorHeightDiff > 15.0f) { actor->bgCheckFlags |= BGCHECKFLAG_CRUSHED; } @@ -1385,13 +1404,14 @@ s32 func_8002E2AC(PlayState* play, Actor* actor, Vec3f* pos, s32 arg3) { void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, f32 wallCheckRadius, f32 ceilingCheckHeight, s32 flags) { f32 sp74; - s32 pad; + s32 floorBgId; Vec3f sp64; sp74 = actor->world.pos.y - actor->prevPos.y; + floorBgId = actor->floorBgId; - if ((actor->floorBgId != BGCHECK_SCENE) && (actor->bgCheckFlags & BGCHECKFLAG_GROUND)) { - DynaPolyActor_TransformCarriedActor(&play->colCtx, actor->floorBgId, actor); + if ((floorBgId != BGCHECK_SCENE) && (actor->bgCheckFlags & BGCHECKFLAG_GROUND)) { + DynaPolyActor_TransformCarriedActor(&play->colCtx, floorBgId, actor); } if (flags & UPDBGCHECKINFO_FLAG_0) { @@ -1460,8 +1480,8 @@ void Actor_UpdateBgCheckInfo(PlayState* play, Actor* actor, f32 wallCheckHeight, actor->bgCheckFlags |= BGCHECKFLAG_WATER; } } else { - actor->bgCheckFlags &= ~(BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); actor->depthInWater = BGCHECK_Y_MIN; + actor->bgCheckFlags &= ~(BGCHECKFLAG_WATER | BGCHECKFLAG_WATER_TOUCH); } } } @@ -1530,10 +1550,12 @@ void func_8002EBCC(Actor* actor, PlayState* play, s32 flag) { lightDir.y = play->envCtx.dirLight1.params.dir.y; lightDir.z = play->envCtx.dirLight1.params.dir.z; +#if DEBUG_FEATURES if (R_HREG_MODE == HREG_MODE_PRINT_HILITE_INFO) { PRINTF("z_actor.c 3637 game_play->view.eye=[%f(%f) %f %f]\n", play->view.eye.x, play->view.eye.y, play->view.eye.z); } +#endif hilite = func_8002EABC(&actor->world.pos, &play->view.eye, &lightDir, play->state.gfxCtx); @@ -1599,8 +1621,7 @@ PosRot Actor_GetWorldPosShapeRot(Actor* actor) { * This distance will be weighted if Player is already locked onto another actor. */ f32 Attention_WeightedDistToPlayerSq(Actor* actor, Player* player, s16 playerShapeYaw) { - s16 yawTemp = (s16)(actor->yawTowardsPlayer - 0x8000) - playerShapeYaw; - s16 yawTempAbs = ABS(yawTemp); + s16 yawTempAbs = (s16)ABS((s16)((s16)(actor->yawTowardsPlayer - 0x8000) - playerShapeYaw)); if (player->focusActor != NULL) { if ((yawTempAbs > 0x4000) || (actor->flags & ACTOR_FLAG_LOCK_ON_DISABLED)) { @@ -1676,19 +1697,12 @@ s32 Attention_ShouldReleaseLockOn(Actor* actor, Player* player, s32 ignoreLeash) } if (!ignoreLeash) { - s16 yawDiff = (s16)(actor->yawTowardsPlayer - 0x8000) - player->actor.shape.rot.y; - s16 yawDiffAbs = ABS(yawDiff); - f32 distSq; + s16 yawDiffAbs = (s16)ABS((s16)((s16)(actor->yawTowardsPlayer - 0x8000) - player->actor.shape.rot.y)); + // This function is only called (and is only relevant) when `player->focusActor != NULL`, + // so the MAXFLOAT case is unreachable. + f32 distSq = ((player->focusActor == NULL) && (yawDiffAbs > 0x2AAA)) ? MAXFLOAT : actor->xyzDistToPlayerSq; - if ((player->focusActor == NULL) && (yawDiffAbs > 0x2AAA)) { - // This function is only called (and is only relevant) when `player->focusActor != NULL`. - // This is unreachable. - distSq = MAXFLOAT; - } else { - distSq = actor->xyzDistToPlayerSq; - } - - return !Attention_ActorIsInRange(actor, sAttentionRanges[actor->attentionRangeType].lockOnLeashScale * distSq); + return !Attention_ActorIsInRange(actor, distSq * sAttentionRanges[actor->attentionRangeType].lockOnLeashScale); } return false; @@ -1725,8 +1739,8 @@ s32 Actor_OfferTalkExchange(Actor* actor, PlayState* play, f32 xzRange, f32 yRan if ((player->actor.flags & ACTOR_FLAG_TALK) || ((exchangeItemId != EXCH_ITEM_NONE) && Player_InCsMode(play)) || (!actor->isLockedOn && - ((yRange < fabsf(actor->yDistToPlayer)) || (player->talkActorDistance < actor->xzDistToPlayer) || - (xzRange < actor->xzDistToPlayer)))) { + ((fabsf(actor->yDistToPlayer) > yRange) || (actor->xzDistToPlayer > player->talkActorDistance) || + (actor->xzDistToPlayer > xzRange)))) { return false; } @@ -1822,7 +1836,7 @@ s32 Actor_OfferGetItem(Actor* actor, PlayState* play, s32 getItemId, f32 xzRange (PLAYER_STATE1_DEAD | PLAYER_STATE1_CHARGING_SPIN_ATTACK | PLAYER_STATE1_13 | PLAYER_STATE1_14 | PLAYER_STATE1_18 | PLAYER_STATE1_19 | PLAYER_STATE1_20 | PLAYER_STATE1_21)) && Player_GetExplosiveHeld(player) < 0) { - if ((((player->heldActor != NULL) || (actor == player->talkActor)) && (getItemId > GI_NONE) && + if ((((player->heldActor != NULL) || (player->talkActor == actor)) && (getItemId > GI_NONE) && (getItemId < GI_MAX)) || (!(player->stateFlags1 & (PLAYER_STATE1_CARRYING_ACTOR | PLAYER_STATE1_29)))) { if ((actor->xzDistToPlayer < xzRange) && (fabsf(actor->yDistToPlayer) < yRange)) { @@ -2091,7 +2105,9 @@ s32 D_8015BC14; f32 D_8015BC18; void func_8002FA60(PlayState* play) { - Vec3f lightPos; + f32 lightPosX; + f32 lightPosY; + f32 lightPosZ; if (gSaveContext.save.info.fw.set) { gSaveContext.respawn[RESPAWN_MODE_TOP].data = 0x28; @@ -2112,10 +2128,10 @@ void func_8002FA60(PlayState* play) { } // clang-format off - lightPos.x = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.x; \ - lightPos.y = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.y + 80.0f; \ - lightPos.z = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.z; \ - Lights_PointNoGlowSetInfo(&D_8015BC00, lightPos.x, lightPos.y, lightPos.z, 0xFF, 0xFF, 0xFF, -1); + lightPosX = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.x; \ + lightPosY = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.y + 80.0f; \ + lightPosZ = gSaveContext.respawn[RESPAWN_MODE_TOP].pos.z; \ + Lights_PointNoGlowSetInfo(&D_8015BC00, lightPosX, lightPosY, lightPosZ, 0xFF, 0xFF, 0xFF, -1); // clang-format on D_8015BC10 = LightContext_InsertLight(play, &play->lightCtx, &D_8015BC00); @@ -2166,7 +2182,9 @@ void Actor_DrawFaroresWindPointer(PlayState* play) { } else { length = diff * (1.0f / D_8015BC18); speed = 20.0f / length; - speed = CLAMP_MIN(speed, 0.05f); + if (speed < 0.05f) { + speed = 0.05f; + } Math_StepToF(&D_8015BC18, 0.0f, speed); factor = (diff * (D_8015BC18 / prevNum)) / diff; curPos->x = nextPos->x + (dist.x * factor); @@ -2356,10 +2374,12 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { player = GET_PLAYER(play); +#if DEBUG_FEATURES if (0) { - // This ASSERT is optimized out but it exists due to its presence in rodata + // This ASSERT is optimized out, but it can be assumed to exist because its string is present in rodata ASSERT(gMaxActorId == ACTOR_ID_MAX, "MaxProfile == ACTOR_DLF_MAX", "../z_actor.c", UNK_LINE); } +#endif sp74 = NULL; freezeExceptionFlag = 0; @@ -2397,7 +2417,7 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { } for (i = 0; i < ARRAY_COUNT(actorCtx->actorLists); i++, categoryFreezeMaskP++) { - canFreezeCategory = (*categoryFreezeMaskP & player->stateFlags1); + canFreezeCategory = (player->stateFlags1 & *categoryFreezeMaskP); actor = actorCtx->actorLists[i].head; while (actor != NULL) { @@ -2419,8 +2439,8 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { actor = actor->next; } else if ((freezeExceptionFlag != 0 && !(actor->flags & freezeExceptionFlag)) || (freezeExceptionFlag == 0 && canFreezeCategory && - !((sp74 == actor) || (actor == player->naviActor) || (actor == player->heldActor) || - (&player->actor == actor->parent)))) { + !((sp74 == actor) || (player->naviActor == actor) || (player->heldActor == actor) || + (actor->parent == &player->actor)))) { CollisionCheck_ResetDamage(&actor->colChkInfo); actor = actor->next; } else if (actor->update == NULL) { @@ -2478,12 +2498,11 @@ void Actor_UpdateAll(PlayState* play, ActorContext* actorCtx) { } if ((actor == NULL) || (player->zTargetActiveTimer < 5)) { - actor = NULL; - if (actorCtx->attention.reticleSpinCounter != 0) { actorCtx->attention.reticleSpinCounter = 0; Sfx_PlaySfxCentered(NA_SE_SY_LOCK_OFF); } + actor = NULL; } Attention_Update(&actorCtx->attention, player, actor, play); @@ -2503,12 +2522,12 @@ void Actor_FaultPrint(Actor* actor, char* command) { #if DEBUG_FEATURES overlayEntry = actor->overlayEntry; name = overlayEntry->name != NULL ? overlayEntry->name : ""; - - PRINTF(T("アクターの名前(%08x:%s)\n", "Actor name (%08x:%s)\n"), actor, name); #else name = ""; #endif + PRINTF(T("アクターの名前(%08x:%s)\n", "Actor name (%08x:%s)\n"), actor, name); + if (command != NULL) { PRINTF(T("コメント:%s\n", "Command: %s\n"), command); } @@ -2520,6 +2539,9 @@ void Actor_FaultPrint(Actor* actor, char* command) { void Actor_Draw(PlayState* play, Actor* actor) { FaultClient faultClient; Lights* lights; +#if PLATFORM_IQUE + ObjectEntry* slots; +#endif Fault_AddClient(&faultClient, Actor_FaultPrint, actor, "Actor_draw"); @@ -2544,8 +2566,15 @@ void Actor_Draw(PlayState* play, Actor* actor) { Matrix_Scale(actor->scale.x, actor->scale.y, actor->scale.z, MTXMODE_APPLY); Actor_SetObjectDependency(play, actor); +#if !PLATFORM_IQUE gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[actor->objectSlot].segment); gSPSegment(POLY_XLU_DISP++, 0x06, play->objectCtx.slots[actor->objectSlot].segment); +#else + // Workaround for EGCS internal compiler error (see docs/compilers.md) + slots = play->objectCtx.slots; + gSPSegment(POLY_OPA_DISP++, 0x06, slots[actor->objectSlot].segment); + gSPSegment(POLY_XLU_DISP++, 0x06, slots[actor->objectSlot].segment); +#endif if (actor->colorFilterTimer != 0) { Color_RGBA8 color = { 0, 0, 0, 255 }; @@ -2791,7 +2820,7 @@ s32 Actor_CullingVolumeTest(PlayState* play, Actor* actor, Vec3f* projPos, f32 p (projPos->z < (actor->cullingVolumeDistance + actor->cullingVolumeScale))) { // Clamping `projW` affects points behind the camera, so that the culling volume has // a frustum shape in front of the camera and a box shape behind the camera. - invW = (projW < 1.0f) ? 1.0f : 1.0f / projW; + invW = (projW < 1.0f) ? 1.0f : 1.0f / (f32)projW; if ((((fabsf(projPos->x) - actor->cullingVolumeScale) * invW) < 1.0f) && (((projPos->y + actor->cullingVolumeDownward) * invW) > -1.0f) && @@ -2821,7 +2850,13 @@ void func_800315AC(PlayState* play, ActorContext* actorCtx) { while (actor != NULL) { ActorOverlay* overlayEntry = actor->overlayEntry; - char* actorName = overlayEntry->name != NULL ? overlayEntry->name : ""; + char* actorName; + +#if DEBUG_FEATURES + actorName = overlayEntry->name != NULL ? overlayEntry->name : ""; +#else + actorName = ""; +#endif gDPNoOpString(POLY_OPA_DISP++, actorName, i); gDPNoOpString(POLY_XLU_DISP++, actorName, i); @@ -3055,7 +3090,7 @@ Actor* Actor_RemoveFromCategory(PlayState* play, ActorContext* actorCtx, Actor* } void Actor_FreeOverlay(ActorOverlay* actorOverlay) { - PRINTF(VT_FGCOL(CYAN)); + PRINTF_COLOR_CYAN(); if (actorOverlay->numLoaded == 0) { ACTOR_DEBUG_PRINTF(T("アクタークライアントが0になりました\n", "Actor clients are now 0\n")); @@ -3078,7 +3113,7 @@ void Actor_FreeOverlay(ActorOverlay* actorOverlay) { actorOverlay->numLoaded); } - PRINTF(VT_RST); + PRINTF_RST(); } Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 posX, f32 posY, f32 posZ, s16 rotX, @@ -3104,7 +3139,7 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos ACTOR_DEBUG_PRINTF(T("アクタークラス追加 [%d:%s]\n", "Actor class addition [%d:%s]\n"), actorId, name); if (actorCtx->total > ACTOR_NUMBER_MAX) { - PRINTF(VT_COL(YELLOW, BLACK) T("Actorセット数オーバー\n", "Actor set number exceeded\n") VT_RST); + PRINTF(ACTOR_COLOR_WARNING T("Actorセット数オーバー\n", "Actor set number exceeded\n") ACTOR_RST); return NULL; } @@ -3136,21 +3171,21 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos } if (overlayEntry->loadedRamAddr == NULL) { - PRINTF(VT_COL(RED, WHITE) T("Actorプログラムメモリが確保できません\n", - "Cannot reserve actor program memory\n") VT_RST); + PRINTF(ACTOR_COLOR_ERROR T("Actorプログラムメモリが確保できません\n", + "Cannot reserve actor program memory\n") ACTOR_RST); return NULL; } Overlay_Load(overlayEntry->file.vromStart, overlayEntry->file.vromEnd, overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("OVL(a):Seg:%08x-%08x Ram:%08x-%08x Off:%08x %s\n", overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr, (uintptr_t)overlayEntry->loadedRamAddr + (uintptr_t)overlayEntry->vramEnd - (uintptr_t)overlayEntry->vramStart, (uintptr_t)overlayEntry->vramStart - (uintptr_t)overlayEntry->loadedRamAddr, name); - PRINTF(VT_RST); + PRINTF_RST(); overlayEntry->numLoaded = 0; } @@ -3166,8 +3201,8 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos if ((objectSlot < 0) || ((profile->category == ACTORCAT_ENEMY) && Flags_GetClear(play, play->roomCtx.curRoom.num))) { - PRINTF(VT_COL(RED, WHITE) T("データバンク無し!!<データバンク=%d>(profilep->bank=%d)\n", - "No data bank!! (profilep->bank=%d)\n") VT_RST, + PRINTF(ACTOR_COLOR_ERROR T("データバンク無し!!<データバンク=%d>(profilep->bank=%d)\n", + "No data bank!! (profilep->bank=%d)\n") ACTOR_RST, objectSlot, profile->objectId); Actor_FreeOverlay(overlayEntry); return NULL; @@ -3176,9 +3211,9 @@ Actor* Actor_Spawn(ActorContext* actorCtx, PlayState* play, s16 actorId, f32 pos actor = ZELDA_ARENA_MALLOC(profile->instanceSize, name, 1); if (actor == NULL) { - PRINTF(VT_COL(RED, WHITE) T("Actorクラス確保できません! %s <サイズ=%dバイト>\n", - "Actor class cannot be reserved! %s \n"), - VT_RST, name, profile->instanceSize); + PRINTF(ACTOR_COLOR_ERROR T("Actorクラス確保できません! %s <サイズ=%dバイト>\n", + "Actor class cannot be reserved! %s \n"), + ACTOR_RST, name, profile->instanceSize); Actor_FreeOverlay(overlayEntry); return NULL; } @@ -3281,39 +3316,45 @@ Actor* Actor_SpawnEntry(ActorContext* actorCtx, ActorEntry* actorEntry, PlayStat } Actor* Actor_Delete(ActorContext* actorCtx, Actor* actor, PlayState* play) { - UNUSED_NDEBUG char* name; + PlayState* play2 = (PlayState*)play; Player* player; Actor* newHead; ActorOverlay* overlayEntry; + UNUSED_NDEBUG char* name; player = GET_PLAYER(play); overlayEntry = actor->overlayEntry; + +#if DEBUG_FEATURES name = overlayEntry->name != NULL ? overlayEntry->name : ""; +#else + name = ""; +#endif ACTOR_DEBUG_PRINTF(T("アクタークラス削除 [%s]\n", "Actor class deleted [%s]\n"), name); - if ((player != NULL) && (actor == player->focusActor)) { + if ((player != NULL) && (player->focusActor == actor)) { Player_ReleaseLockOn(player); - Camera_RequestMode(Play_GetCamera(play, Play_GetActiveCamId(play)), CAM_MODE_NORMAL); + Camera_RequestMode(Play_GetCamera(play2, Play_GetActiveCamId(play2)), CAM_MODE_NORMAL); } - if (actor == actorCtx->attention.naviHoverActor) { + if (actorCtx->attention.naviHoverActor == actor) { actorCtx->attention.naviHoverActor = NULL; } - if (actor == actorCtx->attention.forcedLockOnActor) { + if (actorCtx->attention.forcedLockOnActor == actor) { actorCtx->attention.forcedLockOnActor = NULL; } - if (actor == actorCtx->attention.bgmEnemy) { + if (actorCtx->attention.bgmEnemy == actor) { actorCtx->attention.bgmEnemy = NULL; } Audio_StopSfxByPos(&actor->projectedPos); - Actor_Destroy(actor, play); + Actor_Destroy(actor, play2); - newHead = Actor_RemoveFromCategory(play, actorCtx, actor); + newHead = Actor_RemoveFromCategory(play2, actorCtx, actor); ZELDA_ARENA_FREE(actor, "../z_actor.c", 7242); @@ -3447,16 +3488,14 @@ Actor* Attention_FindActor(PlayState* play, ActorContext* actorCtx, Actor** atte // Search the first 3 actor categories first for an attention actor // These are Boss, Enemy, and Bg, in order. - for (i = 0; i < 3; i++) { + for (i = 0; i < 3; i++, category++) { Attention_FindActorInCategory(play, actorCtx, player, *category); - category++; } // If no actor in the above categories was found, then try searching in the remaining categories if (sNearestAttentionActor == NULL) { - for (; i < ARRAY_COUNT(sAttentionCategorySearchOrder); i++) { + for (; i < ARRAY_COUNT(sAttentionCategorySearchOrder); i++, category++) { Attention_FindActorInCategory(play, actorCtx, player, *category); - category++; } } } @@ -3477,7 +3516,7 @@ Actor* Actor_Find(ActorContext* actorCtx, s32 actorId, s32 actorCategory) { Actor* actor = actorCtx->actorLists[actorCategory].head; while (actor != NULL) { - if (actorId == actor->id) { + if (actor->id == actorId) { return actor; } actor = actor->next; @@ -3556,41 +3595,29 @@ s16 FaceChange_UpdateRandomSet(FaceChange* faceChange, s16 changeTimerBase, s16 } void BodyBreak_Alloc(BodyBreak* bodyBreak, s32 count, PlayState* play) { - u32 matricesSize; - u32 dListsSize; - u32 objectSlotsSize; + if ((bodyBreak->matrices = ZELDA_ARENA_MALLOC((count + 1) * sizeof(*bodyBreak->matrices), "../z_actor.c", 7540)) != + NULL && + (bodyBreak->dLists = ZELDA_ARENA_MALLOC((count + 1) * sizeof(*bodyBreak->dLists), "../z_actor.c", 7543)) != + NULL && + (bodyBreak->objectSlots = + ZELDA_ARENA_MALLOC((count + 1) * sizeof(*bodyBreak->objectSlots), "../z_actor.c", 7546)) != NULL) { - matricesSize = (count + 1) * sizeof(*bodyBreak->matrices); - bodyBreak->matrices = ZELDA_ARENA_MALLOC(matricesSize, "../z_actor.c", 7540); - - if (bodyBreak->matrices != NULL) { - dListsSize = (count + 1) * sizeof(*bodyBreak->dLists); - bodyBreak->dLists = ZELDA_ARENA_MALLOC(dListsSize, "../z_actor.c", 7543); + Lib_MemSet((u8*)bodyBreak->matrices, (count + 1) * sizeof(*bodyBreak->matrices), 0); + Lib_MemSet((u8*)bodyBreak->dLists, (count + 1) * sizeof(*bodyBreak->dLists), 0); + Lib_MemSet((u8*)bodyBreak->objectSlots, (count + 1) * sizeof(*bodyBreak->objectSlots), 0); + bodyBreak->val = 1; + } else { + if (bodyBreak->matrices != NULL) { + ZELDA_ARENA_FREE(bodyBreak->matrices, "../z_actor.c", 7558); + } if (bodyBreak->dLists != NULL) { - objectSlotsSize = (count + 1) * sizeof(*bodyBreak->objectSlots); - bodyBreak->objectSlots = ZELDA_ARENA_MALLOC(objectSlotsSize, "../z_actor.c", 7546); - - if (bodyBreak->objectSlots != NULL) { - Lib_MemSet((u8*)bodyBreak->matrices, matricesSize, 0); - Lib_MemSet((u8*)bodyBreak->dLists, dListsSize, 0); - Lib_MemSet((u8*)bodyBreak->objectSlots, objectSlotsSize, 0); - bodyBreak->val = 1; - return; - } + ZELDA_ARENA_FREE(bodyBreak->dLists, "../z_actor.c", 7561); } - } - if (bodyBreak->matrices != NULL) { - ZELDA_ARENA_FREE(bodyBreak->matrices, "../z_actor.c", 7558); - } - - if (bodyBreak->dLists != NULL) { - ZELDA_ARENA_FREE(bodyBreak->dLists, "../z_actor.c", 7561); - } - - if (bodyBreak->objectSlots != NULL) { - ZELDA_ARENA_FREE(bodyBreak->objectSlots, "../z_actor.c", 7564); + if (bodyBreak->objectSlots != NULL) { + ZELDA_ARENA_FREE(bodyBreak->objectSlots, "../z_actor.c", 7564); + } } } @@ -3606,7 +3633,7 @@ void BodyBreak_SetInfo(BodyBreak* bodyBreak, s32 limbIndex, s32 minLimbIndex, s3 bodyBreak->val++; } - if (limbIndex != bodyBreak->prevLimbIndex) { + if (bodyBreak->prevLimbIndex != limbIndex) { bodyBreak->count++; } @@ -3621,7 +3648,6 @@ void BodyBreak_SetInfo(BodyBreak* bodyBreak, s32 limbIndex, s32 minLimbIndex, s3 s32 BodyBreak_SpawnParts(Actor* actor, BodyBreak* bodyBreak, PlayState* play, s16 type) { EnPart* spawnedEnPart; - MtxF* mtx; s16 objectSlot; if (bodyBreak->val != BODYBREAK_STATUS_READY) { @@ -3641,10 +3667,9 @@ s32 BodyBreak_SpawnParts(Actor* actor, BodyBreak* bodyBreak, PlayState* play, s1 } } - mtx = &bodyBreak->matrices[bodyBreak->count]; - - spawnedEnPart = (EnPart*)Actor_SpawnAsChild(&play->actorCtx, actor, play, ACTOR_EN_PART, mtx->xw, mtx->yw, - mtx->zw, 0, 0, objectSlot, type); + spawnedEnPart = (EnPart*)Actor_SpawnAsChild( + &play->actorCtx, actor, play, ACTOR_EN_PART, bodyBreak->matrices[bodyBreak->count].xw, + bodyBreak->matrices[bodyBreak->count].yw, bodyBreak->matrices[bodyBreak->count].zw, 0, 0, objectSlot, type); if (spawnedEnPart != NULL) { #if OOT_VERSION < PAL_1_0 @@ -3682,8 +3707,8 @@ void Actor_SpawnFloorDustRing(PlayState* play, Actor* actor, Vec3f* posXZ, f32 r accel.y += (Rand_ZeroOne() - 0.5f) * 0.2f; for (i = amountMinusOne; i >= 0; i--) { - pos.x = Math_SinF(angle) * radius + posXZ->x; - pos.z = Math_CosF(angle) * radius + posXZ->z; + pos.x = posXZ->x + Math_SinF(angle) * radius; + pos.z = posXZ->z + Math_CosF(angle) * radius; accel.x = (Rand_ZeroOne() - 0.5f) * randAccelWeight; accel.z = (Rand_ZeroOne() - 0.5f) * randAccelWeight; @@ -3715,7 +3740,7 @@ void func_80033480(PlayState* play, Vec3f* posBase, f32 randRangeDiameter, s32 a pos.y = posBase->y + ((Rand_ZeroOne() - 0.5f) * randRangeDiameter); pos.z = posBase->z + ((Rand_ZeroOne() - 0.5f) * randRangeDiameter); - scale = (s16)((Rand_ZeroOne() * scaleBase) * 0.2f) + scaleBase; + scale = (s16)((scaleBase * Rand_ZeroOne()) * 0.2f) + scaleBase; var2 = arg6; if (var2 != 0) { @@ -3778,9 +3803,7 @@ void Actor_ChangeCategory(PlayState* play, ActorContext* actorCtx, Actor* actor, Actor* Actor_GetProjectileActor(PlayState* play, Actor* refActor, f32 radius) { Actor* actor; Vec3f spA8; - f32 deltaX; - f32 deltaY; - f32 deltaZ; + Vec3f delta; Vec3f sp90; Vec3f sp84; @@ -3797,13 +3820,13 @@ Actor* Actor_GetProjectileActor(PlayState* play, Actor* refActor, f32 radius) { (((ArmsHook*)actor)->timer == 0)) { actor = actor->next; } else { - deltaX = Math_SinS(actor->world.rot.y) * (actor->speed * 10.0f); - deltaY = actor->velocity.y + (actor->gravity * 10.0f); - deltaZ = Math_CosS(actor->world.rot.y) * (actor->speed * 10.0f); + delta.x = (actor->speed * 10.0f) * Math_SinS(actor->world.rot.y); + delta.y = actor->velocity.y + (actor->gravity * 10.0f); + delta.z = (actor->speed * 10.0f) * Math_CosS(actor->world.rot.y); - spA8.x = actor->world.pos.x + deltaX; - spA8.y = actor->world.pos.y + deltaY; - spA8.z = actor->world.pos.z + deltaZ; + spA8.x = actor->world.pos.x + delta.x; + spA8.y = actor->world.pos.y + delta.y; + spA8.z = actor->world.pos.z + delta.z; if (CollisionCheck_CylSideVsLineSeg(refActor->colChkInfo.cylRadius, refActor->colChkInfo.cylHeight, 0.0f, &refActor->world.pos, &actor->world.pos, &spA8, &sp90, @@ -3915,8 +3938,8 @@ s16 Actor_TestFloorInDirection(Actor* actor, PlayState* play, f32 distance, s16 Math_Vec3f_Copy(&prevActorPos, &actor->world.pos); prevBgCheckFlags = actor->bgCheckFlags; - dx = Math_SinS(angle) * distance; - dz = Math_CosS(angle) * distance; + dx = distance * Math_SinS(angle); + dz = distance * Math_CosS(angle); actor->world.pos.x += dx; actor->world.pos.z += dz; @@ -4065,7 +4088,7 @@ void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type) { f32 chainRotZ; f32 chainsTranslateX; f32 chainsTranslateY; - s32 pad; + f32 scale; entry = &sDoorLocksInfo[type]; chainRotZ = entry->chainsRotZInit; @@ -4078,8 +4101,8 @@ void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type) { { f32 rotZStep; - chainsTranslateX = sinf(entry->chainAngle - chainRotZ) * -(10 - frame) * 0.1f * entry->chainLength; - chainsTranslateY = cosf(entry->chainAngle - chainRotZ) * (10 - frame) * 0.1f * entry->chainLength; + chainsTranslateX = -(10 - frame) * sinf(entry->chainAngle - chainRotZ) * 0.1f * entry->chainLength; + chainsTranslateY = (10 - frame) * cosf(entry->chainAngle - chainRotZ) * 0.1f * entry->chainLength; for (i = 0; i < 4; i++) { @@ -4104,8 +4127,9 @@ void Actor_DrawDoorLock(PlayState* play, s32 frame, s32 type) { } } + scale = frame * 0.1f; Matrix_Put(&baseMtxF); - Matrix_Scale(frame * 0.1f, frame * 0.1f, frame * 0.1f, MTXMODE_APPLY); + Matrix_Scale(scale, scale, scale, MTXMODE_APPLY); MATRIX_FINALIZE_AND_LOAD(POLY_OPA_DISP++, play->state.gfxCtx, "../z_actor.c", 8314); gSPDisplayList(POLY_OPA_DISP++, entry->lockDL); @@ -4255,7 +4279,7 @@ void Npc_TrackPointWithLimits(Actor* actor, NpcInteractInfo* interactInfo, s16 m s16 minHeadPitch, s16 maxTorsoYaw, s16 maxTorsoPitch, s16 minTorsoPitch, u8 rotateYaw) { s16 pitchTowardsTarget; s16 yawTowardsTarget; - s16 torsoPitch; + s16 pitch; s16 bodyYawDiff; s16 temp; Vec3f offsetActorPos; @@ -4266,7 +4290,8 @@ void Npc_TrackPointWithLimits(Actor* actor, NpcInteractInfo* interactInfo, s16 m pitchTowardsTarget = Math_Vec3f_Pitch(&offsetActorPos, &interactInfo->trackPos); yawTowardsTarget = Math_Vec3f_Yaw(&offsetActorPos, &interactInfo->trackPos); - bodyYawDiff = Math_Vec3f_Yaw(&actor->world.pos, &interactInfo->trackPos) - actor->shape.rot.y; + bodyYawDiff = Math_Vec3f_Yaw(&actor->world.pos, &interactInfo->trackPos); + bodyYawDiff -= actor->shape.rot.y; temp = CLAMP(bodyYawDiff, -maxHeadYaw, maxHeadYaw); Math_SmoothStepToS(&interactInfo->headRot.y, temp, 6, 2000, 1); @@ -4286,12 +4311,12 @@ void Npc_TrackPointWithLimits(Actor* actor, NpcInteractInfo* interactInfo, s16 m Math_SmoothStepToS(&actor->shape.rot.y, yawTowardsTarget, 6, 2000, 1); } - temp = CLAMP(pitchTowardsTarget, minHeadPitch, (s16)(u16)maxHeadPitch); + pitch = pitchTowardsTarget; + temp = CLAMP(pitch, minHeadPitch, maxHeadPitch); Math_SmoothStepToS(&interactInfo->headRot.x, temp, 6, 2000, 1); - torsoPitch = pitchTowardsTarget - interactInfo->headRot.x; - - temp = CLAMP(torsoPitch, minTorsoPitch, maxTorsoPitch); + pitch -= interactInfo->headRot.x; + temp = CLAMP(pitch, minTorsoPitch, maxTorsoPitch); Math_SmoothStepToS(&interactInfo->torsoRot.x, temp, 6, 2000, 1); } @@ -4535,8 +4560,8 @@ void Actor_UpdateFidgetTables(PlayState* play, s16* fidgetTableY, s16* fidgetTab s32 i; for (i = 0; i < tableLen; i++) { - fidgetTableY[i] = (FIDGET_FREQ_Y + FIDGET_FREQ_LIMB * i) * frames; - fidgetTableZ[i] = (FIDGET_FREQ_Z + FIDGET_FREQ_LIMB * i) * frames; + fidgetTableY[i] = frames * (FIDGET_FREQ_Y + FIDGET_FREQ_LIMB * i); + fidgetTableZ[i] = frames * (FIDGET_FREQ_Z + FIDGET_FREQ_LIMB * i); } } @@ -4591,7 +4616,7 @@ Actor* Actor_FindNearby(PlayState* play, Actor* refActor, s16 actorId, u8 actorC Actor* actor = play->actorCtx.actorLists[actorCategory].head; while (actor != NULL) { - if (actor == refActor || ((actorId != -1) && (actorId != actor->id))) { + if (actor == refActor || ((actorId != -1) && (actor->id != actorId))) { actor = actor->next; } else { if (Actor_WorldDistXYZToActor(refActor, actor) <= range) { @@ -4663,7 +4688,7 @@ u8 func_800355E4(PlayState* play, Collider* collider) { } u8 Actor_ApplyDamage(Actor* actor) { - if (actor->colChkInfo.damage >= actor->colChkInfo.health) { + if (actor->colChkInfo.health <= actor->colChkInfo.damage) { actor->colChkInfo.health = 0; } else { actor->colChkInfo.health -= actor->colChkInfo.damage; @@ -4673,26 +4698,28 @@ u8 Actor_ApplyDamage(Actor* actor) { } void Actor_SetDropFlag(Actor* actor, ColliderElement* elem, s32 freezeFlag) { - if (elem->acHitElem == NULL) { + ColliderElement* acHitElem = elem->acHitElem; + + if (acHitElem == NULL) { actor->dropFlag = 0x00; - } else if (freezeFlag && (elem->acHitElem->atDmgInfo.dmgFlags & (DMG_UNKNOWN_1 | DMG_MAGIC_ICE | DMG_MAGIC_FIRE))) { - actor->freezeTimer = elem->acHitElem->atDmgInfo.damage; + } else if (freezeFlag && (acHitElem->atDmgInfo.dmgFlags & (DMG_UNKNOWN_1 | DMG_MAGIC_ICE | DMG_MAGIC_FIRE))) { + actor->freezeTimer = acHitElem->atDmgInfo.damage; actor->dropFlag = 0x00; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_FIRE) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_FIRE) { actor->dropFlag = 0x01; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_ICE) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_ICE) { actor->dropFlag = 0x02; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK1) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK1) { actor->dropFlag = 0x04; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK2) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK2) { actor->dropFlag = 0x08; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK3) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK3) { actor->dropFlag = 0x10; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_LIGHT) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_LIGHT) { actor->dropFlag = 0x20; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_MAGIC_LIGHT) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_MAGIC_LIGHT) { if (freezeFlag) { - actor->freezeTimer = elem->acHitElem->atDmgInfo.damage; + actor->freezeTimer = acHitElem->atDmgInfo.damage; } actor->dropFlag = 0x40; } else { @@ -4702,6 +4729,7 @@ void Actor_SetDropFlag(Actor* actor, ColliderElement* elem, s32 freezeFlag) { void Actor_SetDropFlagJntSph(Actor* actor, ColliderJntSph* jntSph, s32 freezeFlag) { ColliderElement* elem; + ColliderElement* acHitElem; s32 flag; s32 i; @@ -4709,27 +4737,27 @@ void Actor_SetDropFlagJntSph(Actor* actor, ColliderJntSph* jntSph, s32 freezeFla for (i = jntSph->count - 1; i >= 0; i--) { elem = &jntSph->elements[i].base; - if (elem->acHitElem == NULL) { + acHitElem = elem->acHitElem; + if (acHitElem == NULL) { flag = 0x00; - } else if (freezeFlag && - (elem->acHitElem->atDmgInfo.dmgFlags & (DMG_UNKNOWN_1 | DMG_MAGIC_ICE | DMG_MAGIC_FIRE))) { - actor->freezeTimer = elem->acHitElem->atDmgInfo.damage; + } else if (freezeFlag && (acHitElem->atDmgInfo.dmgFlags & (DMG_UNKNOWN_1 | DMG_MAGIC_ICE | DMG_MAGIC_FIRE))) { + actor->freezeTimer = acHitElem->atDmgInfo.damage; flag = 0x00; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_FIRE) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_FIRE) { flag = 0x01; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_ICE) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_ICE) { flag = 0x02; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK1) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK1) { flag = 0x04; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK2) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK2) { flag = 0x08; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK3) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_UNK3) { flag = 0x10; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_LIGHT) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_ARROW_LIGHT) { flag = 0x20; - } else if (elem->acHitElem->atDmgInfo.dmgFlags & DMG_MAGIC_LIGHT) { + } else if (acHitElem->atDmgInfo.dmgFlags & DMG_MAGIC_LIGHT) { if (freezeFlag) { - actor->freezeTimer = elem->acHitElem->atDmgInfo.damage; + actor->freezeTimer = acHitElem->atDmgInfo.damage; } flag = 0x40; } else { @@ -4811,28 +4839,40 @@ void func_80035B18(PlayState* play, Actor* actor, u16 textId) { * Tests if event_chk_inf flag is set. */ s32 Flags_GetEventChkInf(s32 flag) { - return GET_EVENTCHKINF(flag); + s32 mask = EVENTCHKINF_MASK(flag); + s32 index = EVENTCHKINF_INDEX(flag); + + return gSaveContext.save.info.eventChkInf[index] & mask; } /** * Sets event_chk_inf flag. */ void Flags_SetEventChkInf(s32 flag) { - SET_EVENTCHKINF(flag); + s32 mask = EVENTCHKINF_MASK(flag); + s32 index = EVENTCHKINF_INDEX(flag); + + gSaveContext.save.info.eventChkInf[index] |= mask; } /** * Tests if inf_table flag is set. */ s32 Flags_GetInfTable(s32 flag) { - return GET_INFTABLE(flag); + s32 mask = INFTABLE_MASK(flag); + s32 index = INFTABLE_INDEX(flag); + + return gSaveContext.save.info.infTable[index] & mask; } /** * Sets inf_table flag. */ void Flags_SetInfTable(s32 flag) { - SET_INFTABLE(flag); + s32 mask = INFTABLE_MASK(flag); + s32 index = INFTABLE_INDEX(flag); + + gSaveContext.save.info.infTable[index] |= mask; } u32 func_80035BFC(PlayState* play, s16 arg1) { @@ -5144,8 +5184,6 @@ u32 func_80035BFC(PlayState* play, s16 arg1) { } else { retTextId = 0x7007; } - } else { - retTextId = 0; } break; case 19: @@ -5487,8 +5525,6 @@ u32 func_80035BFC(PlayState* play, s16 arg1) { } else { retTextId = 0x401A; } - } else { - retTextId = 0; } break; case 58: @@ -5555,8 +5591,6 @@ u32 func_80035BFC(PlayState* play, s16 arg1) { } else { retTextId = 0x2030; } - } else { - retTextId = 0; } } break; @@ -5943,6 +5977,8 @@ s32 func_800374E0(PlayState* play, Actor* actor, u16 textId) { Flags_SetInfTable(INFTABLE_9A); ret = 0; break; + case 0x2035: + break; case 0x2036: case 0x2037: if (msgCtx->choiceIndex == 0) { @@ -6070,7 +6106,7 @@ s32 func_80037CB8(PlayState* play, Actor* actor, s16 arg2) { return ret; } -s32 func_80037D98(PlayState* play, Actor* actor, s16 arg2, s32* arg3) { +s32 func_80037D98(PlayState* play, Actor* actor, s32 arg2, s32* arg3) { s16 var; s16 sp2C; s16 sp2A; diff --git a/src/code/z_bg_collect.c b/src/code/z_bg_collect.c index 2bdfc6bcdc..bd349765de 100644 --- a/src/code/z_bg_collect.c +++ b/src/code/z_bg_collect.c @@ -40,14 +40,14 @@ void DynaPolyActor_UpdateCarriedActorPos(CollisionContext* colCtx, s32 bgId, Act if (BGCHECK_XYZ_ABSMAX <= pos.x || pos.x <= -BGCHECK_XYZ_ABSMAX || BGCHECK_XYZ_ABSMAX <= pos.y || pos.y <= -BGCHECK_XYZ_ABSMAX || BGCHECK_XYZ_ABSMAX <= pos.z || pos.z <= -BGCHECK_XYZ_ABSMAX) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); //! @bug file and line are not passed to PRINTF PRINTF(T("BGCheckCollection_typicalActorPos():位置が妥当ではありません。\n" "pos (%f,%f,%f) file:%s line:%d\n", "BGCheckCollection_typicalActorPos(): Position is not valid. \n" "pos (%f,%f,%f) file:%s line:%d\n"), pos.x, pos.y, pos.z); - PRINTF(VT_RST); + PRINTF_RST(); } #endif } diff --git a/src/code/z_bgcheck.c b/src/code/z_bgcheck.c index c8b0e491dc..57a2c80289 100644 --- a/src/code/z_bgcheck.c +++ b/src/code/z_bgcheck.c @@ -2,7 +2,7 @@ #include "terminal.h" #include "line_numbers.h" -#pragma increment_block_number "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128" +#pragma increment_block_number "ntsc-1.0:112 ntsc-1.1:112 ntsc-1.2:112" u16 DynaSSNodeList_GetNextNodeIdx(DynaSSNodeList* nodeList); void BgCheck_GetStaticLookupIndicesFromPos(CollisionContext* colCtx, Vec3f* pos, Vec3i* sector); @@ -89,11 +89,11 @@ u16 sSurfaceMaterialToSfxOffset[SURFACE_MATERIAL_MAX] = { s32 BgCheck_PosErrorCheck(Vec3f* pos, const char* file, int line) { if (pos->x >= BGCHECK_XYZ_ABSMAX || pos->x <= -BGCHECK_XYZ_ABSMAX || pos->y >= BGCHECK_XYZ_ABSMAX || pos->y <= -BGCHECK_XYZ_ABSMAX || pos->z >= BGCHECK_XYZ_ABSMAX || pos->z <= -BGCHECK_XYZ_ABSMAX) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("T_BGCheck_PosErrorCheck():位置が妥当ではありません。pos (%f,%f,%f) file:%s line:%d\n", "T_BGCheck_PosErrorCheck(): Position is invalid. pos (%f,%f,%f) file:%s line:%d\n"), pos->x, pos->y, pos->z, file, line); - PRINTF(VT_RST); + PRINTF_RST(); return true; } return false; @@ -307,11 +307,11 @@ void CollisionPoly_GetVerticesByBgId(CollisionPoly* poly, s32 bgId, CollisionCon Vec3s* vtxList; if (poly == NULL || bgId > BG_ACTOR_MAX || dest == NULL) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF(T("T_Polygon_GetVertex_bg_ai(): Error %d %d %d 引数が適切ではありません。処理を終了します。\n", "T_Polygon_GetVertex_bg_ai(): Error %d %d %d Argument not appropriate. Processing terminated.\n"), poly == NULL, bgId > BG_ACTOR_MAX, dest == NULL); - PRINTF(VT_RST); + PRINTF_RST(); if (dest != NULL) { //! @bug: dest[2] x and y are not set to 0 @@ -1648,10 +1648,10 @@ void BgCheck_Allocate(CollisionContext* colCtx, PlayState* play, CollisionHeader SSNodeList_Alloc(play, &colCtx->polyNodes, tblMax, colCtx->colHeader->numPolygons); lookupTblMemSize = BgCheck_InitializeStaticLookup(colCtx, play, colCtx->lookupTbl); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("/*---結局 BG使用サイズ %dbyte---*/\n", "/*---BG size used in the end %dbyte---*/\n"), memSize + lookupTblMemSize); - PRINTF(VT_RST); + PRINTF_RST(); DynaPoly_Init(play, &colCtx->dyna); DynaPoly_Alloc(play, &colCtx->dyna); @@ -1669,10 +1669,10 @@ CollisionHeader* BgCheck_GetCollisionHeader(CollisionContext* colCtx, s32 bgId) return NULL; } if (!(colCtx->dyna.bgActorFlags[bgId] & BGACTOR_IN_USE)) { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); PRINTF(T("T_BGCheck_getBGDataInfo():そのbg_actor_indexは使われておりません。index=%d\n", "T_BGCheck_getBGDataInfo(): That bg_actor_index is not in use. index=%d\n")); - PRINTF(VT_RST); + PRINTF_RST(); return NULL; } return colCtx->dyna.bgActors[bgId].colHeader; @@ -2738,10 +2738,10 @@ s32 DynaPoly_SetBgActor(PlayState* play, DynaCollisionContext* dyna, Actor* acto } if (!foundSlot) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("DynaPolyInfo_setActor():ダイナミックポリゴン 空きインデックスはありません\n", "DynaPolyInfo_setActor(): Dynamic polygon no free indexes\n")); - PRINTF(VT_RST); + PRINTF_RST(); return BG_ACTOR_MAX; } @@ -2749,9 +2749,9 @@ s32 DynaPoly_SetBgActor(PlayState* play, DynaCollisionContext* dyna, Actor* acto dyna->bitFlag |= DYNAPOLY_INVALIDATE_LOOKUP; dyna->bgActorFlags[bgId] &= ~BGACTOR_1; - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("DynaPolyInfo_setActor():index %d\n", bgId); - PRINTF(VT_RST); + PRINTF_RST(); return bgId; } @@ -2801,27 +2801,27 @@ void DynaPoly_EnableCeilingCollision(PlayState* play, DynaCollisionContext* dyna void DynaPoly_DeleteBgActor(PlayState* play, DynaCollisionContext* dyna, s32 bgId) { DynaPolyActor* actor; - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("DynaPolyInfo_delReserve():index %d\n", bgId); - PRINTF(VT_RST); + PRINTF_RST(); if (!DynaPoly_IsBgIdBgActor(bgId)) { #if DEBUG_FEATURES if (bgId == -1) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("DynaPolyInfo_delReserve():削除されているはずの(?)\n" "インデックス(== -1)のため,処理を中止します。\n", "DynaPolyInfo_delReserve():The index that should have been deleted(?)\n" " was(== -1), processing aborted.\n")); - PRINTF(VT_RST); + PRINTF_RST(); } else { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("DynaPolyInfo_delReserve():" "確保していない/出来なかったインデックスの解放のため、処理を中止します。index == %d\n", "DynaPolyInfo_delReserve():" " Unable to deallocate index / index unallocated, processing aborted. index == %d\n"), bgId); - PRINTF(VT_RST); + PRINTF_RST(); } #endif @@ -2880,14 +2880,14 @@ void DynaPoly_AddBgActorToLookup(PlayState* play, DynaCollisionContext* dyna, s3 #if DEBUG_FEATURES if (!(dyna->polyListMax >= *polyStartIndex + pbgdata->numPolygons)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("DynaPolyInfo_expandSRT():polygon over %dが%dを越えるとダメ\n", "DynaPolyInfo_expandSRT():polygon over do not use if %d exceeds %d\n"), *polyStartIndex + pbgdata->numPolygons, dyna->polyListMax); } if (!(dyna->vtxListMax >= *vtxStartIndex + pbgdata->numVertices)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("DynaPolyInfo_expandSRT():vertex over %dが%dを越えるとダメ\n", "DynaPolyInfo_expandSRT():vertex over do not use if %d exceeds %d\n"), *vtxStartIndex + pbgdata->numVertices, dyna->vtxListMax); @@ -3067,9 +3067,9 @@ void DynaPoly_UpdateContext(PlayState* play, DynaCollisionContext* dyna) { for (i = 0; i < BG_ACTOR_MAX; i++) { if (dyna->bgActorFlags[i] & BGACTOR_1) { // Initialize BgActor - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("DynaPolyInfo_setup():削除 index=%d\n", "DynaPolyInfo_setup(): Delete index=%d\n"), i); - PRINTF(VT_RST); + PRINTF_RST(); dyna->bgActorFlags[i] = 0; BgActor_Initialize(play, &dyna->bgActors[i]); @@ -3077,9 +3077,9 @@ void DynaPoly_UpdateContext(PlayState* play, DynaCollisionContext* dyna) { } if (dyna->bgActors[i].actor != NULL && dyna->bgActors[i].actor->update == NULL) { // Delete BgActor - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("DynaPolyInfo_setup():削除 index=%d\n", "DynaPolyInfo_setup(): Delete index=%d\n"), i); - PRINTF(VT_RST); + PRINTF_RST(); actor = DynaPoly_GetActor(&play->colCtx, i); if (actor == NULL) { return; diff --git a/src/code/z_camera.c b/src/code/z_camera.c index e4090d484e..f36aba0d7d 100644 --- a/src/code/z_camera.c +++ b/src/code/z_camera.c @@ -4,7 +4,7 @@ #include "terminal.h" #include "overlays/actors/ovl_En_Horse/z_en_horse.h" -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" s16 Camera_RequestSettingImpl(Camera* camera, s16 requestedSetting, s16 flags); @@ -3639,7 +3639,7 @@ s32 Camera_KeepOn3(Camera* camera) { } #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ntsc-1.0:144 ntsc-1.1:144 ntsc-1.2:144 pal-1.0:142 pal-1.1:142" + "ntsc-1.0:129 ntsc-1.1:129 ntsc-1.2:129 pal-1.0:127 pal-1.1:127" s32 Camera_KeepOn4(Camera* camera) { static Vec3f D_8015BD50; diff --git a/src/code/z_collision_check.c b/src/code/z_collision_check.c index 0567fd15a1..03e97bcc16 100644 --- a/src/code/z_collision_check.c +++ b/src/code/z_collision_check.c @@ -16,7 +16,7 @@ #include "z_lib.h" #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ntsc-1.0:96 ntsc-1.1:96 ntsc-1.2:96 pal-1.0:96 pal-1.1:96" + "ntsc-1.0:88 ntsc-1.1:88 ntsc-1.2:88 pal-1.0:88 pal-1.1:88" typedef s32 (*ColChkResetFunc)(PlayState*, Collider*); typedef void (*ColChkApplyFunc)(PlayState*, CollisionCheckContext*, Collider*); @@ -367,9 +367,9 @@ s32 Collider_SetJntSphToActor(PlayState* play, ColliderJntSph* dest, ColliderJnt if (dest->elements == NULL) { dest->count = 0; - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("ClObjJntSph_set():zelda_malloc()出来ません。\n", "ClObjJntSph_set():zelda_malloc() Can not.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return false; } @@ -395,9 +395,9 @@ s32 Collider_SetJntSphAllocType1(PlayState* play, ColliderJntSph* dest, Actor* a if (dest->elements == NULL) { dest->count = 0; - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("ClObjJntSph_set3():zelda_malloc_出来ません。\n", "ClObjJntSph_set3():zelda_malloc_ Can not.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return false; } @@ -423,9 +423,9 @@ s32 Collider_SetJntSphAlloc(PlayState* play, ColliderJntSph* dest, Actor* actor, if (dest->elements == NULL) { dest->count = 0; - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("ClObjJntSph_set5():zelda_malloc出来ません\n", "ClObjJntSph_set5():zelda_malloc Can not\n")); - PRINTF(VT_RST); + PRINTF_RST(); return false; } for (destElem = dest->elements, srcElem = src->elements; destElem < dest->elements + dest->count; @@ -729,9 +729,9 @@ s32 Collider_SetTrisAllocType1(PlayState* play, ColliderTris* dest, Actor* actor dest->elements = ZELDA_ARENA_MALLOC(dest->count * sizeof(ColliderTrisElement), "../z_collision_check.c", 2156); if (dest->elements == NULL) { dest->count = 0; - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("ClObjTris_set3():zelda_malloc()出来ません\n", "ClObjTris_set3():zelda_malloc() Can not\n")); - PRINTF(VT_RST); + PRINTF_RST(); return false; } for (destElem = dest->elements, srcElem = src->elements; destElem < dest->elements + dest->count; @@ -755,9 +755,9 @@ s32 Collider_SetTrisAlloc(PlayState* play, ColliderTris* dest, Actor* actor, Col dest->elements = ZELDA_ARENA_MALLOC(dest->count * sizeof(ColliderTrisElement), "../z_collision_check.c", 2207); if (dest->elements == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("ClObjTris_set5():zelda_malloc出来ません\n", "ClObjTris_set5():zelda_malloc Can not\n")); - PRINTF(VT_RST); + PRINTF_RST(); dest->count = 0; return false; } diff --git a/src/code/z_common_data.c b/src/code/z_common_data.c index 448e387af3..f571cb1a66 100644 --- a/src/code/z_common_data.c +++ b/src/code/z_common_data.c @@ -3,7 +3,7 @@ #include "versions.h" #pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192" + "ntsc-1.0:176 ntsc-1.1:176 ntsc-1.2:176 pal-1.0:160 pal-1.1:160" ALIGNED(16) SaveContext gSaveContext; u32 D_8015FA88; @@ -24,7 +24,7 @@ void SaveContext_Init(void) { gSaveContext.dogIsLost = true; gSaveContext.nextTransitionType = TRANS_NEXT_TYPE_DEFAULT; gSaveContext.prevHudVisibilityMode = HUD_VISIBILITY_ALL; -#if OOT_NTSC && OOT_VERSION < GC_US +#if OOT_NTSC && OOT_VERSION < GC_US || PLATFORM_IQUE if (gCurrentRegion == REGION_JP) { gSaveContext.language = LANGUAGE_JPN; } diff --git a/src/code/z_construct.c b/src/code/z_construct.c index 374665d385..fa0f4a38d2 100644 --- a/src/code/z_construct.c +++ b/src/code/z_construct.c @@ -19,17 +19,17 @@ void Interface_Init(PlayState* play) { View_Init(&interfaceCtx->view, play->state.gfxCtx); interfaceCtx->unk_1EC = interfaceCtx->unk_1EE = interfaceCtx->unk_1F0 = 0; + interfaceCtx->unk_1F4 = 0.0f; interfaceCtx->unk_1FA = interfaceCtx->unk_261 = interfaceCtx->unk_1FC = 0; interfaceCtx->unk_22E = 0; interfaceCtx->lensMagicConsumptionTimer = 16; - interfaceCtx->unk_1F4 = 0.0f; interfaceCtx->unk_228 = XREG(95); - interfaceCtx->minimapAlpha = 0; - interfaceCtx->unk_260 = 0; interfaceCtx->unk_244 = interfaceCtx->aAlpha = interfaceCtx->bAlpha = interfaceCtx->cLeftAlpha = interfaceCtx->cDownAlpha = interfaceCtx->cRightAlpha = interfaceCtx->healthAlpha = interfaceCtx->startAlpha = interfaceCtx->magicAlpha = 0; + interfaceCtx->minimapAlpha = 0; + interfaceCtx->unk_260 = 0; parameterSize = (uintptr_t)_parameter_staticSegmentRomEnd - (uintptr_t)_parameter_staticSegmentRomStart; @@ -204,7 +204,7 @@ void Interface_Init(PlayState* play) { void Message_Init(PlayState* play) { MessageContext* msgCtx = &play->msgCtx; - s32 pad; + Font* font = &msgCtx->font; Message_SetTables(); @@ -224,7 +224,7 @@ void Message_Init(PlayState* play) { PRINTF(T("吹き出しgame_alloc=%x\n", "Textbox game_alloc=%x\n"), TEXTBOX_SEGMENT_SIZE); ASSERT(msgCtx->textboxSegment != NULL, "message->fukidashiSegment != NULL", "../z_construct.c", 352); - Font_LoadOrderedFont(&play->msgCtx.font); + Font_LoadOrderedFont(font); YREG(31) = 0; } @@ -484,7 +484,11 @@ void Regs_InitDataImpl(void) { R_TEXTBOX_X_TARGET = 54; R_TEXTBOX_Y_TARGET = 48; R_TEXTBOX_WIDTH_TARGET = 128; +#if !PLATFORM_IQUE R_TEXTBOX_HEIGHT_TARGET = 64; +#else + R_TEXTBOX_HEIGHT_TARGET = 74; +#endif R_TEXTBOX_TEXWIDTH_TARGET = 2048; R_TEXTBOX_TEXHEIGHT_TARGET = 512; XREG(78) = 96; diff --git a/src/code/z_eff_shield_particle.c b/src/code/z_eff_shield_particle.c index c66934a4ff..74cd6a435a 100644 --- a/src/code/z_eff_shield_particle.c +++ b/src/code/z_eff_shield_particle.c @@ -18,10 +18,10 @@ void EffectShieldParticle_Init(void* thisx, void* initParamsx) { if ((this != NULL) && (initParams != NULL)) { this->numElements = initParams->numElements; if (this->numElements > ARRAY_COUNT(this->elements)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("EffectShieldParticle_ct():パーティクル数がオーバしてます。\n", "EffectShieldParticle_ct(): Number of particles exceeded.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return; } diff --git a/src/code/z_effect_soft_sprite.c b/src/code/z_effect_soft_sprite.c index 4041426b41..9a3df7eef3 100644 --- a/src/code/z_effect_soft_sprite.c +++ b/src/code/z_effect_soft_sprite.c @@ -197,7 +197,7 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initParams) { overlayEntry->loadedRamAddr = ZELDA_ARENA_MALLOC_R(overlaySize, "../z_effect_soft_sprite.c", 585); if (overlayEntry->loadedRamAddr == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("EffectSoftSprite2_makeEffect():zelda_malloc_r()により,%dbyteのメモリ確保ができま\n" "せん。そのため、プログラムのロードも\n" "出来ません。ただいま危険な状態です!\n" @@ -207,18 +207,18 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initParams) { "cannot be loaded. What a dangerous situation!\n" "Naturally, effects will not be produced either.\n"), overlaySize); - PRINTF(VT_RST); + PRINTF_RST(); return; } Overlay_Load(overlayEntry->file.vromStart, overlayEntry->file.vromEnd, overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("EFFECT SS OVL:SegRom %08x %08x, Seg %08x %08x, RamStart %08x, type: %d\n", overlayEntry->file.vromStart, overlayEntry->file.vromEnd, overlayEntry->vramStart, overlayEntry->vramEnd, overlayEntry->loadedRamAddr, type); - PRINTF(VT_RST); + PRINTF_RST(); } profile = (void*)(uintptr_t)((overlayEntry->profile != NULL) @@ -246,14 +246,14 @@ void EffectSs_Spawn(PlayState* play, s32 type, s32 priority, void* initParams) { sEffectSsInfo.table[index].priority = priority; if (profile->init(play, index, &sEffectSsInfo.table[index], initParams) == 0) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("EffectSoftSprite2_makeEffect():" "何らかの理由でコンストラクト失敗。コンストラクターがエラーを返しました。" "エフェクトの追加を中止します。\n", "EffectSoftSprite2_makeEffect(): " "Construction failed for some reason. The constructor returned an error. " "Ceasing effect addition.\n")); - PRINTF(VT_RST); + PRINTF_RST(); EffectSs_Reset(&sEffectSsInfo.table[index]); } } @@ -313,7 +313,7 @@ void EffectSs_DrawAll(PlayState* play) { if ((sEffectSsInfo.table[i].pos.x > 32000.0f) || (sEffectSsInfo.table[i].pos.x < -32000.0f) || (sEffectSsInfo.table[i].pos.y > 32000.0f) || (sEffectSsInfo.table[i].pos.y < -32000.0f) || (sEffectSsInfo.table[i].pos.z > 32000.0f) || (sEffectSsInfo.table[i].pos.z < -32000.0f)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("EffectSoftSprite2_disp():位置が領域外のため " "削除します。エフェクトラベルNo.%d:プログラムの方で対応をお願いします。ここです ==> " "pos(%f, %f, %f)で、ラベルはz_effect_soft_sprite_dlftbls.declにあります。\n", @@ -322,10 +322,10 @@ void EffectSs_DrawAll(PlayState* play) { "pos(%f, %f, %f) and the label is in z_effect_soft_sprite_dlftbls.decl.\n"), sEffectSsInfo.table[i].type, sEffectSsInfo.table[i].pos.x, sEffectSsInfo.table[i].pos.y, sEffectSsInfo.table[i].pos.z); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("もし、posを別のことに使っている場合相談に応じます。\n", "If you are using pos for something else, consult me.\n")); - PRINTF(VT_RST); + PRINTF_RST(); EffectSs_Delete(&sEffectSsInfo.table[i]); } else { diff --git a/src/code/z_en_item00.c b/src/code/z_en_item00.c index 64021830da..31386556c5 100644 --- a/src/code/z_en_item00.c +++ b/src/code/z_en_item00.c @@ -3,7 +3,7 @@ #include "assets/objects/gameplay_keep/gameplay_keep.h" #include "overlays/effects/ovl_Effect_Ss_Dead_Sound/z_eff_ss_dead_sound.h" -#pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-eu-mq-dbg:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128" \ +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 gc-eu-mq-dbg:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128" \ "gc-us-mq:128 ntsc-1.2:128" #define FLAGS 0 diff --git a/src/code/z_horse.c b/src/code/z_horse.c index 2935a66f89..f6f55c9d06 100644 --- a/src/code/z_horse.c +++ b/src/code/z_horse.c @@ -115,11 +115,11 @@ void Horse_SetupInGameplay(PlayState* play, Player* player) { horseActor->room = -1; } } else { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF( T("Horse_SetNormal():%d セットスポットまずいです。\n", "Horse_SetNormal():%d set spot is no good.\n"), gSaveContext.save.info.horseData.sceneId); - PRINTF(VT_RST); + PRINTF_RST(); Horse_ResetHorseData(play); } } else if ((play->sceneId == SCENE_LON_LON_RANCH) && @@ -291,11 +291,11 @@ void Horse_SetupInCutscene(PlayState* play, Player* player) { void Horse_InitPlayerHorse(PlayState* play, Player* player) { if (LINK_IS_ADULT) { if (!Horse_CanSpawn(gSaveContext.save.info.horseData.sceneId)) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF( T("Horse_Set_Check():%d セットスポットまずいです。\n", "Horse_Set_Check():%d set spot is no good.\n"), gSaveContext.save.info.horseData.sceneId); - PRINTF(VT_RST); + PRINTF_RST(); Horse_ResetHorseData(play); } diff --git a/src/code/z_jpeg.c b/src/code/z_jpeg.c index 83ec5aafd6..86a97183aa 100644 --- a/src/code/z_jpeg.c +++ b/src/code/z_jpeg.c @@ -337,9 +337,9 @@ s32 Jpeg_Decode(void* data, void* zbuffer, void* work, u32 workSize) { x = y = 0; for (i = 0; i < 300; i += 4) { if (JpegDecoder_Decode(&decoder, (u16*)workBuff->data, 4, i != 0, &state)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF("Error : Can't decode jpeg\n"); - PRINTF(VT_RST); + PRINTF_RST(); } else { Jpeg_ScheduleDecoderTask(&ctx); osInvalDCache(&workBuff->data, sizeof(workBuff->data[0])); diff --git a/src/code/z_kaleido_manager.c b/src/code/z_kaleido_manager.c index 761d1fb9ec..42ec59fd0a 100644 --- a/src/code/z_kaleido_manager.c +++ b/src/code/z_kaleido_manager.c @@ -19,11 +19,11 @@ void KaleidoManager_LoadOvl(KaleidoMgrOverlay* ovl) { ovl->loadedRamAddr = sKaleidoAreaPtr; Overlay_Load(ovl->file.vromStart, ovl->file.vromEnd, ovl->vramStart, ovl->vramEnd, ovl->loadedRamAddr); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("OVL(k):Seg:%08x-%08x Ram:%08x-%08x Off:%08x %s\n", ovl->vramStart, ovl->vramEnd, ovl->loadedRamAddr, (uintptr_t)ovl->loadedRamAddr + (uintptr_t)ovl->vramEnd - (uintptr_t)ovl->vramStart, (uintptr_t)ovl->vramStart - (uintptr_t)ovl->loadedRamAddr, ovl->name); - PRINTF(VT_RST); + PRINTF_RST(); ovl->offset = (uintptr_t)ovl->loadedRamAddr - (uintptr_t)ovl->vramStart; gKaleidoMgrCurOvl = ovl; @@ -50,17 +50,17 @@ void KaleidoManager_Init(PlayState* play) { } } - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("KaleidoArea の最大サイズは %d バイトを確保します\n", "The maximum size of KaleidoArea is %d bytes\n"), largestSize); - PRINTF(VT_RST); + PRINTF_RST(); sKaleidoAreaPtr = GAME_STATE_ALLOC(&play->state, largestSize, "../z_kaleido_manager.c", 150); LOG_UTILS_CHECK_NULL_POINTER("KaleidoArea_allocp", sKaleidoAreaPtr, "../z_kaleido_manager.c", 151); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("KaleidoArea %08x - %08x\n", sKaleidoAreaPtr, (uintptr_t)sKaleidoAreaPtr + largestSize); - PRINTF(VT_RST); + PRINTF_RST(); gKaleidoMgrCurOvl = NULL; } diff --git a/src/code/z_kaleido_scope_call.c b/src/code/z_kaleido_scope_call.c index 69d2b2d9ba..da348b3316 100644 --- a/src/code/z_kaleido_scope_call.c +++ b/src/code/z_kaleido_scope_call.c @@ -1,4 +1,4 @@ -#pragma increment_block_number "gc-eu:224 gc-eu-mq:224 gc-jp:224 gc-jp-ce:224 gc-jp-mq:224 gc-us:224 gc-us-mq:224" \ +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ "ntsc-1.0:224 ntsc-1.1:224 ntsc-1.2:224 pal-1.0:224 pal-1.1:224" #include "global.h" @@ -18,16 +18,16 @@ void KaleidoScopeCall_LoadPlayer(void) { if (gKaleidoMgrCurOvl != playerActorOvl) { if (gKaleidoMgrCurOvl != NULL) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("カレイド領域 強制排除\n", "Kaleido area forced exclusion\n")); - PRINTF(VT_RST); + PRINTF_RST(); KaleidoManager_ClearOvl(gKaleidoMgrCurOvl); } - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("プレイヤーアクター搬入\n", "Player actor import\n")); - PRINTF(VT_RST); + PRINTF_RST(); KaleidoManager_LoadOvl(playerActorOvl); } @@ -90,16 +90,16 @@ void KaleidoScopeCall_Update(PlayState* play) { } else if (pauseCtx->state != PAUSE_STATE_OFF) { if (gKaleidoMgrCurOvl != kaleidoScopeOvl) { if (gKaleidoMgrCurOvl != NULL) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("カレイド領域 プレイヤー 強制排除\n", "Kaleido area Player Forced Elimination\n")); - PRINTF(VT_RST); + PRINTF_RST(); KaleidoManager_ClearOvl(gKaleidoMgrCurOvl); } - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("カレイド領域 カレイドスコープ搬入\n", "Kaleido area Kaleidoscope loading\n")); - PRINTF(VT_RST); + PRINTF_RST(); KaleidoManager_LoadOvl(kaleidoScopeOvl); } @@ -108,9 +108,9 @@ void KaleidoScopeCall_Update(PlayState* play) { sKaleidoScopeUpdateFunc(play); if (!IS_PAUSED(&play->pauseCtx)) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("カレイド領域 カレイドスコープ排出\n", "Kaleido area Kaleidoscope Emission\n")); - PRINTF(VT_RST); + PRINTF_RST(); KaleidoManager_ClearOvl(kaleidoScopeOvl); KaleidoScopeCall_LoadPlayer(); diff --git a/src/code/z_kanfont.c b/src/code/z_kanfont.c index 4093f775a9..fa038276fe 100644 --- a/src/code/z_kanfont.c +++ b/src/code/z_kanfont.c @@ -19,13 +19,21 @@ void Font_LoadCharWide(Font* font, u16 character, u16 codePointIndex) { * at `codePointIndex`. The value of `character` is the ASCII codepoint subtract ' '/0x20. */ void Font_LoadChar(Font* font, u8 character, u16 codePointIndex) { - u8 charTmp = character; + s32 offset = character * FONT_CHAR_TEX_SIZE; - DMA_REQUEST_SYNC(&font->charTexBuf[codePointIndex], - (uintptr_t)_nes_font_staticSegmentRomStart + charTmp * FONT_CHAR_TEX_SIZE, FONT_CHAR_TEX_SIZE, - "../z_kanfont.c", 93); + DMA_REQUEST_SYNC(&font->charTexBuf[codePointIndex], (uintptr_t)_nes_font_staticSegmentRomStart + offset, + FONT_CHAR_TEX_SIZE, "../z_kanfont.c", 93); } +#if PLATFORM_IQUE +void Font_LoadCharCHN(Font* font, u16 character, u16 codePointIndex) { + s32 offset = character * FONT_CHAR_TEX_SIZE; + + DMA_REQUEST_SYNC(&font->charTexBuf[codePointIndex], (uintptr_t)_nes_font_staticSegmentRomStart + offset, + FONT_CHAR_TEX_SIZE, "../z_kanfont.c", UNK_LINE); +} +#endif + /** * Loads a message box icon from message_static, such as the ending triangle/square or choice arrow into the * icon buffer. @@ -48,18 +56,23 @@ void Font_LoadOrderedFont(Font* font) { s32 codePointIndex; s32 fontBufIndex; u32 offset; + const char* messageDataStart; + u16* msgBufWide; - font->msgOffset = FONT_MESSAGE_OFFSET; - size = font->msgLength = FONT_MESSAGE_LENGTH; - -#if OOT_NTSC +#if OOT_NTSC && !PLATFORM_IQUE + messageDataStart = (const char*)_jpn_message_data_staticSegmentStart; + font->msgOffset = _message_0xFFFC_jpn - messageDataStart; + size = font->msgLength = _message_0xFFFD_jpn - _message_0xFFFC_jpn; len = (u32)size / 2; DMA_REQUEST_SYNC(font->msgBufWide, (uintptr_t)_jpn_message_data_staticSegmentRomStart + font->msgOffset, size, "../z_kanfont.c", UNK_LINE); + PRINTF("msg_data=%x, msg_data0=%x jj=%x\n", font->msgOffset, font->msgLength, len); + fontBufIndex = 0; for (codePointIndex = 0; font->msgBufWide[codePointIndex] != MESSAGE_WIDE_END; codePointIndex++) { if (len < codePointIndex) { + PRINTF(T("ERROR!! エラー!!! error───!!!!\n", "ERROR!! Error!!! error───!!!!\n")); return; } @@ -70,7 +83,10 @@ void Font_LoadOrderedFont(Font* font) { fontBufIndex += FONT_CHAR_TEX_SIZE / 8; } } -#else +#elif OOT_PAL + messageDataStart = (const char*)_nes_message_data_staticSegmentStart; + font->msgOffset = _message_0xFFFC_nes - messageDataStart; + size = font->msgLength = _message_0xFFFD_nes - _message_0xFFFC_nes; len = size; DMA_REQUEST_SYNC(font->msgBuf, (uintptr_t)_nes_message_data_staticSegmentRomStart + font->msgOffset, len, "../z_kanfont.c", 122); @@ -93,5 +109,31 @@ void Font_LoadOrderedFont(Font* font) { fontBufIndex += FONT_CHAR_TEX_SIZE / 8; } } +#elif PLATFORM_IQUE + messageDataStart = (const char*)_jpn_message_data_staticSegmentStart; + font->msgOffset = _message_0xFFFC_jpn - messageDataStart; + size = font->msgLength = _message_0xFFFD_jpn - _message_0xFFFC_jpn; + len = (u32)size / 2; + DMA_REQUEST_SYNC(font->msgBufWide, (uintptr_t)_jpn_message_data_staticSegmentRomStart + font->msgOffset, size, + "../z_kanfont.c", UNK_LINE); + + PRINTF("msg_data=%x, msg_data0=%x jj=%x\n", font->msgOffset, font->msgLength, len); + + // Workaround for EGCS internal compiler error (see docs/compilers.md) + msgBufWide = font->msgBufWide; + fontBufIndex = 0; + for (codePointIndex = 0; msgBufWide[codePointIndex] != MESSAGE_WIDE_END; codePointIndex++) { + if (len < codePointIndex) { + PRINTF(T("ERROR!! エラー!!! error───!!!!\n", "ERROR!! Error!!! error───!!!!\n")); + return; + } + + if (msgBufWide[codePointIndex] != MESSAGE_WIDE_NEWLINE) { + offset = Kanji_OffsetFromShiftJIS(msgBufWide[codePointIndex]); + DMA_REQUEST_SYNC(&font->fontBuf[fontBufIndex * 8], (uintptr_t)_kanjiSegmentRomStart + offset, + FONT_CHAR_TEX_SIZE, "../z_kanfont.c", UNK_LINE); + fontBufIndex += FONT_CHAR_TEX_SIZE / 8; + } + } #endif } diff --git a/src/code/z_kankyo.c b/src/code/z_kankyo.c index 2980933cdd..1fc96fcb35 100644 --- a/src/code/z_kankyo.c +++ b/src/code/z_kankyo.c @@ -1,5 +1,5 @@ -#pragma increment_block_number "gc-eu:232 gc-eu-mq:232 gc-jp:212 gc-jp-ce:212 gc-jp-mq:212 gc-us:212 gc-us-mq:212" \ - "ntsc-1.0:224 ntsc-1.1:224 ntsc-1.2:224 pal-1.0:240 pal-1.1:240" +#pragma increment_block_number "gc-eu:216 gc-eu-mq:216 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ + "ntsc-1.0:208 ntsc-1.1:208 ntsc-1.2:208 pal-1.0:224 pal-1.1:224" #include "global.h" #include "ultra64.h" diff --git a/src/code/z_map_exp.c b/src/code/z_map_exp.c index e545630966..21140f8f78 100644 --- a/src/code/z_map_exp.c +++ b/src/code/z_map_exp.c @@ -30,12 +30,12 @@ void Map_SetPaletteData(PlayState* play, s16 room) { interfaceCtx->mapPaletteIndex = paletteIndex; } - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("PALETEセット 【 i=%x : room=%x 】Room_Inf[%d][4]=%x ( map_palete_no = %d )\n", "PALETE Set 【 i=%x : room=%x 】Room_Inf[%d][4]=%x ( map_palete_no = %d )\n"), paletteIndex, room, mapIndex, gSaveContext.save.info.sceneFlags[mapIndex].rooms, interfaceCtx->mapPaletteIndex); - PRINTF(VT_RST); + PRINTF_RST(); interfaceCtx->mapPalette[paletteIndex * 2] = 2; interfaceCtx->mapPalette[paletteIndex * 2 + 1] = 0xBF; @@ -130,9 +130,9 @@ void Map_InitData(PlayState* play, s16 room) { extendedMapIndex = 0x17; } } - PRINTF(VT_FGCOL(BLUE)); + PRINTF_COLOR_BLUE(); PRINTF("KKK=%d\n", extendedMapIndex); - PRINTF(VT_RST); + PRINTF_RST(); sEntranceIconMapIndex = extendedMapIndex; DMA_REQUEST_SYNC(interfaceCtx->mapSegment, (uintptr_t)_map_grand_staticSegmentRomStart + @@ -158,11 +158,11 @@ void Map_InitData(PlayState* play, s16 room) { case SCENE_WATER_TEMPLE_BOSS: case SCENE_SPIRIT_TEMPLE_BOSS: case SCENE_SHADOW_TEMPLE_BOSS: - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("デクの樹ダンジョンMAP テクスチャDMA(%x) scene_id_offset=%d VREG(30)=%d\n", "Deku Tree Dungeon MAP Texture DMA(%x) scene_id_offset=%d VREG(30)=%d\n"), room, mapIndex, VREG(30)); - PRINTF(VT_RST); + PRINTF_RST(); #if PLATFORM_N64 if ((B_80121220 != NULL) && (B_80121220->unk_28 != NULL) && B_80121220->unk_28(play)) { @@ -219,9 +219,9 @@ void Map_InitRoomData(PlayState* play, s16 room) { interfaceCtx->mapRoomNum = room; interfaceCtx->unk_25A = mapIndex; Map_SetPaletteData(play, room); - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("部屋部屋=%d\n", "Room Room = %d\n"), room); - PRINTF(VT_RST); + PRINTF_RST(); Map_InitData(play, room); break; } @@ -598,9 +598,9 @@ void Map_Update(PlayState* play) { if ((interfaceCtx->mapRoomNum == gMapData->switchFromRoom[mapIndex][i]) && (floor == gMapData->switchFromFloor[mapIndex][i])) { interfaceCtx->mapRoomNum = gMapData->switchToRoom[mapIndex][i]; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("階層切替=%x\n", "Layer switching = %x\n"), interfaceCtx->mapRoomNum); - PRINTF(VT_RST); + PRINTF_RST(); Map_InitData(play, interfaceCtx->mapRoomNum); gSaveContext.sunsSongState = SUNSSONG_INACTIVE; Map_SavePlayerInitialInfo(play); diff --git a/src/code/z_message.c b/src/code/z_message.c index e50371bd51..ebab40458c 100644 --- a/src/code/z_message.c +++ b/src/code/z_message.c @@ -8,7 +8,7 @@ #endif #pragma increment_block_number "gc-eu:0 gc-eu-mq:0 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ - "ntsc-1.0:96 ntsc-1.1:96 ntsc-1.2:96 pal-1.0:128 pal-1.1:128" + "ntsc-1.0:80 ntsc-1.1:80 ntsc-1.2:80 pal-1.0:128 pal-1.1:128" #if !PLATFORM_GC #define OCARINA_BUTTON_A_PRIM_1_R 80 @@ -2515,9 +2515,9 @@ void Message_OpenText(PlayState* play, u16 textId) { msgCtx->textId = textId; if (textId == 0x2030) { // Talking to Ingo as adult in Lon Lon Ranch for the first time before freeing Epona - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("???????????????? z_message.c ??????????????????\n"); - PRINTF(VT_RST); + PRINTF_RST(); RESET_EVENTINF2(); } @@ -2657,9 +2657,9 @@ void Message_OpenText(PlayState* play, u16 textId) { void Message_StartTextbox(PlayState* play, u16 textId, Actor* actor) { MessageContext* msgCtx = &play->msgCtx; - PRINTF(VT_FGCOL(BLUE)); + PRINTF_COLOR_BLUE(); PRINTF(T("めっせーじ=%x(%d)\n", "Message=%x(%d)\n"), textId, actor); - PRINTF(VT_RST); + PRINTF_RST(); msgCtx->ocarinaAction = 0xFFFF; Message_OpenText(play, textId); @@ -2677,9 +2677,9 @@ void Message_ContinueTextbox(PlayState* play, u16 textId) { s32 pad2[3]; #endif - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("めっせーじ=%x message->msg_data\n", "Message=%x message->msg_data\n"), textId, msgCtx->msgLength); - PRINTF(VT_RST); + PRINTF_RST(); msgCtx->msgLength = 0; Message_OpenText(play, textId); @@ -2719,7 +2719,7 @@ void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) { s16 noStopDoAction; s32 k; - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); for (i = sOcarinaSongBitFlags = 0; i <= (QUEST_SONG_STORMS - QUEST_SONG_MINUET); i++) { if (CHECK_QUEST_ITEM(QUEST_SONG_MINUET + i)) { @@ -2731,7 +2731,7 @@ void Message_StartOcarinaImpl(PlayState* play, u16 ocarinaActionId) { sOcarinaSongBitFlags |= (1 << OCARINA_SONG_SCARECROW_SPAWN); } PRINTF("ocarina_bit = %x\n", sOcarinaSongBitFlags); - PRINTF(VT_RST); + PRINTF_RST(); sHasSunsSong = CHECK_QUEST_ITEM(QUEST_SONG_SUN); msgCtx->ocarinaStaff = AudioOcarina_GetRecordingStaff(); @@ -3352,11 +3352,11 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->stateTimer--; if (msgCtx->stateTimer == 0) { AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("Na_StopOcarinaMode();\n"); PRINTF("Na_StopOcarinaMode();\n"); PRINTF("Na_StopOcarinaMode();\n"); - PRINTF(VT_RST); + PRINTF_RST(); Message_Decode(play); msgCtx->msgMode = MSGMODE_SETUP_DISPLAY_SONG_PLAYED; msgCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff(); @@ -3456,7 +3456,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { if (msgCtx->lastPlayedSong == OCARINA_SONG_EPONAS) { R_EPONAS_SONG_PLAYED = true; } - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("☆☆☆ocarina=%d message->ocarina_no=%d ", msgCtx->lastPlayedSong, msgCtx->ocarinaAction); if (msgCtx->ocarinaAction == OCARINA_ACTION_FREE_PLAY_DONE) { @@ -3465,7 +3465,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { play->msgCtx.ocarinaMode = OCARINA_MODE_0B; } } else if (msgCtx->ocarinaAction >= OCARINA_ACTION_CHECK_MINUET) { - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("Ocarina_PC_Wind=%d(%d) ☆☆☆ ", OCARINA_ACTION_CHECK_MINUET, msgCtx->ocarinaAction - OCARINA_ACTION_CHECK_MINUET); if (msgCtx->lastPlayedSong == (msgCtx->ocarinaAction - OCARINA_ACTION_CHECK_MINUET)) { @@ -3474,7 +3474,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { play->msgCtx.ocarinaMode = msgCtx->lastPlayedSong - 1; } } else { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("Ocarina_C_Wind=%d(%d) ☆☆☆ ", OCARINA_ACTION_PLAYBACK_MINUET, msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET); if (msgCtx->lastPlayedSong == (msgCtx->ocarinaAction - OCARINA_ACTION_PLAYBACK_MINUET)) { @@ -3483,7 +3483,7 @@ void Message_DrawMain(PlayState* play, Gfx** p) { play->msgCtx.ocarinaMode = OCARINA_MODE_04; } } - PRINTF(VT_RST); + PRINTF_RST(); PRINTF("→ OCARINA_MODE=%d\n", play->msgCtx.ocarinaMode); } } @@ -3529,10 +3529,10 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->lastPlayedSong = msgCtx->ocarinaStaff->state; msgCtx->msgMode = MSGMODE_SONG_PLAYBACK_SUCCESS; Item_Give(play, ITEM_SONG_MINUET + gOcarinaSongItemMap[msgCtx->ocarinaStaff->state]); - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("z_message.c 取得メロディ=%d\n", "z_message.c Song Acquired = %d\n"), ITEM_SONG_MINUET + msgCtx->ocarinaStaff->state); - PRINTF(VT_RST); + PRINTF_RST(); msgCtx->stateTimer = 20; Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -3600,14 +3600,14 @@ void Message_DrawMain(PlayState* play, Gfx** p) { Message_CloseTextbox(play); PRINTF( T("録音終了!!!!!!!!!録音終了\n", "Recording complete!!!!!!!!! Recording Complete\n")); - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("\n====================================================================\n"); MemCpy(gSaveContext.save.info.scarecrowLongSong, gScarecrowLongSongPtr, sizeof(gSaveContext.save.info.scarecrowLongSong)); for (i = 0; i < ARRAY_COUNT(gSaveContext.save.info.scarecrowLongSong); i++) { PRINTF("%d, ", gSaveContext.save.info.scarecrowLongSong[i]); } - PRINTF(VT_RST); + PRINTF_RST(); PRINTF("\n====================================================================\n"); } DRAW_TEXT(play, &gfx, false); @@ -3665,14 +3665,14 @@ void Message_DrawMain(PlayState* play, Gfx** p) { msgCtx->msgMode = MSGMODE_SCARECROW_SPAWN_RECORDING_DONE; Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("\n====================================================================\n"); MemCpy(gSaveContext.save.info.scarecrowSpawnSong, gScarecrowSpawnSongPtr, sizeof(gSaveContext.save.info.scarecrowSpawnSong)); for (i = 0; i < ARRAY_COUNT(gSaveContext.save.info.scarecrowSpawnSong); i++) { PRINTF("%d, ", gSaveContext.save.info.scarecrowSpawnSong[i]); } - PRINTF(VT_RST); + PRINTF_RST(); PRINTF("\n====================================================================\n"); } else if (msgCtx->ocarinaStaff->state == OCARINA_RECORD_REJECTED || CHECK_BTN_ALL(play->state.input[0].press.button, BTN_B)) { @@ -4289,7 +4289,7 @@ void Message_Update(PlayState* play) { gSaveContext.prevHudVisibilityMode = HUD_VISIBILITY_ALL; } if (play->csCtx.state == 0) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("day_time=%x active_camera=%d ", gSaveContext.save.cutsceneIndex, play->activeCamId); if (msgCtx->textId != 0x2061 && msgCtx->textId != 0x2025 && msgCtx->textId != 0x208C && @@ -4307,7 +4307,7 @@ void Message_Update(PlayState* play) { } } } - PRINTF(VT_RST); + PRINTF_RST(); msgCtx->msgLength = 0; msgCtx->msgMode = MSGMODE_NONE; interfaceCtx->unk_1FA = interfaceCtx->unk_1FC = 0; diff --git a/src/code/z_parameter.c b/src/code/z_parameter.c index eeba2b6334..b80efbde25 100644 --- a/src/code/z_parameter.c +++ b/src/code/z_parameter.c @@ -639,9 +639,9 @@ void Interface_UpdateHudAlphas(PlayState* play, s16 dimmingAlpha) { } void func_80083108(PlayState* play) { - MessageContext* msgCtx = &play->msgCtx; - Player* player = GET_PLAYER(play); InterfaceContext* interfaceCtx = &play->interfaceCtx; + Player* player = GET_PLAYER(play); + MessageContext* msgCtx = &play->msgCtx; s16 i; s16 sp28 = false; @@ -1100,7 +1100,9 @@ void Interface_SetSceneRestrictions(PlayState* play) { InterfaceContext* interfaceCtx = &play->interfaceCtx; s16 i = 0; u8 sceneId; - s32 pad[3]; + s32 pad1; + s32 pad2; + s32 pad3; interfaceCtx->restrictions.all = 0; interfaceCtx->restrictions.dinsNayrus = 0; @@ -1135,7 +1137,7 @@ void Interface_SetSceneRestrictions(PlayState* play) { interfaceCtx->restrictions.dinsNayrus = (sRestrictionFlags[i].flags3 & 0x0C) >> 2; interfaceCtx->restrictions.all = (sRestrictionFlags[i].flags3 & 0x03) >> 0; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("parameter->button_status = %x,%x,%x\n", sRestrictionFlags[i].flags1, sRestrictionFlags[i].flags2, sRestrictionFlags[i].flags3); PRINTF("h_gage=%d, b_button=%d, a_button=%d, c_bottle=%d\n", interfaceCtx->restrictions.hGauge, @@ -1147,8 +1149,8 @@ void Interface_SetSceneRestrictions(PlayState* play) { PRINTF("c_sunmoon=%d, m_wind=%d, m_magic=%d, another=%d\n", interfaceCtx->restrictions.sunsSong, interfaceCtx->restrictions.farores, interfaceCtx->restrictions.dinsNayrus, interfaceCtx->restrictions.all); - PRINTF(VT_RST); - return; + PRINTF_RST(); + break; } i++; } while (sRestrictionFlags[i].sceneId != 0xFF); @@ -1278,7 +1280,7 @@ void Inventory_SwapAgeEquipment(void) { } } - shieldEquipValue = gEquipMasks[EQUIP_TYPE_SHIELD] & gSaveContext.save.info.equips.equipment; + shieldEquipValue = gSaveContext.save.info.equips.equipment & gEquipMasks[EQUIP_TYPE_SHIELD]; if (shieldEquipValue) { shieldEquipValue >>= gEquipShifts[EQUIP_TYPE_SHIELD]; if (!CHECK_OWNED_EQUIP_ALT(EQUIP_TYPE_SHIELD, shieldEquipValue - 1)) { @@ -1376,16 +1378,16 @@ u8 Item_Give(PlayState* play, u8 item) { slot = SLOT(sExtraItemBases[item - ITEM_DEKU_STICKS_5]); } - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("item_get_setting=%d pt=%d z=%x\n", item, slot, gSaveContext.save.info.inventory.items[slot]); - PRINTF(VT_RST); + PRINTF_RST(); if ((item >= ITEM_MEDALLION_FOREST) && (item <= ITEM_MEDALLION_LIGHT)) { gSaveContext.save.info.inventory.questItems |= gBitFlags[item - ITEM_MEDALLION_FOREST + QUEST_MEDALLION_FOREST]; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("封印 = %x\n", "Seals = %x\n"), gSaveContext.save.info.inventory.questItems); - PRINTF(VT_RST); + PRINTF_RST(); if (item == ITEM_MEDALLION_WATER) { Horse_FixLakeHyliaPosition(play); @@ -1395,38 +1397,38 @@ u8 Item_Give(PlayState* play, u8 item) { } else if ((item >= ITEM_SONG_MINUET) && (item <= ITEM_SONG_STORMS)) { gSaveContext.save.info.inventory.questItems |= gBitFlags[item - ITEM_SONG_MINUET + QUEST_SONG_MINUET]; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("楽譜 = %x\n", "Musical scores = %x\n"), gSaveContext.save.info.inventory.questItems); PRINTF(T("楽譜 = %x (%x) (%x)\n", "Musical scores = %x (%x) (%x)\n"), gSaveContext.save.info.inventory.questItems, gBitFlags[item - ITEM_SONG_MINUET + QUEST_SONG_MINUET], gBitFlags[item - ITEM_SONG_MINUET]); - PRINTF(VT_RST); + PRINTF_RST(); return ITEM_NONE; } else if ((item >= ITEM_KOKIRI_EMERALD) && (item <= ITEM_ZORA_SAPPHIRE)) { gSaveContext.save.info.inventory.questItems |= gBitFlags[item - ITEM_KOKIRI_EMERALD + QUEST_KOKIRI_EMERALD]; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("精霊石 = %x\n", "Spiritual Stones = %x\n"), gSaveContext.save.info.inventory.questItems); - PRINTF(VT_RST); + PRINTF_RST(); return ITEM_NONE; } else if ((item == ITEM_STONE_OF_AGONY) || (item == ITEM_GERUDOS_CARD)) { gSaveContext.save.info.inventory.questItems |= gBitFlags[item - ITEM_STONE_OF_AGONY + QUEST_STONE_OF_AGONY]; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("アイテム = %x\n", "Items = %x\n"), gSaveContext.save.info.inventory.questItems); - PRINTF(VT_RST); + PRINTF_RST(); return ITEM_NONE; } else if (item == ITEM_SKULL_TOKEN) { gSaveContext.save.info.inventory.questItems |= gBitFlags[item - ITEM_SKULL_TOKEN + QUEST_SKULL_TOKEN]; gSaveContext.save.info.inventory.gsTokens++; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("Nコイン = %x(%d)\n", "N Coins = %x(%d)\n"), gSaveContext.save.info.inventory.questItems, gSaveContext.save.info.inventory.gsTokens); - PRINTF(VT_RST); + PRINTF_RST(); return ITEM_NONE; } else if ((item >= ITEM_SWORD_KOKIRI) && (item <= ITEM_SWORD_BIGGORON)) { @@ -1641,8 +1643,7 @@ u8 Item_Give(PlayState* play, u8 item) { AMMO(ITEM_BOMBCHU) = 10; return ITEM_NONE; } else { - AMMO(ITEM_BOMBCHU) += 10; - if (AMMO(ITEM_BOMBCHU) > 50) { + if ((AMMO(ITEM_BOMBCHU) += 10) > 50) { AMMO(ITEM_BOMBCHU) = 50; } return ITEM_NONE; @@ -1653,8 +1654,7 @@ u8 Item_Give(PlayState* play, u8 item) { AMMO(ITEM_BOMBCHU) += sBombchuRefillCounts[item - ITEM_BOMBCHUS_5]; return ITEM_NONE; } else { - AMMO(ITEM_BOMBCHU) += sBombchuRefillCounts[item - ITEM_BOMBCHUS_5]; - if (AMMO(ITEM_BOMBCHU) > 50) { + if ((AMMO(ITEM_BOMBCHU) += sBombchuRefillCounts[item - ITEM_BOMBCHUS_5]) > 50) { AMMO(ITEM_BOMBCHU) = 50; } return ITEM_NONE; @@ -1801,15 +1801,15 @@ u8 Item_Give(PlayState* play, u8 item) { gSaveContext.save.info.equips.cButtonSlots[0], gSaveContext.save.info.equips.cButtonSlots[1], gSaveContext.save.info.equips.cButtonSlots[2], temp + i, item); - if ((temp + i) == gSaveContext.save.info.equips.cButtonSlots[0]) { + if (gSaveContext.save.info.equips.cButtonSlots[0] == temp + i) { gSaveContext.save.info.equips.buttonItems[1] = item; Interface_LoadItemIcon2(play, 1); gSaveContext.buttonStatus[1] = BTN_ENABLED; - } else if ((temp + i) == gSaveContext.save.info.equips.cButtonSlots[1]) { + } else if (gSaveContext.save.info.equips.cButtonSlots[1] == temp + i) { gSaveContext.save.info.equips.buttonItems[2] = item; Interface_LoadItemIcon2(play, 2); gSaveContext.buttonStatus[2] = BTN_ENABLED; - } else if ((temp + i) == gSaveContext.save.info.equips.cButtonSlots[2]) { + } else if (gSaveContext.save.info.equips.cButtonSlots[2] == temp + i) { gSaveContext.save.info.equips.buttonItems[3] = item; Interface_LoadItemIcon1(play, 3); gSaveContext.buttonStatus[3] = BTN_ENABLED; @@ -1838,7 +1838,7 @@ u8 Item_Give(PlayState* play, u8 item) { if (temp != ITEM_NONE) { for (i = 1; i < 4; i++) { - if (temp == gSaveContext.save.info.equips.buttonItems[i]) { + if (gSaveContext.save.info.equips.buttonItems[i] == temp) { if (item != ITEM_SOLD_OUT) { gSaveContext.save.info.equips.buttonItems[i] = item; Interface_LoadItemIcon1(play, i); @@ -1869,9 +1869,9 @@ u8 Item_CheckObtainability(u8 item) { slot = SLOT(sExtraItemBases[item - ITEM_DEKU_STICKS_5]); } - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("item_get_non_setting=%d pt=%d z=%x\n", item, slot, gSaveContext.save.info.inventory.items[slot]); - PRINTF(VT_RST); + PRINTF_RST(); if ((item >= ITEM_MEDALLION_FOREST) && (item <= ITEM_MEDALLION_LIGHT)) { return ITEM_NONE; @@ -2017,7 +2017,7 @@ s32 Inventory_ReplaceItem(PlayState* play, u16 oldItem, u16 newItem) { if (gSaveContext.save.info.equips.buttonItems[i] == oldItem) { gSaveContext.save.info.equips.buttonItems[i] = newItem; Interface_LoadItemIcon1(play, i); - break; + return true; } } return true; @@ -2349,6 +2349,8 @@ void Magic_Reset(PlayState* play) { * @return false if the request failed */ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) { + InterfaceContext* interfaceCtx = &play->interfaceCtx; + if (!gSaveContext.save.info.playerData.isMagicAcquired) { return false; } @@ -2400,7 +2402,7 @@ s32 Magic_RequestChange(PlayState* play, s16 amount, s16 type) { case MAGIC_CONSUME_LENS: if (gSaveContext.magicState == MAGIC_STATE_IDLE) { if (gSaveContext.save.info.playerData.magic != 0) { - play->interfaceCtx.lensMagicConsumptionTimer = 80; + interfaceCtx->lensMagicConsumptionTimer = 80; gSaveContext.magicState = MAGIC_STATE_CONSUME_LENS; return true; } else { @@ -2457,8 +2459,8 @@ void Magic_Update(PlayState* play) { static s16 sMagicBorderIndices[] = { 0, 1, 1, 0 }; static s16 sMagicBorderRatio = 2; static s16 sMagicBorderStep = 1; - MessageContext* msgCtx = &play->msgCtx; InterfaceContext* interfaceCtx = &play->interfaceCtx; + MessageContext* msgCtx = &play->msgCtx; s16 borderChangeR; s16 borderChangeG; s16 borderChangeB; @@ -2469,7 +2471,7 @@ void Magic_Update(PlayState* play) { // Step magicCapacity to the capacity determined by magicLevel // This changes the width of the magic meter drawn temp = gSaveContext.save.info.playerData.magicLevel * MAGIC_NORMAL_METER; - if (gSaveContext.magicCapacity != temp) { + if (temp != gSaveContext.magicCapacity) { if (gSaveContext.magicCapacity < temp) { gSaveContext.magicCapacity += 8; if (gSaveContext.magicCapacity > temp) { @@ -2659,11 +2661,12 @@ void Magic_DrawMeter(PlayState* play) { OPEN_DISPS(play->state.gfxCtx, "../z_parameter.c", 2650); if (gSaveContext.save.info.playerData.magicLevel != 0) { - if (gSaveContext.save.info.playerData.healthCapacity > 0xA0) { + // NOLINTBEGIN + if (gSaveContext.save.info.playerData.healthCapacity > 0xA0) magicMeterY = R_MAGIC_METER_Y_LOWER; // two rows of hearts - } else { + else magicMeterY = R_MAGIC_METER_Y_HIGHER; // one row of hearts - } + // NOLINTEND Gfx_SetupDL_39Overlay(play->state.gfxCtx); @@ -2679,8 +2682,8 @@ void Magic_DrawMeter(PlayState* play) { gDPLoadTextureBlock(OVERLAY_DISP++, gMagicMeterEndTex, G_IM_FMT_IA, G_IM_SIZ_8b, 8, 16, 0, G_TX_MIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, 3, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(OVERLAY_DISP++, (R_MAGIC_METER_X + gSaveContext.magicCapacity + 8) << 2, magicMeterY << 2, - (R_MAGIC_METER_X + gSaveContext.magicCapacity + 16) << 2, (magicMeterY + 16) << 2, + gSPTextureRectangle(OVERLAY_DISP++, (R_MAGIC_METER_X + 8 + gSaveContext.magicCapacity) << 2, magicMeterY << 2, + (R_MAGIC_METER_X + 8 + gSaveContext.magicCapacity + 8) << 2, (magicMeterY + 16) << 2, G_TX_RENDERTILE, 256, 0, 1 << 10, 1 << 10); gDPPipeSync(OVERLAY_DISP++); @@ -2910,12 +2913,20 @@ void Interface_DrawItemButtons(PlayState* play) { gDPSetCombineLERP(OVERLAY_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); +#if !PLATFORM_IQUE gDPLoadTextureBlock_4b(OVERLAY_DISP++, cUpLabelTextures[gSaveContext.language], G_IM_FMT_IA, 32, 8, 0, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); - gSPTextureRectangle(OVERLAY_DISP++, R_C_UP_ICON_X << 2, R_C_UP_ICON_Y << 2, (R_C_UP_ICON_X + 32) << 2, (R_C_UP_ICON_Y + 8) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, 1 << 10); +#else + gDPLoadTextureBlock_4b(OVERLAY_DISP++, cUpLabelTextures[gSaveContext.language], G_IM_FMT_IA, 48, 16, 0, + G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMIRROR | G_TX_WRAP, G_TX_NOMASK, G_TX_NOMASK, + G_TX_NOLOD, G_TX_NOLOD); + gSPTextureRectangle(OVERLAY_DISP++, (R_C_UP_ICON_X - 8) << 2, (R_C_UP_ICON_Y - 4) << 2, + (R_C_UP_ICON_X + 40) << 2, (R_C_UP_ICON_Y + 12) << 2, G_TX_RENDERTILE, 0, 0, 1 << 10, + 1 << 10); +#endif } sCUpTimer--; @@ -3006,7 +3017,9 @@ void Interface_DrawAmmoCount(PlayState* play, s16 button, s16 alpha) { gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 100, 100, 100, alpha); } - for (i = 0; ammo >= 10; i++) { + i = 0; + while (ammo >= 10) { + i++; ammo -= 10; } @@ -3446,11 +3459,11 @@ void Interface_Draw(PlayState* play) { pauseCtx->cursorVtx[16].v.ob[0] = pauseCtx->cursorVtx[18].v.ob[0] = pauseCtx->cursorVtx[16].v.ob[0] - svar1; pauseCtx->cursorVtx[17].v.ob[0] = pauseCtx->cursorVtx[19].v.ob[0] = - pauseCtx->cursorVtx[16].v.ob[0] + svar1 * 2 + 32; + pauseCtx->cursorVtx[16].v.ob[0] + 32 + svar1 * 2; pauseCtx->cursorVtx[16].v.ob[1] = pauseCtx->cursorVtx[17].v.ob[1] = pauseCtx->cursorVtx[16].v.ob[1] + svar1; pauseCtx->cursorVtx[18].v.ob[1] = pauseCtx->cursorVtx[19].v.ob[1] = - pauseCtx->cursorVtx[16].v.ob[1] - svar1 * 2 - 32; + pauseCtx->cursorVtx[16].v.ob[1] - 32 - svar1 * 2; } gSPVertex(OVERLAY_DISP++, &pauseCtx->cursorVtx[PAUSE_CURSOR_QUAD_4 * 4], 4, 0); @@ -3651,8 +3664,7 @@ void Interface_Draw(PlayState* play) { } if ((gSaveContext.timerState >= TIMER_STATE_ENV_HAZARD_MOVE) && (msgCtx->msgLength == 0)) { - sTimerNextSecondTimer--; - if (sTimerNextSecondTimer == 0) { + if (--sTimerNextSecondTimer == 0) { if (gSaveContext.timerSeconds != 0) { gSaveContext.timerSeconds--; } @@ -4005,8 +4017,8 @@ void Interface_Draw(PlayState* play) { void Interface_Update(PlayState* play) { static u8 D_80125B60 = false; static s16 sPrevTimeSpeed = 0; - MessageContext* msgCtx = &play->msgCtx; InterfaceContext* interfaceCtx = &play->interfaceCtx; + MessageContext* msgCtx = &play->msgCtx; Player* player = GET_PLAYER(play); s16 dimmingAlpha; s16 risingAlpha; @@ -4274,13 +4286,13 @@ void Interface_Update(PlayState* play) { if (gSaveContext.save.info.playerData.isMagicAcquired && (gSaveContext.save.info.playerData.magicLevel == 0)) { gSaveContext.save.info.playerData.magicLevel = gSaveContext.save.info.playerData.isDoubleMagicAcquired + 1; gSaveContext.magicState = MAGIC_STATE_STEP_CAPACITY; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("魔法スター─────ト!!!!!!!!!\n", "Magic Start!!!!!!!!!\n")); PRINTF("MAGIC_MAX=%d\n", gSaveContext.save.info.playerData.magicLevel); PRINTF("MAGIC_NOW=%d\n", gSaveContext.save.info.playerData.magic); PRINTF("Z_MAGIC_NOW_NOW=%d\n", gSaveContext.magicFillTarget); PRINTF("Z_MAGIC_NOW_MAX=%d\n", gSaveContext.magicCapacity); - PRINTF(VT_RST); + PRINTF_RST(); } Magic_Update(play); diff --git a/src/code/z_play.c b/src/code/z_play.c index dc61e491c0..f377a8ce18 100644 --- a/src/code/z_play.c +++ b/src/code/z_play.c @@ -177,7 +177,7 @@ void Play_SetupTransition(PlayState* this, s32 transitionType) { break; default: - HUNGUP_AND_CRASH("../z_play.c", LN5(2263, 2266, 2269, 2272, 2287, 2290, 2293)); + HUNGUP_AND_CRASH("../z_play.c", LN5(2263, 2266, 2269, 2272, 2282, 2287, 2290, 2293)); break; } } @@ -1622,7 +1622,7 @@ s16 Play_CreateSubCamera(PlayState* this) { return camId; } -s16 Play_GetActiveCamId(PlayState* this) { +s32 Play_GetActiveCamId(PlayState* this) { return this->activeCamId; } diff --git a/src/code/z_room.c b/src/code/z_room.c index 2612e2450c..0c5d37f551 100644 --- a/src/code/z_room.c +++ b/src/code/z_room.c @@ -611,14 +611,14 @@ u32 Room_SetupFirstRoom(PlayState* play, RoomContext* roomCtx) { } } - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF(T("部屋バッファサイズ=%08x(%5.1fK)\n", "Room buffer size=%08x(%5.1fK)\n"), roomBufferSize, roomBufferSize / 1024.0f); roomCtx->bufPtrs[0] = GAME_STATE_ALLOC(&play->state, roomBufferSize, "../z_room.c", 946); PRINTF(T("部屋バッファ開始ポインタ=%08x\n", "Room buffer initial pointer=%08x\n"), roomCtx->bufPtrs[0]); roomCtx->bufPtrs[1] = (void*)((uintptr_t)roomCtx->bufPtrs[0] + roomBufferSize); PRINTF(T("部屋バッファ終了ポインタ=%08x\n", "Room buffer end pointer=%08x\n"), roomCtx->bufPtrs[1]); - PRINTF(VT_RST); + PRINTF_RST(); roomCtx->activeBufPage = 0; roomCtx->status = 0; diff --git a/src/code/z_scene.c b/src/code/z_scene.c index 22d99dda9d..e285587d90 100644 --- a/src/code/z_scene.c +++ b/src/code/z_scene.c @@ -87,9 +87,9 @@ void Object_InitContext(PlayState* play, ObjectContext* objectCtx) { objectCtx->slots[i].id = OBJECT_INVALID; } - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF(T("オブジェクト入れ替えバンク情報 %8.3fKB\n", "Object exchange bank data %8.3fKB\n"), spaceSize / 1024.0f); - PRINTF(VT_RST); + PRINTF_RST(); objectCtx->spaceStart = objectCtx->slots[0].segment = GAME_STATE_ALLOC(&play->state, spaceSize, "../z_scene.c", 219); @@ -195,9 +195,9 @@ s32 Scene_ExecuteCommands(PlayState* play, SceneCmd* sceneCmd) { if (cmdCode < ARRAY_COUNT(sSceneCmdHandlers)) { sSceneCmdHandlers[cmdCode](play, sceneCmd); } else { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("code の値が異常です\n", "code variable is abnormal\n")); - PRINTF(VT_RST); + PRINTF_RST(); } sceneCmd++; diff --git a/src/code/z_skelanime.c b/src/code/z_skelanime.c index a953bdb214..49502f4ec9 100644 --- a/src/code/z_skelanime.c +++ b/src/code/z_skelanime.c @@ -71,9 +71,9 @@ void SkelAnime_DrawLod(PlayState* play, void** skeleton, Vec3s* jointTable, Over Vec3s rot; if (skeleton == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Si2_Lod_draw():skelがNULLです。\n", "Si2_Lod_draw(): skel is NULL.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return; } @@ -184,9 +184,9 @@ void SkelAnime_DrawFlexLod(PlayState* play, void** skeleton, Vec3s* jointTable, Mtx* mtx = GRAPH_ALLOC(play->state.gfxCtx, dListCount * sizeof(Mtx)); if (skeleton == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Si2_Lod_draw_SV():skelがNULLです。\n", "Si2_Lod_draw_SV(): skel is NULL.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return; } @@ -287,9 +287,9 @@ void SkelAnime_DrawOpa(PlayState* play, void** skeleton, Vec3s* jointTable, Over Vec3s rot; if (skeleton == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Si2_draw():skelがNULLです。\n", "Si2_draw(): skel is NULL.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return; } @@ -400,9 +400,9 @@ void SkelAnime_DrawFlexOpa(PlayState* play, void** skeleton, Vec3s* jointTable, Mtx* mtx = GRAPH_ALLOC(play->state.gfxCtx, dListCount * sizeof(Mtx)); if (skeleton == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Si2_draw_SV():skelがNULLです。\n", "Si2_draw_SV(): skel is NULL.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return; } @@ -553,9 +553,9 @@ Gfx* SkelAnime_Draw(PlayState* play, void** skeleton, Vec3s* jointTable, Overrid Vec3s rot; if (skeleton == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Si2_draw2():skelがNULLです。NULLを返します。\n", "Si2_draw2(): skel is NULL. Returns NULL.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return NULL; } @@ -661,9 +661,9 @@ Gfx* SkelAnime_DrawFlex(PlayState* play, void** skeleton, Vec3s* jointTable, s32 Mtx* mtx = GRAPH_ALLOC(play->state.gfxCtx, dListCount * sizeof(*mtx)); if (skeleton == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Si2_draw2_SV():skelがNULLです。NULLを返します。\n", "Si2_draw2_SV(): skel is NULL. Returns NULL.\n")); - PRINTF(VT_RST); + PRINTF_RST(); return NULL; } @@ -849,7 +849,7 @@ AnimTask* AnimTaskQueue_NewTask(AnimTaskQueue* animTaskQueue, s32 type) { return task; } -#if PLATFORM_N64 +#if !PLATFORM_GC #define LINK_ANIMATION_OFFSET(addr, offset) \ (((uintptr_t)_link_animetionSegmentRomStart) + SEGMENT_OFFSET(addr) + (offset)) #else @@ -1129,10 +1129,10 @@ void SkelAnime_InitLink(PlayState* play, SkelAnime* skelAnime, FlexSkeletonHeade } if ((skelAnime->jointTable == NULL) || (skelAnime->morphTable == NULL)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Skeleton_Info_Rom_SV_ct メモリアロケーションエラー\n", "Skeleton_Info_Rom_SV_ct Memory allocation error\n")); - PRINTF(VT_RST); + PRINTF_RST(); } LinkAnimation_Change(play, skelAnime, animation, 1.0f, 0.0f, 0.0f, ANIMMODE_LOOP, 0.0f); @@ -1443,9 +1443,9 @@ BAD_RETURN(s32) SkelAnime_Init(PlayState* play, SkelAnime* skelAnime, SkeletonHe skelAnime->morphTable = morphTable; } if ((skelAnime->jointTable == NULL) || (skelAnime->morphTable == NULL)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Skeleton_Info2_ct メモリアロケーションエラー\n", "Skeleton_Info2_ct Memory allocation error\n")); - PRINTF(VT_RST); + PRINTF_RST(); } if (animation != NULL) { @@ -1476,10 +1476,10 @@ BAD_RETURN(s32) SkelAnime_InitFlex(PlayState* play, SkelAnime* skelAnime, FlexSk skelAnime->morphTable = morphTable; } if ((skelAnime->jointTable == NULL) || (skelAnime->morphTable == NULL)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Skeleton_Info_Rom_SV_ct メモリアロケーションエラー\n", "Skeleton_Info_Rom_SV_ct Memory allocation error\n")); - PRINTF(VT_RST); + PRINTF_RST(); } if (animation != NULL) { @@ -1501,10 +1501,10 @@ BAD_RETURN(s32) SkelAnime_InitSkin(PlayState* play, SkelAnime* skelAnime, Skelet skelAnime->morphTable = ZELDA_ARENA_MALLOC(skelAnime->limbCount * sizeof(*skelAnime->morphTable), "../z_skelanime.c", 3121); if ((skelAnime->jointTable == NULL) || (skelAnime->morphTable == NULL)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("Skeleton_Info2_skin2_ct メモリアロケーションエラー\n", "Skeleton_Info2_skin2_ct Memory allocation error\n")); - PRINTF(VT_RST); + PRINTF_RST(); } if (animation != NULL) { diff --git a/src/code/z_skin_matrix.c b/src/code/z_skin_matrix.c index e5d0dfe99b..689fe67107 100644 --- a/src/code/z_skin_matrix.c +++ b/src/code/z_skin_matrix.c @@ -252,10 +252,10 @@ s32 SkinMatrix_Invert(MtxF* src, MtxF* dest) { // Reaching row = 4 means the column is either all 0 or a duplicate column. // Therefore src is a singular matrix (0 determinant). - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); PRINTF(T("Skin_Matrix_InverseMatrix():逆行列つくれません\n", "Skin_Matrix_InverseMatrix(): Cannot create inverse matrix\n")); - PRINTF(VT_RST); + PRINTF_RST(); return 2; } diff --git a/src/code/z_sram.c b/src/code/z_sram.c index cd3a2f13e6..0531e29952 100644 --- a/src/code/z_sram.c +++ b/src/code/z_sram.c @@ -17,6 +17,30 @@ #define SLOT_OFFSET(index) (SRAM_HEADER_SIZE + 0x10 + (index * SLOT_SIZE)) +#if !PLATFORM_IQUE + +#define SRAM_READ(addr, dramAddr, size) SsSram_ReadWrite(addr, dramAddr, size, OS_READ) +#define SRAM_WRITE(addr, dramAddr, size) SsSram_ReadWrite(addr, dramAddr, size, OS_WRITE) + +#else + +void Sram_ReadWriteIQue(s32 addr, void* dramAddr, size_t size, s32 direction) { + void* sramAddr; + + addr -= OS_K1_TO_PHYSICAL(0xA8000000); + sramAddr = (void*)(__osBbSramAddress + addr); + if (direction == OS_READ) { + bcopy(sramAddr, dramAddr, size); + } else if (direction == OS_WRITE) { + bcopy(dramAddr, sramAddr, size); + } +} + +#define SRAM_READ(addr, dramAddr, size) Sram_ReadWriteIQue(addr, dramAddr, size, OS_READ) +#define SRAM_WRITE(addr, dramAddr, size) Sram_ReadWriteIQue(addr, dramAddr, size, OS_WRITE) + +#endif + u16 gSramSlotOffsets[] = { SLOT_OFFSET(0), SLOT_OFFSET(1), @@ -27,7 +51,23 @@ u16 gSramSlotOffsets[] = { SLOT_OFFSET(5), }; -static char sZeldaMagic[] = { '\0', '\0', '\0', '\x98', '\x09', '\x10', '\x21', 'Z', 'E', 'L', 'D', 'A' }; +static u8 sSramDefaultHeader[] = { + // TODO: use enums for these + 0, // SRAM_HEADER_SOUND + 0, // SRAM_HEADER_ZTARGET + 0, // SRAM_HEADER_LANGUAGE + + // SRAM_HEADER_MAGIC + 0x98, + 0x09, + 0x10, + 0x21, + 'Z', + 'E', + 'L', + 'D', + 'A', +}; static SavePlayerData sNewSavePlayerData = { { '\0', '\0', '\0', '\0', '\0', '\0' }, // newf @@ -138,15 +178,13 @@ static Inventory sNewSaveInventory = { 0, // gsTokens }; -static u16 sNewSaveChecksum = 0; +static Checksum sNewSaveChecksum = { 0 }; /** * Initialize new save. * This save has an empty inventory with 3 hearts and single magic. */ void Sram_InitNewSave(void) { - SaveContext* temp = &gSaveContext; - bzero(&gSaveContext.save.info, sizeof(SaveInfo)); gSaveContext.save.totalDays = 0; gSaveContext.save.bgsDayCount = 0; @@ -154,8 +192,8 @@ void Sram_InitNewSave(void) { gSaveContext.save.info.playerData = sNewSavePlayerData; gSaveContext.save.info.equips = sNewSaveEquips; gSaveContext.save.info.inventory = sNewSaveInventory; + gSaveContext.save.info.checksum = sNewSaveChecksum; - temp->save.info.checksum = sNewSaveChecksum; gSaveContext.save.info.horseData.sceneId = SCENE_HYRULE_FIELD; gSaveContext.save.info.horseData.pos.x = -1840; gSaveContext.save.info.horseData.pos.y = 72; @@ -297,7 +335,7 @@ static Inventory sDebugSaveInventory = { 0, // gsTokens }; -static u16 sDebugSaveChecksum = 0; +static Checksum sDebugSaveChecksum = { 0 }; /** * Initialize debug save. This is also used on the Title Screen @@ -309,8 +347,6 @@ static u16 sDebugSaveChecksum = 0; * and set water level in Water Temple to lowest level. */ void Sram_InitDebugSave(void) { - SaveContext* temp = &gSaveContext; - bzero(&gSaveContext.save.info, sizeof(SaveInfo)); gSaveContext.save.totalDays = 0; gSaveContext.save.bgsDayCount = 0; @@ -318,8 +354,8 @@ void Sram_InitDebugSave(void) { gSaveContext.save.info.playerData = sDebugSavePlayerData; gSaveContext.save.info.equips = sDebugSaveEquips; gSaveContext.save.info.inventory = sDebugSaveInventory; + gSaveContext.save.info.checksum = sDebugSaveChecksum; - temp->save.info.checksum = sDebugSaveChecksum; gSaveContext.save.info.horseData.sceneId = SCENE_HYRULE_FIELD; gSaveContext.save.info.horseData.pos.x = -1840; gSaveContext.save.info.horseData.pos.y = 72; @@ -392,7 +428,7 @@ void Sram_OpenSave(SramContext* sramCtx) { MemCpy(&gSaveContext, sramCtx->readBuff + i, sizeof(Save)); - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("SCENE_DATA_ID = %d SceneNo = %d\n", gSaveContext.save.info.playerData.savedSceneId, ((void)0, gSaveContext.save.entranceIndex)); @@ -456,8 +492,11 @@ void Sram_OpenSave(SramContext* sramCtx) { default: if (gSaveContext.save.info.playerData.savedSceneId != SCENE_LINKS_HOUSE) { - gSaveContext.save.entranceIndex = - (LINK_AGE_IN_YEARS == YEARS_CHILD) ? ENTR_LINKS_HOUSE_0 : ENTR_TEMPLE_OF_TIME_7; + if (LINK_AGE_IN_YEARS == YEARS_CHILD) { + gSaveContext.save.entranceIndex = ENTR_LINKS_HOUSE_0; + } else { + gSaveContext.save.entranceIndex = ENTR_TEMPLE_OF_TIME_7; + } } else { gSaveContext.save.entranceIndex = ENTR_LINKS_HOUSE_0; } @@ -465,14 +504,14 @@ void Sram_OpenSave(SramContext* sramCtx) { } PRINTF("scene_no = %d\n", gSaveContext.save.entranceIndex); - PRINTF(VT_RST); + PRINTF_RST(); if (gSaveContext.save.info.playerData.health < 0x30) { gSaveContext.save.info.playerData.health = 0x30; } if (gSaveContext.save.info.scarecrowLongSongSet) { - PRINTF(VT_FGCOL(BLUE)); + PRINTF_COLOR_BLUE(); PRINTF("\n====================================================================\n"); MemCpy(gScarecrowLongSongPtr, gSaveContext.save.info.scarecrowLongSong, @@ -484,11 +523,11 @@ void Sram_OpenSave(SramContext* sramCtx) { } PRINTF("\n====================================================================\n"); - PRINTF(VT_RST); + PRINTF_RST(); } if (gSaveContext.save.info.scarecrowSpawnSongSet) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("\n====================================================================\n"); MemCpy(gScarecrowSpawnSongPtr, gSaveContext.save.info.scarecrowSpawnSong, @@ -500,12 +539,13 @@ void Sram_OpenSave(SramContext* sramCtx) { } PRINTF("\n====================================================================\n"); - PRINTF(VT_RST); + PRINTF_RST(); } // if zelda cutscene has been watched but lullaby was not obtained, restore cutscene and take away letter if (GET_EVENTCHKINF(EVENTCHKINF_40) && !CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) { - i = gSaveContext.save.info.eventChkInf[EVENTCHKINF_INDEX_40] & ~EVENTCHKINF_MASK(EVENTCHKINF_40); + i = gSaveContext.save.info.eventChkInf[EVENTCHKINF_INDEX_40]; + i &= ~EVENTCHKINF_MASK(EVENTCHKINF_40); gSaveContext.save.info.eventChkInf[EVENTCHKINF_INDEX_40] = i; INV_CONTENT(ITEM_ZELDAS_LETTER) = ITEM_CHICKEN; @@ -551,7 +591,7 @@ void Sram_WriteSave(SramContext* sramCtx) { u16 j; u16* ptr; - gSaveContext.save.info.checksum = 0; + gSaveContext.save.info.checksum.value = 0; ptr = (u16*)&gSaveContext; checksum = j = 0; @@ -563,7 +603,7 @@ void Sram_WriteSave(SramContext* sramCtx) { checksum += *ptr++; } - gSaveContext.save.info.checksum = checksum; + gSaveContext.save.info.checksum.value = checksum; ptr = (u16*)&gSaveContext; checksum = 0; @@ -576,7 +616,7 @@ void Sram_WriteSave(SramContext* sramCtx) { } offset = gSramSlotOffsets[gSaveContext.fileNum]; - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE); ptr = (u16*)&gSaveContext; checksum = 0; @@ -589,7 +629,7 @@ void Sram_WriteSave(SramContext* sramCtx) { } offset = gSramSlotOffsets[gSaveContext.fileNum + 3]; - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE); } /** @@ -610,7 +650,7 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt PRINTF("SRAM START─LOAD\n"); bzero(sramCtx->readBuff, SRAM_SIZE); - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ); + SRAM_READ(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE); dayTime = ((void)0, gSaveContext.save.dayTime); @@ -620,8 +660,8 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt sizeof(Save)); MemCpy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save)); - oldChecksum = gSaveContext.save.info.checksum; - gSaveContext.save.info.checksum = 0; + oldChecksum = gSaveContext.save.info.checksum.value; + gSaveContext.save.info.checksum.value = 0; ptr = (u16*)&gSaveContext; PRINTF("\n============= S(%d) =============\n", slotNum); @@ -645,8 +685,8 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt offset = gSramSlotOffsets[slotNum + 3]; MemCpy(&gSaveContext, sramCtx->readBuff + offset, sizeof(Save)); - oldChecksum = gSaveContext.save.info.checksum; - gSaveContext.save.info.checksum = 0; + oldChecksum = gSaveContext.save.info.checksum.value; + gSaveContext.save.info.checksum.value = 0; ptr = (u16*)&gSaveContext; PRINTF("================= BACK─UP ========================\n"); @@ -710,32 +750,33 @@ void Sram_VerifyAndLoadAllSaves(FileSelectState* fileSelect, SramContext* sramCt newChecksum += *ptr++; } - gSaveContext.save.info.checksum = newChecksum; - PRINTF("\nCheck_Sum=%x(%x)\n", gSaveContext.save.info.checksum, newChecksum); + gSaveContext.save.info.checksum.value = newChecksum; + PRINTF("\nCheck_Sum=%x(%x)\n", gSaveContext.save.info.checksum.value, newChecksum); i = gSramSlotOffsets[slotNum + 3]; - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + i, &gSaveContext, SLOT_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000) + i, &gSaveContext, SLOT_SIZE); - PRINTF("????#%x,%x,%x,%x,%x,%x\n", gSaveContext.save.info.playerData.newf[0], + //! @bug The ??= below is interpreted as a trigraph for # by IDO + PRINTF("??????=%x,%x,%x,%x,%x,%x\n", gSaveContext.save.info.playerData.newf[0], gSaveContext.save.info.playerData.newf[1], gSaveContext.save.info.playerData.newf[2], gSaveContext.save.info.playerData.newf[3], gSaveContext.save.info.playerData.newf[4], gSaveContext.save.info.playerData.newf[5]); PRINTF(T("\nぽいんと=%x(%d+3) check_sum=%x(%x)\n", "\npoints=%x(%d+3) check_sum=%x(%x)\n"), i, - slotNum, gSaveContext.save.info.checksum, newChecksum); + slotNum, gSaveContext.save.info.checksum.value, newChecksum); } i = gSramSlotOffsets[slotNum]; - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + i, &gSaveContext, SLOT_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000) + i, &gSaveContext, SLOT_SIZE); PRINTF(T("ぽいんと=%x(%d) check_sum=%x(%x)\n", "point=%x(%d) check_sum=%x(%x)\n"), i, slotNum, - gSaveContext.save.info.checksum, newChecksum); + gSaveContext.save.info.checksum.value, newChecksum); } else { PRINTF(T("\nSAVEデータ OK!!!!\n", "\nSAVE data OK!!!!\n")); } } bzero(sramCtx->readBuff, SRAM_SIZE); - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ); + SRAM_READ(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE); gSaveContext.save.dayTime = dayTime; PRINTF("SAVECT=%x, NAME=%x, LIFE=%x, ITEM=%x, 64DD=%x, HEART=%x\n", DEATHS, NAME, HEALTH_CAP, QUEST, N64DD, @@ -809,7 +850,14 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { #endif for (offset = 0; offset < 8; offset++) { +#if !PLATFORM_IQUE gSaveContext.save.info.playerData.playerName[offset] = fileSelect->fileNames[fileSelect->buttonIndex][offset]; +#else + // Workaround for EGCS internal compiler error (see docs/compilers.md) + u8* fileName = fileSelect->fileNames[fileSelect->buttonIndex]; + + gSaveContext.save.info.playerData.playerName[offset] = fileName[offset]; +#endif } gSaveContext.save.info.playerData.newf[0] = 'Z'; @@ -838,8 +886,8 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { } } - gSaveContext.save.info.checksum = checksum; - PRINTF(T("\nチェックサム=%x\n", "\nChecksum = %x\n"), gSaveContext.save.info.checksum); + gSaveContext.save.info.checksum.value = checksum; + PRINTF(T("\nチェックサム=%x\n", "\nChecksum = %x\n"), gSaveContext.save.info.checksum.value); offset = gSramSlotOffsets[gSaveContext.fileNum]; PRINTF("I=%x no=%d\n", offset, gSaveContext.fileNum); @@ -849,7 +897,7 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { PRINTF("I=%x no=%d\n", offset, gSaveContext.fileNum + 3); MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save)); - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE); PRINTF(T("SAVE終了\n", "SAVE end\n")); PRINTF("z_common_data.file_no = %d\n", gSaveContext.fileNum); @@ -879,26 +927,26 @@ void Sram_InitSave(FileSelectState* fileSelect, SramContext* sramCtx) { } void Sram_EraseSave(FileSelectState* fileSelect, SramContext* sramCtx) { - s32 offset; + u16 offset; Sram_InitNewSave(); offset = gSramSlotOffsets[fileSelect->selectedFileIndex]; MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save)); - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE); MemCpy(&fileSelect->n64ddFlags[fileSelect->selectedFileIndex], sramCtx->readBuff + offset + N64DD, sizeof(fileSelect->n64ddFlags[0])); offset = gSramSlotOffsets[fileSelect->selectedFileIndex + 3]; MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save)); - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000) + offset, &gSaveContext, SLOT_SIZE); PRINTF(T("CLEAR終了\n", "CLEAR END\n")); } void Sram_CopySave(FileSelectState* fileSelect, SramContext* sramCtx) { - s32 offset; + u16 offset; PRINTF("READ=%d(%x) COPY=%d(%x)\n", fileSelect->selectedFileIndex, gSramSlotOffsets[fileSelect->selectedFileIndex], fileSelect->copyDestFileIndex, @@ -913,7 +961,7 @@ void Sram_CopySave(FileSelectState* fileSelect, SramContext* sramCtx) { offset = gSramSlotOffsets[fileSelect->copyDestFileIndex + 3]; MemCpy(sramCtx->readBuff + offset, &gSaveContext, sizeof(Save)); - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE); offset = gSramSlotOffsets[fileSelect->copyDestFileIndex]; @@ -943,23 +991,23 @@ void Sram_CopySave(FileSelectState* fileSelect, SramContext* sramCtx) { * Write the first 16 bytes of the read buffer to the SRAM header */ void Sram_WriteSramHeader(SramContext* sramCtx) { - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_HEADER_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_HEADER_SIZE); } void Sram_InitSram(GameState* gameState, SramContext* sramCtx) { u16 i; PRINTF("sram_initialize( Game *game, Sram *sram )\n"); - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_READ); + SRAM_READ(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE); - for (i = 0; i < ARRAY_COUNTU(sZeldaMagic) - 3; i++) { - if (sZeldaMagic[i + SRAM_HEADER_MAGIC] != sramCtx->readBuff[i + SRAM_HEADER_MAGIC]) { + for (i = 0; i < ARRAY_COUNTU(sSramDefaultHeader) - SRAM_HEADER_MAGIC; i++) { + if (sSramDefaultHeader[i + SRAM_HEADER_MAGIC] != sramCtx->readBuff[i + SRAM_HEADER_MAGIC]) { PRINTF(T("SRAM破壊!!!!!!\n", "SRAM destruction!!!!!!\n")); #if PLATFORM_GC && OOT_PAL gSaveContext.language = sramCtx->readBuff[SRAM_HEADER_LANGUAGE]; #endif - MemCpy(sramCtx->readBuff, sZeldaMagic, sizeof(sZeldaMagic)); + MemCpy(sramCtx->readBuff, sSramDefaultHeader, sizeof(sSramDefaultHeader)); #if PLATFORM_GC && OOT_PAL sramCtx->readBuff[SRAM_HEADER_LANGUAGE] = gSaveContext.language; @@ -986,18 +1034,18 @@ void Sram_InitSram(GameState* gameState, SramContext* sramCtx) { for (i = 0; i < CHECKSUM_SIZE; i++) { sramCtx->readBuff[i] = i; } - SsSram_ReadWrite(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE, OS_WRITE); + SRAM_WRITE(OS_K1_TO_PHYSICAL(0xA8000000), sramCtx->readBuff, SRAM_SIZE); PRINTF(T("SRAM破壊!!!!!!\n", "SRAM destruction!!!!!!\n")); } #endif PRINTF(T("GOOD!GOOD! サイズ=%d + %d = %d\n", "GOOD! GOOD! Size = %d + %d = %d\n"), sizeof(SaveInfo), 4, sizeof(SaveInfo) + 4); - PRINTF(VT_FGCOL(BLUE)); + PRINTF_COLOR_BLUE(); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); - PRINTF(VT_RST); + PRINTF_RST(); func_800F6700(gSaveContext.audioSetting); } diff --git a/src/code/z_view.c b/src/code/z_view.c index 37e8ac9b00..5b68f00bf4 100644 --- a/src/code/z_view.c +++ b/src/code/z_view.c @@ -647,11 +647,11 @@ s32 View_ErrorCheckEyePosition(f32 eyeX, f32 eyeY, f32 eyeZ) { } if (error != 0) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF(T("eye が大きすぎます eye=[%8.3f %8.3f %8.3f] error=%d\n", "eye is too large eye=[%8.3f %8.3f %8.3f] error=%d\n"), eyeX, eyeY, eyeZ, error); - PRINTF(VT_RST); + PRINTF_RST(); } return error; diff --git a/src/code/z_vr_box.c b/src/code/z_vr_box.c index d2aac8c1f3..2e7953362b 100644 --- a/src/code/z_vr_box.c +++ b/src/code/z_vr_box.c @@ -1030,7 +1030,7 @@ void Skybox_Init(GameState* state, SkyboxContext* skyboxCtx, s16 skyboxId) { // Precompute vertices and display lists for drawing the skybox if (skyboxId != SKYBOX_NONE) { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); if (skyboxCtx->drawType != SKYBOX_DRAW_128) { skyboxCtx->dListBuf = GAME_STATE_ALLOC(state, 8 * 150 * sizeof(Gfx), "../z_vr_box.c", 1636); @@ -1056,6 +1056,6 @@ void Skybox_Init(GameState* state, SkyboxContext* skyboxCtx, s16 skyboxId) { Skybox_Calculate128(skyboxCtx, 5); // compute 5 faces, excludes the bottom face } } - PRINTF(VT_RST); + PRINTF_RST(); } } diff --git a/src/libc64/__osMalloc_gc.c b/src/libc64/__osMalloc_gc.c index 0338ecf3f8..025c21bff9 100644 --- a/src/libc64/__osMalloc_gc.c +++ b/src/libc64/__osMalloc_gc.c @@ -3,8 +3,6 @@ #include "libc64/os_malloc.h" #include "terminal.h" -#if !PLATFORM_N64 - #define FILL_ALLOC_BLOCK_FLAG (1 << 0) #define FILL_FREE_BLOCK_FLAG (1 << 1) #define CHECK_FREE_BLOCK_FLAG (1 << 2) @@ -891,5 +889,3 @@ u8 ArenaImpl_GetAllocFailures(Arena* arena) { return arena->allocFailures; } #endif - -#endif diff --git a/src/libc64/__osMalloc_n64.c b/src/libc64/__osMalloc_n64.c index 8efb4ec6c8..56996feac9 100644 --- a/src/libc64/__osMalloc_n64.c +++ b/src/libc64/__osMalloc_n64.c @@ -2,8 +2,6 @@ #include "fault.h" #include "libc64/os_malloc.h" -#if PLATFORM_N64 - #define NODE_MAGIC 0x7373 #define NODE_IS_VALID(node) ((node)->magic == NODE_MAGIC) @@ -470,5 +468,3 @@ s32 __osCheckArena(Arena* arena) { u8 ArenaImpl_GetAllocFailures(Arena* arena) { return arena->allocFailures; } - -#endif diff --git a/src/libgcc/__cmpdi2.c b/src/libgcc/__cmpdi2.c new file mode 100644 index 0000000000..4c477f8263 --- /dev/null +++ b/src/libgcc/__cmpdi2.c @@ -0,0 +1,2 @@ +#define L_cmpdi2 +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__cmpdi2.s b/src/libgcc/__cmpdi2.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__divdi3.c b/src/libgcc/__divdi3.c new file mode 100644 index 0000000000..26cc049c2f --- /dev/null +++ b/src/libgcc/__divdi3.c @@ -0,0 +1,2 @@ +#define L_divdi3 +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__divdi3.s b/src/libgcc/__divdi3.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__fixdfdi.c b/src/libgcc/__fixdfdi.c new file mode 100644 index 0000000000..a0c73d0b8f --- /dev/null +++ b/src/libgcc/__fixdfdi.c @@ -0,0 +1,2 @@ +#define L_fixdfdi +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__fixdfdi.s b/src/libgcc/__fixdfdi.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__fixsfdi.c b/src/libgcc/__fixsfdi.c new file mode 100644 index 0000000000..4e6d6baf7b --- /dev/null +++ b/src/libgcc/__fixsfdi.c @@ -0,0 +1,2 @@ +#define L_fixsfdi +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__fixsfdi.s b/src/libgcc/__fixsfdi.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__fixunsdfdi.c b/src/libgcc/__fixunsdfdi.c new file mode 100644 index 0000000000..9940267102 --- /dev/null +++ b/src/libgcc/__fixunsdfdi.c @@ -0,0 +1,2 @@ +#define L_fixunsdfdi +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__fixunsdfdi.s b/src/libgcc/__fixunsdfdi.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__fixunssfdi.c b/src/libgcc/__fixunssfdi.c new file mode 100644 index 0000000000..34b123e48f --- /dev/null +++ b/src/libgcc/__fixunssfdi.c @@ -0,0 +1,2 @@ +#define L_fixunssfdi +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__fixunssfdi.s b/src/libgcc/__fixunssfdi.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__floatdidf.c b/src/libgcc/__floatdidf.c new file mode 100644 index 0000000000..996973fe0f --- /dev/null +++ b/src/libgcc/__floatdidf.c @@ -0,0 +1,2 @@ +#define L_floatdidf +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__floatdidf.s b/src/libgcc/__floatdidf.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__floatdisf.c b/src/libgcc/__floatdisf.c new file mode 100644 index 0000000000..433988fa63 --- /dev/null +++ b/src/libgcc/__floatdisf.c @@ -0,0 +1,2 @@ +#define L_floatdisf +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__floatdisf.s b/src/libgcc/__floatdisf.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__moddi3.c b/src/libgcc/__moddi3.c new file mode 100644 index 0000000000..f40a11ec73 --- /dev/null +++ b/src/libgcc/__moddi3.c @@ -0,0 +1,2 @@ +#define L_moddi3 +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__moddi3.s b/src/libgcc/__moddi3.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__udivdi3.c b/src/libgcc/__udivdi3.c new file mode 100644 index 0000000000..7c2e52eb78 --- /dev/null +++ b/src/libgcc/__udivdi3.c @@ -0,0 +1,2 @@ +#define L_udivdi3 +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__udivdi3.s b/src/libgcc/__udivdi3.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/__umoddi3.c b/src/libgcc/__umoddi3.c new file mode 100644 index 0000000000..4cb7dec926 --- /dev/null +++ b/src/libgcc/__umoddi3.c @@ -0,0 +1,2 @@ +#define L_umoddi3 +#include "src/libgcc/libgcc2.inc.c" diff --git a/src/libgcc/__umoddi3.s b/src/libgcc/__umoddi3.s deleted file mode 100644 index e69de29bb2..0000000000 diff --git a/src/libgcc/libgcc2.inc.c b/src/libgcc/libgcc2.inc.c new file mode 100644 index 0000000000..d8b89b75ef --- /dev/null +++ b/src/libgcc/libgcc2.inc.c @@ -0,0 +1,464 @@ +/* More subroutines needed by GCC output code on some machines. */ +/* Compile this one with gcc. */ +/* Copyright (C) 1989, 92-97, 1998 Free Software Foundation, Inc. + +This file is part of GNU CC. + +GNU CC is free software; you can redistribute it and/or modify +it under the terms of the GNU General Public License as published by +the Free Software Foundation; either version 2, or (at your option) +any later version. + +GNU CC is distributed in the hope that it will be useful, +but WITHOUT ANY WARRANTY; without even the implied warranty of +MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +GNU General Public License for more details. + +You should have received a copy of the GNU General Public License +along with GNU CC; see the file COPYING. If not, write to +the Free Software Foundation, 59 Temple Place - Suite 330, +Boston, MA 02111-1307, USA. */ + +/* As a special exception, if you link this library with other files, + some of which are compiled with GCC, to produce an executable, + this library does not by itself cause the resulting executable + to be covered by the GNU General Public License. + This exception does not however invalidate any other reasons why + the executable file might be covered by the GNU General Public License. */ + +/* Modified by ZeldaRET to keep only the parts that are relevant to the iQue build of OoT. */ + +#include "ultra64/ultratypes.h" + +typedef u8 UQItype; +typedef s32 SItype; +typedef u32 USItype; +typedef s64 DItype; +typedef u64 UDItype; + +typedef f32 SFtype; +typedef f64 DFtype; + +typedef s32 word_type; + +#define SI_TYPE_SIZE 32 + +#define DI_SIZE 64 +#define DF_SIZE 53 +#define SF_SIZE 24 + +#define WORD_SIZE 32 +#define HIGH_HALFWORD_COEFF (((UDItype)1) << (WORD_SIZE / 2)) +#define HIGH_WORD_COEFF (((UDItype)1) << WORD_SIZE) + +/* DIstructs are pairs of SItype values in big-endian order. */ + +struct DIstruct { + SItype high, low; +}; + +/* We need this union to unpack/pack DImode values, since we don't have + any arithmetic yet. Incoming DImode parameters are stored into the + `ll' field, and the unpacked result is read from the struct `s'. */ + +typedef union { + struct DIstruct s; + DItype ll; +} DIunion; + +extern DItype __fixunssfdi(SFtype original_a); +extern DItype __fixunsdfdi(DFtype a); + +#if defined(L_divdi3) || defined(L_moddi3) +static inline DItype __negdi2(DItype u) { + DIunion w; + DIunion uu; + + uu.ll = u; + + w.s.low = -uu.s.low; + w.s.high = -uu.s.high - ((USItype)w.s.low > 0); + + return w.ll; +} +#endif + +#if defined(L_udivdi3) || defined(L_divdi3) || defined(L_umoddi3) || defined(L_moddi3) +static const UQItype __clz_tab[] = { + 0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, + 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, + 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, + 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, +}; + +#include "src/libgcc/longlong.h" + +static inline UDItype __udivmoddi4(UDItype n, UDItype d, UDItype* rp) { + DIunion ww; + DIunion nn, dd; + DIunion rr; + USItype d0, d1, n0, n1, n2; + USItype q0, q1; + USItype b, bm; + + nn.ll = n; + dd.ll = d; + + d0 = dd.s.low; + d1 = dd.s.high; + n0 = nn.s.low; + n1 = nn.s.high; + + if (d1 == 0) { + if (d0 > n1) { + /* 0q = nn / 0D */ + + count_leading_zeros(bm, d0); + + if (bm != 0) { + /* Normalize, i.e. make the most significant bit of the + denominator set. */ + + d0 = d0 << bm; + n1 = (n1 << bm) | (n0 >> (SI_TYPE_SIZE - bm)); + n0 = n0 << bm; + } + + udiv_qrnnd(q0, n0, n1, n0, d0); + q1 = 0; + + /* Remainder in n0 >> bm. */ + } else { + /* qq = NN / 0d */ + + if (d0 == 0) { + d0 = 1 / d0; /* Divide intentionally by zero. */ + } + + count_leading_zeros(bm, d0); + + if (bm == 0) { + /* From (n1 >= d0) /\ (the most significant bit of d0 is set), + conclude (the most significant bit of n1 is set) /\ (the + leading quotient digit q1 = 1). + + This special case is necessary, not an optimization. + (Shifts counts of SI_TYPE_SIZE are undefined.) */ + + n1 -= d0; + q1 = 1; + } else { + /* Normalize. */ + + b = SI_TYPE_SIZE - bm; + + d0 = d0 << bm; + n2 = n1 >> b; + n1 = (n1 << bm) | (n0 >> b); + n0 = n0 << bm; + + udiv_qrnnd(q1, n1, n2, n1, d0); + } + + /* n1 != d0... */ + + udiv_qrnnd(q0, n0, n1, n0, d0); + + /* Remainder in n0 >> bm. */ + } + + if (rp != 0) { + rr.s.low = n0 >> bm; + rr.s.high = 0; + *rp = rr.ll; + } + } else { + if (d1 > n1) { + /* 00 = nn / DD */ + + q0 = 0; + q1 = 0; + + /* Remainder in n1n0. */ + if (rp != 0) { + rr.s.low = n0; + rr.s.high = n1; + *rp = rr.ll; + } + } else { + /* 0q = NN / dd */ + + count_leading_zeros(bm, d1); + if (bm == 0) { + /* From (n1 >= d1) /\ (the most significant bit of d1 is set), + conclude (the most significant bit of n1 is set) /\ (the + quotient digit q0 = 0 or 1). + + This special case is necessary, not an optimization. */ + + /* The condition on the next line takes advantage of that + n1 >= d1 (true due to program flow). */ + if (n1 > d1 || n0 >= d0) { + q0 = 1; + sub_ddmmss(n1, n0, n1, n0, d1, d0); + } else { + q0 = 0; + } + + q1 = 0; + + if (rp != 0) { + rr.s.low = n0; + rr.s.high = n1; + *rp = rr.ll; + } + } else { + USItype m1, m0; + /* Normalize. */ + + b = SI_TYPE_SIZE - bm; + + d1 = (d1 << bm) | (d0 >> b); + d0 = d0 << bm; + n2 = n1 >> b; + n1 = (n1 << bm) | (n0 >> b); + n0 = n0 << bm; + + udiv_qrnnd(q0, n1, n2, n1, d1); + umul_ppmm(m1, m0, q0, d0); + + if (m1 > n1 || (m1 == n1 && m0 > n0)) { + q0--; + sub_ddmmss(m1, m0, m1, m0, d1, d0); + } + + q1 = 0; + + /* Remainder in (n1n0 - m1m0) >> bm. */ + if (rp != 0) { + sub_ddmmss(n1, n0, n1, n0, m1, m0); + rr.s.low = (n1 << b) | (n0 >> bm); + rr.s.high = n1 >> bm; + *rp = rr.ll; + } + } + } + } + + ww.s.low = q0; + ww.s.high = q1; + return ww.ll; +} +#endif + +#ifdef L_divdi3 +DItype __divdi3(DItype u, DItype v) { + word_type c = 0; + DIunion uu, vv; + DItype w; + + uu.ll = u; + vv.ll = v; + + if (uu.s.high < 0) { + c = ~c, uu.ll = __negdi2(uu.ll); + } + if (vv.s.high < 0) { + c = ~c, vv.ll = __negdi2(vv.ll); + } + + w = __udivmoddi4(uu.ll, vv.ll, (UDItype*)0); + if (c) { + w = __negdi2(w); + } + + return w; +} +#endif + +#ifdef L_moddi3 +DItype __moddi3(DItype u, DItype v) { + word_type c = 0; + DIunion uu, vv; + DItype w; + + uu.ll = u; + vv.ll = v; + + if (uu.s.high < 0) { + c = ~c, uu.ll = __negdi2(uu.ll); + } + if (vv.s.high < 0) { + vv.ll = __negdi2(vv.ll); + } + + (void)__udivmoddi4(uu.ll, vv.ll, (UDItype*)&w); + if (c) { + w = __negdi2(w); + } + + return w; +} +#endif + +#ifdef L_umoddi3 +UDItype __umoddi3(UDItype u, UDItype v) { + UDItype w; + + (void)__udivmoddi4(u, v, &w); + + return w; +} +#endif + +#ifdef L_udivdi3 +UDItype __udivdi3(UDItype n, UDItype d) { + return __udivmoddi4(n, d, (UDItype*)0); +} +#endif + +#ifdef L_cmpdi2 +word_type __cmpdi2(DItype a, DItype b) { + DIunion au, bu; + + au.ll = a, bu.ll = b; + + if (au.s.high < bu.s.high) { + return 0; + } else if (au.s.high > bu.s.high) { + return 2; + } + if ((USItype)au.s.low < (USItype)bu.s.low) { + return 0; + } else if ((USItype)au.s.low > (USItype)bu.s.low) { + return 2; + } + return 1; +} +#endif + +#ifdef L_fixunsdfdi +DItype __fixunsdfdi(DFtype a) { + DFtype b; + UDItype v; + + if (a < 0) { + return 0; + } + + /* Compute high word of result, as a flonum. */ + b = (a / HIGH_WORD_COEFF); + /* Convert that to fixed (but not to DItype!), + and shift it into the high word. */ + v = (USItype)b; + v <<= WORD_SIZE; + /* Remove high part from the DFtype, leaving the low part as flonum. */ + a -= (DFtype)v; + /* Convert that to fixed (but not to DItype!) and add it in. + Sometimes A comes out negative. This is significant, since + A has more bits than a long int does. */ + if (a < 0) { + v -= (USItype)(-a); + } else { + v += (USItype)a; + } + return v; +} +#endif + +#ifdef L_fixdfdi +DItype __fixdfdi(DFtype a) { + if (a < 0) { + return -__fixunsdfdi(-a); + } + return __fixunsdfdi(a); +} +#endif + +#ifdef L_fixunssfdi +DItype __fixunssfdi(SFtype original_a) { + /* Convert the SFtype to a DFtype, because that is surely not going + to lose any bits. Some day someone else can write a faster version + that avoids converting to DFtype, and verify it really works right. */ + DFtype a = original_a; + DFtype b; + UDItype v; + + if (a < 0) { + return 0; + } + + /* Compute high word of result, as a flonum. */ + b = (a / HIGH_WORD_COEFF); + /* Convert that to fixed (but not to DItype!), + and shift it into the high word. */ + v = (USItype)b; + v <<= WORD_SIZE; + /* Remove high part from the DFtype, leaving the low part as flonum. */ + a -= (DFtype)v; + /* Convert that to fixed (but not to DItype!) and add it in. + Sometimes A comes out negative. This is significant, since + A has more bits than a long int does. */ + if (a < 0) { + v -= (USItype)(-a); + } else { + v += (USItype)a; + } + return v; +} +#endif + +#ifdef L_fixsfdi +DItype __fixsfdi(SFtype a) { + if (a < 0) { + return -__fixunssfdi(-a); + } + return __fixunssfdi(a); +} +#endif + +#ifdef L_floatdidf +DFtype __floatdidf(DItype u) { + DFtype d; + + d = (SItype)(u >> WORD_SIZE); + d *= HIGH_HALFWORD_COEFF; + d *= HIGH_HALFWORD_COEFF; + d += (USItype)(u & (HIGH_WORD_COEFF - 1)); + + return d; +} +#endif + +#ifdef L_floatdisf +SFtype __floatdisf(DItype u) { + /* Do the calculation in DFmode + so that we don't lose any of the precision of the high word + while multiplying it. */ + DFtype f; + + /* Protect against double-rounding error. + Represent any low-order bits, that might be truncated in DFmode, + by a bit that won't be lost. The bit can go in anywhere below the + rounding position of the SFmode. A fixed mask and bit position + handles all usual configurations. It doesn't handle the case + of 128-bit DImode, however. */ + if (DF_SIZE < DI_SIZE && DF_SIZE > (DI_SIZE - DF_SIZE + SF_SIZE)) { +#define REP_BIT ((USItype)1 << (DI_SIZE - DF_SIZE)) + if (!(-((DItype)1 << DF_SIZE) < u && u < ((DItype)1 << DF_SIZE))) { + if ((USItype)u & (REP_BIT - 1)) { + u |= REP_BIT; + } + } + } + f = (SItype)(u >> WORD_SIZE); + f *= HIGH_HALFWORD_COEFF; + f *= HIGH_HALFWORD_COEFF; + f += (USItype)(u & (HIGH_WORD_COEFF - 1)); + + return (SFtype)f; +} +#endif diff --git a/src/libgcc/longlong.h b/src/libgcc/longlong.h new file mode 100644 index 0000000000..fb6ebb15e5 --- /dev/null +++ b/src/libgcc/longlong.h @@ -0,0 +1,150 @@ +/* longlong.h -- definitions for mixed size 32/64 bit arithmetic. + Copyright (C) 1991, 92, 94, 95, 96, 1997 Free Software Foundation, Inc. + + This definition file is free software; you can redistribute it + and/or modify it under the terms of the GNU General Public + License as published by the Free Software Foundation; either + version 2, or (at your option) any later version. + + This definition file is distributed in the hope that it will be + useful, but WITHOUT ANY WARRANTY; without even the implied + warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + See the GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place - Suite 330, + Boston, MA 02111-1307, USA. */ + +/* Modified by ZeldaRET to keep only the parts that are relevant to the iQue build of OoT. */ + +#define __BITS4 (SI_TYPE_SIZE / 4) +#define __ll_B (1L << (SI_TYPE_SIZE / 2)) +#define __ll_lowpart(t) ((USItype)(t) % __ll_B) +#define __ll_highpart(t) ((USItype)(t) / __ll_B) + +/* Define auxiliary asm macros. + + 1) umul_ppmm(high_prod, low_prod, multipler, multiplicand) + multiplies two USItype integers MULTIPLER and MULTIPLICAND, + and generates a two-part USItype product in HIGH_PROD and + LOW_PROD. + + 2) __umulsidi3(a,b) multiplies two USItype integers A and B, + and returns a UDItype product. This is just a variant of umul_ppmm. + + 3) udiv_qrnnd(quotient, remainder, high_numerator, low_numerator, + denominator) divides a two-word unsigned integer, composed by the + integers HIGH_NUMERATOR and LOW_NUMERATOR, by DENOMINATOR and + places the quotient in QUOTIENT and the remainder in REMAINDER. + HIGH_NUMERATOR must be less than DENOMINATOR for correct operation. + If, in addition, the most significant bit of DENOMINATOR must be 1, + then the pre-processor symbol UDIV_NEEDS_NORMALIZATION is defined to 1. + + 4) sdiv_qrnnd(quotient, remainder, high_numerator, low_numerator, + denominator). Like udiv_qrnnd but the numbers are signed. The + quotient is rounded towards 0. + + 5) count_leading_zeros(count, x) counts the number of zero-bits from + the msb to the first non-zero bit. This is the number of steps X + needs to be shifted left to set the msb. Undefined for X == 0. + + 6) add_ssaaaa(high_sum, low_sum, high_addend_1, low_addend_1, + high_addend_2, low_addend_2) adds two two-word unsigned integers, + composed by HIGH_ADDEND_1 and LOW_ADDEND_1, and HIGH_ADDEND_2 and + LOW_ADDEND_2 respectively. The result is placed in HIGH_SUM and + LOW_SUM. Overflow (i.e. carry out) is not stored anywhere, and is + lost. + + 7) sub_ddmmss(high_difference, low_difference, high_minuend, + low_minuend, high_subtrahend, low_subtrahend) subtracts two + two-word unsigned integers, composed by HIGH_MINUEND_1 and + LOW_MINUEND_1, and HIGH_SUBTRAHEND_2 and LOW_SUBTRAHEND_2 + respectively. The result is placed in HIGH_DIFFERENCE and + LOW_DIFFERENCE. Overflow (i.e. carry out) is not stored anywhere, + and is lost. + + If any of these macros are left undefined for a particular CPU, + C macros are used. */ + +#define add_ssaaaa(sh, sl, ah, al, bh, bl) \ + do { \ + USItype __x; \ + __x = (al) + (bl); \ + (sh) = (ah) + (bh) + (__x < (al)); \ + (sl) = __x; \ + } while (0) + +#define sub_ddmmss(sh, sl, ah, al, bh, bl) \ + do { \ + USItype __x; \ + __x = (al) - (bl); \ + (sh) = (ah) - (bh) - (__x > (al)); \ + (sl) = __x; \ + } while (0) + +#if __GNUC__ < 3 +#define umul_ppmm(w1, w0, u, v) \ + __asm__("multu %2,%3" : "=l"((USItype)(w0)), "=h"((USItype)(w1)) : "d"((USItype)(u)), "d"((USItype)(v))) +#else +/* Non-matching version for modern GCC */ +#define umul_ppmm(w1, w0, u, v) \ + __asm__("multu %2,%3\n\t" \ + "mflo %0\n\t" \ + "mfhi %1" \ + : "=d"(w0), "=d"(w1) \ + : "d"((USItype)(u)), "d"((USItype)(v))) +#endif + +#define udiv_qrnnd(q, r, n1, n0, d) \ + do { \ + USItype __d1, __d0, __q1, __q0; \ + USItype __r1, __r0, __m; \ + __d1 = __ll_highpart(d); \ + __d0 = __ll_lowpart(d); \ + \ + __r1 = (n1) % __d1; \ + __q1 = (n1) / __d1; \ + __m = (USItype)__q1 * __d0; \ + __r1 = __r1 * __ll_B | __ll_highpart(n0); \ + if (__r1 < __m) { \ + __q1--, __r1 += (d); \ + if (__r1 >= (d)) /* i.e. we didn't get carry when adding to __r1 */ \ + if (__r1 < __m) \ + __q1--, __r1 += (d); \ + } \ + __r1 -= __m; \ + \ + __r0 = __r1 % __d1; \ + __q0 = __r1 / __d1; \ + __m = (USItype)__q0 * __d0; \ + __r0 = __r0 * __ll_B | __ll_lowpart(n0); \ + if (__r0 < __m) { \ + __q0--, __r0 += (d); \ + if (__r0 >= (d)) \ + if (__r0 < __m) \ + __q0--, __r0 += (d); \ + } \ + __r0 -= __m; \ + \ + (q) = (USItype)__q1 * __ll_B | __q0; \ + (r) = __r0; \ + } while (0) + +#define count_leading_zeros(count, x) \ + do { \ + USItype __xr = (x); \ + USItype __a; \ + \ + if (SI_TYPE_SIZE <= 32) { \ + __a = __xr < ((USItype)1 << 2 * __BITS4) \ + ? (__xr < ((USItype)1 << __BITS4) ? 0 : __BITS4) \ + : (__xr < ((USItype)1 << 3 * __BITS4) ? 2 * __BITS4 : 3 * __BITS4); \ + } else { \ + for (__a = SI_TYPE_SIZE - 8; __a > 0; __a -= 8) \ + if (((__xr >> __a) & 0xff) != 0) \ + break; \ + } \ + \ + (count) = SI_TYPE_SIZE - (__clz_tab[__xr >> __a] + __a); \ + } while (0) diff --git a/src/libu64/stackcheck.c b/src/libu64/stackcheck.c index a8b32ffcee..787eb1c3e5 100644 --- a/src/libu64/stackcheck.c +++ b/src/libu64/stackcheck.c @@ -158,12 +158,12 @@ u32 StackCheck_GetState(StackEntry* entry) { if (free == 0) { ret = STACK_STATUS_OVERFLOW; - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); } else if (free < (u32)entry->minSpace && entry->minSpace != -1) { ret = STACK_STATUS_WARNING; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); } else { - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); ret = STACK_STATUS_OK; } @@ -174,7 +174,7 @@ u32 StackCheck_GetState(StackEntry* entry) { PRINTF("head=%08x tail=%08x last=%08x used=%08x free=%08x [%s]\n", entry->head, entry->tail, last, used, free, entry->name != NULL ? entry->name : "(null)"); - PRINTF(VT_RST); + PRINTF_RST(); #if DEBUG_FEATURES if (ret != STACK_STATUS_OK) { diff --git a/src/libultra/audio/auxbus.c b/src/libultra/audio/auxbus.c index 8b13789179..d6e827d217 100644 --- a/src/libultra/audio/auxbus.c +++ b/src/libultra/audio/auxbus.c @@ -1 +1,33 @@ +#include "libaudio.h" +#include "synthInternals.h" +Acmd* alAuxBusPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p) { + Acmd* ptr = p; + ALAuxBus* m = (ALAuxBus*)filter; + ALFilter** sources = m->sources; + s32 i; + + // clear the output buffers here + aClearBuffer(ptr++, AL_AUX_L_OUT, outCount << 1); + aClearBuffer(ptr++, AL_AUX_R_OUT, outCount << 1); + + for (i = 0; i < m->sourceCount; i++) { + ptr = sources[i]->handler(sources[i], outp, outCount, sampleOffset, ptr); + } + return ptr; +} + +s32 alAuxBusParam(void* filter, s32 paramID, void* param) { + ALAuxBus* m = (ALAuxBus*)filter; + ALFilter** sources = m->sources; + + switch (paramID) { + case AL_FILTER_ADD_SOURCE: + sources[m->sourceCount++] = (ALFilter*)param; + break; + + default: + break; + } + return 0; +} diff --git a/src/libultra/audio/copy.c b/src/libultra/audio/copy.c index 8b13789179..1da435cc9e 100644 --- a/src/libultra/audio/copy.c +++ b/src/libultra/audio/copy.c @@ -1 +1,11 @@ +#include "libaudio.h" +void alCopy(void* src, void* dest, s32 len) { + s32 i; + u8* s = (u8*)src; + u8* d = (u8*)dest; + + for (i = 0; i < len; i++) { + *d++ = *s++; + } +} diff --git a/src/libultra/audio/drvrnew.c b/src/libultra/audio/drvrnew.c index 8b13789179..6b10e66b72 100644 --- a/src/libultra/audio/drvrnew.c +++ b/src/libultra/audio/drvrnew.c @@ -1 +1,264 @@ +#include "libaudio.h" +#include "synthInternals.h" +// WARNING: THE FOLLOWING CONSTANT MUST BE KEPT IN SYNC WITH SCALING IN MICROCODE!!! +#define SCALE 16384 + +// the following arrays contain default parameters for a few hopefully useful effects. +#define ms *(((s32)(44.1f)) & ~7) + +// clang-format off +static s32 SMALLROOM_PARAMS[2 + 3 * 8] = { + /* sections */ 3, + /* length */ 100 ms, + /* input output fbcoef ffcoef gain rate depth coef */ + 0, 54 ms, 9830, -9830, 0, 0, 0, 0, + 19 ms, 38 ms, 3276, -3276, 0x3FFF, 0, 0, 0, + 0, 60 ms, 5000, 0, 0, 0, 0, 0x5000 +}; + +static s32 BIGROOM_PARAMS[2 + 4 * 8] = { + /* sections */ 4, + /* length */ 100 ms, + /* input output fbcoef ffcoef gain rate depth coef */ + 0, 66 ms, 9830, -9830, 0, 0, 0, 0, + 22 ms, 54 ms, 3276, -3276, 0x3FFF, 0, 0, 0, + 66 ms, 91 ms, 3276, -3276, 0x3FFF, 0, 0, 0, + 0, 94 ms, 8000, 0, 0, 0, 0, 0x5000, +}; + +static s32 ECHO_PARAMS[2 + 1 * 8] = { + /* sections */ 1, + /* length */ 200 ms, + /* input output fbcoef ffcoef gain rate depth coef */ + 0, 179 ms, 12000, 0, 0x7FFF, 0, 0, 0, +}; + +static s32 CHORUS_PARAMS[2 + 1 * 8] = { + /* sections */ 1, + /* length */ 20 ms, + /* input output fbcoef ffcoef gain rate depth coef */ + 0, 5 ms, 0x4000, 0, 0x7FFF, 7600, 700, 0, +}; + +static s32 FLANGE_PARAMS[2 + 1 * 8] = { + /* sections */ 1, + /* length */ 20 ms, + /* input output fbcoef ffcoef gain rate depth coef */ + 0, 5 ms, 0, 0x5FFF, 0x7FFF, 380, 500, 0, +}; + +static s32 NULL_PARAMS[2 + 1 * 8] = { + /* sections */ 0, + /* length */ 0, + /* input output fbcoef ffcoef gain rate depth coef */ + 0, 0, 0, 0, 0, 0, 0, 0, +}; +// clang-format on + +void _init_lpfilter(ALLowPass* lp) { + s32 i; + s32 temp; + s16 fc; + f64 ffc; + f64 fcoef; + + temp = lp->fc * SCALE; + fc = temp >> 15; + lp->fgain = SCALE - fc; + + lp->first = true; + for (i = 0; i < 8; i++) { + lp->fcvec.fccoef[i] = 0; + } + + lp->fcvec.fccoef[i++] = fc; + fcoef = ffc = (f64)fc / SCALE; + + for (; i < 16; i++) { + fcoef *= ffc; + lp->fcvec.fccoef[i] = (s16)(s32)(fcoef * SCALE); + } +} + +void alFxNew(ALFx* r, ALSynConfig* c, ALHeap* hp) { + u16 i; + u16 j; + u16 k; + s32* param = NULL; + ALFilter* f = &r->filter; + ALDelay* d; + + alFilterNew(f, NULL, alFxParam, AL_FX); + f->handler = alFxPull; + r->paramHdl = (ALSetFXParam)alFxParamHdl; + + switch (c->fxType) { + case AL_FX_SMALLROOM: + param = SMALLROOM_PARAMS; + break; + + case AL_FX_BIGROOM: + param = BIGROOM_PARAMS; + break; + + case AL_FX_ECHO: + param = ECHO_PARAMS; + break; + + case AL_FX_CHORUS: + param = CHORUS_PARAMS; + break; + + case AL_FX_FLANGE: + param = FLANGE_PARAMS; + break; + + case AL_FX_CUSTOM: + param = c->params; + break; + + default: + param = NULL_PARAMS; + break; + } + + j = 0; + + r->section_count = param[j++]; + r->length = param[j++]; + + r->delay = alHeapAlloc(hp, r->section_count, sizeof(ALDelay)); + r->base = alHeapAlloc(hp, r->length, sizeof(s16)); + r->input = r->base; + + for (k = 0; k < r->length; k++) { + r->base[k] = 0; + } + + for (i = 0; i < r->section_count; i++) { + d = &r->delay[i]; + d->input = param[j++]; + d->output = param[j++]; + d->fbcoef = param[j++]; + d->ffcoef = param[j++]; + d->gain = param[j++]; + + if (param[j] != 0) { +#define RANGE 2.0 + d->rsinc = ((((f32)param[j++]) / 1000.0f) * RANGE) / c->outputRate; + + // the following constant is derived from: + // + // ratio = 2^(cents/1200) + // + // and therefore for hundredths of a cent + // x + // ln(ratio) = --------------- + // (120,000)/ln(2) + // where + // 120,000/ln(2) = 173123.40... +#define CONVERT 173123.404906676 + d->rsgain = (((f32)param[j++]) / CONVERT) * (d->output - d->input); + d->rsval = 1.0f; + d->rsdelta = 0.0f; + d->rs = alHeapAlloc(hp, 1, sizeof(ALResampler)); + d->rs->state = alHeapAlloc(hp, 1, sizeof(RESAMPLE_STATE)); + d->rs->delta = 0.0f; + d->rs->first = true; + } else { + d->rs = NULL; + j++; + j++; + } + + if (param[j] != 0) { + d->lp = alHeapAlloc(hp, 1, sizeof(ALLowPass)); + d->lp->fstate = alHeapAlloc(hp, 1, sizeof(POLEF_STATE)); + d->lp->fc = param[j++]; + _init_lpfilter(d->lp); + } else { + d->lp = NULL; + j++; + } + } +} + +void alEnvmixerNew(ALEnvMixer* e, ALHeap* hp) { + alFilterNew(&e->filter, alEnvmixerPull, alEnvmixerParam, AL_ENVMIX); + e->state = alHeapAlloc(hp, 1, sizeof(ENVMIX_STATE)); + e->first = true; + e->motion = AL_STOPPED; + e->volume = 1; + e->ltgt = 1; + e->rtgt = 1; + e->cvolL = 1; + e->cvolR = 1; + e->dryamt = 0; + e->wetamt = 0; + e->lratm = 1; + e->lratl = 0; + e->lratm = 1; + e->lratl = 0; + e->delta = 0; + e->segEnd = 0; + e->pan = 0; + e->ctrlList = NULL; + e->ctrlTail = NULL; + e->sources = NULL; +} + +void alLoadNew(ALLoadFilter* f, ALDMANew dmaNew, ALHeap* hp) { + s32 i; + + // init filter superclass + alFilterNew(&f->filter, alAdpcmPull, alLoadParam, AL_ADPCM); + + f->state = alHeapAlloc(hp, 1, sizeof(ADPCM_STATE)); + f->lstate = alHeapAlloc(hp, 1, sizeof(ADPCM_STATE)); + + f->dma = dmaNew(&f->dmaState); + + // init the adpcm state + f->lastsam = 0; + f->first = true; + f->memin = 0; +} + +void alResampleNew(ALResampler* r, ALHeap* hp) { + alFilterNew(&r->filter, alResamplePull, alResampleParam, AL_RESAMPLE); + + // Init resampler state + r->state = alHeapAlloc(hp, 1, sizeof(RESAMPLE_STATE)); + r->delta = 0.0f; + r->first = true; + r->motion = AL_STOPPED; + r->ratio = 1.0f; + r->upitch = 0; + r->ctrlList = NULL; + r->ctrlTail = NULL; + // state in the ucode is initialized by the A_INIT flag +} + +void alAuxBusNew(ALAuxBus* m, void* sources, s32 maxSources) { + alFilterNew(&m->filter, alAuxBusPull, alAuxBusParam, AL_AUXBUS); + m->sourceCount = 0; + m->maxSources = maxSources; + m->sources = (ALFilter**)sources; +} + +void alMainBusNew(ALMainBus* m, void* sources, s32 maxSources) { + alFilterNew(&m->filter, alMainBusPull, alMainBusParam, AL_MAINBUS); + m->sourceCount = 0; + m->maxSources = maxSources; + m->sources = (ALFilter**)sources; +} + +void alSaveNew(ALSave* f) { + // init filter superclass + alFilterNew(&f->filter, alSavePull, alSaveParam, AL_SAVE); + + // init the save state, which is a virtual dram address + f->dramout = 0; + f->first = true; +} diff --git a/src/libultra/audio/env.c b/src/libultra/audio/env.c index 8b13789179..2d0027ba7d 100644 --- a/src/libultra/audio/env.c +++ b/src/libultra/audio/env.c @@ -1 +1,420 @@ +#include "libaudio.h" +#include "synthInternals.h" +#include "libc/math.h" +#include "ultra64/convert.h" +#define EQPOWER_LENGTH 128 +static s16 eqpower[EQPOWER_LENGTH] = { + 32767, 32764, 32757, 32744, 32727, 32704, 32677, 32644, 32607, 32564, 32517, 32464, 32407, 32344, 32277, 32205, + 32127, 32045, 31958, 31866, 31770, 31668, 31561, 31450, 31334, 31213, 31087, 30957, 30822, 30682, 30537, 30388, + 30234, 30075, 29912, 29744, 29572, 29395, 29214, 29028, 28838, 28643, 28444, 28241, 28033, 27821, 27605, 27385, + 27160, 26931, 26698, 26461, 26220, 25975, 25726, 25473, 25216, 24956, 24691, 24423, 24151, 23875, 23596, 23313, + 23026, 22736, 22442, 22145, 21845, 21541, 21234, 20924, 20610, 20294, 19974, 19651, 19325, 18997, 18665, 18331, + 17993, 17653, 17310, 16965, 16617, 16266, 15913, 15558, 15200, 14840, 14477, 14113, 13746, 13377, 13006, 12633, + 12258, 11881, 11503, 11122, 10740, 10357, 9971, 9584, 9196, 8806, 8415, 8023, 7630, 7235, 6839, 6442, + 6044, 5646, 5246, 4845, 4444, 4042, 3640, 3237, 2833, 2429, 2025, 1620, 1216, 810, 405, 0 +}; + +static Acmd* _pullSubFrame(void* filter, s16* inp, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p); +static s16 _getRate(f64 vol, f64 tgt, s32 count, u16* ratel); +static f32 _getVol(f32 ivol, s32 samples, s16 ratem, u16 ratel); + +Acmd* alEnvmixerPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p) { + Acmd* ptr = p; + ALEnvMixer* e = (ALEnvMixer*)filter; + s16 inp; + s32 lastOffset; + s32 thisOffset = sampleOffset; + s32 samples; + s16 loutp = 0; + s32 fVol; + ALParam* thisParam; + + // Force the input to be the resampler output + inp = AL_RESAMPLER_OUT; + + while (e->ctrlList != NULL) { + lastOffset = thisOffset; + thisOffset = e->ctrlList->delta; + samples = thisOffset - lastOffset; + if (samples > outCount) { + break; + } + + switch (e->ctrlList->type) { + case AL_FILTER_START_VOICE_ALT: { + ALStartParamAlt* param = (ALStartParamAlt*)e->ctrlList; + ALFilter* f = &e->filter; + s32 tmp; + + if (param->unity != 0) { + (*e->filter.setParam)(&e->filter, AL_FILTER_SET_UNITY_PITCH, 0); + } + + (*e->filter.setParam)(&e->filter, AL_FILTER_SET_WAVETABLE, param->wave); + (*e->filter.setParam)(&e->filter, AL_FILTER_START, 0); + + e->first = true; + + e->delta = 0; + e->segEnd = param->samples; + + tmp = ((s32)param->volume * (s32)param->volume) >> 15; + e->volume = (s16)tmp; + e->pan = param->pan; + e->dryamt = eqpower[param->fxMix]; + e->wetamt = eqpower[EQPOWER_LENGTH - param->fxMix - 1]; + + if (param->samples != 0) { + e->cvolL = 1; + e->cvolR = 1; + } else { + // Attack time is zero. Simply set the volume. We don't want an attack segment. + e->cvolL = (e->volume * eqpower[e->pan]) >> 15; + e->cvolR = (e->volume * eqpower[EQPOWER_LENGTH - e->pan - 1]) >> 15; + } + + if (f->source != NULL) { + union { + f32 f; + s32 i; + } data; + data.f = param->pitch; + (*f->source->setParam)(f->source, AL_FILTER_SET_PITCH, (void*)data.i); + } + } break; + + case AL_FILTER_SET_FXAMT: + case AL_FILTER_SET_PAN: + case AL_FILTER_SET_VOLUME: + ptr = _pullSubFrame(e, &inp, &loutp, samples, sampleOffset, ptr); + + if (e->delta >= e->segEnd) { + // We should have reached our target, calculate target in case e->segEnd was 0 + e->ltgt = (e->volume * eqpower[e->pan]) >> 15; + e->rtgt = (e->volume * eqpower[EQPOWER_LENGTH - e->pan - 1]) >> 15; + e->delta = e->segEnd; // To prevent overflow + e->cvolL = e->ltgt; + e->cvolR = e->rtgt; + } else { + // Estimate the current volume + e->cvolL = _getVol(e->cvolL, e->delta, e->lratm, e->lratl); + e->cvolR = _getVol(e->cvolR, e->delta, e->rratm, e->rratl); + } + + // We can't have volume of zero, because the envelope would never go anywhere from there + if (e->cvolL == 0) { + e->cvolL = 1; + } + if (e->cvolR == 0) { + e->cvolR = 1; + } + + if (e->ctrlList->type == AL_FILTER_SET_PAN) { + // This should result in a change to the current segment rate and target + e->pan = (s16)e->ctrlList->data.i; + } + + if (e->ctrlList->type == AL_FILTER_SET_VOLUME) { + // Switching to a new segment + e->delta = 0; + + // Map volume non-linearly to give something close to loudness + fVol = (e->ctrlList->data.i); + fVol = (fVol * fVol) >> 15; + e->volume = (s16)fVol; + e->segEnd = e->ctrlList->moredata.i; + } + + if (e->ctrlList->type == AL_FILTER_SET_FXAMT) { + e->dryamt = eqpower[e->ctrlList->data.i]; + e->wetamt = eqpower[EQPOWER_LENGTH - e->ctrlList->data.i - 1]; + } + + // Force a volume update + e->first = true; + break; + + case AL_FILTER_START_VOICE: { + ALStartParam* p = (ALStartParam*)e->ctrlList; + + // Changing to PLAYING (since the previous state was persumable STOPPED, we'll just bump the output + // pointer rather than pull a subframe of zeros). + if (p->unity != 0) { + (*e->filter.setParam)(&e->filter, AL_FILTER_SET_UNITY_PITCH, 0); + } + + (*e->filter.setParam)(&e->filter, AL_FILTER_SET_WAVETABLE, p->wave); + (*e->filter.setParam)(&e->filter, AL_FILTER_START, 0); + } break; + + case AL_FILTER_STOP_VOICE: { + // Changing to STOPPED and reset the filter + ptr = _pullSubFrame(e, &inp, &loutp, samples, sampleOffset, ptr); + (*e->filter.setParam)(&e->filter, AL_FILTER_RESET, 0); + } break; + + case AL_FILTER_FREE_VOICE: { + ALSynth* drvr = &alGlobals->drvr; + ALFreeParam* param = (ALFreeParam*)e->ctrlList; + param->pvoice->offset = 0; + _freePVoice(drvr, param->pvoice); + } break; + + default: + // Pull the reuired number of samples and then pass the message on down the chain + ptr = _pullSubFrame(e, &inp, &loutp, samples, sampleOffset, ptr); + (*e->filter.setParam)(&e->filter, e->ctrlList->type, (void*)e->ctrlList->data.i); + break; + } + loutp += samples << 1; + outCount -= samples; + + // put the param record back on the free list + thisParam = e->ctrlList; + e->ctrlList = e->ctrlList->next; + if (e->ctrlList == NULL) { + e->ctrlTail = NULL; + } + + __freeParam(thisParam); + } + + ptr = _pullSubFrame(e, &inp, &loutp, outCount, sampleOffset, ptr); + + // Prevent overflow in e->delta + if (e->delta > e->segEnd) { + e->delta = e->segEnd; + } + + return ptr; +} + +s32 alEnvmixerParam(void* filter, s32 paramID, void* param) { + ALFilter* f = (ALFilter*)filter; + ALEnvMixer* e = (ALEnvMixer*)filter; + + switch (paramID) { + case AL_FILTER_ADD_UPDATE: + if (e->ctrlTail != NULL) { + e->ctrlTail->next = (ALParam*)param; + } else { + e->ctrlList = (ALParam*)param; + } + e->ctrlTail = (ALParam*)param; + break; + + case AL_FILTER_RESET: + e->first = true; + e->motion = AL_STOPPED; + e->volume = 1; + if (f->source != NULL) { + (*f->source->setParam)(f->source, AL_FILTER_RESET, param); + } + break; + + case AL_FILTER_START: + e->motion = AL_PLAYING; + if (f->source != NULL) { + (*f->source->setParam)(f->source, AL_FILTER_START, param); + } + break; + + case AL_FILTER_SET_SOURCE: + f->source = (ALFilter*)param; + break; + + default: + if (f->source != NULL) { + (*f->source->setParam)(f->source, paramID, param); + } + break; + } + return 0; +} + +static Acmd* _pullSubFrame(void* filter, s16* inp, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p) { + Acmd* ptr = p; + ALEnvMixer* e = (ALEnvMixer*)filter; + ALFilter* source = e->filter.source; + + // filter must be playing and request non-zero output samples to pull. + if (e->motion != AL_PLAYING || !outCount) { + return ptr; + } + + // ask all filters upstream from us to build their command lists. + ptr = (*source->handler)(source, inp, outCount, sampleOffset, p); + + // construct our portion of the command list + aSetBuffer(ptr++, A_MAIN, *inp, AL_MAIN_L_OUT + *outp, outCount << 1); + aSetBuffer(ptr++, A_AUX, AL_MAIN_R_OUT + *outp, AL_AUX_L_OUT + *outp, AL_AUX_R_OUT + *outp); + + if (e->first) { + e->first = false; + + // Calculate derived parameters + e->ltgt = (e->volume * eqpower[e->pan]) >> 15; + e->lratm = _getRate((f64)e->cvolL, (f64)e->ltgt, e->segEnd, &e->lratl); + e->rtgt = (e->volume * eqpower[EQPOWER_LENGTH - e->pan - 1]) >> 15; + e->rratm = _getRate((f64)e->cvolR, (f64)e->rtgt, e->segEnd, &e->rratl); + + aSetVolume(ptr++, A_LEFT | A_VOL, e->cvolL, 0, 0); + aSetVolume(ptr++, A_RIGHT | A_VOL, e->cvolR, 0, 0); + aSetVolume(ptr++, A_LEFT | A_RATE, e->ltgt, e->lratm, e->lratl); + aSetVolume(ptr++, A_RIGHT | A_RATE, e->rtgt, e->rratm, e->rratl); + aSetVolume(ptr++, A_AUX, e->dryamt, 0, e->wetamt); + aEnvMixer(ptr++, A_INIT | A_AUX, osVirtualToPhysical(e->state)); + } else + aEnvMixer(ptr++, A_CONTINUE | A_AUX, osVirtualToPhysical(e->state)); + + // bump the input buffer pointer + *inp += outCount << 1; + e->delta += outCount; + + return ptr; +} + +f64 _frexpf(f64 value, s32* eptr) { + f64 absvalue; + + *eptr = 0; + if (value == 0.0) { + // nothing to do for zero + return value; + } + absvalue = (value > 0.0) ? value : -value; + for (; absvalue >= 1.0; absvalue *= 0.5) { + (*eptr)++; + } + for (; absvalue < 0.5; absvalue += absvalue) { + (*eptr)--; + } + return (value > 0.0 ? absvalue : -absvalue); +} + +f64 _ldexpf(f64 in, s32 ex) { + s32 exp; + + if (ex != 0) { + exp = 1 << ex; + in *= (f64)exp; + } + return in; +} + +/** + * This function determines how to go from the current volume level (vol) to the target volume level (tgt) in some + * number of steps (count). Two values are returned that are used as multipliers to incrementally scale the volume. + * Some tricky math is used and is explained below. + * RWW 28jun95 + */ +static s16 _getRate(f64 vol, f64 tgt, s32 count, u16* ratel) { + s16 s; + f64 invn = 1.0 / count; + f64 eps; + f64 a; + f64 fs; + f64 mant; + s32 i_invn; + s32 ex; + s32 indx; + + if (count == 0) { + if (tgt >= vol) { + *ratel = 0xFFFF; + return 0x7FFF; + } else { + *ratel = 0; + return 0; + } + } + + if (tgt < 1.0) { + tgt = 1.0; + } + if (vol <= 0.0) { + vol = 1.0; // zero and neg values not allowed + } + +#define NBITS 3 +#define NPOS (1 << NBITS) +#define NFRACBITS 30 +#define M_LN2 0.69314718055994530942 + // rww's parametric pow() + // Goal: compute a = (tgt/vol)^(1/count) + // + // Approach: + // (tgt/vol)^(1/count) = ((tgt/vol)^(1/2^30))^(2^30*1/count) + // + // (tgt/vol)^(1/2^30) ~= 1 + eps + // + // where + // + // eps ~= ln(tgt/vol)/2^30 + // + // ln(tgt/vol) = ln2(tgt/vol) * ln(2) + // + // ln2(tgt/vol) = fp_exponent( tgt/vol ) + ln2( fp_mantissa( tgt/vol ) ) + // + // fp_mantissa() and fp_exponent() are calculated via tricky bit manipulations of + // the floating point number. ln2() is approximated by a look up table. + // + // Note that this final (1+eps) value needs to be raised to the 2^30/count power. This + // is done by operating on the binary representaion of this number in the final while loop. + // + // Enjoy! + { + f64 logtab[] = { -0.912537, -0.752072, -0.607683, -0.476438, -0.356144, -0.245112, -0.142019, -0.045804 }; + + i_invn = (s32)_ldexpf(invn, NFRACBITS); + mant = _frexpf(tgt / vol, &ex); + indx = (s32)_ldexpf(mant, NBITS + 1); // NPOS <= indx < 2*NPOS + eps = (logtab[indx - NPOS] + ex) * M_LN2; + eps /= _ldexpf(1, NFRACBITS); // eps / 2^NFRACBITS + fs = 1.0 + eps; + a = 1.0; + while (i_invn != 0) { + if (i_invn & 1) { + a = a * fs; + } + fs *= fs; + i_invn >>= 1; + } + } + + a *= a; + a *= a; + a *= a; + s = (s16)a; + *ratel = (s16)(0xFFFF * (a - (f32)s)); + + return (s16)a; +} + +static f32 _getVol(f32 ivol, s32 samples, s16 ratem, u16 ratel) { + f32 r; + f32 a; + s32 i; + + // Rate values are actually rate^8 + samples >>= 3; + if (samples == 0) { + return ivol; + } + r = ((f32)(ratem << 16) + (f32)ratel) / 65536; + + a = 1.0f; + for (i = 0; i < 32; i++) { + if (samples & 1) { + a *= r; + } + samples >>= 1; + if (samples == 0) { + break; + } + r *= r; + } + ivol *= a; + return ivol; +} diff --git a/src/libultra/audio/filter.c b/src/libultra/audio/filter.c index 8b13789179..937ffd04c5 100644 --- a/src/libultra/audio/filter.c +++ b/src/libultra/audio/filter.c @@ -1 +1,11 @@ +#include "libaudio.h" +#include "synthInternals.h" +void alFilterNew(ALFilter* f, ALCmdHandler h, ALSetParam s, s32 type) { + f->source = NULL; + f->handler = h; + f->setParam = s; + f->inp = 0; + f->outp = 0; + f->type = type; +} diff --git a/src/libultra/audio/heapalloc.c b/src/libultra/audio/heapalloc.c index 8b13789179..52c3605c51 100644 --- a/src/libultra/audio/heapalloc.c +++ b/src/libultra/audio/heapalloc.c @@ -1 +1,15 @@ +#include "libaudio.h" +#include "synthInternals.h" +void* alHeapDBAlloc(u8* file, s32 line, ALHeap* hp, s32 num, s32 size) { + s32 bytes; + u8* ptr = NULL; + + bytes = (num * size + AL_CACHE_ALIGN) & ~AL_CACHE_ALIGN; + + if (hp->cur + bytes <= hp->base + hp->len) { + ptr = hp->cur; + hp->cur += bytes; + } + return ptr; +} diff --git a/src/libultra/audio/libaudio.h b/src/libultra/audio/libaudio.h new file mode 100644 index 0000000000..67f04567bf --- /dev/null +++ b/src/libultra/audio/libaudio.h @@ -0,0 +1,842 @@ +#ifndef __LIB_AUDIO__ +#define __LIB_AUDIO__ + +#include "libc/stdbool.h" +#include "libc/stddef.h" +#include "libc/stdint.h" +#include "ultra64/ultratypes.h" + +#include "libaudio_abi.h" + +/*********************************************************************** + * misc defines + ***********************************************************************/ + +#define AL_FX_BUFFER_SIZE 8192 +#define AL_FRAME_INIT -1 +#define AL_USEC_PER_FRAME 16000 +#define AL_MAX_PRIORITY 127 +#define AL_GAIN_CHANGE_TIME 1000 + +typedef s32 ALMicroTime; +typedef u8 ALPan; + +#define AL_PAN_CENTER 64 +#define AL_PAN_LEFT 0 +#define AL_PAN_RIGHT 127 +#define AL_VOL_FULL 127 +#define AL_KEY_MIN 0 +#define AL_KEY_MAX 127 +#define AL_DEFAULT_FXMIX 0 +#define AL_SUSTAIN 63 + +/*********************************************************************** + * Audio Library global routines + ***********************************************************************/ +typedef struct ALLink_s { + struct ALLink_s* next; + struct ALLink_s* prev; +} ALLink; + +void alUnlink(ALLink* ln); +void alLink(ALLink* ln, ALLink* to); + +typedef s32 (*ALDMAproc)(s32 addr, s32 len, void* state); +typedef ALDMAproc (*ALDMANew)(void* state); + +void alCopy(void* src, void* dest, s32 len); + +typedef struct { + u8* base; + u8* cur; + s32 len; + s32 count; +} ALHeap; + +#define AL_HEAP_DEBUG 1 +#define AL_HEAP_MAGIC 0x20736A73 // ' sjs' +#define AL_HEAP_INIT 0 + +void alHeapInit(ALHeap* hp, u8* base, s32 len); +void* alHeapDBAlloc(u8* file, s32 line, ALHeap* hp, s32 num, s32 size); +s32 alHeapCheck(ALHeap* hp); + +#define alHeapAlloc(hp, elem ,size) alHeapDBAlloc(0, 0,(hp),(elem),(size)) + +/*********************************************************************** + * FX Stuff + ***********************************************************************/ +#define AL_FX_NONE 0 +#define AL_FX_SMALLROOM 1 +#define AL_FX_BIGROOM 2 +#define AL_FX_CHORUS 3 +#define AL_FX_FLANGE 4 +#define AL_FX_ECHO 5 +#define AL_FX_CUSTOM 6 + +typedef u8 ALFxId; +typedef void* ALFxRef; + +/*********************************************************************** + * data structures for sound banks + ***********************************************************************/ + +#define AL_BANK_VERSION 0x4231 // 'B1' + +// Possible wavetable types +enum { + AL_ADPCM_WAVE = 0, + AL_RAW16_WAVE +}; + +typedef struct { + s32 order; + s32 npredictors; + s16 book[1]; // Actually variable size. Must be 8-byte aligned +} ALADPCMBook; + +typedef struct { + u32 start; + u32 end; + u32 count; + ADPCM_STATE state; +} ALADPCMloop; + +typedef struct { + u32 start; + u32 end; + u32 count; +} ALRawLoop; + +typedef struct { + ALMicroTime attackTime; + ALMicroTime decayTime; + ALMicroTime releaseTime; + u8 attackVolume; + u8 decayVolume; +} ALEnvelope; + +typedef struct { + u8 velocityMin; + u8 velocityMax; + u8 keyMin; + u8 keyMax; + u8 keyBase; + s8 detune; +} ALKeyMap; + +typedef struct { + ALADPCMloop* loop; + ALADPCMBook* book; +} ALADPCMWaveInfo; + +typedef struct { + ALRawLoop* loop; +} ALRAWWaveInfo; + +typedef struct ALWaveTable_s { + u8* base; // ptr to start of wave data + s32 len; // length of data in bytes + u8 type; // compression type + u8 flags; // offset/address flags + union { + ALADPCMWaveInfo adpcmWave; + ALRAWWaveInfo rawWave; + } waveInfo; +} ALWaveTable; + +typedef struct ALSound_s { + ALEnvelope* envelope; + ALKeyMap* keyMap; + ALWaveTable* wavetable; // offset to wavetable struct + ALPan samplePan; + u8 sampleVolume; + u8 flags; +} ALSound; + +typedef struct { + u8 volume; // overall volume for this instrument + ALPan pan; // 0 = hard left, 127 = hard right + u8 priority; // voice priority for this instrument + u8 flags; + u8 tremType; // the type of tremelo osc. to use + u8 tremRate; // the rate of the tremelo osc. + u8 tremDepth; // the depth of the tremelo osc + u8 tremDelay; // the delay for the tremelo osc + u8 vibType; // the type of tremelo osc. to use + u8 vibRate; // the rate of the tremelo osc. + u8 vibDepth; // the depth of the tremelo osc + u8 vibDelay; // the delay for the tremelo osc + s16 bendRange; // pitch bend range in cents + s16 soundCount; // number of sounds in this array + ALSound* soundArray[1]; +} ALInstrument; + +typedef struct ALBank_s { + s16 instCount; // number of programs in this bank + u8 flags; + u8 pad; + s32 sampleRate; // e.g. 44100, 22050, etc... + ALInstrument* percussion; // default percussion for GM + ALInstrument* instArray[1]; // ARRAY of instruments +} ALBank; + +typedef struct { // Note: sizeof won't be correct + s16 revision; // format revision of this file + s16 bankCount; // number of banks + ALBank* bankArray[1]; // ARRAY of bank offsets +} ALBankFile; + +void alBnkfNew(ALBankFile* f, u8* table); + +/*********************************************************************** + * Sequence Files + ***********************************************************************/ +#define AL_SEQBANK_VERSION 'S1' + +typedef struct { + u8* offset; + s32 len; +} ALSeqData; + +typedef struct { // Note: sizeof won't be correct + s16 revision; // format revision of this file + s16 seqCount; // number of sequences + ALSeqData seqArray[1]; // ARRAY of sequence info +} ALSeqFile; + +void alSeqFileNew(ALSeqFile* f, u8* base); + +/*********************************************************************** + * Synthesis driver stuff + ***********************************************************************/ +typedef ALMicroTime (*ALVoiceHandler)(void*); + +typedef struct { + s32 maxVVoices; // obsolete + s32 maxPVoices; + s32 maxUpdates; + s32 maxFXbusses; + void* dmaproc; + ALHeap* heap; + s32 outputRate; // output sample rate + ALFxId fxType; + s32* params; +} ALSynConfig; + +typedef struct ALPlayer_s { + struct ALPlayer_s* next; + void* clientData; // storage for client callback + ALVoiceHandler handler; // voice handler for player + ALMicroTime callTime; // usec requested callback + s32 samplesLeft; // usec remaining to callback +} ALPlayer; + +typedef struct ALVoice_s { + ALLink node; + struct PVoice_s* pvoice; + ALWaveTable* table; + void* clientPrivate; + s16 state; + s16 priority; + s16 fxBus; + s16 unityPitch; +} ALVoice; + +typedef struct ALVoiceConfig_s { + s16 priority; // voice priority + s16 fxBus; // bus assignment + u8 unityPitch; // unity pitch flag +} ALVoiceConfig; + +typedef struct { + ALPlayer* head; // client list head + ALLink pFreeList; // list of free physical voices + ALLink pAllocList; // list of allocated physical voices + ALLink pLameList; // list of voices ready to be freed + s32 paramSamples; + s32 curSamples; // samples from start of game + ALDMANew dma; + ALHeap* heap; + + struct ALParam_s* paramList; + + struct ALMainBus_s* mainBus; + struct ALAuxBus_s* auxBus; // ptr to array of aux bus structs + struct ALFilter_s* outputFilter; // last filter in the filter chain + + s32 numPVoices; + s32 maxAuxBusses; + s32 outputRate; // output sample rate + s32 maxOutSamples; // Maximum samples rsp can generate at one time at output rate +} ALSynth; + +void alSynNew(ALSynth* drvr, ALSynConfig* c); +void alSynDelete(ALSynth* drvr); + +void alSynAddPlayer(ALSynth* s, ALPlayer* client); +void alSynRemovePlayer(ALSynth* s, ALPlayer* client); + +s32 alSynAllocVoice(ALSynth* s, ALVoice* v, ALVoiceConfig* vc); +void alSynFreeVoice(ALSynth* s, ALVoice* voice); + +void alSynStartVoice(ALSynth* s, ALVoice* voice, ALWaveTable* w); +void alSynStartVoiceParams(ALSynth* s, ALVoice* voice, ALWaveTable* w, f32 pitch, s16 vol, ALPan pan, u8 fxmix, ALMicroTime t); +void alSynStopVoice(ALSynth* s, ALVoice* voice); + +void alSynSetVol(ALSynth* s, ALVoice* v, s16 vol, ALMicroTime delta); +void alSynSetPitch(ALSynth* s, ALVoice* voice, f32 ratio); +void alSynSetPan(ALSynth* s, ALVoice* voice, ALPan pan); +void alSynSetFXMix(ALSynth* s, ALVoice* voice, u8 fxmix); +void alSynSetPriority(ALSynth* s, ALVoice* voice, s16 priority); +s16 alSynGetPriority(ALSynth* s, ALVoice* voice); + +ALFxRef* alSynAllocFX(ALSynth* s, s16 bus, ALSynConfig* c, ALHeap* hp); +ALFxRef alSynGetFXRef(ALSynth* s, s16 bus, s16 index); +void alSynFreeFX(ALSynth* s, ALFxRef* fx); +void alSynSetFXParam(ALSynth* s, ALFxRef fx, s16 paramID, void* param); + +/*********************************************************************** + * Audio Library (AL) stuff + ***********************************************************************/ +typedef struct { + ALSynth drvr; +} ALGlobals; + +extern ALGlobals* alGlobals; + +void alInit(ALGlobals* g, ALSynConfig* c); +void alClose(ALGlobals* glob); + +Acmd* alAudioFrame(Acmd* cmdList, s32* cmdLen, s16* outBuf, s32 outLen); + +/*********************************************************************** + * Sequence Player stuff + ***********************************************************************/ + +/** + * Play states + */ +#define AL_STOPPED 0 +#define AL_PLAYING 1 +#define AL_STOPPING 2 + +#define AL_DEFAULT_PRIORITY 5 +#define AL_DEFAULT_VOICE 0 +#define AL_MAX_CHANNELS 16 + +/** + * Audio Library event type definitions + */ +enum ALMsg { + AL_SEQ_REF_EVT, // Reference to a pending event in the sequence. + AL_SEQ_MIDI_EVT, + AL_SEQP_MIDI_EVT, + AL_TEMPO_EVT, + AL_SEQ_END_EVT, + AL_NOTE_END_EVT, + AL_SEQP_ENV_EVT, + AL_SEQP_META_EVT, + AL_SEQP_PROG_EVT, + AL_SEQP_API_EVT, + AL_SEQP_VOL_EVT, + AL_SEQP_LOOP_EVT, + AL_SEQP_PRIORITY_EVT, + AL_SEQP_SEQ_EVT, + AL_SEQP_BANK_EVT, + AL_SEQP_PLAY_EVT, + AL_SEQP_STOP_EVT, + AL_SEQP_STOPPING_EVT, + AL_TRACK_END, + AL_CSP_LOOPSTART, + AL_CSP_LOOPEND, + AL_CSP_NOTEOFF_EVT, + AL_TREM_OSC_EVT, + AL_VIB_OSC_EVT +}; + +/** + * Midi event definitions + */ +#define AL_EVTQ_END 0x7FFFFFFF + +enum AL_MIDIstatus { + // For distinguishing channel number from status + AL_MIDI_ChannelMask = 0x0F, + AL_MIDI_StatusMask = 0xF0, + + // Channel voice messages + AL_MIDI_ChannelVoice = 0x80, + AL_MIDI_NoteOff = 0x80, + AL_MIDI_NoteOn = 0x90, + AL_MIDI_PolyKeyPressure = 0xA0, + AL_MIDI_ControlChange = 0xB0, + AL_MIDI_ChannelModeSelect = 0xB0, + AL_MIDI_ProgramChange = 0xC0, + AL_MIDI_ChannelPressure = 0xD0, + AL_MIDI_PitchBendChange = 0xE0, + + // System messages + AL_MIDI_SysEx = 0xF0, // System Exclusive + // System common + AL_MIDI_SystemCommon = 0xF1, + AL_MIDI_TimeCodeQuarterFrame = 0xF1, + AL_MIDI_SongPositionPointer = 0xF2, + AL_MIDI_SongSelect = 0xF3, + AL_MIDI_Undefined1 = 0xF4, + AL_MIDI_Undefined2 = 0xF5, + AL_MIDI_TuneRequest = 0xF6, + AL_MIDI_EOX = 0xF7, // End of System Exclusive + + // System real time + AL_MIDI_SystemRealTime = 0xF8, + AL_MIDI_TimingClock = 0xF8, + AL_MIDI_Undefined3 = 0xF9, + AL_MIDI_Start = 0xFA, + AL_MIDI_Continue = 0xFB, + AL_MIDI_Stop = 0xFC, + AL_MIDI_Undefined4 = 0xFD, + AL_MIDI_ActiveSensing = 0xFE, + AL_MIDI_SystemReset = 0xFF, + AL_MIDI_Meta = 0xFF // MIDI Files only +}; + +enum AL_MIDIctrl { + AL_MIDI_VOLUME_CTRL = 0x07, + AL_MIDI_PAN_CTRL = 0x0A, + AL_MIDI_PRIORITY_CTRL = 0x10, // use general purpose controller for priority + AL_MIDI_FX_CTRL_0 = 0x14, + AL_MIDI_FX_CTRL_1 = 0x15, + AL_MIDI_FX_CTRL_2 = 0x16, + AL_MIDI_FX_CTRL_3 = 0x17, + AL_MIDI_FX_CTRL_4 = 0x18, + AL_MIDI_FX_CTRL_5 = 0x19, + AL_MIDI_FX_CTRL_6 = 0x1A, + AL_MIDI_FX_CTRL_7 = 0x1B, + AL_MIDI_FX_CTRL_8 = 0x1C, + AL_MIDI_FX_CTRL_9 = 0x1D, + AL_MIDI_SUSTAIN_CTRL = 0x40, + AL_MIDI_FX1_CTRL = 0x5B, + AL_MIDI_FX3_CTRL = 0x5D +}; + +enum AL_MIDImeta { + AL_MIDI_META_TEMPO = 0x51, + AL_MIDI_META_EOT = 0x2F +}; + + +#define AL_CMIDI_BLOCK_CODE 0xFE +#define AL_CMIDI_LOOPSTART_CODE 0x2E +#define AL_CMIDI_LOOPEND_CODE 0x2D + +#define AL_CMIDI_CNTRL_LOOPSTART 102 +#define AL_CMIDI_CNTRL_LOOPEND 103 +#define AL_CMIDI_CNTRL_LOOPCOUNT_SM 104 +#define AL_CMIDI_CNTRL_LOOPCOUNT_BIG 105 + +typedef struct { + u8* curPtr; // ptr to the next event + s32 lastTicks; // sequence clock ticks (used by alSeqSetLoc) + s32 curTicks; // sequence clock ticks of next event (used by loop end test) + s16 lastStatus; // the last status msg +} ALSeqMarker; + +typedef struct { + s32 ticks; // MIDI, Tempo and End events must start with ticks + u8 status; + u8 byte1; + u8 byte2; + u32 duration; +} ALMIDIEvent; + +typedef struct { + s32 ticks; + u8 status; + u8 type; + u8 len; + u8 byte1; + u8 byte2; + u8 byte3; +} ALTempoEvent; + +typedef struct { + s32 ticks; + u8 status; + u8 type; + u8 len; +} ALEndEvent; + +typedef struct { + struct ALVoice_s* voice; +} ALNoteEvent; + +typedef struct { + struct ALVoice_s* voice; + ALMicroTime delta; + u8 vol; +} ALVolumeEvent; + +typedef struct { + s16 vol; +} ALSeqpVolEvent; + +typedef struct { + ALSeqMarker* start; + ALSeqMarker* end; + s32 count; +} ALSeqpLoopEvent; + +typedef struct { + u8 chan; + u8 priority; +} ALSeqpPriorityEvent; + +typedef struct { + void* seq; // pointer to a seq (could be an ALSeq or an ALCSeq). +} ALSeqpSeqEvent; + +typedef struct { + ALBank* bank; +} ALSeqpBankEvent; + +typedef struct { + struct ALVoiceState_s* vs; + void* oscState; + u8 chan; +} ALOscEvent; + +typedef struct { + s16 type; + union { + ALMIDIEvent midi; + ALTempoEvent tempo; + ALEndEvent end; + ALNoteEvent note; + ALVolumeEvent vol; + ALSeqpLoopEvent loop; + ALSeqpVolEvent spvol; + ALSeqpPriorityEvent sppriority; + ALSeqpSeqEvent spseq; + ALSeqpBankEvent spbank; + ALOscEvent osc; + } msg; +} ALEvent; + +typedef struct { + ALLink node; + ALMicroTime delta; + ALEvent evt; +} ALEventListItem; + +typedef struct { + ALLink freeList; + ALLink allocList; + s32 eventCount; +} ALEventQueue; + +void alEvtqNew(ALEventQueue* evtq, ALEventListItem* items, s32 itemCount); +ALMicroTime alEvtqNextEvent(ALEventQueue* evtq, ALEvent* evt); +void alEvtqPostEvent(ALEventQueue* evtq, ALEvent* evt, ALMicroTime delta); +void alEvtqFlush(ALEventQueue* evtq); +void alEvtqFlushType(ALEventQueue* evtq, s16 type); + +#define AL_PHASE_ATTACK 0 +#define AL_PHASE_NOTEON 0 +#define AL_PHASE_DECAY 1 +#define AL_PHASE_SUSTAIN 2 +#define AL_PHASE_RELEASE 3 +#define AL_PHASE_SUSTREL 4 + +typedef struct ALVoiceState_s { + struct ALVoiceState_s* next; // MUST be first + ALVoice voice; + ALSound* sound; + ALMicroTime envEndTime; // time of envelope segment end + f32 pitch; // currect pitch ratio + f32 vibrato; // current value of the vibrato + u8 envGain; // current envelope gain + u8 channel; // channel assignment + u8 key; // note on key number + u8 velocity; // note on velocity + u8 envPhase; // what envelope phase + u8 phase; + u8 tremelo; // current value of the tremelo + u8 flags; // bit 0 tremelo flag, bit 1 vibrato flag +} ALVoiceState; + +typedef struct { + ALInstrument* instrument; // instrument assigned to this chan + s16 bendRange; // pitch bend range in cents + ALFxId fxId; // type of fx assigned to this chan + ALPan pan; // overall pan for this chan + u8 priority; // priority for this chan + u8 vol; // current volume for this chan + u8 fxmix; // current fx mix for this chan + u8 sustain; // current sustain pedal state + f32 pitchBend; // current pitch bend val in cents +} ALChanState; + +typedef struct ALSeq_s { + u8* base; // ptr to start of sequence file + u8* trackStart; // ptr to first MIDI event + u8* curPtr; // ptr to next event to read + s32 lastTicks; // MIDI ticks for last event + s32 len; // length of sequence in bytes + f32 qnpt; // qrter notes / tick (1/division) + s16 division; // ticks per quarter note + s16 lastStatus; // for running status +} ALSeq; + +typedef struct { + u32 trackOffset[16]; + u32 division; +} ALCMidiHdr; + +typedef struct ALCSeq_s { + ALCMidiHdr* base; // ptr to start of sequence file + u32 validTracks; // set of flags, showing valid tracks + f32 qnpt; // qrter notes / tick (1/division) + u32 lastTicks; // keep track of ticks incase app wants + u32 lastDeltaTicks; // number of delta ticks of last event + u32 deltaFlag; // flag: set if delta's not subtracted + u8* curLoc[16]; // ptr to current track location, may point to next event, or may point to a backup code + u8* curBUPtr[16]; // ptr to next event if in backup mode + u8 curBULen[16]; // if > 0, then in backup mode + u8 lastStatus[16]; // for running status + u32 evtDeltaTicks[16]; // delta time to next event +} ALCSeq; + +typedef struct { + u32 validTracks; + s32 lastTicks; + u32 lastDeltaTicks; + u8* curLoc[16]; + u8* curBUPtr[16]; + u8 curBULen[16]; + u8 lastStatus[16]; + u32 evtDeltaTicks[16]; +} ALCSeqMarker; + +#define NO_SOUND_ERR_MASK (1 << 0) +#define NOTE_OFF_ERR_MASK (1 << 1) +#define NO_VOICE_ERR_MASK (1 << 2) + +typedef struct { + s32 maxVoices; // max number of voices to alloc + s32 maxEvents; // max internal events to support + u8 maxChannels; // max MIDI channels to support (16) + u8 debugFlags; // control which error get reported + ALHeap* heap; // ptr to initialized heap + void* initOsc; + void* updateOsc; + void* stopOsc; +} ALSeqpConfig; + +typedef ALMicroTime (*ALOscInit)(void** oscState, f32* initVal, u8 oscType, u8 oscRate, u8 oscDepth, u8 oscDelay); +typedef ALMicroTime (*ALOscUpdate)(void* oscState, f32* updateVal); +typedef void (*ALOscStop)(void* oscState); + +typedef struct { + ALPlayer node; // note: must be first in structure + ALSynth* drvr; // reference to the client driver + ALSeq* target; // current sequence + ALMicroTime curTime; + ALBank* bank; // current ALBank + s32 uspt; // microseconds per tick + s32 nextDelta; // microseconds to next callback + s32 state; + u16 chanMask; // active channels + s16 vol; // overall sequence volume + u8 maxChannels; // number of MIDI channels + u8 debugFlags; // control which error get reported + ALEvent nextEvent; + ALEventQueue evtq; + ALMicroTime frameTime; + ALChanState* chanState; // 16 channels for MIDI + ALVoiceState* vAllocHead; // list head for allocated voices + ALVoiceState* vAllocTail; // list tail for allocated voices + ALVoiceState* vFreeList; // list of free voice state structs + ALOscInit initOsc; + ALOscUpdate updateOsc; + ALOscStop stopOsc; + ALSeqMarker* loopStart; + ALSeqMarker* loopEnd; + s32 loopCount; // -1 = loop forever, 0 = no loop +} ALSeqPlayer; + +typedef struct { + ALPlayer node; // note: must be first in structure + ALSynth* drvr; // reference to the client driver + ALCSeq* target; // current sequence + ALMicroTime curTime; + ALBank* bank; // current ALBank + s32 uspt; // microseconds per tick + s32 nextDelta; // microseconds to next callback + s32 state; + u16 chanMask; // active channels + s16 vol; // overall sequence volume + u8 maxChannels; // number of MIDI channels + u8 debugFlags; // control which error get reported + ALEvent nextEvent; + ALEventQueue evtq; + ALMicroTime frameTime; + ALChanState* chanState; // 16 channels for MIDI + ALVoiceState* vAllocHead; // list head for allocated voices + ALVoiceState* vAllocTail; // list tail for allocated voices + ALVoiceState* vFreeList; // list of free voice state structs + ALOscInit initOsc; + ALOscUpdate updateOsc; + ALOscStop stopOsc; +} ALCSPlayer; + +// Sequence data representation routines + +void alSeqNew(ALSeq* seq, u8* ptr, s32 len); +void alSeqNextEvent(ALSeq* seq, ALEvent* event); +s32 alSeqGetTicks(ALSeq* seq); +f32 alSeqTicksToSec(ALSeq* seq, s32 ticks, u32 tempo); +u32 alSeqSecToTicks(ALSeq* seq, f32 sec, u32 tempo); +void alSeqNewMarker(ALSeq* seq, ALSeqMarker* m, u32 ticks); +void alSeqSetLoc(ALSeq* seq, ALSeqMarker* marker); +void alSeqGetLoc(ALSeq* seq, ALSeqMarker* marker); + +// Compact Sequence data representation routines + +void alCSeqNew(ALCSeq* seq, u8* ptr); +void alCSeqNextEvent(ALCSeq* seq,ALEvent* evt); +s32 alCSeqGetTicks(ALCSeq* seq); +f32 alCSeqTicksToSec(ALCSeq* seq, s32 ticks, u32 tempo); +u32 alCSeqSecToTicks(ALCSeq* seq, f32 sec, u32 tempo); +void alCSeqNewMarker(ALCSeq* seq, ALCSeqMarker* m, u32 ticks); +void alCSeqSetLoc(ALCSeq* seq, ALCSeqMarker* marker); +void alCSeqGetLoc(ALCSeq* seq, ALCSeqMarker* marker); + +// Sequence Player routines + +f32 alCents2Ratio(s32 cents); + +void alSeqpNew(ALSeqPlayer* seqp, ALSeqpConfig* config); +void alSeqpDelete(ALSeqPlayer* seqp); +void alSeqpSetSeq(ALSeqPlayer* seqp, ALSeq* seq); +ALSeq* alSeqpGetSeq(ALSeqPlayer* seqp); +void alSeqpPlay(ALSeqPlayer* seqp); +void alSeqpStop(ALSeqPlayer* seqp); +s32 alSeqpGetState(ALSeqPlayer* seqp); +void alSeqpSetBank(ALSeqPlayer* seqp, ALBank* b); +void alSeqpSetTempo(ALSeqPlayer* seqp, s32 tempo); +s32 alSeqpGetTempo(ALSeqPlayer* seqp); +s16 alSeqpGetVol(ALSeqPlayer* seqp); // Master volume control +void alSeqpSetVol(ALSeqPlayer* seqp, s16 vol); +void alSeqpLoop(ALSeqPlayer* seqp, ALSeqMarker* start, ALSeqMarker* end, s32 count); + +void alSeqpSetChlProgram(ALSeqPlayer* seqp, u8 chan, u8 prog); +s32 alSeqpGetChlProgram(ALSeqPlayer* seqp, u8 chan); +void alSeqpSetChlFXMix(ALSeqPlayer* seqp, u8 chan, u8 fxmix); +u8 alSeqpGetChlFXMix(ALSeqPlayer* seqp, u8 chan); +void alSeqpSetChlVol(ALSeqPlayer* seqp, u8 chan, u8 vol); +u8 alSeqpGetChlVol(ALSeqPlayer* seqp, u8 chan); +void alSeqpSetChlPan(ALSeqPlayer* seqp, u8 chan, ALPan pan); +ALPan alSeqpGetChlPan(ALSeqPlayer* seqp, u8 chan); +void alSeqpSetChlPriority(ALSeqPlayer* seqp, u8 chan, u8 priority); +u8 alSeqpGetChlPriority(ALSeqPlayer* seqp, u8 chan); +void alSeqpSendMidi(ALSeqPlayer* seqp, s32 ticks, u8 status, u8 byte1, u8 byte2); + +// Maintain backwards compatibility with old routine names. + +#define alSeqpSetProgram alSeqpSetChlProgram +#define alSeqpGetProgram alSeqpGetChlProgram +#define alSeqpSetFXMix alSeqpSetChlFXMix +#define alSeqpGetFXMix alSeqpGetChlFXMix +#define alSeqpSetPan alSeqpSetChlPan +#define alSeqpGetPan alSeqpGetChlPan +#define alSeqpSetChannelPriority alSeqpSetChlPriority +#define alSeqpGetChannelPriority alSeqpGetChlPriority + +// Compressed Sequence Player routines + +void alCSPNew(ALCSPlayer* seqp, ALSeqpConfig* config); +void alCSPDelete(ALCSPlayer* seqp); +void alCSPSetSeq(ALCSPlayer* seqp, ALCSeq* seq); +ALCSeq* alCSPGetSeq(ALCSPlayer* seqp); +void alCSPPlay(ALCSPlayer* seqp); +void alCSPStop(ALCSPlayer* seqp); +s32 alCSPGetState(ALCSPlayer* seqp); +void alCSPSetBank(ALCSPlayer* seqp, ALBank* b); +void alCSPSetTempo(ALCSPlayer* seqp, s32 tempo); +s32 alCSPGetTempo(ALCSPlayer* seqp); +s16 alCSPGetVol(ALCSPlayer* seqp); +void alCSPSetVol(ALCSPlayer* seqp, s16 vol); + +void alCSPSetChlProgram(ALCSPlayer* seqp, u8 chan, u8 prog); +s32 alCSPGetChlProgram(ALCSPlayer* seqp, u8 chan); +void alCSPSetChlFXMix(ALCSPlayer* seqp, u8 chan, u8 fxmix); +u8 alCSPGetChlFXMix(ALCSPlayer* seqp, u8 chan); +void alCSPSetChlPan(ALCSPlayer* seqp, u8 chan, ALPan pan); +ALPan alCSPGetChlPan(ALCSPlayer* seqp, u8 chan); +void alCSPSetChlVol(ALCSPlayer* seqp, u8 chan, u8 vol); +u8 alCSPGetChlVol(ALCSPlayer* seqp, u8 chan); +void alCSPSetChlPriority(ALCSPlayer* seqp, u8 chan, u8 priority); +u8 alCSPGetChlPriority(ALCSPlayer* seqp, u8 chan); +void alCSPSendMidi(ALCSPlayer* seqp, s32 ticks, u8 status, u8 byte1, u8 byte2); + +// Maintain backwards compatibility with old routine names. + +#define alCSPSetProgram alCSPSetChlProgram +#define alCSPGetProgram alCSPGetChlProgram +#define alCSPSetFXMix alCSPSetChlFXMix +#define alCSPGetFXMix alCSPGetChlFXMix +#define alCSPSetPan alCSPSetChlPan +#define alCSPGetPan alCSPGetChlPan +#define alCSPSetChannelPriority alCSPSetChlPriority +#define alCSPGetChannelPriority alCSPGetChlPriority + + + +/*********************************************************************** + * Sound Player stuff + ***********************************************************************/ + +typedef struct { + s32 maxSounds; + s32 maxEvents; + ALHeap* heap; +} ALSndpConfig; + +typedef struct { + ALPlayer node; // note: must be first in structure + ALEventQueue evtq; + ALEvent nextEvent; + ALSynth* drvr; // reference to the client driver + s32 target; + void* sndState; + s32 maxSounds; + ALMicroTime frameTime; + ALMicroTime nextDelta; // microseconds to next callback + ALMicroTime curTime; +} ALSndPlayer; + +typedef s16 ALSndId; + +void alSndpNew(ALSndPlayer* sndp, ALSndpConfig* c); +void alSndpDelete(ALSndPlayer* sndp); + +ALSndId alSndpAllocate(ALSndPlayer* sndp, ALSound* sound); +void alSndpDeallocate(ALSndPlayer* sndp, ALSndId id); + +void alSndpSetSound(ALSndPlayer* sndp, ALSndId id); +ALSndId alSndpGetSound(ALSndPlayer* sndp); + +void alSndpPlay(ALSndPlayer* sndp); +void alSndpPlayAt(ALSndPlayer* sndp, ALMicroTime delta); +void alSndpStop(ALSndPlayer* sndp); + +void alSndpSetVol(ALSndPlayer* sndp, s16 vol); +void alSndpSetPitch(ALSndPlayer* sndp, f32 pitch); +void alSndpSetPan(ALSndPlayer* sndp, ALPan pan); +void alSndpSetPriority(ALSndPlayer* sndp, ALSndId id, u8 priority); + +void alSndpSetFXMix(ALSndPlayer* sndp, u8 mix); +s32 alSndpGetState(ALSndPlayer* sndp); + +#endif diff --git a/src/libultra/audio/libaudio_abi.h b/src/libultra/audio/libaudio_abi.h new file mode 100644 index 0000000000..725101796c --- /dev/null +++ b/src/libultra/audio/libaudio_abi.h @@ -0,0 +1,383 @@ +#ifndef _ABI_H_ +#define _ABI_H_ + +#define _SHIFTL(v, s, w) \ + ((u32) (((u32)(v) & ((1 << (w)) - 1)) << (s))) + +#define _SHIFTR(v, s, w) \ + ((u32)(((u32)(v) >> (s)) & ((1 << (w)) - 1))) + +/* Audio commands: */ +#define A_SPNOOP 0 +#define A_ADPCM 1 +#define A_CLEARBUFF 2 +#define A_ENVMIXER 3 +#define A_LOADBUFF 4 +#define A_RESAMPLE 5 +#define A_SAVEBUFF 6 +#define A_SEGMENT 7 +#define A_SETBUFF 8 +#define A_SETVOL 9 +#define A_DMEMMOVE 10 +#define A_LOADADPCM 11 +#define A_MIXER 12 +#define A_INTERLEAVE 13 +#define A_POLEF 14 +#define A_SETLOOP 15 + +#define ACMD_SIZE 32 + +/** + * Audio flags + */ + +#define A_INIT 0x01 +#define A_CONTINUE 0x00 +#define A_LOOP 0x02 +#define A_OUT 0x02 +#define A_LEFT 0x02 +#define A_RIGHT 0x00 +#define A_VOL 0x04 +#define A_RATE 0x00 +#define A_AUX 0x08 +#define A_NOAUX 0x00 +#define A_MAIN 0x00 +#define A_MIX 0x10 + +#if defined(_LANGUAGE_C) || defined(_LANGUAGE_C_PLUS_PLUS) + +/** + * Data Structures. + */ + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int gain : 16; + unsigned int addr; +} Aadpcm; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int gain : 16; + unsigned int addr; +} Apolef; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int pad1 : 16; + unsigned int addr; +} Aenvelope; + +typedef struct { + unsigned int cmd : 8; + unsigned int pad1 : 8; + unsigned int dmem : 16; + unsigned int pad2 : 16; + unsigned int count : 16; +} Aclearbuff; + +typedef struct { + unsigned int cmd : 8; + unsigned int pad1 : 8; + unsigned int pad2 : 16; + unsigned int inL : 16; + unsigned int inR : 16; +} Ainterleave; + +typedef struct { + unsigned int cmd : 8; + unsigned int pad1 : 24; + unsigned int addr; +} Aloadbuff; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int pad1 : 16; + unsigned int addr; +} Aenvmixer; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int gain : 16; + unsigned int dmemi : 16; + unsigned int dmemo : 16; +} Amixer; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int dmem2 : 16; + unsigned int addr; +} Apan; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int pitch : 16; + unsigned int addr; +} Aresample; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int pad1 : 16; + unsigned int addr; +} Areverb; + +typedef struct { + unsigned int cmd : 8; + unsigned int pad1 : 24; + unsigned int addr; +} Asavebuff; + +typedef struct { + unsigned int cmd : 8; + unsigned int pad1 : 24; + unsigned int pad2 : 2; + unsigned int number : 4; + unsigned int base : 24; +} Asegment; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int dmemin : 16; + unsigned int dmemout : 16; + unsigned int count : 16; +} Asetbuff; + +typedef struct { + unsigned int cmd : 8; + unsigned int flags : 8; + unsigned int vol : 16; + unsigned int voltgt : 16; + unsigned int volrate : 16; +} Asetvol; + +typedef struct { + unsigned int cmd : 8; + unsigned int pad1 : 8; + unsigned int dmemin : 16; + unsigned int dmemout : 16; + unsigned int count : 16; +} Admemmove; + +typedef struct { + unsigned int cmd : 8; + unsigned int pad1 : 8; + unsigned int count : 16; + unsigned int addr; +} Aloadadpcm; + +typedef struct { + unsigned int cmd : 8; + unsigned int pad1 : 8; + unsigned int pad2 : 16; + unsigned int addr; +} Asetloop; + +/** + * Generic Acmd Packet + */ + +typedef struct { + unsigned int w0; + unsigned int w1; +} Awords; + +typedef union { + Awords words; + Aadpcm adpcm; + Apolef polef; + Aclearbuff clearbuff; + Aenvelope envelope; + Ainterleave interleave; + Aloadbuff loadbuff; + Aenvmixer envmixer; + Aresample resample; + Areverb reverb; + Asavebuff savebuff; + Asegment segment; + Asetbuff setbuff; + Asetvol setvol; + Admemmove dmemmove; + Aloadadpcm loadadpcm; + Amixer mixer; + Asetloop setloop; + long long int force_union_align; /* dummy, force alignment */ +} Acmd; + +/** + * ADPCM State + */ + +#define ADPCMVSIZE 8 +#define ADPCMFSIZE 16 +typedef short ADPCM_STATE[ADPCMFSIZE]; + +/** + * Pole filter state + */ +typedef short POLEF_STATE[4]; + +/** + * Resampler state + */ +typedef short RESAMPLE_STATE[16]; + +/** + * Resampler constants + */ +#define UNITY_PITCH 0x8000 +#define MAX_RATIO 1.99996 /* within .03 cents of +1 octave */ + +/** + * Enveloper/Mixer state + */ +typedef short ENVMIX_STATE[40]; + +/** + * Macros to assemble the audio command list + */ + +#define aADPCMdec(pkt, f, s) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_ADPCM, 24, 8) | _SHIFTL(f, 16, 8); \ + _a->words.w1 = (unsigned int)(s); \ +} + +#define aPoleFilter(pkt, f, g, s) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = (_SHIFTL(A_POLEF, 24, 8) | _SHIFTL(f, 16, 8) | \ + _SHIFTL(g, 0, 16)); \ + _a->words.w1 = (unsigned int)(s); \ +} + +#define aClearBuffer(pkt, d, c) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_CLEARBUFF, 24, 8) | _SHIFTL(d, 0, 24); \ + _a->words.w1 = (unsigned int)(c); \ +} + +#define aEnvMixer(pkt, f, s) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_ENVMIXER, 24, 8) | _SHIFTL(f, 16, 8); \ + _a->words.w1 = (unsigned int)(s); \ +} + +#define aInterleave(pkt, l, r) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_INTERLEAVE, 24, 8); \ + _a->words.w1 = _SHIFTL(l, 16, 16) | _SHIFTL(r, 0, 16); \ +} + +#define aLoadBuffer(pkt, s) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_LOADBUFF, 24, 8); \ + _a->words.w1 = (unsigned int)(s); \ +} + +#define aMix(pkt, f, g, i, o) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = (_SHIFTL(A_MIXER, 24, 8) | _SHIFTL(f, 16, 8) | \ + _SHIFTL(g, 0, 16)); \ + _a->words.w1 = _SHIFTL(i, 16, 16) | _SHIFTL(o, 0, 16); \ +} + +#define aPan(pkt, f, d, s) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = (_SHIFTL(A_PAN, 24, 8) | _SHIFTL(f, 16, 8) | \ + _SHIFTL(d, 0, 16)); \ + _a->words.w1 = (unsigned int)(s); \ +} + +#define aResample(pkt, f, p, s) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = (_SHIFTL(A_RESAMPLE, 24, 8) | _SHIFTL(f, 16, 8) | \ + _SHIFTL(p, 0, 16)); \ + _a->words.w1 = (unsigned int)(s); \ +} + +#define aSaveBuffer(pkt, s) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_SAVEBUFF, 24, 8); \ + _a->words.w1 = (unsigned int)(s); \ +} + +#define aSegment(pkt, s, b) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_SEGMENT, 24, 8); \ + _a->words.w1 = _SHIFTL(s, 24, 8) | _SHIFTL(b, 0, 24); \ +} + +#define aSetBuffer(pkt, f, i, o, c) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = (_SHIFTL(A_SETBUFF, 24, 8) | _SHIFTL(f, 16, 8) | \ + _SHIFTL(i, 0, 16)); \ + _a->words.w1 = _SHIFTL(o, 16, 16) | _SHIFTL(c, 0, 16); \ +} + +#define aSetVolume(pkt, f, v, t, r) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = (_SHIFTL(A_SETVOL, 24, 8) | _SHIFTL(f, 16, 16) | \ + _SHIFTL(v, 0, 16)); \ + _a->words.w1 = _SHIFTL(t, 16, 16) | _SHIFTL(r, 0, 16); \ +} + +#define aSetLoop(pkt, a) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + _a->words.w0 = _SHIFTL(A_SETLOOP, 24, 8); \ + _a->words.w1 = (unsigned int)(a); \ +} + +#define aDMEMMove(pkt, i, o, c) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_DMEMMOVE, 24, 8) | _SHIFTL(i, 0, 24); \ + _a->words.w1 = _SHIFTL(o, 16, 16) | _SHIFTL(c, 0, 16); \ +} + +#define aLoadADPCM(pkt, c, d) \ +{ \ + Acmd* _a = (Acmd*)pkt; \ + \ + _a->words.w0 = _SHIFTL(A_LOADADPCM, 24, 8) | _SHIFTL(c, 0, 24); \ + _a->words.w1 = (unsigned int)(d); \ +} + +#endif + +#endif diff --git a/src/libultra/audio/load.c b/src/libultra/audio/load.c index 8b13789179..86486ce3a7 100644 --- a/src/libultra/audio/load.c +++ b/src/libultra/audio/load.c @@ -1 +1,375 @@ +#include "libaudio.h" +#include "synthInternals.h" +#include "ultra64/R4300.h" +#ifndef MIN +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#endif + +#define ADPCMFBYTES 9 +#define LFSAMPLES 4 + +static Acmd* _decodeChunk(Acmd* ptr, ALLoadFilter* f, s32 tsam, s32 nbytes, s16 outp, s16 inp, u32 flags); + +Acmd* alAdpcmPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p) { + Acmd* ptr = p; + s16 inp; + s32 tsam; + s32 nframes; + s32 nbytes; + s32 overFlow; + s32 startZero; + s32 nOver; + s32 nSam; + s32 op; + s32 nLeft; + s32 bEnd; + s32 decoded = false; + s32 looped = false; + + ALLoadFilter* f = (ALLoadFilter*)filter; + + if (outCount == 0) { + return ptr; + } + + inp = AL_DECODER_IN; + aLoadADPCM(ptr++, f->bookSize, K0_TO_PHYS(f->table->waveInfo.adpcmWave.book->book)); + + looped = ((u32)(outCount + f->sample) > f->loop.end) && (f->loop.count != 0); + if (looped) { + nSam = f->loop.end - f->sample; + } else { + nSam = outCount; + } + + if (f->lastsam != 0) { + nLeft = ADPCMFSIZE - f->lastsam; + } else { + nLeft = 0; + } + tsam = nSam - nLeft; + if (tsam < 0) { + tsam = 0; + } + + nframes = (tsam + ADPCMFSIZE - 1) >> LFSAMPLES; + nbytes = nframes * ADPCMFBYTES; + + if (looped) { + ptr = _decodeChunk(ptr, f, tsam, nbytes, *outp, inp, f->first); + + // Fix up output pointer, which will be used as the input pointer by the following module. + if (f->lastsam != 0) { + *outp += f->lastsam << 1; + } else { + *outp += ADPCMFSIZE << 1; + } + + // Now fix up state info to reflect the loop start point + f->lastsam = f->loop.start & 0xF; + f->memin = (uintptr_t)f->table->base + ADPCMFBYTES * ((s32)(f->loop.start >> LFSAMPLES) + 1); + f->sample = f->loop.start; + + bEnd = *outp; + while (outCount > nSam) { + outCount -= nSam; + + // Put next one after the end of the last lot - on the frame boundary (32 byte) after the end. + op = (bEnd + ((nframes + 1) << (LFSAMPLES + 1))) & ~0x1F; + + // The actual end of data + bEnd += nSam << 1; + + // -1 is loop forever - the loop count is not exact now for small loops! + if (f->loop.count != -1u && f->loop.count != 0) { + f->loop.count--; + } + + // What's left to compute. + nSam = MIN((u32)outCount, f->loop.end - f->loop.start); + tsam = nSam - ADPCMFSIZE + f->lastsam; + if (tsam < 0) { + tsam = 0; + } + nframes = (tsam + ADPCMFSIZE - 1) >> LFSAMPLES; + nbytes = nframes * ADPCMFBYTES; + ptr = _decodeChunk(ptr, f, tsam, nbytes, op, inp, f->first | A_LOOP); + // Merge the two sections in DMEM. + aDMEMMove(ptr++, op + (f->lastsam << 1), bEnd, nSam << 1); + } + + f->lastsam = (outCount + f->lastsam) & 0xF; + f->sample += outCount; + f->memin += ADPCMFBYTES * nframes; + return ptr; + } + + // The unlooped case, which is executed most of the time + + nSam = nframes << LFSAMPLES; + + // overFlow is the number of bytes past the end of the bitstream I try to generate + overFlow = f->memin + nbytes - ((uintptr_t)f->table->base + f->table->len); + if (overFlow < 0) { + overFlow = 0; + } + nOver = (overFlow / ADPCMFBYTES) << LFSAMPLES; + if (nOver > nSam + nLeft) { + nOver = nSam + nLeft; + } + + nbytes -= overFlow; + + if (nOver - (nOver & 0xF) < outCount) { + decoded = true; + ptr = _decodeChunk(ptr, f, nSam - nOver, nbytes, *outp, inp, f->first); + + if (f->lastsam != 0) { + *outp += f->lastsam << 1; + } else { + *outp += ADPCMFSIZE << 1; + } + + f->lastsam = (outCount + f->lastsam) & 0xF; + f->sample += outCount; + f->memin += ADPCMFBYTES * nframes; + } else { + f->lastsam = 0; + f->memin += ADPCMFBYTES * nframes; + } + + // Put zeros in if necessary + if (nOver != 0) { + f->lastsam = 0; + if (decoded) { + startZero = (nLeft + nSam - nOver) << 1; + } else { + startZero = 0; + } + aClearBuffer(ptr++, startZero + *outp, nOver << 1); + } + return ptr; +} + +Acmd* alRaw16Pull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p) { + Acmd* ptr = p; + s32 nbytes; + s32 dramLoc; + s32 dramAlign; + s32 dmemAlign; + s32 overFlow; + s32 startZero; + s32 nSam; + s32 op; + ALLoadFilter* f = (ALLoadFilter*)filter; + ALFilter* a = (ALFilter*)filter; + + if (outCount == 0) { + return ptr; + } + + if ((u32)(outCount + f->sample) > f->loop.end && f->loop.count != 0) { + nSam = f->loop.end - f->sample; + nbytes = nSam << 1; + + if (nSam > 0) { + dramLoc = (f->dma)(f->memin, nbytes, f->dmaState); + + // Make sure enough is loaded into DMEM to take care of 8 byte alignment + dramAlign = dramLoc & 7; + nbytes += dramAlign; + aSetBuffer(ptr++, 0, *outp, 0, nbytes + 8 - (nbytes & 7)); + aLoadBuffer(ptr++, dramLoc - dramAlign); + } else { + dramAlign = 0; + } + + // Fix up output pointer to allow for dram alignment + *outp += dramAlign; + + f->memin = (uintptr_t)f->table->base + (f->loop.start << 1); + f->sample = f->loop.start; + op = *outp; + + while (outCount > nSam) { + op += (nSam << 1); + outCount -= nSam; + + // -1 is loop forever + if (f->loop.count != -1u && f->loop.count != 0) { + f->loop.count--; + } + + // What to compute. + nSam = MIN((u32)outCount, f->loop.end - f->loop.start); + nbytes = nSam << 1; + + // Do the next section, same as last. + dramLoc = (f->dma)(f->memin, nbytes, f->dmaState); + + // Make sure enough is loaded into DMEM to take care of 8 byte alignment + dramAlign = dramLoc & 7; + nbytes += dramAlign; + if (op & 7) { + dmemAlign = 8 - (op & 7); + } else { + dmemAlign = 0; + } + + aSetBuffer(ptr++, 0, op + dmemAlign, 0, nbytes + 8 - (nbytes & 7)); + aLoadBuffer(ptr++, dramLoc - dramAlign); + + // Merge the two sections in DMEM. + if (dramAlign || dmemAlign) + aDMEMMove(ptr++, op + dramAlign + dmemAlign, op, nSam << 1); + } + + f->sample += outCount; + f->memin += outCount << 1; + + return ptr; + } + + // The unlooped case, which is executed most of the time + // + // overFlow is the number of bytes past the end + // of the bitstream I try to generate + + nbytes = outCount << 1; + overFlow = f->memin + nbytes - ((uintptr_t)f->table->base + f->table->len); + if (overFlow < 0) { + overFlow = 0; + } + if (overFlow > nbytes) { + overFlow = nbytes; + } + + if (overFlow < nbytes) { + if (outCount > 0) { + nbytes -= overFlow; + dramLoc = f->dma(f->memin, nbytes, f->dmaState); + + // Make sure enough is loaded into DMEM to take care of 8 byte alignment + dramAlign = dramLoc & 7; + nbytes += dramAlign; + aSetBuffer(ptr++, 0, *outp, 0x000, nbytes + 8 - (nbytes & 7)); + aLoadBuffer(ptr++, dramLoc - dramAlign); + } else { + dramAlign = 0; + } + *outp += dramAlign; + + f->sample += outCount; + f->memin += outCount << 1; + } else { + f->memin += outCount << 1; + } + + // Put zeros in if necessary + if (overFlow != 0) { + startZero = (outCount << 1) - overFlow; + if (startZero < 0) { + startZero = 0; + } + aClearBuffer(ptr++, startZero + *outp, overFlow); + } + return ptr; +} + +s32 alLoadParam(void* filter, s32 paramID, void* param) { + ALLoadFilter* a = (ALLoadFilter*)filter; + ALFilter* f = (ALFilter*)filter; + + switch (paramID) { + case AL_FILTER_SET_WAVETABLE: + a->table = (ALWaveTable*)param; + a->memin = (uintptr_t)a->table->base; + a->sample = 0; + + switch (a->table->type) { + case AL_ADPCM_WAVE: + // Set up the correct handler + f->handler = alAdpcmPull; + + // Make sure the table length is an integer number of frames + a->table->len = ADPCMFBYTES * (s32)(a->table->len / ADPCMFBYTES); + + a->bookSize = 2 * a->table->waveInfo.adpcmWave.book->order * + a->table->waveInfo.adpcmWave.book->npredictors * ADPCMVSIZE; + if (a->table->waveInfo.adpcmWave.loop != NULL) { + a->loop.start = a->table->waveInfo.adpcmWave.loop->start; + a->loop.end = a->table->waveInfo.adpcmWave.loop->end; + a->loop.count = a->table->waveInfo.adpcmWave.loop->count; + alCopy(a->table->waveInfo.adpcmWave.loop->state, a->lstate, sizeof(ADPCM_STATE)); + } else { + a->loop.start = a->loop.end = a->loop.count = 0; + } + break; + + case AL_RAW16_WAVE: + f->handler = alRaw16Pull; + if (a->table->waveInfo.rawWave.loop != NULL) { + a->loop.start = a->table->waveInfo.rawWave.loop->start; + a->loop.end = a->table->waveInfo.rawWave.loop->end; + a->loop.count = a->table->waveInfo.rawWave.loop->count; + } else { + a->loop.start = a->loop.end = a->loop.count = 0; + } + break; + + default: + break; + } + break; + + case AL_FILTER_RESET: + a->lastsam = 0; + a->first = true; + a->sample = 0; + + // sct 2/14/96 - Check table since it is initialized to null and get loop info according to table type. + if (a->table != NULL) { + a->memin = (uintptr_t)a->table->base; + if (a->table->type == AL_ADPCM_WAVE) { + if (a->table->waveInfo.adpcmWave.loop != NULL) { + a->loop.count = a->table->waveInfo.adpcmWave.loop->count; + } + } else if (a->table->type == AL_RAW16_WAVE) { + if (a->table->waveInfo.rawWave.loop != NULL) { + a->loop.count = a->table->waveInfo.rawWave.loop->count; + } + } + } + break; + + default: + break; + } +} + +static Acmd* _decodeChunk(Acmd* ptr, ALLoadFilter* f, s32 tsam, s32 nbytes, s16 outp, s16 inp, u32 flags) { + s32 dramAlign; + s32 dramLoc; + + if (nbytes > 0) { + dramLoc = f->dma(f->memin, nbytes, f->dmaState); + // Make sure enough is loaded into DMEM to take care of 8 byte alignment + dramAlign = dramLoc & 7; + nbytes += dramAlign; + aSetBuffer(ptr++, 0, inp, 0, nbytes + 8 - (nbytes & 7)); + aLoadBuffer(ptr++, dramLoc - dramAlign); + } else { + dramAlign = 0; + } + + if (flags & A_LOOP) { + aSetLoop(ptr++, K0_TO_PHYS(f->lstate)); + } + + aSetBuffer(ptr++, 0, inp + dramAlign, outp, tsam << 1); + aADPCMdec(ptr++, flags, K0_TO_PHYS(f->state)); + f->first = false; + + return ptr; +} diff --git a/src/libultra/audio/mainbus.c b/src/libultra/audio/mainbus.c index 8b13789179..57a86d0d54 100644 --- a/src/libultra/audio/mainbus.c +++ b/src/libultra/audio/mainbus.c @@ -1 +1,38 @@ +#include "libaudio.h" +#include "synthInternals.h" +Acmd* alMainBusPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p) { + Acmd* ptr = p; + ALMainBus* m = (ALMainBus*)filter; + ALFilter** sources = m->sources; + s32 i; + + // clear the output buffers here + aClearBuffer(ptr++, AL_MAIN_L_OUT, outCount << 1); + aClearBuffer(ptr++, AL_MAIN_R_OUT, outCount << 1); + + for (i = 0; i < m->sourceCount; i++) { + ptr = sources[i]->handler(sources[i], outp, outCount, sampleOffset, ptr); + aSetBuffer(ptr++, 0, 0x000, 0x000, outCount << 1); + aMix(ptr++, 0, 0x7FFF, AL_AUX_L_OUT, AL_MAIN_L_OUT); + aMix(ptr++, 0, 0x7FFF, AL_AUX_R_OUT, AL_MAIN_R_OUT); + } + + return ptr; +} + +s32 alMainBusParam(void* filter, s32 paramID, void* param) { + ALMainBus* m = (ALMainBus*)filter; + ALFilter** sources = m->sources; + + switch (paramID) { + case AL_FILTER_ADD_SOURCE: + sources[m->sourceCount++] = (ALFilter*)param; + break; + + default: + break; + } + + return 0; +} diff --git a/src/libultra/audio/resample.c b/src/libultra/audio/resample.c index 8b13789179..8301d22a1a 100644 --- a/src/libultra/audio/resample.c +++ b/src/libultra/audio/resample.c @@ -1 +1,98 @@ +#include "libaudio.h" +#include "synthInternals.h" +#include "ultra64/convert.h" +Acmd* alResamplePull(void* filter, s16* outp, s32 outCnt, s32 sampleOffset, Acmd* p) { + ALResampler* f = (ALResampler*)filter; + Acmd* ptr = p; + s16 inp; + s32 inCount; + ALFilter* source = f->filter.source; + s32 incr; + f32 finCount; + + inp = AL_DECODER_OUT; + + if (outCnt == 0) { + return ptr; + } + + // check if resampler is required + if (f->upitch != 0) { + ptr = (*source->handler)(source, &inp, outCnt, sampleOffset, p); + aDMEMMove(ptr++, inp, *outp, outCnt << 1); + } else { + // clip to maximum allowable pitch + // FIXME: should we check for some minimum as well? + if (f->ratio > MAX_RATIO) { + f->ratio = MAX_RATIO; + } + + // quantize the pitch + f->ratio = (s32)(f->ratio * UNITY_PITCH); + f->ratio = f->ratio / UNITY_PITCH; + + // determine how many samples to generate + finCount = f->delta + f->ratio * (f32)outCnt; + inCount = (s32)finCount; + f->delta = finCount - (f32)inCount; + + // ask all filters upstream from us to build their command lists. + ptr = (*source->handler)(source, &inp, inCount, sampleOffset, p); + + // construct our portion of the command list + incr = (s32)(f->ratio * UNITY_PITCH); + aSetBuffer(ptr++, 0, inp, *outp, outCnt << 1); + aResample(ptr++, f->first, incr, osVirtualToPhysical(f->state)); + f->first = false; + } + return ptr; +} + +s32 alResampleParam(void* filter, s32 paramID, void* param) { + ALFilter* f = (ALFilter*)filter; + ALResampler* r = (ALResampler*)filter; + union { + f32 f; + s32 i; + } data; + + switch (paramID) { + case AL_FILTER_SET_SOURCE: + f->source = (ALFilter*)param; + break; + + case AL_FILTER_RESET: + r->delta = 0.0f; + r->first = true; + r->motion = AL_STOPPED; + r->upitch = 0; + if (f->source != NULL) { + (*f->source->setParam)(f->source, AL_FILTER_RESET, 0); + } + break; + + case AL_FILTER_START: + r->motion = AL_PLAYING; + if (f->source != NULL) { + (*f->source->setParam)(f->source, AL_FILTER_START, 0); + } + break; + + case AL_FILTER_SET_PITCH: + data.i = (s32)param; + r->ratio = data.f; + break; + + case AL_FILTER_SET_UNITY_PITCH: + r->upitch = 1; + break; + + default: + if (f->source != NULL) { + (*f->source->setParam)(f->source, paramID, param); + } + break; + } + return 0; +} diff --git a/src/libultra/audio/reverb.c b/src/libultra/audio/reverb.c index 8b13789179..453147f125 100644 --- a/src/libultra/audio/reverb.c +++ b/src/libultra/audio/reverb.c @@ -1 +1,345 @@ +#include "libaudio.h" +#include "synthInternals.h" +#include "ultra64/convert.h" +#define RANGE 2.0 + +extern ALGlobals* alGlobals; + +Acmd* _loadOutputBuffer(ALFx* r, ALDelay* d, s32 buff, s32 incount, Acmd* p); +Acmd* _loadBuffer(ALFx* r, s16* curr_ptr, s32 buff, s32 count, Acmd* p); +Acmd* _saveBuffer(ALFx* r, s16* curr_ptr, s32 buff, s32 count, Acmd* p); +Acmd* _filterBuffer(ALLowPass* lp, s32 buff, s32 count, Acmd* p); +f32 _doModFunc(ALDelay* d, s32 count); + +Acmd* alFxPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p) { + Acmd* ptr = p; + ALFx* r = (ALFx*)filter; + ALFilter* source = r->filter.source; + s16 i; + s16 buff1; + s16 buff2; + s16 input; + s16 output; + s16* in_ptr; + s16* out_ptr; + s16 gain; + s16* prev_out_ptr = NULL; + ALDelay* d; + ALDelay* pd; + + // pull channels going into this effect first + ptr = (*source->handler)(source, outp, outCount, sampleOffset, p); + + input = AL_AUX_L_OUT; + output = AL_AUX_R_OUT; + buff1 = AL_TEMP_0; + buff2 = AL_TEMP_1; + + aSetBuffer(ptr++, 0, 0x000, 0x000, outCount << 1); // set the buffer size + aMix(ptr++, 0, 0xDA83, AL_AUX_L_OUT, input); // .707L = L - .293L + aMix(ptr++, 0, 0x5A82, AL_AUX_R_OUT, input); // mix the AuxL and AuxR into the AuxL + // and write the mixed value to the delay line at r->input + ptr = _saveBuffer(r, r->input, input, outCount, ptr); + + // clear the AL_AUX_R_OUT + aClearBuffer(ptr++, output, outCount << 1); + + for (i = 0; i < r->section_count; i++) { + d = &r->delay[i]; // get the ALDelay structure + in_ptr = &r->input[-d->input]; + out_ptr = &r->input[-d->output]; + + if (in_ptr == prev_out_ptr) { + s16 t = buff2; + buff2 = buff1; + buff1 = t; + } else { + // load data at in_ptr into buff1 + ptr = _loadBuffer(r, in_ptr, buff1, outCount, ptr); + } + ptr = _loadOutputBuffer(r, d, buff2, outCount, ptr); + + if (d->ffcoef != 0) { + aMix(ptr++, 0, (u16)d->ffcoef, buff1, buff2); + if (d->rs == NULL && d->lp == NULL) { + ptr = _saveBuffer(r, out_ptr, buff2, outCount, ptr); + } + } + + if (d->fbcoef != 0) { + aMix(ptr++, 0, (u16)d->fbcoef, buff2, buff1); + ptr = _saveBuffer(r, in_ptr, buff1, outCount, ptr); + } + + if (d->lp != NULL) { + ptr = _filterBuffer(d->lp, buff2, outCount, ptr); + } + + if (d->rs == NULL) { + ptr = _saveBuffer(r, out_ptr, buff2, outCount, ptr); + } + + if (d->gain != 0) { + aMix(ptr++, 0, (u16)d->gain, buff2, output); + } + + prev_out_ptr = &r->input[d->output]; + } + + // bump the master delay line input pointer modulo the length + r->input += outCount; + if (r->input > &r->base[r->length]) { + r->input -= r->length; + } + + // output already in AL_AUX_R_OUT, just copy to AL_AUX_L_OUT + aDMEMMove(ptr++, output, AL_AUX_L_OUT, outCount << 1); + return ptr; +} + +s32 alFxParam(void* filter, s32 paramID, void* param) { + if (paramID == AL_FILTER_SET_SOURCE) { + ALFilter* f = (ALFilter*)filter; + f->source = (ALFilter*)param; + } + return 0; +} + +/** + * This routine gets called by alSynSetFXParam. No checking takes place to + * verify the validity of the paramID or the param value. input and output + * values must be 8 byte aligned, so round down any param passed. + */ +s32 alFxParamHdl(void* filter, s32 paramID, void* param) { + ALFx* f = (ALFx*)filter; + s32 p = (paramID - 2) % 8; + s32 s = (paramID - 2) / 8; + s32 val = *(s32*)param; + +#define INPUT_PARAM 0 +#define OUTPUT_PARAM 1 +#define FBCOEF_PARAM 2 +#define FFCOEF_PARAM 3 +#define GAIN_PARAM 4 +#define CHORUSRATE_PARAM 5 +#define CHORUSDEPTH_PARAM 6 +#define LPFILT_PARAM 7 + + switch (p) { + case INPUT_PARAM: + f->delay[s].input = (u32)val & 0xFFFFFFF8; + break; + + case OUTPUT_PARAM: + f->delay[s].output = (u32)val & 0xFFFFFFF8; + break; + + case FFCOEF_PARAM: + f->delay[s].ffcoef = (s16)val; + break; + + case FBCOEF_PARAM: + f->delay[s].fbcoef = (s16)val; + break; + + case GAIN_PARAM: + f->delay[s].gain = (s16)val; + break; + + case CHORUSRATE_PARAM: + f->delay[s].rsinc = (((f32)val / 1000) * RANGE) / alGlobals->drvr.outputRate; + break; + + // the following constant is derived from: + // + // ratio = 2^(cents/1200) + // + // and therefore for hundredths of a cent + // x + // ln(ratio) = --------------- + // (120,000)/ln(2) + // where + // 120,000/ln(2) = 173123.40... +#define CONVERT 173123.404906676 + + case CHORUSDEPTH_PARAM: + f->delay[s].rsgain = ((f32)val / CONVERT) * (f->delay[s].output - f->delay[s].input); + break; + + case LPFILT_PARAM: + if (f->delay[s].lp != NULL) { + f->delay[s].lp->fc = (s16)val; + _init_lpfilter(f->delay[s].lp); + } + break; + } + return 0; +} + +Acmd* _loadOutputBuffer(ALFx* r, ALDelay* d, s32 buff, s32 incount, Acmd* p) { + Acmd* ptr = p; + s32 ratio; + s32 count; + s32 rbuff = AL_TEMP_2; + s16* out_ptr; + f32 fincount; + f32 fratio; + f32 delta; + s32 ramalign = 0; + s32 length; + + // The following section implements the chorus resampling. Modulate where you pull + // the samples from, since you need varying amounts of samples. + if (d->rs != NULL) { + length = d->output - d->input; + // get the number of samples to modulate by + delta = _doModFunc(d, incount); + // find ratio of delta to delay length and quantize to same resolution as resampler + delta /= length; // convert delta from number of samples to a pitch ratio + delta = (s32)(delta * UNITY_PITCH); // quantize to value microcode will use + delta = delta / UNITY_PITCH; + // pitch ratio needs to be centered around 1, not zero + fratio = 1.0 - delta; + + // d->rs->delta is the difference between the fractional and integer value of the samples needed. + // fratio * incount + rs->delta gives the number of samples needed for this frame. + fincount = d->rs->delta + (fratio * (f32)incount); + count = (s32)fincount; // quantize to s32 + d->rs->delta = fincount - (f32)count; // calculate the round off and store + + // d->rsdelta is amount the out_ptr has deviated from its starting position. + // You calc the out_ptr by taking d->output - d->rsdelta, and then using the + // negative of that as an index into the delay buffer. loadBuffer that uses this + // value then bumps it up if it is below the delay buffer. + out_ptr = &r->input[-(d->output - d->rsdelta)]; + // calculate the number of samples needed to align the buffer + ramalign = ((intptr_t)out_ptr & 7) >> 1; + + // load the rbuff with samples, note that there will be ramalign worth of samples at the + // begining which you don't care about. + ptr = _loadBuffer(r, out_ptr - ramalign, rbuff, count + ramalign, ptr); + + // convert fratio to 16 bit fraction for microcode use + ratio = (s32)(fratio * UNITY_PITCH); + // set the buffers, and do the resample + aSetBuffer(ptr++, 0, rbuff + (ramalign << 1), buff, incount << 1); + aResample(ptr++, d->rs->first, ratio, osVirtualToPhysical(d->rs->state)); + + d->rs->first = false; // turn off first time flag + d->rsdelta += count - incount; // add the number of samples to d->rsdelta + } else { + out_ptr = &r->input[-d->output]; + ptr = _loadBuffer(r, out_ptr, buff, incount, ptr); + } + return ptr; +} + +/** + * This routine is for loading data from the delay line buff. If the + * address of curr_ptr < r->base, it will force it to be within r->base + * space, If the load goes past the end of r->base it will wrap around. + * Cause count bytes of data at curr_ptr (within the delay line) to be + * loaded into buff. (Buff is a dmem buffer) + */ +Acmd* _loadBuffer(ALFx* r, s16* curr_ptr, s32 buff, s32 count, Acmd* p) { + Acmd* ptr = p; + s32 after_end; + s32 before_end; + s16* updated_ptr; + s16* delay_end; + + delay_end = &r->base[r->length]; + + if (curr_ptr < r->base) { + curr_ptr += r->length; + } + updated_ptr = curr_ptr + count; + + if (updated_ptr > delay_end) { + after_end = updated_ptr - delay_end; + before_end = delay_end - curr_ptr; + + aSetBuffer(ptr++, 0, buff, 0x000, before_end << 1); + aLoadBuffer(ptr++, osVirtualToPhysical(curr_ptr)); + aSetBuffer(ptr++, 0, buff + (before_end << 1), 0, after_end << 1); + aLoadBuffer(ptr++, osVirtualToPhysical(r->base)); + } else { + aSetBuffer(ptr++, 0, buff, 0x000, count << 1); + aLoadBuffer(ptr++, osVirtualToPhysical(curr_ptr)); + } + aSetBuffer(ptr++, 0, 0x000, 0x000, count << 1); + return ptr; +} + +/** + * This routine is for writing data to the delay line buff. If the + * address of curr_ptr < r->base, it will force it to be within r->base + * space. If the write goes past the end of r->base, it will wrap around + * Cause count bytes of data at buff to be written to delay line, curr_ptr. + */ +Acmd* _saveBuffer(ALFx* r, s16* curr_ptr, s32 buff, s32 count, Acmd* p) { + Acmd* ptr = p; + s32 after_end; + s32 before_end; + s16* updated_ptr; + s16* delay_end; + + delay_end = &r->base[r->length]; + if (curr_ptr < r->base) { + // probably just security, shouldn't occur + curr_ptr += r->length; + } + updated_ptr = curr_ptr + count; + + if (updated_ptr > delay_end) { // if the data wraps past end of r->base + after_end = updated_ptr - delay_end; + before_end = delay_end - curr_ptr; + + aSetBuffer(ptr++, 0, 0x000, buff, before_end << 1); + aSaveBuffer(ptr++, osVirtualToPhysical(curr_ptr)); + aSetBuffer(ptr++, 0, 0x000, buff + (before_end << 1), after_end << 1); + aSaveBuffer(ptr++, osVirtualToPhysical(r->base)); + aSetBuffer(ptr++, 0, 0x000, 0x000, count << 1); + } else { + aSetBuffer(ptr++, 0, 0x000, buff, count << 1); + aSaveBuffer(ptr++, osVirtualToPhysical(curr_ptr)); + } + return ptr; +} + +Acmd* _filterBuffer(ALLowPass* lp, s32 buff, s32 count, Acmd* p) { + Acmd* ptr = p; + + aSetBuffer(ptr++, 0, buff, buff, count << 1); + aLoadADPCM(ptr++, 32, osVirtualToPhysical(lp->fcvec.fccoef)); + aPoleFilter(ptr++, lp->first, lp->fgain, osVirtualToPhysical(lp->fstate)); + lp->first = false; + + return ptr; +} + +/** + * Generate a triangle wave from -1 to 1, and find the current position + * in the wave. (Rate of the wave is controlled by d->rsinc, which is chorus + * rate) Multiply the current triangle wave value by d->rsgain, (chorus depth) + * which is expressed in number of samples back from output pointer the chorus + * should go at it's full chorus. In otherwords, this function returns a number + * of samples the output pointer should modulate backwards. + */ +f32 _doModFunc(ALDelay* d, s32 count) { + f32 val; + + // generate bipolar sawtooth from -RANGE to +RANGE + d->rsval += d->rsinc * count; + d->rsval = (d->rsval > RANGE) ? (d->rsval - RANGE * 2) : d->rsval; + + // convert to monopolar triangle from 0 to RANGE + val = d->rsval; + val = (val < 0) ? -val : val; + + // convert to bipolar triangle from -1 to 1 + val -= RANGE / 2; + + return d->rsgain * val; +} diff --git a/src/libultra/audio/save.c b/src/libultra/audio/save.c index 8b13789179..a6d25f6dc4 100644 --- a/src/libultra/audio/save.c +++ b/src/libultra/audio/save.c @@ -1 +1,36 @@ +#include "libaudio.h" +#include "synthInternals.h" +Acmd* alSavePull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p) { + Acmd* ptr = p; + ALSave* f = (ALSave*)filter; + ALFilter* source = f->filter.source; + + ptr = (*source->handler)(source, outp, outCount, sampleOffset, ptr); + + aSetBuffer(ptr++, 0, 0x000, 0x000, outCount << 1); + aInterleave(ptr++, AL_MAIN_L_OUT, AL_MAIN_R_OUT); + aSetBuffer(ptr++, 0, 0x000, 0x000, outCount << 2); + aSaveBuffer(ptr++, f->dramout); + return ptr; +} + +s32 alSaveParam(void* filter, s32 paramID, void* param) { + ALSave* a = (ALSave*)filter; + ALFilter* f = (ALFilter*)filter; + s32 pp = (s32)param; + + switch (paramID) { + case AL_FILTER_SET_SOURCE: + f->source = (ALFilter*)param; + break; + + case AL_FILTER_SET_DRAM: + a->dramout = pp; + break; + + default: + break; + } + return 0; +} diff --git a/src/libultra/audio/sl.c b/src/libultra/audio/sl.c index 8b13789179..7f2ebe28b8 100644 --- a/src/libultra/audio/sl.c +++ b/src/libultra/audio/sl.c @@ -1 +1,35 @@ +#include "libaudio.h" +ALGlobals* alGlobals = NULL; + +void alInit(ALGlobals* g, ALSynConfig* c) { + if (alGlobals == NULL) { + alGlobals = g; + alSynNew(&alGlobals->drvr, c); + } +} + +void alClose(ALGlobals* glob) { + if (alGlobals != NULL) { + alSynDelete(&glob->drvr); + alGlobals = NULL; + } +} + +void alLink(ALLink* ln, ALLink* to) { + ln->next = to->next; + ln->prev = to; + if (to->next != NULL) { + to->next->prev = ln; + } + to->next = ln; +} + +void alUnlink(ALLink* ln) { + if (ln->next != NULL) { + ln->next->prev = ln->prev; + } + if (ln->prev != NULL) { + ln->prev->next = ln->next; + } +} diff --git a/src/libultra/audio/synallocfx.c b/src/libultra/audio/synallocfx.c index 8b13789179..8c530fc19d 100644 --- a/src/libultra/audio/synallocfx.c +++ b/src/libultra/audio/synallocfx.c @@ -1 +1,8 @@ +#include "synthInternals.h" +ALFxRef* alSynAllocFX(ALSynth* s, s16 bus, ALSynConfig* c, ALHeap* hp) { + alFxNew(&s->auxBus[bus].fx[0], c, hp); + alFxParam(&s->auxBus[bus].fx[0], AL_FILTER_SET_SOURCE, &s->auxBus[bus]); + alMainBusParam(s->mainBus, AL_FILTER_ADD_SOURCE, &s->auxBus[bus].fx[0]); + return (ALFxRef)&s->auxBus[bus].fx[0]; +} diff --git a/src/libultra/audio/syndelete.c b/src/libultra/audio/syndelete.c index 8b13789179..7af0d50090 100644 --- a/src/libultra/audio/syndelete.c +++ b/src/libultra/audio/syndelete.c @@ -1 +1,5 @@ +#include "synthInternals.h" +void alSynDelete(ALSynth* drvr) { + drvr->head = NULL; +} diff --git a/src/libultra/audio/synthInternals.h b/src/libultra/audio/synthInternals.h new file mode 100644 index 0000000000..5fa8108f57 --- /dev/null +++ b/src/libultra/audio/synthInternals.h @@ -0,0 +1,312 @@ +#ifndef __audioInternals__ +#define __audioInternals__ + +#include "libaudio.h" + +/** + * filter message ids + */ +enum { + AL_FILTER_FREE_VOICE, + AL_FILTER_SET_SOURCE, + AL_FILTER_ADD_SOURCE, + AL_FILTER_ADD_UPDATE, + AL_FILTER_RESET, + AL_FILTER_SET_WAVETABLE, + AL_FILTER_SET_DRAM, + AL_FILTER_SET_PITCH, + AL_FILTER_SET_UNITY_PITCH, + AL_FILTER_START, + AL_FILTER_SET_STATE, + AL_FILTER_SET_VOLUME, + AL_FILTER_SET_PAN, + AL_FILTER_START_VOICE_ALT, + AL_FILTER_START_VOICE, + AL_FILTER_STOP_VOICE, + AL_FILTER_SET_FXAMT +}; + +#define AL_MAX_RSP_SAMPLES 160 + +/** + * buffer locations based on AL_MAX_RSP_SAMPLES + */ +#define AL_DECODER_IN 0x000 +#define AL_RESAMPLER_OUT 0x000 +#define AL_TEMP_0 0x000 +#define AL_DECODER_OUT 0x140 +#define AL_TEMP_1 0x140 +#define AL_TEMP_2 0x280 +#define AL_MAIN_L_OUT 0x440 +#define AL_MAIN_R_OUT 0x580 +#define AL_AUX_L_OUT 0x6C0 +#define AL_AUX_R_OUT 0x800 + +/** + * filter types + */ +enum { + AL_ADPCM, + AL_RESAMPLE, + AL_BUFFER, + AL_SAVE, + AL_ENVMIX, + AL_FX, + AL_AUXBUS, + AL_MAINBUS +}; + +typedef struct ALParam_s { + struct ALParam_s* next; + s32 delta; + s16 type; + union { + f32 f; + s32 i; + } data; + union { + f32 f; + s32 i; + } moredata; + union { + f32 f; + s32 i; + } stillmoredata; + union { + f32 f; + s32 i; + } yetstillmoredata; +} ALParam; + +typedef struct { + struct ALParam_s* next; + s32 delta; + s16 type; + s16 unity; // disable resampler + f32 pitch; + s16 volume; + ALPan pan; + u8 fxMix; + s32 samples; + struct ALWaveTable_s* wave; +} ALStartParamAlt; + +typedef struct { + struct ALParam_s* next; + s32 delta; + s16 type; + s16 unity; // disable resampler + struct ALWaveTable_s* wave; +} ALStartParam; + +typedef struct { + struct ALParam_s* next; + s32 delta; + s16 type; + struct PVoice_s* pvoice; +} ALFreeParam; + +typedef Acmd* (*ALCmdHandler)(void*, s16*, s32, s32, Acmd*); +typedef s32 (*ALSetParam)(void*, s32, void*); + +typedef struct ALFilter_s { + struct ALFilter_s* source; + ALCmdHandler handler; + ALSetParam setParam; + s16 inp; + s16 outp; + s32 type; +} ALFilter; + +void alFilterNew(ALFilter* f, ALCmdHandler h, ALSetParam s, s32 type); + +// Depends on number of subframes per frame and loop length +#define AL_MAX_ADPCM_STATES 3 + +typedef struct { + ALFilter filter; + ADPCM_STATE* state; + ADPCM_STATE* lstate; + ALRawLoop loop; + struct ALWaveTable_s* table; + s32 bookSize; + ALDMAproc dma; + void* dmaState; + s32 sample; + s32 lastsam; + s32 first; + s32 memin; +} ALLoadFilter; + +void alLoadNew(ALLoadFilter* f, ALDMANew dmaNew, ALHeap* hp); +Acmd* alAdpcmPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p); +Acmd* alRaw16Pull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p); +s32 alLoadParam(void* filter, s32 paramID, void* param); + +typedef struct ALResampler_s { + ALFilter filter; + RESAMPLE_STATE* state; + f32 ratio; + s32 upitch; + f32 delta; + s32 first; + ALParam* ctrlList; + ALParam* ctrlTail; + s32 motion; +} ALResampler; + +typedef struct { + s16 fc; + s16 fgain; + union { + s16 fccoef[16]; + s64 force_aligned; + } fcvec; + POLEF_STATE* fstate; + s32 first; +} ALLowPass; + +typedef struct { + u32 input; + u32 output; + s16 ffcoef; + s16 fbcoef; + s16 gain; + f32 rsinc; + f32 rsval; + s32 rsdelta; + f32 rsgain; + ALLowPass* lp; + ALResampler* rs; +} ALDelay; + +typedef s32 (*ALSetFXParam)(void*, s32, void*); +typedef struct { + struct ALFilter_s filter; + s16* base; + s16* input; + u32 length; + ALDelay* delay; + u8 section_count; + ALSetFXParam paramHdl; +} ALFx; + +void alFxNew(ALFx* r, ALSynConfig* c, ALHeap* hp); +Acmd* alFxPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p); +s32 alFxParam(void* filter, s32 paramID, void* param); +s32 alFxParamHdl(void* filter, s32 paramID, void* param); + +#define AL_MAX_MAIN_BUS_SOURCES 1 +typedef struct ALMainBus_s { + ALFilter filter; + s32 sourceCount; + s32 maxSources; + ALFilter** sources; +} ALMainBus; + +void alMainBusNew(ALMainBus* m, void* sources, s32 maxSources); +Acmd* alMainBusPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p); +s32 alMainBusParam(void* filter, s32 paramID, void* param); + +#define AL_MAX_AUX_BUS_SOURCES 8 +#define AL_MAX_AUX_BUS_FX 1 +typedef struct ALAuxBus_s { + ALFilter filter; + s32 sourceCount; + s32 maxSources; + ALFilter** sources; + ALFx fx[AL_MAX_AUX_BUS_FX]; +} ALAuxBus; + +void alAuxBusNew(ALAuxBus* m, void* sources, s32 maxSources); +Acmd* alAuxBusPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p); +s32 alAuxBusParam(void* filter, s32 paramID, void* param); + +void alResampleNew(ALResampler* r, ALHeap* hp); +Acmd* alResamplePull(void* filter, s16* outp, s32 outCnt, s32 sampleOffset, Acmd* p); +s32 alResampleParam(void* filter, s32 paramID, void* param); + +typedef struct ALSave_s { + ALFilter filter; + s32 dramout; + s32 first; +} ALSave; + +void alSaveNew(ALSave* f); +Acmd* alSavePull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p); +s32 alSaveParam(void* filter, s32 paramID, void* param); + +typedef struct ALEnvMixer_s { + ALFilter filter; + ENVMIX_STATE* state; + s16 pan; + s16 volume; + s16 cvolL; + s16 cvolR; + s16 dryamt; + s16 wetamt; + u16 lratl; + s16 lratm; + s16 ltgt; + u16 rratl; + s16 rratm; + s16 rtgt; + s32 delta; + s32 segEnd; + s32 first; + ALParam* ctrlList; + ALParam* ctrlTail; + ALFilter** sources; + s32 motion; +} ALEnvMixer; + +void alEnvmixerNew(ALEnvMixer* e, ALHeap* hp); +Acmd* alEnvmixerPull(void* filter, s16* outp, s32 outCount, s32 sampleOffset, Acmd* p); +s32 alEnvmixerParam(void* filter, s32 paramID, void* param); + + +/** + * heap stuff + */ + +typedef struct { + s32 magic; // check structure integrety + s32 size; // size of this allocated block + u8* file; // file that this alloc was called from + s32 line; // line that it was called from + s32 count; // heap call number + s32 pad0; + s32 pad1; + s32 pad2; // Make it 32 bytes +} HeapInfo; + +// DCache line size (-1) +#define AL_CACHE_ALIGN 15 + +/** + * synth stuff + */ + +typedef struct PVoice_s { + ALLink node; + struct ALVoice_s* vvoice; + ALFilter* channelKnob; + ALLoadFilter decoder; + ALResampler resampler; + ALEnvMixer envmixer; + s32 offset; +} PVoice; + +// prototypes for private driver functions + +ALParam* __allocParam(void); +void __freeParam(ALParam* param); +void _freePVoice(ALSynth* drvr, PVoice* pvoice); +void _collectPVoices(ALSynth* drvr); + +s32 _timeToSamples(ALSynth* synth, s32 micros); +ALMicroTime _samplesToTime(ALSynth* synth, s32 samples); + +void _init_lpfilter(ALLowPass* lp); + +#endif diff --git a/src/libultra/audio/synthesizer.c b/src/libultra/audio/synthesizer.c index 8b13789179..62d5677ecd 100644 --- a/src/libultra/audio/synthesizer.c +++ b/src/libultra/audio/synthesizer.c @@ -1 +1,219 @@ +#include "synthInternals.h" +#ifndef MIN +#define MIN(a, b) (((a) < (b)) ? (a) : (b)) +#endif + +static s32 __nextSampleTime(ALSynth* drvr, ALPlayer** client); +static s32 _timeToSamplesNoRound(ALSynth* synth, s32 micros); + +void alSynNew(ALSynth* drvr, ALSynConfig* c) { + s32 i; + ALVoice* vv; + PVoice* pv; + ALVoice* vvoices; + PVoice* pvoices; + ALHeap* hp = c->heap; + ALSave* save; + ALFilter* sources; + ALParam* params; + ALParam* paramPtr; + + drvr->head = NULL; + drvr->numPVoices = c->maxPVoices; + drvr->curSamples = 0; + drvr->paramSamples = 0; + drvr->outputRate = c->outputRate; + drvr->maxOutSamples = AL_MAX_RSP_SAMPLES; + drvr->dma = (ALDMANew)c->dmaproc; + + save = alHeapAlloc(hp, 1, sizeof(ALSave)); + alSaveNew(save); + drvr->outputFilter = &save->filter; + + // allocate and initialize the auxilliary effects bus. at present we only support 1 effects bus. + drvr->auxBus = alHeapAlloc(hp, 1, sizeof(ALAuxBus)); + drvr->maxAuxBusses = 1; + sources = alHeapAlloc(hp, c->maxPVoices, sizeof(ALFilter*)); + alAuxBusNew(drvr->auxBus, sources, c->maxPVoices); + + // allocate and initialize the main bus. + drvr->mainBus = alHeapAlloc(hp, 1, sizeof(ALMainBus)); + sources = alHeapAlloc(hp, c->maxPVoices, sizeof(ALFilter*)); + alMainBusNew(drvr->mainBus, sources, c->maxPVoices); + + if (c->fxType != AL_FX_NONE) { + // Allocate an effect and set parameters + alSynAllocFX(drvr, 0, c, hp); + } else { + // Connect the aux bus to the main bus + alMainBusParam(drvr->mainBus, AL_FILTER_ADD_SOURCE, &drvr->auxBus[0]); + } + + // Build the physical voice lists + drvr->pFreeList.next = NULL; + drvr->pFreeList.prev = NULL; + drvr->pLameList.next = NULL; + drvr->pLameList.prev = NULL; + drvr->pAllocList.next = NULL; + drvr->pAllocList.prev = NULL; + + pvoices = alHeapAlloc(hp, c->maxPVoices, sizeof(PVoice)); + for (i = 0; i < c->maxPVoices; i++) { + pv = &pvoices[i]; + alLink(&pv->node, &drvr->pFreeList); + pv->vvoice = NULL; + + alLoadNew(&pv->decoder, drvr->dma, hp); + alLoadParam(&pv->decoder, AL_FILTER_SET_SOURCE, NULL); + + alResampleNew(&pv->resampler, hp); + alResampleParam(&pv->resampler, AL_FILTER_SET_SOURCE, &pv->decoder); + + alEnvmixerNew(&pv->envmixer, hp); + alEnvmixerParam(&pv->envmixer, AL_FILTER_SET_SOURCE, &pv->resampler); + + alAuxBusParam(drvr->auxBus, AL_FILTER_ADD_SOURCE, &pv->envmixer); + + pv->channelKnob = &pv->envmixer.filter; + } + + alSaveParam(save, AL_FILTER_SET_SOURCE, drvr->mainBus); + + // build the parameter update list + params = alHeapAlloc(hp, c->maxUpdates, sizeof(ALParam)); + drvr->paramList = NULL; + for (i = 0; i < c->maxUpdates; i++) { + paramPtr = ¶ms[i]; + paramPtr->next = drvr->paramList; + drvr->paramList = paramPtr; + } + drvr->heap = hp; +} + +/** + * slAudioFrame() is called every video frame, and is based on the video + * frame interrupt. It is assumed to be an accurate time source for the + * clients. + */ +Acmd* alAudioFrame(Acmd* cmdList, s32* cmdLen, s16* outBuf, s32 outLen) { + ALPlayer* client; + ALFilter* output; + ALSynth* drvr = &alGlobals->drvr; + s16 tmp = 0; // Starting buffer in DMEM + Acmd* cmdlEnd = cmdList; + Acmd* cmdPtr; + s32 nOut; + s16* lOutBuf = outBuf; + + if (drvr->head == NULL) { + // nothing to do + *cmdLen = 0; + return cmdList; + } + + // run down list of clients and execute callback if needed this + // subframe. Here we do all the work for the frame at the + // start. Time offsets that occur before the next frame are + // executed "early". + // + // paramSamples = time of next parameter change. + // curSamples = current sample time. + // so paramSamples - curSamples is the time until the next parameter change. + // if the next parameter change occurs within this frame time (outLen), + // then call back the client that contains the parameter change. + // Note, paramSamples must be rounded down to 16 sample boundary for use + // during the client handler. + + for (drvr->paramSamples = __nextSampleTime(drvr, &client); drvr->paramSamples - drvr->curSamples < outLen; + drvr->paramSamples = __nextSampleTime(drvr, &client)) { + drvr->paramSamples &= ~0xF; + client->samplesLeft += _timeToSamplesNoRound(drvr, (*client->handler)(client)); + } + + // for safety's sake, always store paramSamples aligned to 16 sample boundary. + // this way, if an voice handler routine gets called outside the ALVoiceHandler + // routine (alSynAllocVoice) it will get timestamped with an aligned value and + // will be processed immediately next audio frame. + drvr->paramSamples &= ~0xF; + + // Now build the command list in small chunks + while (outLen > 0) { + nOut = MIN(drvr->maxOutSamples, outLen); + + // construct the command list for each physical voice by calling the head of the filter chain. + cmdPtr = cmdlEnd; + aSegment(cmdPtr++, 0, 0); + output = drvr->outputFilter; + (*output->setParam)(output, AL_FILTER_SET_DRAM, lOutBuf); + cmdlEnd = (*output->handler)(output, &tmp, nOut, drvr->curSamples, cmdPtr); + + outLen -= nOut; + lOutBuf += nOut << 1; // For Stereo + drvr->curSamples += nOut; + } + *cmdLen = (s32)(cmdlEnd - cmdList); + + _collectPVoices(drvr); // collect free physical voices + return cmdlEnd; +} + +ALParam* __allocParam(void) { + ALParam* update = NULL; + ALSynth* drvr = &alGlobals->drvr; + + if (drvr->paramList != NULL) { + update = drvr->paramList; + drvr->paramList = drvr->paramList->next; + update->next = NULL; + } + return update; +} + +void __freeParam(ALParam* param) { + ALSynth* drvr = &alGlobals->drvr; + param->next = drvr->paramList; + drvr->paramList = param; +} + +void _collectPVoices(ALSynth* drvr) { + ALLink* dl; + PVoice* pv; + + while ((dl = drvr->pLameList.next) != NULL) { + pv = (PVoice*)dl; + alUnlink(&pv->node); + alLink(&pv->node, &drvr->pFreeList); + } +} + +void _freePVoice(ALSynth* drvr, PVoice* pvoice) { + // move the voice from the allocated list to the lame list + alUnlink(&pvoice->node); + alLink(&pvoice->node, &drvr->pLameList); +} + +static s32 _timeToSamplesNoRound(ALSynth* synth, s32 micros) { + // Add 0.5 to adjust the average affect of the truncation error produced by casting a float to an int. + f32 tmp = ((f32)micros) * synth->outputRate / 1000000.0 + 0.5; + return (s32)tmp; +} + +s32 _timeToSamples(ALSynth* synth, s32 micros) { + return _timeToSamplesNoRound(synth, micros) & ~0xF; +} + +static s32 __nextSampleTime(ALSynth* drvr, ALPlayer** client) { + ALMicroTime delta = 0x7FFFFFFF; // max delta for s32 + ALPlayer* cl; + + *client = NULL; + + for (cl = drvr->head; cl != NULL; cl = cl->next) { + if (cl->samplesLeft - drvr->curSamples < delta) { + *client = cl; + delta = cl->samplesLeft - drvr->curSamples; + } + } + return (*client)->samplesLeft; +} diff --git a/src/libultra/bb/sa/common.c b/src/libultra/bb/sa/common.c index 8b13789179..667af02b7f 100644 --- a/src/libultra/bb/sa/common.c +++ b/src/libultra/bb/sa/common.c @@ -1 +1,42 @@ +#include "libc/stddef.h" +int strcmp(const char* s, const char* t) { + while (*s == *t) { + if (*s == '\0') { + return 0; + } + s++; + t++; + } + + return *s - *t; +} + +void* memset(char* s, int c, size_t n) { + size_t i; + + for (i = 0; i < n; i++) { + s[i] = c; + } + + return s; +} + +int strncmp(const char* s, const char* t, int n) { + int i; + + for (i = 0; (*s == *t) && (i < n); i++) { + if (*s == '\0') { + if (*t == '\0') { + return 0; + } + break; + } + if (*t == '\0') { + break; + } + s++; + t++; + } + return (i != n) ? *s - *t : 0; +} diff --git a/src/libultra/bb/sk/skapi.s b/src/libultra/bb/sk/skapi.s index e69de29bb2..3e80adfcd1 100644 --- a/src/libultra/bb/sk/skapi.s +++ b/src/libultra/bb/sk/skapi.s @@ -0,0 +1,48 @@ +#ifdef BBPLAYER +#include "ultra64/asm.h" +#include "ultra64/regdef.h" +#include "ultra64/bcp.h" + +.text + +#define SKC(name, num) \ + LEAF(name) ;\ + .set noreorder ;\ + /* Load syscall number into v0 */ ;\ + li v0, num ;\ + /* Read from MI_SECURE_EXCEPTION_REG to */ ;\ + /* transfer control to the Secure Kernel */ ;\ + li t0, PHYS_TO_K1(MI_SECURE_EXCEPTION_REG) ;\ + lw t1, (t0) ;\ + nop ;\ + jr ra ;\ + nop ;\ + .set reorder ;\ + END(name) + +SKC(skGetId, 0) +SKC(skLaunchSetup, 1) +SKC(skLaunch, 2) +SKC(skRecryptListValid, 3) +SKC(skRecryptBegin, 4) +SKC(skRecryptData, 5) +SKC(skRecryptComputeState, 6) +SKC(skRecryptEnd, 7) +SKC(skSignHash, 8) +SKC(skVerifyHash, 9) +SKC(skGetConsumption, 10) +SKC(skAdvanceTicketWindow, 11) +SKC(skSetLimit, 12) +SKC(skExit, 13) +SKC(skKeepAlive, 14) + +/* These are not valid for a retail Secure Kernel, their usage pattern is unknown. */ + +SKC(skGetRandomKeyData, 15) +SKC(skDumpVirage, 16) +SKC(skTest2, 17) +SKC(skTest3, 18) +SKC(skResetWindow, 19) +SKC(skValidateRls, 20) + +#endif diff --git a/src/libultra/gu/rotate.c b/src/libultra/gu/rotate.c index 7d495e98ef..dc50aba3c5 100644 --- a/src/libultra/gu/rotate.c +++ b/src/libultra/gu/rotate.c @@ -1,7 +1,7 @@ #include "global.h" void guRotateF(f32 m[4][4], f32 a, f32 x, f32 y, f32 z) { - static f32 D_80134D10 = M_PI / 180.0f; + static f32 dtor = M_PI / 180.0f; f32 sine; f32 cosine; f32 ab; @@ -16,14 +16,15 @@ void guRotateF(f32 m[4][4], f32 a, f32 x, f32 y, f32 z) { guNormalize(&x, &y, &z); - a *= D_80134D10; + a *= dtor; sine = sinf(a); cosine = cosf(a); - ab = x * y * (1 - cosine); - bc = y * z * (1 - cosine); - ca = z * x * (1 - cosine); + t = 1.0f - cosine; + ab = x * y * t; + bc = y * z * t; + ca = z * x * t; guMtxIdentF(m); @@ -38,15 +39,15 @@ void guRotateF(f32 m[4][4], f32 a, f32 x, f32 y, f32 z) { #endif t = x * x; - m[0][0] = (1 - t) * cosine + t; + m[0][0] = t + cosine * (1.0f - t); m[2][1] = bc - xs; m[1][2] = bc + xs; t = y * y; - m[1][1] = (1 - t) * cosine + t; + m[1][1] = t + cosine * (1.0f - t); m[2][0] = ca + ys; m[0][2] = ca - ys; t = z * z; - m[2][2] = (1 - t) * cosine + t; + m[2][2] = t + cosine * (1.0f - t); m[1][0] = ab - zs; m[0][1] = ab + zs; } diff --git a/src/libultra/gu/sqrtf.c b/src/libultra/gu/sqrtf.c deleted file mode 100644 index 5e5fa233cc..0000000000 --- a/src/libultra/gu/sqrtf.c +++ /dev/null @@ -1,9 +0,0 @@ -#include "global.h" - -#ifndef __GNUC__ -#define __builtin_sqrtf sqrtf -#endif - -f32 sqrtf(f32 f) { - return __builtin_sqrtf(f); -} diff --git a/src/libultra/gu/sqrtf.s b/src/libultra/gu/sqrtf.s new file mode 100644 index 0000000000..aaf5023593 --- /dev/null +++ b/src/libultra/gu/sqrtf.s @@ -0,0 +1,9 @@ +#include "ultra64/asm.h" +#include "ultra64/regdef.h" + +.text + +LEAF(sqrtf) + sqrt.s fv0, fa0 + j ra +END(sqrtf) diff --git a/src/libultra/gu/us2dex.c b/src/libultra/gu/us2dex.c index d2e5a2b043..b8708c086c 100644 --- a/src/libultra/gu/us2dex.c +++ b/src/libultra/gu/us2dex.c @@ -1,25 +1,25 @@ #include "global.h" void guS2DInitBg(uObjBg* bg) { - u32 size; - s32 tmem = (bg->b.imageFmt == G_IM_FMT_CI) ? 0x100 : 0x200; - u16 shift = (6 - bg->b.imageSiz); + u16 tmem = (bg->b.imageFmt == G_IM_FMT_CI) ? 0x100 : 0x200; + u16 shift = 6 - bg->b.imageSiz; + u32 tsize; if (bg->b.imageLoad == G_BGLT_LOADBLOCK) { bg->b.tmemW = bg->b.imageW >> shift; - bg->b.tmemH = (tmem / bg->b.tmemW) * 4; - bg->b.tmemSizeW = bg->b.tmemW * 2; + bg->b.tmemH = (tmem / bg->b.tmemW) << 2; + bg->b.tmemSizeW = bg->b.tmemW << 1; bg->b.tmemSize = bg->b.tmemH * bg->b.tmemSizeW; bg->b.tmemLoadSH = (bg->b.tmemSize >> 1) - 1; - bg->b.tmemLoadTH = (0x7FF / bg->b.tmemW) + 1; + bg->b.tmemLoadTH = GS_CALC_DXT(bg->b.tmemW); } else { // G_BGLT_LOADTILE bg->b.tmemW = (bg->b.frameW >> shift) + 3; - bg->b.tmemH = (tmem / bg->b.tmemW) * 4; - bg->b.tmemSizeW = (bg->b.imageW >> shift) * 2; + bg->b.tmemH = (tmem / bg->b.tmemW) << 2; + bg->b.tmemSizeW = (bg->b.imageW >> shift) << 1; - size = bg->b.tmemH * bg->b.tmemSizeW; - bg->b.tmemSize = (size >> 16); - bg->b.tmemLoadSH = (size >> 0) & 0xFFFF; + tsize = bg->b.tmemH * bg->b.tmemSizeW; + bg->b.tmemSize = tsize >> 16; + bg->b.tmemLoadSH = tsize & 0xFFFF; bg->b.tmemLoadTH = bg->b.tmemH - 1; } } diff --git a/src/libultra/io/contquery.c b/src/libultra/io/contquery.c index 660e2dcd42..9a8370af31 100644 --- a/src/libultra/io/contquery.c +++ b/src/libultra/io/contquery.c @@ -15,7 +15,11 @@ s32 osContStartQuery(OSMesgQueue* mq) { osRecvMesg(mq, NULL, OS_MESG_BLOCK); } ret = __osSiRawStartDma(OS_READ, &__osContPifRam); +#ifdef BBPLAYER + __osContLastCmd = CONT_CMD_CHANNEL_RESET; +#else __osContLastCmd = CONT_CMD_REQUEST_STATUS; +#endif __osSiRelAccess(); return ret; } diff --git a/src/libultra/io/contramread.c b/src/libultra/io/contramread.c index 058f58e80f..01e0703da6 100644 --- a/src/libultra/io/contramread.c +++ b/src/libultra/io/contramread.c @@ -2,9 +2,12 @@ #define BLOCKSIZE 32 +#ifndef BBPLAYER s32 __osPfsLastChannel = -1; +#endif s32 __osContRamRead(OSMesgQueue* ctrlrqueue, s32 channel, u16 addr, u8* data) { +#ifndef BBPLAYER s32 ret; s32 i; u8* ptr; @@ -60,4 +63,26 @@ s32 __osContRamRead(OSMesgQueue* ctrlrqueue, s32 channel, u16 addr, u8* data) { __osSiRelAccess(); return ret; +#else + s32 ret; + + __osSiGetAccess(); + + ret = 0; + if (__osBbPakAddress[channel] != 0) { + if (__osBbPakSize - 0x20 >= addr * 0x20) { + s32 i; + + for (i = 0; i < 0x20; i++) { + data[i] = *(u8*)(__osBbPakAddress[channel] + addr * 0x20 + i); + } + } + } else { + ret = PFS_ERR_NOPACK; + } + + __osSiRelAccess(); + + return ret; +#endif } diff --git a/src/libultra/io/contramwrite.c b/src/libultra/io/contramwrite.c index 6a776a13b8..4bd8ffaa30 100644 --- a/src/libultra/io/contramwrite.c +++ b/src/libultra/io/contramwrite.c @@ -2,6 +2,7 @@ #include "global.h" s32 __osContRamWrite(OSMesgQueue* mq, s32 channel, u16 address, u8* buffer, s32 force) { +#ifndef BBPLAYER s32 ret = 0; s32 i; u8* ptr; @@ -65,4 +66,28 @@ s32 __osContRamWrite(OSMesgQueue* mq, s32 channel, u16 address, u8* buffer, s32 __osSiRelAccess(); return ret; +#else + s32 ret = 0; + + if ((force != true) && (address < PFS_LABEL_AREA) && (address != 0)) { + return 0; + } + + __osSiGetAccess(); + + if (__osBbPakAddress[channel] != 0) { + if (__osBbPakSize - 0x20 >= address * 0x20) { + s32 i; + + for (i = 0; i < 0x20; i++) { + *(u8*)(__osBbPakAddress[channel] + address * 0x20 + i) = buffer[i]; + } + } + } else { + ret = 1; + } + + __osSiRelAccess(); + return ret; +#endif } diff --git a/src/libultra/io/contreaddata.c b/src/libultra/io/contreaddata.c index ff44bc15b8..f1f250e965 100644 --- a/src/libultra/io/contreaddata.c +++ b/src/libultra/io/contreaddata.c @@ -10,7 +10,11 @@ s32 osContStartReadData(OSMesgQueue* mq) { osRecvMesg(mq, NULL, OS_MESG_BLOCK); } ret = __osSiRawStartDma(OS_READ, &__osContPifRam); +#ifdef BBPLAYER + __osContLastCmd = CONT_CMD_CHANNEL_RESET; +#else __osContLastCmd = CONT_CMD_READ_BUTTON; +#endif __osSiRelAccess(); return ret; } @@ -29,7 +33,18 @@ void osContGetReadData(OSContPad* contData) { contData->stick_x = read.joyX; contData->stick_y = read.joyY; } - }; + } + +#ifdef BBPLAYER + if (__osBbIsBb && __osBbHackFlags != 0) { + OSContPad tmp; + contData -= __osMaxControllers; + + tmp = contData[0]; + contData[0] = contData[__osBbHackFlags]; + contData[__osBbHackFlags] = tmp; + } +#endif } void __osPackReadData(void) { diff --git a/src/libultra/io/controller.c b/src/libultra/io/controller.c index 290f1b5854..c6c8d83ca3 100644 --- a/src/libultra/io/controller.c +++ b/src/libultra/io/controller.c @@ -41,7 +41,11 @@ s32 osContInit(OSMesgQueue* mq, u8* ctlBitfield, OSContStatus* status) { osRecvMesg(mq, &msg, OS_MESG_BLOCK); __osContGetInitData(ctlBitfield, status); +#ifdef BBPLAYER + __osContLastCmd = CONT_CMD_CHANNEL_RESET; +#else __osContLastCmd = CONT_CMD_REQUEST_STATUS; +#endif __osSiCreateAccessQueue(); osCreateMesgQueue(&__osEepromTimerMsgQueue, &__osEepromTimerMsg, 1); @@ -52,7 +56,7 @@ void __osContGetInitData(u8* ctlBitfield, OSContStatus* data) { u8* ptr; __OSContRequesFormat req; s32 i; - u8 bitfieldTemp = 0; + u8 bits = 0; ptr = (u8*)&__osContPifRam; @@ -63,10 +67,30 @@ void __osContGetInitData(u8* ctlBitfield, OSContStatus* data) { continue; } data->type = req.typel << 8 | req.typeh; +#ifdef BBPLAYER + data->status = __osBbPakAddress[i] != 0; +#else data->status = req.status; - bitfieldTemp |= 1 << i; +#endif + bits |= 1 << i; } - *ctlBitfield = bitfieldTemp; + +#ifdef BBPLAYER + if (__osBbIsBb && __osBbHackFlags != 0) { + OSContStatus tmp; + + bits = (bits & ~((1 << __osBbHackFlags) | 1)) | ((bits & 1) << __osBbHackFlags) | + ((bits & (1 << __osBbHackFlags)) >> __osBbHackFlags); + + data -= __osMaxControllers; + + tmp = data[0]; + data[0] = data[__osBbHackFlags]; + data[__osBbHackFlags] = tmp; + } +#endif + + *ctlBitfield = bits; } void __osPackRequestData(u8 poll) { diff --git a/src/libultra/io/devmgr.c b/src/libultra/io/devmgr.c index d0e7d5289a..05dcb99519 100644 --- a/src/libultra/io/devmgr.c +++ b/src/libultra/io/devmgr.c @@ -2,6 +2,8 @@ #include "ultra64/internal.h" #include "ultra64/leodrive.h" +#define TEMP_BUFFER ((void*)0x80600000) + // os.h #define LEO_BLOCK_MODE 1 #define LEO_TRACK_MODE 2 @@ -14,6 +16,9 @@ void __osDevMgrMain(void* arg) { s32 ret; OSDevMgr* dm = (OSDevMgr*)arg; s32 messageSend; +#ifdef BBPLAYER + s32 check = false; +#endif while (true) { osRecvMesg(dm->cmdQueue, (OSMesg*)&ioMesg, OS_MESG_BLOCK); @@ -78,6 +83,13 @@ void __osDevMgrMain(void* arg) { switch (ioMesg->hdr.type) { case OS_MESG_TYPE_DMAREAD: osRecvMesg(dm->acsQueue, &dummy, OS_MESG_BLOCK); +#ifdef BBPLAYER + if (__osBbIsBb == 1 && ((u32)ioMesg->dramAddr & 0x7F) >= 0x60) { + check = true; + ret = dm->dma(OS_READ, ioMesg->devAddr, TEMP_BUFFER, ioMesg->size); + break; + } +#endif ret = dm->dma(OS_READ, ioMesg->devAddr, ioMesg->dramAddr, ioMesg->size); break; case OS_MESG_TYPE_DMAWRITE: @@ -86,6 +98,13 @@ void __osDevMgrMain(void* arg) { break; case OS_MESG_TYPE_EDMAREAD: osRecvMesg(dm->acsQueue, &dummy, OS_MESG_BLOCK); +#ifdef BBPLAYER + if (__osBbIsBb == 1 && ((u32)ioMesg->dramAddr & 0x7F) >= 0x60) { + check = true; + ret = dm->edma(ioMesg->piHandle, OS_READ, ioMesg->devAddr, TEMP_BUFFER, ioMesg->size); + break; + } +#endif ret = dm->edma(ioMesg->piHandle, OS_READ, ioMesg->devAddr, ioMesg->dramAddr, ioMesg->size); break; case OS_MESG_TYPE_EDMAWRITE: @@ -103,6 +122,14 @@ void __osDevMgrMain(void* arg) { if (ret == 0) { osRecvMesg(dm->evtQueue, &em, OS_MESG_BLOCK); +#ifdef BBPLAYER + if (__osBbIsBb == 1 && check) { + osInvalDCache(TEMP_BUFFER, (ioMesg->size + DCACHE_LINEMASK) & ~DCACHE_LINEMASK); + bcopy(TEMP_BUFFER, ioMesg->dramAddr, ioMesg->size); + check = false; + osWritebackDCache(ioMesg->dramAddr, ioMesg->size); + } +#endif osSendMesg(ioMesg->hdr.retQueue, (OSMesg)ioMesg, OS_MESG_NOBLOCK); osSendMesg(dm->acsQueue, NULL, OS_MESG_NOBLOCK); } diff --git a/src/libultra/io/epirawdma.c b/src/libultra/io/epirawdma.c index ff6bb9a653..dbc072fbb2 100644 --- a/src/libultra/io/epirawdma.c +++ b/src/libultra/io/epirawdma.c @@ -1,8 +1,18 @@ #include "global.h" +#include "ultra64/bcp.h" s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, u32 cartAddr, void* dramAddr, size_t size) { - s32 status; +#ifdef BBPLAYER + u64 dummybuf[2]; +#endif + u32 status; OSPiHandle* curHandle; +#ifdef BBPLAYER + u32 buffer; + u32 pgsize; + u16* adr; + u32 i; +#endif status = IO_READ(PI_STATUS_REG); while (status & (PI_STATUS_DMA_BUSY | PI_STATUS_IO_BUSY)) { @@ -53,9 +63,102 @@ s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, u32 cartAddr, void* dr curHandle->pulse = handle->pulse; } +#ifdef BBPLAYER + if (direction == OS_READ) { + // Device page size in bytes + pgsize = 1; + for (i = 1; i <= (u32)handle->pageSize + 2; i++) { + pgsize *= 2; + } + + // If the initial cart address mod pgsize is at the last u16 in the page, + // need to do some manual DMAs? + if ((cartAddr & (pgsize - 1)) == pgsize - sizeof(u16)) { + // Read 32 bits starting 2 bytes before the target DMA address, + // so that the lower 16 bits of the result are the first 2 bytes + // of the requested data. + __osEPiRawReadIo(handle, cartAddr - sizeof(u16), &buffer); + + // Poke the lower 16 bits into the destination address + adr = (u16*)PHYS_TO_K1(dramAddr); + *(adr++) = (u16)buffer; + + // Update DMA parameters + cartAddr += sizeof(u16); + dramAddr = adr; + size -= sizeof(u16); + + // If the remaining size is >= 4 + if (size >= sizeof(u32)) { + // Read another 32 bits at the cart addr + __osEPiRawReadIo(handle, cartAddr, &buffer); + + // Store all 32 bits to RAM + adr = (u16*)dramAddr; + *(adr++) = buffer >> 16; + *(adr++) = (u16)buffer; + + // Update DMA parameters again + cartAddr += sizeof(u32); + dramAddr = adr; + size -= sizeof(u32); + + // If we're not at the end of the DMA + if (size != 0) { + // Read 32 bits again + __osEPiRawReadIo(handle, cartAddr, &buffer); + + // Store just the upper 16 bits + adr = (u16*)PHYS_TO_K1(dramAddr); + *(adr++) = buffer >> 16; + + // Update DMA parameters once more + cartAddr += sizeof(u16); + dramAddr = adr; + size -= sizeof(u16); + } + } + } + + // If the end cart address mod pgsize is just 2 bytes into a page or the remaining data size is just 1x u16 + if (((((cartAddr + size) & (pgsize - 1)) == sizeof(u16)) | (size == sizeof(u16))) != 0) { + if ((cartAddr + size) & 2) { + // Read 32 bits at end - 2, store the upper 16 bits + __osEPiRawReadIo(handle, cartAddr + size - sizeof(u16), &buffer); + adr = (u16*)PHYS_TO_K1(dramAddr) + (size - sizeof(u16)) / sizeof(u16); + *adr = buffer >> 16; + } else { + // Read 32 bits at end - 4, store the lower 16 bits + __osEPiRawReadIo(handle, cartAddr + size - sizeof(u32), &buffer); + adr = (u16*)PHYS_TO_K1(dramAddr) + (size - sizeof(u16)) / sizeof(u16); + *adr = (u16)buffer; + } + size -= sizeof(u16); + } + + if (size == 0) { + // If size ended up 0 following the adjustments, run an 8-byte dummy DMA anyway + size = 8; + dramAddr = (void*)dummybuf; + cartAddr = 0; + } + } +#endif + IO_WRITE(PI_DRAM_ADDR_REG, osVirtualToPhysical(dramAddr)); IO_WRITE(PI_CART_ADDR_REG, K1_TO_PHYS(handle->baseAddress | cartAddr)); +#ifdef BBPLAYER + if (direction != OS_READ && direction != OS_WRITE) { + return -1; + } + + if ((handle->baseAddress | cartAddr) <= 0x400) { + IO_WRITE((direction == OS_READ) ? PI_EX_WR_LEN_REG : PI_EX_RD_LEN_REG, size - 1); + } else { + IO_WRITE((direction == OS_READ) ? PI_WR_LEN_REG : PI_RD_LEN_REG, size - 1); + } +#else switch (direction) { case OS_READ: IO_WRITE(PI_WR_LEN_REG, size - 1); @@ -66,5 +169,6 @@ s32 __osEPiRawStartDma(OSPiHandle* handle, s32 direction, u32 cartAddr, void* dr default: return -1; } +#endif return 0; } diff --git a/src/libultra/io/motor.c b/src/libultra/io/motor.c index 252e93875a..7350ef9210 100644 --- a/src/libultra/io/motor.c +++ b/src/libultra/io/motor.c @@ -2,9 +2,12 @@ #define MOTOR_ID 0x80 +#ifndef BBPLAYER OSPifRam __MotorDataBuf[MAXCONTROLLERS]; +#endif s32 __osMotorAccess(OSPfs* pfs, s32 vibrate) { +#ifndef BBPLAYER s32 i; s32 ret; u8* ptr = (u8*)&__MotorDataBuf[pfs->channel]; @@ -43,8 +46,12 @@ s32 __osMotorAccess(OSPfs* pfs, s32 vibrate) { __osSiRelAccess(); return ret; +#else + return PFS_ERR_INVALID; +#endif } +#ifndef BBPLAYER void _MakeMotorData(s32 channel, OSPifRam* mdata) { u8* ptr = (u8*)mdata; __OSContRamReadFormat ramreadformat; @@ -67,8 +74,10 @@ void _MakeMotorData(s32 channel, OSPifRam* mdata) { ptr += sizeof(ramreadformat); *ptr = CONT_CMD_END; } +#endif s32 osMotorInit(OSMesgQueue* ctrlrqueue, OSPfs* pfs, s32 channel) { +#ifndef BBPLAYER s32 ret; u8 temp[BLOCKSIZE]; @@ -123,4 +132,7 @@ s32 osMotorInit(OSMesgQueue* ctrlrqueue, OSPfs* pfs, s32 channel) { pfs->status = PFS_MOTOR_INITIALIZED; return 0; // "Recognized rumble pak" +#else + return PFS_ERR_DEVICE; +#endif } diff --git a/src/libultra/io/pfsgetstatus.c b/src/libultra/io/pfsgetstatus.c index 0ec3bd7b4d..aa9851e6e7 100644 --- a/src/libultra/io/pfsgetstatus.c +++ b/src/libultra/io/pfsgetstatus.c @@ -2,6 +2,7 @@ #include "global.h" s32 __osPfsGetStatus(OSMesgQueue* queue, s32 channel) { +#ifndef BBPLAYER s32 ret = 0; OSMesg msg; OSContStatus data; @@ -24,6 +25,12 @@ s32 __osPfsGetStatus(OSMesgQueue* queue, s32 channel) { return PFS_ERR_CONTRFAIL; } return ret; +#else + if (__osBbPakAddress[channel] != 0) { + return 0; + } + return PFS_ERR_NOPACK; +#endif } void __osPfsRequestOneChannel(s32 channel, u8 cmd) { diff --git a/src/libultra/io/pfsisplug.c b/src/libultra/io/pfsisplug.c index d5630fccc5..9a144d0cb5 100644 --- a/src/libultra/io/pfsisplug.c +++ b/src/libultra/io/pfsisplug.c @@ -88,8 +88,28 @@ void __osPfsGetInitData(u8* pattern, OSContStatus* contData) { } contData->type = ((req.typel << 8) | req.typeh); +#ifdef BBPLAYER + contData->status = __osBbPakAddress[i] != 0; +#else contData->status = req.status; +#endif bits |= (1 << i); } + +#ifdef BBPLAYER + if (__osBbIsBb && __osBbHackFlags != 0) { + OSContStatus tmp; + + bits = (bits & ~((1 << __osBbHackFlags) | 1)) | ((bits & 1) << __osBbHackFlags) | + ((bits & (1 << __osBbHackFlags)) >> __osBbHackFlags); + + contData -= __osMaxControllers; + + tmp = contData[0]; + contData[0] = contData[__osBbHackFlags]; + contData[__osBbHackFlags] = tmp; + } +#endif + *pattern = bits; } diff --git a/src/libultra/io/pimgr.c b/src/libultra/io/pimgr.c index e8aa98d01b..7a0b68f8dc 100644 --- a/src/libultra/io/pimgr.c +++ b/src/libultra/io/pimgr.c @@ -40,8 +40,8 @@ void osCreatePiManager(OSPri pri, OSMesgQueue* cmdQueue, OSMesg* cmdBuf, s32 cmd prevInt = __osDisableInt(); __osPiDevMgr.active = true; - __osPiDevMgr.cmdQueue = cmdQueue; __osPiDevMgr.thread = &piThread; + __osPiDevMgr.cmdQueue = cmdQueue; __osPiDevMgr.evtQueue = &piEventQueue; __osPiDevMgr.acsQueue = &__osPiAccessQueue; __osPiDevMgr.dma = __osPiRawStartDma; diff --git a/src/libultra/io/sirawdma.c b/src/libultra/io/sirawdma.c index 9bf499cc6a..0aa2f86942 100644 --- a/src/libultra/io/sirawdma.c +++ b/src/libultra/io/sirawdma.c @@ -1,4 +1,5 @@ #include "global.h" +#include "ultra64/bbskapi.h" #define PIF_RAM_SIZE (PIF_RAM_END + 1 - PIF_RAM_START) @@ -11,6 +12,13 @@ s32 __osSiRawStartDma(s32 dir, void* addr) { } IO_WRITE(SI_DRAM_ADDR_REG, osVirtualToPhysical(addr)); if (dir == OS_READ) { +#ifdef BBPLAYER + if (__osBbIsBb) { + register u32 mask = __osDisableInt(); + skKeepAlive(); + __osRestoreInt(mask); + } +#endif IO_WRITE(SI_PIF_ADDR_RD64B_REG, PIF_RAM_START); } else { IO_WRITE(SI_PIF_ADDR_WR64B_REG, PIF_RAM_START); diff --git a/src/libultra/io/sptaskyielded.c b/src/libultra/io/sptaskyielded.c index d04f673c54..8be0556c33 100644 --- a/src/libultra/io/sptaskyielded.c +++ b/src/libultra/io/sptaskyielded.c @@ -2,18 +2,13 @@ u32 osSpTaskYielded(OSTask* task) { u32 status = __osSpGetStatus(); - u32 ret; + u32 result; - if (status & SP_STATUS_YIELDED) { - ret = OS_TASK_YIELDED; - } else { - ret = 0; - } + result = (status & SP_STATUS_YIELDED) ? OS_TASK_YIELDED : 0; if (status & SP_STATUS_YIELD) { - task->t.flags |= ret; + task->t.flags |= result; task->t.flags &= ~OS_TASK_DP_WAIT; } - - return ret; + return result; } diff --git a/src/libultra/io/vimodefpalhaf1.c b/src/libultra/io/vimodefpalhaf1.c index 8b13789179..6444c97a4d 100644 --- a/src/libultra/io/vimodefpalhaf1.c +++ b/src/libultra/io/vimodefpalhaf1.c @@ -1 +1,48 @@ +/** + * @file vimodefpalhaf1.c + * + * FPAL HAF1 Video Mode + * + * H = High Resolution + * A = Anti-Aliased + * F = Deflickered Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalHaf1 = { + OS_VI_FPAL_HAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpalhan1.c b/src/libultra/io/vimodefpalhan1.c index 8b13789179..e6243a01f6 100644 --- a/src/libultra/io/vimodefpalhan1.c +++ b/src/libultra/io/vimodefpalhan1.c @@ -1 +1,48 @@ +/** + * @file vimodefpalhan1.c + * + * FPAL HAN1 Video Mode + * + * H = High Resolution + * A = Anti-Aliased + * N = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalHan1 = { + OS_VI_FPAL_HAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpalhpf1.c b/src/libultra/io/vimodefpalhpf1.c index 8b13789179..af827fa466 100644 --- a/src/libultra/io/vimodefpalhpf1.c +++ b/src/libultra/io/vimodefpalhpf1.c @@ -1 +1,48 @@ +/** + * @file vimodefpalhpf1.c + * + * FPAL HPF1 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * F = Deflickered Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalHpf1 = { + OS_VI_FPAL_HPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpalhpf2.c b/src/libultra/io/vimodefpalhpf2.c index 8b13789179..3ce09602ab 100644 --- a/src/libultra/io/vimodefpalhpf2.c +++ b/src/libultra/io/vimodefpalhpf2.c @@ -1 +1,48 @@ +/** + * @file vimodefpalhpf2.c + * + * FPAL HPF2 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * F = Deflickered Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalHpf2 = { + OS_VI_FPAL_HPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(0.5, 0.5), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpalhpn1.c b/src/libultra/io/vimodefpalhpn1.c index 8b13789179..f789c3baf0 100644 --- a/src/libultra/io/vimodefpalhpn1.c +++ b/src/libultra/io/vimodefpalhpn1.c @@ -1 +1,48 @@ +/** + * @file vimodefpalhpn1.c + * + * FPAL HPN1 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * N = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalHpn1 = { + OS_VI_FPAL_HPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpalhpn2.c b/src/libultra/io/vimodefpalhpn2.c index 8b13789179..483dbd8f74 100644 --- a/src/libultra/io/vimodefpalhpn2.c +++ b/src/libultra/io/vimodefpalhpn2.c @@ -1 +1,48 @@ +/** + * @file vimodefpalhpn2.c + * + * FPAL HPN2 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * N = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalHpn2 = { + OS_VI_FPAL_HPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpallaf1.c b/src/libultra/io/vimodefpallaf1.c index 8b13789179..cd508f053b 100644 --- a/src/libultra/io/vimodefpallaf1.c +++ b/src/libultra/io/vimodefpallaf1.c @@ -1 +1,48 @@ +/** + * @file vimodefpallaf1.c + * + * FPAL LAF1 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * F = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalLaf1 = { + OS_VI_FPAL_LAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpallaf2.c b/src/libultra/io/vimodefpallaf2.c index 8b13789179..5dd7b99b29 100644 --- a/src/libultra/io/vimodefpallaf2.c +++ b/src/libultra/io/vimodefpallaf2.c @@ -1 +1,48 @@ +/** + * @file vimodefpallaf2.c + * + * FPAL LAF2 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * F = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalLaf2 = { + OS_VI_FPAL_LAF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpallan1.c b/src/libultra/io/vimodefpallan1.c index 5fb019cdfb..aad8d8a5ff 100644 --- a/src/libultra/io/vimodefpallan1.c +++ b/src/libultra/io/vimodefpallan1.c @@ -8,7 +8,7 @@ * N = Deinterlaced * 1 = 16-bit Framebuffer */ -#include "global.h" +#include "ultra64.h" #include "ultra64/viint.h" OSViMode osViModeFpalLan1 = { @@ -16,31 +16,33 @@ OSViMode osViModeFpalLan1 = { { // comRegs VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | - VI_CTRL_PIXEL_ADV(3), // ctrl - WIDTH(320), // width - BURST(58, 30, 4, 69), // burst - VSYNC(625), // vSync - HSYNC(3177, 23), // hSync - LEAP(3183, 3181), // leap - HSTART(128, 768), // hStart - SCALE(2, 0), // xScale - VCURRENT(0), // vCurrent + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, }, - { // fldRegs - { - // [0] - ORIGIN(640), // origin - SCALE(1, 0), // yScale - START(47, 617), // vStart - BURST(107, 2, 9, 0), // vBurst - VINTR(2), // vIntr - }, - { - // [1] - ORIGIN(640), // origin - SCALE(1, 0), // yScale - START(47, 617), // vStart - BURST(107, 2, 9, 0), // vBurst - VINTR(2), // vIntr - } }, }; diff --git a/src/libultra/io/vimodefpallan2.c b/src/libultra/io/vimodefpallan2.c index 8b13789179..a1224f5e73 100644 --- a/src/libultra/io/vimodefpallan2.c +++ b/src/libultra/io/vimodefpallan2.c @@ -1 +1,48 @@ +/** + * @file vimodefpallan2.c + * + * FPAL LAN2 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * N = Deinterlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalLan2 = { + OS_VI_FPAL_LAN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpallpf1.c b/src/libultra/io/vimodefpallpf1.c index 8b13789179..ed14626d8c 100644 --- a/src/libultra/io/vimodefpallpf1.c +++ b/src/libultra/io/vimodefpallpf1.c @@ -1 +1,48 @@ +/** + * @file vimodefpallpf1.c + * + * FPAL LPF1 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * F = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalLpf1 = { + OS_VI_FPAL_LPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpallpf2.c b/src/libultra/io/vimodefpallpf2.c index 8b13789179..9603b26192 100644 --- a/src/libultra/io/vimodefpallpf2.c +++ b/src/libultra/io/vimodefpallpf2.c @@ -1 +1,48 @@ +/** + * @file vimodefpallpf2.c + * + * FPAL LPF2 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * F = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalLpf2 = { + OS_VI_FPAL_LPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpallpn1.c b/src/libultra/io/vimodefpallpn1.c index 8b13789179..2aa76cfff4 100644 --- a/src/libultra/io/vimodefpallpn1.c +++ b/src/libultra/io/vimodefpallpn1.c @@ -1 +1,48 @@ +/** + * @file vimodefpallpn1.c + * + * FPAL LPN1 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * N = Deinterlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalLpn1 = { + OS_VI_FPAL_LPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodefpallpn2.c b/src/libultra/io/vimodefpallpn2.c index 8b13789179..7f6938a323 100644 --- a/src/libultra/io/vimodefpallpn2.c +++ b/src/libultra/io/vimodefpallpn2.c @@ -1 +1,48 @@ +/** + * @file vimodefpallpn2.c + * + * FPAL LPN2 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * N = Deinterlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeFpalLpn2 = { + OS_VI_FPAL_LPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempalhaf1.c b/src/libultra/io/vimodempalhaf1.c index 8b13789179..7eb17048e0 100644 --- a/src/libultra/io/vimodempalhaf1.c +++ b/src/libultra/io/vimodempalhaf1.c @@ -1 +1,48 @@ +/** + * @file vimodempalhaf1.c + * + * MPAL HAF1 Video Mode + * + * H = High Resolution + * A = Anti-Aliased + * F = Deflickered Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalHaf1 = { + OS_VI_MPAL_HAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + //[0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + //[1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempalhan1.c b/src/libultra/io/vimodempalhan1.c index 8b13789179..57e594b3d9 100644 --- a/src/libultra/io/vimodempalhan1.c +++ b/src/libultra/io/vimodempalhan1.c @@ -1 +1,48 @@ +/** + * @file vimodempalhan1.c + * + * MPAL HAN1 Video Mode + * + * H = High Resolution + * A = Anti-Aliased + * N = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalHan1 = { + OS_VI_MPAL_HAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempalhpf1.c b/src/libultra/io/vimodempalhpf1.c index 8b13789179..6441ef2800 100644 --- a/src/libultra/io/vimodempalhpf1.c +++ b/src/libultra/io/vimodempalhpf1.c @@ -1 +1,48 @@ +/** + * @file vimodempalhpf1.c + * + * MPAL HPF1 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * F = Deflickered Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalHpf1 = { + OS_VI_MPAL_HPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempalhpf2.c b/src/libultra/io/vimodempalhpf2.c index 8b13789179..e853874fb4 100644 --- a/src/libultra/io/vimodempalhpf2.c +++ b/src/libultra/io/vimodempalhpf2.c @@ -1 +1,48 @@ +/** + * @file vimodempalhpf2.c + * + * MPAL HPF2 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * F = Deflickered Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalHpf2 = { + OS_VI_MPAL_HPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempalhpn1.c b/src/libultra/io/vimodempalhpn1.c index 8b13789179..4a4c22e229 100644 --- a/src/libultra/io/vimodempalhpn1.c +++ b/src/libultra/io/vimodempalhpn1.c @@ -1 +1,48 @@ +/** + * @file vimodempalhpn1.c + * + * MPAL HPN1 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * N = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalHpn1 = { + OS_VI_MPAL_HPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempalhpn2.c b/src/libultra/io/vimodempalhpn2.c index 8b13789179..fe8f7f6f30 100644 --- a/src/libultra/io/vimodempalhpn2.c +++ b/src/libultra/io/vimodempalhpn2.c @@ -1 +1,48 @@ +/** + * @file vimodempalhpn2.c + * + * MPAL HPN2 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * N = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalHpn2 = { + OS_VI_MPAL_HPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempallaf1.c b/src/libultra/io/vimodempallaf1.c index 8b13789179..29f35cd454 100644 --- a/src/libultra/io/vimodempallaf1.c +++ b/src/libultra/io/vimodempallaf1.c @@ -1 +1,48 @@ +/** + * @file vimodempallaf1.c + * + * MPAL LAF1 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * F = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalLaf1 = { + OS_VI_MPAL_LAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempallaf2.c b/src/libultra/io/vimodempallaf2.c index 8b13789179..783440a4ed 100644 --- a/src/libultra/io/vimodempallaf2.c +++ b/src/libultra/io/vimodempallaf2.c @@ -1 +1,48 @@ +/** + * @file vimodempallaf2.c + * + * MPAL LAF2 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * F = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalLaf2 = { + OS_VI_MPAL_LAF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempallan1.c b/src/libultra/io/vimodempallan1.c index 23d53987b0..5140c50e55 100644 --- a/src/libultra/io/vimodempallan1.c +++ b/src/libultra/io/vimodempallan1.c @@ -8,7 +8,7 @@ * N = Deinterlaced * 1 = 16-bit Framebuffer */ -#include "global.h" +#include "ultra64.h" #include "ultra64/viint.h" OSViMode osViModeMpalLan1 = { @@ -16,31 +16,33 @@ OSViMode osViModeMpalLan1 = { { // comRegs VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | - VI_CTRL_PIXEL_ADV(3), // ctrl - WIDTH(320), // width - BURST(57, 30, 5, 70), // burst - VSYNC(525), // vSync - HSYNC(3089, 4), // hSync - LEAP(3097, 3098), // leap - HSTART(108, 748), // hStart - SCALE(2, 0), // xScale - VCURRENT(0), // vCurrent + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, }, - { // fldRegs - { - // [0] - ORIGIN(640), // origin - SCALE(1, 0), // yScale - START(37, 511), // vStart - BURST(4, 2, 14, 0), // vBurst - VINTR(2), // vIntr - }, - { - // [1] - ORIGIN(640), // origin - SCALE(1, 0), // yScale - START(37, 511), // vStart - BURST(4, 2, 14, 0), // vBurst - VINTR(2), // vIntr - } }, }; diff --git a/src/libultra/io/vimodempallan2.c b/src/libultra/io/vimodempallan2.c index 8b13789179..b3717e6c74 100644 --- a/src/libultra/io/vimodempallan2.c +++ b/src/libultra/io/vimodempallan2.c @@ -1 +1,48 @@ +/** + * @file vimodempallan2.c + * + * MPAL LAN2 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * N = Deinterlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalLan2 = { + OS_VI_MPAL_LAN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempallpf1.c b/src/libultra/io/vimodempallpf1.c index 8b13789179..52e927bfab 100644 --- a/src/libultra/io/vimodempallpf1.c +++ b/src/libultra/io/vimodempallpf1.c @@ -1 +1,48 @@ +/** + * @file vimodempallpf1.c + * + * MPAL LPF1 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * F = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalLpf1 = { + OS_VI_MPAL_LPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempallpf2.c b/src/libultra/io/vimodempallpf2.c index 8b13789179..14a918a53d 100644 --- a/src/libultra/io/vimodempallpf2.c +++ b/src/libultra/io/vimodempallpf2.c @@ -1 +1,48 @@ +/** + * @file vimodempallpf2.c + * + * MPAL LPF2 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * F = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalLpf2 = { + OS_VI_MPAL_LPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempallpn1.c b/src/libultra/io/vimodempallpn1.c index 8b13789179..ce35838b9e 100644 --- a/src/libultra/io/vimodempallpn1.c +++ b/src/libultra/io/vimodempallpn1.c @@ -1 +1,48 @@ +/** + * @file vimodempallpn1.c + * + * MPAL LPN1 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * N = Deinterlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalLpn1 = { + OS_VI_MPAL_LPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodempallpn2.c b/src/libultra/io/vimodempallpn2.c index 8b13789179..1f35696e82 100644 --- a/src/libultra/io/vimodempallpn2.c +++ b/src/libultra/io/vimodempallpn2.c @@ -1 +1,48 @@ +/** + * @file vimodempallpn2.c + * + * MPAL LPN2 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * N = Deinterlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeMpalLpn2 = { + OS_VI_MPAL_LPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentschaf1.c b/src/libultra/io/vimodentschaf1.c index 8b13789179..79b3987a0f 100644 --- a/src/libultra/io/vimodentschaf1.c +++ b/src/libultra/io/vimodentschaf1.c @@ -1 +1,48 @@ +/** + * @file vimodentschaf1.c + * + * NTSC HAF1 Video Mode + * + * H = High Resolution + * A = Anti-Aliased + * F = Deflickered Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscHaf1 = { + OS_VI_NTSC_HAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentschan1.c b/src/libultra/io/vimodentschan1.c index 8b13789179..994937aa75 100644 --- a/src/libultra/io/vimodentschan1.c +++ b/src/libultra/io/vimodentschan1.c @@ -1 +1,48 @@ +/** + * @file vimodentschan1.c + * + * NTSC HAN1 Video Mode + * + * H = High Resolution + * A = Anti-Aliased + * N = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscHan1 = { + OS_VI_NTSC_HAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentschpf1.c b/src/libultra/io/vimodentschpf1.c index 8b13789179..a91addf6e2 100644 --- a/src/libultra/io/vimodentschpf1.c +++ b/src/libultra/io/vimodentschpf1.c @@ -1 +1,48 @@ +/** + * @file vimodentschpf1.c + * + * NTSC HPF1 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * F = Deflickered Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscHpf1 = { + OS_VI_NTSC_HPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentschpf2.c b/src/libultra/io/vimodentschpf2.c index 8b13789179..54b15f31be 100644 --- a/src/libultra/io/vimodentschpf2.c +++ b/src/libultra/io/vimodentschpf2.c @@ -1 +1,48 @@ +/** + * @file vimodentschpf2.c + * + * NTSC HPF2 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * F = Deflickered Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscHpf2 = { + OS_VI_NTSC_HPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentschpn1.c b/src/libultra/io/vimodentschpn1.c index 8b13789179..83ffa0fd54 100644 --- a/src/libultra/io/vimodentschpn1.c +++ b/src/libultra/io/vimodentschpn1.c @@ -1 +1,48 @@ +/** + * @file vimodentschpn1.c + * + * NTSC HPN1 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * N = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscHpn1 = { + OS_VI_NTSC_HPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentschpn2.c b/src/libultra/io/vimodentschpn2.c index 8b13789179..5f3fbdf2d9 100644 --- a/src/libultra/io/vimodentschpn2.c +++ b/src/libultra/io/vimodentschpn2.c @@ -1 +1,48 @@ +/** + * @file vimodentschpn2.c + * + * NTSC HPN2 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * N = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscHpn2 = { + OS_VI_NTSC_HPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentsclaf1.c b/src/libultra/io/vimodentsclaf1.c index 8b13789179..236200044d 100644 --- a/src/libultra/io/vimodentsclaf1.c +++ b/src/libultra/io/vimodentsclaf1.c @@ -1 +1,48 @@ +/** + * @file vimodentsclaf1.c + * + * NTSC LAF1 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * F = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscLaf1 = { + OS_VI_NTSC_LAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentsclaf2.c b/src/libultra/io/vimodentsclaf2.c index 8b13789179..5b8d9194f1 100644 --- a/src/libultra/io/vimodentsclaf2.c +++ b/src/libultra/io/vimodentsclaf2.c @@ -1 +1,48 @@ +/** + * @file vimodentsclaf2.c + * + * NTSC LAF2 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * F = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscLaf2 = { + OS_VI_NTSC_LAF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentsclan1.c b/src/libultra/io/vimodentsclan1.c index 19a7160ac8..44f038a02c 100644 --- a/src/libultra/io/vimodentsclan1.c +++ b/src/libultra/io/vimodentsclan1.c @@ -8,7 +8,7 @@ * N = Deinterlaced * 1 = 16-bit Framebuffer */ -#include "global.h" +#include "ultra64.h" #include "ultra64/viint.h" OSViMode osViModeNtscLan1 = { @@ -16,31 +16,33 @@ OSViMode osViModeNtscLan1 = { { // comRegs VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | - VI_CTRL_PIXEL_ADV(3), // ctrl - WIDTH(320), // width - BURST(57, 34, 5, 62), // burst - VSYNC(525), // vSync - HSYNC(3093, 0), // hSync - LEAP(3093, 3093), // leap - HSTART(108, 748), // hStart - SCALE(2, 0), // xScale - VCURRENT(0), // vCurrent + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, }, - { // fldRegs - { - // [0] - ORIGIN(640), // origin - SCALE(1, 0), // yScale - START(37, 511), // vStart - BURST(4, 2, 14, 0), // vBurst - VINTR(2), // vIntr - }, - { - // [1] - ORIGIN(640), // origin - SCALE(1, 0), // yScale - START(37, 511), // vStart - BURST(4, 2, 14, 0), // vBurst - VINTR(2), // vIntr - } }, }; diff --git a/src/libultra/io/vimodentsclan2.c b/src/libultra/io/vimodentsclan2.c index 8b13789179..a34f8ec300 100644 --- a/src/libultra/io/vimodentsclan2.c +++ b/src/libultra/io/vimodentsclan2.c @@ -1 +1,48 @@ +/** + * @file vimodentsclan2.c + * + * NTSC LAN2 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * N = Deinterlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscLan2 = { + OS_VI_NTSC_LAN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentsclpf1.c b/src/libultra/io/vimodentsclpf1.c index 8b13789179..0824a29184 100644 --- a/src/libultra/io/vimodentsclpf1.c +++ b/src/libultra/io/vimodentsclpf1.c @@ -1 +1,48 @@ +/** + * @file vimodentsclpf1.c + * + * NTSC LPF1 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * F = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscLpf1 = { + OS_VI_NTSC_LPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentsclpf2.c b/src/libultra/io/vimodentsclpf2.c index 8b13789179..fccfcbbd33 100644 --- a/src/libultra/io/vimodentsclpf2.c +++ b/src/libultra/io/vimodentsclpf2.c @@ -1 +1,48 @@ +/** + * @file vimodentsclpf2.c + * + * NTSC LPF2 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * F = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscLpf2 = { + OS_VI_NTSC_LPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentsclpn1.c b/src/libultra/io/vimodentsclpn1.c index 8b13789179..aabe7af792 100644 --- a/src/libultra/io/vimodentsclpn1.c +++ b/src/libultra/io/vimodentsclpn1.c @@ -1 +1,48 @@ +/** + * @file vimodentsclpn1.c + * + * NTSC LPN1 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * N = Deinterlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscLpn1 = { + OS_VI_NTSC_LPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodentsclpn2.c b/src/libultra/io/vimodentsclpn2.c index 8b13789179..ce05176c3e 100644 --- a/src/libultra/io/vimodentsclpn2.c +++ b/src/libultra/io/vimodentsclpn2.c @@ -1 +1,48 @@ +/** + * @file vimodentsclpn2.c + * + * NTSC LPN2 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * N = Deinterlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeNtscLpn2 = { + OS_VI_NTSC_LPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepalhaf1.c b/src/libultra/io/vimodepalhaf1.c index 8b13789179..af4d5de616 100644 --- a/src/libultra/io/vimodepalhaf1.c +++ b/src/libultra/io/vimodepalhaf1.c @@ -1 +1,48 @@ +/** + * @file vimodepalhaf1.c + * + * PAL HAF1 Video Mode + * + * H = High Resolution + * A = Anti-Aliased + * F = Deflickered Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalHaf1 = { + OS_VI_PAL_HAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepalhan1.c b/src/libultra/io/vimodepalhan1.c index 8b13789179..7831490814 100644 --- a/src/libultra/io/vimodepalhan1.c +++ b/src/libultra/io/vimodepalhan1.c @@ -1 +1,48 @@ +/** + * @file vimodepalhan1.c + * + * PAL HAN1 Video Mode + * + * H = High Resolution + * A = Anti-Aliased + * N = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalHan1 = { + OS_VI_PAL_HAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepalhpf1.c b/src/libultra/io/vimodepalhpf1.c index 8b13789179..954c3a1199 100644 --- a/src/libultra/io/vimodepalhpf1.c +++ b/src/libultra/io/vimodepalhpf1.c @@ -1 +1,48 @@ +/** + * @file vimodepalhpf1.c + * + * PAL HPF1 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * F = Deflickered Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalHpf1 = { + OS_VI_PAL_HPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepalhpf2.c b/src/libultra/io/vimodepalhpf2.c index 8b13789179..e87290f306 100644 --- a/src/libultra/io/vimodepalhpf2.c +++ b/src/libultra/io/vimodepalhpf2.c @@ -1 +1,48 @@ +/** + * @file vimodepalhpf2.c + * + * PAL HPF2 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * F = Deflickered Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalHpf2 = { + OS_VI_PAL_HPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(0.5, 0.5), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepalhpn1.c b/src/libultra/io/vimodepalhpn1.c index 8b13789179..680e48bea8 100644 --- a/src/libultra/io/vimodepalhpn1.c +++ b/src/libultra/io/vimodepalhpn1.c @@ -1 +1,48 @@ +/** + * @file vimodepalhpn1.c + * + * PAL HPN1 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * N = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalHpn1 = { + OS_VI_PAL_HPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepalhpn2.c b/src/libultra/io/vimodepalhpn2.c index 8b13789179..ca4d33c2c6 100644 --- a/src/libultra/io/vimodepalhpn2.c +++ b/src/libultra/io/vimodepalhpn2.c @@ -1 +1,48 @@ +/** + * @file vimodepalhpn2.c + * + * PAL HPN2 Video Mode + * + * H = High Resolution + * P = Point-Sampled + * N = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalHpn2 = { + OS_VI_PAL_HPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepallaf1.c b/src/libultra/io/vimodepallaf1.c index 8b13789179..de645b2919 100644 --- a/src/libultra/io/vimodepallaf1.c +++ b/src/libultra/io/vimodepallaf1.c @@ -1 +1,48 @@ +/** + * @file vimodepallaf1.c + * + * PAL LAF1 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * F = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalLaf1 = { + OS_VI_PAL_LAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepallaf2.c b/src/libultra/io/vimodepallaf2.c index 8b13789179..a1a4d8c9d3 100644 --- a/src/libultra/io/vimodepallaf2.c +++ b/src/libultra/io/vimodepallaf2.c @@ -1 +1,48 @@ +/** + * @file vimodepallaf2.c + * + * PAL LAF2 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * F = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalLaf2 = { + OS_VI_PAL_LAF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepallan1.c b/src/libultra/io/vimodepallan1.c index 7a8db603f4..f129073406 100644 --- a/src/libultra/io/vimodepallan1.c +++ b/src/libultra/io/vimodepallan1.c @@ -8,7 +8,7 @@ * N = Deinterlaced * 1 = 16-bit Framebuffer */ -#include "global.h" +#include "ultra64.h" #include "ultra64/viint.h" OSViMode osViModePalLan1 = { @@ -16,31 +16,33 @@ OSViMode osViModePalLan1 = { { // comRegs VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | - VI_CTRL_PIXEL_ADV(3), // ctrl - WIDTH(320), // width - BURST(58, 30, 4, 69), // burst - VSYNC(625), // vSync - HSYNC(3177, 23), // hSync - LEAP(3183, 3181), // leap - HSTART(128, 768), // hStart - SCALE(2, 0), // xScale - VCURRENT(0), // vCurrent + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, }, - { // fldRegs - { - // [0] - ORIGIN(640), // origin - SCALE(1, 0), // yScale - START(95, 569), // vStart - BURST(107, 2, 9, 0), // vBurst - VINTR(2), // vIntr - }, - { - // [1] - ORIGIN(640), // origin - SCALE(1, 0), // yScale - START(95, 569), // vStart - BURST(107, 2, 9, 0), // vBurst - VINTR(2), // vIntr - } }, }; diff --git a/src/libultra/io/vimodepallan2.c b/src/libultra/io/vimodepallan2.c index 8b13789179..310ab266c9 100644 --- a/src/libultra/io/vimodepallan2.c +++ b/src/libultra/io/vimodepallan2.c @@ -1 +1,48 @@ +/** + * @file vimodepallan2.c + * + * PAL LAN2 Video Mode + * + * L = Low Resolution + * A = Anti-Aliased + * N = Deinterlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalLan2 = { + OS_VI_PAL_LAN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepallpf1.c b/src/libultra/io/vimodepallpf1.c index 8b13789179..5d10214ac9 100644 --- a/src/libultra/io/vimodepallpf1.c +++ b/src/libultra/io/vimodepallpf1.c @@ -1 +1,48 @@ +/** + * @file vimodepallpf1.c + * + * PAL LPF1 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * F = Interlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalLpf1 = { + OS_VI_PAL_LPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepallpf2.c b/src/libultra/io/vimodepallpf2.c index 8b13789179..076b3199c3 100644 --- a/src/libultra/io/vimodepallpf2.c +++ b/src/libultra/io/vimodepallpf2.c @@ -1 +1,48 @@ +/** + * @file vimodepallpf2.c + * + * PAL LPF2 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * F = Interlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalLpf2 = { + OS_VI_PAL_LPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepallpn1.c b/src/libultra/io/vimodepallpn1.c index 8b13789179..7eeb37f9e2 100644 --- a/src/libultra/io/vimodepallpn1.c +++ b/src/libultra/io/vimodepallpn1.c @@ -1 +1,48 @@ +/** + * @file vimodepallpn1.c + * + * PAL LPN1 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * N = Deinterlaced + * 1 = 16-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalLpn1 = { + OS_VI_PAL_LPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/vimodepallpn2.c b/src/libultra/io/vimodepallpn2.c index 8b13789179..e460b87234 100644 --- a/src/libultra/io/vimodepallpn2.c +++ b/src/libultra/io/vimodepallpn2.c @@ -1 +1,48 @@ +/** + * @file vimodepallpn2.c + * + * PAL LPN2 Video Mode + * + * L = Low Resolution + * P = Point-Sampled + * N = Deinterlaced + * 2 = 32-bit Framebuffer + */ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModePalLpn2 = { + OS_VI_PAL_LPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, +}; diff --git a/src/libultra/io/visetmode.c b/src/libultra/io/visetmode.c index ab5b3b0e18..8c34a4ee31 100644 --- a/src/libultra/io/visetmode.c +++ b/src/libultra/io/visetmode.c @@ -4,6 +4,12 @@ void osViSetMode(OSViMode* mode) { register u32 prevInt = __osDisableInt(); +#ifdef BBPLAYER + if (__osBbIsBb) { + mode->comRegs.ctrl &= ~VI_CTRL_PIXEL_ADV(2); + } +#endif + __osViNext->modep = mode; __osViNext->state = VI_STATE_MODE_SET; __osViNext->features = __osViNext->modep->comRegs.ctrl; diff --git a/src/libultra/io/vitbl.c b/src/libultra/io/vitbl.c index 8b13789179..8779396bbc 100644 --- a/src/libultra/io/vitbl.c +++ b/src/libultra/io/vitbl.c @@ -1 +1,1967 @@ +#include "ultra64.h" +#include "ultra64/viint.h" +OSViMode osViModeTable[] = { + { + OS_VI_NTSC_LPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_LPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_LAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_LAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_LPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_LPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_LAN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(525), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_LAF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_HPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_HPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_HAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_HAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_HPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_3 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_NTSC_HPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 34, 5, 62), // burst + VSYNC(524), // vSync + HSYNC(3093, 0), // hSync + LEAP(3093, 3093), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_LPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_LPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_LAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_LAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_LPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_LPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_LAN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_LAF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_HPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_HPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_HAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_HAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_HPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_3 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(1, 0), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_PAL_HPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(93, 567), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(0.5, 0.5), // yScale + VSTART(95, 569), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_LPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_LPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_LAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_LAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_LPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_LPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_LAN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(525), // vSync + HSYNC(3089, 4), // hSync + LEAP(3097, 3098), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_LAF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_HPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_HPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_HAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_HAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + //[0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + //[1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_HPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_3 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(1, 0), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_MPAL_HPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(57, 30, 5, 70), // burst + VSYNC(524), // vSync + HSYNC(3088, 0), // hSync + LEAP(3100, 3100), // leap + HSTART(108, 748), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(35, 509), // vStart + BURST(2, 2, 11, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(0.5, 0.5), // yScale + VSTART(37, 511), // vStart + BURST(4, 2, 14, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, +#if BUILD_VERSION >= VERSION_J + { + OS_VI_FPAL_LPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_2 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_LPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_LAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_ANTIALIAS_MODE_1 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_LAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(640), // origin + SCALE(1, 0.25), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(640), // origin + SCALE(1, 0.75), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_LPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_ANTIALIAS_MODE_3 | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_LPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_LAN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(625), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_LAF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(320), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(2, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0.25), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(1280), // origin + SCALE(1, 0.75), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_HPN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_HPF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_HAN1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(1, 0), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_HAF1, // type + { + // comRegs + VI_CTRL_TYPE_16 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_DIVOT_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(1280), // origin + SCALE(0.5, 0.5), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_HPN2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_3 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(1280), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(1, 0), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(1, 0), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, + { + OS_VI_FPAL_HPF2, // type + { + // comRegs + VI_CTRL_TYPE_32 | VI_CTRL_GAMMA_DITHER_ON | VI_CTRL_GAMMA_ON | VI_CTRL_SERRATE_ON | + VI_CTRL_ANTIALIAS_MODE_2 | VI_CTRL_PIXEL_ADV_DEFAULT, // ctrl + WIDTH(640), // width + BURST(58, 30, 4, 69), // burst + VSYNC(624), // vSync + HSYNC(3177, 23), // hSync + LEAP(3183, 3181), // leap + HSTART(128, 768), // hStart + SCALE(1, 0), // xScale + VCURRENT(0), // vCurrent + }, + { + // fldRegs + { + // [0] + ORIGIN(2560), // origin + SCALE(0.5, 0.5), // yScale + VSTART(45, 615), // vStart + BURST(107, 2, 9, 0), // vBurst + VINTR(2), // vIntr + }, + { + // [1] + ORIGIN(5120), // origin + SCALE(0.5, 0.5), // yScale + VSTART(47, 617), // vStart + BURST(105, 2, 13, 0), // vBurst + VINTR(2), // vIntr + }, + }, + }, +#endif +}; diff --git a/src/libultra/libc/bcmp.s b/src/libultra/libc/bcmp.s index dcd5bc0023..9ef0746cf3 100644 --- a/src/libultra/libc/bcmp.s +++ b/src/libultra/libc/bcmp.s @@ -61,8 +61,8 @@ partaligncmp: addu a3, a3, a0 1: lwl v0, (a0) - lw v1, (a1) lwr v0, 3(a0) + lw v1, (a1) addu a0, a0, 4 addu a1, a1, 4 bne v0, v1, cmpne diff --git a/src/libultra/libc/bzero.s b/src/libultra/libc/bzero.s index 9c6552f654..e1ee69e89a 100644 --- a/src/libultra/libc/bzero.s +++ b/src/libultra/libc/bzero.s @@ -51,8 +51,8 @@ bytezero: /* zero one byte at a time */ addu a1, a1, a0 1: - sb zero, (a0) addiu a0, a0, 1 + sb zero, -1(a0) bne a0, a1, 1b zerodone: jr ra diff --git a/src/libultra/libc/xldtob.c b/src/libultra/libc/xldtob.c index a0ebe5d2d8..1a64baf041 100644 --- a/src/libultra/libc/xldtob.c +++ b/src/libultra/libc/xldtob.c @@ -56,7 +56,7 @@ void _Ldtob(_Pft* args, char code) { } else if (args->prec == 0 && (code == 'g' || code == 'G')) { args->prec = 1; } - err = _Ldunscale(&exp, (_Pft*)args); + err = _Ldunscale(&exp, args); if (err > 0) { memcpy(args->s, err == 2 ? "NaN" : "Inf", args->n1 = 3); return; @@ -76,7 +76,7 @@ void _Ldtob(_Pft* args, char code) { exp = exp * 30103 / 100000 - 4; if (exp < 0) { - n = (3 - exp) & ~3; + n = (-exp + 3) & ~3; exp = -n; for (i = 0; n > 0; n >>= 1, i++) { if ((n & 1) != 0) { @@ -95,7 +95,7 @@ void _Ldtob(_Pft* args, char code) { val /= factor; } - gen = ((code == 'f') ? exp + 10 : 6) + args->prec; + gen = args->prec + ((code == 'f') ? exp + 10 : 6); if (gen > 0x13) { gen = 0x13; } @@ -128,20 +128,14 @@ void _Ldtob(_Pft* args, char code) { --gen, --exp; } - nsig = ((code == 'f') ? exp + 1 : ((code == 'e' || code == 'E') ? 1 : 0)) + args->prec; + nsig = args->prec + ((code == 'f') ? exp + 1 : ((code == 'e' || code == 'E') ? 1 : 0)); if (gen < nsig) { nsig = gen; } if (nsig > 0) { - char drop; + char drop = (nsig < gen && ptr[nsig] > '4') ? '9' : '0'; int n2; - if (nsig < gen && ptr[nsig] > '4') { - drop = '9'; - } else { - drop = '0'; - } - for (n2 = nsig; ptr[--n2] == drop;) { nsig--; } diff --git a/src/libultra/libc/xprintf.c b/src/libultra/libc/xprintf.c index 7fba40b4c4..32a25d383c 100644 --- a/src/libultra/libc/xprintf.c +++ b/src/libultra/libc/xprintf.c @@ -11,7 +11,7 @@ #define ATOI(i, a) \ for (i = 0; isdigit(*a); a++) \ if (i < 999) \ - i = *a + i * 10 - '0'; + i = i * 10 + *a - '0'; #define PUT(fmt, _size) \ if (_size > 0) { \ @@ -93,11 +93,7 @@ int _Printf(PrintCallback pfn, void* arg, const char* fmt, va_list ap) { } } - if (strchr("hlL", *s) != NULL) { - x.qual = *s++; - } else { - x.qual = '\0'; - } + x.qual = (strchr("hlL", *s) != NULL) ? *s++ : '\0'; if (x.qual == 'l' && *s == 'l') { x.qual = 'L'; @@ -126,7 +122,7 @@ static void _Putfld(_Pft* px, va_list* pap, char code, char* ac) { switch (code) { case 'c': - ac[px->n0++] = va_arg(*pap, unsigned int); + ac[px->n0++] = va_arg(*pap, int); break; case 'd': diff --git a/src/libultra/mgu/mtxf2l.s b/src/libultra/mgu/mtxf2l.s index 1fada6b530..0268a323ef 100644 --- a/src/libultra/mgu/mtxf2l.s +++ b/src/libultra/mgu/mtxf2l.s @@ -13,23 +13,23 @@ LEAF(guMtxF2L) addu t8, a1, MTX_FRACPART 1: lwc1 ft0, 0(a0) - lwc1 ft3, 4(a0) mul.s ft1, ft0, fv0 - mul.s ft4, ft3, fv0 trunc.w.s ft2, ft1 + lwc1 ft3, 4(a0) + mul.s ft4, ft3, fv0 trunc.w.s ft5, ft4 mfc1 t0, ft2 mfc1 t1, ft5 - srl t3, t1, 0x10 - and t6, t1, 0xFFFF and t2, t0, t9 - sll t5, t0, 0x10 + srl t3, t1, 0x10 or t4, t2, t3 - or t7, t5, t6 sw t4, (MTX_INTPART)(a1) + sll t5, t0, 0x10 + and t6, t1, 0xFFFF + or t7, t5, t6 sw t7, (MTX_FRACPART)(a1) - addu a0, a0, 8 addu a1, a1, 4 + addu a0, a0, 8 bne a1, t8, 1b jr ra diff --git a/src/libultra/mgu/normalize.s b/src/libultra/mgu/normalize.s index da10204d6c..8174527f2c 100644 --- a/src/libultra/mgu/normalize.s +++ b/src/libultra/mgu/normalize.s @@ -8,8 +8,8 @@ LEAF(guNormalize) lwc1 ft0, (a0) lwc1 ft1, (a1) lwc1 ft2, (a2) - li.s t0, 1.0 mul.s ft3, ft0, ft0 + li.s t0, 1.0 mul.s ft4, ft1, ft1 add.s ft5, ft3, ft4 mul.s ft4, ft2, ft2 @@ -18,7 +18,9 @@ LEAF(guNormalize) sqrt.s ft4, ft3 div.s ft3, ft5, ft4 mul.s ft4, ft0, ft3 + nop mul.s ft5, ft1, ft3 + nop mul.s ft0, ft2, ft3 swc1 ft4, (a0) swc1 ft5, (a1) diff --git a/src/libultra/mgu/translate.s b/src/libultra/mgu/translate.s index 4ee630751f..cf2d246434 100644 --- a/src/libultra/mgu/translate.s +++ b/src/libultra/mgu/translate.s @@ -23,8 +23,8 @@ LEAF(guTranslate) or t0, t0, t2 sw t0, 0x18(a0) - sll t2, t3, 0x10 sll t0, t1, 0x10 + sll t2, t3, 0x10 srl t2, t2, 0x10 or t0, t0, t2 sw t0, 0x38(a0) diff --git a/src/libultra/os/exceptasm.s b/src/libultra/os/exceptasm.s index 3c02267b9e..cdadef1f7f 100644 --- a/src/libultra/os/exceptasm.s +++ b/src/libultra/os/exceptasm.s @@ -5,11 +5,14 @@ #include "ultra64/regdef.h" #include "ultra64/R4300.h" #include "ultra64/rcp.h" +#include "ultra64/bcp.h" #include "ultra64/message.h" #include "ultra64/thread.h" #include "ultra64/exception.h" #include "ultra64/version.h" +#define MESG(x) ((x) << 3) + .data .align 2 @@ -159,15 +162,15 @@ savecontext: /* global interrupt mask. This is however broken, see comments for osSetIntMask. */ la t0, __OSGlobalIntMask lw t0, (t0) - xor t2, t0, ~0 + xor t2, t0, 0xFFFFFFFF andi t2, t2, SR_IMASK or t4, t1, t2 and t3, k1, ~SR_IMASK - andi t0, t0, SR_IMASK or t3, t3, t4 + sw t3, THREAD_SR(k0) + andi t0, t0, SR_IMASK and t1, t1, t0 and k1, k1, ~SR_IMASK - sw t3, THREAD_SR(k0) or k1, k1, t1 savercp: /* Save the currently masked RCP interrupts. */ @@ -178,7 +181,7 @@ savercp: la t0, __OSGlobalIntMask lw t0, (t0) srl t0, t0, RCP_IMASKSHIFT - xor t0, t0, ~0 + xor t0, t0, 0xFFFFFFFF andi t0, t0, (RCP_IMASK >> RCP_IMASKSHIFT) lw t4, THREAD_RCP(k0) and t0, t0, t4 @@ -274,35 +277,146 @@ counter: MFC0( t1, C0_COMPARE) MTC0( t1, C0_COMPARE) /* Post counter message */ - li a0, OS_EVENT_COUNTER*8 + li a0, MESG(OS_EVENT_COUNTER) jal send_mesg /* Mask out interrupt and continue */ and s0, s0, ~CAUSE_IP8 b next_interrupt /** - * IP4/Cartridge Interrupt - * Signalled by the N64 Disk Drive + * N64: + * IP4/Cartridge Interrupt + * Signalled by the N64 Disk Drive + * iQue: + * IP4/BCP Interrupt + * New RCP Interrupts */ cart: - /* Load cart callback set by __osSetHWIntrRoutine */ - la t1, __osHwIntTable - lw t2, (OS_INTR_CART*HWINT_SIZE+HWINT_CALLBACK)(t1) /* Mask out interrupt */ and s0, s0, ~CAUSE_IP4 + /* Load cart callback set by __osSetHWIntrRoutine */ + la t1, __osHwIntTable + addi t1, t1, (OS_INTR_CART * HWINT_SIZE) + lw t2, HWINT_CALLBACK(t1) /* If the callback is NULL, handling is done */ - addi t1, t1, (OS_INTR_CART*HWINT_SIZE) - beqz t2, send_cart_mesg + beqz t2, 1f /* Set up a stack and run the callback */ lw sp, HWINT_SP(t1) jalr t2 - beqz v0, send_cart_mesg + beqz v0, 1f /* Redispatch immediately if the callback returned nonzero */ b redispatch -send_cart_mesg: +1: +#ifndef BBPLAYER /* Post a cart event message */ - li a0, OS_EVENT_CART*8 + li a0, MESG(OS_EVENT_CART) jal send_mesg +#else + /* On the iQue Player the CART interrupt no longer exists. New RCP interrupts are vectored here */ + lw s1, PHYS_TO_K1(MI_EX_INTR_REG) + +flash: + /* Check for FLASH interrupt */ + andi t1, s1, MI_EX_INTR_FLASH + beqz t1, flashx + /* Mask it out */ + andi s1, s1, MI_EX_INTR_ALL & ~MI_EX_INTR_FLASH + /* Clear it */ + li t1, 0 + sw t1, PHYS_TO_K1(PI_NAND_CTRL_REG) + /* Send the event message */ + li a0, MESG(OS_EVENT_FLASH) + jal send_mesg +flashx: +md: + /* Check for MD interrupt */ + andi t1, s1, MI_EX_INTR_MD + beqz t1, mdx + /* Mask it out */ + andi s1, s1, MI_EX_INTR_ALL & ~MI_EX_INTR_MD + /* Clear it */ + li t1, MI_EX_INTR_CLR_MD + sw t1, PHYS_TO_K1(MI_EX_INTR_REG) + /* Send the event message */ + li a0, MESG(OS_EVENT_MD) + jal send_mesg +mdx: +aes: + /* Check for AES interrupt */ + andi t1, s1, MI_EX_INTR_AES + beqz t1, aesx + /* Mask it out */ + andi s1, s1, MI_EX_INTR_ALL & ~MI_EX_INTR_AES + /* Disable the interrupt, this does not clear it. + * The responsibility of clearing and re-enabling + * the interrupt is left to the handler. */ + li t1, MI_EX_INTR_MASK_CLR_AES + sw t1, PHYS_TO_K1(MI_EX_INTR_MASK_REG) + /* Send the event message */ + li a0, MESG(OS_EVENT_AES) + jal send_mesg +aesx: +ide: + /* Check for IDE interrupt */ + andi t1, s1, MI_EX_INTR_IDE + beqz t1, idex + /* Mask it out */ + andi s1, s1, MI_EX_INTR_ALL & ~MI_EX_INTR_IDE + /* Disable the interrupt, this does not clear it. + * The responsibility of clearing and re-enabling + * the interrupt is left to the handler. */ + li t1, MI_EX_INTR_MASK_CLR_IDE + sw t1, PHYS_TO_K1(MI_EX_INTR_MASK_REG) + /* Send the event message */ + li a0, MESG(OS_EVENT_IDE) + jal send_mesg +idex: +pi_err: + /* Check for PI_ERR Interrupt */ + andi t1, s1, MI_EX_INTR_PI_ERR + beqz t1, pi_errx + /* Mask it out */ + andi s1, s1, MI_EX_INTR_ALL & ~MI_EX_INTR_PI_ERR + /* Disable the interrupt, this does not clear it. + * The responsibility of clearing and re-enabling + * the interrupt is left to the handler. */ + li t1, MI_EX_INTR_MASK_CLR_PI_ERR + sw t1, PHYS_TO_K1(MI_EX_INTR_MASK_REG) + /* Send the event message */ + li a0, MESG(OS_EVENT_PI_ERR) + jal send_mesg +pi_errx: +usb0: + /* Check for USB0 Interrupt */ + andi t1, s1, MI_EX_INTR_USB0 + beqz t1, usb0x + /* Mask it out */ + andi s1, s1, MI_EX_INTR_ALL & ~MI_EX_INTR_USB0 + /* Disable the interrupt, this does not clear it. + * The responsibility of clearing and re-enabling + * the interrupt is left to the handler. */ + li t1, MI_EX_INTR_MASK_CLR_USB0 + sw t1, PHYS_TO_K1(MI_EX_INTR_MASK_REG) + /* Send the event message */ + li a0, MESG(OS_EVENT_USB0) + jal send_mesg +usb0x: +usb1: + /* Check for USB1 Interrupt */ + andi t1, s1, MI_EX_INTR_USB1 + beqz t1, usb1x + /* Mask it out */ + andi s1, s1, MI_EX_INTR_ALL & ~MI_EX_INTR_USB1 + /* Disable the interrupt, this does not clear it. + * The responsibility of clearing and re-enabling + * the interrupt is left to the handler. */ + li t1, MI_EX_INTR_MASK_CLR_USB1 + sw t1, PHYS_TO_K1(MI_EX_INTR_MASK_REG) + /* Send the event message */ + li a0, MESG(OS_EVENT_USB1) + jal send_mesg +usb1x: +#endif /* Continue */ b next_interrupt @@ -315,10 +429,10 @@ rcp: /*! @bug this clobbers the t0 register which is expected to hold the value of the */ /*! C0_CAUSE register in the sw1 and sw2 handlers. If the sw1 or sw2 handler runs */ /*! after this, the interrupt will not be cleared properly. */ + lw s1, PHYS_TO_K1(MI_INTR_REG) la t0, __OSGlobalIntMask lw t0, (t0) srl t0, t0, RCP_IMASKSHIFT - lw s1, PHYS_TO_K1(MI_INTR_REG) and s1, s1, t0 /** @@ -327,17 +441,17 @@ rcp: /* Test for sp interrupt */ andi t1, s1, MI_INTR_SP beqz t1, vi - /* Test for yielded or done signals in particular */ - lw t4, PHYS_TO_K1(SP_STATUS_REG) - li t1, (SP_CLR_INTR | SP_CLR_SIG3) - andi t4, t4, (SP_STATUS_YIELDED | SP_STATUS_TASKDONE) /* Mask out SP interrupt */ andi s1, s1, (MI_INTR_SI | MI_INTR_AI | MI_INTR_VI | MI_INTR_PI | MI_INTR_DP) - sw t1, PHYS_TO_K1(SP_STATUS_REG) - beqz t4, sp_other_break + lw t4, PHYS_TO_K1(SP_STATUS_REG) /* Clear interrupt and signal 3 */ + li t1, (SP_CLR_INTR | SP_CLR_SIG3) + sw t1, PHYS_TO_K1(SP_STATUS_REG) + /* Test for yielded or done signals in particular */ + andi t4, t4, (SP_STATUS_YIELDED | SP_STATUS_TASKDONE) + beqz t4, sp_other_break /* Post an SP event message */ - li a0, OS_EVENT_SP*8 + li a0, MESG(OS_EVENT_SP) jal send_mesg beqz s1, NoMoreRcpInts /* Step over sp_other_break handler */ @@ -346,7 +460,7 @@ rcp: sp_other_break: /* An sp signal that is not due to yielding or task completion, such as */ /* an sp breakpoint. Post a different event message */ - li a0, OS_EVENT_SP_BREAK*8 + li a0, MESG(OS_EVENT_SP_BREAK) jal send_mesg beqz s1, NoMoreRcpInts @@ -362,7 +476,7 @@ vi: /* Clear interrupt */ sw zero, PHYS_TO_K1(VI_CURRENT_REG) /* Post vi event message */ - li a0, OS_EVENT_VI*8 + li a0, MESG(OS_EVENT_VI) jal send_mesg beqz s1, NoMoreRcpInts @@ -380,7 +494,7 @@ ai: li t1, 1 sw t1, PHYS_TO_K1(AI_STATUS_REG) /* Post ai event message */ - li a0, OS_EVENT_AI*8 + li a0, MESG(OS_EVENT_AI) jal send_mesg beqz s1, NoMoreRcpInts @@ -397,7 +511,7 @@ si: /* Clear interrupt */ sw zero, PHYS_TO_K1(SI_STATUS_REG) /* Post si event message */ - li a0, OS_EVENT_SI*8 + li a0, MESG(OS_EVENT_SI) jal send_mesg beqz s1, NoMoreRcpInts @@ -409,20 +523,15 @@ pi: andi t1, s1, MI_INTR_PI beqz t1, dp - /* Clear and mask the interrupt */ -#if LIBULTRA_VERSION < LIBULTRA_VERSION_J - li t1, PI_STATUS_CLR_INTR + /* Mask out pi interrupt */ andi s1, s1, (MI_INTR_SP | MI_INTR_SI | MI_INTR_AI | MI_INTR_VI | MI_INTR_DP) - sw t1, PHYS_TO_K1(PI_STATUS_REG) -#else /* Clear the interrupt */ li t1, PI_STATUS_CLR_INTR sw t1, PHYS_TO_K1(PI_STATUS_REG) +#if LIBULTRA_VERSION >= LIBULTRA_VERSION_J /* Load pi callback */ la t1, __osPiIntTable lw t2, HWINT_CALLBACK(t1) - /* Mask out pi interrupt */ - andi s1, s1, (MI_INTR_SP | MI_INTR_SI | MI_INTR_AI | MI_INTR_VI | MI_INTR_DP) /* Skip callback if NULL */ beqz t2, no_pi_callback /* Set up a stack and run the callback */ @@ -434,7 +543,7 @@ pi: #endif no_pi_callback: /* Post pi event message */ - li a0, OS_EVENT_PI*8 + li a0, MESG(OS_EVENT_PI) jal send_mesg skip_pi_mesg: beqz s1, NoMoreRcpInts @@ -453,7 +562,7 @@ dp: li t1, MI_CLR_DP_INTR sw t1, PHYS_TO_K1(MI_INIT_MODE_REG) /* Post dp event message */ - li a0, OS_EVENT_DP*8 + li a0, MESG(OS_EVENT_DP) jal send_mesg NoMoreRcpInts: @@ -483,11 +592,11 @@ firstnmi: li t2, 1 sw t2, (t1) /* Post a PreNMI event message */ - li a0, OS_EVENT_PRENMI*8 + li a0, MESG(OS_EVENT_PRENMI) jal send_mesg /* Mask out and disable IP5/PreNMI interrupt for the highest priority thread */ - lw t2, __osRunQueue and s0, s0, ~SR_IBIT5 + lw t2, __osRunQueue lw k1, THREAD_SR(t2) and k1, k1, ~SR_IBIT5 sw k1, THREAD_SR(t2) @@ -499,7 +608,7 @@ sw2: and t0, t0, ~CAUSE_SW2 MTC0( t0, C0_CAUSE) /* Post sw2 event message */ - li a0, OS_EVENT_SW2*8 + li a0, MESG(OS_EVENT_SW2) jal send_mesg /* Mask out interrupt and continue */ and s0, s0, ~CAUSE_SW2 @@ -510,7 +619,7 @@ sw1: and t0, t0, ~CAUSE_SW1 MTC0( t0, C0_CAUSE) /* Post sw1 event message */ - li a0, OS_EVENT_SW1*8 + li a0, MESG(OS_EVENT_SW1) jal send_mesg /* Mask out interrupt and continue */ and s0, s0, ~CAUSE_SW1 @@ -521,15 +630,15 @@ handle_break: li t1, OS_FLAG_CPU_BREAK sh t1, THREAD_FLAGS(k0) /* Post a cpu break event message */ - li a0, OS_EVENT_CPU_BREAK*8 + li a0, MESG(OS_EVENT_CPU_BREAK) jal send_mesg /* Redispatch */ b redispatch redispatch: - lw t2, __osRunQueue /* Get priority of previously running thread */ lw t1, THREAD_PRI(k0) + lw t2, __osRunQueue /* Get highest priority from waiting threads */ lw t3, THREAD_PRI(t2) bge t1, t3, enqueueRunning @@ -567,7 +676,7 @@ panic: MFC0( t2, C0_BADVADDR) sw t2, THREAD_BADVADDR(k0) /* Post the fault message */ - li a0, OS_EVENT_FAULT*8 + li a0, MESG(OS_EVENT_FAULT) jal send_mesg /* Dispatch next thread */ j __osDispatchThread @@ -576,12 +685,12 @@ panic: * Handles posting event messages to the listening message queue, if there is one */ send_mesg: + /* Save return address */ + move s2, ra /* Load pointer to listening message queue */ la t2, __osEventStateTab addu t2, t2, a0 lw t1, (t2) - /* Save return address */ - move s2, ra /* If there is no listening message queue, done */ beqz t1, send_done @@ -595,14 +704,13 @@ send_mesg: addu t5, t5, t3 rem t5, t5, t4 lw t4, MQ_MSG(t1) - sll t5, t5, 2 + mul t5, t5, 4 addu t4, t4, t5 - /* Fetch the message to post */ - lw t5, 4(t2) - addiu t2, t3, 1 /* Post the message to the message queue */ + lw t5, 4(t2) sw t5, (t4) /* Increment the validCount */ + addiu t2, t3, 1 sw t2, MQ_VALIDCOUNT(t1) /* If there was a thread blocked on this message queue, */ /* wake it up */ @@ -627,10 +735,10 @@ handle_CpU: li t2, 1 /* if not coprocessor 1, panic */ bne t1, t2, panic /* Mark cop1 as usable for previous thread */ - lw k1, THREAD_SR(k0) li t1, 1 - or k1, k1, SR_CU1 sw t1, THREAD_FP(k0) + lw k1, THREAD_SR(k0) + or k1, k1, SR_CU1 sw k1, THREAD_SR(k0) b enqueueRunning END(__osException) @@ -647,7 +755,6 @@ LEAF(__osEnqueueAndYield) lw a1, __osRunningThread /* Save SR */ MFC0( t0, C0_SR) - lw k1, THREAD_FP(a1) ori t0, t0, SR_EXL sw t0, THREAD_SR(a1) /* Save callee-saved registers */ @@ -665,15 +772,16 @@ LEAF(__osEnqueueAndYield) sd ra, THREAD_RA(a1) sw ra, THREAD_PC(a1) /* Save FPU callee-saved registers if the current thread has used the FPU */ + lw k1, THREAD_FP(a1) beqz k1, 1f cfc1 k1, C1_FPCSR + sw k1, THREAD_FPCSR(a1) sdc1 $f20, THREAD_FP20(a1) sdc1 $f22, THREAD_FP22(a1) sdc1 $f24, THREAD_FP24(a1) sdc1 $f26, THREAD_FP26(a1) sdc1 $f28, THREAD_FP28(a1) sdc1 $f30, THREAD_FP30(a1) - sw k1, THREAD_FPCSR(a1) 1: lw k1, THREAD_SR(a1) andi t1, k1, SR_IMASK @@ -682,7 +790,7 @@ LEAF(__osEnqueueAndYield) /* See the comment there for more about this. */ la t0, __OSGlobalIntMask lw t0, (t0) - xor t0, t0, ~0 + xor t0, t0, 0xFFFFFFFF andi t0, t0, SR_IMASK or t1, t1, t0 and k1, k1, ~SR_IMASK @@ -695,10 +803,10 @@ LEAF(__osEnqueueAndYield) /* See the comment there for more about this. */ la k0, __OSGlobalIntMask lw k0, (k0) - lw t0, THREAD_RCP(a1) srl k0, k0, RCP_IMASKSHIFT - xor k0, k0, ~0 + xor k0, k0, 0xFFFFFFFF andi k0, k0, (RCP_IMASK >> RCP_IMASKSHIFT) + lw t0, THREAD_RCP(a1) and k0, k0, t0 or k1, k1, k0 3: @@ -717,9 +825,9 @@ END(__osEnqueueAndYield) * Enqueues `thread` to the thread queue `threadQueue`, inserted by priority */ LEAF(__osEnqueueThread) + move t9, a0 lw t8, (a0) lw t7, THREAD_PRI(a1) - move t9, a0 lw t6, THREAD_PRI(t8) /* If the current highest priority thread is a lower priority than */ /* the new thread, skip searching the queue */ @@ -778,8 +886,8 @@ LEAF(__osDispatchThread) lw k1, THREAD_SR(k0) la t0, __OSGlobalIntMask lw t0, (t0) - andi t1, k1, SR_IMASK andi t0, t0, SR_IMASK + andi t1, k1, SR_IMASK and t1, t1, t0 and k1, k1, ~SR_IMASK or k1, k1, t1 @@ -812,13 +920,13 @@ LEAF(__osDispatchThread) ld t8, THREAD_T8(k0) ld t9, THREAD_T9(k0) ld gp, THREAD_GP(k0) + ld sp, THREAD_SP(k0) + ld fp, THREAD_S8(k0) + ld ra, THREAD_RA(k0) ld k1, THREAD_LO(k0) mtlo k1 ld k1, THREAD_HI(k0) mthi k1 - ld sp, THREAD_SP(k0) - ld fp, THREAD_S8(k0) - ld ra, THREAD_RA(k0) /* Move thread pc to EPC so that eret will return execution to where the thread left off */ lw k1, THREAD_PC(k0) MTC0( k1, C0_EPC) diff --git a/src/libultra/os/getmemsize.c b/src/libultra/os/getmemsize.c index 787346de63..1adbd66ff4 100644 --- a/src/libultra/os/getmemsize.c +++ b/src/libultra/os/getmemsize.c @@ -3,6 +3,7 @@ #define STEP 0x100000 u32 osGetMemSize(void) { +#ifndef BBPLAYER vu32* ptr; u32 size = 0x400000; u32 data0; @@ -28,4 +29,7 @@ u32 osGetMemSize(void) { } return size; +#else + return osMemSize; +#endif } diff --git a/src/libultra/os/gettime.c b/src/libultra/os/gettime.c index 2ca90b0df9..e8943cd9e0 100644 --- a/src/libultra/os/gettime.c +++ b/src/libultra/os/gettime.c @@ -11,5 +11,5 @@ OSTime osGetTime(void) { t = __osCurrentTime; __osRestoreInt(prevInt); - return base + t; + return t + base; } diff --git a/src/libultra/os/initialize.c b/src/libultra/os/initialize.c index 427a517710..300f2743dc 100644 --- a/src/libultra/os/initialize.c +++ b/src/libultra/os/initialize.c @@ -1,4 +1,5 @@ #include "global.h" +#include "ultra64/bcp.h" typedef struct __osExceptionVector { u32 inst1; // lui $k0, %hi(__osException) @@ -59,13 +60,50 @@ void OSINITIALIZE_FUNC(void) { __osSetWatchLo(0x04900000); #endif - while (__osSiRawReadIo((void*)(PIF_RAM_END - 3), &pifdata)) { - ; +#ifdef BBPLAYER + { + u32 x, y; + + // Check for iQue Player hardware by enabling and disabling FLASH and IDE interrupts and checking if the + // register gives the correct response. + IO_WRITE(MI_EX_INTR_MASK_REG, MI_EX_INTR_MASK_SET_FLASH | MI_EX_INTR_MASK_SET_IDE); + x = IO_READ(MI_EX_INTR_MASK_REG); + IO_WRITE(MI_EX_INTR_MASK_REG, MI_EX_INTR_MASK_CLR_FLASH | MI_EX_INTR_MASK_CLR_IDE); + y = IO_READ(MI_EX_INTR_MASK_REG); + + __osBbIsBb = + ((x & (MI_EX_INTR_MASK_FLASH | MI_EX_INTR_MASK_IDE)) == (MI_EX_INTR_MASK_FLASH | MI_EX_INTR_MASK_IDE)) && + ((y & (MI_EX_INTR_MASK_FLASH | MI_EX_INTR_MASK_IDE)) == 0); } - while (__osSiRawWriteIo((void*)(PIF_RAM_END - 3), pifdata | 8)) { - ; + + //! @bug Most games do not have permission to use GPIO, so they often cannot correctly tell if they are running on + //! HW V1 or V2. + if (__osBbIsBb && PI_GPIO_IS_HW_V2(IO_READ(PI_GPIO_REG))) { + __osBbIsBb = 2; } + if (__osBbIsBb) { + // Set IPL boot parameters + osTvType = OS_TV_NTSC; + osRomType = 0; + osResetType = 0; + osVersion = 1; + osMemSize = 0x400000; + } + + if (!__osBbIsBb) { + // The PIF doesn't exist on iQue, no need to enable NMI from PIF +#endif + while (__osSiRawReadIo((void*)(PIF_RAM_END - 3), &pifdata)) { + ; + } + while (__osSiRawWriteIo((void*)(PIF_RAM_END - 3), pifdata | 8)) { + ; + } +#ifdef BBPLAYER + } +#endif + *(__osExceptionVector*)UT_VEC = __osExceptionPreamble; // TLB miss *(__osExceptionVector*)XUT_VEC = __osExceptionPreamble; // XTLB miss *(__osExceptionVector*)ECC_VEC = __osExceptionPreamble; // cache errors @@ -102,6 +140,31 @@ void OSINITIALIZE_FUNC(void) { } #endif +#ifdef BBPLAYER + if (!__osBbIsBb) { + // In a real iQue Player environment (that is, real hardware + app launched from the system menu) + // these are set on app launch by the system menu based on the contents of the game's associated + // ticket. Set some dummy values if not running on iQue Player hardware. + __osBbEepromSize = 0x200; + __osBbPakSize = 0x8000; + __osBbFlashSize = 0x20000; + __osBbEepromAddress = 0x80400000 - 0x200; + __osBbPakAddress[0] = 0x80400000 - 0x8200; + __osBbPakAddress[1] = 0; + __osBbPakAddress[2] = 0; + __osBbPakAddress[3] = 0; + __osBbFlashAddress = 0x80400000 - 0x20000; + __osBbSramSize = __osBbFlashSize; + __osBbSramAddress = __osBbFlashAddress; + } + if (__osBbIsBb) { + IO_WRITE(PI_64_REG, IO_READ(PI_64_REG) & ~0x80000000); + IO_WRITE(MI_EX_INTR_MASK_REG, MI_EX_INTR_MASK_SET_IDE); + IO_WRITE(SI_0C_REG, 0); + IO_WRITE(SI_1C_REG, (IO_READ(SI_1C_REG) & ~0x7F000000) | 0x2F400000); + } +#endif + IO_WRITE(AI_CONTROL_REG, AI_CONTROL_DMA_ON); IO_WRITE(AI_DACRATE_REG, AI_MAX_DAC_RATE - 1); IO_WRITE(AI_BITRATE_REG, AI_MAX_BIT_RATE - 1); diff --git a/src/libultra/os/invaldcache.s b/src/libultra/os/invaldcache.s index 22109e13aa..9cf3d82e05 100644 --- a/src/libultra/os/invaldcache.s +++ b/src/libultra/os/invaldcache.s @@ -20,56 +20,50 @@ * the entire data cache is invalidated. */ LEAF(osInvalDCache) -.set noreorder /* If the amount to invalidate is less than or equal to 0, return immediately */ blez a1, 3f - nop /* If the amount to invalidate is as large as or larger than * the data cache size, invalidate all */ li t3, DCACHE_SIZE bgeu a1, t3, 4f - nop /* Ensure end address doesn't wrap around and end up smaller * than the start address */ move t0, a0 addu t1, a0, a1 bgeu t0, t1, 3f - nop /* Mask start with cache line */ + addiu t1, t1, -DCACHE_LINESIZE andi t2, t0, DCACHE_LINEMASK /* If mask is not zero, the start is not cache aligned */ beqz t2, 1f - addiu t1, t1, -DCACHE_LINESIZE /* Subtract mask result to align to cache line */ subu t0, t0, t2 /* Hit-Writeback-Invalidate unaligned part */ - cache (CACH_PD | C_HWBINV), (t0) + CACHE( (CACH_PD | C_HWBINV), (t0)) /* If that's all there is to do, return early */ bgeu t0, t1, 3f - nop addiu t0, t0, DCACHE_LINESIZE 1: /* Mask end with cache line */ andi t2, t1, DCACHE_LINEMASK /* If mask is not zero, the end is not cache aligned */ - beqz t2, 1f - nop + beqz t2, 2f /* Subtract mask result to align to cache line */ subu t1, t1, t2 /* Hit-Writeback-Invalidate unaligned part */ - cache (CACH_PD | C_HWBINV), DCACHE_LINESIZE(t1) + CACHE( (CACH_PD | C_HWBINV), DCACHE_LINESIZE(t1)) /* If that's all there is to do, return early */ bltu t1, t0, 3f - nop /* Invalidate the rest */ -1: +2: /* Hit-Invalidate */ - cache (CACH_PD | C_HINV), (t0) - bltu t0, t1, 1b + CACHE( (CACH_PD | C_HINV), (t0)) +.set noreorder + bltu t0, t1, 2b addiu t0, t0, DCACHE_LINESIZE +.set reorder 3: jr ra - nop 4: li t0, K0BASE @@ -77,10 +71,10 @@ LEAF(osInvalDCache) addiu t1, t1, -DCACHE_LINESIZE 5: /* Index-Writeback-Invalidate */ - cache (CACH_PD | C_IWBINV), (t0) + CACHE( (CACH_PD | C_IWBINV), (t0)) +.set noreorder bltu t0, t1, 5b addiu t0, DCACHE_LINESIZE - jr ra - nop .set reorder + jr ra END(osInvalDCache) diff --git a/src/libultra/os/invalicache.s b/src/libultra/os/invalicache.s index 757215cf19..ef92d4cb08 100644 --- a/src/libultra/os/invalicache.s +++ b/src/libultra/os/invalicache.s @@ -5,42 +5,40 @@ .text LEAF(osInvalICache) -.set noreorder /* If the amount to invalidate is less than or equal to 0, return immediately */ blez a1, 2f - nop /* If the amount to invalidate is as large as or larger than */ /* the instruction cache size, invalidate all */ li t3, ICACHE_SIZE bgeu a1, t3, 3f - nop /* ensure end address doesn't wrap around and end up smaller */ /* than the start address */ move t0, a0 addu t1, a0, a1 bgeu t0, t1, 2f - nop /* Mask and subtract to align to cache line */ - andi t2, t0, ICACHE_LINEMASK addiu t1, t1, -ICACHE_LINESIZE + andi t2, t0, ICACHE_LINEMASK subu t0, t0, t2 1: - cache (CACH_PI | C_HINV), (t0) + CACHE( (CACH_PI | C_HINV), (t0)) +.set noreorder bltu t0, t1, 1b addiu t0, t0, ICACHE_LINESIZE +.set reorder 2: jr ra - nop 3: li t0, K0BASE addu t1, t0, t3 addiu t1, t1, -ICACHE_LINESIZE 4: - cache (CACH_PI | C_IINV), (t0) + CACHE( (CACH_PI | C_IINV), (t0)) +.set noreorder bltu t0, t1, 4b addiu t0, ICACHE_LINESIZE +.set reorder jr ra - nop .set reorder END(osInvalICache) diff --git a/src/libultra/os/parameters.s b/src/libultra/os/parameters.s index b881148144..22d26beae6 100644 --- a/src/libultra/os/parameters.s +++ b/src/libultra/os/parameters.s @@ -23,7 +23,26 @@ IPL_SYMBOL(osVersion, 0x80000314, 4) IPL_SYMBOL(osMemSize, 0x80000318, 4) IPL_SYMBOL(osAppNMIBuffer, 0x8000031C, 0x40) +#ifdef BBPLAYER -.repeat 0x60/4 - NOP -.endr +IPL_SYMBOL(__osBbEepromAddress, 0x8000035C, 4) +IPL_SYMBOL(__osBbEepromSize, 0x80000360, 4) +IPL_SYMBOL(__osBbFlashAddress, 0x80000364, 4) +IPL_SYMBOL(__osBbFlashSize, 0x80000368, 4) +IPL_SYMBOL(__osBbSramAddress, 0x8000036C, 4) +IPL_SYMBOL(__osBbSramSize, 0x80000370, 4) +IPL_SYMBOL(__osBbPakAddress, 0x80000374, 0x10) +IPL_SYMBOL(__osBbPakSize, 0x80000384, 4) +IPL_SYMBOL(__osBbIsBb, 0x80000388, 4) +IPL_SYMBOL(__osBbHackFlags, 0x8000038C, 4) +IPL_SYMBOL(__osBbStashMagic, 0x80000390, 4) +IPL_SYMBOL(__osBbPakBindings, 0x80000394, 0x10) +IPL_SYMBOL(__osBbStateName, 0x800003A4, 0x10) +IPL_SYMBOL(__osBbStateDirty, 0x800003B4, 4) +IPL_SYMBOL(__osBbAuxDataLimit, 0x800003B8, 4) + +.space 0x10 + +#endif + +.space 0x60 diff --git a/src/libultra/os/recvmesg.c b/src/libultra/os/recvmesg.c index f065188cd0..3254867cce 100644 --- a/src/libultra/os/recvmesg.c +++ b/src/libultra/os/recvmesg.c @@ -7,9 +7,10 @@ s32 osRecvMesg(OSMesgQueue* mq, OSMesg* msg, s32 flag) { if (flag == OS_MESG_NOBLOCK) { __osRestoreInt(prevInt); return -1; + } else { + __osRunningThread->state = OS_STATE_WAITING; + __osEnqueueAndYield(&mq->mtqueue); } - __osRunningThread->state = OS_STATE_WAITING; - __osEnqueueAndYield(&mq->mtqueue); } if (msg != NULL) { diff --git a/src/libultra/os/setintmask.s b/src/libultra/os/setintmask.s index bf6bec020b..7b2f5be2f5 100644 --- a/src/libultra/os/setintmask.s +++ b/src/libultra/os/setintmask.s @@ -116,7 +116,7 @@ LEAF(osSetIntMask) la t0, __OSGlobalIntMask lw t3, (t0) /* Bitwise-OR in the disabled CPU bits of __OSGlobalIntMask */ - xor t0, t3, ~0 + xor t0, t3, 0xFFFFFFFF and t0, t0, SR_IMASK or v0, v0, t0 /* Fetch MI_INTR_MASK_REG */ @@ -125,7 +125,7 @@ LEAF(osSetIntMask) beqz t2, 1f srl t1, t3, RCP_IMASKSHIFT /* Bitwise-OR in the disabled RCP bits of __OSGlobalIntMask */ - xor t1, t1, ~0 + xor t1, t1, 0xFFFFFFFF and t1, t1, (RCP_IMASK >> RCP_IMASKSHIFT) or t2, t2, t1 1: diff --git a/src/libultra/os/settimer.c b/src/libultra/os/settimer.c index a876641e88..c5632e82c2 100644 --- a/src/libultra/os/settimer.c +++ b/src/libultra/os/settimer.c @@ -12,20 +12,14 @@ s32 osSetTimer(OSTimer* timer, OSTime countdown, OSTime interval, OSMesgQueue* m timer->next = NULL; timer->prev = NULL; timer->interval = interval; - - if (countdown != 0) { - timer->value = countdown; - } else { - timer->value = interval; - } + timer->value = (countdown != 0) ? countdown : interval; timer->mq = mq; timer->msg = msg; #if LIBULTRA_VERSION >= LIBULTRA_VERSION_K prevInt = __osDisableInt(); - if (__osTimerList->next != __osTimerList) { - if (1) {} - + if (__osTimerList->next == __osTimerList) { + } else { next = __osTimerList->next; count = osGetCount(); value = count - __osTimerCounter; diff --git a/src/libultra/os/stopthread.c b/src/libultra/os/stopthread.c index 54a236b49b..53aecd940a 100644 --- a/src/libultra/os/stopthread.c +++ b/src/libultra/os/stopthread.c @@ -2,13 +2,7 @@ void osStopThread(OSThread* thread) { register u32 prevInt = __osDisableInt(); - register u32 state; - - if (thread == NULL) { - state = OS_STATE_RUNNING; - } else { - state = thread->state; - } + register u16 state = (thread == NULL) ? OS_STATE_RUNNING : thread->state; switch (state) { case OS_STATE_RUNNING: diff --git a/src/libultra/os/thread.c b/src/libultra/os/thread.c index c78a34e4ec..0263acb454 100644 --- a/src/libultra/os/thread.c +++ b/src/libultra/os/thread.c @@ -6,16 +6,16 @@ OSThread* __osActiveQueue = (OSThread*)&__osThreadTail; OSThread* __osRunningThread = NULL; OSThread* __osFaultedThread = NULL; -void __osDequeueThread(OSThread** queue, OSThread* thread) { - register OSThread** a2 = queue; - register OSThread* a3 = *a2; +void __osDequeueThread(register OSThread** queue, register OSThread* thread) { + register OSThread* pred = (OSThread*)queue; + register OSThread* succ = pred->next; - while (a3 != NULL) { - if (a3 == thread) { - *a2 = thread->next; + while (succ != NULL) { + if (succ == thread) { + pred->next = thread->next; return; } - a2 = &a3->next; - a3 = *a2; + pred = succ; + succ = pred->next; } } diff --git a/src/libultra/os/timerintr.c b/src/libultra/os/timerintr.c index ce5c12fc5f..3f94368b20 100644 --- a/src/libultra/os/timerintr.c +++ b/src/libultra/os/timerintr.c @@ -11,10 +11,8 @@ void __osTimerServicesInit(void) { __osCurrentTime = 0; __osBaseCounter = 0; __osViIntrCount = 0; - __osTimerList->prev = __osTimerList; - __osTimerList->next = __osTimerList->prev; - __osTimerList->value = 0; - __osTimerList->interval = __osTimerList->value; + __osTimerList->next = __osTimerList->prev = __osTimerList; + __osTimerList->interval = __osTimerList->value = 0; __osTimerList->mq = NULL; __osTimerList->msg = NULL; } @@ -28,7 +26,7 @@ void __osTimerInterrupt(void) { return; } - while (true) { + for (;;) { timer = __osTimerList->next; if (timer == __osTimerList) { __osSetCompare(0); @@ -72,7 +70,7 @@ void __osSetTimerIntr(OSTime time) { prevInt = __osDisableInt(); __osTimerCounter = osGetCount(); - newTime = time + __osTimerCounter; + newTime = __osTimerCounter + time; __osSetCompare((u32)newTime); __osRestoreInt(prevInt); } diff --git a/src/libultra/os/virtualtophysical.c b/src/libultra/os/virtualtophysical.c index 5f8f79d83c..0037572232 100644 --- a/src/libultra/os/virtualtophysical.c +++ b/src/libultra/os/virtualtophysical.c @@ -3,11 +3,9 @@ u32 osVirtualToPhysical(void* vaddr) { if (IS_KSEG0(vaddr)) { return K0_TO_PHYS(vaddr); - } - - if (IS_KSEG1(vaddr)) { + } else if (IS_KSEG1(vaddr)) { return K1_TO_PHYS(vaddr); + } else { + return __osProbeTLB(vaddr); } - - return __osProbeTLB(vaddr); } diff --git a/src/libultra/os/writebackdcache.s b/src/libultra/os/writebackdcache.s index c7207c7e56..7b2af1b459 100644 --- a/src/libultra/os/writebackdcache.s +++ b/src/libultra/os/writebackdcache.s @@ -13,41 +13,41 @@ */ LEAF(osWritebackDCache) /* If the amount to write back is less than or equal to 0, return immediately */ - blez a1, .ret + blez a1, 2f /* If the amount to write back is as large as or larger than */ /* the data cache size, write back all */ li t3, DCACHE_SIZE - bgeu a1, t3, .all + bgeu a1, t3, 3f /* ensure end address doesn't wrap around and end up smaller */ /* than the start address */ move t0, a0 addu t1, a0, a1 - bgeu t0, t1, .ret + bgeu t0, t1, 2f /* Mask and subtract to align to cache line */ - andi t2, t0, DCACHE_LINEMASK addiu t1, t1, -DCACHE_LINESIZE + andi t2, t0, DCACHE_LINEMASK subu t0, t0, t2 1: + CACHE( (CACH_PD | C_HWB), (t0)) .set noreorder - cache (CACH_PD | C_HWB), (t0) bltu t0, t1, 1b addiu t0, t0, DCACHE_LINESIZE .set reorder -.ret: +2: jr ra /* same as osWritebackDCacheAll in operation */ -.all: +3: li t0, K0BASE addu t1, t0, t3 addiu t1, t1, -DCACHE_LINESIZE -1: +4: + CACHE( (CACH_PD | C_IWBINV), (t0)) .set noreorder - cache (CACH_PD | C_IWBINV), (t0) - bltu t0, t1, 1b + bltu t0, t1, 4b addiu t0, DCACHE_LINESIZE .set reorder jr ra diff --git a/src/libultra/reg/_getcount.c b/src/libultra/reg/_getcount.c new file mode 100644 index 0000000000..53073df994 --- /dev/null +++ b/src/libultra/reg/_getcount.c @@ -0,0 +1,32 @@ +#ifdef BBPLAYER +#include "ultra64.h" + +u32 __osBbLastRCount; +u32 __osBbRCountWraps; +u32 __osBbLastVCount; +u32 __osBbVCountWraps; + +u32 osGetCount(void) { + u32 count; + u32 mask = __osDisableInt(); + + __asm__("mfc0 %0, $%1" : "=r"(count) : "i"(C0_COUNT)); + + if (count < __osBbLastRCount) { + __osBbRCountWraps++; + } + __osBbLastRCount = count; + + count = (((u64)__osBbRCountWraps << 32) | count) * 125ull / 192ull; + + if (count < __osBbLastVCount) { + __osBbVCountWraps++; + } + __osBbLastVCount = count; + + __osRestoreInt(mask); + + return count; +} + +#endif diff --git a/src/libultra/reg/_setcompare.c b/src/libultra/reg/_setcompare.c new file mode 100644 index 0000000000..810afcd8fb --- /dev/null +++ b/src/libultra/reg/_setcompare.c @@ -0,0 +1,20 @@ +#ifdef BBPLAYER +#include "ultra64.h" + +extern u32 __osBbLastRCount; +extern u32 __osBbRCountWraps; +extern u32 __osBbLastVCount; +extern u32 __osBbVCountWraps; + +void __osSetCompare(u32 v) { + if (v != 0) { + u32 mask = __osDisableInt(); + u32 wraps = (v < __osBbLastVCount) ? (__osBbVCountWraps + 1) : __osBbVCountWraps; + + v = (((u64)wraps << 32) | v) * 192ull / 125ull; + + __osRestoreInt(mask); + } + __asm__("mtc0 %0, $%1" ::"r"(v), "i"(C0_COMPARE)); +} +#endif diff --git a/src/makerom/entry.s b/src/makerom/entry.s index 0a1233d80e..870b979d69 100644 --- a/src/makerom/entry.s +++ b/src/makerom/entry.s @@ -4,21 +4,38 @@ .text -#if defined(__sgi) && !defined(AVOID_UB) -/* IDO assembler workaround: The makerom tool in the N64 SDK was given the bss segment size as a const +#if defined(NON_MATCHING) || defined(__sgi) +/* Non-matching builds or IDO */ +#define PAD_TO 0x60 +#define LA(reg, sym) la reg, sym +#define BOOT_STACK_TOP sBootThreadStack + BOOT_STACK_SIZE +#else +/* EGCS */ +#define PAD_TO 0x50 +#define LA(reg, sym) \ + lui reg, %lo(sym##_HI); \ + ori reg, %lo(sym) +#endif + +#if !defined(AVOID_UB) +/* Old assembler workarounds: The makerom tool in the N64 SDK was given the bss segment size as a const * literal, and since this literal was < 0x10000 it was loaded in one instruction. We don't have access * to the bss segment size until we link everything so we cannot do the same thing. Instead we must load * only the lower 16 bits of the bss size for matching. * When AVOID_UB is enabled, don't do this and instead load the full symbol value, otherwise not all of * bss may be cleared. */ +#if defined(__sgi) #define LOAD_BSS_SIZE(reg) li reg, %half(_bootSegmentBssSize) #else -#define LOAD_BSS_SIZE(reg) la reg, _bootSegmentBssSize +#define LOAD_BSS_SIZE(reg) ori reg, zero, %lo(_bootSegmentBssSize) +#endif +#else +#define LOAD_BSS_SIZE(reg) LA(reg, _bootSegmentBssSize) #endif LEAF(entrypoint) /* Clear boot segment .bss */ - la t0, _bootSegmentBssStart + LA( t0, _bootSegmentBssStart) LOAD_BSS_SIZE(t1) .clear_bss: sw zero, 0(t0) @@ -28,17 +45,15 @@ LEAF(entrypoint) bnez t1, .clear_bss /* Set up stack and enter program code */ - la sp, sBootThreadStack + BOOT_STACK_SIZE - la t2, bootproc + LA( sp, BOOT_STACK_TOP) + LA( t2, bootproc) jr t2 END(entrypoint) -#ifdef __GNUC__ -/* Pad to a total size of 0x60 */ -.fill 0x60 - (. - entrypoint) +#ifdef __sgi +/* IDO can't take absolute differences of symbols so the size of the above is hardcoded */ +.space PAD_TO - 0x34 #else -/* IDO can't take absolute differences of symbols.. */ -.repeat (0x60 - 0x34) - .byte 0 -.endr +/* Pad to a total size taking into account the size of the above */ +.space PAD_TO - (. - entrypoint) #endif diff --git a/src/makerom/rom_header.s b/src/makerom/rom_header.s index d3d938cda3..2edf871c40 100644 --- a/src/makerom/rom_header.s +++ b/src/makerom/rom_header.s @@ -6,9 +6,12 @@ /* 0x00 */ ENDIAN_IDENTIFIER /* 0x01 */ PI_DOMAIN_1_CFG(64, 18, 7, 3) /* 0x04 */ SYSTEM_CLOCK_RATE_SETTING(0xF) -/* 0x08 */ ENTRYPOINT(0x80000400) +/* 0x08 */ ENTRYPOINT(entrypoint) /* 0x0C */ OS_VERSION(2, 0, LIBULTRA_VERSION) /* 0x10 */ CHECKSUM() + +#if !PLATFORM_IQUE + /* 0x18 */ PADDING(8) /* 0x20 */ ROM_NAME("THE LEGEND OF ZELDA") /* 0x34 */ PADDING(7) @@ -26,3 +29,9 @@ /* 0x3E */ REGION(PAL) #endif /* 0x3F */ GAME_REVISION(OOT_REVISION) + +#else + + .fill 0x40 - 0x18 + +#endif diff --git a/src/n64dd/n64dd_error_textures.c b/src/n64dd/n64dd_error_textures.c index 037ed7835b..d115fdd6ef 100644 --- a/src/n64dd/n64dd_error_textures.c +++ b/src/n64dd/n64dd_error_textures.c @@ -1,7 +1,5 @@ #include "ultra64.h" -#if PLATFORM_N64 - u64 gN64DDError41Texs[2][0x600 / sizeof(u64)] = { { #include "assets/n64dd/error_textures/n64dd_error_41_jpn.i4.inc.c" @@ -19,5 +17,3 @@ u64 gN64DDPleaseReadManualTexs[2][0x2800 / sizeof(u64)] = { #include "assets/n64dd/error_textures/n64dd_please_read_manual_eng.i4.inc.c" }, }; - -#endif diff --git a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c index 51450109de..5db5debc6a 100644 --- a/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c +++ b/src/overlays/actors/ovl_Bg_Ganon_Otyuka/z_bg_ganon_otyuka.c @@ -89,9 +89,9 @@ void BgGanonOtyuka_Destroy(Actor* thisx, PlayState* play2) { DynaPoly_DeleteBgActor(play, &play->colCtx.dyna, this->dyna.bgId); - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("WHY !!!!!!!!!!!!!!!!\n"); - PRINTF(VT_RST); + PRINTF_RST(); } void BgGanonOtyuka_WaitToFall(BgGanonOtyuka* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c index 691e2adbe2..c94ee924b1 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c +++ b/src/overlays/actors/ovl_Bg_Jya_Bombiwa/z_bg_jya_bombiwa.c @@ -92,12 +92,12 @@ void BgJyaBombiwa_Init(Actor* thisx, PlayState* play) { BgJyaBombiwa* this = (BgJyaBombiwa*)thisx; if (PARAMS_GET_U(this->dyna.actor.params, 0, 6) != 0x29) { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); // "Warning: Switch Number changed (%s %d)(SW %d)" PRINTF("Warning : Switch Number が変更された(%s %d)(SW %d)\n", "../z_bg_jya_bombiwa.c", 218, PARAMS_GET_U(this->dyna.actor.params, 0, 6)); - PRINTF(VT_RST); + PRINTF_RST(); } BgJyaBombiwa_SetupDynaPoly(this, play, &gBombiwaCol, 0); BgJyaBombiwa_InitCollider(this, play); diff --git a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c index 3b418afec1..c32bd92896 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c +++ b/src/overlays/actors/ovl_Bg_Jya_Cobra/z_bg_jya_cobra.c @@ -140,10 +140,10 @@ void BgJyaCobra_SpawnRay(BgJyaCobra* this, PlayState* play) { #if DEBUG_FEATURES if (this->dyna.actor.child == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); // "Error : Mir Ray occurrence failure" PRINTF("Error : Mir Ray 発生失敗 (%s %d)\n", "../z_bg_jya_cobra.c", 270); - PRINTF(VT_RST); + PRINTF_RST(); } #endif } diff --git a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c index 66875ae85b..bbdc93c2f8 100644 --- a/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c +++ b/src/overlays/actors/ovl_Bg_Jya_Zurerukabe/z_bg_jya_zurerukabe.c @@ -125,10 +125,10 @@ void BgJyaZurerukabe_Init(Actor* thisx, PlayState* play) { } if (i == ARRAY_COUNT(D_8089B9F0)) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF("home pos が変更されたみたい(%s %d)(arg_data 0x%04x)\n", "../z_bg_jya_zurerukabe.c", 299, this->dyna.actor.params); - PRINTF(VT_RST); + PRINTF_RST(); } this->unk_16E = D_8089B9F8[this->unk_168]; diff --git a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c index 95aecef7ff..566d4342b5 100644 --- a/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c +++ b/src/overlays/actors/ovl_Bg_Spot18_Basket/z_bg_spot18_basket.c @@ -155,9 +155,9 @@ void BgSpot18Basket_Init(Actor* thisx, PlayState* play) { this->dyna.actor.shape.rot.y + 0x1555, this->dyna.actor.shape.rot.z, -1); if (this->dyna.actor.child == NULL) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF("Error : 変化壷蓋発生失敗(%s %d)\n", "../z_bg_spot18_basket.c", 351); - PRINTF(VT_RST); + PRINTF_RST(); Actor_Kill(&this->dyna.actor); } } diff --git a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c index 9b9fd17c75..bf270508c4 100644 --- a/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c +++ b/src/overlays/actors/ovl_Boss_Fd2/z_boss_fd2.c @@ -877,10 +877,10 @@ void BossFd2_CollisionCheck(BossFd2* this, PlayState* play) { } if (((s8)bossFd->actor.colChkInfo.health > 2) || canKill) { bossFd->actor.colChkInfo.health -= damage; - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("damage %d\n", damage); } - PRINTF(VT_RST); + PRINTF_RST(); PRINTF("hp %d\n", bossFd->actor.colChkInfo.health); if ((s8)bossFd->actor.colChkInfo.health <= 0) { diff --git a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c index a2d5a34db4..082b91a56f 100644 --- a/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c +++ b/src/overlays/actors/ovl_Boss_Goma/z_boss_goma.c @@ -1,3 +1,9 @@ +/* + * File: z_boss_goma.c + * Overlay: ovl_Boss_Goma + * Description: Gohma + */ + #include "z_boss_goma.h" #include "assets/objects/object_goma/object_goma.h" #include "overlays/actors/ovl_En_Goma/z_en_goma.h" diff --git a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c index 3ad6c417b7..fc82d8000e 100644 --- a/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c +++ b/src/overlays/actors/ovl_Boss_Mo/z_boss_mo.c @@ -1747,7 +1747,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) { s16 i; Player* player = GET_PLAYER(play); - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("Core_Damage_check START\n"); if (this->coreCollider.base.atFlags & AT_HIT) { this->coreCollider.base.atFlags &= ~AT_HIT; @@ -1843,7 +1843,7 @@ void BossMo_CoreCollisionCheck(BossMo* this, PlayState* play) { } // "end !!" PRINTF("Core_Damage_check 終わり !!\n"); - PRINTF(VT_RST); + PRINTF_RST(); } void BossMo_Core(BossMo* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_Fish/z_en_fish.c b/src/overlays/actors/ovl_En_Fish/z_en_fish.c index 7f16563730..8ef16187f3 100644 --- a/src/overlays/actors/ovl_En_Fish/z_en_fish.c +++ b/src/overlays/actors/ovl_En_Fish/z_en_fish.c @@ -384,10 +384,10 @@ void EnFish_Dropped_Fall(EnFish* this, PlayState* play) { EnFish_Dropped_SetupSwimAway(this); } else if ((this->timer <= 0) && (this->actor.params == FISH_DROPPED) && (this->actor.floorHeight < BGCHECK_Y_MIN + 10.0f)) { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); // "BG missing? Running Actor_delete" PRINTF("BG 抜け? Actor_delete します(%s %d)\n", "../z_en_sakana.c", 822); - PRINTF(VT_RST); + PRINTF_RST(); Actor_Kill(&this->actor); } } diff --git a/src/overlays/actors/ovl_En_Fr/z_en_fr.c b/src/overlays/actors/ovl_En_Fr/z_en_fr.c index 6cf0808a4f..ee133164c2 100644 --- a/src/overlays/actors/ovl_En_Fr/z_en_fr.c +++ b/src/overlays/actors/ovl_En_Fr/z_en_fr.c @@ -245,20 +245,20 @@ void EnFr_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnFr_Idle; } else { if ((this->actor.params >= 6) || (this->actor.params < 0)) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "The argument is wrong!!" PRINTF("%s[%d] : 引数が間違っている!!(%d)\n", "../z_en_fr.c", 370, this->actor.params); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_fr.c", 372); } this->requiredObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GAMEPLAY_FIELD_KEEP); if (this->requiredObjectSlot < 0) { Actor_Kill(&this->actor); - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "There is no bank!!" PRINTF("%s[%d] : バンクが無いよ!!\n", "../z_en_fr.c", 380); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_fr.c", 382); } } @@ -980,10 +980,10 @@ void EnFr_Deactivate(EnFr* this, PlayState* play) { EnFr* frog = sEnFrPointers.frogs[frogIndex]; if (frog == NULL) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "There are no frogs!?" PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1604); - PRINTF(VT_RST); + PRINTF_RST(); return; } else if (frog->isDeactivating != true) { return; @@ -994,10 +994,10 @@ void EnFr_Deactivate(EnFr* this, PlayState* play) { EnFr* frog = sEnFrPointers.frogs[frogIndex]; if (frog == NULL) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "There are no frogs!?" PRINTF("%s[%d]カエルがいない!?\n", "../z_en_fr.c", 1618); - PRINTF(VT_RST); + PRINTF_RST(); return; } frog->isDeactivating = false; diff --git a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c index 4261af7b18..4ad132c690 100644 --- a/src/overlays/actors/ovl_En_GirlA/z_en_girla.c +++ b/src/overlays/actors/ovl_En_GirlA/z_en_girla.c @@ -382,9 +382,9 @@ void EnGirlA_InitItem(EnGirlA* this, PlayState* play) { if ((params >= SI_MAX) && (params < 0)) { Actor_Kill(&this->actor); - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF("引数がおかしいよ(arg_data=%d)!!\n", this->actor.params); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_girlA.c", 1421); return; } @@ -393,9 +393,9 @@ void EnGirlA_InitItem(EnGirlA* this, PlayState* play) { if (this->requiredObjectSlot < 0) { Actor_Kill(&this->actor); - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF("バンクが無いよ!!(%s)\n", sShopItemDescriptions[params]); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_girlA.c", 1434); return; } diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index 55c10f147d..3ed42e5119 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -73,10 +73,10 @@ void EnGm_Init(Actor* thisx, PlayState* play) { this->gmObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_GM); if (this->gmObjectSlot < 0) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "There is no model bank! !! (Medi Goron)" PRINTF("モデル バンクが無いよ!!(中ゴロン)\n"); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_gm.c", 145); } diff --git a/src/overlays/actors/ovl_En_Goma/z_en_goma.c b/src/overlays/actors/ovl_En_Goma/z_en_goma.c index 06be045412..575df93e53 100644 --- a/src/overlays/actors/ovl_En_Goma/z_en_goma.c +++ b/src/overlays/actors/ovl_En_Goma/z_en_goma.c @@ -1,3 +1,9 @@ +/* + * File: z_en_goma.c + * Overlay: ovl_En_Goma + * Description: Gohma Larva + */ + #include "z_en_goma.h" #include "assets/objects/gameplay_dangeon_keep/gameplay_dangeon_keep.h" #include "assets/objects/object_gol/object_gol.h" diff --git a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c index 923d4e3e70..56f7b6d975 100644 --- a/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c +++ b/src/overlays/actors/ovl_En_Goroiwa/z_en_goroiwa.c @@ -610,9 +610,9 @@ void EnGoroiwa_Roll(EnGoroiwa* this, PlayState* play) { } } Actor_SetPlayerKnockbackLarge(play, &this->actor, 2.0f, this->actor.yawTowardsPlayer, 0.0f, 0); - PRINTF(VT_FGCOL(CYAN)); + PRINTF_COLOR_CYAN(); PRINTF("Player ぶっ飛ばし\n"); // "Player knocked down" - PRINTF(VT_RST); + PRINTF_RST(); onHitSetupFuncs[PARAMS_GET_U(this->actor.params, 10, 1)](this); Player_PlaySfx(GET_PLAYER(play), NA_SE_PL_BODY_HIT); if ((this->actor.home.rot.z & 1) == 1) { diff --git a/src/overlays/actors/ovl_En_Guest/z_en_guest.c b/src/overlays/actors/ovl_En_Guest/z_en_guest.c index 9bb3cb6783..5c0a14f9d0 100644 --- a/src/overlays/actors/ovl_En_Guest/z_en_guest.c +++ b/src/overlays/actors/ovl_En_Guest/z_en_guest.c @@ -57,10 +57,10 @@ void EnGuest_Init(Actor* thisx, PlayState* play) { } else { this->osAnimeObjectSlot = Object_GetSlot(&play->objectCtx, OBJECT_OS_ANIME); if (this->osAnimeObjectSlot < 0) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "No such bank!!" PRINTF("%s[%d] : バンクが無いよ!!\n", "../z_en_guest.c", 129); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_guest.c", 132); } } diff --git a/src/overlays/actors/ovl_En_Insect/z_en_insect.c b/src/overlays/actors/ovl_En_Insect/z_en_insect.c index 5fcc053a69..4740bbc791 100644 --- a/src/overlays/actors/ovl_En_Insect/z_en_insect.c +++ b/src/overlays/actors/ovl_En_Insect/z_en_insect.c @@ -578,10 +578,10 @@ void EnInsect_Dropped(EnInsect* this, PlayState* play) { distanceSq = Math3D_Vec3fDistSq(&this->actor.world.pos, &this->soilActor->actor.world.pos); } else { if (this->insectFlags & INSECT_FLAG_FOUND_SOIL) { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); // "warning: target Actor is NULL" PRINTF("warning:目標 Actor が NULL (%s %d)\n", "../z_en_mushi.c", 1046); - PRINTF(VT_RST); + PRINTF_RST(); } distanceSq = 40.0f; } @@ -706,10 +706,10 @@ void EnInsect_Dropped(EnInsect* this, PlayState* play) { } else if ((type == INSECT_TYPE_FIRST_DROPPED || type == INSECT_TYPE_EXTRA_DROPPED) && (this->insectFlags & INSECT_FLAG_0) && this->lifeTimer <= 0 && this->actionTimer <= 0 && this->actor.floorHeight < BGCHECK_Y_MIN + 10.0f) { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); // "BG missing? To do Actor_delete" PRINTF("BG 抜け? Actor_delete します(%s %d)\n", "../z_en_mushi.c", 1197); - PRINTF(VT_RST); + PRINTF_RST(); Actor_Kill(&this->actor); } } diff --git a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c index 9fb7bd587c..7e84670426 100644 --- a/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c +++ b/src/overlays/actors/ovl_En_Ishi/z_en_ishi.c @@ -125,10 +125,10 @@ s32 EnIshi_SnapToFloor(EnIshi* this, PlayState* play, f32 arg2) { Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos); return true; } else { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); // "Failure attaching to ground" PRINTF("地面に付着失敗(%s %d)\n", "../z_en_ishi.c", 388); - PRINTF(VT_RST); + PRINTF_RST(); return false; } } diff --git a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c index d3dce9d5aa..03242220e0 100644 --- a/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c +++ b/src/overlays/actors/ovl_En_Kanban/z_en_kanban.c @@ -463,7 +463,7 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { this->actor.bgCheckFlags = tempBgFlags; this->actor.depthInWater = tempDepthInWater; - PRINTF(VT_RST); + PRINTF_RST(); if (1) { u8 onGround = (this->actor.bgCheckFlags & BGCHECKFLAG_GROUND); @@ -727,9 +727,9 @@ void EnKanban_Update(Actor* thisx, PlayState* play2) { bomb = bomb->next; } } - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("OCARINA_MODE %d\n", play->msgCtx.ocarinaMode); - PRINTF(VT_RST); + PRINTF_RST(); switch (this->ocarinaFlag) { case 0: if (play->msgCtx.ocarinaMode == OCARINA_MODE_01) { diff --git a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c index 0d938f45c6..e46125878e 100644 --- a/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c +++ b/src/overlays/actors/ovl_En_Kusa/z_en_kusa.c @@ -115,10 +115,10 @@ s32 EnKusa_SnapToFloor(EnKusa* this, PlayState* play, f32 yOffset) { Math_Vec3f_Copy(&this->actor.home.pos, &this->actor.world.pos); return true; } else { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); // "Failure attaching to ground" PRINTF("地面に付着失敗(%s %d)\n", "../z_en_kusa.c", 323); - PRINTF(VT_RST); + PRINTF_RST(); return false; } } diff --git a/src/overlays/actors/ovl_En_Mu/z_en_mu.c b/src/overlays/actors/ovl_En_Mu/z_en_mu.c index e88ba8fc9c..4f4221820f 100644 --- a/src/overlays/actors/ovl_En_Mu/z_en_mu.c +++ b/src/overlays/actors/ovl_En_Mu/z_en_mu.c @@ -58,20 +58,21 @@ void EnMu_SetupAction(EnMu* this, EnMuActionFunc actionFunc) { void EnMu_Interact(EnMu* this, PlayState* play) { u8 textIdOffset[] = { 0x42, 0x43, 0x3F, 0x41, 0x3E }; u8 bitmask[] = { - EVENTINF_MASK(EVENTINF_20), EVENTINF_MASK(EVENTINF_21), EVENTINF_MASK(EVENTINF_22), - EVENTINF_MASK(EVENTINF_23), EVENTINF_MASK(EVENTINF_24), + EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_0), EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_1), + EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_2), EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_3), + EVENTINF_MASK(EVENTINF_HAGGLING_TOWNSFOLK_MESG_4), }; - u8 textFlags; + u8 talkFlags; s32 randomIndex; s32 i; - textFlags = ENMU_GET_TALK_FLAGS(); - ENMU_RESET_TALK_FLAGS(); + talkFlags = GET_EVENTINF_ENMU_TALK_FLAGS(); + RESET_EVENTINF_ENMU_TALK_FLAGS(); randomIndex = (play->state.frames + (s32)(Rand_ZeroOne() * 5.0f)) % 5; + // Starting at randomIndex, scan sequentially for the next unspoken message for (i = 0; i < 5; i++) { - - if (!(textFlags & bitmask[randomIndex])) { + if (!(talkFlags & bitmask[randomIndex])) { break; } @@ -81,6 +82,7 @@ void EnMu_Interact(EnMu* this, PlayState* play) { } } + // If all 5 messages have been spoken, reset but prevent the last message from being repeated if (i == 5) { if (this->defaultTextId == (textIdOffset[randomIndex] | 0x7000)) { randomIndex++; @@ -88,13 +90,12 @@ void EnMu_Interact(EnMu* this, PlayState* play) { randomIndex = 0; } } - textFlags = 0; + talkFlags = 0; } - textFlags |= bitmask[randomIndex]; + talkFlags |= (u8)bitmask[randomIndex]; this->defaultTextId = textIdOffset[randomIndex] | 0x7000; - textFlags &= EVENTINF_HAGGLING_TOWNSFOLK_MASK | 0xE0; - gSaveContext.eventInf[EVENTINF_INDEX_HAGGLING_TOWNSFOLK] |= textFlags; + SET_EVENTINF_ENMU_TALK_FLAGS(talkFlags); } u16 EnMu_GetTextId(PlayState* play, Actor* thisx) { diff --git a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c index 2016b3bafb..a083ef85d7 100644 --- a/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c +++ b/src/overlays/actors/ovl_En_Ossan/z_en_ossan.c @@ -593,9 +593,9 @@ void EnOssan_Init(Actor* thisx, PlayState* play) { //! @bug This check will always evaluate to false, it should be || not && if (this->actor.params > OSSAN_TYPE_MASK && this->actor.params < OSSAN_TYPE_KOKIRI) { Actor_Kill(&this->actor); - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF("引数がおかしいよ(arg_data=%d)!!\n", this->actor.params); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_oB1.c", 1246); return; } @@ -622,18 +622,18 @@ void EnOssan_Init(Actor* thisx, PlayState* play) { if (this->objectSlot1 < 0) { Actor_Kill(&this->actor); - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF("バンクが無いよ!!(%s)\n", sShopkeeperPrintName[this->actor.params]); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_oB1.c", 1284); return; } if (EnOssan_TryGetObjBankIndices(this, play, objectIds) == 0) { Actor_Kill(&this->actor); - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF("予備バンクが無いよ!!(%s)\n", sShopkeeperPrintName[this->actor.params]); - PRINTF(VT_RST); + PRINTF_RST(); ASSERT(0, "0", "../z_en_oB1.c", 1295); return; } @@ -2127,10 +2127,10 @@ void EnOssan_InitActionFunc(EnOssan* this, PlayState* play) { this->shelves = (EnTana*)Actor_Find(&play->actorCtx, ACTOR_EN_TANA, ACTORCAT_PROP); if (this->shelves == NULL) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "Warning!! There are no shelves!!" PRINTF("★★★ 警告!! 棚がないよ!! ★★★\n"); - PRINTF(VT_RST); + PRINTF_RST(); return; } diff --git a/src/overlays/actors/ovl_En_Owl/z_en_owl.c b/src/overlays/actors/ovl_En_Owl/z_en_owl.c index c5ed802b70..46696027f4 100644 --- a/src/overlays/actors/ovl_En_Owl/z_en_owl.c +++ b/src/overlays/actors/ovl_En_Owl/z_en_owl.c @@ -220,11 +220,11 @@ void EnOwl_Init(Actor* thisx, PlayState* play) { break; default: // Outside kokiri forest - PRINTF(VT_FGCOL(CYAN)); + PRINTF_COLOR_CYAN(); PRINTF("no = %d \n", owlType); PRINTF(T("未完成のフクロウ未完成のフクロウ未完成のフクロウ\n", "Unfinished owl unfinished owl unfinished owl\n")); - PRINTF(VT_RST); + PRINTF_RST(); this->actionFlags |= 2; this->unk_3EE = 0x20; this->actionFunc = EnOwl_WaitOutsideKokiri; @@ -927,14 +927,14 @@ void func_80ACC00C(EnOwl* this, PlayState* play) { if (this->actor.xzDistToPlayer < 50.0f) { if (!Play_InCsMode(play)) { owlType = PARAMS_GET_S(this->actor.params, 6, 6); - PRINTF(VT_FGCOL(CYAN)); + PRINTF_COLOR_CYAN(); PRINTF(T("%dのフクロウ\n", "%d owl\n"), owlType); - PRINTF(VT_RST); + PRINTF_RST(); switch (owlType) { case 7: - PRINTF(VT_FGCOL(CYAN)); + PRINTF_COLOR_CYAN(); PRINTF(T("SPOT 06 の デモがはしった\n", "Demo of SPOT 06 has been completed\n")); - PRINTF(VT_RST); + PRINTF_RST(); play->csCtx.script = SEGMENTED_TO_VIRTUAL(gLakeHyliaOwlCs); this->actor.draw = NULL; break; diff --git a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c index b4de777c72..00eff4a39f 100644 --- a/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c +++ b/src/overlays/actors/ovl_En_Po_Field/z_en_po_field.c @@ -143,7 +143,8 @@ static EnPoFieldInfo sPoFieldInfo[2] = { static Vec3f D_80AD714C = { 0.0f, 1400.0f, 0.0f }; -#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128 ntsc-1.2:128" +#pragma increment_block_number "gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128 ntsc-1.2:128 pal-1.0:128" \ + "pal-1.1:128" static Vec3s sSpawnPositions[10]; static u8 sSpawnSwitchFlags[10]; diff --git a/src/overlays/actors/ovl_End_Title/z_end_title.c b/src/overlays/actors/ovl_End_Title/z_end_title.c index 0762c9c5e5..961f96f64f 100644 --- a/src/overlays/actors/ovl_End_Title/z_end_title.c +++ b/src/overlays/actors/ovl_End_Title/z_end_title.c @@ -46,18 +46,16 @@ void EndTitle_Update(Actor* thisx, PlayState* play) { // Used in the castle courtyard void EndTitle_DrawFull(Actor* thisx, PlayState* play) { - MtxF* mf; + PlayState* play2 = (PlayState*)play; EndTitle* this = (EndTitle*)thisx; - s32 csCurFrame = play->csCtx.curFrame; - Player* player = GET_PLAYER(play); - - mf = &player->mf_9E0; + s32 csCurFrame = play2->csCtx.curFrame; + Player* player = GET_PLAYER(play2); OPEN_DISPS(play->state.gfxCtx, "../z_end_title.c", 403); // Draw the Triforce on Link's left hand Gfx_SetupDL_25Xlu(play->state.gfxCtx); - Matrix_Mult(mf, MTXMODE_NEW); + Matrix_Mult(&player->mf_9E0, MTXMODE_NEW); Matrix_Translate(0.0f, 150.0f, 170.0f, MTXMODE_APPLY); Matrix_Scale(0.13f, 0.13f, 0.13f, MTXMODE_APPLY); Matrix_RotateX(BINANG_TO_RAD(0xBB8), MTXMODE_APPLY); diff --git a/src/overlays/actors/ovl_Fishing/z_fishing.c b/src/overlays/actors/ovl_Fishing/z_fishing.c index 0c306a0a00..5f995aa721 100644 --- a/src/overlays/actors/ovl_Fishing/z_fishing.c +++ b/src/overlays/actors/ovl_Fishing/z_fishing.c @@ -35,7 +35,7 @@ #include "cic6105.h" #endif -#pragma increment_block_number "gc-eu:166 gc-eu-mq:166 gc-jp:166 gc-jp-ce:166 gc-jp-mq:166 gc-us:166 gc-us-mq:166" \ +#pragma increment_block_number "gc-eu:163 gc-eu-mq:163 gc-jp:163 gc-jp-ce:163 gc-jp-mq:163 gc-us:163 gc-us-mq:163" \ "ntsc-1.0:121 ntsc-1.1:121 ntsc-1.2:121 pal-1.0:121 pal-1.1:121" #define FLAGS ACTOR_FLAG_UPDATE_CULLING_DISABLED @@ -5172,11 +5172,11 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { #if DEBUG_FEATURES if (0) { // Strings existing only in rodata - PRINTF(VT_FGCOL(GREEN)); - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_GREEN(); + PRINTF_COLOR_YELLOW(); PRINTF("plays %x\n"); PRINTF("ys %x\n"); - PRINTF(VT_RST); + PRINTF_RST(); } #endif @@ -5676,9 +5676,9 @@ void Fishing_UpdateOwner(Actor* thisx, PlayState* play2) { sREG(14) = 0; #endif - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("zelda_time %x\n", ((void)0, gSaveContext.save.dayTime)); - PRINTF(VT_RST); + PRINTF_RST(); if (sStormChanceTimer >= 2) { sStormChanceTimer--; diff --git a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c index 1e34d1c586..a7bf1716d7 100644 --- a/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c +++ b/src/overlays/actors/ovl_Obj_Bean/z_obj_bean.c @@ -472,18 +472,18 @@ void ObjBean_Init(Actor* thisx, PlayState* play) { if (Flags_GetSwitch(play, PARAMS_GET_U(this->dyna.actor.params, 0, 6)) || (DEBUG_FEATURES && mREG(1) == 1)) { path = PARAMS_GET_U(this->dyna.actor.params, 8, 5); if (path == 0x1F) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "No path data?" PRINTF("パスデータが無い?(%s %d)(arg_data %xH)\n", "../z_obj_bean.c", 909, this->dyna.actor.params); - PRINTF(VT_RST); + PRINTF_RST(); Actor_Kill(&this->dyna.actor); return; } if (play->pathList[path].count < 3) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "Incorrect number of path data" PRINTF("パスデータ数が不正(%s %d)(arg_data %xH)\n", "../z_obj_bean.c", 921, this->dyna.actor.params); - PRINTF(VT_RST); + PRINTF_RST(); Actor_Kill(&this->dyna.actor); return; } @@ -888,10 +888,10 @@ void ObjBean_Update(Actor* thisx, PlayState* play) { this->dyna.actor.shape.shadowScale = this->dyna.actor.scale.x * 88.0f; if (ObjBean_CheckForHorseTrample(this, play)) { - PRINTF(VT_FGCOL(CYAN)); + PRINTF_COLOR_CYAN(); // "Horse and bean tree lift collision" PRINTF("馬と豆の木リフト衝突!!!\n"); - PRINTF(VT_RST); + PRINTF_RST(); ObjBean_Break(this, play); DynaPoly_DisableCollision(play, &play->colCtx.dyna, this->dyna.bgId); func_80B908EC(this); diff --git a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c index a2d8dbbb12..adecf7e08b 100644 --- a/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c +++ b/src/overlays/actors/ovl_Obj_Lightswitch/z_obj_lightswitch.c @@ -188,10 +188,10 @@ void ObjLightswitch_Init(Actor* thisx, PlayState* play) { if (Actor_SpawnAsChild(&play->actorCtx, &this->actor, play, ACTOR_OBJ_OSHIHIKI, this->actor.home.pos.x, this->actor.home.pos.y, this->actor.home.pos.z, 0, this->actor.home.rot.y, 0, (0xFF << 8) | PUSHBLOCK_SMALL_START_ON) == NULL) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); // "Push-pull block occurrence failure" PRINTF("押引ブロック発生失敗(%s %d)(arg_data 0x%04x)\n", "../z_obj_lightswitch.c", 452, this->actor.params); - PRINTF(VT_RST); + PRINTF_RST(); removeSelf = true; } } diff --git a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c index 82e10d0f23..7ac997ae62 100644 --- a/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c +++ b/src/overlays/actors/ovl_Obj_Makekinsuta/z_obj_makekinsuta.c @@ -32,15 +32,15 @@ void ObjMakekinsuta_Init(Actor* thisx, PlayState* play) { ObjMakekinsuta* this = (ObjMakekinsuta*)thisx; if (PARAMS_GET_NOSHIFT(this->actor.params, 13, 2) == 0x4000) { - PRINTF(VT_FGCOL(BLUE)); + PRINTF_COLOR_BLUE(); // "Gold Star Enemy(arg_data %x)" PRINTF("金スタ発生敵(arg_data %x)\n", this->actor.params); - PRINTF(VT_RST); + PRINTF_RST(); } else { - PRINTF(VT_COL(YELLOW, BLACK)); + PRINTF_COLOR_WARNING(); // "Invalid Argument (arg_data %x)(%s %d)" PRINTF("引数不正 (arg_data %x)(%s %d)\n", this->actor.params, "../z_obj_makekinsuta.c", 119); - PRINTF(VT_RST); + PRINTF_RST(); } this->actionFunc = func_80B98320; } diff --git a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c index 1cc2161196..3ea20567ef 100644 --- a/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c +++ b/src/overlays/actors/ovl_Obj_Makeoshihiki/z_obj_makeoshihiki.c @@ -72,9 +72,9 @@ void ObjMakeoshihiki_Init(Actor* thisx, PlayState* play) { if (Actor_SpawnAsChild(&play->actorCtx, thisx, play, ACTOR_OBJ_OSHIHIKI, spawnPos->x, spawnPos->y, spawnPos->z, 0, block->rotY, 0, ((block->color << 6) & 0xC0) | (block->type & 0xF) | 0xFF00) == NULL) { // "Push-pull block failure" - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF("Error : 押し引きブロック発生失敗(%s %d)\n", "../z_obj_makeoshihiki.c", 194); - PRINTF(VT_RST); + PRINTF_RST(); Actor_Kill(thisx); return; } diff --git a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c index 05f23ebaaf..e791de6297 100644 --- a/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c +++ b/src/overlays/actors/ovl_Obj_Switch/z_obj_switch.c @@ -322,9 +322,9 @@ void ObjSwitch_Init(Actor* thisx, PlayState* play) { this->dyna.actor.colChkInfo.mass = MASS_IMMOVABLE; if (OBJSWITCH_FROZEN(&this->dyna.actor) && (ObjSwitch_SpawnIce(this, play) == NULL)) { - PRINTF(VT_FGCOL(RED)); + PRINTF_COLOR_RED(); PRINTF("Error : 氷発生失敗 (%s %d)\n", "../z_obj_switch.c", 732); - PRINTF(VT_RST); + PRINTF_RST(); this->dyna.actor.params &= ~OBJSWITCH_FROZEN_FLAG; } diff --git a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c index ac422c63e8..94c6618470 100644 --- a/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c +++ b/src/overlays/actors/ovl_Obj_Warp2block/z_obj_warp2block.c @@ -264,9 +264,9 @@ void func_80BA24F8(ObjWarp2block* this, PlayState* play) { this->unk_174++; if (this->unk_174 > 60) { - PRINTF(VT_COL(RED, WHITE)); + PRINTF_COLOR_ERROR(); PRINTF("Error : 時のブロック(ワープ2)が対でセットされていません(%s %d)\n", "../z_obj_warp2block.c", 505); - PRINTF(VT_RST); + PRINTF_RST(); Actor_Kill(&this->dyna.actor); } } diff --git a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c index 7953afe1f8..5aeb61031a 100644 --- a/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c +++ b/src/overlays/actors/ovl_Oceff_Spot/z_oceff_spot.c @@ -85,17 +85,17 @@ void OceffSpot_End(OceffSpot* this, PlayState* play) { if (play->msgCtx.ocarinaAction != OCARINA_ACTION_CHECK_NOWARP_DONE || play->msgCtx.ocarinaMode != OCARINA_MODE_08) { gSaveContext.sunsSongState = SUNSSONG_START; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); // "Sun's Song Flag" PRINTF("z_oceff_spot 太陽の歌フラグ\n"); - PRINTF(VT_RST); + PRINTF_RST(); } } else { play->msgCtx.ocarinaMode = OCARINA_MODE_04; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); // "Ocarina End" PRINTF("z_oceff_spot オカリナ終了\n"); - PRINTF(VT_RST); + PRINTF_RST(); } } } diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 37ff780581..bf2efcbb94 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -338,14 +338,14 @@ static s32 D_80858AA0; // TODO: There's probably a way to match BSS ordering with less padding by spreading the variables out and moving // data around. It would be easier if we had more options for controlling BSS ordering in debug. -#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ +#pragma increment_block_number "gc-eu:192 gc-eu-mq:192 gc-jp:128 gc-jp-ce:128 gc-jp-mq:128 gc-us:128 gc-us-mq:128" \ "ntsc-1.0:192 ntsc-1.1:192 ntsc-1.2:192 pal-1.0:192 pal-1.1:192" static s32 sSavedCurrentMask; static Vec3f sInteractWallCheckResult; static Input* sControlInput; -#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-jp:160 gc-jp-ce:160 gc-jp-mq:160 gc-us:160 gc-us-mq:160" \ +#pragma increment_block_number "gc-eu:160 gc-eu-mq:160 gc-jp:192 gc-jp-ce:192 gc-jp-mq:192 gc-us:192 gc-us-mq:192" \ "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" // .data diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c index d8490f3aa1..d1ac73b9e4 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_choose.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_choose.c @@ -1909,10 +1909,10 @@ void FileSelect_LoadGame(GameState* thisx) { // capacity and `magicFillTarget` gSaveContext.save.info.playerData.magicLevel = gSaveContext.save.info.playerData.magic = 0; - PRINTF(VT_FGCOL(GREEN)); + PRINTF_COLOR_GREEN(); PRINTF("Z_MAGIC_NOW_NOW=%d MAGIC_NOW=%d\n", ((void)0, gSaveContext.magicFillTarget), gSaveContext.save.info.playerData.magic); - PRINTF(VT_RST); + PRINTF_RST(); gSaveContext.save.info.playerData.naviTimer = 0; diff --git a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c index f148c1d78b..9bafd123bd 100644 --- a/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c +++ b/src/overlays/gamestates/ovl_file_choose/z_file_nameset.c @@ -1347,13 +1347,13 @@ void FileSelect_UpdateOptionsMenu(GameState* thisx) { #endif PRINTF("SAVE"); Sram_WriteSramHeader(sramCtx); - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("sram->read_buff[2] = J_N = %x\n", sramCtx->readBuff[2]); PRINTF("sram->read_buff[2] = J_N = %x\n", &sramCtx->readBuff[2]); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); PRINTF("Na_SetSoundOutputMode = %d\n", gSaveContext.audioSetting); - PRINTF(VT_RST); + PRINTF_RST(); func_800F6700(gSaveContext.audioSetting); PRINTF("終了\n"); return; diff --git a/src/overlays/gamestates/ovl_select/z_select.c b/src/overlays/gamestates/ovl_select/z_select.c index 9506d81338..6a9b1e1b3d 100644 --- a/src/overlays/gamestates/ovl_select/z_select.c +++ b/src/overlays/gamestates/ovl_select/z_select.c @@ -20,9 +20,9 @@ void MapSelect_LoadTitle(MapSelectState* this) { } void MapSelect_LoadGame(MapSelectState* this, s32 entranceIndex) { - PRINTF(VT_FGCOL(BLUE)); + PRINTF_COLOR_BLUE(); PRINTF("\n\n\nFILE_NO=%x\n\n\n", gSaveContext.fileNum); - PRINTF(VT_RST); + PRINTF_RST(); if (gSaveContext.fileNum == 0xFF) { Sram_InitDebugSave(); // Set the fill target to be the saved magic amount diff --git a/src/overlays/gamestates/ovl_title/z_title.c b/src/overlays/gamestates/ovl_title/z_title.c index 992cb945bd..8613d7bd37 100644 --- a/src/overlays/gamestates/ovl_title/z_title.c +++ b/src/overlays/gamestates/ovl_title/z_title.c @@ -40,7 +40,7 @@ void ConsoleLogo_PrintBuildInfo(Gfx** gfxP) { #endif void ConsoleLogo_Calc(ConsoleLogoState* this) { -#if PLATFORM_N64 +#if !PLATFORM_GC if ((this->coverAlpha == 0) && (this->visibleDuration != 0)) { this->unk_1D4--; this->visibleDuration--; @@ -74,8 +74,8 @@ void ConsoleLogo_SetupView(ConsoleLogoState* this, f32 x, f32 y, f32 z) { eye.y = y; eye.z = z; up.x = up.z = 0.0f; - lookAt.x = lookAt.y = lookAt.z = 0.0f; up.y = 1.0f; + lookAt.x = lookAt.y = lookAt.z = 0.0f; View_SetPerspective(view, 30.0f, 10.0f, 12800.0f); View_LookAt(view, &eye, &lookAt, &up); @@ -92,7 +92,8 @@ void ConsoleLogo_Draw(ConsoleLogoState* this) { Vec3f v3; Vec3f v1; Vec3f v2; - s32 pad2[2]; + s32 pad2; + s32 pad3; OPEN_DISPS(this->state.gfxCtx, "../z_title.c", 395); @@ -165,6 +166,10 @@ void ConsoleLogo_Main(GameState* thisx) { } #endif +#if PLATFORM_IQUE + this->exit = true; +#endif + if (this->exit) { gSaveContext.seqId = (u8)NA_BGM_DISABLED; gSaveContext.natureAmbienceId = 0xFF; @@ -221,7 +226,7 @@ void ConsoleLogo_Init(GameState* thisx) { this->state.destroy = ConsoleLogo_Destroy; this->exit = false; -#if OOT_VERSION < GC_US +#if OOT_VERSION < GC_US || PLATFORM_IQUE if (!(gPadMgr.validCtrlrsMask & 1)) { gSaveContext.fileNum = 0xFEDC; } else { diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c index 651f4328b8..232e7ae3fe 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_map.c @@ -150,7 +150,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorSpecialPos = 0; pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_MAP] = pauseCtx->dungeonMapSlot; pauseCtx->cursorX[PAUSE_MAP] = 0; - j = 72 + (pauseCtx->cursorSlot[PAUSE_MAP] * 4); + j = (pauseCtx->cursorSlot[PAUSE_MAP] + 18) * 4; KaleidoScope_SetCursorPos(pauseCtx, j, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -181,7 +181,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { } PRINTF("kscope->cursor_point====%d\n", pauseCtx->cursorPoint[PAUSE_MAP]); - j = 72 + (pauseCtx->cursorSlot[PAUSE_MAP] * 4); + j = (pauseCtx->cursorSlot[PAUSE_MAP] + 18) * 4; KaleidoScope_SetCursorPos(pauseCtx, j, pauseCtx->mapPageVtx); Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); @@ -203,7 +203,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_MAP]; - j = 72 + (pauseCtx->cursorSlot[PAUSE_MAP] * 4); + j = (pauseCtx->cursorSlot[PAUSE_MAP] + 18) * 4; KaleidoScope_SetCursorPos(pauseCtx, j, pauseCtx->mapPageVtx); if (pauseCtx->cursorX[PAUSE_MAP] == 0) { @@ -285,7 +285,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) { gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha); pauseCtx->mapPageVtx[116].v.ob[1] = pauseCtx->mapPageVtx[117].v.ob[1] = - pauseCtx->pagesYOrigin1 - (VREG(30) * 14) + 49; + pauseCtx->pagesYOrigin1 + 50 - (VREG(30) * 14) - 1; pauseCtx->mapPageVtx[118].v.ob[1] = pauseCtx->mapPageVtx[119].v.ob[1] = pauseCtx->mapPageVtx[116].v.ob[1] - 16; gDPLoadTextureBlock(POLY_OPA_DISP++, gDungeonMapLinkHeadTex, G_IM_FMT_RGBA, G_IM_SIZ_16b, 16, 16, 0, @@ -550,9 +550,8 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { if (pauseCtx->cursorSpecialPos == 0) { if (pauseCtx->stickAdjX > 30) { - D_8082A6D4 = 0; - do { + D_8082A6D4 = 0; pauseCtx->cursorPoint[PAUSE_WORLD_MAP]++; if (pauseCtx->cursorPoint[PAUSE_WORLD_MAP] >= WORLD_MAP_POINT_MAX) { pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = WORLD_MAP_POINT_MAX - 1; @@ -562,9 +561,8 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { } while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == WORLD_MAP_POINT_STATE_HIDE); } else if (pauseCtx->stickAdjX < -30) { - D_8082A6D4 = 0; - do { + D_8082A6D4 = 0; pauseCtx->cursorPoint[PAUSE_WORLD_MAP]--; if (pauseCtx->cursorPoint[PAUSE_WORLD_MAP] < 0) { pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 0; @@ -585,8 +583,8 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->cursorItem[PAUSE_MAP] = gSaveContext.worldMapArea + 0x18; if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) { if (pauseCtx->stickAdjX > 30) { - pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 0; pauseCtx->cursorSpecialPos = 0; + pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = 0; while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == WORLD_MAP_POINT_STATE_HIDE) { @@ -603,8 +601,8 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) { } } else { if (pauseCtx->stickAdjX < -30) { - pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = WORLD_MAP_POINT_MAX - 1; pauseCtx->cursorSpecialPos = 0; + pauseCtx->cursorPoint[PAUSE_WORLD_MAP] = WORLD_MAP_POINT_MAX - 1; while (pauseCtx->worldMapPoints[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]] == WORLD_MAP_POINT_STATE_HIDE) { diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c index bc45e22551..d22caf7fe2 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.c @@ -16,7 +16,7 @@ #include "terminal.h" #include "versions.h" -#pragma increment_block_number "ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" +#pragma increment_block_number "gc-eu:128 gc-eu-mq:128 ntsc-1.0:128 ntsc-1.1:128 ntsc-1.2:128 pal-1.0:128 pal-1.1:128" #if !PLATFORM_GC #define KALEIDO_PROMPT_CURSOR_R 100 @@ -721,7 +721,7 @@ static u16 sPageSwitchNextPageIndex[] = { PAUSE_QUEST, // PAUSE_EQUIP left }; -u8 gSlotAgeReqs[] = { +char gSlotAgeReqs[] = { AGE_REQ_CHILD, // SLOT_DEKU_STICK AGE_REQ_NONE, // SLOT_DEKU_NUT AGE_REQ_NONE, // SLOT_BOMB @@ -748,7 +748,7 @@ u8 gSlotAgeReqs[] = { AGE_REQ_CHILD, // SLOT_TRADE_CHILD }; -u8 gEquipAgeReqs[4][4] = { +char gEquipAgeReqs[4][4] = { { AGE_REQ_ADULT, // 0 UPG_QUIVER AGE_REQ_CHILD, // EQUIP_TYPE_SWORD EQUIP_VALUE_SWORD_KOKIRI @@ -775,7 +775,7 @@ u8 gEquipAgeReqs[4][4] = { }, }; -u8 gItemAgeReqs[] = { +char gItemAgeReqs[] = { AGE_REQ_CHILD, // ITEM_DEKU_STICK AGE_REQ_NONE, // ITEM_DEKU_NUT AGE_REQ_NONE, // ITEM_BOMB @@ -954,7 +954,7 @@ Gfx* KaleidoScope_QuadTextureIA8(Gfx* gfx, void* texture, s16 width, s16 height, return gfx; } -void KaleidoScope_OverridePalIndexCI4(u8* texture, s32 size, s32 targetIndex, s32 newIndex) { +void KaleidoScope_OverridePalIndexCI4(char* texture, s32 size, s32 targetIndex, s32 newIndex) { s32 i; s32 index1; s32 index2; @@ -1015,7 +1015,7 @@ void KaleidoScope_SetDefaultCursor(PlayState* play) { s = pauseCtx->cursorSlot[PAUSE_ITEM]; if (gSaveContext.save.info.inventory.items[s] == ITEM_NONE) { i = s + 1; - while (true) { + for (;;) { if (gSaveContext.save.info.inventory.items[i] != ITEM_NONE) { break; } @@ -1268,11 +1268,12 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { } else if (pauseCtx->stickAdjX > 30) { if (sStickXRepeatState == 1) { sStickXRepeatTimer--; - if (sStickXRepeatTimer < 0) { + // NOLINTBEGIN + if (sStickXRepeatTimer < 0) sStickXRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY; - } else { + else pauseCtx->stickAdjX = 0; - } + // NOLINTEND } else { sStickXRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY_FIRST; sStickXRepeatState = 1; @@ -1296,11 +1297,12 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { } else if (pauseCtx->stickAdjY > 30) { if (sStickYRepeatState == 1) { sStickYRepeatTimer--; - if (sStickYRepeatTimer < 0) { + // NOLINTBEGIN + if (sStickYRepeatTimer < 0) sStickYRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY; - } else { + else pauseCtx->stickAdjY = 0; - } + // NOLINTEND } else { sStickYRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY_FIRST; sStickYRepeatState = 1; @@ -1573,7 +1575,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) { } else if (((pauseCtx->state == PAUSE_STATE_SAVE_PROMPT) && (pauseCtx->savePromptState >= PAUSE_SAVE_PROMPT_STATE_SAVED)) || pauseCtx->state == PAUSE_STATE_GAME_OVER_SAVED) { -#if PLATFORM_N64 +#if !PLATFORM_GC POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sSaveConfirmationTexs[gSaveContext.language], 152, 16, PROMPT_QUAD_MESSAGE * 4); #endif @@ -1823,7 +1825,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { gSPDisplayList(POLY_OPA_DISP++, gRButtonIconDL); if (pauseCtx->cursorSpecialPos != 0) { - j = (pauseCtx->cursorSpecialPos * 4) - 32; + j = (pauseCtx->cursorSpecialPos - 8) * 4; pauseCtx->cursorVtx[0].v.ob[0] = pauseCtx->infoPanelVtx[j].v.ob[0]; pauseCtx->cursorVtx[0].v.ob[1] = pauseCtx->infoPanelVtx[j].v.ob[1]; KaleidoScope_DrawCursor(play, pauseCtx->pageIndex); @@ -1877,10 +1879,10 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { #if DEBUG_FEATURES if (pauseCtx->pageIndex == PAUSE_MAP) { if (YREG(7) != 0) { - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("キンスタ数(%d) Get_KIN_STA=%x (%x) (%x)\n", YREG(6), GET_GS_FLAGS(YREG(6)), gAreaGsFlags[YREG(6)], gSaveContext.save.info.gsFlags[YREG(6) >> 2]); - PRINTF(VT_RST); + PRINTF_RST(); YREG(7) = 0; SET_GS_FLAGS(D_8082AE30[pauseCtx->cursorPoint[PAUSE_WORLD_MAP]], @@ -2002,8 +2004,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) { D_8082ADD8[gSaveContext.language], 16, 4); } else if ((pauseCtx->pageIndex == PAUSE_MAP) && sInDungeonScene) { - } else if ((pauseCtx->pageIndex == PAUSE_QUEST) && (pauseCtx->cursorSlot[PAUSE_QUEST] >= 6) && - (pauseCtx->cursorSlot[PAUSE_QUEST] <= 0x11)) { + } else if ((pauseCtx->pageIndex == PAUSE_QUEST) && + ((pauseCtx->cursorSlot[PAUSE_QUEST] >= 6) && (pauseCtx->cursorSlot[PAUSE_QUEST] <= 0x11))) { if (pauseCtx->namedItem != PAUSE_ITEM_NONE) { pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = R_KALEIDO_UNK3(gSaveContext.language); @@ -2121,8 +2123,8 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) { pauseCtx->nameDisplayTimer = 0; } } else if (pauseCtx->nameColorSet == 0) { - if (((pauseCtx->pageIndex == PAUSE_QUEST) && (pauseCtx->cursorSlot[PAUSE_QUEST] >= 6) && - (pauseCtx->cursorSlot[PAUSE_QUEST] <= 0x11) && + if (((pauseCtx->pageIndex == PAUSE_QUEST) && + ((pauseCtx->cursorSlot[PAUSE_QUEST] >= 6) && (pauseCtx->cursorSlot[PAUSE_QUEST] <= 0x11)) && (pauseCtx->mainState == PAUSE_MAIN_STATE_IDLE_CURSOR_ON_SONG)) || (pauseCtx->pageIndex == PAUSE_ITEM) || ((pauseCtx->pageIndex == PAUSE_EQUIP) && (pauseCtx->cursorX[PAUSE_EQUIP] != 0))) { @@ -2143,16 +2145,16 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) { void KaleidoScope_UpdatePageSwitch(PlayState* play, Input* input) { PauseContext* pauseCtx = &play->pauseCtx; s32 frameAdvanceFreeze = false; - s32 nextPageMode; if (R_PAUSE_PAGE_SWITCH_FRAME_ADVANCE_ON && !CHECK_BTN_ALL(input->press.button, BTN_L)) { frameAdvanceFreeze = true; } if (!frameAdvanceFreeze) { - nextPageMode = pauseCtx->nextPageMode; - pauseCtx->eye.x += sPageSwitchEyeDx[nextPageMode]; - pauseCtx->eye.z += sPageSwitchEyeDz[nextPageMode]; + pauseCtx->eye.x += sPageSwitchEyeDx[pauseCtx->nextPageMode]; + pauseCtx->eye.z += sPageSwitchEyeDz[pauseCtx->nextPageMode]; + + if (pauseCtx->nextPageMode) {} if (pauseCtx->pageSwitchTimer < ((4 * PAGE_SWITCH_NSTEPS) / 2)) { WREG(16) -= WREG(25) / WREG(6); @@ -2398,7 +2400,6 @@ static s16 sVtxMapWorldAreaX[] = { 20, // WORLD_MAP_AREA_GORON_CITY -34, // WORLD_MAP_AREA_LON_LON_RANCH -300, // WORLD_MAP_AREA_QUESTION_MARK - 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaWidth[] = { @@ -2423,7 +2424,6 @@ static s16 sVtxMapWorldAreaWidth[] = { 16, // WORLD_MAP_AREA_GORON_CITY 20, // WORLD_MAP_AREA_LON_LON_RANCH -1, // WORLD_MAP_AREA_QUESTION_MARK - 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaY[] = { @@ -2448,7 +2448,6 @@ static s16 sVtxMapWorldAreaY[] = { 37, // WORLD_MAP_AREA_GORON_CITY -13, // WORLD_MAP_AREA_LON_LON_RANCH -300, // WORLD_MAP_AREA_QUESTION_MARK - 0, // WORLD_MAP_AREA_GANONS_CASTLE }; static s16 sVtxMapWorldAreaHeight[] = { @@ -2473,7 +2472,6 @@ static s16 sVtxMapWorldAreaHeight[] = { 13, // WORLD_MAP_AREA_GORON_CITY 12, // WORLD_MAP_AREA_LON_LON_RANCH 1, // WORLD_MAP_AREA_QUESTION_MARK - 0, // WORLD_MAP_AREA_GANONS_CASTLE }; s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 numQuads) { @@ -2481,16 +2479,16 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num static s16 sTradeQuestMarkerBobTimer = 1; static s16 sTradeQuestMarkerBobState = 0; PauseContext* pauseCtx = &play->pauseCtx; + s16 i; + s16 j; + s16 bufI; + s16 bufIAfterPageSections; + s16 pageBgQuadX; + s16 pageBgQuadY; s16* quadsX; s16* quadsWidth; s16* quadsY; s16* quadsHeight; - s16 bufIAfterPageSections; - s16 pageBgQuadX; - s16 pageBgQuadY; - s16 i; - s16 j; - s16 bufI; // Vertices for KaleidoScope_DrawPageSections @@ -2502,7 +2500,7 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num // For each row for (pageBgQuadY = (PAGE_BG_ROWS * PAGE_BG_QUAD_HEIGHT) / 2, i = 0; i < PAGE_BG_ROWS; - i++, bufI += 4, pageBgQuadY -= PAGE_BG_QUAD_HEIGHT) { + bufI += 4, i++, pageBgQuadY -= PAGE_BG_QUAD_HEIGHT) { vtx[bufI + 0].v.ob[0] = vtx[bufI + 2].v.ob[0] = pageBgQuadX; vtx[bufI + 1].v.ob[0] = vtx[bufI + 3].v.ob[0] = vtx[bufI + 0].v.ob[0] + PAGE_BG_QUAD_WIDTH; @@ -2513,10 +2511,7 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num vtx[bufI + 0].v.ob[2] = vtx[bufI + 1].v.ob[2] = vtx[bufI + 2].v.ob[2] = vtx[bufI + 3].v.ob[2] = 0; - vtx[bufI + 0].v.flag = 0; - vtx[bufI + 1].v.flag = 0; - vtx[bufI + 2].v.flag = 0; - vtx[bufI + 3].v.flag = 0; + vtx[bufI + 0].v.flag = vtx[bufI + 1].v.flag = vtx[bufI + 2].v.flag = vtx[bufI + 3].v.flag = 0; vtx[bufI + 0].v.tc[0] = vtx[bufI + 0].v.tc[1] = vtx[bufI + 1].v.tc[1] = vtx[bufI + 2].v.tc[0] = 0; @@ -2552,7 +2547,7 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num quadsHeight = sVtxPageQuadsHeight[vtxPage]; for (j = 0; j < numQuads; j++, bufI += 4) { - vtx[bufI + 2].v.ob[0] = vtx[bufI + 0].v.ob[0] = quadsX[j]; + vtx[bufI + 0].v.ob[0] = vtx[bufI + 2].v.ob[0] = quadsX[j]; vtx[bufI + 1].v.ob[0] = vtx[bufI + 3].v.ob[0] = vtx[bufI + 0].v.ob[0] + quadsWidth[j]; @@ -2587,6 +2582,11 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num bufI -= ((VTX_PAGE_MAP_WORLD_QUADS - WORLD_MAP_QUAD_TRADE_QUEST_MARKER) * 4); + //! @bug If worldMapArea is WORLD_MAP_AREA_GANONS_CASTLE or WORLD_MAP_AREA_MAX, this will read past the end + //! of the sVtxMapWorldArea arrays and generate garbage vertex data. This is harmless though: + //! if pauseCtx->tradeQuestMarker != TRADE_QUEST_MARKER_NONE then the vertices are immediately overwritten, + //! and if pauseCtx->tradeQuestMarker == TRADE_QUEST_MARKER_NONE then KaleidoScope_DrawWorldMap will not + //! draw anything with these vertices. j = gSaveContext.worldMapArea; vtx[bufI + 0].v.ob[0] = vtx[bufI + 2].v.ob[0] = sVtxMapWorldAreaX[j]; @@ -2610,9 +2610,9 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num sTradeQuestMarkerBobTimer = 8; break; case 2: + sTradeQuestMarkerBobState = 0; sTradeQuestMarkerBobY = 0; sTradeQuestMarkerBobTimer = 6; - sTradeQuestMarkerBobState = 0; break; } } else { @@ -2626,12 +2626,12 @@ s16 KaleidoScope_SetPageVertices(PlayState* play, Vtx* vtx, s16 vtxPage, s16 num vtx[i + 1].v.ob[0] = vtx[i + 3].v.ob[0] = vtx[i + 0].v.ob[0] + 8; - vtx[i + 0].v.ob[1] = vtx[i + 1].v.ob[1] = vtx[j + 0].v.ob[1] - sTradeQuestMarkerBobY + 10; - - vtx[i + 0].v.ob[2] = vtx[i + 1].v.ob[2] = vtx[i + 2].v.ob[2] = vtx[i + 3].v.ob[2] = 0; + vtx[i + 0].v.ob[1] = vtx[i + 1].v.ob[1] = vtx[j + 0].v.ob[1] + 10 - sTradeQuestMarkerBobY; vtx[i + 2].v.ob[1] = vtx[i + 3].v.ob[1] = vtx[i + 0].v.ob[1] - 8; + vtx[i + 0].v.ob[2] = vtx[i + 1].v.ob[2] = vtx[i + 2].v.ob[2] = vtx[i + 3].v.ob[2] = 0; + vtx[i + 0].v.flag = vtx[i + 1].v.flag = vtx[i + 2].v.flag = vtx[i + 3].v.flag = 0; vtx[bufI].v.tc[0] = vtx[bufI].v.tc[1] = vtx[i + 1].v.tc[1] = vtx[i + 2].v.tc[0] = 0; @@ -2970,7 +2970,7 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { // ITEM_QUAD_GRID_SELECTED_C_LEFT, ITEM_QUAD_GRID_SELECTED_C_DOWN, ITEM_QUAD_GRID_SELECTED_C_RIGHT - for (j = 1; j < 4; j++, i += 4) { + for (j = 1; j < 4; i += 4, j++) { if (gSaveContext.save.info.equips.cButtonSlots[j - 1] != ITEM_NONE) { k = gSaveContext.save.info.equips.cButtonSlots[j - 1] * 4; @@ -3118,7 +3118,7 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { } } - for (j = 0; j < 4; j++, k += 4) { + for (j = 0; j < 4; k += 4, j++) { if (CUR_EQUIP_VALUE(j) != 0) { i = (CUR_EQUIP_VALUE(j) + D_8082B134[j] - 1) * 4; @@ -3158,7 +3158,7 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { x = 112; y = 50; - while (true) { + for (;;) { pauseCtx->equipVtx[k + 0].v.ob[0] = pauseCtx->equipVtx[k + 2].v.ob[0] = -64; pauseCtx->equipVtx[k + 1].v.ob[0] = pauseCtx->equipVtx[k + 3].v.ob[0] = pauseCtx->equipVtx[k + 0].v.ob[0] + 64; @@ -3190,7 +3190,6 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->equipVtx[k + 3].v.cn[3] = pauseCtx->alpha; x -= 32; - y -= 32; if (x < 0) { pauseCtx->equipVtx[k + 2].v.ob[1] = pauseCtx->equipVtx[k + 3].v.ob[1] = pauseCtx->equipVtx[k + 0].v.ob[1] - 0x10; @@ -3199,6 +3198,7 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { break; } + y -= 32; k += 4; } @@ -3239,13 +3239,13 @@ void KaleidoScope_SetVertices(PlayState* play, GraphicsContext* gfxCtx) { pauseCtx->questVtx[k + 0].v.ob[0] = pauseCtx->questVtx[k + 2].v.ob[0] = sQuestQuadsX[j] + 2; pauseCtx->questVtx[k + 1].v.ob[0] = pauseCtx->questVtx[k + 3].v.ob[0] = - pauseCtx->questVtx[k + 0].v.ob[0] + quadWidth - 4; + pauseCtx->questVtx[k + 0].v.ob[0] + (quadWidth - 4); pauseCtx->questVtx[k + 0].v.ob[1] = pauseCtx->questVtx[k + 1].v.ob[1] = sQuestQuadsY[j] + pauseCtx->pagesYOrigin1 - 2; pauseCtx->questVtx[k + 2].v.ob[1] = pauseCtx->questVtx[k + 3].v.ob[1] = - pauseCtx->questVtx[k + 0].v.ob[1] - sQuestQuadsSize[j] + 4; + pauseCtx->questVtx[k + 0].v.ob[1] - (sQuestQuadsSize[j] - 4); } pauseCtx->questVtx[k + 0].v.ob[2] = pauseCtx->questVtx[k + 1].v.ob[2] = pauseCtx->questVtx[k + 2].v.ob[2] = @@ -3417,16 +3417,16 @@ void KaleidoScope_UpdateOpening(PlayState* play) { } else if (pauseCtx->pageSwitchTimer == (4 * PAGE_SWITCH_NSTEPS * 1)) { // `ZREG(47)` is always 1 so this normally never happens pauseCtx->pageIndex = sPageSwitchNextPageIndex[pauseCtx->nextPageMode]; - pauseCtx->nextPageMode = (u16)(pauseCtx->pageIndex * 2) + 1; + pauseCtx->nextPageMode = (u16)(pauseCtx->pageIndex << 1) + 1; } } void KaleidoScope_UpdateCursorVtx(PlayState* play) { PauseContext* pauseCtx = &play->pauseCtx; - s32 tlOffsetX; - s32 tlOffsetY; - s32 rightOffsetX; - s32 bottomOffsetY; + s16 tlOffsetX; + s16 tlOffsetY; + s16 bottomOffsetY; + s16 rightOffsetX; if (pauseCtx->cursorSpecialPos == 0) { tlOffsetX = -1; @@ -3530,8 +3530,8 @@ void KaleidoScope_LoadDungeonMap(PlayState* play) { } void KaleidoScope_UpdateDungeonMap(PlayState* play) { - PauseContext* pauseCtx = &play->pauseCtx; InterfaceContext* interfaceCtx = &play->interfaceCtx; + PauseContext* pauseCtx = &play->pauseCtx; PRINTF("MAP DMA = %d\n", play->interfaceCtx.mapPaletteIndex); @@ -3548,16 +3548,16 @@ void KaleidoScope_UpdateDungeonMap(PlayState* play) { Map_SetFloorPalettesData(play, pauseCtx->dungeonMapSlot - 3); if ((play->sceneId >= SCENE_DEKU_TREE) && (play->sceneId <= SCENE_TREASURE_BOX_SHOP)) { - if ((VREG(30) + 3) == pauseCtx->cursorPoint[PAUSE_MAP]) { - KaleidoScope_OverridePalIndexCI4(interfaceCtx->mapSegment, MAP_48x85_TEX_SIZE, + if (VREG(30) == pauseCtx->cursorPoint[PAUSE_MAP] - 3) { + KaleidoScope_OverridePalIndexCI4((char*)interfaceCtx->mapSegment, MAP_48x85_TEX_SIZE, interfaceCtx->mapPaletteIndex, 14); } } if ((play->sceneId >= SCENE_DEKU_TREE) && (play->sceneId <= SCENE_TREASURE_BOX_SHOP)) { - if ((VREG(30) + 3) == pauseCtx->cursorPoint[PAUSE_MAP]) { - KaleidoScope_OverridePalIndexCI4(interfaceCtx->mapSegment + ALIGN16(MAP_48x85_TEX_SIZE), MAP_48x85_TEX_SIZE, - interfaceCtx->mapPaletteIndex, 14); + if (VREG(30) == pauseCtx->cursorPoint[PAUSE_MAP] - 3) { + KaleidoScope_OverridePalIndexCI4((char*)interfaceCtx->mapSegment + ALIGN16(MAP_48x85_TEX_SIZE), + MAP_48x85_TEX_SIZE, interfaceCtx->mapPaletteIndex, 14); } } } @@ -3627,9 +3627,9 @@ void KaleidoScope_Update(PlayState* play) { size1 = Player_InitPauseDrawData(play, pauseCtx->playerSegment, &pauseCtx->playerSkelAnime); PRINTF("プレイヤー size1=%x\n", size1); + size0 = (uintptr_t)_icon_item_staticSegmentRomEnd - (uintptr_t)_icon_item_staticSegmentRomStart; pauseCtx->iconItemSegment = (void*)ALIGN16((uintptr_t)pauseCtx->playerSegment + size1); - size0 = (uintptr_t)_icon_item_staticSegmentRomEnd - (uintptr_t)_icon_item_staticSegmentRomStart; PRINTF("icon_item size0=%x\n", size0); DMA_REQUEST_SYNC(pauseCtx->iconItemSegment, (uintptr_t)_icon_item_staticSegmentRomStart, size0, "../z_kaleido_scope_PAL.c", 3662); @@ -3698,10 +3698,12 @@ void KaleidoScope_Update(PlayState* play) { #if OOT_NTSC if (gSaveContext.language == LANGUAGE_JPN) { size = (uintptr_t)_icon_item_jpn_staticSegmentRomEnd - (uintptr_t)_icon_item_jpn_staticSegmentRomStart; + PRINTF("icon_item_jpn dungeon-size=%x\n", size); DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_jpn_staticSegmentRomStart, size, "../z_kaleido_scope_PAL.c", UNK_LINE); } else { size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart; + PRINTF("icon_item_dungeon dungeon-size=%x\n", size); DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_nes_staticSegmentRomStart, size, "../z_kaleido_scope_PAL.c", UNK_LINE); } @@ -3734,37 +3736,42 @@ void KaleidoScope_Update(PlayState* play) { if (((void)0, gSaveContext.worldMapArea) < WORLD_MAP_AREA_MAX) { #if OOT_NTSC if (gSaveContext.language == LANGUAGE_JPN) { - DMA_REQUEST_SYNC(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), - (uintptr_t)_map_name_staticSegmentRomStart + - (((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) + - 24 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_JPN * MAP_NAME_TEX2_SIZE, - MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", UNK_LINE); + DMA_REQUEST_SYNC( + pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), + (uintptr_t)_map_name_staticSegmentRomStart + + ((((void)0, gSaveContext.worldMapArea) + 22 * LANGUAGE_JPN) * MAP_NAME_TEX2_SIZE) + + 24 * MAP_NAME_TEX1_SIZE, + MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", UNK_LINE); } else { - DMA_REQUEST_SYNC(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), - (uintptr_t)_map_name_staticSegmentRomStart + - (((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) + - 24 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_ENG * MAP_NAME_TEX2_SIZE, - MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", UNK_LINE); + DMA_REQUEST_SYNC( + pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), + (uintptr_t)_map_name_staticSegmentRomStart + + ((((void)0, gSaveContext.worldMapArea) + 22 * LANGUAGE_ENG) * MAP_NAME_TEX2_SIZE) + + 24 * MAP_NAME_TEX1_SIZE, + MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", UNK_LINE); } #else if (gSaveContext.language == LANGUAGE_ENG) { - DMA_REQUEST_SYNC(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), - (uintptr_t)_map_name_staticSegmentRomStart + - (((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) + - 36 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_ENG * MAP_NAME_TEX2_SIZE, - MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3776); + DMA_REQUEST_SYNC( + pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), + (uintptr_t)_map_name_staticSegmentRomStart + + ((((void)0, gSaveContext.worldMapArea) + 22 * LANGUAGE_ENG) * MAP_NAME_TEX2_SIZE) + + 36 * MAP_NAME_TEX1_SIZE, + MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3776); } else if (gSaveContext.language == LANGUAGE_GER) { - DMA_REQUEST_SYNC(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), - (uintptr_t)_map_name_staticSegmentRomStart + - (((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) + - 36 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_GER * MAP_NAME_TEX2_SIZE, - MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3780); + DMA_REQUEST_SYNC( + pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), + (uintptr_t)_map_name_staticSegmentRomStart + + ((((void)0, gSaveContext.worldMapArea) + 22 * LANGUAGE_GER) * MAP_NAME_TEX2_SIZE) + + 36 * MAP_NAME_TEX1_SIZE, + MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3780); } else { - DMA_REQUEST_SYNC(pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), - (uintptr_t)_map_name_staticSegmentRomStart + - (((void)0, gSaveContext.worldMapArea) * MAP_NAME_TEX2_SIZE) + - 36 * MAP_NAME_TEX1_SIZE + 22 * LANGUAGE_FRA * MAP_NAME_TEX2_SIZE, - MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3784); + DMA_REQUEST_SYNC( + pauseCtx->nameSegment + MAX(MAP_NAME_TEX1_SIZE, ITEM_NAME_TEX_SIZE), + (uintptr_t)_map_name_staticSegmentRomStart + + ((((void)0, gSaveContext.worldMapArea) + 22 * LANGUAGE_FRA) * MAP_NAME_TEX2_SIZE) + + 36 * MAP_NAME_TEX1_SIZE, + MAP_NAME_TEX2_SIZE, "../z_kaleido_scope_PAL.c", 3784); } #endif } @@ -3868,7 +3875,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->worldMapPoints[WORLD_MAP_POINT_DEATH_MOUNTAIN] = WORLD_MAP_POINT_STATE_SHOW; } - if (gBitFlags[WORLD_MAP_AREA_KAKARIKO_VILLAGE] & gSaveContext.save.info.worldMapAreaData) { + if (gSaveContext.save.info.worldMapAreaData & gBitFlags[WORLD_MAP_AREA_KAKARIKO_VILLAGE]) { pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW; } if (CHECK_QUEST_ITEM(QUEST_SONG_LULLABY)) { @@ -3896,7 +3903,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->worldMapPoints[WORLD_MAP_POINT_KAKARIKO_VILLAGE] = WORLD_MAP_POINT_STATE_SHOW; } - if (gBitFlags[WORLD_MAP_AREA_LOST_WOODS] & gSaveContext.save.info.worldMapAreaData) { + if (gSaveContext.save.info.worldMapAreaData & gBitFlags[WORLD_MAP_AREA_LOST_WOODS]) { pauseCtx->worldMapPoints[WORLD_MAP_POINT_LOST_WOODS] = WORLD_MAP_POINT_STATE_SHOW; } if (GET_EVENTCHKINF(EVENTCHKINF_0F)) { @@ -4016,7 +4023,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->state = PAUSE_STATE_CLOSING; R_PAUSE_PAGES_Y_ORIGIN_2 = PAUSE_PAGES_Y_ORIGIN_2_LOWER; func_800F64E0(0); -#if !PLATFORM_N64 && OOT_NTSC +#if PLATFORM_GC && OOT_NTSC AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); #endif } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { @@ -4169,7 +4176,7 @@ void KaleidoScope_Update(PlayState* play) { R_PAUSE_PAGES_Y_ORIGIN_2 = PAUSE_PAGES_Y_ORIGIN_2_LOWER; YREG(8) = pauseCtx->promptPitch; func_800F64E0(0); -#if !PLATFORM_N64 && OOT_NTSC +#if PLATFORM_GC && OOT_NTSC AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); #endif } else { @@ -4180,7 +4187,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.save.info.playerData.savedSceneId = play->sceneId; Sram_WriteSave(&play->sramCtx); pauseCtx->savePromptState = PAUSE_SAVE_PROMPT_STATE_SAVED; -#if PLATFORM_N64 +#if !PLATFORM_GC sDelayTimer = 90; #else sDelayTimer = 3; @@ -4197,7 +4204,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[3] = BTN_ENABLED; gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(HUD_VISIBILITY_ALL); -#if !PLATFORM_N64 && OOT_NTSC +#if PLATFORM_GC && OOT_NTSC AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); #endif } @@ -4295,10 +4302,12 @@ void KaleidoScope_Update(PlayState* play) { #if OOT_NTSC if (gSaveContext.language == LANGUAGE_JPN) { size = (uintptr_t)_icon_item_jpn_staticSegmentRomEnd - (uintptr_t)_icon_item_jpn_staticSegmentRomStart; + PRINTF("icon_item_jpn dungeon-size=%x\n", size); DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_jpn_staticSegmentRomStart, size, "../z_kaleido_scope_PAL.c", UNK_LINE); } else { size = (uintptr_t)_icon_item_nes_staticSegmentRomEnd - (uintptr_t)_icon_item_nes_staticSegmentRomStart; + PRINTF("icon_item_dungeon dungeon-size=%x\n", size); DMA_REQUEST_SYNC(pauseCtx->iconItemLangSegment, (uintptr_t)_icon_item_nes_staticSegmentRomStart, size, "../z_kaleido_scope_PAL.c", UNK_LINE); } @@ -4389,9 +4398,9 @@ void KaleidoScope_Update(PlayState* play) { D_8082AB9C = 255; D_8082ABA0 = 130; D_8082ABA4 = 0; + D_8082B260 = 40; pauseCtx->state++; // PAUSE_STATE_GAME_OVER_WINDOW_DELAY - D_8082B260 = 40; } break; @@ -4443,7 +4452,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.save.info.playerData.savedSceneId = play->sceneId; Sram_WriteSave(&play->sramCtx); pauseCtx->state = PAUSE_STATE_GAME_OVER_SAVED; -#if PLATFORM_N64 +#if !PLATFORM_GC sDelayTimer = 90; #else sDelayTimer = 3; @@ -4554,7 +4563,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.healthAccumulator = 0; gSaveContext.magicState = MAGIC_STATE_IDLE; gSaveContext.prevMagicState = MAGIC_STATE_IDLE; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("MAGIC_NOW=%d ", gSaveContext.save.info.playerData.magic); PRINTF("Z_MAGIC_NOW_NOW=%d → ", gSaveContext.magicFillTarget); gSaveContext.magicCapacity = 0; @@ -4565,7 +4574,7 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.save.info.playerData.magicLevel = gSaveContext.save.info.playerData.magic = 0; PRINTF("MAGIC_NOW=%d ", gSaveContext.save.info.playerData.magic); PRINTF("Z_MAGIC_NOW_NOW=%d\n", gSaveContext.magicFillTarget); - PRINTF(VT_RST); + PRINTF_RST(); } else { play->state.running = false; SET_NEXT_GAMESTATE(&play->state, TitleSetup_Init, TitleSetupState); @@ -4595,7 +4604,7 @@ void KaleidoScope_Update(PlayState* play) { pauseCtx->equipPagePitch = 160.0f; pauseCtx->itemPagePitch = 160.0f; pauseCtx->namedItem = PAUSE_ITEM_NONE; - play->interfaceCtx.startAlpha = 0; + interfaceCtx->startAlpha = 0; } break; @@ -4626,7 +4635,7 @@ void KaleidoScope_Update(PlayState* play) { case SCENE_WATER_TEMPLE_BOSS: case SCENE_SPIRIT_TEMPLE_BOSS: case SCENE_SHADOW_TEMPLE_BOSS: - Map_InitData(play, play->interfaceCtx.mapRoomNum); + Map_InitData(play, interfaceCtx->mapRoomNum); break; } @@ -4636,13 +4645,13 @@ void KaleidoScope_Update(PlayState* play) { gSaveContext.buttonStatus[3] = D_808321A8[3]; gSaveContext.buttonStatus[4] = D_808321A8[4]; interfaceCtx->unk_1FA = interfaceCtx->unk_1FC = 0; - PRINTF(VT_FGCOL(YELLOW)); + PRINTF_COLOR_YELLOW(); PRINTF("i=%d LAST_TIME_TYPE=%d\n", i, gSaveContext.prevHudVisibilityMode); gSaveContext.hudVisibilityMode = HUD_VISIBILITY_NO_CHANGE; Interface_ChangeHudVisibilityMode(gSaveContext.prevHudVisibilityMode); player->talkActor = NULL; Player_SetEquipmentData(play, player); - PRINTF(VT_RST); + PRINTF_RST(); break; } } diff --git a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h index 31b2ec48dd..ce0044ad44 100644 --- a/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h +++ b/src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope.h @@ -7,9 +7,9 @@ extern u8 gAmmoItems[]; extern s16 gVtxPageMapWorldQuadsWidth[]; extern s16 gVtxPageMapWorldQuadsHeight[]; -extern u8 gSlotAgeReqs[]; -extern u8 gEquipAgeReqs[EQUIP_TYPE_MAX][4]; -extern u8 gItemAgeReqs[]; +extern char gSlotAgeReqs[]; +extern char gEquipAgeReqs[EQUIP_TYPE_MAX][4]; +extern char gItemAgeReqs[]; extern u8 gAreaGsFlags[]; #define AGE_REQ_ADULT LINK_AGE_ADULT diff --git a/tools/.gitignore b/tools/.gitignore index 37084474b2..8d3a321faa 100644 --- a/tools/.gitignore +++ b/tools/.gitignore @@ -10,3 +10,4 @@ vtxdis yaz0 ido_recomp/ +egcs/ diff --git a/tools/Makefile b/tools/Makefile index c408be611d..b50027312d 100644 --- a/tools/Makefile +++ b/tools/Makefile @@ -14,6 +14,10 @@ IDO_RECOMP_VERSION := v1.2 IDO_RECOMP_5_3_DIR := ido_recomp/$(DETECTED_OS)/5.3 IDO_RECOMP_7_1_DIR := ido_recomp/$(DETECTED_OS)/7.1 +EGCS_BINUTILS_VERSION := 0.6 +EGCS_GCC_VERSION := 0.7 +EGCS_DIR := egcs/$(DETECTED_OS) + ifeq ($(shell command -v clang >/dev/null 2>&1; echo $$?),0) CC := clang else @@ -30,14 +34,14 @@ ifneq ($(LLD),0) CFLAGS += -fuse-ld=lld endif -all: $(PROGRAMS) $(IDO_RECOMP_5_3_DIR) $(IDO_RECOMP_7_1_DIR) +all: $(PROGRAMS) $(IDO_RECOMP_5_3_DIR) $(IDO_RECOMP_7_1_DIR) $(EGCS_DIR) $(MAKE) -C ZAPD $(MAKE) -C fado $(MAKE) -C audio clean: $(RM) $(PROGRAMS) $(addsuffix .exe,$(PROGRAMS)) - $(RM) -r ido_recomp + $(RM) -r ido_recomp egcs $(MAKE) -C ZAPD clean $(MAKE) -C fado clean $(MAKE) -C audio clean @@ -65,8 +69,13 @@ $(foreach p,$(PROGRAMS),$(eval $(call COMPILE,$(p)))) $(IDO_RECOMP_5_3_DIR): mkdir -p $@ - curl -L https://github.com/decompals/ido-static-recomp/releases/download/$(IDO_RECOMP_VERSION)/ido-5.3-recomp-$(DETECTED_OS).tar.gz | tar xz -C $@ + curl -sL https://github.com/decompals/ido-static-recomp/releases/download/$(IDO_RECOMP_VERSION)/ido-5.3-recomp-$(DETECTED_OS).tar.gz | tar xz -C $@ $(IDO_RECOMP_7_1_DIR): mkdir -p $@ - curl -L https://github.com/decompals/ido-static-recomp/releases/download/$(IDO_RECOMP_VERSION)/ido-7.1-recomp-$(DETECTED_OS).tar.gz | tar xz -C $@ + curl -sL https://github.com/decompals/ido-static-recomp/releases/download/$(IDO_RECOMP_VERSION)/ido-7.1-recomp-$(DETECTED_OS).tar.gz | tar xz -C $@ + +$(EGCS_DIR): + mkdir -p $@ + curl -sL https://github.com/decompals/mips-binutils-egcs-2.9.5/releases/download/$(EGCS_BINUTILS_VERSION)/mips-binutils-egcs-2.9.5-$(DETECTED_OS).tar.gz | tar xz -C $@ + curl -sL https://github.com/decompals/mips-gcc-egcs-2.91.66/releases/download/$(EGCS_GCC_VERSION)/mips-gcc-egcs-2.91.66-$(DETECTED_OS).tar.gz | tar xz -C $@ diff --git a/tools/audio/soundfont_compiler.c b/tools/audio/soundfont_compiler.c index 3dbf18eaa5..4f9a5779c4 100644 --- a/tools/audio/soundfont_compiler.c +++ b/tools/audio/soundfont_compiler.c @@ -1076,7 +1076,7 @@ emit_c_samples(FILE *out, soundfont *sf) "NO_REORDER SECTION_DATA ALIGNED(16) AdpcmBookHeader SF%d_%s_BOOK_HEADER = {" "\n" " %d, %d," "\n" "};" "\n" - "NO_REORDER SECTION_DATA AdpcmBookData SF%d_%s_BOOK_DATA = {" "\n", + "NO_REORDER SECTION_DATA s16 SF%d_%s_BOOK_DATA[] = {" "\n", // clang-format on sf->info.index, bookname, sample->aifc.book.order, sample->aifc.book.npredictors, sf->info.index, bookname); diff --git a/tools/disasm/ique-cn/files_boot.csv b/tools/disasm/ique-cn/files_boot.csv index 9a878030a2..dfbbf225bc 100644 --- a/tools/disasm/ique-cn/files_boot.csv +++ b/tools/disasm/ique-cn/files_boot.csv @@ -3,9 +3,9 @@ offset,vram,.text 140,80000590,src/boot/idle 390,800007E0,src/boot/viconfig 4D0,80000920,src/boot/z_std_dma -B50,80000FA0,src/boot/zlib +B50,80000FA0,src/boot/inflate 2830,80002C80,src/boot/z_locale -2870,80002CC0,src/boot/is_debug +2870,80002CC0,src/boot/is_debug_ique 2890,80002CE0,src/boot/driverominit 2A70,80002EC0,src/boot/mio0 2B20,80002F70,src/libu64/stackcheck @@ -59,8 +59,8 @@ B50,80000FA0,src/boot/zlib 6F10,80007360,src/libultra/os/seteventmesg 6FE0,80007430,src/libultra/os/getcause 6FF0,80007440,src/libultra/os/setwatchlo -7000,80007450,src/libultra/os/getcount -7100,80007550,src/libultra/os/setcompare +7000,80007450,src/libultra/reg/_getcount +7100,80007550,src/libultra/reg/_setcompare 71B0,80007600,src/libultra/io/sirawread 7200,80007650,src/libultra/io/sirawwrite 7250,800076A0,src/libultra/os/destroythread @@ -96,7 +96,7 @@ offset,vram,.data 98F0,80009D40,src/boot/viconfig 9910,80009D60,src/boot/carthandle 9920,80009D70,src/boot/z_std_dma -9930,80009D80,src/boot/zlib +9930,80009D80,src/boot/inflate 9AB0,80009F00,src/boot/z_locale 9AC0,80009F10,src/boot/driverominit 9AD0,80009F20,src/libu64/stackcheck @@ -133,8 +133,8 @@ A750,8000ABA0,data/boot_common_8000ABA0 A7A0,8000ABF0,src/boot/boot_main B190,8000B5E0,src/boot/idle BD90,8000C1E0,src/boot/z_std_dma -C500,8000C950,src/boot/zlib -FBB0,80010000,src/boot/driverominit +C500,8000C950,src/boot/inflate +10310,80010760,src/boot/driverominit 10390,800107E0,src/libultra/io/vimgr 115B0,80011A00,src/libultra/io/pimgr 12940,80012D90,data/boot_common_80012D90 diff --git a/tools/disasm/ique-cn/files_ovl_kaleido_scope.csv b/tools/disasm/ique-cn/files_ovl_kaleido_scope.csv index 4f63c0b0e9..938c3ebc0d 100644 --- a/tools/disasm/ique-cn/files_ovl_kaleido_scope.csv +++ b/tools/disasm/ique-cn/files_ovl_kaleido_scope.csv @@ -32,4 +32,4 @@ offset,vram,.ovl offset,vram,.bss 1C030,80830220,src/overlays/misc/ovl_kaleido_scope/z_kaleido_scope -1C040,80830230,.end +1C0A0,80830290,.end diff --git a/tools/disasm/ique-cn/functions.txt b/tools/disasm/ique-cn/functions.txt index b10ad38737..1afd8b8b50 100644 --- a/tools/disasm/ique-cn/functions.txt +++ b/tools/disasm/ique-cn/functions.txt @@ -15,6 +15,22 @@ DmaMgr_ThreadEntry = 0x80000D60; // type:func DmaMgr_RequestAsync = 0x80000DC4; // type:func DmaMgr_RequestSync = 0x80000E14; // type:func DmaMgr_Init = 0x80000EAC; // type:func +gzip_malloc = 0x80000FA0; // type:func +gzip_free = 0x80000FE8; // type:func +huft_build = 0x80001004; // type:func +huft_free = 0x800015E8; // type:func +inflate_codes = 0x8000162C; // type:func +inflate_stored = 0x80001BCC; // type:func +inflate_fixed = 0x80001E4C; // type:func +inflate_dynamic = 0x80002018; // type:func +inflate_block = 0x80002808; // type:func +inflate = 0x800029B0; // type:func +gzip_read = 0x80002A88; // type:func +unzip = 0x80002B14; // type:func +clear_bufs = 0x80002B50; // type:func +fill_inbuf = 0x80002B68; // type:func +flush_window = 0x80002C2C; // type:func +gzip_decompress = 0x80002C3C; // type:func Locale_Init = 0x80002C80; // type:func Locale_ResetRegion = 0x80002CB4; // type:func osSyncPrintfUnused = 0x80002CC0; // type:func @@ -1175,6 +1191,7 @@ KaleidoSetup_Init = 0x8006261C; // type:func KaleidoSetup_Destroy = 0x80062770; // type:func Font_LoadCharWide = 0x80062780; // type:func Font_LoadChar = 0x800627D0; // type:func +Font_LoadCharCHN = 0x8006280C; // type:func Font_LoadMessageBoxIcon = 0x80062848; // type:func Font_LoadOrderedFont = 0x8006287C; // type:func Environment_ZBufValToFixedPoint = 0x80062980; // type:func @@ -1808,6 +1825,7 @@ SkinMatrix_MtxFToMtx = 0x80095D40; // type:func SkinMatrix_MtxFToNewMtx = 0x80095F58; // type:func SkinMatrix_SetRotateAxis = 0x80095FA0; // type:func func_800A8030 = 0x80096110; // type:func +Sram_ReadWriteIQue = 0x80096280; // type:func Sram_InitNewSave = 0x800962D0; // type:func Sram_InitDebugSave = 0x80096420; // type:func Sram_OpenSave = 0x800965E8; // type:func @@ -10285,7 +10303,7 @@ EnGe1_Init = 0x80A8EFD0; // type:func EnGe1_Destroy = 0x80A8F294; // type:func EnGe1_SetTalkAction = 0x80A8F2C0; // type:func EnGe1_SetAnimationIdle = 0x80A8F3A0; // type:func -EnGe1_CheckCarpentersFreed = 0x80A8F424; // type:func +EnGe1_CheckAllCarpentersRescued = 0x80A8F424; // type:func EnGe1_KickPlayer = 0x80A8F460; // type:func EnGe1_SpotPlayer = 0x80A8F540; // type:func EnGe1_WatchForPlayerFrontOnly = 0x80A8F5A0; // type:func @@ -11822,7 +11840,7 @@ EnGe2_Init = 0x80B25578; // type:func EnGe2_Destroy = 0x80B25790; // type:func Ge2_DetectPlayerInAction = 0x80B257BC; // type:func Ge2_DetectPlayerInUpdate = 0x80B25868; // type:func -EnGe2_CheckCarpentersFreed = 0x80B25998; // type:func +EnGe2_CheckAllCarpentersRescued = 0x80B25998; // type:func EnGe2_CaptureClose = 0x80B259C4; // type:func EnGe2_CaptureCharge = 0x80B25A98; // type:func EnGe2_CaptureTurn = 0x80B25BCC; // type:func diff --git a/tools/patch_ique_driverominit.py b/tools/patch_ique_driverominit.py new file mode 100755 index 0000000000..f7ca9daac2 --- /dev/null +++ b/tools/patch_ique_driverominit.py @@ -0,0 +1,34 @@ +#!/usr/bin/env python3 +import struct, sys, argparse + +import elftools.elf.elffile + +# Patches driverominit.o to change bnez t6,3c to nop at offset 0x20 in the .text section + +if __name__ == "__main__": + parser = argparse.ArgumentParser() + + parser.add_argument("file", help="input file") + args = parser.parse_args() + + with open(args.file, "r+b") as f: + elf = elftools.elf.elffile.ELFFile(f) + + text_offset = 0 + for section in elf.iter_sections(): + if section.name == ".text": + text_offset = section["sh_offset"] + break + + if text_offset == 0: + print("Error: .text section not found") + sys.exit(1) + + f.seek(text_offset + 0x20) + instruction = struct.unpack(">I", f.read(4))[0] + if instruction != 0x15C00006: # bnez t6,3c + print("Error: expected instruction not found, found 0x%08X" % instruction) + sys.exit(1) + + f.seek(text_offset + 0x20) + f.write(struct.pack(">I", 0x00000000)) # nop diff --git a/tools/permuter_settings.toml b/tools/permuter_settings.toml index 472edb6964..607781e373 100644 --- a/tools/permuter_settings.toml +++ b/tools/permuter_settings.toml @@ -2,6 +2,9 @@ build_system = "make" compiler_type = "ido" # adjusts default weights for permuting [preserve_macros] +NULL = "void" +true = "int" +false = "int" "g[DS]P.*" = "void" "gDma.*" = "void" "a[A-Z].*" = "void" @@ -33,3 +36,4 @@ ACTOR_DEBUG_PRINTF = "void" [decompme.compilers] "tools/ido_recomp/*/7.1/cc" = "ido7.1" "tools/ido_recomp/*/5.3/cc" = "ido5.3" +"tools/egcs/*/gcc" = "egcs_1.1.2-4c"