Merge pull request #143 from Yanis42/decomp_update_3

Merge decomp/main
This commit is contained in:
Yanis
2024-07-30 00:08:49 +02:00
committed by GitHub
350 changed files with 34495 additions and 5412 deletions

View File

@@ -20,7 +20,8 @@
"OOT_DEBUG=1", // If targeting a debug version
"ENABLE_HACKEROOT=1",
"RELEASE_ROM=0",
"COMPRESS_YAZ=1"
"COMPRESS_YAZ=1",
"OOT_PAL=1"
],
"cStandard": "gnu11",
"cppStandard": "${default}" // Only ZAPD uses C++, so doesn't really matter

View File

@@ -10,12 +10,13 @@ SHELL = /bin/bash
COMPILER := gcc
# Target game version. Currently only the following version is supported:
# gc-eu GameCube Europe/PAL
# gc-eu-mq GameCube Europe/PAL Master Quest
# gc-eu-mq-dbg GameCube Europe/PAL Master Quest Debug
# hackeroot-mq HackerOoT, based on gc-eu-mq-dbg (default)
#
# The following versions are work-in-progress and not yet matching:
# gc-eu GameCube Europe/PAL
# gc-us GameCube US
#
# Note: choosing hackeroot-mq will enable HackerOoT features,
# if another version is chosen, this repo will be like
@@ -83,20 +84,25 @@ else
endif
# Version-specific settings
ifeq ($(VERSION),gc-eu)
ifeq ($(VERSION),gc-us)
DEBUG := 0
COMPARE := 0
CPP_DEFINES += -DOOT_NTSC=1 -DOOT_PAL=0 -DOOT_MQ=0
else ifeq ($(VERSION),gc-eu)
DEBUG := 0
CPP_DEFINES += -DOOT_NTSC=0 -DOOT_PAL=1 -DOOT_MQ=0
HACKEROOT := 0
else ifeq ($(VERSION),gc-eu-mq)
DEBUG := 0
CPP_DEFINES += -DOOT_MQ
CPP_DEFINES += -DOOT_NTSC=0 -DOOT_PAL=1 -DOOT_MQ=1
HACKEROOT := 0
else ifeq ($(VERSION),gc-eu-mq-dbg)
DEBUG := 1
CPP_DEFINES += -DOOT_MQ
CPP_DEFINES += -DOOT_NTSC=0 -DOOT_PAL=1 -DOOT_MQ=1
HACKEROOT := 0
else ifeq ($(VERSION),hackeroot-mq)
DEBUG := 1
CPP_DEFINES += -DOOT_MQ
CPP_DEFINES += -DOOT_NTSC=0 -DOOT_PAL=1 -DOOT_MQ=1
HACKEROOT := 1
else
$(error Unsupported version $(VERSION))
@@ -278,11 +284,15 @@ ifeq ($(COMPILER),gcc)
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)
# 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)
@@ -290,10 +300,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)
UCODE_PATCHES := $(wildcard F3DEX3/*.bps)
UCODE_FILES := $(foreach f,$(UCODE_PATCHES:.bps=),$f)
@@ -308,11 +320,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),gcc)
# Note that if adding additional assets directories for modding reasons these flags must also be used there
@@ -363,7 +375,7 @@ all: rom
rom:
$(call print,Building the rom...)
$(V)python3 tools/mod_assets.py
$(V)python3 tools/mod_assets.py --oot-version $(VERSION)
$(V)$(MAKE) $(ROM)
compress:
@@ -402,13 +414,10 @@ clean:
$(call print,Success!)
assetclean:
$(V)$(RM) -r $(ASSET_BIN_DIRS)
$(V)$(RM) -r $(EXTRACTED_DIR)
$(V)$(RM) -r $(BUILD_DIR)/assets
$(V)$(RM) -r .extracted-assets.json
$(call print,Success!)
distclean: assetclean
distclean:
$(V)$(RM) -r extracted/
$(V)$(RM) -r build/
$(V)$(MAKE) -C tools distclean
@@ -431,11 +440,8 @@ setup: venv
$(V)$(PYTHON) tools/decompress_baserom.py $(VERSION)
$(call print,Decompressing baserom: Done!)
$(V)$(PYTHON) tools/extract_baserom.py $(BASEROM_DIR)/baserom-decompressed.z64 --oot-version $(VERSION) -o $(EXTRACTED_DIR)/baserom
$(V)$(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
ifneq ($(VERSION),gc-eu-mq)
$(V)$(PYTHON) extract_assets.py -j$(N_THREADS) -v $(VERSION)
endif
$(V)$(PYTHON) tools/msgdis.py $(VERSION)
$(V)$(PYTHON) extract_assets.py -v $(VERSION) -j$(N_THREADS)
$(call print,Extracting files: Done!)
ifeq ($(VERSION),hackeroot-mq)
# TODO: proper fix (for .s files)
@@ -540,19 +546,29 @@ $(BUILD_DIR)/data/%.o: data/%.s
$(call print,Assembling:,$<,$@)
$(V)$(AS) $(ASFLAGS) $< -o $@
$(BUILD_DIR)/assets/text/%.enc.h: assets/text/%.h $(EXTRACTED_DIR)/text/%.h assets/text/charmap.txt
$(BUILD_DIR)/assets/text/%.enc.jpn.h: assets/text/%.h $(EXTRACTED_DIR)/text/%.h assets/text/charmap.txt
$(call print,Encoding:,$<,$@)
$(V)$(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) $< | $(PYTHON) tools/msgenc.py - --output $@ --charmap assets/text/charmap.txt
$(V)$(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) $< | $(PYTHON) tools/msgenc.py --encoding jpn --charmap assets/text/charmap.txt - $@
$(BUILD_DIR)/assets/text/%.enc.nes.h: assets/text/%.h $(EXTRACTED_DIR)/text/%.h assets/text/charmap.txt
$(call print,Encoding:,$<,$@)
$(V)$(CPP) $(CPPFLAGS) -I$(EXTRACTED_DIR) $< | $(PYTHON) tools/msgenc.py --encoding nes --charmap assets/text/charmap.txt - $@
# Dependencies for files including message data headers
# TODO remove when full header dependencies are used.
$(BUILD_DIR)/assets/text/fra_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.h
$(BUILD_DIR)/assets/text/ger_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.h
$(BUILD_DIR)/assets/text/nes_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.h
$(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/text/jpn_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.jpn.h
$(BUILD_DIR)/assets/text/nes_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.nes.h
$(BUILD_DIR)/assets/text/ger_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.nes.h
$(BUILD_DIR)/assets/text/fra_message_data_static.o: $(BUILD_DIR)/assets/text/message_data.enc.nes.h
$(BUILD_DIR)/assets/text/staff_message_data_static.o: $(BUILD_DIR)/assets/text/message_data_staff.enc.nes.h
$(BUILD_DIR)/src/code/z_message.o: assets/text/message_data.h assets/text/message_data_staff.h
$(BUILD_DIR)/assets/%.o: assets/%.c
$(BUILD_DIR)/assets/text/%.o: assets/text/%.c
$(call print,Compiling:,$<,$@)
$(V)$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
$(V)$(OBJCOPY) -O binary -j.rodata $@ $@.bin
$(BUILD_DIR)/assets/%.o: $(EXTRACTED_DIR)/assets/%.c
$(call print,Compiling:,$<,$@)
$(V)$(CC) -c $(CFLAGS) $(MIPS_VERSION) $(OPTFLAGS) -o $@ $<
$(V)$(OBJCOPY) -O binary $@ $@.bin
@@ -609,13 +625,13 @@ $(BUILD_DIR)/src/overlays/%_reloc.o: $(BUILD_DIR)/$(SPEC)
$(V)$(FADO) $$(tools/reloc_prereq $< $(notdir $*)) -n $(notdir $*) -o $(@:.o=.s) -M $(@:.o=.d)
$(V)$(AS) $(ASFLAGS) $(@:.o=.s) -o $@
$(BUILD_DIR)/%.inc.c: %.png
$(BUILD_DIR)/assets/%.inc.c: $(EXTRACTED_DIR)/assets/%.png
$(V)$(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
$(V)$(ZAPD) bblb -eh -i $< -o $@
$(BUILD_DIR)/assets/%.jpg.inc.c: assets/%.jpg
$(BUILD_DIR)/assets/%.jpg.inc.c: $(EXTRACTED_DIR)/assets/%.jpg
$(V)$(ZAPD) bren -eh -i $< -o $@
F3DEX3/f3dzex2.code:

7
assets/.gitignore vendored
View File

@@ -1,7 +0,0 @@
*.bin
*.c
*.h
!text/*.[ch]
*.cfg
*.vtx.inc
*.dlist.inc

View File

@@ -1,50 +1,58 @@
# Determines how certain text sequences should be encoded. The text sequence is
# converted to either the first or second tuple element based on whether the
# target encoding is the "wide" encoding. The first element is for the non-wide
# encoding, used for all languages besides JP, while the second element is for
# the wide encoding, used for JP.
{
'\n' : 0x01,
'\n' : (0x01, 0x000A),
'‾' : 0x7F,
'À' : 0x80,
'î' : 0x81,
'Â' : 0x82,
'Ä' : 0x83,
'Ç' : 0x84,
'È' : 0x85,
'É' : 0x86,
'Ê' : 0x87,
'Ë' : 0x88,
'Ï' : 0x89,
'Ô' : 0x8A,
'Ö' : 0x8B,
'Ù' : 0x8C,
'Û' : 0x8D,
'Ü' : 0x8E,
'ß' : 0x8F,
'à' : 0x90,
'á' : 0x91,
'â' : 0x92,
'ä' : 0x93,
'ç' : 0x94,
'è' : 0x95,
'é' : 0x96,
'ê' : 0x97,
'ë' : 0x98,
'ï' : 0x99,
'ô' : 0x9A,
'ö' : 0x9B,
'ù' : 0x9C,
'û' : 0x9D,
'ü' : 0x9E,
'[A]' : (0x9F, 0x839F),
'[B]' : (0xA0, 0x83A0),
'[C]' : (0xA1, 0x83A1),
'[L]' : (0xA2, 0x83A2),
'[R]' : (0xA3, 0x83A3),
'[Z]' : (0xA4, 0x83A4),
'[C-Up]' : (0xA5, 0x83A5),
'[C-Down]' : (0xA6, 0x83A6),
'[C-Left]' : (0xA7, 0x83A7),
'[C-Right]' : (0xA8, 0x83A8),
'' : (0xA9, 0x83A9),
'[Control-Pad]' : (0xAA, 0x83AA),
'[D-Pad]' : (0xAB, None),
'[A]' : 0x9F,
'[B]' : 0xA0,
'[C]' : 0xA1,
'[L]' : 0xA2,
'[R]' : 0xA3,
'[Z]' : 0xA4,
'[C-Up]' : 0xA5,
'[C-Down]' : 0xA6,
'[C-Left]' : 0xA7,
'[C-Right]' : 0xA8,
'' : 0xA9,
'[Control-Pad]' : 0xAA,
'[D-Pad]' : 0xAB,
# Possibly from a SHIFT-JIS extension, python doesn't have builtin support
'┯' : (None, 0x86D3),
'‾' : (0x7F, None),
'À' : (0x80, None),
'î' : (0x81, None),
'Â' : (0x82, None),
'Ä' : (0x83, None),
'Ç' : (0x84, None),
'È' : (0x85, None),
'É' : (0x86, None),
'Ê' : (0x87, None),
'Ë' : (0x88, None),
'Ï' : (0x89, None),
'Ô' : (0x8A, None),
'Ö' : (0x8B, None),
'Ù' : (0x8C, None),
'Û' : (0x8D, None),
'Ü' : (0x8E, None),
'ß' : (0x8F, None),
'à' : (0x90, None),
'á' : (0x91, None),
'â' : (0x92, None),
'ä' : (0x93, None),
'ç' : (0x94, None),
'è' : (0x95, None),
'é' : (0x96, None),
'ê' : (0x97, None),
'ë' : (0x98, None),
'ï' : (0x99, None),
'ô' : (0x9A, None),
'ö' : (0x9B, None),
'ù' : (0x9C, None),
'û' : (0x9D, None),
'ü' : (0x9E, None),
}

View File

@@ -2,9 +2,16 @@
#include "message_data_fmt.h"
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \
const char _message_##textId##_fra[sizeof(fraMessage)] = { fraMessage END };
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
const char _message_##textId##_fra[] = fraMessage;
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage)
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Present */ const char _message_##textId##_fra[] = fraMessage;
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */
#include "assets/text/message_data.enc.h"
// Font Message
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */
#include "assets/text/message_data.enc.nes.h"

View File

@@ -2,9 +2,16 @@
#include "message_data_fmt.h"
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \
const char _message_##textId##_ger[sizeof(gerMessage)] = { gerMessage END };
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
const char _message_##textId##_ger[] = gerMessage;
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage)
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Present */ const char _message_##textId##_ger[] = gerMessage;
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */
#include "assets/text/message_data.enc.h"
// Font Message
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */
#include "assets/text/message_data.enc.nes.h"

View File

@@ -0,0 +1,17 @@
#define MESSAGE_DATA_STATIC
#define MESSAGE_WCHAR
#include "message_data_fmt.h"
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
const char _message_##textId##_jpn[] = jpnMessage;
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Present */ const char _message_##textId##_jpn[] = jpnMessage;
// Font Message
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Present */ const char _message_##textId##_jpn[] = jpnMessage;
#include "assets/text/message_data.enc.jpn.h"

View File

@@ -5,7 +5,23 @@
* Message 0xFFFD must be last to not break the message debugger (see R_MESSAGE_DEBUGGER_TEXTID).
* Message 0xFFFC must be immediately before message 0xFFFD to not break Font_LoadOrderedFont.
*/
DEFINE_MESSAGE_NES(0xFFFC, TEXTBOX_TYPE_BLACK, TEXTBOX_POS_VARIABLE,
DEFINE_MESSAGE_FFFC(0xFFFC, TEXTBOX_TYPE_BLACK, TEXTBOX_POS_VARIABLE,
MSG(
"0123456789あいうえおかきくけこ\n"
"さしすせそたちつてとなにぬねのはひふへほ\n"
"まみむめもやゆよらりるれろわをんぁぃぅぇ\n"
"ぉっゃゅょがぎぐげござじずぜぞだぢづでど\n"
"ばびぶべぼぱぴぷぺぽアイウエオカキクケコ\n"
"サシスセソタチツテトナニヌネノハヒフヘホ\n"
"マミムメモヤユヨラリルレロワヲンァィゥェ\n"
"ォッャュョガギグゲゴザジズゼゾダヂヅデド\n"
"バビブベボパピプペポヴABCDEFGHI\n"
"\n"
"\n"
"xyz ┯?!:−()゛゜,./"
)
,
MSG(
"0123456789\n"
"ABCDEFGHIJKLMN\n"
"OPQRSTUVWXYZ\n"
@@ -13,4 +29,9 @@ DEFINE_MESSAGE_NES(0xFFFC, TEXTBOX_TYPE_BLACK, TEXTBOX_POS_VARIABLE,
"opqrstuvwxyz\n"
" -.\n"
)
DEFINE_MESSAGE(0xFFFD, TEXTBOX_TYPE_BLACK, TEXTBOX_POS_VARIABLE, "", "", "")
,
MSG(/* UNUSED */)
,
MSG(/* UNUSED */)
)
DEFINE_MESSAGE(0xFFFD, TEXTBOX_TYPE_BLACK, TEXTBOX_POS_VARIABLE, MSG(), MSG(), MSG(), MSG())

View File

@@ -2,9 +2,22 @@
#include "message_data_fmt.h"
#define DEFINE_MESSAGE(textId, type, yPos, nesMessage, gerMessage, fraMessage) \
const char _message_##textId##_nes[sizeof(nesMessage)] = { nesMessage END };
#define DEFINE_MESSAGE(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
const char _message_##textId##_nes[] = nesMessage;
#define DEFINE_MESSAGE_NES(textId, type, yPos, nesMessage) DEFINE_MESSAGE(textId, type, yPos, nesMessage, , )
#define DEFINE_MESSAGE_NES(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Present */ const char _message_##textId##_nes[] = nesMessage;
#define DEFINE_MESSAGE_JPN(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */
#include "assets/text/message_data.enc.h"
#if OOT_NTSC
// On NTSC versions, the font message is with JPN
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Not Present */
#else
// On PAL versions, the font message is with NES
#define DEFINE_MESSAGE_FFFC(textId, type, yPos, jpnMessage, nesMessage, gerMessage, fraMessage) \
/* Present */ const char _message_##textId##_nes[] = nesMessage;
#endif
#include "assets/text/message_data.enc.nes.h"

View File

@@ -3,6 +3,6 @@
#include "message_data_fmt.h"
#define DEFINE_MESSAGE(textId, type, yPos, staffMessage) \
const char _message_##textId##_staff[sizeof(staffMessage)] = { staffMessage END };
const char _message_##textId##_staff[] = staffMessage;
#include "assets/text/message_data_staff.enc.h"
#include "assets/text/message_data_staff.enc.nes.h"

View File

@@ -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>

View File

@@ -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>

View 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>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,79 +1,79 @@
<Root>
<File Name="object_bv" Segment="6">
<!-- Boss title card -->
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="ia8" Width="128" Height="120" Offset="0x1230"/>
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="ia8" Width="128" Height="80" Offset="0x1230"/>
<Skeleton Name="gBarinadeBodySkel" Type="Normal" LimbType="Standard" Offset="0x15B18"/>
<Skeleton Name="gBarinadeSupportSkel" Type="Flex" LimbType="Standard" Offset="0x17498"/>
<Skeleton Name="gBarinadeZapperSkel" Type="Flex" LimbType="Standard" Offset="0x199A0"/>
<Skeleton Name="gBarinadeStumpSkel" Type="Flex" LimbType="Standard" Offset="0x18870"/>
<Skeleton Name="gBarinadeBariSkel" Type="Normal" LimbType="Standard" Offset="0x4E70"/>
<Skeleton Name="gBarinadeCutSupportSkel" Type="Flex" LimbType="Standard" Offset="0x17FC8"/>
<Skeleton Name="gBarinadeBodySkel" Type="Normal" LimbType="Standard" Offset="0x14718"/>
<Skeleton Name="gBarinadeSupportSkel" Type="Flex" LimbType="Standard" Offset="0x16098"/>
<Skeleton Name="gBarinadeZapperSkel" Type="Flex" LimbType="Standard" Offset="0x185A0"/>
<Skeleton Name="gBarinadeStumpSkel" Type="Flex" LimbType="Standard" Offset="0x17470"/>
<Skeleton Name="gBarinadeBariSkel" Type="Normal" LimbType="Standard" Offset="0x3A70"/>
<Skeleton Name="gBarinadeCutSupportSkel" Type="Flex" LimbType="Standard" Offset="0x16BC8"/>
<Animation Name="gBarinadeBodyAnim" Offset="0x5184"/> <!-- Body anim 1-->
<Animation Name="gBarinadeSupportAttachedAnim" Offset="0x166A8"/> <!-- Support anim 1 -->
<Animation Name="gBarinadeZapperIdleAnim" Offset="0x18D18"/> <!-- Zapper anim 1 -->
<Animation Name="gBarinadeStumpAnim" Offset="0x18150"/> <!-- Stump anim 1 -->
<Animation Name="gBarinadeBodyAnim" Offset="0x3D84"/> <!-- Body anim 1-->
<Animation Name="gBarinadeSupportAttachedAnim" Offset="0x152A8"/> <!-- Support anim 1 -->
<Animation Name="gBarinadeZapperIdleAnim" Offset="0x17918"/> <!-- Zapper anim 1 -->
<Animation Name="gBarinadeStumpAnim" Offset="0x16D50"/> <!-- Stump anim 1 -->
<Animation Name="gBarinadeBariAnim" Offset="0x24"/> <!-- Bari anim -->
<Animation Name="gBarinadeSupportDamage1Anim" Offset="0x162AC"/> <!-- Support damaged anim 1 -->
<Animation Name="gBarinadeSupportDamage2Anim" Offset="0x164B0"/> <!-- Support damaged anim 2 -->
<Animation Name="gBarinadeSupportCutAnim" Offset="0x17694"/> <!-- Support cut init anim -->
<Animation Name="gBarinadeSupportDetachedAnim" Offset="0x177F4"/> <!-- Support cut idle anim -->
<Animation Name="gBarinadeZapperDamage1Anim" Offset="0x18A68"/> <!-- Zapper damaged anim 1 -->
<Animation Name="gBarinadeZapperDamage2Anim" Offset="0x18B90"/> <!-- Zapper damaged anim 2 -->
<Animation Name="gBarinadeSupportDamage1Anim" Offset="0x14EAC"/> <!-- Support damaged anim 1 -->
<Animation Name="gBarinadeSupportDamage2Anim" Offset="0x150B0"/> <!-- Support damaged anim 2 -->
<Animation Name="gBarinadeSupportCutAnim" Offset="0x16294"/> <!-- Support cut init anim -->
<Animation Name="gBarinadeSupportDetachedAnim" Offset="0x163F4"/> <!-- Support cut idle anim -->
<Animation Name="gBarinadeZapperDamage1Anim" Offset="0x17668"/> <!-- Zapper damaged anim 1 -->
<Animation Name="gBarinadeZapperDamage2Anim" Offset="0x17790"/> <!-- Zapper damaged anim 2 -->
<!-- body overrides -->
<DList Name="gBarinadeDL_008D70" Offset="0x8D70"/>
<DList Name="gBarinadeDL_008BB8" Offset="0x8BB8"/>
<DList Name="gBarinadeDL_008D70" Offset="0x7970"/>
<DList Name="gBarinadeDL_008BB8" Offset="0x77B8"/>
<!-- Bari something -->
<DList Name="gBarinadeDL_000FA0" Offset="0xFA0"/>
<!-- large spark -->
<DList Name="gBarinadeDL_0156A0" Offset="0x156A0"/>
<DList Name="gBarinadeDL_015710" Offset="0x15710"/>
<DList Name="gBarinadeDL_0156A0" Offset="0x142A0"/>
<DList Name="gBarinadeDL_015710" Offset="0x14310"/>
<!-- spark ball -->
<DList Name="gBarinadeDL_011738" Offset="0x11738"/>
<DList Name="gBarinadeDL_011768" Offset="0x11768"/>
<DList Name="gBarinadeDL_011738" Offset="0x10338"/>
<DList Name="gBarinadeDL_011768" Offset="0x10368"/>
<!-- blood -->
<DList Name="gBarinadeDL_009430" Offset="0x9430"/>
<DList Name="gBarinadeDL_009468" Offset="0x9468"/>
<DList Name="gBarinadeDL_009430" Offset="0x8030"/>
<DList Name="gBarinadeDL_009468" Offset="0x8068"/>
<!-- tumor -->
<DList Name="gBarinadeDL_0128B8" Offset="0x128B8"/>
<DList Name="gBarinadeDL_012948" Offset="0x12948"/>
<DList Name="gBarinadeDL_0128B8" Offset="0x114B8"/>
<DList Name="gBarinadeDL_012948" Offset="0x11548"/>
<!-- gore -->
<DList Name="gBarinadeDL_012BA0" Offset="0x12BA0"/>
<DList Name="gBarinadeDL_012C50" Offset="0x12C50"/>
<DList Name="gBarinadeDL_012BA0" Offset="0x117A0"/>
<DList Name="gBarinadeDL_012C50" Offset="0x11850"/>
<!-- zapper charge -->
<DList Name="gBarinadeDL_0135B0" Offset="0x135B0"/>
<DList Name="gBarinadeDL_013638" Offset="0x13638"/>
<DList Name="gBarinadeDL_0135B0" Offset="0x121B0"/>
<DList Name="gBarinadeDL_013638" Offset="0x12238"/>
<!-- small spark -->
<DList Name="gBarinadeDL_008F08" Offset="0x8F08"/>
<DList Name="gBarinadeDL_008F70" Offset="0x8F70"/>
<DList Name="gBarinadeDL_008F08" Offset="0x7B08"/>
<DList Name="gBarinadeDL_008F70" Offset="0x7B70"/>
<Texture Name="gBarinadeSparkBall1Tex" Format="i8" Width="64" Height="64" Offset="0x96F8"/>
<Texture Name="gBarinadeSparkBall2Tex" Format="i8" Width="64" Height="64" Offset="0xA6F8"/>
<Texture Name="gBarinadeSparkBall3Tex" Format="i8" Width="64" Height="64" Offset="0xB6F8"/>
<Texture Name="gBarinadeSparkBall4Tex" Format="i8" Width="64" Height="64" Offset="0xC6F8"/>
<Texture Name="gBarinadeSparkBall5Tex" Format="i8" Width="64" Height="64" Offset="0xD6F8"/>
<Texture Name="gBarinadeSparkBall6Tex" Format="i8" Width="64" Height="64" Offset="0xE6F8"/>
<Texture Name="gBarinadeSparkBall7Tex" Format="i8" Width="64" Height="64" Offset="0xF6F8"/>
<Texture Name="gBarinadeSparkBall8Tex" Format="i8" Width="64" Height="64" Offset="0x106F8"/>
<DList Name="gBarinadeDoorPiece1DL" Offset="0x1A3E8"/>
<DList Name="gBarinadeDoorPiece2DL" Offset="0x1AEE8"/>
<DList Name="gBarinadeDoorPiece3DL" Offset="0x1B9E8"/>
<DList Name="gBarinadeDoorPiece4DL" Offset="0x1C4E8"/>
<DList Name="gBarinadeDoorPiece5DL" Offset="0x1CFE8"/>
<DList Name="gBarinadeDoorPiece6DL" Offset="0x1DAE8"/>
<DList Name="gBarinadeDoorPiece7DL" Offset="0x1E5E8"/>
<DList Name="gBarinadeDoorPiece8DL" Offset="0x1F0E8"/>
<Texture Name="gBarinadeSparkBall1Tex" Format="i8" Width="64" Height="64" Offset="0x82F8"/>
<Texture Name="gBarinadeSparkBall2Tex" Format="i8" Width="64" Height="64" Offset="0x92F8"/>
<Texture Name="gBarinadeSparkBall3Tex" Format="i8" Width="64" Height="64" Offset="0xA2F8"/>
<Texture Name="gBarinadeSparkBall4Tex" Format="i8" Width="64" Height="64" Offset="0xB2F8"/>
<Texture Name="gBarinadeSparkBall5Tex" Format="i8" Width="64" Height="64" Offset="0xC2F8"/>
<Texture Name="gBarinadeSparkBall6Tex" Format="i8" Width="64" Height="64" Offset="0xD2F8"/>
<Texture Name="gBarinadeSparkBall7Tex" Format="i8" Width="64" Height="64" Offset="0xE2F8"/>
<Texture Name="gBarinadeSparkBall8Tex" Format="i8" Width="64" Height="64" Offset="0xF2F8"/>
<DList Name="gBarinadeDoorPiece1DL" Offset="0x18FE8"/>
<DList Name="gBarinadeDoorPiece2DL" Offset="0x19AE8"/>
<DList Name="gBarinadeDoorPiece3DL" Offset="0x1A5E8"/>
<DList Name="gBarinadeDoorPiece4DL" Offset="0x1B0E8"/>
<DList Name="gBarinadeDoorPiece5DL" Offset="0x1BBE8"/>
<DList Name="gBarinadeDoorPiece6DL" Offset="0x1C6E8"/>
<DList Name="gBarinadeDoorPiece7DL" Offset="0x1D1E8"/>
<DList Name="gBarinadeDoorPiece8DL" Offset="0x1DCE8"/>
<Animation Name="gBarinadeAnim_018A00" Offset="0x18A00"/>
<Animation Name="gBarinadeAnim_015F10" Offset="0x15F10"/>
<Animation Name="gBarinadeAnim_015D10" Offset="0x15D10"/>
<DList Name="gBarinadeDL_008E88" Offset="0x8E88"/>
<DList Name="gBarinadeDL_008EF0" Offset="0x8EF0"/>
<DList Name="gBarinadeDL_009388" Offset="0x9388"/>
<DList Name="gBarinadeDL_0093A0" Offset="0x93A0"/>
<DList Name="gBarinadeDL_0094F8" Offset="0x94F8"/>
<DList Name="gBarinadeDL_0095B0" Offset="0x95B0"/>
<Animation Name="gBarinadeAnim_018A00" Offset="0x17600"/>
<Animation Name="gBarinadeAnim_015F10" Offset="0x14B10"/>
<Animation Name="gBarinadeAnim_015D10" Offset="0x14910"/>
<DList Name="gBarinadeDL_008E88" Offset="0x7A88"/>
<DList Name="gBarinadeDL_008EF0" Offset="0x7AF0"/>
<DList Name="gBarinadeDL_009388" Offset="0x7F88"/>
<DList Name="gBarinadeDL_0093A0" Offset="0x7FA0"/>
<DList Name="gBarinadeDL_0094F8" Offset="0x80F8"/>
<DList Name="gBarinadeDL_0095B0" Offset="0x81B0"/>
</File>
</Root>

View File

@@ -0,0 +1,79 @@
<Root>
<File Name="object_bv" Segment="6">
<!-- Boss title card -->
<Texture Name="gBarinadeTitleCardTex" OutName="barinade_title_card" Format="ia8" Width="128" Height="120" Offset="0x1230"/>
<Skeleton Name="gBarinadeBodySkel" Type="Normal" LimbType="Standard" Offset="0x15B18"/>
<Skeleton Name="gBarinadeSupportSkel" Type="Flex" LimbType="Standard" Offset="0x17498"/>
<Skeleton Name="gBarinadeZapperSkel" Type="Flex" LimbType="Standard" Offset="0x199A0"/>
<Skeleton Name="gBarinadeStumpSkel" Type="Flex" LimbType="Standard" Offset="0x18870"/>
<Skeleton Name="gBarinadeBariSkel" Type="Normal" LimbType="Standard" Offset="0x4E70"/>
<Skeleton Name="gBarinadeCutSupportSkel" Type="Flex" LimbType="Standard" Offset="0x17FC8"/>
<Animation Name="gBarinadeBodyAnim" Offset="0x5184"/> <!-- Body anim 1-->
<Animation Name="gBarinadeSupportAttachedAnim" Offset="0x166A8"/> <!-- Support anim 1 -->
<Animation Name="gBarinadeZapperIdleAnim" Offset="0x18D18"/> <!-- Zapper anim 1 -->
<Animation Name="gBarinadeStumpAnim" Offset="0x18150"/> <!-- Stump anim 1 -->
<Animation Name="gBarinadeBariAnim" Offset="0x24"/> <!-- Bari anim -->
<Animation Name="gBarinadeSupportDamage1Anim" Offset="0x162AC"/> <!-- Support damaged anim 1 -->
<Animation Name="gBarinadeSupportDamage2Anim" Offset="0x164B0"/> <!-- Support damaged anim 2 -->
<Animation Name="gBarinadeSupportCutAnim" Offset="0x17694"/> <!-- Support cut init anim -->
<Animation Name="gBarinadeSupportDetachedAnim" Offset="0x177F4"/> <!-- Support cut idle anim -->
<Animation Name="gBarinadeZapperDamage1Anim" Offset="0x18A68"/> <!-- Zapper damaged anim 1 -->
<Animation Name="gBarinadeZapperDamage2Anim" Offset="0x18B90"/> <!-- Zapper damaged anim 2 -->
<!-- body overrides -->
<DList Name="gBarinadeDL_008D70" Offset="0x8D70"/>
<DList Name="gBarinadeDL_008BB8" Offset="0x8BB8"/>
<!-- Bari something -->
<DList Name="gBarinadeDL_000FA0" Offset="0xFA0"/>
<!-- large spark -->
<DList Name="gBarinadeDL_0156A0" Offset="0x156A0"/>
<DList Name="gBarinadeDL_015710" Offset="0x15710"/>
<!-- spark ball -->
<DList Name="gBarinadeDL_011738" Offset="0x11738"/>
<DList Name="gBarinadeDL_011768" Offset="0x11768"/>
<!-- blood -->
<DList Name="gBarinadeDL_009430" Offset="0x9430"/>
<DList Name="gBarinadeDL_009468" Offset="0x9468"/>
<!-- tumor -->
<DList Name="gBarinadeDL_0128B8" Offset="0x128B8"/>
<DList Name="gBarinadeDL_012948" Offset="0x12948"/>
<!-- gore -->
<DList Name="gBarinadeDL_012BA0" Offset="0x12BA0"/>
<DList Name="gBarinadeDL_012C50" Offset="0x12C50"/>
<!-- zapper charge -->
<DList Name="gBarinadeDL_0135B0" Offset="0x135B0"/>
<DList Name="gBarinadeDL_013638" Offset="0x13638"/>
<!-- small spark -->
<DList Name="gBarinadeDL_008F08" Offset="0x8F08"/>
<DList Name="gBarinadeDL_008F70" Offset="0x8F70"/>
<Texture Name="gBarinadeSparkBall1Tex" Format="i8" Width="64" Height="64" Offset="0x96F8"/>
<Texture Name="gBarinadeSparkBall2Tex" Format="i8" Width="64" Height="64" Offset="0xA6F8"/>
<Texture Name="gBarinadeSparkBall3Tex" Format="i8" Width="64" Height="64" Offset="0xB6F8"/>
<Texture Name="gBarinadeSparkBall4Tex" Format="i8" Width="64" Height="64" Offset="0xC6F8"/>
<Texture Name="gBarinadeSparkBall5Tex" Format="i8" Width="64" Height="64" Offset="0xD6F8"/>
<Texture Name="gBarinadeSparkBall6Tex" Format="i8" Width="64" Height="64" Offset="0xE6F8"/>
<Texture Name="gBarinadeSparkBall7Tex" Format="i8" Width="64" Height="64" Offset="0xF6F8"/>
<Texture Name="gBarinadeSparkBall8Tex" Format="i8" Width="64" Height="64" Offset="0x106F8"/>
<DList Name="gBarinadeDoorPiece1DL" Offset="0x1A3E8"/>
<DList Name="gBarinadeDoorPiece2DL" Offset="0x1AEE8"/>
<DList Name="gBarinadeDoorPiece3DL" Offset="0x1B9E8"/>
<DList Name="gBarinadeDoorPiece4DL" Offset="0x1C4E8"/>
<DList Name="gBarinadeDoorPiece5DL" Offset="0x1CFE8"/>
<DList Name="gBarinadeDoorPiece6DL" Offset="0x1DAE8"/>
<DList Name="gBarinadeDoorPiece7DL" Offset="0x1E5E8"/>
<DList Name="gBarinadeDoorPiece8DL" Offset="0x1F0E8"/>
<Animation Name="gBarinadeAnim_018A00" Offset="0x18A00"/>
<Animation Name="gBarinadeAnim_015F10" Offset="0x15F10"/>
<Animation Name="gBarinadeAnim_015D10" Offset="0x15D10"/>
<DList Name="gBarinadeDL_008E88" Offset="0x8E88"/>
<DList Name="gBarinadeDL_008EF0" Offset="0x8EF0"/>
<DList Name="gBarinadeDL_009388" Offset="0x9388"/>
<DList Name="gBarinadeDL_0093A0" Offset="0x93A0"/>
<DList Name="gBarinadeDL_0094F8" Offset="0x94F8"/>
<DList Name="gBarinadeDL_0095B0" Offset="0x95B0"/>
</File>
</Root>

View File

@@ -1,5 +1,4 @@
<Root>
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
<File Name="object_demo_6k" Segment="6">
<Texture Name="object_demo_6k_Tex_000000" OutName="tex_00000000" Format="i8" Width="64" Height="64" Offset="0x0"/>
<DList Name="object_demo_6k_DL_001040" Offset="0x1040"/>

View File

@@ -1,5 +1,4 @@
<Root>
<ExternalFile XmlPath="objects/gameplay_keep.xml" OutPath="assets/objects/gameplay_keep/"/>
<File Name="object_demo_kekkai" Segment="6">
<!-- Demo_Kekkai -->
<DList Name="gTowerBarrierDL" Offset="0x4930"/>

View File

@@ -1,9 +1,9 @@
<Root>
<File Name="object_du" Segment="6">
<!-- Darunia's skeleton -->
<Skeleton Name="gDaruniaSkel" Type="Flex" LimbType="Standard" Offset="0x11CA8"/>
<Skeleton Name="gDaruniaSkel" Type="Flex" LimbType="Standard" Offset="0x122A8"/>
<Animation Name="gDaruniaIdleAnim" Offset="0x6EB0"/>
<Animation Name="gDaruniaIdleAnim" Offset="0x74B0"/>
<Animation Name="gDaruniaItemGiveAnim" Offset="0x800"/>
<Animation Name="gDaruniaItemGiveIdleAnim" Offset="0xD00"/>
@@ -16,66 +16,66 @@
<!-- Animations of Darunia dancing the Saria's Song -->
<!-- He opens and closes his arms -->
<Animation Name="gDaruniaDancingLoop1Anim" Offset="0x2D94"/>
<Animation Name="gDaruniaDancingLoop1Anim" Offset="0x2E8C"/>
<!-- I don't understand this one -->
<Animation Name="gDaruniaDancingLoop2Anim" Offset="0x3D48"/>
<Animation Name="gDaruniaDancingLoop2Anim" Offset="0x40FC"/>
<!-- Dances side to side -->
<Animation Name="gDaruniaDancingLoop3Anim" Offset="0x4C04"/>
<Animation Name="gDaruniaDancingLoop3Anim" Offset="0x516C"/>
<!-- I don't know. He thinks he is a chicken maybe (?) -->
<Animation Name="gDaruniaDancingLoop4Anim" Offset="0x4ED8"/>
<Animation Name="gDaruniaDancingLoop4Anim" Offset="0x54DC"/>
<!-- Seems to go from from dancing to idle -->
<Animation Name="gDaruniaDancingEndAnim" Offset="0x41F4"/>
<Animation Name="gDaruniaDancingEndAnim" Offset="0x45A4"/>
<!-- Link played a song which isn't the Saria's Song -->
<Animation Name="gDaruniaWrongSongAnim" Offset="0x3A30"/>
<Animation Name="gDaruniaWrongSongEndAnim" Offset="0x46F4"/>
<Animation Name="gDaruniaWrongSongAnim" Offset="0x3D88"/>
<Animation Name="gDaruniaWrongSongEndAnim" Offset="0x4B6C"/>
<!-- Cutscene in the Chamber of Sages, after killing Ganon -->
<Animation Name="gDaruniaSageFormationAnim" Offset="0x12014"/>
<Animation Name="gDaruniaSageFormationAnim" Offset="0x12614"/>
<!-- Cutscene in credits. Saria is in Darunia's shoulders -->
<Animation Name="gDaruniaLookingUpToSariaAnim" Offset="0x5458"/>
<Animation Name="gDaruniaCreditsHitBreastAnim" Offset="0x6104"/>
<Animation Name="gDaruniaCreditsIdleAnim" Offset="0x67CC"/>
<Animation Name="gDaruniaLookingUpToSariaAnim" Offset="0x5A58"/>
<Animation Name="gDaruniaCreditsHitBreastAnim" Offset="0x6704"/>
<Animation Name="gDaruniaCreditsIdleAnim" Offset="0x6DCC"/>
<!-- Darunia's eyes textures -->
<Texture Name="gDaruniaEyeOpenTex" OutName="darunia_eye_open" Format="ci8" Width="32" Height="32" Offset="0x8080" TlutOffset="0x7AF8"/>
<Texture Name="gDaruniaEyeOpeningTex" OutName="darunia_eye_opening" Format="ci8" Width="32" Height="32" Offset="0x8480" TlutOffset="0x7AF8"/>
<Texture Name="gDaruniaEyeShutTex" OutName="darunia_eye_shut" Format="ci8" Width="32" Height="32" Offset="0x8880" TlutOffset="0x7AF8"/>
<Texture Name="gDaruniaEyeClosingTex" OutName="darunia_eye_closing" Format="ci8" Width="32" Height="32" Offset="0xA540" TlutOffset="0x7AF8"/>
<Texture Name="gDaruniaEyeOpenTex" OutName="darunia_eye_open" Format="ci8" Width="32" Height="32" Offset="0x8680" TlutOffset="0x80F8"/>
<Texture Name="gDaruniaEyeOpeningTex" OutName="darunia_eye_opening" Format="ci8" Width="32" Height="32" Offset="0x8A80" TlutOffset="0x80F8"/>
<Texture Name="gDaruniaEyeShutTex" OutName="darunia_eye_shut" Format="ci8" Width="32" Height="32" Offset="0x8E80" TlutOffset="0x80F8"/>
<Texture Name="gDaruniaEyeClosingTex" OutName="darunia_eye_closing" Format="ci8" Width="32" Height="32" Offset="0xAB40" TlutOffset="0x80F8"/>
<!-- Darunia's mouth textures -->
<Texture Name="gDaruniaMouthSeriousTex" OutName="darunia_mouth_serious" Format="ci8" Width="64" Height="32" Offset="0x8C80" TlutOffset="0x7CC8"/>
<Texture Name="gDaruniaMouthGrinningTex" OutName="darunia_mouth_grinning" Format="ci8" Width="64" Height="32" Offset="0x9D40" TlutOffset="0x7CC8"/>
<Texture Name="gDaruniaMouthOpenTex" OutName="darunia_mouth_open" Format="ci8" Width="64" Height="32" Offset="0xA940" TlutOffset="0x7CC8"/>
<Texture Name="gDaruniaMouthHappyTex" OutName="darunia_mouth_happy" Format="ci8" Width="64" Height="32" Offset="0xB180" TlutOffset="0x7CC8"/>
<Texture Name="gDaruniaMouthSeriousTex" OutName="darunia_mouth_serious" Format="ci8" Width="64" Height="32" Offset="0x9280" TlutOffset="0x82C8"/>
<Texture Name="gDaruniaMouthGrinningTex" OutName="darunia_mouth_grinning" Format="ci8" Width="64" Height="32" Offset="0xA340" TlutOffset="0x82C8"/>
<Texture Name="gDaruniaMouthOpenTex" OutName="darunia_mouth_open" Format="ci8" Width="64" Height="32" Offset="0xAF40" TlutOffset="0x82C8"/>
<Texture Name="gDaruniaMouthHappyTex" OutName="darunia_mouth_happy" Format="ci8" Width="64" Height="32" Offset="0xB780" TlutOffset="0x82C8"/>
<!-- Darunia's nose textures -->
<Texture Name="gDaruniaNoseSeriousTex" OutName="darunia_nose_serious" Format="ci8" Width="8" Height="8" Offset="0x7FC0" TlutOffset="0x7980"/>
<Texture Name="gDaruniaNoseHappyTex" OutName="darunia_nose_happy" Format="ci8" Width="8" Height="8" Offset="0xB140" TlutOffset="0x7980"/>
<Texture Name="gDaruniaNoseSeriousTex" OutName="darunia_nose_serious" Format="ci8" Width="8" Height="8" Offset="0x85C0" TlutOffset="0x7F80"/>
<Texture Name="gDaruniaNoseHappyTex" OutName="darunia_nose_happy" Format="ci8" Width="8" Height="8" Offset="0xB740" TlutOffset="0x7F80"/>
<!-- Palettes -->
<Texture Name="gDaruniaTLUT_6EC0" OutName="darunia_tlut_6EC0" Format="rgba16" Width="16" Height="16" Offset="0x6EC0"/>
<Texture Name="gDaruniaTLUT_7AF8" OutName="darunia_tlut_7AF8" Format="rgba16" Width="29" Height="8" Offset="0x7AF8"/>
<Texture Name="gDaruniaTLUT_7CC8" OutName="darunia_tlut_7CC8" Format="rgba16" Width="21" Height="12" Offset="0x7CC8"/>
<Texture Name="gDaruniaTLUT_7980" OutName="darunia_tlut_7980" Format="rgba16" Width="47" Height="4" Offset="0x7980"/>
<Texture Name="gDaruniaTLUT_6EC0" OutName="darunia_tlut_6EC0" Format="rgba16" Width="16" Height="16" Offset="0x74C0"/>
<Texture Name="gDaruniaTLUT_7AF8" OutName="darunia_tlut_7AF8" Format="rgba16" Width="29" Height="8" Offset="0x80F8"/>
<Texture Name="gDaruniaTLUT_7CC8" OutName="darunia_tlut_7CC8" Format="rgba16" Width="21" Height="12" Offset="0x82C8"/>
<Texture Name="gDaruniaTLUT_7980" OutName="darunia_tlut_7980" Format="rgba16" Width="47" Height="4" Offset="0x7F80"/>
<!-- Palette: gDaruniaPalette_6EC0 -->
<Texture Name="gDaruniaSkelTex_70C0" OutName="darunia_tex_70C0" Format="ci8" Width="32" Height="16" Offset="0x70C0" TlutOffset="0x6EC0"/>
<Texture Name="gDaruniaSkelTex_72C0" OutName="darunia_tex_72C0" Format="ci8" Width="16" Height="16" Offset="0x72C0" TlutOffset="0x6EC0"/>
<Texture Name="gDaruniaSkelTex_73C0" OutName="darunia_tex_73C0" Format="ci8" Width="8" Height="16" Offset="0x73C0" TlutOffset="0x6EC0"/>
<Texture Name="gDaruniaSkelTex_7440" OutName="darunia_tex_7440" Format="ci8" Width="8" Height="8" Offset="0x7440" TlutOffset="0x6EC0"/>
<Texture Name="gDaruniaSkelTex_7480" OutName="darunia_tex_7480" Format="ci8" Width="16" Height="16" Offset="0x7480" TlutOffset="0x6EC0"/>
<Texture Name="gDaruniaSkelTex_7580" OutName="darunia_tex_7580" Format="ci8" Width="32" Height="32" Offset="0x7580" TlutOffset="0x6EC0"/>
<Texture Name="gDaruniaSkelTex_70C0" OutName="darunia_tex_70C0" Format="ci8" Width="32" Height="16" Offset="0x76C0" TlutOffset="0x74C0"/>
<Texture Name="gDaruniaSkelTex_72C0" OutName="darunia_tex_72C0" Format="ci8" Width="16" Height="16" Offset="0x78C0" TlutOffset="0x74C0"/>
<Texture Name="gDaruniaSkelTex_73C0" OutName="darunia_tex_73C0" Format="ci8" Width="8" Height="16" Offset="0x79C0" TlutOffset="0x74C0"/>
<Texture Name="gDaruniaSkelTex_7440" OutName="darunia_tex_7440" Format="ci8" Width="8" Height="8" Offset="0x7A40" TlutOffset="0x74C0"/>
<Texture Name="gDaruniaSkelTex_7480" OutName="darunia_tex_7480" Format="ci8" Width="16" Height="16" Offset="0x7A80" TlutOffset="0x74C0"/>
<Texture Name="gDaruniaSkelTex_7580" OutName="darunia_tex_7580" Format="ci8" Width="32" Height="32" Offset="0x7B80" TlutOffset="0x74C0"/>
<!-- Palette: gDaruniaPalette_7980 -->
<Texture Name="gDaruniaSkelTex_7EC0" OutName="darunia_tex_7EC0" Format="ci8" Width="8" Height="16" Offset="0x7EC0" TlutOffset="0x7980"/>
<Texture Name="gDaruniaSkelTex_7F40" OutName="darunia_tex_7F40" Format="ci8" Width="8" Height="16" Offset="0x7F40" TlutOffset="0x7980"/>
<Texture Name="gDaruniaSkelTex_8000" OutName="darunia_tex_8000" Format="ci8" Width="8" Height="16" Offset="0x8000" TlutOffset="0x7980"/>
<Texture Name="gDaruniaSkelTex_9480" OutName="darunia_tex_9480" Format="ci8" Width="8" Height="16" Offset="0x9480" TlutOffset="0x7980"/>
<Texture Name="gDaruniaSkelTex_9500" OutName="darunia_tex_9500" Format="ci8" Width="32" Height="64" Offset="0x9500" TlutOffset="0x7980"/>
<Texture Name="gDaruniaSkelTex_9D00" OutName="darunia_tex_9D00" Format="ci8" Width="8" Height="8" Offset="0x9D00" TlutOffset="0x7980"/>
<Texture Name="gDaruniaSkelTex_7EC0" OutName="darunia_tex_7EC0" Format="ci8" Width="8" Height="16" Offset="0x84C0" TlutOffset="0x7F80"/>
<Texture Name="gDaruniaSkelTex_7F40" OutName="darunia_tex_7F40" Format="ci8" Width="8" Height="16" Offset="0x8540" TlutOffset="0x7F80"/>
<Texture Name="gDaruniaSkelTex_8000" OutName="darunia_tex_8000" Format="ci8" Width="8" Height="16" Offset="0x8600" TlutOffset="0x7F80"/>
<Texture Name="gDaruniaSkelTex_9480" OutName="darunia_tex_9480" Format="ci8" Width="8" Height="16" Offset="0x9A80" TlutOffset="0x7F80"/>
<Texture Name="gDaruniaSkelTex_9500" OutName="darunia_tex_9500" Format="ci8" Width="32" Height="64" Offset="0x9B00" TlutOffset="0x7F80"/>
<Texture Name="gDaruniaSkelTex_9D00" OutName="darunia_tex_9D00" Format="ci8" Width="8" Height="8" Offset="0xA300" TlutOffset="0x7F80"/>
</File>
</Root>

Some files were not shown because too many files have changed in this diff Show More