mirror of https://github.com/zeldaret/mm.git
Add yar (Yaz0 ARchives) support to build system (#1255)
* extract_archives.py * autogenerated xmls * build OK * cleanup * Use symbols in gItemIcons * change how archives are generated * makeyar in C * Rename segments * rename .archive.o to .yar.o * Explanation at the top of programs * fix progress calculation * Ignore archives in progress script * merge * Update tools/buildtools/makeyar.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update tools/buildtools/makeyar.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update tools/buildtools/makeyar.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> * Update tools/buildtools/makeyar.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> --------- Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
This commit is contained in:
parent
0a55ca0b40
commit
a5cc630cef
13
Makefile
13
Makefile
|
@ -117,6 +117,7 @@ MKLDSCRIPT := tools/buildtools/mkldscript
|
||||||
YAZ0 := tools/buildtools/yaz0
|
YAZ0 := tools/buildtools/yaz0
|
||||||
ZAPD := tools/ZAPD/ZAPD.out
|
ZAPD := tools/ZAPD/ZAPD.out
|
||||||
FADO := tools/fado/fado.elf
|
FADO := tools/fado/fado.elf
|
||||||
|
MAKEYAR := tools/buildtools/makeyar
|
||||||
|
|
||||||
OPTFLAGS := -O2 -g3
|
OPTFLAGS := -O2 -g3
|
||||||
ASFLAGS := -march=vr4300 -32 -Iinclude
|
ASFLAGS := -march=vr4300 -32 -Iinclude
|
||||||
|
@ -184,9 +185,11 @@ C_FILES := $(foreach dir,$(SRC_DIRS) $(ASSET_BIN_DIRS_C_FILES),$(wildcard
|
||||||
S_FILES := $(shell grep -F "build/asm" spec | sed 's/.*build\/// ; s/\.o\".*/.s/') \
|
S_FILES := $(shell grep -F "build/asm" spec | sed 's/.*build\/// ; s/\.o\".*/.s/') \
|
||||||
$(shell grep -F "build/data" spec | sed 's/.*build\/// ; s/\.o\".*/.s/')
|
$(shell grep -F "build/data" spec | sed 's/.*build\/// ; s/\.o\".*/.s/')
|
||||||
BASEROM_FILES := $(shell grep -F "build/baserom" spec | sed 's/.*build\/// ; s/\.o\".*//')
|
BASEROM_FILES := $(shell grep -F "build/baserom" spec | sed 's/.*build\/// ; s/\.o\".*//')
|
||||||
|
ARCHIVES_O := $(shell grep -F ".yar.o" spec | sed 's/.*include "// ; s/\.o\".*/.o/')
|
||||||
O_FILES := $(foreach f,$(S_FILES:.s=.o),build/$f) \
|
O_FILES := $(foreach f,$(S_FILES:.s=.o),build/$f) \
|
||||||
$(foreach f,$(C_FILES:.c=.o),build/$f) \
|
$(foreach f,$(C_FILES:.c=.o),build/$f) \
|
||||||
$(foreach f,$(BASEROM_FILES),build/$f.o)
|
$(foreach f,$(BASEROM_FILES),build/$f.o) \
|
||||||
|
$(ARCHIVES_O)
|
||||||
|
|
||||||
OVL_RELOC_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | grep -o '[^"]*_reloc.o' )
|
OVL_RELOC_FILES := $(shell $(CPP) $(CPPFLAGS) $(SPEC) | grep -o '[^"]*_reloc.o' )
|
||||||
|
|
||||||
|
@ -303,6 +306,7 @@ setup:
|
||||||
$(MAKE) -C tools
|
$(MAKE) -C tools
|
||||||
python3 tools/fixbaserom.py
|
python3 tools/fixbaserom.py
|
||||||
python3 tools/extract_baserom.py
|
python3 tools/extract_baserom.py
|
||||||
|
python3 tools/decompress_yars.py
|
||||||
|
|
||||||
assets:
|
assets:
|
||||||
python3 extract_assets.py -j $(N_THREADS)
|
python3 extract_assets.py -j $(N_THREADS)
|
||||||
|
@ -344,6 +348,10 @@ build/assets/%.o: assets/%.c
|
||||||
$(OBJCOPY_BIN)
|
$(OBJCOPY_BIN)
|
||||||
$(RM_MDEBUG)
|
$(RM_MDEBUG)
|
||||||
|
|
||||||
|
build/assets/archives/%.yar.o: build/assets/archives/%.o
|
||||||
|
$(MAKEYAR) $< $(@:.yar.o=.yar.bin) $(@:.yar.o=.symbols.o)
|
||||||
|
$(OBJCOPY) -I binary -O elf32-big $(@:.yar.o=.yar.bin) $@
|
||||||
|
|
||||||
build/baserom/%.o: baserom/%
|
build/baserom/%.o: baserom/%
|
||||||
$(OBJCOPY) -I binary -O elf32-big $< $@
|
$(OBJCOPY) -I binary -O elf32-big $< $@
|
||||||
|
|
||||||
|
@ -392,3 +400,6 @@ build/assets/%.jpg.inc.c: assets/%.jpg
|
||||||
$(ZAPD) bren -eh -i $< -o $@
|
$(ZAPD) bren -eh -i $< -o $@
|
||||||
|
|
||||||
-include $(DEP_FILES)
|
-include $(DEP_FILES)
|
||||||
|
|
||||||
|
# Print target for debugging
|
||||||
|
print-% : ; $(info $* is a $(flavor $*) variable set to [$($*)]) @true
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
<Root>
|
||||||
|
<File Name="icon_item_24_static_yar.unarchive" Segment="9">
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_000000" Size="0x0900" Offset="0x0" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_000900" Size="0x0900" Offset="0x900" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_001200" Size="0x0900" Offset="0x1200" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_001B00" Size="0x0900" Offset="0x1B00" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_002400" Size="0x0900" Offset="0x2400" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_002D00" Size="0x0900" Offset="0x2D00" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_003600" Size="0x0900" Offset="0x3600" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_003F00" Size="0x0900" Offset="0x3F00" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_004800" Size="0x0900" Offset="0x4800" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_005100" Size="0x0900" Offset="0x5100" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_005A00" Size="0x0900" Offset="0x5A00" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_006300" Size="0x0900" Offset="0x6300" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_006C00" Size="0x0900" Offset="0x6C00" />
|
||||||
|
<Blob Name="icon_item_24_static_yar_Blob_007500" Size="0x0200" Offset="0x7500" />
|
||||||
|
</File>
|
||||||
|
</Root>
|
|
@ -0,0 +1,194 @@
|
||||||
|
<Root>
|
||||||
|
<File Name="icon_item_static_yar.unarchive" Segment="8">
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_000000" Size="0x1000" Offset="0x0" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_001000" Size="0x1000" Offset="0x1000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_002000" Size="0x1000" Offset="0x2000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_003000" Size="0x1000" Offset="0x3000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_004000" Size="0x1000" Offset="0x4000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_005000" Size="0x1000" Offset="0x5000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_006000" Size="0x1000" Offset="0x6000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_007000" Size="0x1000" Offset="0x7000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_008000" Size="0x1000" Offset="0x8000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_009000" Size="0x1000" Offset="0x9000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_00A000" Size="0x1000" Offset="0xA000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_00B000" Size="0x1000" Offset="0xB000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_00C000" Size="0x1000" Offset="0xC000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_00D000" Size="0x1000" Offset="0xD000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_00E000" Size="0x1000" Offset="0xE000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_00F000" Size="0x1000" Offset="0xF000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_010000" Size="0x1000" Offset="0x10000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_011000" Size="0x1000" Offset="0x11000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_012000" Size="0x1000" Offset="0x12000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_013000" Size="0x1000" Offset="0x13000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_014000" Size="0x1000" Offset="0x14000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_015000" Size="0x1000" Offset="0x15000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_016000" Size="0x1000" Offset="0x16000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_017000" Size="0x1000" Offset="0x17000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_018000" Size="0x1000" Offset="0x18000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_019000" Size="0x1000" Offset="0x19000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_01A000" Size="0x1000" Offset="0x1A000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_01B000" Size="0x1000" Offset="0x1B000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_01C000" Size="0x1000" Offset="0x1C000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_01D000" Size="0x1000" Offset="0x1D000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_01E000" Size="0x1000" Offset="0x1E000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_01F000" Size="0x1000" Offset="0x1F000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_020000" Size="0x1000" Offset="0x20000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_021000" Size="0x1000" Offset="0x21000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_022000" Size="0x1000" Offset="0x22000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_023000" Size="0x1000" Offset="0x23000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_024000" Size="0x1000" Offset="0x24000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_025000" Size="0x1000" Offset="0x25000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_026000" Size="0x1000" Offset="0x26000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_027000" Size="0x1000" Offset="0x27000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_028000" Size="0x1000" Offset="0x28000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_029000" Size="0x1000" Offset="0x29000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_02A000" Size="0x1000" Offset="0x2A000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_02B000" Size="0x1000" Offset="0x2B000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_02C000" Size="0x1000" Offset="0x2C000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_02D000" Size="0x1000" Offset="0x2D000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_02E000" Size="0x1000" Offset="0x2E000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_02F000" Size="0x1000" Offset="0x2F000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_030000" Size="0x1000" Offset="0x30000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_031000" Size="0x1000" Offset="0x31000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_032000" Size="0x1000" Offset="0x32000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_033000" Size="0x1000" Offset="0x33000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_034000" Size="0x1000" Offset="0x34000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_035000" Size="0x1000" Offset="0x35000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_036000" Size="0x1000" Offset="0x36000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_037000" Size="0x1000" Offset="0x37000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_038000" Size="0x1000" Offset="0x38000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_039000" Size="0x1000" Offset="0x39000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_03A000" Size="0x1000" Offset="0x3A000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_03B000" Size="0x1000" Offset="0x3B000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_03C000" Size="0x1000" Offset="0x3C000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_03D000" Size="0x1000" Offset="0x3D000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_03E000" Size="0x1000" Offset="0x3E000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_03F000" Size="0x1000" Offset="0x3F000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_040000" Size="0x1000" Offset="0x40000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_041000" Size="0x1000" Offset="0x41000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_042000" Size="0x1000" Offset="0x42000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_043000" Size="0x1000" Offset="0x43000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_044000" Size="0x1000" Offset="0x44000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_045000" Size="0x1000" Offset="0x45000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_046000" Size="0x1000" Offset="0x46000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_047000" Size="0x1000" Offset="0x47000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_048000" Size="0x1000" Offset="0x48000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_049000" Size="0x1000" Offset="0x49000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_04A000" Size="0x1000" Offset="0x4A000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_04B000" Size="0x1000" Offset="0x4B000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_04C000" Size="0x1000" Offset="0x4C000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_04D000" Size="0x1000" Offset="0x4D000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_04E000" Size="0x1000" Offset="0x4E000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_04F000" Size="0x1000" Offset="0x4F000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_050000" Size="0x1000" Offset="0x50000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_051000" Size="0x1000" Offset="0x51000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_052000" Size="0x1000" Offset="0x52000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_053000" Size="0x1000" Offset="0x53000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_054000" Size="0x1000" Offset="0x54000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_055000" Size="0x1000" Offset="0x55000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_056000" Size="0x1000" Offset="0x56000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_057000" Size="0x1000" Offset="0x57000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_058000" Size="0x1000" Offset="0x58000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_059000" Size="0x1000" Offset="0x59000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_05A000" Size="0x1000" Offset="0x5A000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_05B000" Size="0x1000" Offset="0x5B000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_05C000" Size="0x1000" Offset="0x5C000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_05D000" Size="0x1000" Offset="0x5D000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_05E000" Size="0x1000" Offset="0x5E000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_05F000" Size="0x1000" Offset="0x5F000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_060000" Size="0x1000" Offset="0x60000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_061000" Size="0x1000" Offset="0x61000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_062000" Size="0x0180" Offset="0x62000" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_062180" Size="0x0900" Offset="0x62180" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_062A80" Size="0x0900" Offset="0x62A80" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_063380" Size="0x0900" Offset="0x63380" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_063C80" Size="0x0480" Offset="0x63C80" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_064100" Size="0x0240" Offset="0x64100" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_064340" Size="0x0100" Offset="0x64340" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_064440" Size="0x0A00" Offset="0x64440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_064E40" Size="0x0A00" Offset="0x64E40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_065840" Size="0x0A00" Offset="0x65840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_066240" Size="0x0A00" Offset="0x66240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_066C40" Size="0x0A00" Offset="0x66C40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_067640" Size="0x0A00" Offset="0x67640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_068040" Size="0x0A00" Offset="0x68040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_068A40" Size="0x0A00" Offset="0x68A40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_069440" Size="0x0A00" Offset="0x69440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_069E40" Size="0x0A00" Offset="0x69E40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06A840" Size="0x0A00" Offset="0x6A840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06B240" Size="0x0A00" Offset="0x6B240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06BC40" Size="0x0A00" Offset="0x6BC40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06C640" Size="0x0A00" Offset="0x6C640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06D040" Size="0x0A00" Offset="0x6D040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06DA40" Size="0x0A00" Offset="0x6DA40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06E440" Size="0x0A00" Offset="0x6E440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06EE40" Size="0x0A00" Offset="0x6EE40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_06F840" Size="0x0A00" Offset="0x6F840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_070240" Size="0x0A00" Offset="0x70240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_070C40" Size="0x0A00" Offset="0x70C40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_071640" Size="0x0A00" Offset="0x71640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_072040" Size="0x0A00" Offset="0x72040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_072A40" Size="0x0A00" Offset="0x72A40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_073440" Size="0x0A00" Offset="0x73440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_073E40" Size="0x0A00" Offset="0x73E40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_074840" Size="0x0A00" Offset="0x74840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_075240" Size="0x0A00" Offset="0x75240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_075C40" Size="0x0A00" Offset="0x75C40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_076640" Size="0x0A00" Offset="0x76640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_077040" Size="0x0A00" Offset="0x77040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_077A40" Size="0x0A00" Offset="0x77A40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_078440" Size="0x0A00" Offset="0x78440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_078E40" Size="0x0A00" Offset="0x78E40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_079840" Size="0x0A00" Offset="0x79840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07A240" Size="0x0A00" Offset="0x7A240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07AC40" Size="0x0A00" Offset="0x7AC40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07B640" Size="0x0A00" Offset="0x7B640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07C040" Size="0x0A00" Offset="0x7C040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07CA40" Size="0x0A00" Offset="0x7CA40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07D440" Size="0x0A00" Offset="0x7D440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07DE40" Size="0x0A00" Offset="0x7DE40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07E840" Size="0x0A00" Offset="0x7E840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07F240" Size="0x0A00" Offset="0x7F240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_07FC40" Size="0x0A00" Offset="0x7FC40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_080640" Size="0x0A00" Offset="0x80640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_081040" Size="0x0A00" Offset="0x81040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_081A40" Size="0x0A00" Offset="0x81A40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_082440" Size="0x0A00" Offset="0x82440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_082E40" Size="0x0A00" Offset="0x82E40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_083840" Size="0x0A00" Offset="0x83840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_084240" Size="0x0A00" Offset="0x84240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_084C40" Size="0x0A00" Offset="0x84C40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_085640" Size="0x0A00" Offset="0x85640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_086040" Size="0x0A00" Offset="0x86040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_086A40" Size="0x0A00" Offset="0x86A40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_087440" Size="0x0A00" Offset="0x87440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_087E40" Size="0x0A00" Offset="0x87E40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_088840" Size="0x0A00" Offset="0x88840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_089240" Size="0x0A00" Offset="0x89240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_089C40" Size="0x0A00" Offset="0x89C40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08A640" Size="0x0A00" Offset="0x8A640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08B040" Size="0x0A00" Offset="0x8B040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08BA40" Size="0x0A00" Offset="0x8BA40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08C440" Size="0x0A00" Offset="0x8C440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08CE40" Size="0x0A00" Offset="0x8CE40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08D840" Size="0x0A00" Offset="0x8D840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08E240" Size="0x0A00" Offset="0x8E240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08EC40" Size="0x0A00" Offset="0x8EC40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_08F640" Size="0x0A00" Offset="0x8F640" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_090040" Size="0x0A00" Offset="0x90040" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_090A40" Size="0x0A00" Offset="0x90A40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_091440" Size="0x0A00" Offset="0x91440" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_091E40" Size="0x0A00" Offset="0x91E40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_092840" Size="0x0A00" Offset="0x92840" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_093240" Size="0x0A00" Offset="0x93240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_093C40" Size="0x0180" Offset="0x93C40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_093DC0" Size="0x0180" Offset="0x93DC0" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_093F40" Size="0x0300" Offset="0x93F40" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_094240" Size="0x06C0" Offset="0x94240" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_094900" Size="0x06C0" Offset="0x94900" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_094FC0" Size="0x0300" Offset="0x94FC0" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_0952C0" Size="0x0300" Offset="0x952C0" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_0955C0" Size="0x0500" Offset="0x955C0" />
|
||||||
|
<Blob Name="icon_item_static_yar_Blob_095AC0" Size="0x0400" Offset="0x95AC0" />
|
||||||
|
</File>
|
||||||
|
</Root>
|
|
@ -0,0 +1,124 @@
|
||||||
|
<Root>
|
||||||
|
<File Name="item_name_static.unarchive">
|
||||||
|
<Blob Name="item_name_static_Blob_000000" Size="0x0400" Offset="0x0" />
|
||||||
|
<Blob Name="item_name_static_Blob_000400" Size="0x0400" Offset="0x400" />
|
||||||
|
<Blob Name="item_name_static_Blob_000800" Size="0x0400" Offset="0x800" />
|
||||||
|
<Blob Name="item_name_static_Blob_000C00" Size="0x0400" Offset="0xC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_001000" Size="0x0400" Offset="0x1000" />
|
||||||
|
<Blob Name="item_name_static_Blob_001400" Size="0x0400" Offset="0x1400" />
|
||||||
|
<Blob Name="item_name_static_Blob_001800" Size="0x0400" Offset="0x1800" />
|
||||||
|
<Blob Name="item_name_static_Blob_001C00" Size="0x0400" Offset="0x1C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_002000" Size="0x0400" Offset="0x2000" />
|
||||||
|
<Blob Name="item_name_static_Blob_002400" Size="0x0400" Offset="0x2400" />
|
||||||
|
<Blob Name="item_name_static_Blob_002800" Size="0x0400" Offset="0x2800" />
|
||||||
|
<Blob Name="item_name_static_Blob_002C00" Size="0x0400" Offset="0x2C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_003000" Size="0x0400" Offset="0x3000" />
|
||||||
|
<Blob Name="item_name_static_Blob_003400" Size="0x0400" Offset="0x3400" />
|
||||||
|
<Blob Name="item_name_static_Blob_003800" Size="0x0400" Offset="0x3800" />
|
||||||
|
<Blob Name="item_name_static_Blob_003C00" Size="0x0400" Offset="0x3C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_004000" Size="0x0400" Offset="0x4000" />
|
||||||
|
<Blob Name="item_name_static_Blob_004400" Size="0x0400" Offset="0x4400" />
|
||||||
|
<Blob Name="item_name_static_Blob_004800" Size="0x0400" Offset="0x4800" />
|
||||||
|
<Blob Name="item_name_static_Blob_004C00" Size="0x0400" Offset="0x4C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_005000" Size="0x0400" Offset="0x5000" />
|
||||||
|
<Blob Name="item_name_static_Blob_005400" Size="0x0400" Offset="0x5400" />
|
||||||
|
<Blob Name="item_name_static_Blob_005800" Size="0x0400" Offset="0x5800" />
|
||||||
|
<Blob Name="item_name_static_Blob_005C00" Size="0x0400" Offset="0x5C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_006000" Size="0x0400" Offset="0x6000" />
|
||||||
|
<Blob Name="item_name_static_Blob_006400" Size="0x0400" Offset="0x6400" />
|
||||||
|
<Blob Name="item_name_static_Blob_006800" Size="0x0400" Offset="0x6800" />
|
||||||
|
<Blob Name="item_name_static_Blob_006C00" Size="0x0400" Offset="0x6C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_007000" Size="0x0400" Offset="0x7000" />
|
||||||
|
<Blob Name="item_name_static_Blob_007400" Size="0x0400" Offset="0x7400" />
|
||||||
|
<Blob Name="item_name_static_Blob_007800" Size="0x0400" Offset="0x7800" />
|
||||||
|
<Blob Name="item_name_static_Blob_007C00" Size="0x0400" Offset="0x7C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_008000" Size="0x0400" Offset="0x8000" />
|
||||||
|
<Blob Name="item_name_static_Blob_008400" Size="0x0400" Offset="0x8400" />
|
||||||
|
<Blob Name="item_name_static_Blob_008800" Size="0x0400" Offset="0x8800" />
|
||||||
|
<Blob Name="item_name_static_Blob_008C00" Size="0x0400" Offset="0x8C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_009000" Size="0x0400" Offset="0x9000" />
|
||||||
|
<Blob Name="item_name_static_Blob_009400" Size="0x0400" Offset="0x9400" />
|
||||||
|
<Blob Name="item_name_static_Blob_009800" Size="0x0400" Offset="0x9800" />
|
||||||
|
<Blob Name="item_name_static_Blob_009C00" Size="0x0400" Offset="0x9C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_00A000" Size="0x0400" Offset="0xA000" />
|
||||||
|
<Blob Name="item_name_static_Blob_00A400" Size="0x0400" Offset="0xA400" />
|
||||||
|
<Blob Name="item_name_static_Blob_00A800" Size="0x0400" Offset="0xA800" />
|
||||||
|
<Blob Name="item_name_static_Blob_00AC00" Size="0x0400" Offset="0xAC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_00B000" Size="0x0400" Offset="0xB000" />
|
||||||
|
<Blob Name="item_name_static_Blob_00B400" Size="0x0400" Offset="0xB400" />
|
||||||
|
<Blob Name="item_name_static_Blob_00B800" Size="0x0400" Offset="0xB800" />
|
||||||
|
<Blob Name="item_name_static_Blob_00BC00" Size="0x0400" Offset="0xBC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_00C000" Size="0x0400" Offset="0xC000" />
|
||||||
|
<Blob Name="item_name_static_Blob_00C400" Size="0x0400" Offset="0xC400" />
|
||||||
|
<Blob Name="item_name_static_Blob_00C800" Size="0x0400" Offset="0xC800" />
|
||||||
|
<Blob Name="item_name_static_Blob_00CC00" Size="0x0400" Offset="0xCC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_00D000" Size="0x0400" Offset="0xD000" />
|
||||||
|
<Blob Name="item_name_static_Blob_00D400" Size="0x0400" Offset="0xD400" />
|
||||||
|
<Blob Name="item_name_static_Blob_00D800" Size="0x0400" Offset="0xD800" />
|
||||||
|
<Blob Name="item_name_static_Blob_00DC00" Size="0x0400" Offset="0xDC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_00E000" Size="0x0400" Offset="0xE000" />
|
||||||
|
<Blob Name="item_name_static_Blob_00E400" Size="0x0400" Offset="0xE400" />
|
||||||
|
<Blob Name="item_name_static_Blob_00E800" Size="0x0400" Offset="0xE800" />
|
||||||
|
<Blob Name="item_name_static_Blob_00EC00" Size="0x0400" Offset="0xEC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_00F000" Size="0x0400" Offset="0xF000" />
|
||||||
|
<Blob Name="item_name_static_Blob_00F400" Size="0x0400" Offset="0xF400" />
|
||||||
|
<Blob Name="item_name_static_Blob_00F800" Size="0x0400" Offset="0xF800" />
|
||||||
|
<Blob Name="item_name_static_Blob_00FC00" Size="0x0400" Offset="0xFC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_010000" Size="0x0400" Offset="0x10000" />
|
||||||
|
<Blob Name="item_name_static_Blob_010400" Size="0x0400" Offset="0x10400" />
|
||||||
|
<Blob Name="item_name_static_Blob_010800" Size="0x0400" Offset="0x10800" />
|
||||||
|
<Blob Name="item_name_static_Blob_010C00" Size="0x0400" Offset="0x10C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_011000" Size="0x0400" Offset="0x11000" />
|
||||||
|
<Blob Name="item_name_static_Blob_011400" Size="0x0400" Offset="0x11400" />
|
||||||
|
<Blob Name="item_name_static_Blob_011800" Size="0x0400" Offset="0x11800" />
|
||||||
|
<Blob Name="item_name_static_Blob_011C00" Size="0x0400" Offset="0x11C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_012000" Size="0x0400" Offset="0x12000" />
|
||||||
|
<Blob Name="item_name_static_Blob_012400" Size="0x0400" Offset="0x12400" />
|
||||||
|
<Blob Name="item_name_static_Blob_012800" Size="0x0400" Offset="0x12800" />
|
||||||
|
<Blob Name="item_name_static_Blob_012C00" Size="0x0400" Offset="0x12C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_013000" Size="0x0400" Offset="0x13000" />
|
||||||
|
<Blob Name="item_name_static_Blob_013400" Size="0x0400" Offset="0x13400" />
|
||||||
|
<Blob Name="item_name_static_Blob_013800" Size="0x0400" Offset="0x13800" />
|
||||||
|
<Blob Name="item_name_static_Blob_013C00" Size="0x0400" Offset="0x13C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_014000" Size="0x0400" Offset="0x14000" />
|
||||||
|
<Blob Name="item_name_static_Blob_014400" Size="0x0400" Offset="0x14400" />
|
||||||
|
<Blob Name="item_name_static_Blob_014800" Size="0x0400" Offset="0x14800" />
|
||||||
|
<Blob Name="item_name_static_Blob_014C00" Size="0x0400" Offset="0x14C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_015000" Size="0x0400" Offset="0x15000" />
|
||||||
|
<Blob Name="item_name_static_Blob_015400" Size="0x0400" Offset="0x15400" />
|
||||||
|
<Blob Name="item_name_static_Blob_015800" Size="0x0400" Offset="0x15800" />
|
||||||
|
<Blob Name="item_name_static_Blob_015C00" Size="0x0400" Offset="0x15C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_016000" Size="0x0400" Offset="0x16000" />
|
||||||
|
<Blob Name="item_name_static_Blob_016400" Size="0x0400" Offset="0x16400" />
|
||||||
|
<Blob Name="item_name_static_Blob_016800" Size="0x0400" Offset="0x16800" />
|
||||||
|
<Blob Name="item_name_static_Blob_016C00" Size="0x0400" Offset="0x16C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_017000" Size="0x0400" Offset="0x17000" />
|
||||||
|
<Blob Name="item_name_static_Blob_017400" Size="0x0400" Offset="0x17400" />
|
||||||
|
<Blob Name="item_name_static_Blob_017800" Size="0x0400" Offset="0x17800" />
|
||||||
|
<Blob Name="item_name_static_Blob_017C00" Size="0x0400" Offset="0x17C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_018000" Size="0x0400" Offset="0x18000" />
|
||||||
|
<Blob Name="item_name_static_Blob_018400" Size="0x0400" Offset="0x18400" />
|
||||||
|
<Blob Name="item_name_static_Blob_018800" Size="0x0400" Offset="0x18800" />
|
||||||
|
<Blob Name="item_name_static_Blob_018C00" Size="0x0400" Offset="0x18C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_019000" Size="0x0400" Offset="0x19000" />
|
||||||
|
<Blob Name="item_name_static_Blob_019400" Size="0x0400" Offset="0x19400" />
|
||||||
|
<Blob Name="item_name_static_Blob_019800" Size="0x0400" Offset="0x19800" />
|
||||||
|
<Blob Name="item_name_static_Blob_019C00" Size="0x0400" Offset="0x19C00" />
|
||||||
|
<Blob Name="item_name_static_Blob_01A000" Size="0x0400" Offset="0x1A000" />
|
||||||
|
<Blob Name="item_name_static_Blob_01A400" Size="0x0400" Offset="0x1A400" />
|
||||||
|
<Blob Name="item_name_static_Blob_01A800" Size="0x0400" Offset="0x1A800" />
|
||||||
|
<Blob Name="item_name_static_Blob_01AC00" Size="0x0400" Offset="0x1AC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_01B000" Size="0x0400" Offset="0x1B000" />
|
||||||
|
<Blob Name="item_name_static_Blob_01B400" Size="0x0400" Offset="0x1B400" />
|
||||||
|
<Blob Name="item_name_static_Blob_01B800" Size="0x0400" Offset="0x1B800" />
|
||||||
|
<Blob Name="item_name_static_Blob_01BC00" Size="0x0400" Offset="0x1BC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_01C000" Size="0x0400" Offset="0x1C000" />
|
||||||
|
<Blob Name="item_name_static_Blob_01C400" Size="0x0400" Offset="0x1C400" />
|
||||||
|
<Blob Name="item_name_static_Blob_01C800" Size="0x0400" Offset="0x1C800" />
|
||||||
|
<Blob Name="item_name_static_Blob_01CC00" Size="0x0400" Offset="0x1CC00" />
|
||||||
|
<Blob Name="item_name_static_Blob_01D000" Size="0x0400" Offset="0x1D000" />
|
||||||
|
<Blob Name="item_name_static_Blob_01D400" Size="0x0400" Offset="0x1D400" />
|
||||||
|
<Blob Name="item_name_static_Blob_01D800" Size="0x0400" Offset="0x1D800" />
|
||||||
|
<Blob Name="item_name_static_Blob_01DC00" Size="0x0400" Offset="0x1DC00" />
|
||||||
|
</File>
|
||||||
|
</Root>
|
|
@ -0,0 +1,102 @@
|
||||||
|
<Root>
|
||||||
|
<File Name="map_grand_static.unarchive">
|
||||||
|
<Blob Name="map_grand_static_Blob_000000" Size="0x0FF0" Offset="0x0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_000FF0" Size="0x0FF0" Offset="0xFF0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_001FE0" Size="0x0FF0" Offset="0x1FE0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_002FD0" Size="0x0FF0" Offset="0x2FD0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_003FC0" Size="0x0FF0" Offset="0x3FC0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_004FB0" Size="0x0B40" Offset="0x4FB0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_005AF0" Size="0x0FF0" Offset="0x5AF0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_006AE0" Size="0x0FF0" Offset="0x6AE0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_007AD0" Size="0x0FF0" Offset="0x7AD0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_008AC0" Size="0x0FF0" Offset="0x8AC0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_009AB0" Size="0x0420" Offset="0x9AB0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_009ED0" Size="0x0FF0" Offset="0x9ED0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_00AEC0" Size="0x0450" Offset="0xAEC0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_00B310" Size="0x07A0" Offset="0xB310" />
|
||||||
|
<Blob Name="map_grand_static_Blob_00BAB0" Size="0x0FF0" Offset="0xBAB0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_00CAA0" Size="0x0FF0" Offset="0xCAA0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_00DA90" Size="0x0FF0" Offset="0xDA90" />
|
||||||
|
<Blob Name="map_grand_static_Blob_00EA80" Size="0x0780" Offset="0xEA80" />
|
||||||
|
<Blob Name="map_grand_static_Blob_00F200" Size="0x0800" Offset="0xF200" />
|
||||||
|
<Blob Name="map_grand_static_Blob_00FA00" Size="0x0850" Offset="0xFA00" />
|
||||||
|
<Blob Name="map_grand_static_Blob_010250" Size="0x0510" Offset="0x10250" />
|
||||||
|
<Blob Name="map_grand_static_Blob_010760" Size="0x0710" Offset="0x10760" />
|
||||||
|
<Blob Name="map_grand_static_Blob_010E70" Size="0x0AE0" Offset="0x10E70" />
|
||||||
|
<Blob Name="map_grand_static_Blob_011950" Size="0x0660" Offset="0x11950" />
|
||||||
|
<Blob Name="map_grand_static_Blob_011FB0" Size="0x0C60" Offset="0x11FB0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_012C10" Size="0x0E10" Offset="0x12C10" />
|
||||||
|
<Blob Name="map_grand_static_Blob_013A20" Size="0x03E0" Offset="0x13A20" />
|
||||||
|
<Blob Name="map_grand_static_Blob_013E00" Size="0x05A0" Offset="0x13E00" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0143A0" Size="0x0820" Offset="0x143A0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_014BC0" Size="0x0440" Offset="0x14BC0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_015000" Size="0x0590" Offset="0x15000" />
|
||||||
|
<Blob Name="map_grand_static_Blob_015590" Size="0x05A0" Offset="0x15590" />
|
||||||
|
<Blob Name="map_grand_static_Blob_015B30" Size="0x07A0" Offset="0x15B30" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0162D0" Size="0x07A0" Offset="0x162D0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_016A70" Size="0x0DF0" Offset="0x16A70" />
|
||||||
|
<Blob Name="map_grand_static_Blob_017860" Size="0x0850" Offset="0x17860" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0180B0" Size="0x09C0" Offset="0x180B0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_018A70" Size="0x0880" Offset="0x18A70" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0192F0" Size="0x0660" Offset="0x192F0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_019950" Size="0x0360" Offset="0x19950" />
|
||||||
|
<Blob Name="map_grand_static_Blob_019CB0" Size="0x0260" Offset="0x19CB0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_019F10" Size="0x0960" Offset="0x19F10" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01A870" Size="0x0350" Offset="0x1A870" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01ABC0" Size="0x09B0" Offset="0x1ABC0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01B570" Size="0x0980" Offset="0x1B570" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01BEF0" Size="0x0FF0" Offset="0x1BEF0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01CEE0" Size="0x0B20" Offset="0x1CEE0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01DA00" Size="0x0DA0" Offset="0x1DA00" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01E7A0" Size="0x0820" Offset="0x1E7A0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01EFC0" Size="0x03E0" Offset="0x1EFC0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01F3A0" Size="0x0980" Offset="0x1F3A0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_01FD20" Size="0x0960" Offset="0x1FD20" />
|
||||||
|
<Blob Name="map_grand_static_Blob_020680" Size="0x0760" Offset="0x20680" />
|
||||||
|
<Blob Name="map_grand_static_Blob_020DE0" Size="0x0960" Offset="0x20DE0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_021740" Size="0x01D0" Offset="0x21740" />
|
||||||
|
<Blob Name="map_grand_static_Blob_021910" Size="0x0630" Offset="0x21910" />
|
||||||
|
<Blob Name="map_grand_static_Blob_021F40" Size="0x0680" Offset="0x21F40" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0225C0" Size="0x07D0" Offset="0x225C0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_022D90" Size="0x0870" Offset="0x22D90" />
|
||||||
|
<Blob Name="map_grand_static_Blob_023600" Size="0x0E60" Offset="0x23600" />
|
||||||
|
<Blob Name="map_grand_static_Blob_024460" Size="0x0710" Offset="0x24460" />
|
||||||
|
<Blob Name="map_grand_static_Blob_024B70" Size="0x0620" Offset="0x24B70" />
|
||||||
|
<Blob Name="map_grand_static_Blob_025190" Size="0x0620" Offset="0x25190" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0257B0" Size="0x0680" Offset="0x257B0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_025E30" Size="0x0620" Offset="0x25E30" />
|
||||||
|
<Blob Name="map_grand_static_Blob_026450" Size="0x0210" Offset="0x26450" />
|
||||||
|
<Blob Name="map_grand_static_Blob_026660" Size="0x04B0" Offset="0x26660" />
|
||||||
|
<Blob Name="map_grand_static_Blob_026B10" Size="0x0680" Offset="0x26B10" />
|
||||||
|
<Blob Name="map_grand_static_Blob_027190" Size="0x0350" Offset="0x27190" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0274E0" Size="0x0660" Offset="0x274E0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_027B40" Size="0x0350" Offset="0x27B40" />
|
||||||
|
<Blob Name="map_grand_static_Blob_027E90" Size="0x0500" Offset="0x27E90" />
|
||||||
|
<Blob Name="map_grand_static_Blob_028390" Size="0x06A0" Offset="0x28390" />
|
||||||
|
<Blob Name="map_grand_static_Blob_028A30" Size="0x05E0" Offset="0x28A30" />
|
||||||
|
<Blob Name="map_grand_static_Blob_029010" Size="0x0680" Offset="0x29010" />
|
||||||
|
<Blob Name="map_grand_static_Blob_029690" Size="0x0480" Offset="0x29690" />
|
||||||
|
<Blob Name="map_grand_static_Blob_029B10" Size="0x0AE0" Offset="0x29B10" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02A5F0" Size="0x02D0" Offset="0x2A5F0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02A8C0" Size="0x0B90" Offset="0x2A8C0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02B450" Size="0x0DA0" Offset="0x2B450" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02C1F0" Size="0x08C0" Offset="0x2C1F0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02CAB0" Size="0x0A30" Offset="0x2CAB0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02D4E0" Size="0x0130" Offset="0x2D4E0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02D610" Size="0x0C30" Offset="0x2D610" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02E240" Size="0x08A0" Offset="0x2E240" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02EAE0" Size="0x0F50" Offset="0x2EAE0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_02FA30" Size="0x09B0" Offset="0x2FA30" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0303E0" Size="0x07B0" Offset="0x303E0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_030B90" Size="0x0960" Offset="0x30B90" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0314F0" Size="0x0740" Offset="0x314F0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_031C30" Size="0x0A00" Offset="0x31C30" />
|
||||||
|
<Blob Name="map_grand_static_Blob_032630" Size="0x0640" Offset="0x32630" />
|
||||||
|
<Blob Name="map_grand_static_Blob_032C70" Size="0x0A30" Offset="0x32C70" />
|
||||||
|
<Blob Name="map_grand_static_Blob_0336A0" Size="0x03D0" Offset="0x336A0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_033A70" Size="0x0D00" Offset="0x33A70" />
|
||||||
|
<Blob Name="map_grand_static_Blob_034770" Size="0x0440" Offset="0x34770" />
|
||||||
|
<Blob Name="map_grand_static_Blob_034BB0" Size="0x03A0" Offset="0x34BB0" />
|
||||||
|
<Blob Name="map_grand_static_Blob_034F50" Size="0x0960" Offset="0x34F50" />
|
||||||
|
</File>
|
||||||
|
</Root>
|
|
@ -0,0 +1,62 @@
|
||||||
|
<Root>
|
||||||
|
<File Name="map_i_static.unarchive">
|
||||||
|
<Blob Name="map_i_static_Blob_000000" Size="0x0FF0" Offset="0x0" />
|
||||||
|
<Blob Name="map_i_static_Blob_000FF0" Size="0x0FF0" Offset="0xFF0" />
|
||||||
|
<Blob Name="map_i_static_Blob_001FE0" Size="0x0FF0" Offset="0x1FE0" />
|
||||||
|
<Blob Name="map_i_static_Blob_002FD0" Size="0x0FF0" Offset="0x2FD0" />
|
||||||
|
<Blob Name="map_i_static_Blob_003FC0" Size="0x0FF0" Offset="0x3FC0" />
|
||||||
|
<Blob Name="map_i_static_Blob_004FB0" Size="0x01D0" Offset="0x4FB0" />
|
||||||
|
<Blob Name="map_i_static_Blob_005180" Size="0x01B0" Offset="0x5180" />
|
||||||
|
<Blob Name="map_i_static_Blob_005330" Size="0x01E0" Offset="0x5330" />
|
||||||
|
<Blob Name="map_i_static_Blob_005510" Size="0x0100" Offset="0x5510" />
|
||||||
|
<Blob Name="map_i_static_Blob_005610" Size="0x0060" Offset="0x5610" />
|
||||||
|
<Blob Name="map_i_static_Blob_005670" Size="0x01B0" Offset="0x5670" />
|
||||||
|
<Blob Name="map_i_static_Blob_005820" Size="0x0070" Offset="0x5820" />
|
||||||
|
<Blob Name="map_i_static_Blob_005890" Size="0x0130" Offset="0x5890" />
|
||||||
|
<Blob Name="map_i_static_Blob_0059C0" Size="0x01A0" Offset="0x59C0" />
|
||||||
|
<Blob Name="map_i_static_Blob_005B60" Size="0x0100" Offset="0x5B60" />
|
||||||
|
<Blob Name="map_i_static_Blob_005C60" Size="0x01B0" Offset="0x5C60" />
|
||||||
|
<Blob Name="map_i_static_Blob_005E10" Size="0x0120" Offset="0x5E10" />
|
||||||
|
<Blob Name="map_i_static_Blob_005F30" Size="0x0120" Offset="0x5F30" />
|
||||||
|
<Blob Name="map_i_static_Blob_006050" Size="0x0260" Offset="0x6050" />
|
||||||
|
<Blob Name="map_i_static_Blob_0062B0" Size="0x0150" Offset="0x62B0" />
|
||||||
|
<Blob Name="map_i_static_Blob_006400" Size="0x0220" Offset="0x6400" />
|
||||||
|
<Blob Name="map_i_static_Blob_006620" Size="0x0300" Offset="0x6620" />
|
||||||
|
<Blob Name="map_i_static_Blob_006920" Size="0x0110" Offset="0x6920" />
|
||||||
|
<Blob Name="map_i_static_Blob_006A30" Size="0x0110" Offset="0x6A30" />
|
||||||
|
<Blob Name="map_i_static_Blob_006B40" Size="0x0150" Offset="0x6B40" />
|
||||||
|
<Blob Name="map_i_static_Blob_006C90" Size="0x0120" Offset="0x6C90" />
|
||||||
|
<Blob Name="map_i_static_Blob_006DB0" Size="0x00C0" Offset="0x6DB0" />
|
||||||
|
<Blob Name="map_i_static_Blob_006E70" Size="0x00D0" Offset="0x6E70" />
|
||||||
|
<Blob Name="map_i_static_Blob_006F40" Size="0x0230" Offset="0x6F40" />
|
||||||
|
<Blob Name="map_i_static_Blob_007170" Size="0x00A0" Offset="0x7170" />
|
||||||
|
<Blob Name="map_i_static_Blob_007210" Size="0x01C0" Offset="0x7210" />
|
||||||
|
<Blob Name="map_i_static_Blob_0073D0" Size="0x0100" Offset="0x73D0" />
|
||||||
|
<Blob Name="map_i_static_Blob_0074D0" Size="0x0180" Offset="0x74D0" />
|
||||||
|
<Blob Name="map_i_static_Blob_007650" Size="0x0150" Offset="0x7650" />
|
||||||
|
<Blob Name="map_i_static_Blob_0077A0" Size="0x00B0" Offset="0x77A0" />
|
||||||
|
<Blob Name="map_i_static_Blob_007850" Size="0x0050" Offset="0x7850" />
|
||||||
|
<Blob Name="map_i_static_Blob_0078A0" Size="0x0040" Offset="0x78A0" />
|
||||||
|
<Blob Name="map_i_static_Blob_0078E0" Size="0x0170" Offset="0x78E0" />
|
||||||
|
<Blob Name="map_i_static_Blob_007A50" Size="0x0080" Offset="0x7A50" />
|
||||||
|
<Blob Name="map_i_static_Blob_007AD0" Size="0x0090" Offset="0x7AD0" />
|
||||||
|
<Blob Name="map_i_static_Blob_007B60" Size="0x00C0" Offset="0x7B60" />
|
||||||
|
<Blob Name="map_i_static_Blob_007C20" Size="0x0080" Offset="0x7C20" />
|
||||||
|
<Blob Name="map_i_static_Blob_007CA0" Size="0x00F0" Offset="0x7CA0" />
|
||||||
|
<Blob Name="map_i_static_Blob_007D90" Size="0x0110" Offset="0x7D90" />
|
||||||
|
<Blob Name="map_i_static_Blob_007EA0" Size="0x0100" Offset="0x7EA0" />
|
||||||
|
<Blob Name="map_i_static_Blob_007FA0" Size="0x0050" Offset="0x7FA0" />
|
||||||
|
<Blob Name="map_i_static_Blob_007FF0" Size="0x0090" Offset="0x7FF0" />
|
||||||
|
<Blob Name="map_i_static_Blob_008080" Size="0x0110" Offset="0x8080" />
|
||||||
|
<Blob Name="map_i_static_Blob_008190" Size="0x0060" Offset="0x8190" />
|
||||||
|
<Blob Name="map_i_static_Blob_0081F0" Size="0x0110" Offset="0x81F0" />
|
||||||
|
<Blob Name="map_i_static_Blob_008300" Size="0x0060" Offset="0x8300" />
|
||||||
|
<Blob Name="map_i_static_Blob_008360" Size="0x0090" Offset="0x8360" />
|
||||||
|
<Blob Name="map_i_static_Blob_0083F0" Size="0x0110" Offset="0x83F0" />
|
||||||
|
<Blob Name="map_i_static_Blob_008500" Size="0x00F0" Offset="0x8500" />
|
||||||
|
<Blob Name="map_i_static_Blob_0085F0" Size="0x0090" Offset="0x85F0" />
|
||||||
|
<Blob Name="map_i_static_Blob_008680" Size="0x0080" Offset="0x8680" />
|
||||||
|
<Blob Name="map_i_static_Blob_008700" Size="0x00F0" Offset="0x8700" />
|
||||||
|
<Blob Name="map_i_static_Blob_0087F0" Size="0x0050" Offset="0x87F0" />
|
||||||
|
</File>
|
||||||
|
</Root>
|
|
@ -0,0 +1,20 @@
|
||||||
|
<Root>
|
||||||
|
<File Name="map_name_static.unarchive">
|
||||||
|
<Blob Name="map_name_static_Blob_000000" Size="0x0400" Offset="0x0" />
|
||||||
|
<Blob Name="map_name_static_Blob_000400" Size="0x0400" Offset="0x400" />
|
||||||
|
<Blob Name="map_name_static_Blob_000800" Size="0x0400" Offset="0x800" />
|
||||||
|
<Blob Name="map_name_static_Blob_000C00" Size="0x0400" Offset="0xC00" />
|
||||||
|
<Blob Name="map_name_static_Blob_001000" Size="0x0400" Offset="0x1000" />
|
||||||
|
<Blob Name="map_name_static_Blob_001400" Size="0x0400" Offset="0x1400" />
|
||||||
|
<Blob Name="map_name_static_Blob_001800" Size="0x0400" Offset="0x1800" />
|
||||||
|
<Blob Name="map_name_static_Blob_001C00" Size="0x0400" Offset="0x1C00" />
|
||||||
|
<Blob Name="map_name_static_Blob_002000" Size="0x0400" Offset="0x2000" />
|
||||||
|
<Blob Name="map_name_static_Blob_002400" Size="0x0400" Offset="0x2400" />
|
||||||
|
<Blob Name="map_name_static_Blob_002800" Size="0x0400" Offset="0x2800" />
|
||||||
|
<Blob Name="map_name_static_Blob_002C00" Size="0x0400" Offset="0x2C00" />
|
||||||
|
<Blob Name="map_name_static_Blob_003000" Size="0x0400" Offset="0x3000" />
|
||||||
|
<Blob Name="map_name_static_Blob_003400" Size="0x0400" Offset="0x3400" />
|
||||||
|
<Blob Name="map_name_static_Blob_003800" Size="0x0400" Offset="0x3800" />
|
||||||
|
<Blob Name="map_name_static_Blob_003C00" Size="0x0400" Offset="0x3C00" />
|
||||||
|
</File>
|
||||||
|
</Root>
|
|
@ -0,0 +1,28 @@
|
||||||
|
<Root>
|
||||||
|
<File Name="schedule_dma_static_yar.unarchive" Segment="7">
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_000000" Size="0x0800" Offset="0x0" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_000800" Size="0x0800" Offset="0x800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_001000" Size="0x0800" Offset="0x1000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_001800" Size="0x0800" Offset="0x1800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_002000" Size="0x0800" Offset="0x2000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_002800" Size="0x0800" Offset="0x2800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_003000" Size="0x0800" Offset="0x3000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_003800" Size="0x0800" Offset="0x3800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_004000" Size="0x0800" Offset="0x4000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_004800" Size="0x0800" Offset="0x4800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_005000" Size="0x0800" Offset="0x5000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_005800" Size="0x0800" Offset="0x5800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_006000" Size="0x0800" Offset="0x6000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_006800" Size="0x0800" Offset="0x6800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_007000" Size="0x0800" Offset="0x7000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_007800" Size="0x0800" Offset="0x7800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_008000" Size="0x0800" Offset="0x8000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_008800" Size="0x0800" Offset="0x8800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_009000" Size="0x0800" Offset="0x9000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_009800" Size="0x0800" Offset="0x9800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_00A000" Size="0x0800" Offset="0xA000" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_00A800" Size="0x0400" Offset="0xA800" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_00AC00" Size="0x02A0" Offset="0xAC00" />
|
||||||
|
<Blob Name="schedule_dma_static_yar_Blob_00AEA0" Size="0x0380" Offset="0xAEA0" />
|
||||||
|
</File>
|
||||||
|
</Root>
|
|
@ -52,12 +52,12 @@ DECLARE_ROM_SEGMENT(map_i_static)
|
||||||
DECLARE_ROM_SEGMENT(map_grand_static)
|
DECLARE_ROM_SEGMENT(map_grand_static)
|
||||||
DECLARE_ROM_SEGMENT(item_name_static)
|
DECLARE_ROM_SEGMENT(item_name_static)
|
||||||
DECLARE_ROM_SEGMENT(map_name_static)
|
DECLARE_ROM_SEGMENT(map_name_static)
|
||||||
DECLARE_ROM_SEGMENT(icon_item_static_test)
|
DECLARE_ROM_SEGMENT(icon_item_static_yar)
|
||||||
DECLARE_ROM_SEGMENT(icon_item_static_old)
|
DECLARE_ROM_SEGMENT(icon_item_static_syms)
|
||||||
DECLARE_ROM_SEGMENT(icon_item_24_static_test)
|
DECLARE_ROM_SEGMENT(icon_item_24_static_yar)
|
||||||
DECLARE_ROM_SEGMENT(icon_item_24_static_old)
|
DECLARE_ROM_SEGMENT(icon_item_24_static_syms)
|
||||||
DECLARE_ROM_SEGMENT(schedule_dma_static_test)
|
DECLARE_ROM_SEGMENT(schedule_dma_static_yar)
|
||||||
DECLARE_ROM_SEGMENT(schedule_dma_static_old)
|
DECLARE_ROM_SEGMENT(schedule_dma_static_syms)
|
||||||
DECLARE_ROM_SEGMENT(schedule_static)
|
DECLARE_ROM_SEGMENT(schedule_static)
|
||||||
DECLARE_ROM_SEGMENT(story_static)
|
DECLARE_ROM_SEGMENT(story_static)
|
||||||
DECLARE_ROM_SEGMENT(do_action_static)
|
DECLARE_ROM_SEGMENT(do_action_static)
|
||||||
|
|
|
@ -9,23 +9,23 @@
|
||||||
* - Argument 4: Message id for the event meeting this person
|
* - Argument 4: Message id for the event meeting this person
|
||||||
* - Argument 5: WeekEventFlag for the event meeting this person
|
* - Argument 5: WeekEventFlag for the event meeting this person
|
||||||
*/
|
*/
|
||||||
/* 0x00 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_BOMBERS, D_07009800, 0x21DD, BOMBERS_NOTEBOOK_EVENT_MET_BOMBERS, 0x2147, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_BOMBERS)
|
/* 0x00 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_BOMBERS, schedule_dma_static_yar_Blob_009800, 0x21DD, BOMBERS_NOTEBOOK_EVENT_MET_BOMBERS, 0x2147, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_BOMBERS)
|
||||||
/* 0x01 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_ANJU, D_07000000, 0x21CA, BOMBERS_NOTEBOOK_EVENT_MET_ANJU, 0x2134, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_ANJU)
|
/* 0x01 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_ANJU, schedule_dma_static_yar_Blob_000000, 0x21CA, BOMBERS_NOTEBOOK_EVENT_MET_ANJU, 0x2134, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_ANJU)
|
||||||
/* 0x02 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_KAFEI, D_07000800, 0x21CB, BOMBERS_NOTEBOOK_EVENT_MET_KAFEI, 0x2135, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_KAFEI)
|
/* 0x02 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_KAFEI, schedule_dma_static_yar_Blob_000800, 0x21CB, BOMBERS_NOTEBOOK_EVENT_MET_KAFEI, 0x2135, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_KAFEI)
|
||||||
/* 0x03 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_CURIOSITY_SHOP_MAN, D_07001000, 0x21CC, BOMBERS_NOTEBOOK_EVENT_MET_CURIOSITY_SHOP_MAN, 0x2136, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_CURIOSITY_SHOP_MAN)
|
/* 0x03 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_CURIOSITY_SHOP_MAN, schedule_dma_static_yar_Blob_001000, 0x21CC, BOMBERS_NOTEBOOK_EVENT_MET_CURIOSITY_SHOP_MAN, 0x2136, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_CURIOSITY_SHOP_MAN)
|
||||||
/* 0x04 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_BOMB_SHOP_LADY, D_07001800, 0x21CD, BOMBERS_NOTEBOOK_EVENT_MET_BOMB_SHOP_LADY, 0x2137, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_BOMB_SHOP_LADY)
|
/* 0x04 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_BOMB_SHOP_LADY, schedule_dma_static_yar_Blob_001800, 0x21CD, BOMBERS_NOTEBOOK_EVENT_MET_BOMB_SHOP_LADY, 0x2137, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_BOMB_SHOP_LADY)
|
||||||
/* 0x05 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_ROMANI, D_07002000, 0x21CE, BOMBERS_NOTEBOOK_EVENT_MET_ROMANI, 0x2138, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_ROMANI)
|
/* 0x05 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_ROMANI, schedule_dma_static_yar_Blob_002000, 0x21CE, BOMBERS_NOTEBOOK_EVENT_MET_ROMANI, 0x2138, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_ROMANI)
|
||||||
/* 0x06 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_CREMIA, D_07002800, 0x21CF, BOMBERS_NOTEBOOK_EVENT_MET_CREMIA, 0x2139, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_CREMIA)
|
/* 0x06 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_CREMIA, schedule_dma_static_yar_Blob_002800, 0x21CF, BOMBERS_NOTEBOOK_EVENT_MET_CREMIA, 0x2139, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_CREMIA)
|
||||||
/* 0x07 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_MAYOR_DOTOUR, D_07003000, 0x21D0, BOMBERS_NOTEBOOK_EVENT_MET_MAYOR_DOTOUR, 0x213A, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_MAYOR_DOTOUR)
|
/* 0x07 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_MAYOR_DOTOUR, schedule_dma_static_yar_Blob_003000, 0x21D0, BOMBERS_NOTEBOOK_EVENT_MET_MAYOR_DOTOUR, 0x213A, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_MAYOR_DOTOUR)
|
||||||
/* 0x08 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_MADAME_AROMA, D_07003800, 0x21D1, BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA, 0x213B, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA)
|
/* 0x08 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_MADAME_AROMA, schedule_dma_static_yar_Blob_003800, 0x21D1, BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA, 0x213B, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_MADAME_AROMA)
|
||||||
/* 0x09 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_TOTO, D_07004000, 0x21D2, BOMBERS_NOTEBOOK_EVENT_MET_TOTO, 0x213C, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_TOTO)
|
/* 0x09 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_TOTO, schedule_dma_static_yar_Blob_004000, 0x21D2, BOMBERS_NOTEBOOK_EVENT_MET_TOTO, 0x213C, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_TOTO)
|
||||||
/* 0x0A */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_GORMAN, D_07004800, 0x21D3, BOMBERS_NOTEBOOK_EVENT_MET_GORMAN, 0x213D, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_GORMAN)
|
/* 0x0A */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_GORMAN, schedule_dma_static_yar_Blob_004800, 0x21D3, BOMBERS_NOTEBOOK_EVENT_MET_GORMAN, 0x213D, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_GORMAN)
|
||||||
/* 0x0B */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_POSTMAN, D_07005000, 0x21D4, BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN, 0x213E, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN)
|
/* 0x0B */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_POSTMAN, schedule_dma_static_yar_Blob_005000, 0x21D4, BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN, 0x213E, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_POSTMAN)
|
||||||
/* 0x0C */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_ROSA_SISTERS, D_07005800, 0x21D5, BOMBERS_NOTEBOOK_EVENT_MET_ROSA_SISTERS, 0x213F, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_ROSA_SISTERS)
|
/* 0x0C */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_ROSA_SISTERS, schedule_dma_static_yar_Blob_005800, 0x21D5, BOMBERS_NOTEBOOK_EVENT_MET_ROSA_SISTERS, 0x213F, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_ROSA_SISTERS)
|
||||||
/* 0x0D */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_TOILET_HAND, D_07006000, 0x21D6, BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND, 0x2140, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_TOILET_HAND)
|
/* 0x0D */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_TOILET_HAND, schedule_dma_static_yar_Blob_006000, 0x21D6, BOMBERS_NOTEBOOK_EVENT_MET_TOLIET_HAND, 0x2140, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_TOILET_HAND)
|
||||||
/* 0x0E */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_ANJUS_GRANDMOTHER, D_07006800, 0x21D7, BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER, 0x2141, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER)
|
/* 0x0E */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_ANJUS_GRANDMOTHER, schedule_dma_static_yar_Blob_006800, 0x21D7, BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER, 0x2141, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_ANJUS_GRANDMOTHER)
|
||||||
/* 0x0F */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_KAMARO, D_07007000, 0x21D8, BOMBERS_NOTEBOOK_EVENT_MET_KAMARO, 0x2142, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_KAMARO)
|
/* 0x0F */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_KAMARO, schedule_dma_static_yar_Blob_007000, 0x21D8, BOMBERS_NOTEBOOK_EVENT_MET_KAMARO, 0x2142, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_KAMARO)
|
||||||
/* 0x10 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_GROG, D_07007800, 0x21D9, BOMBERS_NOTEBOOK_EVENT_MET_GROG, 0x2143, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_GROG)
|
/* 0x10 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_GROG, schedule_dma_static_yar_Blob_007800, 0x21D9, BOMBERS_NOTEBOOK_EVENT_MET_GROG, 0x2143, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_GROG)
|
||||||
/* 0x11 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_GORMAN_BROTHERS, D_07008000, 0x21DA, BOMBERS_NOTEBOOK_EVENT_MET_GORMAN_BROTHERS, 0x2144, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_GORMAN_BROTHERS)
|
/* 0x11 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_GORMAN_BROTHERS, schedule_dma_static_yar_Blob_008000, 0x21DA, BOMBERS_NOTEBOOK_EVENT_MET_GORMAN_BROTHERS, 0x2144, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_GORMAN_BROTHERS)
|
||||||
/* 0x12 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_SHIRO, D_07008800, 0x21DB, BOMBERS_NOTEBOOK_EVENT_MET_SHIRO, 0x2145, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_SHIRO)
|
/* 0x12 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_SHIRO, schedule_dma_static_yar_Blob_008800, 0x21DB, BOMBERS_NOTEBOOK_EVENT_MET_SHIRO, 0x2145, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_SHIRO)
|
||||||
/* 0x13 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_GURU_GURU, D_07009000, 0x21DC, BOMBERS_NOTEBOOK_EVENT_MET_GURU_GURU, 0x2146, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_GURU_GURU)
|
/* 0x13 */ DEFINE_PERSON(BOMBERS_NOTEBOOK_PERSON_GURU_GURU, schedule_dma_static_yar_Blob_009000, 0x21DC, BOMBERS_NOTEBOOK_EVENT_MET_GURU_GURU, 0x2146, WEEKEVENTREG_BOMBERS_NOTEBOOK_EVENT_MET_GURU_GURU)
|
||||||
|
|
38
spec
38
spec
|
@ -276,15 +276,17 @@ beginseg
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "icon_item_static_old"
|
name "icon_item_static_syms"
|
||||||
romalign 0x1000
|
romalign 0x1000
|
||||||
include "build/baserom/icon_item_static_old.o"
|
include "build/assets/archives/icon_item_static/icon_item_static_yar.symbols.o"
|
||||||
|
number 8
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "icon_item_24_static_old"
|
name "icon_item_24_static_syms"
|
||||||
romalign 0x1000
|
romalign 0x1000
|
||||||
include "build/baserom/icon_item_24_static_old.o"
|
include "build/assets/archives/icon_item_24_static/icon_item_24_static_yar.symbols.o"
|
||||||
|
number 9
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
|
@ -329,43 +331,47 @@ endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "map_i_static"
|
name "map_i_static"
|
||||||
include "build/baserom/map_i_static.o"
|
include "build/assets/archives/map_i_static/map_i_static.yar.o"
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "map_grand_static"
|
name "map_grand_static"
|
||||||
include "build/baserom/map_grand_static.o"
|
include "build/assets/archives/map_grand_static/map_grand_static.yar.o"
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "item_name_static"
|
name "item_name_static"
|
||||||
include "build/baserom/item_name_static.o"
|
include "build/assets/archives/item_name_static/item_name_static.yar.o"
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "map_name_static"
|
name "map_name_static"
|
||||||
include "build/baserom/map_name_static.o"
|
include "build/assets/archives/map_name_static/map_name_static.yar.o"
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "icon_item_static_test"
|
name "icon_item_static_yar"
|
||||||
include "build/baserom/icon_item_static_test.o"
|
include "build/assets/archives/icon_item_static/icon_item_static_yar.yar.o"
|
||||||
|
number 8
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "icon_item_24_static_test"
|
name "icon_item_24_static_yar"
|
||||||
include "build/baserom/icon_item_24_static_test.o"
|
include "build/assets/archives/icon_item_24_static/icon_item_24_static_yar.yar.o"
|
||||||
|
number 9
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "schedule_dma_static_old"
|
name "schedule_dma_static_syms"
|
||||||
include "build/baserom/schedule_dma_static_old.o"
|
include "build/assets/archives/schedule_dma_static/schedule_dma_static_yar.symbols.o"
|
||||||
|
number 7
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
name "schedule_dma_static_test"
|
name "schedule_dma_static_yar"
|
||||||
increment 0x1000
|
increment 0x1000
|
||||||
include "build/baserom/schedule_dma_static_test.o"
|
include "build/assets/archives/schedule_dma_static/schedule_dma_static_yar.yar.o"
|
||||||
|
number 7
|
||||||
endseg
|
endseg
|
||||||
|
|
||||||
beginseg
|
beginseg
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "interface/parameter_static/parameter_static.h"
|
#include "interface/parameter_static/parameter_static.h"
|
||||||
|
#include "archives/icon_item_static/icon_item_static_yar.h"
|
||||||
|
#include "archives/icon_item_24_static/icon_item_24_static_yar.h"
|
||||||
|
|
||||||
// Bit Flag array in which gBitFlags[n] is (1 << n)
|
// Bit Flag array in which gBitFlags[n] is (1 << n)
|
||||||
u32 gBitFlags[] = {
|
u32 gBitFlags[] = {
|
||||||
|
@ -95,139 +97,138 @@ u32 gGsFlagsShift[] = {
|
||||||
24,
|
24,
|
||||||
};
|
};
|
||||||
|
|
||||||
// TODO: use symbols for these icon textures once textures are properly in C
|
|
||||||
TexturePtr gItemIcons[] = {
|
TexturePtr gItemIcons[] = {
|
||||||
0x08000000, // ITEM_OCARINA
|
icon_item_static_yar_Blob_000000, // ITEM_OCARINA
|
||||||
0x08001000, // ITEM_BOW
|
icon_item_static_yar_Blob_001000, // ITEM_BOW
|
||||||
0x08002000, // ITEM_ARROW_FIRE
|
icon_item_static_yar_Blob_002000, // ITEM_ARROW_FIRE
|
||||||
0x08003000, // ITEM_ARROW_ICE
|
icon_item_static_yar_Blob_003000, // ITEM_ARROW_ICE
|
||||||
0x08004000, // ITEM_ARROW_LIGHT
|
icon_item_static_yar_Blob_004000, // ITEM_ARROW_LIGHT
|
||||||
0x08005000, // ITEM_OCARINA_FAIRY
|
icon_item_static_yar_Blob_005000, // ITEM_OCARINA_FAIRY
|
||||||
0x08006000, // ITEM_BOMB
|
icon_item_static_yar_Blob_006000, // ITEM_BOMB
|
||||||
0x08007000, // ITEM_BOMBCHU
|
icon_item_static_yar_Blob_007000, // ITEM_BOMBCHU
|
||||||
0x08008000, // ITEM_STICK
|
icon_item_static_yar_Blob_008000, // ITEM_STICK
|
||||||
0x08009000, // ITEM_NUT
|
icon_item_static_yar_Blob_009000, // ITEM_NUT
|
||||||
0x0800A000, // ITEM_MAGIC_BEANS
|
icon_item_static_yar_Blob_00A000, // ITEM_MAGIC_BEANS
|
||||||
0x0800B000, // ITEM_SLINGSHOT
|
icon_item_static_yar_Blob_00B000, // ITEM_SLINGSHOT
|
||||||
0x0800C000, // ITEM_POWDER_KEG
|
icon_item_static_yar_Blob_00C000, // ITEM_POWDER_KEG
|
||||||
0x0800D000, // ITEM_PICTO_BOX
|
icon_item_static_yar_Blob_00D000, // ITEM_PICTO_BOX
|
||||||
0x0800E000, // ITEM_LENS
|
icon_item_static_yar_Blob_00E000, // ITEM_LENS
|
||||||
0x0800F000, // ITEM_HOOKSHOT
|
icon_item_static_yar_Blob_00F000, // ITEM_HOOKSHOT
|
||||||
0x08010000, // ITEM_SWORD_GREAT_FAIRY
|
icon_item_static_yar_Blob_010000, // ITEM_SWORD_GREAT_FAIRY
|
||||||
0x08011000, // ITEM_LONGSHOT
|
icon_item_static_yar_Blob_011000, // ITEM_LONGSHOT
|
||||||
0x08012000, // ITEM_BOTTLE
|
icon_item_static_yar_Blob_012000, // ITEM_BOTTLE
|
||||||
0x08013000, // ITEM_POTION_RED
|
icon_item_static_yar_Blob_013000, // ITEM_POTION_RED
|
||||||
0x08014000, // ITEM_POTION_GREEN
|
icon_item_static_yar_Blob_014000, // ITEM_POTION_GREEN
|
||||||
0x08015000, // ITEM_POTION_BLUE
|
icon_item_static_yar_Blob_015000, // ITEM_POTION_BLUE
|
||||||
0x08016000, // ITEM_FAIRY
|
icon_item_static_yar_Blob_016000, // ITEM_FAIRY
|
||||||
0x08017000, // ITEM_DEKU_PRINCESS
|
icon_item_static_yar_Blob_017000, // ITEM_DEKU_PRINCESS
|
||||||
0x08018000, // ITEM_MILK_BOTTLE
|
icon_item_static_yar_Blob_018000, // ITEM_MILK_BOTTLE
|
||||||
0x08019000, // ITEM_MILK_HALF
|
icon_item_static_yar_Blob_019000, // ITEM_MILK_HALF
|
||||||
0x0801A000, // ITEM_FISH
|
icon_item_static_yar_Blob_01A000, // ITEM_FISH
|
||||||
0x0801B000, // ITEM_BUG
|
icon_item_static_yar_Blob_01B000, // ITEM_BUG
|
||||||
0x0801C000, // ITEM_BLUE_FIRE
|
icon_item_static_yar_Blob_01C000, // ITEM_BLUE_FIRE
|
||||||
0x0801D000, // ITEM_POE
|
icon_item_static_yar_Blob_01D000, // ITEM_POE
|
||||||
0x0801E000, // ITEM_BIG_POE
|
icon_item_static_yar_Blob_01E000, // ITEM_BIG_POE
|
||||||
0x0801F000, // ITEM_SPRING_WATER
|
icon_item_static_yar_Blob_01F000, // ITEM_SPRING_WATER
|
||||||
0x08020000, // ITEM_HOT_SPRING_WATER
|
icon_item_static_yar_Blob_020000, // ITEM_HOT_SPRING_WATER
|
||||||
0x08021000, // ITEM_ZORA_EGG
|
icon_item_static_yar_Blob_021000, // ITEM_ZORA_EGG
|
||||||
0x08022000, // ITEM_GOLD_DUST
|
icon_item_static_yar_Blob_022000, // ITEM_GOLD_DUST
|
||||||
0x08023000, // ITEM_MUSHROOM
|
icon_item_static_yar_Blob_023000, // ITEM_MUSHROOM
|
||||||
0x08024000, // ITEM_SEAHORSE
|
icon_item_static_yar_Blob_024000, // ITEM_SEAHORSE
|
||||||
0x08025000, // ITEM_CHATEAU
|
icon_item_static_yar_Blob_025000, // ITEM_CHATEAU
|
||||||
0x08026000, // ITEM_HYLIAN_LOACH
|
icon_item_static_yar_Blob_026000, // ITEM_HYLIAN_LOACH
|
||||||
0x08027000, // ITEM_OBABA_DRINK
|
icon_item_static_yar_Blob_027000, // ITEM_OBABA_DRINK
|
||||||
0x08028000, // ITEM_MOON_TEAR
|
icon_item_static_yar_Blob_028000, // ITEM_MOON_TEAR
|
||||||
0x08029000, // ITEM_DEED_LAND
|
icon_item_static_yar_Blob_029000, // ITEM_DEED_LAND
|
||||||
0x0802A000, // ITEM_DEED_SWAMP
|
icon_item_static_yar_Blob_02A000, // ITEM_DEED_SWAMP
|
||||||
0x0802B000, // ITEM_DEED_MOUNTAIN
|
icon_item_static_yar_Blob_02B000, // ITEM_DEED_MOUNTAIN
|
||||||
0x0802C000, // ITEM_DEED_OCEAN
|
icon_item_static_yar_Blob_02C000, // ITEM_DEED_OCEAN
|
||||||
0x0802D000, // ITEM_ROOM_KEY
|
icon_item_static_yar_Blob_02D000, // ITEM_ROOM_KEY
|
||||||
0x0802E000, // ITEM_LETTER_MAMA
|
icon_item_static_yar_Blob_02E000, // ITEM_LETTER_MAMA
|
||||||
0x0802F000, // ITEM_LETTER_TO_KAFEI
|
icon_item_static_yar_Blob_02F000, // ITEM_LETTER_TO_KAFEI
|
||||||
0x08030000, // ITEM_PENDANT_OF_MEMORIES
|
icon_item_static_yar_Blob_030000, // ITEM_PENDANT_OF_MEMORIES
|
||||||
0x08031000, // ITEM_TINGLE_MAP
|
icon_item_static_yar_Blob_031000, // ITEM_TINGLE_MAP
|
||||||
0x08032000, // ITEM_MASK_DEKU
|
icon_item_static_yar_Blob_032000, // ITEM_MASK_DEKU
|
||||||
0x08033000, // ITEM_MASK_GORON
|
icon_item_static_yar_Blob_033000, // ITEM_MASK_GORON
|
||||||
0x08034000, // ITEM_MASK_ZORA
|
icon_item_static_yar_Blob_034000, // ITEM_MASK_ZORA
|
||||||
0x08035000, // ITEM_MASK_FIERCE_DEITY
|
icon_item_static_yar_Blob_035000, // ITEM_MASK_FIERCE_DEITY
|
||||||
0x08036000, // ITEM_MASK_TRUTH
|
icon_item_static_yar_Blob_036000, // ITEM_MASK_TRUTH
|
||||||
0x08037000, // ITEM_MASK_KAFEIS_MASK
|
icon_item_static_yar_Blob_037000, // ITEM_MASK_KAFEIS_MASK
|
||||||
0x08038000, // ITEM_MASK_ALL_NIGHT
|
icon_item_static_yar_Blob_038000, // ITEM_MASK_ALL_NIGHT
|
||||||
0x08039000, // ITEM_MASK_BUNNY
|
icon_item_static_yar_Blob_039000, // ITEM_MASK_BUNNY
|
||||||
0x0803A000, // ITEM_MASK_KEATON
|
icon_item_static_yar_Blob_03A000, // ITEM_MASK_KEATON
|
||||||
0x0803B000, // ITEM_MASK_GARO
|
icon_item_static_yar_Blob_03B000, // ITEM_MASK_GARO
|
||||||
0x0803C000, // ITEM_MASK_ROMANI
|
icon_item_static_yar_Blob_03C000, // ITEM_MASK_ROMANI
|
||||||
0x0803D000, // ITEM_MASK_CIRCUS_LEADER
|
icon_item_static_yar_Blob_03D000, // ITEM_MASK_CIRCUS_LEADER
|
||||||
0x0803E000, // ITEM_MASK_POSTMAN
|
icon_item_static_yar_Blob_03E000, // ITEM_MASK_POSTMAN
|
||||||
0x0803F000, // ITEM_MASK_COUPLE
|
icon_item_static_yar_Blob_03F000, // ITEM_MASK_COUPLE
|
||||||
0x08040000, // ITEM_MASK_GREAT_FAIRY
|
icon_item_static_yar_Blob_040000, // ITEM_MASK_GREAT_FAIRY
|
||||||
0x08041000, // ITEM_MASK_GIBDO
|
icon_item_static_yar_Blob_041000, // ITEM_MASK_GIBDO
|
||||||
0x08042000, // ITEM_MASK_DON_GERO
|
icon_item_static_yar_Blob_042000, // ITEM_MASK_DON_GERO
|
||||||
0x08043000, // ITEM_MASK_KAMARO
|
icon_item_static_yar_Blob_043000, // ITEM_MASK_KAMARO
|
||||||
0x08044000, // ITEM_MASK_CAPTAIN
|
icon_item_static_yar_Blob_044000, // ITEM_MASK_CAPTAIN
|
||||||
0x08045000, // ITEM_MASK_STONE
|
icon_item_static_yar_Blob_045000, // ITEM_MASK_STONE
|
||||||
0x08046000, // ITEM_MASK_BREMEN
|
icon_item_static_yar_Blob_046000, // ITEM_MASK_BREMEN
|
||||||
0x08047000, // ITEM_MASK_BLAST
|
icon_item_static_yar_Blob_047000, // ITEM_MASK_BLAST
|
||||||
0x08048000, // ITEM_MASK_SCENTS
|
icon_item_static_yar_Blob_048000, // ITEM_MASK_SCENTS
|
||||||
0x08049000, // ITEM_MASK_GIANT
|
icon_item_static_yar_Blob_049000, // ITEM_MASK_GIANT
|
||||||
0x0804A000, // ITEM_BOW_ARROW_FIRE
|
icon_item_static_yar_Blob_04A000, // ITEM_BOW_ARROW_FIRE
|
||||||
0x0804B000, // ITEM_BOW_ARROW_ICE
|
icon_item_static_yar_Blob_04B000, // ITEM_BOW_ARROW_ICE
|
||||||
0x0804C000, // ITEM_BOW_ARROW_LIGHT
|
icon_item_static_yar_Blob_04C000, // ITEM_BOW_ARROW_LIGHT
|
||||||
0x0804D000, // ITEM_SWORD_KOKIRI
|
icon_item_static_yar_Blob_04D000, // ITEM_SWORD_KOKIRI
|
||||||
0x0804E000, // ITEM_SWORD_RAZOR
|
icon_item_static_yar_Blob_04E000, // ITEM_SWORD_RAZOR
|
||||||
0x0804F000, // ITEM_SWORD_GILDED
|
icon_item_static_yar_Blob_04F000, // ITEM_SWORD_GILDED
|
||||||
0x08050000, // ITEM_SWORD_DEITY
|
icon_item_static_yar_Blob_050000, // ITEM_SWORD_DEITY
|
||||||
0x08051000, // ITEM_SHIELD_HERO
|
icon_item_static_yar_Blob_051000, // ITEM_SHIELD_HERO
|
||||||
0x08052000, // ITEM_SHIELD_MIRROR
|
icon_item_static_yar_Blob_052000, // ITEM_SHIELD_MIRROR
|
||||||
0x08053000, // ITEM_QUIVER_30
|
icon_item_static_yar_Blob_053000, // ITEM_QUIVER_30
|
||||||
0x08054000, // ITEM_QUIVER_40
|
icon_item_static_yar_Blob_054000, // ITEM_QUIVER_40
|
||||||
0x08055000, // ITEM_QUIVER_50
|
icon_item_static_yar_Blob_055000, // ITEM_QUIVER_50
|
||||||
0x08056000, // ITEM_BOMB_BAG_20
|
icon_item_static_yar_Blob_056000, // ITEM_BOMB_BAG_20
|
||||||
0x08057000, // ITEM_BOMB_BAG_30
|
icon_item_static_yar_Blob_057000, // ITEM_BOMB_BAG_30
|
||||||
0x08058000, // ITEM_BOMB_BAG_40
|
icon_item_static_yar_Blob_058000, // ITEM_BOMB_BAG_40
|
||||||
0x08059000, // ITEM_WALLET_DEFAULT
|
icon_item_static_yar_Blob_059000, // ITEM_WALLET_DEFAULT
|
||||||
0x0805A000, // ITEM_WALLET_ADULT
|
icon_item_static_yar_Blob_05A000, // ITEM_WALLET_ADULT
|
||||||
0x0805B000, // ITEM_WALLET_GIANT
|
icon_item_static_yar_Blob_05B000, // ITEM_WALLET_GIANT
|
||||||
0x0805C000, // ITEM_FISHING_ROD
|
icon_item_static_yar_Blob_05C000, // ITEM_FISHING_ROD
|
||||||
0x0805D000, // ITEM_REMAINS_ODOLWA
|
icon_item_static_yar_Blob_05D000, // ITEM_REMAINS_ODOLWA
|
||||||
0x0805E000, // ITEM_REMAINS_GOHT
|
icon_item_static_yar_Blob_05E000, // ITEM_REMAINS_GOHT
|
||||||
0x0805F000, // ITEM_REMAINS_GYORG
|
icon_item_static_yar_Blob_05F000, // ITEM_REMAINS_GYORG
|
||||||
0x08060000, // ITEM_REMAINS_TWINMOLD
|
icon_item_static_yar_Blob_060000, // ITEM_REMAINS_TWINMOLD
|
||||||
0x08062000, // ITEM_SONG_SONATA
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_SONATA
|
||||||
0x08062000, // ITEM_SONG_LULLABY
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_LULLABY
|
||||||
0x08062000, // ITEM_SONG_NOVA
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_NOVA
|
||||||
0x08062000, // ITEM_SONG_ELEGY
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_ELEGY
|
||||||
0x08062000, // ITEM_SONG_OATH
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_OATH
|
||||||
0x08062000, // ITEM_SONG_SARIA
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_SARIA
|
||||||
0x08062000, // ITEM_SONG_TIME
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_TIME
|
||||||
0x08062000, // ITEM_SONG_HEALING
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_HEALING
|
||||||
0x08062000, // ITEM_SONG_EPONA
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_EPONA
|
||||||
0x08062000, // ITEM_SONG_SOARING
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_SOARING
|
||||||
0x08062000, // ITEM_SONG_STORMS
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_STORMS
|
||||||
0x08062000, // ITEM_SONG_SUN
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_SUN
|
||||||
0x08061000, // ITEM_BOMBERS_NOTEBOOK
|
icon_item_static_yar_Blob_061000, // ITEM_BOMBERS_NOTEBOOK
|
||||||
0x09000000, // ITEM_SKULL_TOKEN
|
icon_item_24_static_yar_Blob_000000, // ITEM_SKULL_TOKEN
|
||||||
0x09000900, // ITEM_HEART_CONTAINER
|
icon_item_24_static_yar_Blob_000900, // ITEM_HEART_CONTAINER
|
||||||
0x09001200, // ITEM_HEART_PIECE
|
icon_item_24_static_yar_Blob_001200, // ITEM_HEART_PIECE
|
||||||
0x08062000, //
|
icon_item_static_yar_Blob_062000, //
|
||||||
0x08062000, //
|
icon_item_static_yar_Blob_062000, //
|
||||||
0x08062000, // ITEM_SONG_LULLABY_INTRO
|
icon_item_static_yar_Blob_062000, // ITEM_SONG_LULLABY_INTRO
|
||||||
0x09003600, // ITEM_KEY_BOSS
|
icon_item_24_static_yar_Blob_003600, // ITEM_KEY_BOSS
|
||||||
0x09004800, // ITEM_COMPASS
|
icon_item_24_static_yar_Blob_004800, // ITEM_COMPASS
|
||||||
0x09003F00, // ITEM_DUNGEON_MAP
|
icon_item_24_static_yar_Blob_003F00, // ITEM_DUNGEON_MAP
|
||||||
0x09005100, // ITEM_STRAY_FAIRIES
|
icon_item_24_static_yar_Blob_005100, // ITEM_STRAY_FAIRIES
|
||||||
0x09005A00, // ITEM_KEY_SMALL
|
icon_item_24_static_yar_Blob_005A00, // ITEM_KEY_SMALL
|
||||||
0x09006300, // ITEM_MAGIC_SMALL
|
icon_item_24_static_yar_Blob_006300, // ITEM_MAGIC_SMALL
|
||||||
0x09006C00, // ITEM_MAGIC_LARGE
|
icon_item_24_static_yar_Blob_006C00, // ITEM_MAGIC_LARGE
|
||||||
0x08062180, // ITEM_HEART_PIECE_2
|
icon_item_static_yar_Blob_062180, // ITEM_HEART_PIECE_2
|
||||||
0x08062A80, // ITEM_INVALID_1
|
icon_item_static_yar_Blob_062A80, // ITEM_INVALID_1
|
||||||
0x08063380, // ITEM_INVALID_2
|
icon_item_static_yar_Blob_063380, // ITEM_INVALID_2
|
||||||
gOcarinaCUpTex, // ITEM_INVALID_3
|
gOcarinaCUpTex, // ITEM_INVALID_3
|
||||||
gOcarinaCDownTex, // ITEM_INVALID_4
|
gOcarinaCDownTex, // ITEM_INVALID_4
|
||||||
gOcarinaCLeftTex, // ITEM_INVALID_5
|
gOcarinaCLeftTex, // ITEM_INVALID_5
|
||||||
gOcarinaCRightTex, // ITEM_INVALID_6
|
gOcarinaCRightTex, // ITEM_INVALID_6
|
||||||
gOcarinaATex, // ITEM_INVALID_7
|
gOcarinaATex, // ITEM_INVALID_7
|
||||||
};
|
};
|
||||||
|
|
||||||
// Used to map item IDs to inventory slots
|
// Used to map item IDs to inventory slots
|
||||||
|
|
|
@ -1,31 +1,7 @@
|
||||||
#include "global.h"
|
#include "global.h"
|
||||||
#include "z64bombers_notebook.h"
|
#include "z64bombers_notebook.h"
|
||||||
#include "interface/schedule_static/schedule_static.h"
|
#include "interface/schedule_static/schedule_static.h"
|
||||||
|
#include "archives/schedule_dma_static/schedule_dma_static_yar.h"
|
||||||
// TODO: Needs YAZ0
|
|
||||||
// Segment 0x07 schedule_dma_static_test
|
|
||||||
extern TexturePtr D_07000000;
|
|
||||||
extern TexturePtr D_07000800;
|
|
||||||
extern TexturePtr D_07001000;
|
|
||||||
extern TexturePtr D_07001800;
|
|
||||||
extern TexturePtr D_07002000;
|
|
||||||
extern TexturePtr D_07002800;
|
|
||||||
extern TexturePtr D_07003000;
|
|
||||||
extern TexturePtr D_07003800;
|
|
||||||
extern TexturePtr D_07004000;
|
|
||||||
extern TexturePtr D_07004800;
|
|
||||||
extern TexturePtr D_07005000;
|
|
||||||
extern TexturePtr D_07005800;
|
|
||||||
extern TexturePtr D_07006000;
|
|
||||||
extern TexturePtr D_07006800;
|
|
||||||
extern TexturePtr D_07007000;
|
|
||||||
extern TexturePtr D_07007800;
|
|
||||||
extern TexturePtr D_07008000;
|
|
||||||
extern TexturePtr D_07008800;
|
|
||||||
extern TexturePtr D_07009000;
|
|
||||||
extern TexturePtr D_07009800;
|
|
||||||
extern TexturePtr D_0700AC00;
|
|
||||||
extern TexturePtr D_0700AEA0;
|
|
||||||
|
|
||||||
#define BOMBERS_NOTEBOOK_ENTRY_SIZE 3
|
#define BOMBERS_NOTEBOOK_ENTRY_SIZE 3
|
||||||
#define BOMBERS_NOTEBOOK_ENTRY_MAX 10
|
#define BOMBERS_NOTEBOOK_ENTRY_MAX 10
|
||||||
|
@ -395,8 +371,8 @@ void BombersNotebook_DrawColumns(Gfx** gfxP) {
|
||||||
|
|
||||||
TexturePtr sBombersNotebookEventIconTextures[] = {
|
TexturePtr sBombersNotebookEventIconTextures[] = {
|
||||||
gBombersNotebookEntryIconExclamationPointTex,
|
gBombersNotebookEntryIconExclamationPointTex,
|
||||||
&D_0700AC00,
|
schedule_dma_static_yar_Blob_00AC00,
|
||||||
&D_0700AEA0,
|
schedule_dma_static_yar_Blob_00AEA0,
|
||||||
};
|
};
|
||||||
s16 sBombersNotebookEntryIconColors[][3] = {
|
s16 sBombersNotebookEntryIconColors[][3] = {
|
||||||
{ 255, 255, 0 },
|
{ 255, 255, 0 },
|
||||||
|
@ -1163,8 +1139,8 @@ void BombersNotebook_Update(PlayState* play, BombersNotebook* this, Input* input
|
||||||
s32 stickAdjY = input->rel.stick_y;
|
s32 stickAdjY = input->rel.stick_y;
|
||||||
s32 cursorEntryScan;
|
s32 cursorEntryScan;
|
||||||
|
|
||||||
this->scheduleDmaSegmentStart = SEGMENT_ROM_START(schedule_dma_static_test);
|
this->scheduleDmaSegmentStart = SEGMENT_ROM_START(schedule_dma_static_yar);
|
||||||
this->scheduleDmaSegmentSize = SEGMENT_ROM_SIZE(schedule_dma_static_old);
|
this->scheduleDmaSegmentSize = SEGMENT_ROM_SIZE(schedule_dma_static_syms);
|
||||||
this->scheduleSegmentStart = SEGMENT_ROM_START(schedule_static);
|
this->scheduleSegmentStart = SEGMENT_ROM_START(schedule_static);
|
||||||
this->scheduleSegmentSize = SEGMENT_ROM_SIZE(schedule_static);
|
this->scheduleSegmentSize = SEGMENT_ROM_SIZE(schedule_static);
|
||||||
|
|
||||||
|
|
|
@ -2857,8 +2857,8 @@ void KaleidoScope_Update(PlayState* play) {
|
||||||
pauseCtx->roll = -314.0f;
|
pauseCtx->roll = -314.0f;
|
||||||
|
|
||||||
pauseCtx->iconItemSegment = (void*)ALIGN16((uintptr_t)play->objectCtx.spaceStart);
|
pauseCtx->iconItemSegment = (void*)ALIGN16((uintptr_t)play->objectCtx.spaceStart);
|
||||||
size0 = SEGMENT_ROM_SIZE(icon_item_static_old);
|
size0 = SEGMENT_ROM_SIZE(icon_item_static_syms);
|
||||||
CmpDma_LoadAllFiles((uintptr_t)SEGMENT_ROM_START(icon_item_static_test), pauseCtx->iconItemSegment, size0);
|
CmpDma_LoadAllFiles((uintptr_t)SEGMENT_ROM_START(icon_item_static_yar), pauseCtx->iconItemSegment, size0);
|
||||||
|
|
||||||
gSegments[0x08] = VIRTUAL_TO_PHYSICAL(pauseCtx->iconItemSegment);
|
gSegments[0x08] = VIRTUAL_TO_PHYSICAL(pauseCtx->iconItemSegment);
|
||||||
|
|
||||||
|
@ -2869,8 +2869,8 @@ void KaleidoScope_Update(PlayState* play) {
|
||||||
}
|
}
|
||||||
|
|
||||||
pauseCtx->iconItem24Segment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + size0);
|
pauseCtx->iconItem24Segment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + size0);
|
||||||
size1 = SEGMENT_ROM_SIZE(icon_item_24_static_old);
|
size1 = SEGMENT_ROM_SIZE(icon_item_24_static_syms);
|
||||||
CmpDma_LoadAllFiles((uintptr_t)SEGMENT_ROM_START(icon_item_24_static_test), pauseCtx->iconItem24Segment,
|
CmpDma_LoadAllFiles((uintptr_t)SEGMENT_ROM_START(icon_item_24_static_yar), pauseCtx->iconItem24Segment,
|
||||||
size1);
|
size1);
|
||||||
|
|
||||||
pauseCtx->iconItemAltSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItem24Segment + size1);
|
pauseCtx->iconItemAltSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItem24Segment + size1);
|
||||||
|
@ -3184,12 +3184,12 @@ void KaleidoScope_Update(PlayState* play) {
|
||||||
|
|
||||||
pauseCtx->iconItemSegment =
|
pauseCtx->iconItemSegment =
|
||||||
(void*)(((uintptr_t)play->objectCtx.spaceStart + 0x30) & ~0x3F); // Messed up ALIGN64
|
(void*)(((uintptr_t)play->objectCtx.spaceStart + 0x30) & ~0x3F); // Messed up ALIGN64
|
||||||
size0 = SEGMENT_ROM_SIZE(icon_item_static_old);
|
size0 = SEGMENT_ROM_SIZE(icon_item_static_syms);
|
||||||
CmpDma_LoadAllFiles(SEGMENT_ROM_START(icon_item_static_test), pauseCtx->iconItemSegment, size0);
|
CmpDma_LoadAllFiles(SEGMENT_ROM_START(icon_item_static_yar), pauseCtx->iconItemSegment, size0);
|
||||||
|
|
||||||
pauseCtx->iconItem24Segment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + size0);
|
pauseCtx->iconItem24Segment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + size0);
|
||||||
size1 = SEGMENT_ROM_SIZE(icon_item_24_static_old);
|
size1 = SEGMENT_ROM_SIZE(icon_item_24_static_syms);
|
||||||
CmpDma_LoadAllFiles(SEGMENT_ROM_START(icon_item_24_static_test), pauseCtx->iconItem24Segment, size1);
|
CmpDma_LoadAllFiles(SEGMENT_ROM_START(icon_item_24_static_yar), pauseCtx->iconItem24Segment, size1);
|
||||||
|
|
||||||
pauseCtx->iconItemAltSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItem24Segment + size1);
|
pauseCtx->iconItemAltSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItem24Segment + size1);
|
||||||
size2 = SEGMENT_ROM_SIZE(icon_item_gameover_static);
|
size2 = SEGMENT_ROM_SIZE(icon_item_gameover_static);
|
||||||
|
@ -3432,8 +3432,8 @@ void KaleidoScope_Update(PlayState* play) {
|
||||||
sPauseCursorRightX = 155;
|
sPauseCursorRightX = 155;
|
||||||
|
|
||||||
pauseCtx->iconItemSegment = (void*)ALIGN16((uintptr_t)play->objectCtx.spaceStart);
|
pauseCtx->iconItemSegment = (void*)ALIGN16((uintptr_t)play->objectCtx.spaceStart);
|
||||||
size0 = SEGMENT_ROM_SIZE(icon_item_static_old);
|
size0 = SEGMENT_ROM_SIZE(icon_item_static_syms);
|
||||||
CmpDma_LoadAllFiles(SEGMENT_ROM_START(icon_item_static_test), pauseCtx->iconItemSegment, size0);
|
CmpDma_LoadAllFiles(SEGMENT_ROM_START(icon_item_static_yar), pauseCtx->iconItemSegment, size0);
|
||||||
|
|
||||||
pauseCtx->iconItemAltSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + size0);
|
pauseCtx->iconItemAltSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + size0);
|
||||||
sInDungeonScene = false;
|
sInDungeonScene = false;
|
||||||
|
|
|
@ -5,3 +5,4 @@ makeromfs
|
||||||
mkldscript
|
mkldscript
|
||||||
reloc_prereq
|
reloc_prereq
|
||||||
yaz0
|
yaz0
|
||||||
|
makeyar
|
||||||
|
|
|
@ -1,6 +1,5 @@
|
||||||
CC := gcc
|
CFLAGS := -Wall -Wextra -Wpedantic -std=c99 -g -Os
|
||||||
CFLAGS := -Wall -Wextra -pedantic -std=c99 -g -O2
|
PROGRAMS := elf2rom makeromfs mkldscript reloc_prereq yaz0 makeyar
|
||||||
PROGRAMS := elf2rom makeromfs mkldscript reloc_prereq yaz0
|
|
||||||
|
|
||||||
ifeq ($(shell command -v clang >/dev/null 2>&1; echo $$?),0)
|
ifeq ($(shell command -v clang >/dev/null 2>&1; echo $$?),0)
|
||||||
CC := clang
|
CC := clang
|
||||||
|
@ -8,15 +7,6 @@ else
|
||||||
CC := gcc
|
CC := gcc
|
||||||
endif
|
endif
|
||||||
|
|
||||||
LLD ?= 0
|
|
||||||
|
|
||||||
ifeq ($(shell command -v ld.lld >/dev/null 2>&1; echo $$?),0)
|
|
||||||
LLD := 1
|
|
||||||
endif
|
|
||||||
|
|
||||||
ifneq ($(LLD),0)
|
|
||||||
CFLAGS += -fuse-ld=lld
|
|
||||||
endif
|
|
||||||
all: $(PROGRAMS)
|
all: $(PROGRAMS)
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
|
@ -27,6 +17,7 @@ makeromfs_SOURCES := makeromfs.c n64chksum.c util.c
|
||||||
mkldscript_SOURCES := mkldscript.c spec.c util.c
|
mkldscript_SOURCES := mkldscript.c spec.c util.c
|
||||||
reloc_prereq_SOURCES := reloc_prereq.c spec.c util.c
|
reloc_prereq_SOURCES := reloc_prereq.c spec.c util.c
|
||||||
yaz0_SOURCES := yaz0tool.c yaz0.c util.c
|
yaz0_SOURCES := yaz0tool.c yaz0.c util.c
|
||||||
|
makeyar_SOURCES := makeyar.c elf32.c yaz0.c util.c
|
||||||
|
|
||||||
define COMPILE =
|
define COMPILE =
|
||||||
$(1): $($1_SOURCES)
|
$(1): $($1_SOURCES)
|
||||||
|
|
|
@ -138,6 +138,7 @@ bool elf32_get_section(struct Elf32* e, struct Elf32_Section* sec, int secnum) {
|
||||||
sec->flags = e->read32(sechdr + 0x08);
|
sec->flags = e->read32(sechdr + 0x08);
|
||||||
sec->addr = e->read32(sechdr + 0x0C);
|
sec->addr = e->read32(sechdr + 0x0C);
|
||||||
sec->offset = e->read32(sechdr + 0x10);
|
sec->offset = e->read32(sechdr + 0x10);
|
||||||
|
sec->size = e->read32(sechdr + 0x14);
|
||||||
sec->addralign = e->read32(sechdr + 0x20);
|
sec->addralign = e->read32(sechdr + 0x20);
|
||||||
sec->entsize = e->read32(sechdr + 0x24);
|
sec->entsize = e->read32(sechdr + 0x24);
|
||||||
return true;
|
return true;
|
||||||
|
@ -162,5 +163,8 @@ bool elf32_get_symbol(struct Elf32* e, struct Elf32_Symbol* sym, int symnum) {
|
||||||
|
|
||||||
sym->name = strings + e->read32(symtab + symnum * 0x10);
|
sym->name = strings + e->read32(symtab + symnum * 0x10);
|
||||||
sym->value = e->read32(symtab + symnum * 0x10 + 4);
|
sym->value = e->read32(symtab + symnum * 0x10 + 4);
|
||||||
|
sym->size = e->read32(symtab + symnum * 0x10 + 8);
|
||||||
|
sym->st_type = symtab[symnum * 0x10 + 0xC] & 0xF;
|
||||||
|
sym->shndx = e->read16(symtab + symnum * 0x10 + 0xE);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -3,6 +3,7 @@
|
||||||
|
|
||||||
#include <stddef.h>
|
#include <stddef.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
|
#include <stdbool.h>
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
ELF_MACHINE_NONE = 0,
|
ELF_MACHINE_NONE = 0,
|
||||||
|
@ -52,14 +53,31 @@ struct Elf32_Section {
|
||||||
uint32_t type;
|
uint32_t type;
|
||||||
uint32_t flags;
|
uint32_t flags;
|
||||||
uint32_t addr;
|
uint32_t addr;
|
||||||
|
uint32_t size;
|
||||||
uint32_t offset;
|
uint32_t offset;
|
||||||
uint32_t addralign;
|
uint32_t addralign;
|
||||||
uint32_t entsize;
|
uint32_t entsize;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
#define SHN_UNDEF 0
|
||||||
|
#define SHN_ABS 0xFFF1
|
||||||
|
#define SHN_COMMON 0xFFF2
|
||||||
|
|
||||||
|
#define STT_NOTYPE 0
|
||||||
|
#define STT_OBJECT 1
|
||||||
|
#define STT_FUNC 2
|
||||||
|
#define STT_SECTION 3
|
||||||
|
#define STT_FILE 4
|
||||||
|
#define STT_COMMON 5
|
||||||
|
#define STT_TLS 6
|
||||||
|
#define STT_NUM 7
|
||||||
|
|
||||||
struct Elf32_Symbol {
|
struct Elf32_Symbol {
|
||||||
const char* name;
|
const char* name;
|
||||||
uint32_t value;
|
uint32_t value;
|
||||||
|
uint32_t size;
|
||||||
|
uint8_t st_type;
|
||||||
|
uint16_t shndx;
|
||||||
};
|
};
|
||||||
|
|
||||||
bool elf32_init(struct Elf32* e, const void* data, size_t size);
|
bool elf32_init(struct Elf32* e, const void* data, size_t size);
|
||||||
|
|
|
@ -0,0 +1,267 @@
|
||||||
|
/* SPDX-FileCopyrightText: © 2023 ZeldaRET */
|
||||||
|
/* SPDX-License-Identifier: MIT */
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Program to generate compressed yar (Yaz0 ARchive) files.
|
||||||
|
*
|
||||||
|
* The program expects an .o elf file and outputs a raw yar binary file and a
|
||||||
|
* "symbols" elf.
|
||||||
|
*
|
||||||
|
* A yar file consists of multiple Yaz0 files compressed individually. The
|
||||||
|
* archive begins with a header of non-fixed size, which describes the
|
||||||
|
* location of each individual Yaz0 block within the archive itself. This
|
||||||
|
* header is followed by each Yaz0 file.
|
||||||
|
*
|
||||||
|
* The first word (a 4 byte group) of the header indicates the size in bytes of
|
||||||
|
* the header itself (also describes the offset of the first Yaz0 block). The
|
||||||
|
* rest of the header consists of words describing the offsets of each Yaz0
|
||||||
|
* block relative to the end of the header, because the first Yaz0
|
||||||
|
* block is omitted from the offsets in the header.
|
||||||
|
*
|
||||||
|
* Each Yaz0 block is 0xFF-padded to a multiple of 0x10 in size.
|
||||||
|
*
|
||||||
|
* The entire archive is 0-padded to a multiple of 0x10 in size.
|
||||||
|
*
|
||||||
|
* The program works by compressing each .data symbol in the input elf file as
|
||||||
|
* its own Yaz0 compressed file, appending them in order for the generated
|
||||||
|
* archive. Other elf sections are ignored for the resulting yar file.
|
||||||
|
*
|
||||||
|
* The program also outputs an elf file that's identical to the elf input,
|
||||||
|
* but with its .data section zero'ed out completely. This "symbols" elf can be
|
||||||
|
* used for referencing each symbol as the whole file were completely
|
||||||
|
* uncompressed.
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
||||||
|
#include <stdbool.h>
|
||||||
|
#include <stdio.h>
|
||||||
|
#include <stdint.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <string.h>
|
||||||
|
#include <assert.h>
|
||||||
|
|
||||||
|
#include "elf32.h"
|
||||||
|
#include "yaz0.h"
|
||||||
|
#include "util.h"
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct Bytearray {
|
||||||
|
uint8_t *bytes;
|
||||||
|
size_t size;
|
||||||
|
} Bytearray;
|
||||||
|
|
||||||
|
typedef struct SymbolList {
|
||||||
|
struct Elf32_Symbol *symbols;
|
||||||
|
size_t size; // allocated size
|
||||||
|
size_t len; // elements in the list
|
||||||
|
} SymbolList;
|
||||||
|
|
||||||
|
typedef struct DataSection {
|
||||||
|
Bytearray data;
|
||||||
|
uint32_t dataOffset;
|
||||||
|
SymbolList symbols;
|
||||||
|
} DataSection;
|
||||||
|
|
||||||
|
|
||||||
|
void Bytearray_Init(Bytearray *bytearr, const uint8_t *bytes, size_t size) {
|
||||||
|
bytearr->bytes = malloc(size);
|
||||||
|
if (bytearr->bytes == NULL) {
|
||||||
|
util_fatal_error("memory error");
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(bytearr->bytes, bytes, size);
|
||||||
|
bytearr->size = size;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Bytearray_InitValue(Bytearray *bytearr, uint8_t val, size_t count) {
|
||||||
|
bytearr->bytes = malloc(count * sizeof(uint8_t));
|
||||||
|
if (bytearr->bytes == NULL) {
|
||||||
|
util_fatal_error("memory error");
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(bytearr->bytes, val, count);
|
||||||
|
bytearr->size = count;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Bytearray_ExtendValue(Bytearray *bytearr, uint8_t val, size_t count) {
|
||||||
|
size_t newSize = bytearr->size + count;
|
||||||
|
|
||||||
|
bytearr->bytes = realloc(bytearr->bytes, newSize);
|
||||||
|
if (bytearr->bytes == NULL) {
|
||||||
|
util_fatal_error("memory error");
|
||||||
|
}
|
||||||
|
|
||||||
|
memset(&bytearr->bytes[bytearr->size], val, count);
|
||||||
|
bytearr->size = newSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Bytearray_Extend(Bytearray *bytearr, const uint8_t *bytes, size_t size) {
|
||||||
|
size_t newSize = bytearr->size + size;
|
||||||
|
|
||||||
|
bytearr->bytes = realloc(bytearr->bytes, newSize);
|
||||||
|
if (bytearr->bytes == NULL) {
|
||||||
|
util_fatal_error("memory error");
|
||||||
|
}
|
||||||
|
|
||||||
|
memcpy(&bytearr->bytes[bytearr->size], bytes, size);
|
||||||
|
bytearr->size = newSize;
|
||||||
|
}
|
||||||
|
|
||||||
|
void Bytearray_Destroy(Bytearray *bytearr) {
|
||||||
|
free(bytearr->bytes);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SymbolList_Init(SymbolList *list, size_t initialAmount) {
|
||||||
|
list->symbols = malloc(initialAmount * sizeof(struct Elf32_Symbol));
|
||||||
|
if (list->symbols == NULL) {
|
||||||
|
util_fatal_error("memory error");
|
||||||
|
}
|
||||||
|
list->size = initialAmount;
|
||||||
|
list->len = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SymbolList_Destroy(SymbolList *list) {
|
||||||
|
free(list->symbols);
|
||||||
|
}
|
||||||
|
|
||||||
|
void DataSection_FromElf(DataSection *dst, const Bytearray *elfBytes){
|
||||||
|
struct Elf32 elf;
|
||||||
|
size_t i;
|
||||||
|
int symIndex;
|
||||||
|
size_t dataShndx = 0;
|
||||||
|
|
||||||
|
if (!elf32_init(&elf, elfBytes->bytes, elfBytes->size) || (elf.machine != ELF_MACHINE_MIPS)) {
|
||||||
|
util_fatal_error("not a valid 32-bit MIPS ELF file");
|
||||||
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < elf.shnum; i++) {
|
||||||
|
struct Elf32_Section sec;
|
||||||
|
|
||||||
|
if (!elf32_get_section(&elf, &sec, i)) {
|
||||||
|
util_fatal_error("invalid or corrupt ELF file");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (strcmp(sec.name, ".data") == 0) {
|
||||||
|
dst->dataOffset = sec.offset;
|
||||||
|
Bytearray_Init(&dst->data, &elfBytes->bytes[sec.offset], sec.size);
|
||||||
|
dataShndx = i;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
SymbolList_Init(&dst->symbols, elf.numsymbols);
|
||||||
|
for (symIndex = 0; symIndex < elf.numsymbols; symIndex++) {
|
||||||
|
struct Elf32_Symbol sym;
|
||||||
|
|
||||||
|
if (!elf32_get_symbol(&elf, &sym, symIndex)) {
|
||||||
|
util_fatal_error("invalid or corrupt ELF file");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (sym.shndx != dataShndx) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (sym.st_type != STT_OBJECT) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
dst->symbols.symbols[dst->symbols.len++] = sym;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void DataSection_Destroy(DataSection *dataSect) {
|
||||||
|
Bytearray_Destroy(&dataSect->data);
|
||||||
|
SymbolList_Destroy(&dataSect->symbols);
|
||||||
|
}
|
||||||
|
|
||||||
|
#define ALIGN16(val) (((val) + 0xF) & ~0xF)
|
||||||
|
|
||||||
|
void createArchive(Bytearray *archive, const DataSection *dataSect) {
|
||||||
|
uint32_t firstEntryOffset = (dataSect->symbols.len + 1) * sizeof(uint32_t);
|
||||||
|
size_t i;
|
||||||
|
size_t offset;
|
||||||
|
|
||||||
|
// Fill with zeroes until the compressed data start
|
||||||
|
Bytearray_InitValue(archive, 0, firstEntryOffset);
|
||||||
|
|
||||||
|
util_write_uint32_be(&archive->bytes[0], firstEntryOffset);
|
||||||
|
|
||||||
|
offset = firstEntryOffset;
|
||||||
|
for (i = 0; i < dataSect->symbols.len; i++) {
|
||||||
|
const struct Elf32_Symbol *sym = &dataSect->symbols.symbols[i];
|
||||||
|
size_t uncompressedSize = sym->size;
|
||||||
|
uint8_t *output = malloc(uncompressedSize * sizeof(uint8_t)); // assume compressed shouldn't be bigger than uncompressed
|
||||||
|
size_t compressedSize;
|
||||||
|
|
||||||
|
output[0] = 'Y';
|
||||||
|
output[1] = 'a';
|
||||||
|
output[2] = 'z';
|
||||||
|
output[3] = '0';
|
||||||
|
util_write_uint32_be(&output[4], uncompressedSize);
|
||||||
|
memset(&output[8], 0, 8);
|
||||||
|
compressedSize = 0x10;
|
||||||
|
|
||||||
|
assert(sym->value + uncompressedSize <= dataSect->data.size);
|
||||||
|
compressedSize += yaz0_encode(&dataSect->data.bytes[sym->value], &output[0x10], uncompressedSize);
|
||||||
|
|
||||||
|
// Pad to 0x10
|
||||||
|
while (compressedSize % 0x10 != 0) {
|
||||||
|
output[compressedSize++] = 0xFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
Bytearray_Extend(archive, output, compressedSize);
|
||||||
|
|
||||||
|
if (i > 0) {
|
||||||
|
util_write_uint32_be(&archive->bytes[i * sizeof(uint32_t)], offset - firstEntryOffset);
|
||||||
|
}
|
||||||
|
|
||||||
|
offset += compressedSize;
|
||||||
|
free(output);
|
||||||
|
}
|
||||||
|
|
||||||
|
util_write_uint32_be(&archive->bytes[i * sizeof(uint32_t)], offset - firstEntryOffset);
|
||||||
|
|
||||||
|
if (archive->size % 16 != 0) {
|
||||||
|
size_t extraPad = ALIGN16(archive->size) - archive->size;
|
||||||
|
|
||||||
|
Bytearray_ExtendValue(archive, 0, extraPad);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
int main(int argc, char *argv[]) {
|
||||||
|
const char *inPath;
|
||||||
|
const char *binPath;
|
||||||
|
const char *symPath;
|
||||||
|
Bytearray elfBytes;
|
||||||
|
DataSection dataSect;
|
||||||
|
Bytearray archive;
|
||||||
|
|
||||||
|
if (argc != 4) {
|
||||||
|
fprintf(stderr, "%s in_file out_bin out_sym\n", argv[0]);
|
||||||
|
exit(1);
|
||||||
|
}
|
||||||
|
|
||||||
|
inPath = argv[1];
|
||||||
|
binPath = argv[2];
|
||||||
|
symPath = argv[3];
|
||||||
|
|
||||||
|
elfBytes.bytes = util_read_whole_file(inPath, &elfBytes.size);
|
||||||
|
|
||||||
|
DataSection_FromElf(&dataSect, &elfBytes);
|
||||||
|
|
||||||
|
createArchive(&archive, &dataSect);
|
||||||
|
|
||||||
|
// Write the compressed archive file as a raw binary
|
||||||
|
util_write_whole_file(binPath, archive.bytes, archive.size);
|
||||||
|
|
||||||
|
// Zero out data
|
||||||
|
memset(&elfBytes.bytes[dataSect.dataOffset], 0, dataSect.data.size);
|
||||||
|
|
||||||
|
util_write_whole_file(symPath, elfBytes.bytes, elfBytes.size);
|
||||||
|
|
||||||
|
Bytearray_Destroy(&archive);
|
||||||
|
DataSection_Destroy(&dataSect);
|
||||||
|
Bytearray_Destroy(&elfBytes);
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
|
@ -1,8 +1,6 @@
|
||||||
#ifndef YAZ0_H
|
#ifndef YAZ0_H
|
||||||
#define YAZ0_H
|
#define YAZ0_H
|
||||||
|
|
||||||
int yaz0_encode2(uint8_t* src, uint8_t* dest, int uncompressedSize);
|
|
||||||
|
|
||||||
void yaz0_decode(uint8_t* src, uint8_t* dst, int uncompressedSize);
|
void yaz0_decode(uint8_t* src, uint8_t* dst, int uncompressedSize);
|
||||||
|
|
||||||
int yaz0_encode(uint8_t* src, uint8_t* dest, int srcSize);
|
int yaz0_encode(uint8_t* src, uint8_t* dest, int srcSize);
|
||||||
|
|
|
@ -0,0 +1,115 @@
|
||||||
|
#!/usr/bin/env python3
|
||||||
|
|
||||||
|
# SPDX-FileCopyrightText: © 2023 ZeldaRET
|
||||||
|
# SPDX-License-Identifier: MIT
|
||||||
|
|
||||||
|
# yar (Yaz0 ARchive) decompressor
|
||||||
|
#
|
||||||
|
# This program decompresses every raw yar binary file listed in
|
||||||
|
# `tools/filelists/{version}/archives.csv` to a corresponding
|
||||||
|
# `baserom/{file}.unarchive` raw file.
|
||||||
|
#
|
||||||
|
# It works by decompressing every Yaz0 block and appending them one by one into
|
||||||
|
# a new raw binary file so it can be processed normally by other tools.
|
||||||
|
|
||||||
|
|
||||||
|
from __future__ import annotations
|
||||||
|
|
||||||
|
import argparse
|
||||||
|
import dataclasses
|
||||||
|
import libyaz0
|
||||||
|
from pathlib import Path
|
||||||
|
import struct
|
||||||
|
|
||||||
|
|
||||||
|
PRINT_XML = False
|
||||||
|
|
||||||
|
@dataclasses.dataclass
|
||||||
|
class ArchiveMeta:
|
||||||
|
start: int
|
||||||
|
end: int
|
||||||
|
|
||||||
|
|
||||||
|
def readFileAsBytearray(filepath: Path) -> bytearray:
|
||||||
|
with filepath.open(mode="rb") as f:
|
||||||
|
return bytearray(f.read())
|
||||||
|
|
||||||
|
|
||||||
|
def readBytesAsWord(array_of_bytes: bytearray, offset: int) -> int:
|
||||||
|
return struct.unpack_from(f">I", array_of_bytes, offset)[0]
|
||||||
|
|
||||||
|
|
||||||
|
def getOffsetsList(archiveBytes: bytearray) -> list[ArchiveMeta]:
|
||||||
|
archivesOffsets: list[ArchiveMeta] = []
|
||||||
|
|
||||||
|
firstEntryOffset = readBytesAsWord(archiveBytes, 0)
|
||||||
|
firstEntrySize = readBytesAsWord(archiveBytes, 4)
|
||||||
|
|
||||||
|
archivesOffsets.append(ArchiveMeta(firstEntryOffset, firstEntryOffset + firstEntrySize))
|
||||||
|
|
||||||
|
offset = 4
|
||||||
|
while offset < firstEntryOffset - 4:
|
||||||
|
entry = readBytesAsWord(archiveBytes, offset)
|
||||||
|
nextEntry = readBytesAsWord(archiveBytes, offset + 4)
|
||||||
|
entryStart = entry + firstEntryOffset
|
||||||
|
entryEnd = nextEntry + firstEntryOffset
|
||||||
|
archivesOffsets.append(ArchiveMeta(entryStart, entryEnd))
|
||||||
|
|
||||||
|
offset += 4
|
||||||
|
|
||||||
|
return archivesOffsets
|
||||||
|
|
||||||
|
|
||||||
|
def extractArchive(archivePath: Path, outPath: Path):
|
||||||
|
archiveBytes = readFileAsBytearray(archivePath)
|
||||||
|
|
||||||
|
if readBytesAsWord(archiveBytes, 0) == 0:
|
||||||
|
# Empty file, ignore it
|
||||||
|
return
|
||||||
|
|
||||||
|
print(f"Extracting '{archivePath}' -> '{outPath}'")
|
||||||
|
archivesOffsets = getOffsetsList(archiveBytes)
|
||||||
|
|
||||||
|
if PRINT_XML:
|
||||||
|
print('<Root>')
|
||||||
|
print(f' <File Name="{outPath.stem}">')
|
||||||
|
|
||||||
|
with outPath.open("wb") as out:
|
||||||
|
currentOffset = 0
|
||||||
|
for meta in archivesOffsets:
|
||||||
|
decompressedBytes = libyaz0.decompress(archiveBytes[meta.start:meta.end])
|
||||||
|
decompressedSize = len(decompressedBytes)
|
||||||
|
out.write(decompressedBytes)
|
||||||
|
|
||||||
|
if PRINT_XML:
|
||||||
|
print(f' <Blob Name="{archivePath.stem}_Blob_{currentOffset:06X}" Size="0x{decompressedSize:04X}" Offset="0x{currentOffset:X}" />')
|
||||||
|
|
||||||
|
currentOffset += decompressedSize
|
||||||
|
|
||||||
|
if PRINT_XML:
|
||||||
|
print(f' </File>')
|
||||||
|
print('</Root>')
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
parser = argparse.ArgumentParser(description="MM archives extractor")
|
||||||
|
parser.add_argument("-v", "--version", help="version to process", default="mm.us.rev1")
|
||||||
|
parser.add_argument("--xml", help="Generate xml to stdout", action="store_true")
|
||||||
|
|
||||||
|
args = parser.parse_args()
|
||||||
|
|
||||||
|
global PRINT_XML
|
||||||
|
PRINT_XML = args.xml
|
||||||
|
|
||||||
|
archivesCsvPath = Path(f"tools/filelists/{args.version}/archives.csv")
|
||||||
|
|
||||||
|
with archivesCsvPath.open() as f:
|
||||||
|
for line in f:
|
||||||
|
archiveName = line.strip().split(",")[1]
|
||||||
|
archivePath = Path(f"baserom/{archiveName}")
|
||||||
|
|
||||||
|
extractedPath = Path(str(archivePath) + ".unarchive")
|
||||||
|
extractArchive(archivePath, extractedPath)
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
|
@ -7,8 +7,8 @@
|
||||||
'Audiotable',
|
'Audiotable',
|
||||||
'kanji',
|
'kanji',
|
||||||
'link_animetion',
|
'link_animetion',
|
||||||
'icon_item_static_old',
|
'icon_item_static_syms',
|
||||||
'icon_item_24_static_old',
|
'icon_item_24_static_syms',
|
||||||
'icon_item_field_static',
|
'icon_item_field_static',
|
||||||
'icon_item_dungeon_static',
|
'icon_item_dungeon_static',
|
||||||
'icon_item_gameover_static',
|
'icon_item_gameover_static',
|
||||||
|
@ -18,10 +18,10 @@
|
||||||
'map_grand_static',
|
'map_grand_static',
|
||||||
'item_name_static',
|
'item_name_static',
|
||||||
'map_name_static',
|
'map_name_static',
|
||||||
'icon_item_static_test',
|
'icon_item_static_yar',
|
||||||
'icon_item_24_static_test',
|
'icon_item_24_static_yar',
|
||||||
'schedule_dma_static_old',
|
'schedule_dma_static_syms',
|
||||||
'schedule_dma_static_test',
|
'schedule_dma_static_yar',
|
||||||
'schedule_static',
|
'schedule_static',
|
||||||
'story_static',
|
'story_static',
|
||||||
'do_action_static',
|
'do_action_static',
|
||||||
|
|
|
@ -14,8 +14,8 @@ FILE_NAMES = [
|
||||||
'Audiotable',
|
'Audiotable',
|
||||||
'kanji',
|
'kanji',
|
||||||
'link_animetion',
|
'link_animetion',
|
||||||
'icon_item_static_old',
|
'icon_item_static_syms',
|
||||||
'icon_item_24_static_old',
|
'icon_item_24_static_syms',
|
||||||
'icon_item_field_static',
|
'icon_item_field_static',
|
||||||
'icon_item_dungeon_static',
|
'icon_item_dungeon_static',
|
||||||
'icon_item_gameover_static',
|
'icon_item_gameover_static',
|
||||||
|
@ -25,10 +25,10 @@ FILE_NAMES = [
|
||||||
'map_grand_static',
|
'map_grand_static',
|
||||||
'item_name_static',
|
'item_name_static',
|
||||||
'map_name_static',
|
'map_name_static',
|
||||||
'icon_item_static_test',
|
'icon_item_static_yar',
|
||||||
'icon_item_24_static_test',
|
'icon_item_24_static_yar',
|
||||||
'schedule_dma_static_old',
|
'schedule_dma_static_syms',
|
||||||
'schedule_dma_static_test',
|
'schedule_dma_static_yar',
|
||||||
'schedule_static',
|
'schedule_static',
|
||||||
'story_static',
|
'story_static',
|
||||||
'do_action_static',
|
'do_action_static',
|
||||||
|
|
|
@ -6,8 +6,8 @@
|
||||||
5,Audiotable
|
5,Audiotable
|
||||||
6,kanji
|
6,kanji
|
||||||
7,link_animetion
|
7,link_animetion
|
||||||
8,icon_item_static_old
|
8,icon_item_static_syms
|
||||||
9,icon_item_24_static_old
|
9,icon_item_24_static_syms
|
||||||
10,icon_item_field_static
|
10,icon_item_field_static
|
||||||
11,icon_item_dungeon_static
|
11,icon_item_dungeon_static
|
||||||
12,icon_item_gameover_static
|
12,icon_item_gameover_static
|
||||||
|
@ -17,10 +17,10 @@
|
||||||
16,map_grand_static
|
16,map_grand_static
|
||||||
17,item_name_static
|
17,item_name_static
|
||||||
18,map_name_static
|
18,map_name_static
|
||||||
19,icon_item_static_test
|
19,icon_item_static_yar
|
||||||
20,icon_item_24_static_test
|
20,icon_item_24_static_yar
|
||||||
21,schedule_dma_static_old
|
21,schedule_dma_static_syms
|
||||||
22,schedule_dma_static_test
|
22,schedule_dma_static_yar
|
||||||
23,schedule_static
|
23,schedule_static
|
||||||
24,story_static
|
24,story_static
|
||||||
25,do_action_static
|
25,do_action_static
|
||||||
|
|
|
|
@ -2,6 +2,6 @@
|
||||||
16,map_grand_static
|
16,map_grand_static
|
||||||
17,item_name_static
|
17,item_name_static
|
||||||
18,map_name_static
|
18,map_name_static
|
||||||
19,icon_item_static_test
|
19,icon_item_static_yar
|
||||||
20,icon_item_24_static_test
|
20,icon_item_24_static_yar
|
||||||
22,schedule_dma_static_test
|
22,schedule_dma_static_yar
|
||||||
|
|
|
|
@ -1,3 +1,3 @@
|
||||||
8,icon_item_static_old
|
8,icon_item_static_syms
|
||||||
9,icon_item_24_static_old
|
9,icon_item_24_static_syms
|
||||||
21,schedule_dma_static_old
|
21,schedule_dma_static_syms
|
||||||
|
|
|
|
@ -136,7 +136,6 @@ if not args.matching:
|
||||||
# The order of this list should not change to prevent breaking the graph of the website
|
# The order of this list should not change to prevent breaking the graph of the website
|
||||||
# New stuff shall be appended at the end of the list
|
# New stuff shall be appended at the end of the list
|
||||||
assetsCategories = [
|
assetsCategories = [
|
||||||
"archives",
|
|
||||||
"audio",
|
"audio",
|
||||||
"interface",
|
"interface",
|
||||||
"misc",
|
"misc",
|
||||||
|
@ -148,6 +147,11 @@ assetsCategories = [
|
||||||
]
|
]
|
||||||
assetsTracker = dict()
|
assetsTracker = dict()
|
||||||
|
|
||||||
|
# Assets that we don't have a proper way of tracking right now
|
||||||
|
ignoredAssets = {
|
||||||
|
"archives",
|
||||||
|
}
|
||||||
|
|
||||||
# Manual fixer for files that would be counted in wrong categories
|
# Manual fixer for files that would be counted in wrong categories
|
||||||
# "filename": "correctSection"
|
# "filename": "correctSection"
|
||||||
fileSectionFixer = {
|
fileSectionFixer = {
|
||||||
|
@ -203,12 +207,12 @@ for line in map_file:
|
||||||
file_size = int(line_split[2], 16)
|
file_size = int(line_split[2], 16)
|
||||||
obj_file = line_split[3].strip()
|
obj_file = line_split[3].strip()
|
||||||
objFileSplit = obj_file.split("/")
|
objFileSplit = obj_file.split("/")
|
||||||
|
objFileName = objFileSplit[-1].split(".o")[0]
|
||||||
|
|
||||||
fileData = {"name": obj_file, "vram": obj_vram, "size": file_size, "section": section, "symbols": []}
|
fileData = {"name": obj_file, "vram": obj_vram, "size": file_size, "section": section, "symbols": []}
|
||||||
mapFileList.append(fileData)
|
mapFileList.append(fileData)
|
||||||
|
|
||||||
if (section == ".text"):
|
if (section == ".text"):
|
||||||
objFileName = objFileSplit[-1].split(".o")[0]
|
|
||||||
srcCat = obj_file.split("/")[2]
|
srcCat = obj_file.split("/")[2]
|
||||||
if srcCat in srcCategoriesFixer:
|
if srcCat in srcCategoriesFixer:
|
||||||
srcCat = srcCategoriesFixer[srcCat]
|
srcCat = srcCategoriesFixer[srcCat]
|
||||||
|
@ -229,6 +233,8 @@ for line in map_file:
|
||||||
assetCat = obj_file.split("/")[2]
|
assetCat = obj_file.split("/")[2]
|
||||||
if assetCat in assetsTracker:
|
if assetCat in assetsTracker:
|
||||||
assetsTracker[assetCat]["currentSize"] += file_size
|
assetsTracker[assetCat]["currentSize"] += file_size
|
||||||
|
elif assetCat in ignoredAssets:
|
||||||
|
pass
|
||||||
else:
|
else:
|
||||||
eprint(f"Found file '{obj_file}' in unknown asset category '{assetCat}'")
|
eprint(f"Found file '{obj_file}' in unknown asset category '{assetCat}'")
|
||||||
eprint("I'll ignore this for now, but please fix it!")
|
eprint("I'll ignore this for now, but please fix it!")
|
||||||
|
|
|
@ -1098,32 +1098,6 @@ D_06000B70 = 0x06000B70;
|
||||||
D_06000D60 = 0x06000D60;
|
D_06000D60 = 0x06000D60;
|
||||||
|
|
||||||
|
|
||||||
// segment 0x07
|
|
||||||
|
|
||||||
D_07000000 = 0x07000000;
|
|
||||||
D_07000800 = 0x07000800;
|
|
||||||
D_07001000 = 0x07001000;
|
|
||||||
D_07001800 = 0x07001800;
|
|
||||||
D_07002000 = 0x07002000;
|
|
||||||
D_07002800 = 0x07002800;
|
|
||||||
D_07003000 = 0x07003000;
|
|
||||||
D_07003800 = 0x07003800;
|
|
||||||
D_07004000 = 0x07004000;
|
|
||||||
D_07004800 = 0x07004800;
|
|
||||||
D_07005000 = 0x07005000;
|
|
||||||
D_07005800 = 0x07005800;
|
|
||||||
D_07006000 = 0x07006000;
|
|
||||||
D_07006800 = 0x07006800;
|
|
||||||
D_07007000 = 0x07007000;
|
|
||||||
D_07007800 = 0x07007800;
|
|
||||||
D_07008000 = 0x07008000;
|
|
||||||
D_07008800 = 0x07008800;
|
|
||||||
D_07009000 = 0x07009000;
|
|
||||||
D_07009800 = 0x07009800;
|
|
||||||
D_0700AC00 = 0x0700AC00;
|
|
||||||
D_0700AEA0 = 0x0700AEA0;
|
|
||||||
|
|
||||||
|
|
||||||
// segment 0x08
|
// segment 0x08
|
||||||
|
|
||||||
D_08000000 = 0x08000000;
|
D_08000000 = 0x08000000;
|
||||||
|
|
Loading…
Reference in New Issue