mirror of
https://github.com/zeldaret/oot.git
synced 2024-11-25 01:34:18 +00:00
Set up multiversion assets with ZAPD and match gc-eu (#1967)
* Add ZAPD hack to deal with extracted/VERSION/ in include paths
* Extract assets to extracted/VERSION
* Add ZAPD flags to override virtual address / start offset / end offset
* Configure offsets for code and overlay assets
* Reorganize ZAPD configs
* Match gc-eu-mq
* Match gc-eu
* Remove old asset dirs during distclean
* Revert "Remove old asset dirs during distclean"
This reverts commit fc8027a75f
.
* make zapd addresses globals int64_t so they can store uint32_t addresses and -1
* slight cleanup extract_assets.py
* git subrepo pull --force tools/ZAPD
subrepo:
subdir: "tools/ZAPD"
merged: "0285e11f0"
upstream:
origin: "https://github.com/zeldaret/ZAPD.git"
branch: "master"
commit: "0285e11f0"
git-subrepo:
version: "0.4.6"
origin: "git@github.com:ingydotnet/git-subrepo.git"
commit: "110b9eb"
---------
Co-authored-by: Dragorn421 <Dragorn421@users.noreply.github.com>
This commit is contained in:
parent
b2d80568b9
commit
9def6f4d0d
92 changed files with 4911 additions and 487 deletions
47
Makefile
47
Makefile
|
@ -15,10 +15,11 @@ ORIG_COMPILER := 0
|
|||
# If COMPILER is "gcc", compile with GCC instead of IDO.
|
||||
COMPILER := ido
|
||||
# Target game version. Currently the following versions are supported:
|
||||
# gc-eu GameCube Europe/PAL
|
||||
# gc-eu-mq GameCube Europe/PAL Master Quest
|
||||
# gc-eu-mq-dbg GameCube Europe/PAL Master Quest Debug (default)
|
||||
# The following versions are work-in-progress and not yet matching:
|
||||
# gc-eu GameCube Europe/PAL
|
||||
# (none currently)
|
||||
VERSION := gc-eu-mq-dbg
|
||||
# Number of threads to extract and compress with
|
||||
N_THREADS := $(shell nproc)
|
||||
|
@ -53,7 +54,6 @@ endif
|
|||
# Version-specific settings
|
||||
ifeq ($(VERSION),gc-eu)
|
||||
DEBUG := 0
|
||||
COMPARE := 0
|
||||
else ifeq ($(VERSION),gc-eu-mq)
|
||||
DEBUG := 0
|
||||
CPP_DEFINES += -DOOT_MQ
|
||||
|
@ -211,11 +211,12 @@ else
|
|||
SRC_DIRS := $(shell find src -type d)
|
||||
endif
|
||||
|
||||
ASSET_BIN_DIRS := $(shell find assets/* -type d -not -path "assets/xml*" -not -path "assets/text")
|
||||
ASSET_FILES_XML := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.xml))
|
||||
# create extracted directories
|
||||
$(shell mkdir -p $(EXTRACTED_DIR) $(EXTRACTED_DIR)/assets $(EXTRACTED_DIR)/text)
|
||||
|
||||
ASSET_BIN_DIRS := $(shell find $(EXTRACTED_DIR)/assets -type d)
|
||||
ASSET_FILES_BIN := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.bin))
|
||||
ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_XML:.xml=.c),$f) \
|
||||
$(foreach f,$(ASSET_FILES_BIN:.bin=.bin.inc.c),$(BUILD_DIR)/$f) \
|
||||
ASSET_FILES_OUT := $(foreach f,$(ASSET_FILES_BIN:.bin=.bin.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \
|
||||
$(foreach f,$(wildcard assets/text/*.c),$(BUILD_DIR)/$(f:.c=.o))
|
||||
|
||||
UNDECOMPILED_DATA_DIRS := $(shell find data -type d)
|
||||
|
@ -223,10 +224,12 @@ UNDECOMPILED_DATA_DIRS := $(shell find data -type d)
|
|||
BASEROM_BIN_FILES := $(wildcard $(EXTRACTED_DIR)/baserom/*)
|
||||
|
||||
# source files
|
||||
C_FILES := $(filter-out %.inc.c,$(foreach dir,$(SRC_DIRS) $(ASSET_BIN_DIRS),$(wildcard $(dir)/*.c)))
|
||||
SRC_C_FILES := $(filter-out %.inc.c,$(foreach dir,$(SRC_DIRS),$(wildcard $(dir)/*.c)))
|
||||
ASSET_C_FILES := $(filter-out %.inc.c,$(foreach dir,$(ASSET_BIN_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,$(C_FILES:.c=.o),$(BUILD_DIR)/$f) \
|
||||
$(foreach f,$(SRC_C_FILES:.c=.o),$(BUILD_DIR)/$f) \
|
||||
$(foreach f,$(ASSET_C_FILES:.c=.o),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \
|
||||
$(foreach f,$(BASEROM_BIN_FILES),$(BUILD_DIR)/baserom/$(notdir $f).o)
|
||||
|
||||
OVL_RELOC_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | $(SPEC_REPLACE_VARS) | grep -o '[^"]*_reloc.o' )
|
||||
|
@ -238,11 +241,11 @@ DEP_FILES := $(O_FILES:.o=.asmproc.d) $(OVL_RELOC_FILES:.o=.d)
|
|||
|
||||
TEXTURE_FILES_PNG := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.png))
|
||||
TEXTURE_FILES_JPG := $(foreach dir,$(ASSET_BIN_DIRS),$(wildcard $(dir)/*.jpg))
|
||||
TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),$(BUILD_DIR)/$f) \
|
||||
$(foreach f,$(TEXTURE_FILES_JPG:.jpg=.jpg.inc.c),$(BUILD_DIR)/$f) \
|
||||
TEXTURE_FILES_OUT := $(foreach f,$(TEXTURE_FILES_PNG:.png=.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)) \
|
||||
$(foreach f,$(TEXTURE_FILES_JPG:.jpg=.jpg.inc.c),$(f:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%))
|
||||
|
||||
# create build directories
|
||||
$(shell mkdir -p $(BUILD_DIR)/baserom $(EXTRACTED_DIR)/text $(BUILD_DIR)/assets/text $(foreach dir,$(SRC_DIRS) $(UNDECOMPILED_DATA_DIRS) $(ASSET_BIN_DIRS),$(BUILD_DIR)/$(dir)))
|
||||
$(shell mkdir -p $(BUILD_DIR)/baserom $(BUILD_DIR)/assets/text $(foreach dir,$(SRC_DIRS) $(UNDECOMPILED_DATA_DIRS),$(BUILD_DIR)/$(dir)) $(foreach dir,$(ASSET_BIN_DIRS),$(dir:$(EXTRACTED_DIR)/%=$(BUILD_DIR)/%)))
|
||||
|
||||
ifeq ($(COMPILER),ido)
|
||||
$(BUILD_DIR)/src/boot/stackcheck.o: OPTFLAGS := -O2
|
||||
|
@ -356,12 +359,9 @@ clean:
|
|||
$(RM) -r $(BUILD_DIR)
|
||||
|
||||
assetclean:
|
||||
$(RM) -r $(ASSET_BIN_DIRS)
|
||||
$(RM) -r $(EXTRACTED_DIR)
|
||||
$(RM) -r $(BUILD_DIR)/assets
|
||||
$(RM) -r .extracted-assets.json
|
||||
|
||||
distclean: assetclean
|
||||
distclean:
|
||||
$(RM) -r extracted/
|
||||
$(RM) -r build/
|
||||
$(MAKE) -C tools distclean
|
||||
|
@ -378,10 +378,7 @@ setup: venv
|
|||
$(PYTHON) tools/decompress_baserom.py $(VERSION)
|
||||
$(PYTHON) tools/extract_baserom.py $(BASEROM_DIR)/baserom-decompressed.z64 --oot-version $(VERSION) -o $(EXTRACTED_DIR)/baserom
|
||||
$(PYTHON) tools/msgdis.py --oot-version $(VERSION) --text-out $(EXTRACTED_DIR)/text/message_data.h --staff-text-out $(EXTRACTED_DIR)/text/message_data_staff.h
|
||||
# TODO: for now, we only extract assets from the Debug ROM
|
||||
ifeq ($(VERSION),gc-eu-mq-dbg)
|
||||
$(PYTHON) extract_assets.py -j$(N_THREADS)
|
||||
endif
|
||||
$(PYTHON) extract_assets.py -v $(VERSION) -j$(N_THREADS)
|
||||
|
||||
disasm:
|
||||
$(RM) -r $(EXPECTED_DIR)
|
||||
|
@ -447,7 +444,11 @@ $(BUILD_DIR)/assets/text/nes_message_data_static.o: $(BUILD_DIR)/assets/text/mes
|
|||
$(BUILD_DIR)/assets/text/staff_message_data_static.o: $(BUILD_DIR)/assets/text/message_data_staff.enc.h
|
||||
$(BUILD_DIR)/src/code/z_message_PAL.o: $(BUILD_DIR)/assets/text/message_data.enc.h $(BUILD_DIR)/assets/text/message_data_staff.enc.h
|
||||
|
||||
$(BUILD_DIR)/assets/%.o: assets/%.c
|
||||
$(BUILD_DIR)/assets/text/%.o: assets/text/%.c
|
||||
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
|
||||
$(OBJCOPY) -O binary $@ $@.bin
|
||||
|
||||
$(BUILD_DIR)/assets/%.o: $(EXTRACTED_DIR)/assets/%.c
|
||||
$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
|
||||
$(OBJCOPY) -O binary $@ $@.bin
|
||||
|
||||
|
@ -498,13 +499,13 @@ $(BUILD_DIR)/src/overlays/%_reloc.o: $(BUILD_DIR)/$(SPEC)
|
|||
$(FADO) $$(tools/reloc_prereq $< $(notdir $*)) -n $(notdir $*) -o $(@:.o=.s) -M $(@:.o=.d)
|
||||
$(AS) $(ASFLAGS) $(@:.o=.s) -o $@
|
||||
|
||||
$(BUILD_DIR)/%.inc.c: %.png
|
||||
$(BUILD_DIR)/assets/%.inc.c: $(EXTRACTED_DIR)/assets/%.png
|
||||
$(ZAPD) btex -eh -tt $(subst .,,$(suffix $*)) -i $< -o $@
|
||||
|
||||
$(BUILD_DIR)/assets/%.bin.inc.c: assets/%.bin
|
||||
$(BUILD_DIR)/assets/%.bin.inc.c: $(EXTRACTED_DIR)/assets/%.bin
|
||||
$(ZAPD) bblb -eh -i $< -o $@
|
||||
|
||||
$(BUILD_DIR)/assets/%.jpg.inc.c: assets/%.jpg
|
||||
$(BUILD_DIR)/assets/%.jpg.inc.c: $(EXTRACTED_DIR)/assets/%.jpg
|
||||
$(ZAPD) bren -eh -i $< -o $@
|
||||
|
||||
-include $(DEP_FILES)
|
||||
|
|
7
assets/.gitignore
vendored
7
assets/.gitignore
vendored
|
@ -1,7 +0,0 @@
|
|||
*.bin
|
||||
*.c
|
||||
*.h
|
||||
!text/*.[ch]
|
||||
*.cfg
|
||||
*.vtx.inc
|
||||
*.dlist.inc
|
|
@ -1,13 +1,13 @@
|
|||
<Root>
|
||||
<File Name="code" OutName="z_fbdemo_circle" RangeStart="0x10ED48" RangeEnd="0x10FF68">
|
||||
<Texture Name="sTransCircleNormalTex" OutName="trans_circle_normal" Format="i8" Width="16" Height="64" Offset="0x10ED48"/>
|
||||
<Texture Name="sTransCircleWaveTex" OutName="trans_circle_wave" Format="i8" Width="16" Height="64" Offset="0x10F148"/>
|
||||
<Texture Name="sTransCircleRippleTex" OutName="trans_circle_ripple" Format="i8" Width="16" Height="64" Offset="0x10F548"/>
|
||||
<Texture Name="sTransCircleStarburstTex" OutName="trans_circle_starburst" Format="i8" Width="16" Height="64" Offset="0x10F948"/>
|
||||
<Array Name="sTransCircleVtx" Count="34" Offset="0x10FD48">
|
||||
<File Name="code" OutName="z_fbdemo_circle">
|
||||
<Texture Name="sTransCircleNormalTex" OutName="trans_circle_normal" Format="i8" Width="16" Height="64" Offset="0x0"/>
|
||||
<Texture Name="sTransCircleWaveTex" OutName="trans_circle_wave" Format="i8" Width="16" Height="64" Offset="0x400"/>
|
||||
<Texture Name="sTransCircleRippleTex" OutName="trans_circle_ripple" Format="i8" Width="16" Height="64" Offset="0x800"/>
|
||||
<Texture Name="sTransCircleStarburstTex" OutName="trans_circle_starburst" Format="i8" Width="16" Height="64" Offset="0xC00"/>
|
||||
<Array Name="sTransCircleVtx" Count="34" Offset="0x1000">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<!-- ZAPD isn't finding symbols correctly, instead finding them much later in `code`-->
|
||||
<!--<DList Name="sTransCircleDL" Offset="0x10FF68"/>-->
|
||||
<!--<DList Name="sTransCircleDL" Offset="0x1220"/>-->
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<Root>
|
||||
<File Name="code" OutName="z_fbdemo_triforce" RangeStart="0x10E1D0" RangeEnd="0x10E2A0">
|
||||
<DList Name="sTransTriforceDL" Offset="0x10E1D0"/>
|
||||
<Array Name="sTransTriforceVtx" Count="10" Offset="0x10E200">
|
||||
<File Name="code" OutName="z_fbdemo_triforce">
|
||||
<DList Name="sTransTriforceDL" Offset="0x0"/>
|
||||
<Array Name="sTransTriforceVtx" Count="10" Offset="0x30">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
</File>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<Root>
|
||||
<File Name="code" OutName="z_fbdemo_wipe1" RangeStart="0x10E2A0" RangeEnd="0x10EC30">
|
||||
<Array Name="sTransWipeVtx" Count="25" Offset="0x10E2A0">
|
||||
<File Name="code" OutName="z_fbdemo_wipe1">
|
||||
<Array Name="sTransWipeVtx" Count="25" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Texture Name="sTransWipeTex" OutName="trans_wipe" Format="i4" Width="64" Height="64" Offset="0x10E430"/>
|
||||
<Texture Name="sTransWipeTex" OutName="trans_wipe" Format="i4" Width="64" Height="64" Offset="0x190"/>
|
||||
<!-- ZAPD isn't finding symbols correctly, instead finding them much later in `code`-->
|
||||
<!-- <DList Name="sTransWipeDL" Offset="0x10EC30"/> -->
|
||||
<!-- <DList Name="sTransWipeDL" Offset="0x990"/> -->
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -3,21 +3,19 @@
|
|||
<Texture Name="gTitleZeldaShieldLogoMQTex" OutName="title_zelda_shield_logo_mq" Format="rgba32" Width="160" Height="160" Offset="0x0"/>
|
||||
<Texture Name="gTitleCopyright19982002Tex" OutName="title_copyright_19982002" Format="ia8" Width="160" Height="16" Offset="0x19000"/>
|
||||
<Texture Name="gTitleCopyright19982003Tex" OutName="title_copyright_19982003" Format="ia8" Width="160" Height="16" Offset="0x19A00"/>
|
||||
<Texture Name="gTitleMasterQuestSubtitleTex" OutName="title_master_quest_subtitle" Format="rgba32" Width="128" Height="32" Offset="0x1A400"/>
|
||||
<Texture Name="gTitleEffectMask00Tex" OutName="title_effect_mask_0_0" Format="i4" Width="64" Height="64" Offset="0x20000"/>
|
||||
<Texture Name="gTitleEffectMask01Tex" OutName="title_effect_mask_0_1" Format="i4" Width="64" Height="64" Offset="0x20800"/>
|
||||
<Texture Name="gTitleEffectMask02Tex" OutName="title_effect_mask_0_2" Format="i4" Width="64" Height="64" Offset="0x21000"/>
|
||||
<Texture Name="gTitleEffectMask10Tex" OutName="title_effect_mask_1_0" Format="i4" Width="64" Height="64" Offset="0x21800"/>
|
||||
<Texture Name="gTitleEffectMask11Tex" OutName="title_effect_mask_1_1" Format="i4" Width="64" Height="64" Offset="0x22000"/>
|
||||
<Texture Name="gTitleEffectMask12Tex" OutName="title_effect_mask_1_2" Format="i4" Width="64" Height="64" Offset="0x22800"/>
|
||||
<Texture Name="gTitleEffectMask20Tex" OutName="title_effect_mask_2_0" Format="i4" Width="64" Height="64" Offset="0x23000"/>
|
||||
<Texture Name="gTitleEffectMask21Tex" OutName="title_effect_mask_2_1" Format="i4" Width="64" Height="64" Offset="0x23800"/>
|
||||
<Texture Name="gTitleEffectMask22Tex" OutName="title_effect_mask_2_2" Format="i4" Width="64" Height="64" Offset="0x24000"/>
|
||||
<Texture Name="gTitleFlameEffectTex" OutName="title_flame_effect" Format="i8" Width="32" Height="32" Offset="0x24800"/>
|
||||
<Texture Name="gTitleTheLegendOfTextTex" OutName="title_the_legend_of_text" Format="i8" Width="72" Height="8" Offset="0x24C00"/>
|
||||
<Texture Name="gTitleOcarinaOfTimeTMTextTex" OutName="title_ocarina_of_time_tm_text" Format="i8" Width="96" Height="8" Offset="0x24E40"/>
|
||||
<Texture Name="gTitleUraLogoTex" OutName="title_ura_logo" Format="rgba32" Width="40" Height="40" Offset="0x1E400"/>
|
||||
<Texture Name="gTitleDiskTex" OutName="title_disk" Format="ia8" Width="48" Height="16" Offset="0x1FD00"/>
|
||||
<Texture Name="gTitleTitleJPNTex" OutName="title_title_jpn" Format="i8" Width="128" Height="16" Offset="0x25140"/>
|
||||
<Texture Name="gTitleDiskTex" OutName="title_disk" Format="ia8" Width="48" Height="16" Offset="0x1A400"/>
|
||||
<Texture Name="gTitleEffectMask00Tex" OutName="title_effect_mask_0_0" Format="i4" Width="64" Height="64" Offset="0x1A700"/>
|
||||
<Texture Name="gTitleEffectMask01Tex" OutName="title_effect_mask_0_1" Format="i4" Width="64" Height="64" Offset="0x1AF00"/>
|
||||
<Texture Name="gTitleEffectMask02Tex" OutName="title_effect_mask_0_2" Format="i4" Width="64" Height="64" Offset="0x1B700"/>
|
||||
<Texture Name="gTitleEffectMask10Tex" OutName="title_effect_mask_1_0" Format="i4" Width="64" Height="64" Offset="0x1BF00"/>
|
||||
<Texture Name="gTitleEffectMask11Tex" OutName="title_effect_mask_1_1" Format="i4" Width="64" Height="64" Offset="0x1C700"/>
|
||||
<Texture Name="gTitleEffectMask12Tex" OutName="title_effect_mask_1_2" Format="i4" Width="64" Height="64" Offset="0x1CF00"/>
|
||||
<Texture Name="gTitleEffectMask20Tex" OutName="title_effect_mask_2_0" Format="i4" Width="64" Height="64" Offset="0x1D700"/>
|
||||
<Texture Name="gTitleEffectMask21Tex" OutName="title_effect_mask_2_1" Format="i4" Width="64" Height="64" Offset="0x1DF00"/>
|
||||
<Texture Name="gTitleEffectMask22Tex" OutName="title_effect_mask_2_2" Format="i4" Width="64" Height="64" Offset="0x1E700"/>
|
||||
<Texture Name="gTitleFlameEffectTex" OutName="title_flame_effect" Format="i8" Width="32" Height="32" Offset="0x1EF00"/>
|
||||
<Texture Name="gTitleTheLegendOfTextTex" OutName="title_the_legend_of_text" Format="i8" Width="72" Height="8" Offset="0x1F300"/>
|
||||
<Texture Name="gTitleOcarinaOfTimeTMTextTex" OutName="title_ocarina_of_time_tm_text" Format="i8" Width="96" Height="8" Offset="0x1F540"/>
|
||||
<Texture Name="gTitleTitleJPNTex" OutName="title_title_jpn" Format="i8" Width="128" Height="16" Offset="0x1F840"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
23
assets/xml/objects/object_mag_mq.xml
Normal file
23
assets/xml/objects/object_mag_mq.xml
Normal file
|
@ -0,0 +1,23 @@
|
|||
<Root>
|
||||
<File Name="object_mag" Segment="6">
|
||||
<Texture Name="gTitleZeldaShieldLogoMQTex" OutName="title_zelda_shield_logo_mq" Format="rgba32" Width="160" Height="160" Offset="0x0"/>
|
||||
<Texture Name="gTitleCopyright19982002Tex" OutName="title_copyright_19982002" Format="ia8" Width="160" Height="16" Offset="0x19000"/>
|
||||
<Texture Name="gTitleCopyright19982003Tex" OutName="title_copyright_19982003" Format="ia8" Width="160" Height="16" Offset="0x19A00"/>
|
||||
<Texture Name="gTitleMasterQuestSubtitleTex" OutName="title_master_quest_subtitle" Format="rgba32" Width="128" Height="32" Offset="0x1A400"/>
|
||||
<Texture Name="gTitleEffectMask00Tex" OutName="title_effect_mask_0_0" Format="i4" Width="64" Height="64" Offset="0x20000"/>
|
||||
<Texture Name="gTitleEffectMask01Tex" OutName="title_effect_mask_0_1" Format="i4" Width="64" Height="64" Offset="0x20800"/>
|
||||
<Texture Name="gTitleEffectMask02Tex" OutName="title_effect_mask_0_2" Format="i4" Width="64" Height="64" Offset="0x21000"/>
|
||||
<Texture Name="gTitleEffectMask10Tex" OutName="title_effect_mask_1_0" Format="i4" Width="64" Height="64" Offset="0x21800"/>
|
||||
<Texture Name="gTitleEffectMask11Tex" OutName="title_effect_mask_1_1" Format="i4" Width="64" Height="64" Offset="0x22000"/>
|
||||
<Texture Name="gTitleEffectMask12Tex" OutName="title_effect_mask_1_2" Format="i4" Width="64" Height="64" Offset="0x22800"/>
|
||||
<Texture Name="gTitleEffectMask20Tex" OutName="title_effect_mask_2_0" Format="i4" Width="64" Height="64" Offset="0x23000"/>
|
||||
<Texture Name="gTitleEffectMask21Tex" OutName="title_effect_mask_2_1" Format="i4" Width="64" Height="64" Offset="0x23800"/>
|
||||
<Texture Name="gTitleEffectMask22Tex" OutName="title_effect_mask_2_2" Format="i4" Width="64" Height="64" Offset="0x24000"/>
|
||||
<Texture Name="gTitleFlameEffectTex" OutName="title_flame_effect" Format="i8" Width="32" Height="32" Offset="0x24800"/>
|
||||
<Texture Name="gTitleTheLegendOfTextTex" OutName="title_the_legend_of_text" Format="i8" Width="72" Height="8" Offset="0x24C00"/>
|
||||
<Texture Name="gTitleOcarinaOfTimeTMTextTex" OutName="title_ocarina_of_time_tm_text" Format="i8" Width="96" Height="8" Offset="0x24E40"/>
|
||||
<Texture Name="gTitleUraLogoTex" OutName="title_ura_logo" Format="rgba32" Width="40" Height="40" Offset="0x1E400"/>
|
||||
<Texture Name="gTitleDiskTex" OutName="title_disk" Format="ia8" Width="48" Height="16" Offset="0x1FD00"/>
|
||||
<Texture Name="gTitleTitleJPNTex" OutName="title_title_jpn" Format="i8" Width="128" Height="16" Offset="0x25140"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,11 +1,11 @@
|
|||
<Root>
|
||||
<File Name="ovl_Arrow_Fire" BaseAddress="0x80865d10" RangeStart="0x9D0" RangeEnd="0x1DF0">
|
||||
<Texture Name="s1Tex" OutName="fire_tex_1" Format="i8" Width="32" Height="64" Offset="0x9D0" Static="On"/>
|
||||
<Texture Name="s2Tex" OutName="fire_tex_2" Format="i8" Width="32" Height="64" Offset="0x11D0" Static="On"/>
|
||||
<Array Name="sVtx" Count="43" Offset="0x19D0" Static="On">
|
||||
<File Name="ovl_Arrow_Fire">
|
||||
<Texture Name="s1Tex" OutName="fire_tex_1" Format="i8" Width="32" Height="64" Offset="0x0" Static="On"/>
|
||||
<Texture Name="s2Tex" OutName="fire_tex_2" Format="i8" Width="32" Height="64" Offset="0x800" Static="On"/>
|
||||
<Array Name="sVtx" Count="43" Offset="0x1000" Static="On">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sMaterialDL" Offset="0x1C80" Static="On"/>
|
||||
<DList Name="sModelDL" Offset="0x1D30" Static="On"/>
|
||||
<DList Name="sMaterialDL" Offset="0x12B0" Static="On"/>
|
||||
<DList Name="sModelDL" Offset="0x1360" Static="On"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<Root>
|
||||
<File Name="ovl_Arrow_Ice" BaseAddress="0x80867cd0" RangeStart="0x9F0" RangeEnd="0x1E10">
|
||||
<Texture Name="s1Tex" OutName="ice_tex_1" Format="i8" Width="32" Height="64" Offset="0x9F0" Static="On"/>
|
||||
<Texture Name="s2Tex" OutName="ice_tex_2" Format="i8" Width="32" Height="64" Offset="0x11F0" Static="On"/>
|
||||
<Array Name="sVtx" Count="43" Offset="0x19F0" Static="On">
|
||||
<File Name="ovl_Arrow_Ice">
|
||||
<Texture Name="s1Tex" OutName="ice_tex_1" Format="i8" Width="32" Height="64" Offset="0x0" Static="On"/>
|
||||
<Texture Name="s2Tex" OutName="ice_tex_2" Format="i8" Width="32" Height="64" Offset="0x800" Static="On"/>
|
||||
<Array Name="sVtx" Count="43" Offset="0x1000" Static="On">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sMaterialDL" Offset="0x1CA0" Static="On"/>
|
||||
<DList Name="sModelDL" Offset="0x1D50" Static="On"/>
|
||||
<DList Name="sMaterialDL" Offset="0x12B0" Static="On"/>
|
||||
<DList Name="sModelDL" Offset="0x1360" Static="On"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<Root>
|
||||
<File Name="ovl_Arrow_Light" BaseAddress="0x80869cb0" RangeStart="0xA00" RangeEnd="0x1E20">
|
||||
<Texture Name="s1Tex" OutName="light_tex_1" Format="i8" Width="32" Height="64" Offset="0xA00" Static="On"/>
|
||||
<Texture Name="s2Tex" OutName="light_tex_2" Format="i8" Width="32" Height="64" Offset="0x1200" Static="On"/>
|
||||
<Array Name="sVtx" Count="43" Offset="0x1A00" Static="On">
|
||||
<File Name="ovl_Arrow_Light">
|
||||
<Texture Name="s1Tex" OutName="light_tex_1" Format="i8" Width="32" Height="64" Offset="0x0" Static="On"/>
|
||||
<Texture Name="s2Tex" OutName="light_tex_2" Format="i8" Width="32" Height="64" Offset="0x800" Static="On"/>
|
||||
<Array Name="sVtx" Count="43" Offset="0x1000" Static="On">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sMaterialDL" Offset="0x1CB0" Static="On"/>
|
||||
<DList Name="sModelDL" Offset="0x1D60" Static="On"/>
|
||||
<DList Name="sMaterialDL" Offset="0x12B0" Static="On"/>
|
||||
<DList Name="sModelDL" Offset="0x1360" Static="On"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
<Root>
|
||||
<File Name="ovl_Bg_Ganon_Otyuka" BaseAddress="0x80875920" RangeStart="0x11C0" RangeEnd="0x259C">
|
||||
<Texture Name="sPlatformTex" OutName="platform_tex" Format="rgba16" Width="32" Height="32" Offset="0x11C0"/>
|
||||
<File Name="ovl_Bg_Ganon_Otyuka">
|
||||
<Texture Name="sPlatformTex" OutName="platform_tex" Format="rgba16" Width="32" Height="32" Offset="0x0"/>
|
||||
|
||||
<Array Name="sPlatformTopVtx" Count="4" Offset="0x19C8">
|
||||
<Array Name="sPlatformTopVtx" Count="4" Offset="0x808">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sPlatformMaterialDL" Offset="0x1A08"/>
|
||||
<DList Name="sPlatformTopDL" Offset="0x1A90"/>
|
||||
<DList Name="sPlatformMaterialDL" Offset="0x848"/>
|
||||
<DList Name="sPlatformTopDL" Offset="0x8D0"/>
|
||||
|
||||
<Array Name="sPlatformBottomVtx" Count="4" Offset="0x1AA8">
|
||||
<Array Name="sPlatformBottomVtx" Count="4" Offset="0x8E8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sPlatformBottomDL" Offset="0x1AE8"/>
|
||||
<DList Name="sPlatformBottomDL" Offset="0x928"/>
|
||||
|
||||
<Array Name="sPlatformSideVtx" Count="4" Offset="0x01B00">
|
||||
<Array Name="sPlatformSideVtx" Count="4" Offset="0x940">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sPlatformSideDL" Offset="0x1B40"/>
|
||||
<DList Name="sPlatformSideDL" Offset="0x980"/>
|
||||
|
||||
<Texture Name="sFlashTex" OutName="flash_tex" Format="i8" Width="32" Height="64" Offset="0x1B58"/>
|
||||
<Array Name="sFlashVtx" Count="8" Offset="0x2358">
|
||||
<Texture Name="sFlashTex" OutName="flash_tex" Format="i8" Width="32" Height="64" Offset="0x998"/>
|
||||
<Array Name="sFlashVtx" Count="8" Offset="0x1198">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sFlashDL" Offset="0x23D8"/>
|
||||
<DList Name="sFlashDL" Offset="0x1218"/>
|
||||
|
||||
<Collision Name="sCol" Offset="0x2570"/>
|
||||
<Collision Name="sCol" Offset="0x13B0"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<Root>
|
||||
<File Name="ovl_Bg_Jya_Cobra" BaseAddress="0x808958f0" RangeStart="0x1980" RangeEnd="0x19F8">
|
||||
<Array Name="sShadowVtx" Count="4" Offset="0x1980">
|
||||
<File Name="ovl_Bg_Jya_Cobra">
|
||||
<Array Name="sShadowVtx" Count="4" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<DList Name="sShadowDL" Offset="0x19C0"/>
|
||||
<DList Name="sShadowDL" Offset="0x40"/>
|
||||
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<Root>
|
||||
<File Name="ovl_Boss_Dodongo" BaseAddress="0x808C1190" RangeStart="0x6238" RangeEnd="0x9238">
|
||||
<Texture Name="sLavaFloorLavaTex" OutName="lava_floor_lava" Format="rgba16" Width="64" Height="64" Offset="0x6238"/>
|
||||
<Texture Name="sLavaFloorRockTex" OutName="lava_floor_rock" Format="rgba16" Width="32" Height="64" Offset="0x8238"/>
|
||||
<File Name="ovl_Boss_Dodongo">
|
||||
<Texture Name="sLavaFloorLavaTex" OutName="lava_floor_lava" Format="rgba16" Width="64" Height="64" Offset="0x0"/>
|
||||
<Texture Name="sLavaFloorRockTex" OutName="lava_floor_rock" Format="rgba16" Width="32" Height="64" Offset="0x2000"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,53 +1,53 @@
|
|||
<Root>
|
||||
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
|
||||
<File Name="ovl_Boss_Ganon" BaseAddress="0x808D6870" RangeStart="0xE6B8" RangeEnd="0x211D8">
|
||||
<Texture Name="gGanondorfLightning1Tex" OutName="lightning_1" Format="i8" Width="32" Height="96" Offset="0x11600" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning2Tex" OutName="lightning_2" Format="i8" Width="32" Height="96" Offset="0x12200" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning3Tex" OutName="lightning_3" Format="i8" Width="32" Height="96" Offset="0x12E00" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning4Tex" OutName="lightning_4" Format="i8" Width="32" Height="96" Offset="0x13A00" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning5Tex" OutName="lightning_5" Format="i8" Width="32" Height="96" Offset="0x14600" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning6Tex" OutName="lightning_6" Format="i8" Width="32" Height="96" Offset="0x15200" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning7Tex" OutName="lightning_7" Format="i8" Width="32" Height="96" Offset="0x15E00" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning8Tex" OutName="lightning_8" Format="i8" Width="32" Height="96" Offset="0x16A00" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning9Tex" OutName="lightning_9" Format="i8" Width="32" Height="96" Offset="0x17600" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning10Tex" OutName="lightning_10" Format="i8" Width="32" Height="96" Offset="0x18200" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning11Tex" OutName="lightning_11" Format="i8" Width="32" Height="96" Offset="0x18E00" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning12Tex" OutName="lightning_12" Format="i8" Width="32" Height="96" Offset="0x19A00" Static="Off"/>
|
||||
<File Name="ovl_Boss_Ganon">
|
||||
<Texture Name="gGanondorfLightning1Tex" OutName="lightning_1" Format="i8" Width="32" Height="96" Offset="0x2F48" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning2Tex" OutName="lightning_2" Format="i8" Width="32" Height="96" Offset="0x3B48" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning3Tex" OutName="lightning_3" Format="i8" Width="32" Height="96" Offset="0x4748" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning4Tex" OutName="lightning_4" Format="i8" Width="32" Height="96" Offset="0x5348" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning5Tex" OutName="lightning_5" Format="i8" Width="32" Height="96" Offset="0x5F48" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning6Tex" OutName="lightning_6" Format="i8" Width="32" Height="96" Offset="0x6B48" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning7Tex" OutName="lightning_7" Format="i8" Width="32" Height="96" Offset="0x7748" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning8Tex" OutName="lightning_8" Format="i8" Width="32" Height="96" Offset="0x8348" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning9Tex" OutName="lightning_9" Format="i8" Width="32" Height="96" Offset="0x8F48" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning10Tex" OutName="lightning_10" Format="i8" Width="32" Height="96" Offset="0x9B48" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning11Tex" OutName="lightning_11" Format="i8" Width="32" Height="96" Offset="0xA748" Static="Off"/>
|
||||
<Texture Name="gGanondorfLightning12Tex" OutName="lightning_12" Format="i8" Width="32" Height="96" Offset="0xB348" Static="Off"/>
|
||||
|
||||
<Texture Name="gGanondorfWindowShatterTemplateTex" OutName="window_shatter_template" Format="i8" Width="32" Height="64" Offset="0xFD38" Static="Off"/>
|
||||
<Texture Name="gGanondorfWindowShatterTemplateTex" OutName="window_shatter_template" Format="i8" Width="32" Height="64" Offset="0x1680" Static="Off"/>
|
||||
|
||||
<DList Name="gGanondorfLightStreak1DL" Offset="0x1FCF0" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak2DL" Offset="0x1FD28" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak3DL" Offset="0x1FD60" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak4DL" Offset="0x1FD98" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak5DL" Offset="0x1FDD0" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak6DL" Offset="0x1FE08" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak7DL" Offset="0x1FE40" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak8DL" Offset="0x1FE78" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak9DL" Offset="0x1FEB0" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak10DL" Offset="0x1FEE8" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak11DL" Offset="0x1FF20" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak12DL" Offset="0x1FF58" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak1DL" Offset="0x11638" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak2DL" Offset="0x11670" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak3DL" Offset="0x116A8" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak4DL" Offset="0x116E0" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak5DL" Offset="0x11718" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak6DL" Offset="0x11750" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak7DL" Offset="0x11788" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak8DL" Offset="0x117C0" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak9DL" Offset="0x117F8" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak10DL" Offset="0x11830" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak11DL" Offset="0x11868" Static="Off"/>
|
||||
<DList Name="gGanondorfLightStreak12DL" Offset="0x118A0" Static="Off"/>
|
||||
|
||||
<DList Name="gGanondorfShadowSetupDL" Offset="0xE6F8" Static="Off"/>
|
||||
<DList Name="gGanondorfShadowModelDL" Offset="0xE718" Static="Off"/>
|
||||
<DList Name="gGanondorfTriforceDL" Offset="0xF788" Static="Off"/>
|
||||
<DList Name="gGanondorfWindowShardMaterialDL" Offset="0xFC78" Static="Off"/>
|
||||
<DList Name="gGanondorfWindowShardModelDL" Offset="0xFD20" Static="Off"/>
|
||||
<DList Name="gGanondorfLightBallMaterialDL" Offset="0x11578" Static="Off"/>
|
||||
<DList Name="gGanondorfSquareDL" Offset="0x115E8" Static="Off"/>
|
||||
<DList Name="gGanondorfLightningDL" Offset="0x1A640" Static="Off"/>
|
||||
<DList Name="gGanondorfUnusedDL" Offset="0x1A6F0" Static="Off"/>
|
||||
<DList Name="gGanondorfLightRayTriDL" Offset="0x1A768" Static="Off"/>
|
||||
<DList Name="gGanondorfLightFlecksDL" Offset="0x1C1C0" Static="Off"/>
|
||||
<DList Name="gGanondorfBigMagicBGCircleDL" Offset="0x1C2B0" Static="Off"/>
|
||||
<DList Name="gGanondorfDotDL" Offset="0x1C358" Static="Off"/>
|
||||
<DList Name="gGanondorfShockwaveDL" Offset="0x1CDC0" Static="Off"/>
|
||||
<DList Name="gGanondorfImpactDarkDL" Offset="0x1DC58" Static="Off"/>
|
||||
<DList Name="gGanondorfImpactLightDL" Offset="0x1DD70" Static="Off"/>
|
||||
<DList Name="gGanondorfShockGlowDL" Offset="0x1EEC8" Static="Off"/>
|
||||
<DList Name="gGanondorfLightCoreDL" Offset="0x20228" Static="Off"/>
|
||||
<DList Name="gGanondorfShockDL" Offset="0x202F0" Static="Off"/>
|
||||
<DList Name="gGanondorfVortexDL" Offset="0x210D0" Static="Off"/>
|
||||
<DList Name="gGanondorfShadowSetupDL" Offset="0x40" Static="Off"/>
|
||||
<DList Name="gGanondorfShadowModelDL" Offset="0x60" Static="Off"/>
|
||||
<DList Name="gGanondorfTriforceDL" Offset="0x10D0" Static="Off"/>
|
||||
<DList Name="gGanondorfWindowShardMaterialDL" Offset="0x15C0" Static="Off"/>
|
||||
<DList Name="gGanondorfWindowShardModelDL" Offset="0x1668" Static="Off"/>
|
||||
<DList Name="gGanondorfLightBallMaterialDL" Offset="0x2EC0" Static="Off"/>
|
||||
<DList Name="gGanondorfSquareDL" Offset="0x2F30" Static="Off"/>
|
||||
<DList Name="gGanondorfLightningDL" Offset="0xBF88" Static="Off"/>
|
||||
<DList Name="gGanondorfUnusedDL" Offset="0xC038" Static="Off"/>
|
||||
<DList Name="gGanondorfLightRayTriDL" Offset="0xC0B0" Static="Off"/>
|
||||
<DList Name="gGanondorfLightFlecksDL" Offset="0xDB08" Static="Off"/>
|
||||
<DList Name="gGanondorfBigMagicBGCircleDL" Offset="0xDBF8" Static="Off"/>
|
||||
<DList Name="gGanondorfDotDL" Offset="0xDCA0" Static="Off"/>
|
||||
<DList Name="gGanondorfShockwaveDL" Offset="0xE708" Static="Off"/>
|
||||
<DList Name="gGanondorfImpactDarkDL" Offset="0xF5A0" Static="Off"/>
|
||||
<DList Name="gGanondorfImpactLightDL" Offset="0xF6B8" Static="Off"/>
|
||||
<DList Name="gGanondorfShockGlowDL" Offset="0x10810" Static="Off"/>
|
||||
<DList Name="gGanondorfLightCoreDL" Offset="0x11B70" Static="Off"/>
|
||||
<DList Name="gGanondorfShockDL" Offset="0x11C38" Static="Off"/>
|
||||
<DList Name="gGanondorfVortexDL" Offset="0x12A18" Static="Off"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,29 +1,29 @@
|
|||
<Root>
|
||||
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
|
||||
<File Name="ovl_Boss_Ganon2" BaseAddress="0x808FCF40" RangeStart="0xA2C8" RangeEnd="0x10778">
|
||||
<Texture Name="gGanonLightOrbTex" OutName="ganon_light_orb" Format="i8" Width="64" Height="64" Offset="0xA2C8"/>
|
||||
<DList Name="gGanonLightOrbMaterialDL" Offset="0xB308"/>
|
||||
<DList Name="gGanonLightOrbModelDL" Offset="0xB378"/>
|
||||
<DList Name="gGanonShadowMaterialDL" Offset="0xB3D0"/>
|
||||
<DList Name="gGanonShadowModelDL" Offset="0xB3F0"/>
|
||||
<Texture Name="gGanonSwordTrailTex" OutName="ganon_sword_trail" Format="i8" Width="32" Height="32" Offset="0xB420"/>
|
||||
<Texture Name="gGanonSwordTrailMaskTex" OutName="ganon_sword_trail_mask" Format="i4" Width="32" Height="32" Offset="0xB820"/>
|
||||
<Array Name="gGanonSwordTrailVtx" Count="22" Offset="0xBA20">
|
||||
<File Name="ovl_Boss_Ganon2">
|
||||
<Texture Name="gGanonLightOrbTex" OutName="ganon_light_orb" Format="i8" Width="64" Height="64" Offset="0x0"/>
|
||||
<DList Name="gGanonLightOrbMaterialDL" Offset="0x1040"/>
|
||||
<DList Name="gGanonLightOrbModelDL" Offset="0x10B0"/>
|
||||
<DList Name="gGanonShadowMaterialDL" Offset="0x1108"/>
|
||||
<DList Name="gGanonShadowModelDL" Offset="0x1128"/>
|
||||
<Texture Name="gGanonSwordTrailTex" OutName="ganon_sword_trail" Format="i8" Width="32" Height="32" Offset="0x1158"/>
|
||||
<Texture Name="gGanonSwordTrailMaskTex" OutName="ganon_sword_trail_mask" Format="i4" Width="32" Height="32" Offset="0x1558"/>
|
||||
<Array Name="gGanonSwordTrailVtx" Count="22" Offset="0x1758">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="gGanonSwordTrailDL" Offset="0xBB80"/>
|
||||
<Texture Name="gGanonTriforceTex" OutName="ganon_triforce" Format="i8" Width="64" Height="64" Offset="0xBC98"/>
|
||||
<DList Name="gGanonTriforceDL" Offset="0xCCD8"/>
|
||||
<Texture Name="gGanonLightningTex" OutName="ganon_lightning" Format="i4" Width="32" Height="160" Offset="0xCD58"/>
|
||||
<DList Name="gGanonLightningDL" Offset="0xD798"/> <!-- Original name might be "efc_fg2_thunder1_modelT" -->
|
||||
<Texture Name="gGanonFireRingTex" OutName="ganon_fire_ring" Format="i8" Width="32" Height="64" Offset="0xD820"/>
|
||||
<DList Name="gGanonFireRingDL" Offset="0xE1C0"/> <!-- Original name is "ganon_fire_modelT" -->
|
||||
<Texture Name="gGanonZeldaMagicTex" OutName="ganon_zelda_magic" Format="i8" Width="32" Height="64" Offset="0xE2E0"/>
|
||||
<DList Name="gGanonZeldaMagicDL" Offset="0xEC40"/> <!-- Original name is "efc_ganon2_hadou_modelT" ("wave motion; undulation; surge") -->
|
||||
<Texture Name="gGanonMasterSwordShadowTex" OutName="ganon_master_sword_shadow" Format="i8" Width="32" Height="32" Offset="0xED48"/>
|
||||
<DList Name="gGanonMasterSwordShadowDL" Offset="0xF188"/> <!-- Original name is "master_sword_shadow_model" -->
|
||||
<Texture Name="gGanonMasterSwordPommelTex" OutName="ganon_master_sword_pommel" Format="rgba16" Width="16" Height="16" Offset="0xF208"/>
|
||||
<Texture Name="gGanonMasterSwordGuardTex" OutName="ganon_master_sword_guard" Format="rgba16" Width="32" Height="32" Offset="0xF408"/>
|
||||
<DList Name="gGanonMasterSwordDL" Offset="0x103A8"/> <!-- Original name is "master_gn2_swordB_model" -->
|
||||
<DList Name="gGanonSwordTrailDL" Offset="0x18B8"/>
|
||||
<Texture Name="gGanonTriforceTex" OutName="ganon_triforce" Format="i8" Width="64" Height="64" Offset="0x19D0"/>
|
||||
<DList Name="gGanonTriforceDL" Offset="0x2A10"/>
|
||||
<Texture Name="gGanonLightningTex" OutName="ganon_lightning" Format="i4" Width="32" Height="160" Offset="0x2A90"/>
|
||||
<DList Name="gGanonLightningDL" Offset="0x34D0"/> <!-- Original name might be "efc_fg2_thunder1_modelT" -->
|
||||
<Texture Name="gGanonFireRingTex" OutName="ganon_fire_ring" Format="i8" Width="32" Height="64" Offset="0x3558"/>
|
||||
<DList Name="gGanonFireRingDL" Offset="0x3EF8"/> <!-- Original name is "ganon_fire_modelT" -->
|
||||
<Texture Name="gGanonZeldaMagicTex" OutName="ganon_zelda_magic" Format="i8" Width="32" Height="64" Offset="0x4018"/>
|
||||
<DList Name="gGanonZeldaMagicDL" Offset="0x4978"/> <!-- Original name is "efc_ganon2_hadou_modelT" ("wave motion; undulation; surge") -->
|
||||
<Texture Name="gGanonMasterSwordShadowTex" OutName="ganon_master_sword_shadow" Format="i8" Width="32" Height="32" Offset="0x4A80"/>
|
||||
<DList Name="gGanonMasterSwordShadowDL" Offset="0x4EC0"/> <!-- Original name is "master_sword_shadow_model" -->
|
||||
<Texture Name="gGanonMasterSwordPommelTex" OutName="ganon_master_sword_pommel" Format="rgba16" Width="16" Height="16" Offset="0x4F40"/>
|
||||
<Texture Name="gGanonMasterSwordGuardTex" OutName="ganon_master_sword_guard" Format="rgba16" Width="32" Height="32" Offset="0x5140"/>
|
||||
<DList Name="gGanonMasterSwordDL" Offset="0x60E0"/> <!-- Original name is "master_gn2_swordB_model" -->
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<Root>
|
||||
<File Name="ovl_Boss_Sst" BaseAddress="0x8092C5D0" RangeStart="0xA3C0" RangeEnd="0xAD70">
|
||||
<DList Name="sBodyStaticDList" Offset="0xA3C0"/>
|
||||
<DList Name="sHandTrailDList" Offset="0xA3D8"/>
|
||||
<DList Name="sIntroVanishDList" Offset="0xA838"/>
|
||||
<DList Name="sShadowDList" Offset="0xACF0"/>
|
||||
<File Name="ovl_Boss_Sst">
|
||||
<DList Name="sBodyStaticDList" Offset="0x0"/>
|
||||
<DList Name="sHandTrailDList" Offset="0x18"/>
|
||||
<DList Name="sIntroVanishDList" Offset="0x478"/>
|
||||
<DList Name="sShadowDList" Offset="0x930"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<Root>
|
||||
<File Name="ovl_Demo_Shd" BaseAddress="0x80991230" RangeStart="0x450" RangeEnd="0x23D0">
|
||||
<File Name="ovl_Demo_Shd">
|
||||
|
||||
<DList Name="D_809932D0" Offset="0x20A0"/>
|
||||
<DList Name="D_80993390" Offset="0x2160"/>
|
||||
<DList Name="D_809934B8" Offset="0x2288"/>
|
||||
<DList Name="D_809932D0" Offset="0x1C50"/>
|
||||
<DList Name="D_80993390" Offset="0x1D10"/>
|
||||
<DList Name="D_809934B8" Offset="0x1E38"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<Root>
|
||||
<File Name="ovl_Effect_Ss_Fhg_Flash" BaseAddress="0x809A4660" RangeStart="0xA60" RangeEnd="0xF18">
|
||||
<Array Name="sShockVtx" Count="4" Offset="0xA60">
|
||||
<File Name="ovl_Effect_Ss_Fhg_Flash">
|
||||
<Array Name="sShockVtx" Count="4" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sShockDL" Offset="0xAA0"/>
|
||||
<Texture Name="sShockTex" OutName="shock" Format="i8" Width="32" Height="32" Offset="0xB18"/>
|
||||
<DList Name="sShockDL" Offset="0x40"/>
|
||||
<Texture Name="sShockTex" OutName="shock" Format="i8" Width="32" Height="32" Offset="0xB8"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
<Root>
|
||||
<File Name="ovl_Elf_Msg" BaseAddress="0x809ACB20" RangeStart="0x758" RangeEnd="0x9D8">
|
||||
<File Name="ovl_Elf_Msg">
|
||||
|
||||
<DList Name="D_809AD278" Offset="0x758"/>
|
||||
<DList Name="D_809AD278" Offset="0x0"/>
|
||||
|
||||
<Array Name="sCylinderVtx" Count="16" Offset="0x798">
|
||||
<Array Name="sCylinderVtx" Count="16" Offset="0x40">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sCylinderDL" Offset="0x898"/>
|
||||
<DList Name="sCylinderDL" Offset="0x140"/>
|
||||
|
||||
<Array Name="sCubeVtx" Count="8" Offset="0x918">
|
||||
<Array Name="sCubeVtx" Count="8" Offset="0x1C0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sCubeDL" Offset="0x998"/>
|
||||
<DList Name="sCubeDL" Offset="0x240"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<Root>
|
||||
<File Name="ovl_Elf_Msg2" BaseAddress="0x809AD700" RangeStart="0x538" RangeEnd="0x638">
|
||||
<File Name="ovl_Elf_Msg2">
|
||||
|
||||
<DList Name="D_809ADC38" Offset="0x538"/>
|
||||
<DList Name="D_809ADC38" Offset="0x0"/>
|
||||
|
||||
<Array Name="sCubeVtx" Count="8" Offset="0x578">
|
||||
<Array Name="sCubeVtx" Count="8" Offset="0x40">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sCubeDL" Offset="0x5F8"/>
|
||||
<DList Name="sCubeDL" Offset="0xC0"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Bili" BaseAddress="0x809BF8A0" RangeStart="0x1E50" RangeEnd="0x1E70">
|
||||
<DList Name="D_809C16F0" Offset="0x1E50"/>
|
||||
<DList Name="D_809C1700" Offset="0x1E60"/>
|
||||
<File Name="ovl_En_Bili">
|
||||
<DList Name="D_809C16F0" Offset="0x0"/>
|
||||
<DList Name="D_809C1700" Offset="0x10"/>
|
||||
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,14 +1,14 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Clear_Tag" BaseAddress="0x809D35B0" RangeStart="0x26F0" RangeEnd="0x89F0">
|
||||
<DList Name="gArwingDL" Offset="0x26F0"/>
|
||||
<DList Name="gArwingLaserDL" Offset="0x6388"/>
|
||||
<DList Name="gArwingBackfireDL" Offset="0x6688"/>
|
||||
<DList Name="gArwingDebrisEffectMaterialDL" Offset="0x6A38"/>
|
||||
<DList Name="gArwingDebrisEffectDL" Offset="0x6AB8"/>
|
||||
<DList Name="gArwingFireEffectMaterialDL" Offset="0x7100"/>
|
||||
<DList Name="gArwingFireEffectDL" Offset="0x71A8"/>
|
||||
<DList Name="gArwingFlashEffectDL" Offset="0x8208"/>
|
||||
<DList Name="gArwingFlashEffectGroundDL" Offset="0x84B8"/>
|
||||
<DList Name="gArwingShadowDL" Offset="0x8970"/>
|
||||
<File Name="ovl_En_Clear_Tag">
|
||||
<DList Name="gArwingDL" Offset="0x0"/>
|
||||
<DList Name="gArwingLaserDL" Offset="0x3C98"/>
|
||||
<DList Name="gArwingBackfireDL" Offset="0x3F98"/>
|
||||
<DList Name="gArwingDebrisEffectMaterialDL" Offset="0x4348"/>
|
||||
<DList Name="gArwingDebrisEffectDL" Offset="0x43C8"/>
|
||||
<DList Name="gArwingFireEffectMaterialDL" Offset="0x4A10"/>
|
||||
<DList Name="gArwingFireEffectDL" Offset="0x4AB8"/>
|
||||
<DList Name="gArwingFlashEffectDL" Offset="0x5B18"/>
|
||||
<DList Name="gArwingFlashEffectGroundDL" Offset="0x5DC8"/>
|
||||
<DList Name="gArwingShadowDL" Offset="0x6280"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,21 +1,21 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Ganon_Mant" BaseAddress="0x80A23D60" RangeStart="0x1218" RangeEnd="0x4118">
|
||||
<Texture Name="gMantTex" OutName="mant" Format="rgba16" Width="32" Height="64" Offset="0x1218"/>
|
||||
<File Name="ovl_En_Ganon_Mant">
|
||||
<Texture Name="gMantTex" OutName="mant" Format="rgba16" Width="32" Height="64" Offset="0x0"/>
|
||||
|
||||
<Texture Name="gMantUnusedTex" OutName="mant_unused" Format="rgba16" Width="32" Height="32" Offset="0x2218"/>
|
||||
<Texture Name="gMantUnusedTex" OutName="mant_unused" Format="rgba16" Width="32" Height="32" Offset="0x1000"/>
|
||||
|
||||
<Array Name="gMant1Vtx" Count="144" Offset="0x2A18">
|
||||
<Array Name="gMant1Vtx" Count="144" Offset="0x1800">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<DList Name="gMantMaterialDL" Offset="0x3318"/>
|
||||
<DList Name="gMantMaterialDL" Offset="0x2100"/>
|
||||
|
||||
<!-- ! @bug gMantUnusedTex is 32x32 not 32x64, however this dlist is unused -->
|
||||
<DList Name="gMantUnusedMaterialDL" Offset="0x3370"/>
|
||||
<DList Name="gMantUnusedMaterialDL" Offset="0x2158"/>
|
||||
|
||||
<DList Name="gMantDL" Offset="0x33C8"/>
|
||||
<DList Name="gMantDL" Offset="0x21B0"/>
|
||||
|
||||
<Array Name="gMant2Vtx" Count="144" Offset="0x3818">
|
||||
<Array Name="gMant2Vtx" Count="144" Offset="0x2600">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
</File>
|
||||
|
|
|
@ -1,19 +1,19 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Ganon_Organ" BaseAddress="0x80A28000" RangeStart="0x3E0" RangeEnd="0x6F70">
|
||||
<Texture Name="sRoomCarpetTex" OutName="room_carpet" Format="rgba16" Width="64" Height="16" Offset="0x3E8"/>
|
||||
<Texture Name="sRoomOrganPipeTex" OutName="room_organ_pipe" Format="i4" Width="16" Height="64" Offset="0xBE8"/>
|
||||
<Texture Name="sRoomOrganCorbelsTex" OutName="room_organ_corbels" Format="i4" Width="16" Height="16" Offset="0xDE8"/>
|
||||
<Texture Name="sRoomOrganGrillTex" OutName="room_organ_grill" Format="rgba16" Width="16" Height="16" Offset="0xE68"/>
|
||||
<Texture Name="sRoomCrestFriezeTex" OutName="room_crest_frieze" Format="i4" Width="32" Height="32" Offset="0x1068"/>
|
||||
<Texture Name="sRoomColumnFriezeAndCanopyTex" OutName="room_column_frieze_and_canopy" Format="i4" Width="16" Height="16" Offset="0x1268"/>
|
||||
<Texture Name="sRoomColumnMetalEdgingTex" OutName="room_metal_edging" Format="rgba16" Width="16" Height="16" Offset="0x12E8"/>
|
||||
<Texture Name="sRoomStatueWingTex" OutName="room_statue_wing" Format="rgba16" Width="16" Height="16" Offset="0x14E8"/>
|
||||
<Texture Name="sRoomPillarTex" OutName="room_pillar" Format="i8" Width="8" Height="32" Offset="0x16E8"/>
|
||||
<Texture Name="sRoomOrganKeyboardTex" OutName="room_organ_keyboard" Format="rgba16" Width="32" Height="8" Offset="0x17E8"/>
|
||||
<Texture Name="sRoomOrganKeyEndTex" OutName="room_organ_key_end" Format="rgba16" Width="4" Height="8" Offset="0x19E8"/>
|
||||
<Texture Name="sRoomStepTex" OutName="room_step" Format="i4" Width="16" Height="16" Offset="0x1A28"/>
|
||||
<File Name="ovl_En_Ganon_Organ">
|
||||
<Texture Name="sRoomCarpetTex" OutName="room_carpet" Format="rgba16" Width="64" Height="16" Offset="0x0"/>
|
||||
<Texture Name="sRoomOrganPipeTex" OutName="room_organ_pipe" Format="i4" Width="16" Height="64" Offset="0x800"/>
|
||||
<Texture Name="sRoomOrganCorbelsTex" OutName="room_organ_corbels" Format="i4" Width="16" Height="16" Offset="0xA00"/>
|
||||
<Texture Name="sRoomOrganGrillTex" OutName="room_organ_grill" Format="rgba16" Width="16" Height="16" Offset="0xA80"/>
|
||||
<Texture Name="sRoomCrestFriezeTex" OutName="room_crest_frieze" Format="i4" Width="32" Height="32" Offset="0xC80"/>
|
||||
<Texture Name="sRoomColumnFriezeAndCanopyTex" OutName="room_column_frieze_and_canopy" Format="i4" Width="16" Height="16" Offset="0xE80"/>
|
||||
<Texture Name="sRoomColumnMetalEdgingTex" OutName="room_metal_edging" Format="rgba16" Width="16" Height="16" Offset="0xF00"/>
|
||||
<Texture Name="sRoomStatueWingTex" OutName="room_statue_wing" Format="rgba16" Width="16" Height="16" Offset="0x1100"/>
|
||||
<Texture Name="sRoomPillarTex" OutName="room_pillar" Format="i8" Width="8" Height="32" Offset="0x1300"/>
|
||||
<Texture Name="sRoomOrganKeyboardTex" OutName="room_organ_keyboard" Format="rgba16" Width="32" Height="8" Offset="0x1400"/>
|
||||
<Texture Name="sRoomOrganKeyEndTex" OutName="room_organ_key_end" Format="rgba16" Width="4" Height="8" Offset="0x1600"/>
|
||||
<Texture Name="sRoomStepTex" OutName="room_step" Format="i4" Width="16" Height="16" Offset="0x1640"/>
|
||||
|
||||
<DList Name="sRoomOrganAndFloorDL" Offset="0x4CA8"/>
|
||||
<DList Name="sRoomStatuesDL" Offset="0x6AB0"/>
|
||||
<DList Name="sRoomOrganAndFloorDL" Offset="0x48C0"/>
|
||||
<DList Name="sRoomStatuesDL" Offset="0x66C8"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Holl" BaseAddress="0x80A58C10" RangeStart="0xE78" RangeEnd="0xEE0">
|
||||
<Array Name="sPlaneVtx" Count="4" Offset="0xE78">
|
||||
<File Name="ovl_En_Holl">
|
||||
<Array Name="sPlaneVtx" Count="4" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sPlaneDL" Offset="0xEB8"/>
|
||||
<DList Name="sPlaneDL" Offset="0x40"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,38 +1,38 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Jsjutan" BaseAddress="0x80A897A0" RangeStart="0x12F8" RangeEnd="0x4C88">
|
||||
<File Name="ovl_En_Jsjutan">
|
||||
<!-- D_80A8AA98. Carpet texture. -->
|
||||
<Texture Name="sCarpetTex" OutName="carpet" Format="rgba16" Width="32" Height="64" Offset="0x12F8"/>
|
||||
<Texture Name="sCarpetTex" OutName="carpet" Format="rgba16" Width="32" Height="64" Offset="0x0"/>
|
||||
|
||||
<!-- D_80A8BA98. Carpet's shadow vertices. Same vertex type as sShadowEvenVtx. Used when gameplayFrames is odd. -->
|
||||
<Array Name="gShadowOddVtx" Count="144" Offset="0x22F8">
|
||||
<Array Name="gShadowOddVtx" Count="144" Offset="0x1000">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<!-- D_80A8C398. Carpet's shadow vertices. Same vertex type as gShadowOddVtx. Used when gameplayFrames is even. -->
|
||||
<Array Name="sShadowEvenVtx" Count="144" Offset="0x2BF8">
|
||||
<Array Name="sShadowEvenVtx" Count="144" Offset="0x1900">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<!-- D_80A8CC98. Carpet vertices. Same vertex type as sCarpetEvenVtx. Used when gameplayFrames is odd. -->
|
||||
<Array Name="sCarpetOddVtx" Count="144" Offset="0x34F8">
|
||||
<Array Name="sCarpetOddVtx" Count="144" Offset="0x2200">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<!-- D_80A8E610. Variable declared in `.bss` of EnJsjutan. Used by sShadowMaterialDL -->
|
||||
<Symbol Name="sShadowTex" Type="u8" TypeSize="1" Count="0x800" Offset="0x4E70"/>
|
||||
<Symbol Name="sShadowTex" Type="u8" TypeSize="1" Count="0x800" Offset="0x3B78"/>
|
||||
|
||||
<!-- D_80A8D598. Draws the carpet's texture. -->
|
||||
<DList Name="sCarpetMaterialDL" Offset="0x3DF8"/>
|
||||
<DList Name="sCarpetMaterialDL" Offset="0x2B00"/>
|
||||
<!-- D_80A8D618. Draws the carpet's shadow texture. -->
|
||||
<DList Name="sShadowMaterialDL" Offset="0x3E78"/>
|
||||
<DList Name="sShadowMaterialDL" Offset="0x2B80"/>
|
||||
|
||||
<!-- D_80A8D688. Draws vertices in segment 0x0C. -->
|
||||
<DList Name="sModelDL" Offset="0x3EE8"/>
|
||||
<DList Name="sModelDL" Offset="0x2BF0"/>
|
||||
|
||||
<!-- D_80A8DAB8. Carpet vertices. Same vertex type as sCarpetOddVtx. Used when gameplayFrames is even. -->
|
||||
<Array Name="sCarpetEvenVtx" Count="144" Offset="0x4318">
|
||||
<Array Name="sCarpetEvenVtx" Count="144" Offset="0x3020">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<!-- D_80A8E400 -->
|
||||
<Collision Name="sCol" Offset="0x4C60"/>
|
||||
<Collision Name="sCol" Offset="0x3968"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Kanban" BaseAddress="0x80A91FA0" RangeStart="0x2F80" RangeEnd="0x3040">
|
||||
<Array Name="sShadowVtx" Count="4" Offset="0x2F80">
|
||||
<File Name="ovl_En_Kanban">
|
||||
<Array Name="sShadowVtx" Count="4" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sShadowDL" Offset="0x2FC0"/>
|
||||
<DList Name="sShadowDL" Offset="0x40"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,9 +1,9 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Sda" BaseAddress="0x80AF8E20" RangeStart="0x1578" RangeEnd="0x1608">
|
||||
<Array Name="D_80AFA398" Count="4" Offset="0x1578">
|
||||
<File Name="ovl_En_Sda">
|
||||
<Array Name="D_80AFA398" Count="4" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="D_80AFA3D8" Offset="0x15B8"/>
|
||||
<DList Name="D_80AFA3F8" Offset="0x15D8"/>
|
||||
<DList Name="D_80AFA3D8" Offset="0x40"/>
|
||||
<DList Name="D_80AFA3F8" Offset="0x60"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Ssh" BaseAddress="0x80B02270" RangeStart="0x2150" RangeEnd="0x21E0">
|
||||
<Array Name="D_80B043C0" Count="4" Offset="0x2150">
|
||||
<File Name="ovl_En_Ssh">
|
||||
<Array Name="D_80B043C0" Count="4" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="D_80B04400" Offset="0x2190"/>
|
||||
<DList Name="D_80B04400" Offset="0x40"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_St" BaseAddress="0x80B04890" RangeStart="0x26B0" RangeEnd="0x2740">
|
||||
<Array Name="sSkulltulaUnusedVtx" Count="4" Offset="0x26B0">
|
||||
<File Name="ovl_En_St">
|
||||
<Array Name="sSkulltulaUnusedVtx" Count="4" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sSkulltulaUnusedDL" Offset="0x26F0"/>
|
||||
<DList Name="sSkulltulaUnusedDL" Offset="0x40"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<Root>
|
||||
<File Name="ovl_En_Sth" BaseAddress="0x80B07540" RangeStart="0xEF0" RangeEnd="0x3EC4">
|
||||
<Texture Name="sNoseTex" OutName="nose" Format="rgba16" Width="8" Height="8" Offset="0xEF0"/>
|
||||
<Texture Name="sHair1Tex" OutName="hair_1" Format="rgba16" Width="8" Height="16" Offset="0xF70"/>
|
||||
<Texture Name="sEar1Tex" OutName="ear_1" Format="rgba16" Width="8" Height="8" Offset="0x1070"/>
|
||||
<Texture Name="sEyeTex" OutName="eye" Format="rgba16" Width="32" Height="32" Offset="0x10F0"/>
|
||||
<Texture Name="sMouthTex" OutName="mouth" Format="rgba16" Width="32" Height="16" Offset="0x18F0"/>
|
||||
<Texture Name="sEar2Tex" OutName="ear_2" Format="rgba16" Width="8" Height="8" Offset="0x1CF0"/>
|
||||
<Texture Name="sHair2Tex" OutName="hair_2" Format="rgba16" Width="8" Height="16" Offset="0x1D70"/>
|
||||
<DList Name="D_80B0A050" Offset="0x2B10"/>
|
||||
<DList Name="D_80B0A3C0" Offset="0x2E80"/>
|
||||
<Animation Name="sChildDanceAnim" Offset="0x3620"/>
|
||||
<Animation Name="sParentDanceAnim" Offset="0x3EB4"/>
|
||||
<File Name="ovl_En_Sth">
|
||||
<Texture Name="sNoseTex" OutName="nose" Format="rgba16" Width="8" Height="8" Offset="0x0"/>
|
||||
<Texture Name="sHair1Tex" OutName="hair_1" Format="rgba16" Width="8" Height="16" Offset="0x80"/>
|
||||
<Texture Name="sEar1Tex" OutName="ear_1" Format="rgba16" Width="8" Height="8" Offset="0x180"/>
|
||||
<Texture Name="sEyeTex" OutName="eye" Format="rgba16" Width="32" Height="32" Offset="0x200"/>
|
||||
<Texture Name="sMouthTex" OutName="mouth" Format="rgba16" Width="32" Height="16" Offset="0xA00"/>
|
||||
<Texture Name="sEar2Tex" OutName="ear_2" Format="rgba16" Width="8" Height="8" Offset="0xE00"/>
|
||||
<Texture Name="sHair2Tex" OutName="hair_2" Format="rgba16" Width="8" Height="16" Offset="0xE80"/>
|
||||
<DList Name="D_80B0A050" Offset="0x1C20"/>
|
||||
<DList Name="D_80B0A3C0" Offset="0x1F90"/>
|
||||
<Animation Name="sChildDanceAnim" Offset="0x2730"/>
|
||||
<Animation Name="sParentDanceAnim" Offset="0x2FC4"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
<Root>
|
||||
<File Name="ovl_End_Title" BaseAddress="0x80B65720" RangeStart="0x780" RangeEnd="0x4128">
|
||||
<Texture Name="sTheLegendOfZeldaTex" OutName="the_legend_of_zelda" Format="ia8" Width="120" Height="24" Offset="0x780"/>
|
||||
<Texture Name="sOcarinaOfTimeTex" OutName="ocarina_of_time" Format="ia8" Width="112" Height="16" Offset="0x12C0"/>
|
||||
<Texture Name="sTheEndTex" OutName="the_end" Format="ia8" Width="80" Height="24" Offset="0x19C0"/>
|
||||
<Texture Name="sNintendoLeftTex" OutName="nintendo_left" Format="ia8" Width="64" Height="48" Offset="0x2140"/>
|
||||
<Texture Name="sNintendoRightTex" OutName="nintendo_right" Format="ia8" Width="64" Height="48" Offset="0x2D40"/>
|
||||
<Texture Name="sPresentedByTex" OutName="presented_by" Format="ia8" Width="96" Height="16" Offset="0x3940"/>
|
||||
<File Name="ovl_End_Title">
|
||||
<Texture Name="sTheLegendOfZeldaTex" OutName="the_legend_of_zelda" Format="ia8" Width="120" Height="24" Offset="0x0"/>
|
||||
<Texture Name="sOcarinaOfTimeTex" OutName="ocarina_of_time" Format="ia8" Width="112" Height="16" Offset="0xB40"/>
|
||||
<Texture Name="sTheEndTex" OutName="the_end" Format="ia8" Width="80" Height="24" Offset="0x1240"/>
|
||||
<Texture Name="sNintendoLeftTex" OutName="nintendo_left" Format="ia8" Width="64" Height="48" Offset="0x19C0"/>
|
||||
<Texture Name="sNintendoRightTex" OutName="nintendo_right" Format="ia8" Width="64" Height="48" Offset="0x25C0"/>
|
||||
<Texture Name="sPresentedByTex" OutName="presented_by" Format="ia8" Width="96" Height="16" Offset="0x31C0"/>
|
||||
|
||||
<Array Name="sTriforceVtx" Count="6" Offset="0x3F40">
|
||||
<Array Name="sTriforceVtx" Count="6" Offset="0x37C0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sTriforceDL" Offset="0x3FA0"/>
|
||||
<DList Name="sTriforceDL" Offset="0x3820"/>
|
||||
|
||||
<DList Name="sPresentedByNintendoDL" Offset="0x4000"/>
|
||||
<DList Name="sPresentedByNintendoDL" Offset="0x3880"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,28 +0,0 @@
|
|||
<Root>
|
||||
<File Name="ovl_file_choose" BaseAddress="0x80803D40" RangeStart="0xDE70" RangeEnd="0xE6B0">
|
||||
<Array Name="D_80811BB0" Count="24" Offset="0xDE70" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80811D30" Count="16" Offset="0xDFF0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80811E30" Count="16" Offset="0xE0F0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80811F30" Count="32" Offset="0xE1F0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80812130" Count="32" Offset="0xE3F0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerTopVtx" Count="4" Offset="0xE5F0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerMiddleVtx" Count="4" Offset="0xE630" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerBottomVtx" Count="4" Offset="0xE670" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,13 +1,13 @@
|
|||
<Root>
|
||||
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
|
||||
<File Name="ovl_Magic_Dark" BaseAddress="0x80B873D0" RangeStart="0xD10" RangeEnd="0x1740">
|
||||
<Texture Name="sDiamondTex" OutName="diamond_texture" Format="i8" Width="32" Height="64" Offset="0xD10"/>
|
||||
<File Name="ovl_Magic_Dark">
|
||||
<Texture Name="sDiamondTex" OutName="diamond_texture" Format="i8" Width="32" Height="64" Offset="0x0"/>
|
||||
|
||||
<Array Name="sDiamondVtx" Count="20" Offset="0x1510">
|
||||
<Array Name="sDiamondVtx" Count="20" Offset="0x800">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
|
||||
<DList Name="sDiamondMaterialDL" Offset="0x1650"/>
|
||||
<DList Name="sDiamondModelDL" Offset="0x1700"/>
|
||||
<DList Name="sDiamondMaterialDL" Offset="0x940"/>
|
||||
<DList Name="sDiamondModelDL" Offset="0x9F0"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<Root>
|
||||
<File Name="ovl_Magic_Fire" BaseAddress="0x80B88D70" RangeStart="0xB90" RangeEnd="0x21E0">
|
||||
<Texture Name="sTex" OutName="dins_fire" Format="i8" Width="64" Height="64" Offset="0xB90"/>
|
||||
<Array Name="sSphereVtx" Count="76" Offset="0x1B90">
|
||||
<File Name="ovl_Magic_Fire">
|
||||
<Texture Name="sTex" OutName="dins_fire" Format="i8" Width="64" Height="64" Offset="0x0"/>
|
||||
<Array Name="sSphereVtx" Count="76" Offset="0x1000">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sMaterialDL" Offset="0x2050"/>
|
||||
<DList Name="sModelDL" Offset="0x2078"/>
|
||||
<DList Name="sMaterialDL" Offset="0x14C0"/>
|
||||
<DList Name="sModelDL" Offset="0x14E8"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,15 +1,15 @@
|
|||
<Root>
|
||||
<File Name="ovl_Magic_Wind" BaseAddress="0x80B8B100" RangeStart="0x780" RangeEnd="0x1C98">
|
||||
<Skeleton Name="sSkel" Type="Curve" LimbType="Curve" Offset="0x1C90"/>
|
||||
<CurveAnimation Name="sAnim" SkelOffset="0x1C90" Offset="0x1C50"/>
|
||||
<Limb Name="sRootLimb" LimbType="Curve" Offset="0x1C60"/>
|
||||
<Limb Name="sInnerCylinderLimb" LimbType="Curve" Offset="0x1C6C"/>
|
||||
<Limb Name="sOuterCylinderLimb" LimbType="Curve" Offset="0x1C78"/>
|
||||
<Array Name="sCylinderVtx" Count="36" Offset="0x780">
|
||||
<File Name="ovl_Magic_Wind">
|
||||
<Skeleton Name="sSkel" Type="Curve" LimbType="Curve" Offset="0x1510"/>
|
||||
<CurveAnimation Name="sAnim" SkelOffset="0x1510" Offset="0x14D0"/>
|
||||
<Limb Name="sRootLimb" LimbType="Curve" Offset="0x14E0"/>
|
||||
<Limb Name="sInnerCylinderLimb" LimbType="Curve" Offset="0x14EC"/>
|
||||
<Limb Name="sOuterCylinderLimb" LimbType="Curve" Offset="0x14F8"/>
|
||||
<Array Name="sCylinderVtx" Count="36" Offset="0x0">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Texture Name="sTex" OutName="magic_wind" Format="i8" Width="64" Height="64" Offset="0x9C0"/>
|
||||
<DList Name="sInnerCylinderDL" Offset="0x19C0"/>
|
||||
<DList Name="sOuterCylinderDL" Offset="0x1AC8"/>
|
||||
<Texture Name="sTex" OutName="magic_wind" Format="i8" Width="64" Height="64" Offset="0x240"/>
|
||||
<DList Name="sInnerCylinderDL" Offset="0x1240"/>
|
||||
<DList Name="sOuterCylinderDL" Offset="0x1348"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<Root>
|
||||
<File Name="ovl_Oceff_Spot" BaseAddress="0x80BA6070" RangeStart="0x7F0" RangeEnd="0xEC8">
|
||||
<Texture Name="sTex" OutName="sun_song_effect" Format="i8" Width="32" Height="32" Offset="0x7F0"/>
|
||||
<Array Name="sCylinderVtx" Count="27" Offset="0xBF0">
|
||||
<File Name="ovl_Oceff_Spot">
|
||||
<Texture Name="sTex" OutName="sun_song_effect" Format="i8" Width="32" Height="32" Offset="0x0"/>
|
||||
<Array Name="sCylinderVtx" Count="27" Offset="0x400">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sCylinderMaterialDL" Offset="0xDA0"/>
|
||||
<DList Name="sCylinderModelDL" Offset="0xE38"/>
|
||||
<DList Name="sCylinderMaterialDL" Offset="0x5B0"/>
|
||||
<DList Name="sCylinderModelDL" Offset="0x648"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<Root>
|
||||
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
|
||||
<File Name="ovl_Oceff_Storm" BaseAddress="0x80BA70E0" RangeStart="0x7B0" RangeEnd="0x1B40">
|
||||
<Texture Name="sTex" OutName="song_of_storms_effect" Format="i8" Width="64" Height="64" Offset="0x7B0"/>
|
||||
<DList Name="sMaterialDL" Offset="0x17B0"/>
|
||||
<Array Name="sCylinderVtx" Count="27" Offset="0x1858">
|
||||
<File Name="ovl_Oceff_Storm">
|
||||
<Texture Name="sTex" OutName="song_of_storms_effect" Format="i8" Width="64" Height="64" Offset="0x0"/>
|
||||
<DList Name="sMaterialDL" Offset="0x1000"/>
|
||||
<Array Name="sCylinderVtx" Count="27" Offset="0x10A8">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sCylinderMaterialDL" Offset="0x1A08"/>
|
||||
<DList Name="sCylinderModelDL" Offset="0x1AB0"/>
|
||||
<DList Name="sCylinderMaterialDL" Offset="0x1258"/>
|
||||
<DList Name="sCylinderModelDL" Offset="0x1300"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<Root>
|
||||
<File Name="ovl_Oceff_Wipe" BaseAddress="0x80BA8D90" RangeStart="0x550" RangeEnd="0xD10">
|
||||
<Texture Name="sTex" OutName="oceff" Format="i8" Width="32" Height="32" Offset="0x550"/>
|
||||
<Array Name="sFrustumVtx" Count="40" Offset="0x950">
|
||||
<File Name="ovl_Oceff_Wipe">
|
||||
<Texture Name="sTex" OutName="oceff" Format="i8" Width="32" Height="32" Offset="0x0"/>
|
||||
<Array Name="sFrustumVtx" Count="40" Offset="0x400">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sMaterialDL" Offset="0xBD0"/>
|
||||
<DList Name="sFrustumDL" Offset="0xC58"/>
|
||||
<DList Name="sMaterialDL" Offset="0x680"/>
|
||||
<DList Name="sFrustumDL" Offset="0x708"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,11 +1,11 @@
|
|||
<Root>
|
||||
<File Name="ovl_Oceff_Wipe2" BaseAddress="0x80BA9BB0" RangeStart="0x480" RangeEnd="0x16E8">
|
||||
<Texture Name="s1Tex" OutName="eponas_song_effect_1" Format="i4" Width="64" Height="64" Offset="0x480"/>
|
||||
<Texture Name="s2Tex" OutName="eponas_song_effect_2" Format="i4" Width="64" Height="64" Offset="0xC80"/>
|
||||
<Array Name="sFrustumVtx" Count="22" Offset="0x1480">
|
||||
<File Name="ovl_Oceff_Wipe2">
|
||||
<Texture Name="s1Tex" OutName="eponas_song_effect_1" Format="i4" Width="64" Height="64" Offset="0x0"/>
|
||||
<Texture Name="s2Tex" OutName="eponas_song_effect_2" Format="i4" Width="64" Height="64" Offset="0x800"/>
|
||||
<Array Name="sFrustumVtx" Count="22" Offset="0x1000">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sMaterialDL" Offset="0x15E0"/>
|
||||
<DList Name="sFrustumDL" Offset="0x1688"/>
|
||||
<DList Name="sMaterialDL" Offset="0x1160"/>
|
||||
<DList Name="sFrustumDL" Offset="0x1208"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,10 +1,10 @@
|
|||
<Root>
|
||||
<File Name="ovl_Oceff_Wipe3" BaseAddress="0x80BAB3F0" RangeStart="0x480" RangeEnd="0x16C8">
|
||||
<Texture Name="sTex" OutName="saria_song_effect" Format="i8" Width="64" Height="64" Offset="0x480"/>
|
||||
<Array Name="sFrustumVtx" Count="22" Offset="0x1480">
|
||||
<File Name="ovl_Oceff_Wipe3">
|
||||
<Texture Name="sTex" OutName="saria_song_effect" Format="i8" Width="64" Height="64" Offset="0x0"/>
|
||||
<Array Name="sFrustumVtx" Count="22" Offset="0x1000">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sMaterialDL" Offset="0x15E0"/>
|
||||
<DList Name="sFrustumDL" Offset="0x1668"/>
|
||||
<DList Name="sMaterialDL" Offset="0x1160"/>
|
||||
<DList Name="sFrustumDL" Offset="0x11E8"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
|
@ -1,12 +1,12 @@
|
|||
<Root>
|
||||
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
|
||||
<File Name="ovl_Oceff_Wipe4" BaseAddress="0x80BACC10" RangeStart="0x460" RangeEnd="0xF48">
|
||||
<Texture Name="sTex" OutName="scarecrow_song_effect" Format="i8" Width="32" Height="64" Offset="0x460"/>
|
||||
<Array Name="sFrustumVtx" Count="22" Offset="0xC60">
|
||||
<File Name="ovl_Oceff_Wipe4">
|
||||
<Texture Name="sTex" OutName="scarecrow_song_effect" Format="i8" Width="32" Height="64" Offset="0x0"/>
|
||||
<Array Name="sFrustumVtx" Count="22" Offset="0x800">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<DList Name="sMaterialDL" Offset="0xDC0"/>
|
||||
<DList Name="sUnusedMaterialDL" Offset="0xE28"/>
|
||||
<DList Name="sMaterial2DL" Offset="0xE90"/>
|
||||
<DList Name="sMaterialDL" Offset="0x960"/>
|
||||
<DList Name="sUnusedMaterialDL" Offset="0x9C8"/>
|
||||
<DList Name="sMaterial2DL" Offset="0xA30"/>
|
||||
</File>
|
||||
</Root>
|
||||
|
|
28
assets/xml/overlays/ovl_file_choose.xml
Normal file
28
assets/xml/overlays/ovl_file_choose.xml
Normal file
|
@ -0,0 +1,28 @@
|
|||
<Root>
|
||||
<File Name="ovl_file_choose">
|
||||
<Array Name="D_80811BB0" Count="24" Offset="0x0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80811D30" Count="16" Offset="0x180" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80811E30" Count="16" Offset="0x280" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80811F30" Count="32" Offset="0x380" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="D_80812130" Count="32" Offset="0x580" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerTopVtx" Count="4" Offset="0x780" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerMiddleVtx" Count="4" Offset="0x7C0" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
<Array Name="gOptionsDividerBottomVtx" Count="4" Offset="0x800" Static="Off">
|
||||
<Vtx/>
|
||||
</Array>
|
||||
</File>
|
||||
</Root>
|
76
assets/xml/scenes/dungeons/Bmori1_mq.xml
Normal file
76
assets/xml/scenes/dungeons/Bmori1_mq.xml
Normal file
|
@ -0,0 +1,76 @@
|
|||
<Root>
|
||||
<File Name="Bmori1_scene" Segment="2">
|
||||
<Texture Name="gForestTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0x14D90"/>
|
||||
<Texture Name="gForestTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x14590"/>
|
||||
<Scene Name="Bmori1_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_0" Segment="3">
|
||||
<Room Name="Bmori1_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_1" Segment="3">
|
||||
<Room Name="Bmori1_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_2" Segment="3">
|
||||
<Room Name="Bmori1_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_3" Segment="3">
|
||||
<Room Name="Bmori1_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_4" Segment="3">
|
||||
<Room Name="Bmori1_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_5" Segment="3">
|
||||
<Room Name="Bmori1_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_6" Segment="3">
|
||||
<Room Name="Bmori1_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_7" Segment="3">
|
||||
<Room Name="Bmori1_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_8" Segment="3">
|
||||
<Room Name="Bmori1_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_9" Segment="3">
|
||||
<Room Name="Bmori1_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_10" Segment="3">
|
||||
<Room Name="Bmori1_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_11" Segment="3">
|
||||
<Room Name="Bmori1_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_12" Segment="3">
|
||||
<Room Name="Bmori1_room_12" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_13" Segment="3">
|
||||
<Room Name="Bmori1_room_13" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_14" Segment="3">
|
||||
<Room Name="Bmori1_room_14" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_15" Segment="3">
|
||||
<Room Name="Bmori1_room_15" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_16" Segment="3">
|
||||
<Room Name="Bmori1_room_16" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_17" Segment="3">
|
||||
<Room Name="Bmori1_room_17" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_18" Segment="3">
|
||||
<Room Name="Bmori1_room_18" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_19" Segment="3">
|
||||
<Room Name="Bmori1_room_19" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_20" Segment="3">
|
||||
<Room Name="Bmori1_room_20" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_21" Segment="3">
|
||||
<Room Name="Bmori1_room_21" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="Bmori1_room_22" Segment="3">
|
||||
<Room Name="Bmori1_room_22" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,6 +1,6 @@
|
|||
<Root>
|
||||
<File Name="HAKAdanCH_scene" Segment="2">
|
||||
<Path Name="HAKAdanCH_scenePathList_000248" Offset="0x0248" NumPaths="2"/>
|
||||
<Path Name="HAKAdanCH_scenePathList_000220" Offset="0x0220" NumPaths="1"/>
|
||||
<Scene Name="HAKAdanCH_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdanCH_room_0" Segment="3">
|
||||
|
|
27
assets/xml/scenes/dungeons/HAKAdanCH_mq.xml
Normal file
27
assets/xml/scenes/dungeons/HAKAdanCH_mq.xml
Normal file
|
@ -0,0 +1,27 @@
|
|||
<Root>
|
||||
<File Name="HAKAdanCH_scene" Segment="2">
|
||||
<Path Name="HAKAdanCH_scenePathList_000248" Offset="0x0248" NumPaths="2"/>
|
||||
<Scene Name="HAKAdanCH_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdanCH_room_0" Segment="3">
|
||||
<Room Name="HAKAdanCH_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdanCH_room_1" Segment="3">
|
||||
<Room Name="HAKAdanCH_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdanCH_room_2" Segment="3">
|
||||
<Room Name="HAKAdanCH_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdanCH_room_3" Segment="3">
|
||||
<Room Name="HAKAdanCH_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdanCH_room_4" Segment="3">
|
||||
<Room Name="HAKAdanCH_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdanCH_room_5" Segment="3">
|
||||
<Room Name="HAKAdanCH_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdanCH_room_6" Segment="3">
|
||||
<Room Name="HAKAdanCH_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
74
assets/xml/scenes/dungeons/HAKAdan_mq.xml
Normal file
74
assets/xml/scenes/dungeons/HAKAdan_mq.xml
Normal file
|
@ -0,0 +1,74 @@
|
|||
<Root>
|
||||
<File Name="HAKAdan_scene" Segment="2">
|
||||
<Scene Name="HAKAdan_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_0" Segment="3">
|
||||
<Room Name="HAKAdan_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_1" Segment="3">
|
||||
<Room Name="HAKAdan_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_2" Segment="3">
|
||||
<Room Name="HAKAdan_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_3" Segment="3">
|
||||
<Room Name="HAKAdan_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_4" Segment="3">
|
||||
<Room Name="HAKAdan_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_5" Segment="3">
|
||||
<Room Name="HAKAdan_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_6" Segment="3">
|
||||
<Room Name="HAKAdan_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_7" Segment="3">
|
||||
<Room Name="HAKAdan_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_8" Segment="3">
|
||||
<Room Name="HAKAdan_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_9" Segment="3">
|
||||
<Room Name="HAKAdan_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_10" Segment="3">
|
||||
<Room Name="HAKAdan_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_11" Segment="3">
|
||||
<Room Name="HAKAdan_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_12" Segment="3">
|
||||
<Room Name="HAKAdan_room_12" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_13" Segment="3">
|
||||
<Room Name="HAKAdan_room_13" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_14" Segment="3">
|
||||
<Room Name="HAKAdan_room_14" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_15" Segment="3">
|
||||
<Room Name="HAKAdan_room_15" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_16" Segment="3">
|
||||
<Room Name="HAKAdan_room_16" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_17" Segment="3">
|
||||
<Room Name="HAKAdan_room_17" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_18" Segment="3">
|
||||
<Room Name="HAKAdan_room_18" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_19" Segment="3">
|
||||
<Room Name="HAKAdan_room_19" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_20" Segment="3">
|
||||
<Room Name="HAKAdan_room_20" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_21" Segment="3">
|
||||
<Room Name="HAKAdan_room_21" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HAKAdan_room_22" Segment="3">
|
||||
<Room Name="HAKAdan_room_22" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,6 +1,6 @@
|
|||
<Root>
|
||||
<File Name="HIDAN_scene" Segment="2">
|
||||
<Path Name="HIDAN_scenePathList_000440" Offset="0x0440" NumPaths="4"/>
|
||||
<Path Name="HIDAN_scenePathList_000558" Offset="0x0558" NumPaths="19"/>
|
||||
<Scene Name="HIDAN_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_0" Segment="3">
|
||||
|
|
87
assets/xml/scenes/dungeons/HIDAN_mq.xml
Normal file
87
assets/xml/scenes/dungeons/HIDAN_mq.xml
Normal file
|
@ -0,0 +1,87 @@
|
|||
<Root>
|
||||
<File Name="HIDAN_scene" Segment="2">
|
||||
<Path Name="HIDAN_scenePathList_000440" Offset="0x0440" NumPaths="4"/>
|
||||
<Scene Name="HIDAN_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_0" Segment="3">
|
||||
<Room Name="HIDAN_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_1" Segment="3">
|
||||
<Room Name="HIDAN_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_2" Segment="3">
|
||||
<Room Name="HIDAN_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_3" Segment="3">
|
||||
<Room Name="HIDAN_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_4" Segment="3">
|
||||
<Room Name="HIDAN_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_5" Segment="3">
|
||||
<Room Name="HIDAN_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_6" Segment="3">
|
||||
<Room Name="HIDAN_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_7" Segment="3">
|
||||
<Room Name="HIDAN_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_8" Segment="3">
|
||||
<Room Name="HIDAN_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_9" Segment="3">
|
||||
<Room Name="HIDAN_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_10" Segment="3">
|
||||
<Room Name="HIDAN_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_11" Segment="3">
|
||||
<Room Name="HIDAN_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_12" Segment="3">
|
||||
<Room Name="HIDAN_room_12" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_13" Segment="3">
|
||||
<Room Name="HIDAN_room_13" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_14" Segment="3">
|
||||
<Room Name="HIDAN_room_14" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_15" Segment="3">
|
||||
<Room Name="HIDAN_room_15" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_16" Segment="3">
|
||||
<Room Name="HIDAN_room_16" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_17" Segment="3">
|
||||
<Room Name="HIDAN_room_17" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_18" Segment="3">
|
||||
<Room Name="HIDAN_room_18" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_19" Segment="3">
|
||||
<Room Name="HIDAN_room_19" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_20" Segment="3">
|
||||
<Room Name="HIDAN_room_20" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_21" Segment="3">
|
||||
<Room Name="HIDAN_room_21" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_22" Segment="3">
|
||||
<Room Name="HIDAN_room_22" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_23" Segment="3">
|
||||
<Room Name="HIDAN_room_23" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_24" Segment="3">
|
||||
<Room Name="HIDAN_room_24" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_25" Segment="3">
|
||||
<Room Name="HIDAN_room_25" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="HIDAN_room_26" Segment="3">
|
||||
<Room Name="HIDAN_room_26" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,8 +1,8 @@
|
|||
<Root>
|
||||
<File Name="MIZUsin_scene" Segment="2">
|
||||
<Path Name="MIZUsin_scenePathList_000384" Offset="0x0384" NumPaths="2"/>
|
||||
<Texture Name="gWaterTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="64" Offset="0x14C30"/>
|
||||
<Texture Name="gWaterTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="64" Offset="0x15830"/>
|
||||
<Path Name="MIZUsin_scenePathList_000424" Offset="0x0424" NumPaths="7"/>
|
||||
<Texture Name="gWaterTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="64" Offset="0x14CF0"/>
|
||||
<Texture Name="gWaterTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="64" Offset="0x158F0"/>
|
||||
<Scene Name="MIZUsin_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_0" Segment="3">
|
||||
|
|
77
assets/xml/scenes/dungeons/MIZUsin_mq.xml
Normal file
77
assets/xml/scenes/dungeons/MIZUsin_mq.xml
Normal file
|
@ -0,0 +1,77 @@
|
|||
<Root>
|
||||
<File Name="MIZUsin_scene" Segment="2">
|
||||
<Path Name="MIZUsin_scenePathList_000384" Offset="0x0384" NumPaths="2"/>
|
||||
<Texture Name="gWaterTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="64" Offset="0x14C30"/>
|
||||
<Texture Name="gWaterTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="64" Offset="0x15830"/>
|
||||
<Scene Name="MIZUsin_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_0" Segment="3">
|
||||
<Room Name="MIZUsin_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_1" Segment="3">
|
||||
<Room Name="MIZUsin_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_2" Segment="3">
|
||||
<Room Name="MIZUsin_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_3" Segment="3">
|
||||
<Room Name="MIZUsin_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_4" Segment="3">
|
||||
<Room Name="MIZUsin_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_5" Segment="3">
|
||||
<Room Name="MIZUsin_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_6" Segment="3">
|
||||
<Room Name="MIZUsin_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_7" Segment="3">
|
||||
<Room Name="MIZUsin_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_8" Segment="3">
|
||||
<Room Name="MIZUsin_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_9" Segment="3">
|
||||
<Room Name="MIZUsin_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_10" Segment="3">
|
||||
<Room Name="MIZUsin_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_11" Segment="3">
|
||||
<Room Name="MIZUsin_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_12" Segment="3">
|
||||
<Room Name="MIZUsin_room_12" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_13" Segment="3">
|
||||
<Room Name="MIZUsin_room_13" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_14" Segment="3">
|
||||
<Room Name="MIZUsin_room_14" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_15" Segment="3">
|
||||
<Room Name="MIZUsin_room_15" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_16" Segment="3">
|
||||
<Room Name="MIZUsin_room_16" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_17" Segment="3">
|
||||
<Room Name="MIZUsin_room_17" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_18" Segment="3">
|
||||
<Room Name="MIZUsin_room_18" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_19" Segment="3">
|
||||
<Room Name="MIZUsin_room_19" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_20" Segment="3">
|
||||
<Room Name="MIZUsin_room_20" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_21" Segment="3">
|
||||
<Room Name="MIZUsin_room_21" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="MIZUsin_room_22" Segment="3">
|
||||
<Room Name="MIZUsin_room_22" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,6 +1,6 @@
|
|||
<Root>
|
||||
<File Name="bdan_scene" Segment="2">
|
||||
<Cutscene Name="gJabuJabuIntroCs" Offset="0x15600"/>
|
||||
<Cutscene Name="gJabuJabuIntroCs" Offset="0x155E0"/>
|
||||
<Scene Name="bdan_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_0" Segment="3">
|
||||
|
|
54
assets/xml/scenes/dungeons/bdan_mq.xml
Normal file
54
assets/xml/scenes/dungeons/bdan_mq.xml
Normal file
|
@ -0,0 +1,54 @@
|
|||
<Root>
|
||||
<File Name="bdan_scene" Segment="2">
|
||||
<Cutscene Name="gJabuJabuIntroCs" Offset="0x15600"/>
|
||||
<Scene Name="bdan_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_0" Segment="3">
|
||||
<Room Name="bdan_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_1" Segment="3">
|
||||
<Room Name="bdan_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_2" Segment="3">
|
||||
<Room Name="bdan_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_3" Segment="3">
|
||||
<Room Name="bdan_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_4" Segment="3">
|
||||
<Room Name="bdan_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_5" Segment="3">
|
||||
<Room Name="bdan_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_6" Segment="3">
|
||||
<Room Name="bdan_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_7" Segment="3">
|
||||
<Room Name="bdan_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_8" Segment="3">
|
||||
<Room Name="bdan_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_9" Segment="3">
|
||||
<Room Name="bdan_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_10" Segment="3">
|
||||
<Room Name="bdan_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_11" Segment="3">
|
||||
<Room Name="bdan_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_12" Segment="3">
|
||||
<Room Name="bdan_room_12" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_13" Segment="3">
|
||||
<Room Name="bdan_room_13" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_14" Segment="3">
|
||||
<Room Name="bdan_room_14" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="bdan_room_15" Segment="3">
|
||||
<Room Name="bdan_room_15" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
70
assets/xml/scenes/dungeons/ddan_mq.xml
Normal file
70
assets/xml/scenes/dungeons/ddan_mq.xml
Normal file
|
@ -0,0 +1,70 @@
|
|||
<Root>
|
||||
<File Name="ddan_scene" Segment="2">
|
||||
<Texture Name="gDCDayEntranceTex" OutName="day_entrance" Format="ci8" Width="32" Height="64" Offset="0x12378" TlutOffset="0x11D70"/>
|
||||
<Texture Name="gDCNightEntranceTex" OutName="night_entrance" Format="ci8" Width="32" Height="64" Offset="0x13378" TlutOffset="0x11D70"/>
|
||||
|
||||
<!-- These textures are used in room 0 with a TLUT at 0x11290 in room 0, and in room 3 with a TLUT at 0x008630 in room 3 (those two TLUTs are identical, but duplicated) -->
|
||||
<Texture Name="gDCLavaFloor1Tex" OutName="lava_floor_1" Format="ci8" Width="32" Height="32" Offset="0x11F78" ExternalTlut="ddan_room_0" ExternalTlutOffset="0x11290"/>
|
||||
<Texture Name="gDCLavaFloor2Tex" OutName="lava_floor_2" Format="ci8" Width="32" Height="32" Offset="0x14778" ExternalTlut="ddan_room_0" ExternalTlutOffset="0x11290"/>
|
||||
<Texture Name="gDCLavaFloor3Tex" OutName="lava_floor_3" Format="ci8" Width="32" Height="32" Offset="0x14378" ExternalTlut="ddan_room_0" ExternalTlutOffset="0x11290"/>
|
||||
<Texture Name="gDCLavaFloor4Tex" OutName="lava_floor_4" Format="ci8" Width="32" Height="32" Offset="0x13F78" ExternalTlut="ddan_room_0" ExternalTlutOffset="0x11290"/>
|
||||
<Texture Name="gDCLavaFloor5Tex" OutName="lava_floor_5" Format="ci8" Width="32" Height="32" Offset="0x14B78" ExternalTlut="ddan_room_0" ExternalTlutOffset="0x11290"/>
|
||||
<Texture Name="gDCLavaFloor6Tex" OutName="lava_floor_6" Format="ci8" Width="32" Height="32" Offset="0x13B78" ExternalTlut="ddan_room_0" ExternalTlutOffset="0x11290"/>
|
||||
<Texture Name="gDCLavaFloor7Tex" OutName="lava_floor_7" Format="ci8" Width="32" Height="32" Offset="0x12F78" ExternalTlut="ddan_room_0" ExternalTlutOffset="0x11290"/>
|
||||
<Texture Name="gDCLavaFloor8Tex" OutName="lava_floor_8" Format="ci8" Width="32" Height="32" Offset="0x12B78" ExternalTlut="ddan_room_0" ExternalTlutOffset="0x11290"/>
|
||||
|
||||
<Cutscene Name="gDcOpeningCs" Offset="0x14F80"/>
|
||||
<Scene Name="ddan_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_0" Segment="3">
|
||||
<Room Name="ddan_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_1" Segment="3">
|
||||
<Room Name="ddan_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_2" Segment="3">
|
||||
<Room Name="ddan_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_3" Segment="3">
|
||||
<Room Name="ddan_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_4" Segment="3">
|
||||
<Room Name="ddan_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_5" Segment="3">
|
||||
<Room Name="ddan_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_6" Segment="3">
|
||||
<Room Name="ddan_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_7" Segment="3">
|
||||
<Room Name="ddan_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_8" Segment="3">
|
||||
<Room Name="ddan_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_9" Segment="3">
|
||||
<Room Name="ddan_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_10" Segment="3">
|
||||
<Room Name="ddan_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_11" Segment="3">
|
||||
<Room Name="ddan_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_12" Segment="3">
|
||||
<Room Name="ddan_room_12" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_13" Segment="3">
|
||||
<Room Name="ddan_room_13" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_14" Segment="3">
|
||||
<Room Name="ddan_room_14" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_15" Segment="3">
|
||||
<Room Name="ddan_room_15" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ddan_room_16" Segment="3">
|
||||
<Room Name="ddan_room_16" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,22 +1,22 @@
|
|||
<Root>
|
||||
<File Name="ganontika_scene" Segment="2">
|
||||
<Cutscene Name="gForestTrialSageCs" Offset="0x19EE0"/>
|
||||
<Cutscene Name="gWaterTrialSageCs" Offset="0x1A8E0"/>
|
||||
<Cutscene Name="gShadowTrialSageCs" Offset="0x1B2B0"/>
|
||||
<Cutscene Name="gFireTrialSageCs" Offset="0x1BC80"/>
|
||||
<Cutscene Name="gLightTrialSageCs" Offset="0x1C6B0"/>
|
||||
<Cutscene Name="gSpiritTrialSageCs" Offset="0x1D080"/>
|
||||
<Cutscene Name="gForestTrialSageCs" Offset="0x19ED0"/>
|
||||
<Cutscene Name="gWaterTrialSageCs" Offset="0x1A8D0"/>
|
||||
<Cutscene Name="gShadowTrialSageCs" Offset="0x1B2A0"/>
|
||||
<Cutscene Name="gFireTrialSageCs" Offset="0x1BC70"/>
|
||||
<Cutscene Name="gLightTrialSageCs" Offset="0x1C6A0"/>
|
||||
<Cutscene Name="gSpiritTrialSageCs" Offset="0x1D070"/>
|
||||
|
||||
<Cutscene Name="gTowerBarrierCs" Offset="0x1DA50"/>
|
||||
<Cutscene Name="gTowerBarrierCs" Offset="0x1DA40"/>
|
||||
|
||||
<Cutscene Name="gLightBarrierCs" Offset="0x1DF90"/>
|
||||
<Cutscene Name="gFireBarrierCs" Offset="0x1E3E0"/>
|
||||
<Cutscene Name="gForestBarrierCs" Offset="0x1E790"/>
|
||||
<Cutscene Name="gSpiritBarrierCs" Offset="0x1EB40"/>
|
||||
<Cutscene Name="gWaterBarrierCs" Offset="0x1EF70"/>
|
||||
<Cutscene Name="gShadowBarrierCs" Offset="0x21380"/>
|
||||
<Cutscene Name="gLightBarrierCs" Offset="0x1DF80"/>
|
||||
<Cutscene Name="gFireBarrierCs" Offset="0x1E3D0"/>
|
||||
<Cutscene Name="gForestBarrierCs" Offset="0x1E780"/>
|
||||
<Cutscene Name="gSpiritBarrierCs" Offset="0x1EB30"/>
|
||||
<Cutscene Name="gWaterBarrierCs" Offset="0x1EF60"/>
|
||||
<Cutscene Name="gShadowBarrierCs" Offset="0x21370"/>
|
||||
|
||||
<Path Name="ganontika_scenePathList_000668" Offset="0x0668" NumPaths="6"/>
|
||||
<Path Name="ganontika_scenePathList_000674" Offset="0x0674" NumPaths="3"/>
|
||||
<Scene Name="ganontika_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_0" Segment="3">
|
||||
|
|
82
assets/xml/scenes/dungeons/ganontika_mq.xml
Normal file
82
assets/xml/scenes/dungeons/ganontika_mq.xml
Normal file
|
@ -0,0 +1,82 @@
|
|||
<Root>
|
||||
<File Name="ganontika_scene" Segment="2">
|
||||
<Cutscene Name="gForestTrialSageCs" Offset="0x19EE0"/>
|
||||
<Cutscene Name="gWaterTrialSageCs" Offset="0x1A8E0"/>
|
||||
<Cutscene Name="gShadowTrialSageCs" Offset="0x1B2B0"/>
|
||||
<Cutscene Name="gFireTrialSageCs" Offset="0x1BC80"/>
|
||||
<Cutscene Name="gLightTrialSageCs" Offset="0x1C6B0"/>
|
||||
<Cutscene Name="gSpiritTrialSageCs" Offset="0x1D080"/>
|
||||
|
||||
<Cutscene Name="gTowerBarrierCs" Offset="0x1DA50"/>
|
||||
|
||||
<Cutscene Name="gLightBarrierCs" Offset="0x1DF90"/>
|
||||
<Cutscene Name="gFireBarrierCs" Offset="0x1E3E0"/>
|
||||
<Cutscene Name="gForestBarrierCs" Offset="0x1E790"/>
|
||||
<Cutscene Name="gSpiritBarrierCs" Offset="0x1EB40"/>
|
||||
<Cutscene Name="gWaterBarrierCs" Offset="0x1EF70"/>
|
||||
<Cutscene Name="gShadowBarrierCs" Offset="0x21380"/>
|
||||
|
||||
<Path Name="ganontika_scenePathList_000668" Offset="0x0668" NumPaths="6"/>
|
||||
<Scene Name="ganontika_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_0" Segment="3">
|
||||
<Room Name="ganontika_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_1" Segment="3">
|
||||
<Room Name="ganontika_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_2" Segment="3">
|
||||
<Room Name="ganontika_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_3" Segment="3">
|
||||
<Room Name="ganontika_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_4" Segment="3">
|
||||
<Room Name="ganontika_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_5" Segment="3">
|
||||
<Room Name="ganontika_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_6" Segment="3">
|
||||
<Room Name="ganontika_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_7" Segment="3">
|
||||
<Room Name="ganontika_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_8" Segment="3">
|
||||
<Room Name="ganontika_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_9" Segment="3">
|
||||
<Room Name="ganontika_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_10" Segment="3">
|
||||
<Room Name="ganontika_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_11" Segment="3">
|
||||
<Room Name="ganontika_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_12" Segment="3">
|
||||
<Room Name="ganontika_room_12" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_13" Segment="3">
|
||||
<Room Name="ganontika_room_13" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_14" Segment="3">
|
||||
<Room Name="ganontika_room_14" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_15" Segment="3">
|
||||
<Room Name="ganontika_room_15" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_16" Segment="3">
|
||||
<Room Name="ganontika_room_16" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_17" Segment="3">
|
||||
<Room Name="ganontika_room_17" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_18" Segment="3">
|
||||
<Room Name="ganontika_room_18" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ganontika_room_19" Segment="3">
|
||||
<Room Name="ganontika_room_19" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,9 +1,8 @@
|
|||
<Root>
|
||||
<File Name="ice_doukutu_scene" Segment="2">
|
||||
<Path Name="ice_doukutu_scenePathList_000304" Offset="0x0304" NumPaths="5"/>
|
||||
<Cutscene Name="gIceCavernSerenadeCs" Offset="0x330"/>
|
||||
<Texture Name="gIceCavernNightEntranceTex" OutName="night_entrance" Format="ia16" Width="64" Height="4" Offset="0xF8C0"/>
|
||||
<Texture Name="gIceCavernDayEntranceTex" OutName="day_entrance" Format="ia16" Width="64" Height="4" Offset="0xFAC0"/>
|
||||
<Cutscene Name="gIceCavernSerenadeCs" Offset="0x250"/>
|
||||
<Texture Name="gIceCavernNightEntranceTex" OutName="night_entrance" Format="ia16" Width="64" Height="4" Offset="0xF7F0"/>
|
||||
<Texture Name="gIceCavernDayEntranceTex" OutName="day_entrance" Format="ia16" Width="64" Height="4" Offset="0xF9F0"/>
|
||||
<Scene Name="ice_doukutu_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_0" Segment="3">
|
||||
|
|
45
assets/xml/scenes/dungeons/ice_doukutu_mq.xml
Normal file
45
assets/xml/scenes/dungeons/ice_doukutu_mq.xml
Normal file
|
@ -0,0 +1,45 @@
|
|||
<Root>
|
||||
<File Name="ice_doukutu_scene" Segment="2">
|
||||
<Path Name="ice_doukutu_scenePathList_000304" Offset="0x0304" NumPaths="5"/>
|
||||
<Cutscene Name="gIceCavernSerenadeCs" Offset="0x330"/>
|
||||
<Texture Name="gIceCavernNightEntranceTex" OutName="night_entrance" Format="ia16" Width="64" Height="4" Offset="0xF8C0"/>
|
||||
<Texture Name="gIceCavernDayEntranceTex" OutName="day_entrance" Format="ia16" Width="64" Height="4" Offset="0xFAC0"/>
|
||||
<Scene Name="ice_doukutu_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_0" Segment="3">
|
||||
<Room Name="ice_doukutu_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_1" Segment="3">
|
||||
<Room Name="ice_doukutu_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_2" Segment="3">
|
||||
<Room Name="ice_doukutu_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_3" Segment="3">
|
||||
<Room Name="ice_doukutu_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_4" Segment="3">
|
||||
<Room Name="ice_doukutu_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_5" Segment="3">
|
||||
<Room Name="ice_doukutu_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_6" Segment="3">
|
||||
<Room Name="ice_doukutu_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_7" Segment="3">
|
||||
<Room Name="ice_doukutu_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_8" Segment="3">
|
||||
<Room Name="ice_doukutu_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_9" Segment="3">
|
||||
<Room Name="ice_doukutu_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_10" Segment="3">
|
||||
<Room Name="ice_doukutu_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ice_doukutu_room_11" Segment="3">
|
||||
<Room Name="ice_doukutu_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,11 +1,11 @@
|
|||
<Root>
|
||||
<File Name="jyasinzou_scene" Segment="2">
|
||||
<Path Name="jyasinzou_scenePathList_00049C" Offset="0x049C" NumPaths="5"/>
|
||||
<Texture Name="gSpiritTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0x18920"/>
|
||||
<Texture Name="gSpiritTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x18020"/>
|
||||
<Path Name="jyasinzou_scenePathList_0004C0" Offset="0x04C0" NumPaths="6"/>
|
||||
<Texture Name="gSpiritTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0x18940"/>
|
||||
<Texture Name="gSpiritTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x18040"/>
|
||||
<Scene Name="jyasinzou_scene" Offset="0x0"/>
|
||||
<Scene Name="jyasinzou_scene_unused1" Offset="0x17200"/>
|
||||
<Scene Name="jyasinzou_scene_unused2" Offset="0x176F0"/>
|
||||
<Scene Name="jyasinzou_scene_unused1" Offset="0x17220"/>
|
||||
<Scene Name="jyasinzou_scene_unused2" Offset="0x17710"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_0" Segment="3">
|
||||
<Room Name="jyasinzou_room_0" Offset="0x0"/>
|
||||
|
|
97
assets/xml/scenes/dungeons/jyasinzou_mq.xml
Normal file
97
assets/xml/scenes/dungeons/jyasinzou_mq.xml
Normal file
|
@ -0,0 +1,97 @@
|
|||
<Root>
|
||||
<File Name="jyasinzou_scene" Segment="2">
|
||||
<Path Name="jyasinzou_scenePathList_00049C" Offset="0x049C" NumPaths="5"/>
|
||||
<Texture Name="gSpiritTempleDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0x18920"/>
|
||||
<Texture Name="gSpiritTempleNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x18020"/>
|
||||
<Scene Name="jyasinzou_scene" Offset="0x0"/>
|
||||
<Scene Name="jyasinzou_scene_unused1" Offset="0x17200"/>
|
||||
<Scene Name="jyasinzou_scene_unused2" Offset="0x176F0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_0" Segment="3">
|
||||
<Room Name="jyasinzou_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_1" Segment="3">
|
||||
<Room Name="jyasinzou_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_2" Segment="3">
|
||||
<Room Name="jyasinzou_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_3" Segment="3">
|
||||
<Room Name="jyasinzou_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_4" Segment="3">
|
||||
<Room Name="jyasinzou_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_5" Segment="3">
|
||||
<Room Name="jyasinzou_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_6" Segment="3">
|
||||
<Room Name="jyasinzou_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_7" Segment="3">
|
||||
<Room Name="jyasinzou_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_8" Segment="3">
|
||||
<Room Name="jyasinzou_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_9" Segment="3">
|
||||
<Room Name="jyasinzou_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_10" Segment="3">
|
||||
<Room Name="jyasinzou_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_11" Segment="3">
|
||||
<Room Name="jyasinzou_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_12" Segment="3">
|
||||
<Room Name="jyasinzou_room_12" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_13" Segment="3">
|
||||
<Room Name="jyasinzou_room_13" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_14" Segment="3">
|
||||
<Room Name="jyasinzou_room_14" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_15" Segment="3">
|
||||
<Room Name="jyasinzou_room_15" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_16" Segment="3">
|
||||
<Room Name="jyasinzou_room_16" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_17" Segment="3">
|
||||
<Room Name="jyasinzou_room_17" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_18" Segment="3">
|
||||
<Room Name="jyasinzou_room_18" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_19" Segment="3">
|
||||
<Room Name="jyasinzou_room_19" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_20" Segment="3">
|
||||
<Room Name="jyasinzou_room_20" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_21" Segment="3">
|
||||
<Room Name="jyasinzou_room_21" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_22" Segment="3">
|
||||
<Room Name="jyasinzou_room_22" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_23" Segment="3">
|
||||
<Room Name="jyasinzou_room_23" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_24" Segment="3">
|
||||
<Room Name="jyasinzou_room_24" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_25" Segment="3">
|
||||
<Room Name="jyasinzou_room_25" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_26" Segment="3">
|
||||
<Room Name="jyasinzou_room_26" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_27" Segment="3">
|
||||
<Room Name="jyasinzou_room_27" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="jyasinzou_room_28" Segment="3">
|
||||
<Room Name="jyasinzou_room_28" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,7 +1,7 @@
|
|||
<Root>
|
||||
<File Name="men_scene" Segment="2">
|
||||
<Texture Name="gGTGDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0xF8C0"/>
|
||||
<Texture Name="gGTGNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x100C0"/>
|
||||
<Texture Name="gGTGDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0xF930"/>
|
||||
<Texture Name="gGTGNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x10130"/>
|
||||
<Scene Name="men_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_0" Segment="3">
|
||||
|
|
42
assets/xml/scenes/dungeons/men_mq.xml
Normal file
42
assets/xml/scenes/dungeons/men_mq.xml
Normal file
|
@ -0,0 +1,42 @@
|
|||
<Root>
|
||||
<File Name="men_scene" Segment="2">
|
||||
<Texture Name="gGTGDayEntranceTex" OutName="day_entrance" Format="ia16" Width="8" Height="128" Offset="0xF8C0"/>
|
||||
<Texture Name="gGTGNightEntranceTex" OutName="night_entrance" Format="ia16" Width="8" Height="128" Offset="0x100C0"/>
|
||||
<Scene Name="men_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_0" Segment="3">
|
||||
<DList Name="gMenDL_008118" Offset="0x8118"/>
|
||||
<DList Name="gMenDL_00FF78" Offset="0xFF78"/>
|
||||
<Room Name="men_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_1" Segment="3">
|
||||
<Room Name="men_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_2" Segment="3">
|
||||
<Room Name="men_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_3" Segment="3">
|
||||
<Room Name="men_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_4" Segment="3">
|
||||
<Room Name="men_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_5" Segment="3">
|
||||
<Room Name="men_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_6" Segment="3">
|
||||
<Room Name="men_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_7" Segment="3">
|
||||
<Room Name="men_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_8" Segment="3">
|
||||
<Room Name="men_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_9" Segment="3">
|
||||
<Room Name="men_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="men_room_10" Segment="3">
|
||||
<Room Name="men_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
|
@ -1,8 +1,8 @@
|
|||
<Root>
|
||||
<File Name="ydan_scene" Segment="2">
|
||||
<Cutscene Name="gDekuTreeIntroCs" Offset="0xB650"/>
|
||||
<Texture Name="gYdanTex_00BA18" Format="rgba16" Width="32" Height="64" Offset="0xBA18"/>
|
||||
<Texture Name="gYdanTex_00CA18" Format="rgba16" Width="32" Height="64" Offset="0xCA18"/>
|
||||
<Cutscene Name="gDekuTreeIntroCs" Offset="0xB640"/>
|
||||
<Texture Name="gYdanTex_00BA18" Format="rgba16" Width="32" Height="64" Offset="0xBA08"/>
|
||||
<Texture Name="gYdanTex_00CA18" Format="rgba16" Width="32" Height="64" Offset="0xCA08"/>
|
||||
|
||||
<Scene Name="ydan_scene" Offset="0x0"/>
|
||||
</File>
|
||||
|
|
45
assets/xml/scenes/dungeons/ydan_mq.xml
Normal file
45
assets/xml/scenes/dungeons/ydan_mq.xml
Normal file
|
@ -0,0 +1,45 @@
|
|||
<Root>
|
||||
<File Name="ydan_scene" Segment="2">
|
||||
<Cutscene Name="gDekuTreeIntroCs" Offset="0xB650"/>
|
||||
<Texture Name="gYdanTex_00BA18" Format="rgba16" Width="32" Height="64" Offset="0xBA18"/>
|
||||
<Texture Name="gYdanTex_00CA18" Format="rgba16" Width="32" Height="64" Offset="0xCA18"/>
|
||||
|
||||
<Scene Name="ydan_scene" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_0" Segment="3">
|
||||
<Room Name="ydan_room_0" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_1" Segment="3">
|
||||
<Room Name="ydan_room_1" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_2" Segment="3">
|
||||
<Room Name="ydan_room_2" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_3" Segment="3">
|
||||
<Room Name="ydan_room_3" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_4" Segment="3">
|
||||
<Room Name="ydan_room_4" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_5" Segment="3">
|
||||
<Room Name="ydan_room_5" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_6" Segment="3">
|
||||
<Room Name="ydan_room_6" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_7" Segment="3">
|
||||
<Room Name="ydan_room_7" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_8" Segment="3">
|
||||
<Room Name="ydan_room_8" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_9" Segment="3">
|
||||
<Room Name="ydan_room_9" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_10" Segment="3">
|
||||
<Room Name="ydan_room_10" Offset="0x0"/>
|
||||
</File>
|
||||
<File Name="ydan_room_11" Segment="3">
|
||||
<Room Name="ydan_room_11" Offset="0x0"/>
|
||||
</File>
|
||||
</Root>
|
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
File diff suppressed because it is too large
Load diff
|
@ -8,8 +8,7 @@ import time
|
|||
import multiprocessing
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
EXTRACTED_ASSETS_NAMEFILE = ".extracted-assets.json"
|
||||
from tools import version_config
|
||||
|
||||
|
||||
def SignalHandler(sig, frame):
|
||||
|
@ -17,20 +16,33 @@ def SignalHandler(sig, frame):
|
|||
mainAbort.set()
|
||||
# Don't exit immediately to update the extracted assets file.
|
||||
|
||||
def ExtractFile(xmlPath, outputPath, outputSourcePath):
|
||||
def ExtractFile(assetConfig: version_config.AssetConfig, outputPath: Path, outputSourcePath: Path):
|
||||
xmlPath = assetConfig.xml_path
|
||||
version = globalVersionConfig.version
|
||||
if globalAbort.is_set():
|
||||
# Don't extract if another file wasn't extracted properly.
|
||||
return
|
||||
|
||||
zapdPath = Path("tools") / "ZAPD" / "ZAPD.out"
|
||||
configPath = Path("tools") / "ZAPDConfigs" / "MqDbg" / "Config.xml"
|
||||
configPath = Path("tools") / "ZAPDConfigs" / version / "Config.xml"
|
||||
|
||||
Path(outputPath).mkdir(parents=True, exist_ok=True)
|
||||
Path(outputSourcePath).mkdir(parents=True, exist_ok=True)
|
||||
outputPath.mkdir(parents=True, exist_ok=True)
|
||||
outputSourcePath.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
execStr = f"{zapdPath} e -eh -i {xmlPath} -b extracted/gc-eu-mq-dbg/baserom -o {outputPath} -osf {outputSourcePath} -gsf 1 -rconf {configPath} --cs-float both {ZAPDArgs}"
|
||||
execStr = f"{zapdPath} e -eh -i {xmlPath} -b extracted/{version}/baserom -o {outputPath} -osf {outputSourcePath} -gsf 1 -rconf {configPath} --cs-float both {ZAPDArgs}"
|
||||
|
||||
if "overlays" in xmlPath:
|
||||
if "code" in xmlPath.parts or "overlays" in xmlPath.parts:
|
||||
assert assetConfig.start_offset is not None
|
||||
assert assetConfig.end_offset is not None
|
||||
|
||||
execStr += f" --start-offset 0x{assetConfig.start_offset:X}"
|
||||
execStr += f" --end-offset 0x{assetConfig.end_offset:X}"
|
||||
|
||||
if "overlays" in xmlPath.parts:
|
||||
overlayName = xmlPath.stem
|
||||
baseAddress = globalVersionConfig.dmadata_segments[overlayName].vram + assetConfig.start_offset
|
||||
|
||||
execStr += f" --base-address 0x{baseAddress:X}"
|
||||
execStr += " --static"
|
||||
|
||||
if globalUnaccounted:
|
||||
|
@ -45,35 +57,39 @@ def ExtractFile(xmlPath, outputPath, outputSourcePath):
|
|||
print("Aborting...", file=os.sys.stderr)
|
||||
print("\n")
|
||||
|
||||
def ExtractFunc(fullPath):
|
||||
*pathList, xmlName = fullPath.split(os.sep)
|
||||
objectName = os.path.splitext(xmlName)[0]
|
||||
def ExtractFunc(assetConfig: version_config.AssetConfig):
|
||||
objectName = assetConfig.name
|
||||
xml_path = assetConfig.xml_path
|
||||
xml_path_str = str(xml_path)
|
||||
|
||||
outPath = os.path.join("assets", *pathList[2:], objectName)
|
||||
version = globalVersionConfig.version
|
||||
outPath = Path("extracted") / version / "assets" / objectName
|
||||
outSourcePath = outPath
|
||||
|
||||
if fullPath in globalExtractedAssetsTracker:
|
||||
timestamp = globalExtractedAssetsTracker[fullPath]["timestamp"]
|
||||
modificationTime = int(os.path.getmtime(fullPath))
|
||||
if xml_path_str in globalExtractedAssetsTracker:
|
||||
timestamp = globalExtractedAssetsTracker[xml_path_str]["timestamp"]
|
||||
modificationTime = int(os.path.getmtime(xml_path))
|
||||
if modificationTime < timestamp:
|
||||
# XML has not been modified since last extraction.
|
||||
return
|
||||
|
||||
currentTimeStamp = int(time.time())
|
||||
|
||||
ExtractFile(fullPath, outPath, outSourcePath)
|
||||
ExtractFile(assetConfig, outPath, outSourcePath)
|
||||
|
||||
if not globalAbort.is_set():
|
||||
# Only update timestamp on succesful extractions
|
||||
if fullPath not in globalExtractedAssetsTracker:
|
||||
globalExtractedAssetsTracker[fullPath] = globalManager.dict()
|
||||
globalExtractedAssetsTracker[fullPath]["timestamp"] = currentTimeStamp
|
||||
if xml_path_str not in globalExtractedAssetsTracker:
|
||||
globalExtractedAssetsTracker[xml_path_str] = globalManager.dict()
|
||||
globalExtractedAssetsTracker[xml_path_str]["timestamp"] = currentTimeStamp
|
||||
|
||||
def initializeWorker(abort, unaccounted: bool, extractedAssetsTracker: dict, manager):
|
||||
def initializeWorker(versionConfig: version_config.VersionConfig, abort, unaccounted: bool, extractedAssetsTracker: dict, manager):
|
||||
global globalVersionConfig
|
||||
global globalAbort
|
||||
global globalUnaccounted
|
||||
global globalExtractedAssetsTracker
|
||||
global globalManager
|
||||
globalVersionConfig = versionConfig
|
||||
globalAbort = abort
|
||||
globalUnaccounted = unaccounted
|
||||
globalExtractedAssetsTracker = extractedAssetsTracker
|
||||
|
@ -95,13 +111,17 @@ def processZAPDArgs(argsZ):
|
|||
|
||||
def main():
|
||||
parser = argparse.ArgumentParser(description="baserom asset extractor")
|
||||
parser.add_argument("-s", "--single", help="asset path relative to assets/, e.g. objects/gameplay_keep")
|
||||
parser.add_argument("-v", "--oot-version", dest="oot_version", help="OOT game version", default="gc-eu-mq-dbg")
|
||||
parser.add_argument("-s", "--single", help="Extract a single asset by name, e.g. objects/gameplay_keep")
|
||||
parser.add_argument("-f", "--force", help="Force the extraction of every xml instead of checking the touched ones (overwriting current files).", action="store_true")
|
||||
parser.add_argument("-j", "--jobs", help="Number of cpu cores to extract with.")
|
||||
parser.add_argument("-u", "--unaccounted", help="Enables ZAPD unaccounted detector warning system.", action="store_true")
|
||||
parser.add_argument("-Z", help="Pass the argument on to ZAPD, e.g. `-ZWunaccounted` to warn about unaccounted blocks in XMLs. Each argument should be passed separately, *without* the leading dash.", metavar="ZAPD_ARG", action="append")
|
||||
args = parser.parse_args()
|
||||
|
||||
version: str = args.oot_version
|
||||
versionConfig = version_config.load_version_config(version)
|
||||
|
||||
global ZAPDArgs
|
||||
ZAPDArgs = processZAPDArgs(args.Z) if args.Z else ""
|
||||
|
||||
|
@ -110,31 +130,30 @@ def main():
|
|||
manager = multiprocessing.Manager()
|
||||
signal.signal(signal.SIGINT, SignalHandler)
|
||||
|
||||
extraction_times_p = Path("extracted") / version / "assets_extraction_times.json"
|
||||
extractedAssetsTracker = manager.dict()
|
||||
if os.path.exists(EXTRACTED_ASSETS_NAMEFILE) and not args.force:
|
||||
with open(EXTRACTED_ASSETS_NAMEFILE, encoding='utf-8') as f:
|
||||
if extraction_times_p.exists() and not args.force:
|
||||
with extraction_times_p.open(encoding='utf-8') as f:
|
||||
extractedAssetsTracker.update(json.load(f, object_hook=manager.dict))
|
||||
|
||||
asset_path = args.single
|
||||
if asset_path is not None:
|
||||
fullPath = os.path.join("assets", "xml", asset_path + ".xml")
|
||||
if not os.path.exists(fullPath):
|
||||
print(f"Error. File {fullPath} does not exist.", file=os.sys.stderr)
|
||||
singleAssetName = args.single
|
||||
if singleAssetName is not None:
|
||||
assetConfig = None
|
||||
for asset in versionConfig.assets:
|
||||
if asset.name == singleAssetName:
|
||||
assetConfig = asset
|
||||
break
|
||||
else:
|
||||
print(f"Error. Asset {singleAssetName} not found in config.", file=os.sys.stderr)
|
||||
exit(1)
|
||||
|
||||
initializeWorker(mainAbort, args.unaccounted, extractedAssetsTracker, manager)
|
||||
initializeWorker(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager)
|
||||
# Always extract if -s is used.
|
||||
fullPath = assetConfig.xml_path
|
||||
if fullPath in extractedAssetsTracker:
|
||||
del extractedAssetsTracker[fullPath]
|
||||
ExtractFunc(fullPath)
|
||||
ExtractFunc(assetConfig)
|
||||
else:
|
||||
xmlFiles = []
|
||||
for currentPath, _, files in os.walk(os.path.join("assets", "xml")):
|
||||
for file in files:
|
||||
fullPath = os.path.join(currentPath, file)
|
||||
if file.endswith(".xml"):
|
||||
xmlFiles.append(fullPath)
|
||||
|
||||
class CannotMultiprocessError(Exception):
|
||||
pass
|
||||
|
||||
|
@ -147,17 +166,17 @@ def main():
|
|||
mp_context = multiprocessing.get_context("fork")
|
||||
except ValueError as e:
|
||||
raise CannotMultiprocessError() from e
|
||||
with mp_context.Pool(numCores, initializer=initializeWorker, initargs=(mainAbort, args.unaccounted, extractedAssetsTracker, manager)) as p:
|
||||
p.map(ExtractFunc, xmlFiles)
|
||||
with mp_context.Pool(numCores, initializer=initializeWorker, initargs=(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager)) as p:
|
||||
p.map(ExtractFunc, versionConfig.assets)
|
||||
except (multiprocessing.ProcessError, TypeError, CannotMultiprocessError):
|
||||
print("Warning: Multiprocessing exception ocurred.", file=os.sys.stderr)
|
||||
print("Disabling mutliprocessing.", file=os.sys.stderr)
|
||||
|
||||
initializeWorker(mainAbort, args.unaccounted, extractedAssetsTracker, manager)
|
||||
for singlePath in xmlFiles:
|
||||
ExtractFunc(singlePath)
|
||||
initializeWorker(versionConfig, mainAbort, args.unaccounted, extractedAssetsTracker, manager)
|
||||
for assetConfig in versionConfig.assets:
|
||||
ExtractFunc(assetConfig)
|
||||
|
||||
with open(EXTRACTED_ASSETS_NAMEFILE, 'w', encoding='utf-8') as f:
|
||||
with extraction_times_p.open('w', encoding='utf-8') as f:
|
||||
serializableDict = dict()
|
||||
for xml, data in extractedAssetsTracker.items():
|
||||
serializableDict[xml] = dict(data)
|
||||
|
|
5
spec
5
spec
|
@ -256,12 +256,7 @@ endseg
|
|||
beginseg
|
||||
name "nes_font_static"
|
||||
romalign 0x1000
|
||||
#if OOT_DEBUG
|
||||
include "$(BUILD_DIR)/assets/textures/nes_font_static/nes_font_static.o"
|
||||
#else
|
||||
// TODO: Remove this hack once assets are extracted from gc-eu-mq
|
||||
include "$(BUILD_DIR)/baserom/nes_font_static.o"
|
||||
#endif
|
||||
number 10
|
||||
endseg
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
#include "file_select.h"
|
||||
#include "terminal.h"
|
||||
#include "assets/textures/title_static/title_static.h"
|
||||
#include "assets/overlays/ovl_File_Choose/ovl_file_choose.h"
|
||||
#include "assets/overlays/ovl_file_choose/ovl_file_choose.h"
|
||||
|
||||
static s16 D_808124C0[] = {
|
||||
0x0002, 0x0003, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0002, 0x0001, 0x0002, 0x0000, 0x0001,
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
#include "file_select.h"
|
||||
|
||||
#include "assets/overlays/ovl_File_Choose/ovl_file_choose.c"
|
||||
#include "assets/overlays/ovl_file_choose/ovl_file_choose.c"
|
||||
|
||||
s16 D_808123F0[] = {
|
||||
0x000A, 0x000B, 0x000C, 0x000D, 0x000E, 0x000F, 0x0010, 0x0011, 0x0012, 0x0013, 0x0014, 0x0015, 0x0016,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
[subrepo]
|
||||
remote = https://github.com/zeldaret/ZAPD.git
|
||||
branch = master
|
||||
commit = 1300a4f36584627aa784cbc252d1c8ecd7b40e68
|
||||
parent = 4522ee2cae12b2d23b7ef0134f24f7c3e26935f0
|
||||
commit = 0285e11f0a5937f60db023bfe5db273f2223fcf4
|
||||
parent = afd82230e1bd6e043eabe613f5b31f6e96f0f88c
|
||||
method = merge
|
||||
cmdver = 0.4.6
|
||||
|
|
|
@ -119,9 +119,14 @@ ZAPD also accepts the following list of extra parameters:
|
|||
- This behaviour can be overridden per asset using `Static=` in the respective XML node.
|
||||
- `--cs-float` : How cutscene floats should be extracted.
|
||||
- Valid values:
|
||||
- `hex`
|
||||
- `float`
|
||||
- `both`
|
||||
- `hex`: `0x42280000`
|
||||
- `float`: `42.0f`
|
||||
- `both`: `CS_FLOAT(0x42280000, 42.0f)`
|
||||
- `hex-commented-left`: `/* 42.0f */ 0x42280000`
|
||||
- `hex-commented-right`: `0x42280000 /* 42.0f */`
|
||||
- `--base-address ADDRESS`: Override base virtual address for input files.
|
||||
- `--start-offset OFFSET`: Override start offset for input files.
|
||||
- `--end-offset OFFSET`: Override end offset for input files.
|
||||
- `-W...`: warning flags, see below
|
||||
|
||||
Additionally, you can pass the flag `--version` to see the current ZAPD version. If that flag is passed, ZAPD will ignore any other parameter passed.
|
||||
|
|
|
@ -21,6 +21,8 @@ enum class CsFloatType
|
|||
HexOnly,
|
||||
FloatOnly,
|
||||
HexAndFloat,
|
||||
HexAndCommentedFloatLeft,
|
||||
HexAndCommentedFloatRight,
|
||||
};
|
||||
|
||||
class Globals
|
||||
|
@ -39,6 +41,9 @@ public:
|
|||
fs::path baseRomPath, inputPath, outputPath, sourceOutputPath, cfgPath;
|
||||
TextureType texType;
|
||||
CsFloatType floatType = CsFloatType::FloatOnly;
|
||||
int64_t baseAddress = -1;
|
||||
int64_t startOffset = -1;
|
||||
int64_t endOffset = -1;
|
||||
ZGame game;
|
||||
GameConfig cfg;
|
||||
bool verboseUnaccounted = false;
|
||||
|
|
|
@ -37,11 +37,14 @@ void Arg_EnableGCCCompat(int& i, char* argv[]);
|
|||
void Arg_ForceStatic(int& i, char* argv[]);
|
||||
void Arg_ForceUnaccountedStatic(int& i, char* argv[]);
|
||||
void Arg_CsFloatMode(int& i, char* argv[]);
|
||||
void Arg_BaseAddress(int& i, char* argv[]);
|
||||
void Arg_StartOffset(int& i, char* argv[]);
|
||||
void Arg_EndOffset(int& i, char* argv[]);
|
||||
|
||||
int main(int argc, char* argv[]);
|
||||
|
||||
bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path& outPath,
|
||||
ZFileMode fileMode);
|
||||
ZFileMode fileMode);
|
||||
|
||||
void ParseArgs(int& argc, char* argv[]);
|
||||
|
||||
|
@ -115,7 +118,7 @@ int main(int argc, char* argv[])
|
|||
returnCode = HandleExtract(fileMode, exporterSet);
|
||||
else if (fileMode == ZFileMode::BuildTexture)
|
||||
BuildAssetTexture(Globals::Instance->inputPath, Globals::Instance->texType,
|
||||
Globals::Instance->outputPath);
|
||||
Globals::Instance->outputPath);
|
||||
else if (fileMode == ZFileMode::BuildBackground)
|
||||
BuildAssetBackground(Globals::Instance->inputPath, Globals::Instance->outputPath);
|
||||
else if (fileMode == ZFileMode::BuildBlob)
|
||||
|
@ -126,7 +129,7 @@ int main(int argc, char* argv[])
|
|||
}
|
||||
|
||||
bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path& outPath,
|
||||
ZFileMode fileMode)
|
||||
ZFileMode fileMode)
|
||||
{
|
||||
tinyxml2::XMLDocument doc;
|
||||
tinyxml2::XMLError eResult = doc.LoadFile(xmlFilePath.string().c_str());
|
||||
|
@ -135,7 +138,7 @@ bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path
|
|||
{
|
||||
// TODO: use XMLDocument::ErrorIDToName to get more specific error messages here
|
||||
HANDLE_ERROR(WarningType::InvalidXML,
|
||||
StringHelper::Sprintf("invalid XML file: '%s'", xmlFilePath.c_str()), "");
|
||||
StringHelper::Sprintf("invalid XML file: '%s'", xmlFilePath.c_str()), "");
|
||||
return false;
|
||||
}
|
||||
|
||||
|
@ -150,7 +153,7 @@ bool Parse(const fs::path& xmlFilePath, const fs::path& basePath, const fs::path
|
|||
}
|
||||
|
||||
for (tinyxml2::XMLElement* child = root->FirstChildElement(); child != NULL;
|
||||
child = child->NextSiblingElement())
|
||||
child = child->NextSiblingElement())
|
||||
{
|
||||
if (std::string_view(child->Name()) == "File")
|
||||
{
|
||||
|
@ -254,6 +257,9 @@ void ParseArgs(int& argc, char* argv[])
|
|||
{"-us", &Arg_ForceUnaccountedStatic},
|
||||
{"--unaccounted-static", &Arg_ForceUnaccountedStatic},
|
||||
{"--cs-float", &Arg_CsFloatMode},
|
||||
{"--base-address", &Arg_BaseAddress},
|
||||
{"--start-offset", &Arg_StartOffset},
|
||||
{"--end-offset", &Arg_EndOffset},
|
||||
};
|
||||
|
||||
for (int32_t i = 2; i < argc; i++)
|
||||
|
@ -409,17 +415,47 @@ void Arg_CsFloatMode([[maybe_unused]] int& i, [[maybe_unused]] char* argv[])
|
|||
{
|
||||
Globals::Instance->floatType = CsFloatType::HexAndFloat;
|
||||
}
|
||||
else if (std::strcmp(argv[i], "hex-commented-left") == 0)
|
||||
{
|
||||
Globals::Instance->floatType = CsFloatType::HexAndCommentedFloatLeft;
|
||||
}
|
||||
else if (std::strcmp(argv[i], "hex-commented-right") == 0)
|
||||
{
|
||||
Globals::Instance->floatType = CsFloatType::HexAndCommentedFloatRight;
|
||||
}
|
||||
else
|
||||
{
|
||||
Globals::Instance->floatType = CsFloatType::FloatOnly;
|
||||
HANDLE_WARNING(
|
||||
WarningType::Always, "Invalid CS Float Type",
|
||||
StringHelper::Sprintf("Invalid CS float type entered. Expected \"hex\", \"float\", or "
|
||||
"\"both\". Got %s.\n Defaulting to \"float\".",
|
||||
argv[i]));
|
||||
StringHelper::Sprintf("Invalid CS float type entered. Expected \"hex\", \"float\", "
|
||||
"\"both\", \"hex-commented-left\" or \"hex-commented-right\". "
|
||||
"Got %s.\n Defaulting to \"float\".",
|
||||
argv[i]));
|
||||
}
|
||||
}
|
||||
|
||||
uint32_t ParseU32Hex(char* str)
|
||||
{
|
||||
static_assert(sizeof(uint32_t) <= sizeof(unsigned long));
|
||||
return (uint32_t)std::stoul(str, nullptr, 16);
|
||||
}
|
||||
|
||||
void Arg_BaseAddress(int& i, char* argv[])
|
||||
{
|
||||
Globals::Instance->baseAddress = ParseU32Hex(argv[++i]);
|
||||
}
|
||||
|
||||
void Arg_StartOffset(int& i, char* argv[])
|
||||
{
|
||||
Globals::Instance->startOffset = ParseU32Hex(argv[++i]);
|
||||
}
|
||||
|
||||
void Arg_EndOffset(int& i, char* argv[])
|
||||
{
|
||||
Globals::Instance->endOffset = ParseU32Hex(argv[++i]);
|
||||
}
|
||||
|
||||
int HandleExtract(ZFileMode fileMode, ExporterSet* exporterSet)
|
||||
{
|
||||
bool procFileModeSuccess = false;
|
||||
|
@ -440,14 +476,14 @@ int HandleExtract(ZFileMode fileMode, ExporterSet* exporterSet)
|
|||
printf("Parsing external file from config: '%s'\n", externalXmlFilePath.c_str());
|
||||
|
||||
parseSuccessful = Parse(externalXmlFilePath, Globals::Instance->baseRomPath,
|
||||
extFile.outPath, ZFileMode::ExternalFile);
|
||||
extFile.outPath, ZFileMode::ExternalFile);
|
||||
|
||||
if (!parseSuccessful)
|
||||
return 1;
|
||||
}
|
||||
|
||||
parseSuccessful = Parse(Globals::Instance->inputPath, Globals::Instance->baseRomPath,
|
||||
Globals::Instance->outputPath, fileMode);
|
||||
Globals::Instance->outputPath, fileMode);
|
||||
if (!parseSuccessful)
|
||||
return 1;
|
||||
}
|
||||
|
|
|
@ -375,33 +375,22 @@ ZResourceType ZCutscene::GetResourceType() const
|
|||
|
||||
std::string ZCutscene::GetCsEncodedFloat(float f, CsFloatType type, bool useSciNotation)
|
||||
{
|
||||
uint32_t i;
|
||||
std::memcpy(&i, &f, sizeof(i));
|
||||
|
||||
switch (type)
|
||||
{
|
||||
default:
|
||||
// This default case will NEVER be reached, but GCC still gives a warning.
|
||||
case CsFloatType::HexOnly:
|
||||
{
|
||||
uint32_t i;
|
||||
std::memcpy(&i, &f, sizeof(i));
|
||||
return StringHelper::Sprintf("0x%08X", i);
|
||||
}
|
||||
case CsFloatType::FloatOnly:
|
||||
{
|
||||
if (useSciNotation)
|
||||
{
|
||||
return StringHelper::Sprintf("%.8ef", f);
|
||||
}
|
||||
return StringHelper::Sprintf("%ff", f);
|
||||
}
|
||||
return StringHelper::Sprintf(useSciNotation ? "%.8ef" : "%ff", f);
|
||||
case CsFloatType::HexAndFloat:
|
||||
{
|
||||
uint32_t i;
|
||||
std::memcpy(&i, &f, sizeof(i));
|
||||
if (useSciNotation)
|
||||
{
|
||||
return StringHelper::Sprintf("CS_FLOAT(0x%08X, %.8ef)", i, f);
|
||||
}
|
||||
return StringHelper::Sprintf("CS_FLOAT(0x%08X, %ff)", i, f);
|
||||
}
|
||||
return StringHelper::Sprintf(useSciNotation ? "CS_FLOAT(0x%08X, %.8ef)" : "CS_FLOAT(0x%08X, %ff)", i, f);
|
||||
case CsFloatType::HexAndCommentedFloatLeft:
|
||||
return StringHelper::Sprintf(useSciNotation ? "/* %.8ef */ 0x%08X" : "/* %ff */ 0x%08X", f, i);
|
||||
case CsFloatType::HexAndCommentedFloatRight:
|
||||
return StringHelper::Sprintf(useSciNotation ? "0x%08X /* %.8ef */" : "0x%08X /* %ff */", i, f);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -120,6 +120,9 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename)
|
|||
if (reader->Attribute("BaseAddress") != nullptr)
|
||||
baseAddress = StringHelper::StrToL(reader->Attribute("BaseAddress"), 16);
|
||||
|
||||
if (mode == ZFileMode::Extract && Globals::Instance->baseAddress != -1)
|
||||
baseAddress = Globals::Instance->baseAddress;
|
||||
|
||||
if (reader->Attribute("RangeStart") != nullptr)
|
||||
rangeStart = StringHelper::StrToL(reader->Attribute("RangeStart"), 16);
|
||||
|
||||
|
@ -197,6 +200,9 @@ void ZFile::ParseXML(tinyxml2::XMLElement* reader, const std::string& filename)
|
|||
}
|
||||
|
||||
rawData = File::ReadAllBytes((basePath / name).string());
|
||||
if (mode == ZFileMode::Extract && Globals::Instance->startOffset != -1 && Globals::Instance->endOffset != -1)
|
||||
rawData = std::vector<uint8_t>(rawData.begin() + Globals::Instance->startOffset,
|
||||
rawData.begin() + Globals::Instance->endOffset);
|
||||
|
||||
if (reader->Attribute("RangeEnd") == nullptr)
|
||||
rangeEnd = rawData.size();
|
||||
|
@ -585,6 +591,12 @@ Declaration* ZFile::AddDeclarationIncludeArray(offset_t address, std::string& in
|
|||
includePath = "assets/" + StringHelper::Split(includePath, "assets/extracted/")[1];
|
||||
if (StringHelper::StartsWith(includePath, "assets/custom/"))
|
||||
includePath = "assets/" + StringHelper::Split(includePath, "assets/custom/")[1];
|
||||
// Hack for OOT: don't prefix include paths with extracted/VERSION/
|
||||
if (StringHelper::StartsWith(includePath, "extracted/")) {
|
||||
std::vector<std::string> parts = StringHelper::Split(includePath, "/");
|
||||
parts.erase(parts.begin(), parts.begin() + 2);
|
||||
includePath = StringHelper::Join(parts, "/");
|
||||
}
|
||||
|
||||
Declaration* decl = GetDeclaration(address);
|
||||
if (decl == nullptr)
|
||||
|
@ -621,6 +633,12 @@ Declaration* ZFile::AddDeclarationIncludeArray(offset_t address, std::string& in
|
|||
includePath = "assets/" + StringHelper::Split(includePath, "assets/extracted/")[1];
|
||||
if (StringHelper::StartsWith(includePath, "assets/custom/"))
|
||||
includePath = "assets/" + StringHelper::Split(includePath, "assets/custom/")[1];
|
||||
// Hack for OOT: don't prefix include paths with extracted/VERSION/
|
||||
if (StringHelper::StartsWith(includePath, "extracted/")) {
|
||||
std::vector<std::string> parts = StringHelper::Split(includePath, "/");
|
||||
parts.erase(parts.begin(), parts.begin() + 2);
|
||||
includePath = StringHelper::Join(parts, "/");
|
||||
}
|
||||
|
||||
Declaration* decl = GetDeclaration(address);
|
||||
if (decl == nullptr)
|
||||
|
|
|
@ -30,6 +30,21 @@ public:
|
|||
return result;
|
||||
}
|
||||
|
||||
static std::string Join(const std::vector<std::string> parts, const std::string& delimiter)
|
||||
{
|
||||
std::string result;
|
||||
|
||||
for (size_t i = 0; i < parts.size(); i++)
|
||||
{
|
||||
result += parts[i];
|
||||
|
||||
if (i != parts.size() - 1)
|
||||
result += delimiter;
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
static std::string Strip(std::string s, const std::string& delimiter)
|
||||
{
|
||||
size_t pos = 0;
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<Root>
|
||||
<SymbolMap File="SymbolMap_OoTMqDbg.txt"/>
|
||||
<ActorList File="ActorList_OoTMqDbg.txt"/>
|
||||
<ObjectList File="ObjectList_OoTMqDbg.txt"/>
|
||||
<EntranceList File="EntranceList_OoTMqDbg.txt"/>
|
||||
<SpecialEntranceList File="SpecialEntranceList_OoTMqDbg.txt"/>
|
||||
<EnumData File="EnumData.xml"/>
|
||||
<ExternalXMLFolder Path="assets/xml/"/>
|
||||
</Root>
|
|
@ -1 +0,0 @@
|
|||
8012DB20 gMtxClear
|
9
tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml
Normal file
9
tools/ZAPDConfigs/gc-eu-mq-dbg/Config.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<Root>
|
||||
<SymbolMap File="SymbolMap.txt"/>
|
||||
<ActorList File="../ActorList.txt"/>
|
||||
<ObjectList File="../ObjectList.txt"/>
|
||||
<EntranceList File="../EntranceList.txt"/>
|
||||
<SpecialEntranceList File="../SpecialEntranceList.txt"/>
|
||||
<EnumData File="../EnumData.xml"/>
|
||||
<ExternalXMLFolder Path="assets/xml/"/>
|
||||
</Root>
|
2
tools/ZAPDConfigs/gc-eu-mq-dbg/SymbolMap.txt
Normal file
2
tools/ZAPDConfigs/gc-eu-mq-dbg/SymbolMap.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
8012DB20 gMtxClear
|
||||
80A8E610 sShadowTex
|
9
tools/ZAPDConfigs/gc-eu-mq/Config.xml
Normal file
9
tools/ZAPDConfigs/gc-eu-mq/Config.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<Root>
|
||||
<SymbolMap File="SymbolMap.txt"/>
|
||||
<ActorList File="../ActorList.txt"/>
|
||||
<ObjectList File="../ObjectList.txt"/>
|
||||
<EntranceList File="../EntranceList.txt"/>
|
||||
<SpecialEntranceList File="../SpecialEntranceList.txt"/>
|
||||
<EnumData File="../EnumData.xml"/>
|
||||
<ExternalXMLFolder Path="assets/xml/"/>
|
||||
</Root>
|
2
tools/ZAPDConfigs/gc-eu-mq/SymbolMap.txt
Normal file
2
tools/ZAPDConfigs/gc-eu-mq/SymbolMap.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
800FBC00 gMtxClear
|
||||
80A72FA0 sShadowTex
|
9
tools/ZAPDConfigs/gc-eu/Config.xml
Normal file
9
tools/ZAPDConfigs/gc-eu/Config.xml
Normal file
|
@ -0,0 +1,9 @@
|
|||
<Root>
|
||||
<SymbolMap File="SymbolMap.txt"/>
|
||||
<ActorList File="../ActorList.txt"/>
|
||||
<ObjectList File="../ObjectList.txt"/>
|
||||
<EntranceList File="../EntranceList.txt"/>
|
||||
<SpecialEntranceList File="../SpecialEntranceList.txt"/>
|
||||
<EnumData File="../EnumData.xml"/>
|
||||
<ExternalXMLFolder Path="assets/xml/"/>
|
||||
</Root>
|
2
tools/ZAPDConfigs/gc-eu/SymbolMap.txt
Normal file
2
tools/ZAPDConfigs/gc-eu/SymbolMap.txt
Normal file
|
@ -0,0 +1,2 @@
|
|||
800FBC20 gMtxClear
|
||||
80A73020 sShadowTex
|
|
@ -18,18 +18,30 @@ PROJECT_ROOT = Path(__file__).parent.parent
|
|||
|
||||
@dataclasses.dataclass
|
||||
class VersionConfig:
|
||||
# Version name
|
||||
version: str
|
||||
# ROM offset to start of DMA table
|
||||
dmadata_start: int
|
||||
# DMA segment information, in ROM order
|
||||
dmadata_segments: OrderedDict[str, SegmentInfo]
|
||||
# Addresses of important variables needed for asset extraction
|
||||
variables: Dict[str, int]
|
||||
variables: dict[str, int]
|
||||
# Assets to extract
|
||||
assets: list[AssetConfig]
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class SegmentInfo:
|
||||
name: str
|
||||
vram: int | None
|
||||
vram: Optional[int]
|
||||
|
||||
|
||||
@dataclasses.dataclass
|
||||
class AssetConfig:
|
||||
name: str
|
||||
xml_path: Path
|
||||
start_offset: Optional[int]
|
||||
end_offset: Optional[int]
|
||||
|
||||
|
||||
def load_dmadata_segments(version: str) -> OrderedDict[str, SegmentInfo]:
|
||||
|
@ -46,8 +58,19 @@ def load_dmadata_segments(version: str) -> OrderedDict[str, SegmentInfo]:
|
|||
def load_version_config(version: str) -> VersionConfig:
|
||||
with open(PROJECT_ROOT / f"baseroms/{version}/config.yml", "r") as f:
|
||||
config = yaml.load(f, Loader=yaml.Loader)
|
||||
|
||||
assets = []
|
||||
for asset in config["assets"]:
|
||||
name = asset["name"]
|
||||
xml_path = Path(asset["xml_path"])
|
||||
start_offset = asset.get("start_offset", None)
|
||||
end_offset = asset.get("end_offset", None)
|
||||
assets.append(AssetConfig(name, xml_path, start_offset, end_offset))
|
||||
|
||||
return VersionConfig(
|
||||
version=version,
|
||||
dmadata_start=config["dmadata_start"],
|
||||
dmadata_segments=load_dmadata_segments(version),
|
||||
variables=config["variables"],
|
||||
assets=assets,
|
||||
)
|
||||
|
|
Loading…
Reference in a new issue